@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,34 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { resolvePaths, singleLine } from "@wirecat/cli-core";
4
+ import { completeCommand as sharedCompleteCommand } from "@wirecat/cli-messaging/cli";
5
+ import { ChatRegistry } from "../bot/registry.js";
6
+ import { configuredProfiles } from "../config.js";
7
+ import { knownProfiles } from "../diagnose.js";
8
+ import { maxMessenger } from "../messenger.js";
9
+ export const completeCommand = () => sharedCompleteCommand(maxMessenger, {
10
+ configuredProfiles: ({ env = process.env } = {}) => knownProfiles({ configured: configuredProfiles({ env }), env }).map(({ name }) => name),
11
+ }, {
12
+ account: localAccount,
13
+ sources: (profile, words, env) => {
14
+ if (words[0] !== "bot")
15
+ return undefined;
16
+ const chats = () => new ChatRegistry(profile, env)
17
+ .list()
18
+ .map((chat) => ({ value: chat.id, description: singleLine(chat.title ?? "") }));
19
+ return { arguments: { chat: chats }, options: { chat: chats } };
20
+ },
21
+ });
22
+ const localAccount = (profile, env) => {
23
+ try {
24
+ const state = resolvePaths({ appName: "max-cli", prefix: "MAX", env }).state;
25
+ const value = JSON.parse(readFileSync(join(state, "profiles", `${profile}.json`), "utf8"));
26
+ if (typeof value !== "object" || value === null || !("viewerId" in value))
27
+ return undefined;
28
+ return typeof value.viewerId === "string" && value.viewerId !== "" ? value.viewerId : undefined;
29
+ }
30
+ catch {
31
+ return undefined;
32
+ }
33
+ };
34
+ //# sourceMappingURL=complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../src/commands/complete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAClC,qBAAqB,CACnB,YAAY,EACZ;IACE,kBAAkB,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CACjD,aAAa,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;CAC1F,EACD;IACE,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,SAAS,CAAA;QACxC,MAAM,KAAK,GAAG,GAAG,EAAE,CACjB,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC;aAC3B,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACnF,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAA;IACjE,CAAC;CACF,CACF,CAAA;AAEH,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,GAAsB,EAAsB,EAAE;IACnF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAA;QAC5E,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QACnG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QAC3F,OAAO,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACjG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const configCommand: () => Command;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0CnC,eAAO,MAAM,aAAa,QAAO,OAyJhC,CAAA"}
@@ -0,0 +1,170 @@
1
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { CliError, loadConfigFile, pathsAreOverridden, resolvePaths, saveConfigFile, writeSecurely, } from "@wirecat/cli-core";
4
+ import { annotate } from "@wirecat/cli-core/commands";
5
+ import { AI_SETTING_KEYS, changeStoreSetting, isStoreSetting, migratePermissionConfig, refuseUnknownKey, STORE_SETTINGS, storeSettings, } from "@wirecat/cli-messaging/cli";
6
+ import { Command } from "commander";
7
+ import * as v from "valibot";
8
+ import { MAX_APP } from "../app.js";
9
+ import { ALL_SETTINGS, BOT_ONLY_SETTINGS, changeSetting, configSchema, PERSONAL_ONLY_SETTINGS, resolveSettings, scopePath, } from "../config.js";
10
+ import { knownProfiles } from "../diagnose.js";
11
+ import { ModerationRules } from "../moderation/rules.js";
12
+ import { permissionKeyOf } from "../permissions.js";
13
+ import { forCommand } from "./context.js";
14
+ const SHOWN = [
15
+ ...AI_SETTING_KEYS,
16
+ "limit",
17
+ "timeoutMs",
18
+ "commandTimeoutMs",
19
+ "color",
20
+ "senderColors",
21
+ "catchUpMarksRead",
22
+ "searchCatchUp",
23
+ "record",
24
+ "serve",
25
+ "keepRunsForDays",
26
+ "readOnly",
27
+ "allow",
28
+ "sendsPerHour",
29
+ "permissions",
30
+ "readOtherBots",
31
+ "updateCheck",
32
+ "skillHint",
33
+ "transcribeModel",
34
+ ];
35
+ export const configCommand = () => {
36
+ const command = new Command("config").description("the settings in force, and where each one came from");
37
+ /**
38
+ * Printed whole: no field the configuration accepts can hold a secret (`src/config.ts`). Whether
39
+ * a profile has a token is not here — reading the keyring is `max doctor`'s (`CLI-12`).
40
+ */
41
+ command
42
+ .command("show")
43
+ .description("the profile, the profiles that exist, and each setting with where it came from")
44
+ .option("--bot", "the settings a `max bot` command on this profile gets, rather than the personal account's")
45
+ .action(async function (options) {
46
+ const context = forCommand(this);
47
+ const { renderer } = context;
48
+ const settings = options.bot
49
+ ? resolveSettings(this.optsWithGlobals(), { kind: "bot" })
50
+ : context.settings;
51
+ const overridden = pathsAreOverridden({ appName: "max-cli", prefix: "MAX" });
52
+ renderer.result({
53
+ profile: settings.profile,
54
+ profileFrom: settings.sources.profile,
55
+ kind: settings.kind,
56
+ permissions: settings.permissions,
57
+ permissionSources: settings.permissionSources,
58
+ profiles: knownProfiles({ configured: settings.configuredProfiles }),
59
+ configFile: settings.configPath,
60
+ configFound: settings.configFound,
61
+ pathsOverridden: overridden,
62
+ storeSettings: await storeSettings(process.env),
63
+ settings: SHOWN.filter((setting) => settings.kind === "personal"
64
+ ? !BOT_ONLY_SETTINGS.includes(setting)
65
+ : !PERSONAL_ONLY_SETTINGS.includes(setting)).map((setting) => ({
66
+ setting,
67
+ // No list is every action, and `null` would read as none.
68
+ value: setting === "allow" ? (settings.allow ?? "all") : (settings[setting] ?? null),
69
+ from: settings.sources[setting],
70
+ ...(setting === "models"
71
+ ? {
72
+ sources: Object.fromEntries(Object.entries(settings.sources).filter(([key]) => key.startsWith("models."))),
73
+ }
74
+ : {}),
75
+ })),
76
+ });
77
+ if (overridden) {
78
+ renderer.note("MAX_CONFIG_DIR, MAX_STATE_DIR or MAX_CACHE_DIR is set — a profile's keyring entry is not the usual one, " +
79
+ "so a session made without them reads as none");
80
+ }
81
+ });
82
+ command.addCommand(annotate(new Command("migrate"), { mutates: true, local: true })
83
+ .description("replace legacy access settings with permissions, preserving effective levels")
84
+ .option("--dry-run", "show the migration without writing the file")
85
+ .action(function () {
86
+ const { settings, renderer } = forCommand(this);
87
+ const dryRun = this.opts().dryRun === true;
88
+ if (!dryRun && process.env.MAX_PROFILE_LOCK)
89
+ throw new CliError("permission_error", "config migrate changes every profile — run outside the profile lock");
90
+ const migrated = migratePermissionConfig(loadConfigFile(settings.configPath, configSchema, () => ({ profiles: {} })));
91
+ const checked = v.safeParse(configSchema, migrated.config);
92
+ if (!checked.success)
93
+ throw new CliError("configuration_error", "the migrated config is invalid — nothing was written");
94
+ const directory = join(resolvePaths({ appName: "max-cli", prefix: "MAX" }).state, "profiles");
95
+ const rules = (existsSync(directory) ? readdirSync(directory) : [])
96
+ .filter((name) => name.endsWith(".moderation.json"))
97
+ .map((name) => {
98
+ const path = join(directory, name);
99
+ const raw = JSON.parse(readFileSync(path, "utf8"));
100
+ const reader = new ModerationRules(path);
101
+ reader.read("");
102
+ const groups = Object.fromEntries(Object.keys(raw.groups ?? {}).map((id) => [id, reader.read(id)]));
103
+ const next = { ...raw, groups };
104
+ return { path, next, changed: JSON.stringify(next) !== JSON.stringify(raw) };
105
+ })
106
+ .filter((rule) => rule.changed);
107
+ if (!dryRun) {
108
+ if (migrated.changed)
109
+ saveConfigFile(settings.configPath, checked.output);
110
+ for (const rule of rules)
111
+ writeSecurely(rule.path, `${JSON.stringify(rule.next, null, 2)}\n`, 0o600);
112
+ }
113
+ renderer.result({
114
+ configFile: settings.configPath,
115
+ changed: migrated.changed || rules.length > 0,
116
+ rulesFiles: rules.map((rule) => rule.path),
117
+ dryRun,
118
+ changes: migrated.changes,
119
+ });
120
+ }));
121
+ for (const action of ["set", "unset"]) {
122
+ const sub = annotate(command.command(action), { mutates: true, local: true })
123
+ .argument("<setting>", `one of: ${[...ALL_SETTINGS, ...STORE_SETTINGS].join(", ")}`)
124
+ .option("--defaults", "change what every profile gets, rather than this profile")
125
+ .option("--personal", "only for personal accounts — the personal section of the file")
126
+ .option("--bot", "only for bots — the bot section of the file");
127
+ if (action === "set")
128
+ sub
129
+ .argument("<value>", "a number, true or false, or for allow a list like send,reaction")
130
+ .description("save a setting to the configuration file");
131
+ else
132
+ sub.description("remove a setting from the configuration file");
133
+ sub.action(async function (setting, given) {
134
+ const value = action === "set" ? String(given) : undefined;
135
+ const { settings, renderer } = forCommand(this);
136
+ const flags = this.opts();
137
+ if (flags.personal && flags.bot) {
138
+ throw new CliError("validation_error", "--personal and --bot name different sections; use one");
139
+ }
140
+ if (isStoreSetting(setting)) {
141
+ if (flags.defaults || flags.personal || flags.bot)
142
+ throw new CliError("validation_error", `${setting} is store-wide; profile-scope flags do not apply`);
143
+ if (process.env.MAX_PROFILE_LOCK)
144
+ throw new CliError("permission_error", `${setting} changes every profile; run outside MAX_PROFILE_LOCK`);
145
+ const { result, note } = await changeStoreSetting(MAX_APP, process.env, setting, value);
146
+ renderer.result(result);
147
+ renderer.note(note);
148
+ return;
149
+ }
150
+ const kind = flags.bot ? "bot" : flags.personal ? "personal" : undefined;
151
+ const defaults = flags.defaults === true;
152
+ if ((defaults || setting === "defaultProfile") && process.env.MAX_PROFILE_LOCK) {
153
+ // Both reach past this profile: the defaults are every profile's, defaultProfile picks one.
154
+ throw new CliError("permission_error", `this process is locked to profile ${settings.profile} (MAX_PROFILE_LOCK) — ${setting === "defaultProfile" ? "defaultProfile" : "--defaults"} changes other profiles`);
155
+ }
156
+ if (value !== undefined)
157
+ refuseUnknownKey(this, setting, value, permissionKeyOf);
158
+ const scope = { profile: defaults ? undefined : settings.profile, kind };
159
+ const saved = changeSetting(settings.configPath, { ...scope, setting, value });
160
+ renderer.result({
161
+ configFile: settings.configPath,
162
+ scope: setting === "defaultProfile" ? "defaultProfile" : scopePath(scope),
163
+ setting,
164
+ value: saved,
165
+ });
166
+ });
167
+ }
168
+ return command;
169
+ };
170
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * The people this account has a one-to-one chat with.
4
+ *
5
+ * Not "the address book": MAX has an opcode that tsmax calls `CONTACT_LIST` and the protocol
6
+ * documentation calls `GET_BLOCKED`, and until somebody has watched what it actually returns, this
7
+ * lists what we can establish without guessing.
8
+ */
9
+ export declare const contactsCommand: () => Command;
10
+ //# sourceMappingURL=contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,QAAO,OA2ElC,CAAA"}
@@ -0,0 +1,80 @@
1
+ import { CliError } from "@wirecat/cli-core";
2
+ import { contactsCommand as sharedContactsCommand } 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 { forCommand } from "./context.js";
7
+ /**
8
+ * The people this account has a one-to-one chat with.
9
+ *
10
+ * Not "the address book": MAX has an opcode that tsmax calls `CONTACT_LIST` and the protocol
11
+ * documentation calls `GET_BLOCKED`, and until somebody has watched what it actually returns, this
12
+ * lists what we can establish without guessing.
13
+ */
14
+ export const contactsCommand = () => {
15
+ const command = new Command("contacts").description("people you have a one-to-one chat with");
16
+ const shared = sharedContactsCommand(maxMessenger);
17
+ command.addCommand(sharedSubcommand(shared, "list"));
18
+ command.addCommand(sharedSubcommand(shared, "show"));
19
+ command.addCommand(sharedSubcommand(shared, "profile"));
20
+ command.addCommand(sharedSubcommand(shared, "alias"));
21
+ command.addCommand(sharedSubcommand(shared, "notes"));
22
+ /**
23
+ * The repair tool of the contact store, and **not how contacts normally arrive**: every command
24
+ * logs in, and every login carries the delta, so the store is already current. This is for a
25
+ * store that has drifted, or one a schema rebuild emptied.
26
+ *
27
+ * ⚠ **The summary is counts.** No name, no username, no description, no phone number — a person
28
+ * in a diagnostic is the one leak this project's sixth constraint is about.
29
+ */
30
+ command
31
+ .command("sync")
32
+ .description("forget where the last sync left off and take the whole list again")
33
+ .action(async function () {
34
+ const { renderer, createClient, run, store } = forCommand(this);
35
+ const record = maxRecord({ account: () => store.readState().viewerId });
36
+ await run("contacts sync", async (events) => {
37
+ const client = createClient({ events, record });
38
+ try {
39
+ const summary = await client.contacts.sync();
40
+ renderer.result(summary);
41
+ renderer.success(`${summary.added} new, ${summary.changed} changed, ${summary.known} people known`);
42
+ }
43
+ finally {
44
+ await client.close();
45
+ await record.close();
46
+ }
47
+ });
48
+ });
49
+ /**
50
+ * ⚠ **The number is asked for, never an argument**: argv is read by `ps` and kept by shell
51
+ * history, and a phone number is what the sixth constraint names.
52
+ */
53
+ command
54
+ .command("lookup")
55
+ .description("who MAX has under a phone number — asks for it, or reads it from stdin")
56
+ .allowExcessArguments()
57
+ .action(async function () {
58
+ if (this.args.length > 0) {
59
+ throw new CliError("validation_error", "the phone number is never an argument — pipe it in, or type it when asked");
60
+ }
61
+ const { renderer, createClient, run, ask, store } = forCommand(this);
62
+ const phone = await ask("phone number: ");
63
+ const record = maxRecord({ account: () => store.readState().viewerId });
64
+ await run("contacts lookup", async (events) => {
65
+ const client = createClient({ events, record });
66
+ try {
67
+ renderer.result(await client.contacts.lookup(phone));
68
+ }
69
+ finally {
70
+ await client.close();
71
+ await record.close();
72
+ }
73
+ });
74
+ });
75
+ for (const name of ["add", "remove", "block", "unblock", "rename", "import", "context", "check", "link", "unlink"]) {
76
+ command.addCommand(sharedSubcommand(shared, name));
77
+ }
78
+ return command;
79
+ };
80
+ //# sourceMappingURL=contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import type { Renderer, RenderFormat, RetryConfig, SleepLike, Streams } from "@wirecat/cli-core";
2
+ import type { FetchLike } from "@wirecat/cli-core/http";
3
+ import type { ServerSystem } from "@wirecat/cli-messaging/background";
4
+ import { type BaseEnvironment } from "@wirecat/cli-messaging/cli";
5
+ import type { Command } from "commander";
6
+ import type { BotTokenStore } from "../bot/auth.js";
7
+ import type { ChatRegistry } from "../bot/registry.js";
8
+ import { MaxClient, type MaxClientOptions } from "../client.js";
9
+ import { type GlobalFlags, type Settings } from "../config.js";
10
+ import { type Closeable } from "../deadline.js";
11
+ import { type Reach } from "../download.js";
12
+ import { type BrowserDoors } from "../session/browser.js";
13
+ import { SessionStore } from "../session/store.js";
14
+ import type { HearAllOptions } from "../transcribe/index.js";
15
+ import type { UpdateEnvironment } from "../update.js";
16
+ /**
17
+ * What a command writes to and talks through, when it is not the real terminal, keyring and MAX.
18
+ * `run` sets it on the program; without it everything is the real thing.
19
+ */
20
+ export interface Environment extends Pick<BaseEnvironment, "env" | "signal" | "commandSignal" | "trackCloseable"> {
21
+ streams?: Streams;
22
+ tty?: boolean;
23
+ /** A store over a memory keyring, so a test never touches the owner's. */
24
+ store?: (profile: string) => SessionStore;
25
+ /** systemd, launchd and the pause between looks, for `max server` — a test hands in its own. */
26
+ system?: ServerSystem;
27
+ /** A fresh connection per client — to a scripted MAX in a test. */
28
+ connection?: () => NonNullable<MaxClientOptions["connection"]>;
29
+ browser?: BrowserDoors;
30
+ /** Where a download may go; a test serving files from this machine allows it. */
31
+ reach?: Reach;
32
+ /** A stand-in speech model, so a test hears without one. */
33
+ recognizer?: HearAllOptions["open"];
34
+ /** What the shared commands read as stdin; a test pipes an answer in. */
35
+ stdin?: NodeJS.ReadableStream & {
36
+ isTTY?: boolean;
37
+ };
38
+ answer?: (question: string) => string | null | Promise<string | null>;
39
+ ask?: Ask;
40
+ interactive?: boolean;
41
+ columns?: number;
42
+ update?: UpdateEnvironment;
43
+ /** The bot token store over a memory keyring, and a local stand-in for the Bot API. */
44
+ botStore?: (profile: string) => BotTokenStore;
45
+ botFetch?: FetchLike;
46
+ botUrl?: string;
47
+ botRetry?: RetryConfig;
48
+ botRegistry?: (profile: string) => ChatRegistry;
49
+ /** Every wait between retries or polls; tests pass one that returns at once. */
50
+ sleep?: SleepLike;
51
+ }
52
+ /** One line from the person at the terminal; `secret` keeps it off the screen. */
53
+ export type Ask = (prompt: string, options?: {
54
+ secret?: boolean;
55
+ signal?: AbortSignal;
56
+ }) => Promise<string>;
57
+ export declare const provide: (program: Command, environment: Environment) => void;
58
+ export declare const environmentOf: (command: Command) => Environment;
59
+ /** For the commands that print but never need settings or a client. */
60
+ export declare const outputFor: (command: Command) => {
61
+ format: "json" | "jsonl" | "pretty";
62
+ color: boolean;
63
+ streams: Streams;
64
+ renderer: Renderer;
65
+ };
66
+ export interface CommandContext {
67
+ settings: Settings;
68
+ renderer: Renderer;
69
+ format: RenderFormat;
70
+ /** Whether the human view may use colour — the renderer's decision, handed to views that print their own text. */
71
+ color: boolean;
72
+ streams: Streams;
73
+ store: SessionStore;
74
+ /**
75
+ * Not connected yet: the action owns the `finally` that closes it — and any local record it opened.
76
+ * It goes through the profile's one `max serve`; `own` is for logging in, which cannot.
77
+ */
78
+ createClient: (extra?: Partial<Omit<MaxClientOptions, "store">>, options?: {
79
+ own?: boolean;
80
+ }) => MaxClient;
81
+ /**
82
+ * Starts the profile's server if none is running and waits for it; `false` when it did not come
83
+ * up, or when this is not the place to start one (`serve: false`, a test).
84
+ */
85
+ shareServer: () => Promise<boolean>;
86
+ /** Stops the profile's server however it was started — `max session start` replaces its session. */
87
+ stopServer: () => Promise<"stopped" | "refused" | "none">;
88
+ /**
89
+ * Runs the body with diagnostics on and the run finalized on every path, if anything asked for
90
+ * either. The body gets the emitter to hand to `createClient`.
91
+ */
92
+ run: <T>(command: string, body: (events: MaxClientOptions["events"]) => Promise<T>) => Promise<T>;
93
+ /** Anything else holding the process open — a browser, a local page — for `--timeout` to shut too. */
94
+ track: (closeable: Closeable) => void;
95
+ browser: BrowserDoors;
96
+ reach: Reach;
97
+ /** How voice messages are fetched and heard: through `reach`, and by the downloaded model. */
98
+ hearing: Pick<HearAllOptions, "fetchAudio" | "open">;
99
+ ask: Ask;
100
+ signal: AbortSignal;
101
+ /** Whether a person is there to scan a code or type one: both stdin and stderr are a terminal. */
102
+ interactive: boolean;
103
+ /** How wide the terminal is that diagnostics go to; unknown when it is not a terminal. */
104
+ columns: number | undefined;
105
+ }
106
+ /**
107
+ * Everything a command needs, resolved once — and **the only place a `MaxClient` is built.**
108
+ *
109
+ * One construction site is what keeps the protocol note quiet under `--quiet`: a command building
110
+ * its own client gets the default `warn`, which writes straight to stderr past the renderer
111
+ * (`BUG-7`). With eight commands, "remember to pass `warn`" is a rule that gets broken once and
112
+ * then nobody can see it.
113
+ *
114
+ * It is also where `--record` stops being a flag and becomes a setting: `recorded` takes what
115
+ * `resolveSettings` decided — flag, then environment, then the configuration file — rather than
116
+ * what `commander` happened to parse.
117
+ *
118
+ */
119
+ export declare const forCommand: (command: Command) => CommandContext;
120
+ /** The same context from flags already parsed — for `max mcp`, whose calls arrive without argv. */
121
+ export declare const contextFor: (flags: GlobalFlags & {
122
+ offline?: boolean;
123
+ yes?: boolean;
124
+ allowDangerous?: boolean;
125
+ }, environment?: Environment) => CommandContext;
126
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ import { existsSync } from "node:fs";
2
+ import { inputPolicy, recorded, withAbort } from "@wirecat/cli-messaging/cli";
3
+ import { levelFor, sharedJournal } from "@wirecat/cli-messaging/sends";
4
+ import { MAX_APP } from "../app.js";
5
+ import { MaxClient } from "../client.js";
6
+ import { resolveSettings } from "../config.js";
7
+ import { withDeadline } from "../deadline.js";
8
+ import { fetchBytes, publicOnly } from "../download.js";
9
+ import { resolveOutput } from "../output.js";
10
+ import { askerFor, assertReadable, currentReadPermission, permissionScope } from "../permissions.js";
11
+ import { rootOf } from "../profile.js";
12
+ import { guardFor } from "../sends.js";
13
+ import { ServerConnection, stopServer } from "../server/server-connection.js";
14
+ import { ensureServer } from "../server/start.js";
15
+ import { realBrowser } from "../session/browser.js";
16
+ import { readSecret } from "../session/prompt.js";
17
+ import { SessionStore } from "../session/store.js";
18
+ const environments = new WeakMap();
19
+ export const provide = (program, environment) => {
20
+ environments.set(program, environment);
21
+ };
22
+ export const environmentOf = (command) => environments.get(rootOf(command)) ?? {};
23
+ /** For the commands that print but never need settings or a client. */
24
+ export const outputFor = (command) => {
25
+ const { streams, tty } = environmentOf(command);
26
+ return resolveOutput({
27
+ ...command.optsWithGlobals(),
28
+ ...(streams ? { streams } : {}),
29
+ ...(tty === undefined ? {} : { tty }),
30
+ });
31
+ };
32
+ /**
33
+ * Everything a command needs, resolved once — and **the only place a `MaxClient` is built.**
34
+ *
35
+ * One construction site is what keeps the protocol note quiet under `--quiet`: a command building
36
+ * its own client gets the default `warn`, which writes straight to stderr past the renderer
37
+ * (`BUG-7`). With eight commands, "remember to pass `warn`" is a rule that gets broken once and
38
+ * then nobody can see it.
39
+ *
40
+ * It is also where `--record` stops being a flag and becomes a setting: `recorded` takes what
41
+ * `resolveSettings` decided — flag, then environment, then the configuration file — rather than
42
+ * what `commander` happened to parse.
43
+ *
44
+ */
45
+ export const forCommand = (command) => contextFor(command.optsWithGlobals(), environmentOf(command));
46
+ /** The same context from flags already parsed — for `max mcp`, whose calls arrive without argv. */
47
+ export const contextFor = (flags, environment = {}) => {
48
+ const settings = resolveSettings(flags, { env: environment.env ?? process.env });
49
+ const { renderer, format, color, streams } = resolveOutput({
50
+ ...settings,
51
+ env: environment.env ?? process.env,
52
+ ...(environment.streams ? { streams: environment.streams } : {}),
53
+ ...(environment.tty === undefined ? {} : { tty: environment.tty }),
54
+ });
55
+ const store = environment.store?.(settings.profile) ?? new SessionStore({ profile: settings.profile });
56
+ // Every client this command builds, so the deadline can shut them. There is always one; relying
57
+ // on that is what makes the second one, some day, the leak that keeps the process alive.
58
+ const cancellation = new AbortController();
59
+ const clients = [];
60
+ const track = (closeable) => {
61
+ clients.push(closeable);
62
+ environment.trackCloseable?.(closeable);
63
+ };
64
+ track({ close: async () => cancellation.abort() });
65
+ const signal = environment.signal ? AbortSignal.any([cancellation.signal, environment.signal]) : cancellation.signal;
66
+ // Only for the real thing: a test hands in its own store, and must never start a process.
67
+ // A server does not take `MAX_TOKEN` along, so a token from there has no server to share.
68
+ // The native server reads saved permissions; startup overrides belong to this connection.
69
+ const overridesPermissions = (flags.permission?.length ?? 0) > 0;
70
+ const starts = !overridesPermissions && !environment.store && !environment.connection && settings.serve && !process.env.MAX_TOKEN;
71
+ return {
72
+ settings,
73
+ renderer,
74
+ format,
75
+ color,
76
+ streams,
77
+ store,
78
+ shareServer: async () => starts && ensureServer(store),
79
+ stopServer: () => stopServer(store.socketPath(), { force: true }),
80
+ createClient: (extra = {}, { own = false } = {}) => {
81
+ const timeout = settings.timeoutMs ? { timeoutMs: settings.timeoutMs } : {};
82
+ const snapshotAllowed = ["messages", "chats", "contacts", "account"].every((key) => levelFor(settings.permissions, key).level !== "deny");
83
+ const shares = starts && flags.offline !== true && snapshotAllowed;
84
+ const wire = !own && !overridesPermissions && snapshotAllowed && (shares || existsSync(store.socketPath()))
85
+ ? new ServerConnection({
86
+ path: store.socketPath(),
87
+ store,
88
+ ...timeout,
89
+ ...(shares ? { ensure: () => ensureServer(store) } : {}),
90
+ })
91
+ : undefined;
92
+ const client = new MaxClient({
93
+ store,
94
+ timeoutMs: settings.timeoutMs,
95
+ warn: renderer.note,
96
+ offline: flags.offline === true,
97
+ ...(environment.sleep ? { sleep: environment.sleep } : {}),
98
+ ...(environment.connection ? { connection: environment.connection() } : wire ? { connection: wire } : {}),
99
+ ...extra,
100
+ // After `extra`, so an `undefined` handed in falls back to the guard rather than to none.
101
+ reads: extra.reads ?? ((key) => assertReadable(settings, currentReadPermission() ?? key)),
102
+ sends: extra.sends ?? sharedJournal(guardFor(settings, renderer.warn, askerFor(flags, environment)), wire),
103
+ });
104
+ track(client);
105
+ return client;
106
+ },
107
+ track,
108
+ browser: environment.browser ?? realBrowser,
109
+ reach: environment.reach ?? publicOnly,
110
+ hearing: {
111
+ fetchAudio: (link) => fetchBytes(link, environment.reach ?? publicOnly),
112
+ ...(environment.recognizer ? { open: environment.recognizer } : {}),
113
+ },
114
+ ask: (prompt, { secret = false, signal: stop = signal } = {}) => {
115
+ const input = environment.stdin ?? process.stdin;
116
+ return !inputPolicy(input).noInput && environment.ask
117
+ ? environment.ask(prompt, { secret, signal: stop })
118
+ : readSecret(prompt, { input, echo: !secret, signal: stop });
119
+ },
120
+ signal,
121
+ interactive: !inputPolicy(environment.stdin ?? process.stdin).noInput &&
122
+ (environment.interactive ?? (process.stdin.isTTY === true && process.stderr.isTTY === true)),
123
+ columns: environment.columns ?? process.stderr.columns,
124
+ run: (command, body) => permissionScope(() => recorded({
125
+ app: MAX_APP,
126
+ command,
127
+ profile: settings.profile,
128
+ record: settings.record,
129
+ keepFailed: settings.keepFailedRuns,
130
+ trace: settings.trace,
131
+ format,
132
+ streams,
133
+ keepDays: settings.keepRunsForDays,
134
+ }, (events) => withAbort(environment.commandSignal, () => withDeadline(settings.commandTimeoutMs, clients, () => body(events))))),
135
+ };
136
+ };
137
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,EAAwB,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACnG,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAE,SAAS,EAAyB,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAoB,eAAe,EAAiB,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACpG,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAqB,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AA0ClD,MAAM,YAAY,GAAG,IAAI,OAAO,EAAwB,CAAA;AAExD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,WAAwB,EAAQ,EAAE;IAC1E,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAe,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAEvG,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAC/C,OAAO,aAAa,CAAC;QACnB,GAAG,OAAO,CAAC,eAAe,EAAE;QAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;KACtC,CAAC,CAAA;AACJ,CAAC,CAAA;AAyCD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAkB,EAAE,CAC7D,UAAU,CAAC,OAAO,CAAC,eAAe,EAAuC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AAEpG,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAmF,EACnF,WAAW,GAAgB,EAAE,EACb,EAAE;IAClB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAChF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;QACzD,GAAG,QAAQ;QACX,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;QACnC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;KACnE,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAEtG,gGAAgG;IAChG,yFAAyF;IACzF,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAgB,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,CAAC,SAAoB,EAAE,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvB,WAAW,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC,CAAA;IACD,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAA;IAEpH,0FAA0F;IAC1F,0FAA0F;IAC1F,0FAA0F;IAC1F,MAAM,oBAAoB,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAChE,MAAM,MAAM,GACV,CAAC,oBAAoB,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA;IAEpH,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC;QACtD,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjE,YAAY,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;YACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3E,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,KAAK,CACxE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAC9D,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,eAAe,CAAA;YAClE,MAAM,IAAI,GACR,CAAC,GAAG,IAAI,CAAC,oBAAoB,IAAI,eAAe,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC5F,CAAC,CAAC,IAAI,gBAAgB,CAAC;oBACnB,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE;oBACxB,KAAK;oBACL,GAAG,OAAO;oBACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAA;YACf,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;gBAC3B,KAAK;gBACL,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;gBAC/B,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzG,GAAG,KAAK;gBACR,0FAA0F;gBAC1F,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,GAAG,CAAC,CAAC;gBACzF,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;aAC3G,CAAC,CAAA;YACF,KAAK,CAAC,MAAM,CAAC,CAAA;YACb,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK;QACL,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,WAAW;QAC3C,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,UAAU;QACtC,OAAO,EAAE;YACP,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,IAAI,UAAU,CAAC;YACvE,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE;QACD,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;YAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAA;YAChD,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG;gBACnD,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACnD,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAChE,CAAC;QACD,MAAM;QACN,WAAW,EACT,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO;YACxD,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAC9F,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;QACtD,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACrB,eAAe,CAAC,GAAG,EAAE,CACnB,QAAQ,CACN;YACE,GAAG,EAAE,OAAO;YACZ,OAAO;YACP,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,cAAc;YACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM;YACN,OAAO;YACP,QAAQ,EAAE,QAAQ,CAAC,eAAe;SACnC,EACD,CAAC,MAAM,EAAE,EAAE,CACT,SAAS,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,EAAE,CACxC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACrE,CACJ,CACF;KACJ,CAAA;AACH,CAAC,CAAA"}