@doist/comms-cli 0.0.1 → 1.0.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 (422) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +165 -29
  3. package/dist/commands/account/index.d.ts +3 -0
  4. package/dist/commands/account/index.d.ts.map +1 -0
  5. package/dist/commands/account/index.js +104 -0
  6. package/dist/commands/account/index.js.map +1 -0
  7. package/dist/commands/auth/helpers.d.ts +22 -0
  8. package/dist/commands/auth/helpers.d.ts.map +1 -0
  9. package/dist/commands/auth/helpers.js +29 -0
  10. package/dist/commands/auth/helpers.js.map +1 -0
  11. package/dist/commands/auth/index.d.ts +3 -0
  12. package/dist/commands/auth/index.d.ts.map +1 -0
  13. package/dist/commands/auth/index.js +32 -0
  14. package/dist/commands/auth/index.js.map +1 -0
  15. package/dist/commands/auth/login.d.ts +4 -0
  16. package/dist/commands/auth/login.d.ts.map +1 -0
  17. package/dist/commands/auth/login.js +29 -0
  18. package/dist/commands/auth/login.js.map +1 -0
  19. package/dist/commands/auth/logout.d.ts +11 -0
  20. package/dist/commands/auth/logout.d.ts.map +1 -0
  21. package/dist/commands/auth/logout.js +16 -0
  22. package/dist/commands/auth/logout.js.map +1 -0
  23. package/dist/commands/auth/status.d.ts +16 -0
  24. package/dist/commands/auth/status.d.ts.map +1 -0
  25. package/dist/commands/auth/status.js +102 -0
  26. package/dist/commands/auth/status.js.map +1 -0
  27. package/dist/commands/auth/store-wrap.d.ts +4 -0
  28. package/dist/commands/auth/store-wrap.d.ts.map +1 -0
  29. package/dist/commands/auth/store-wrap.js +24 -0
  30. package/dist/commands/auth/store-wrap.js.map +1 -0
  31. package/dist/commands/auth/token.d.ts +2 -0
  32. package/dist/commands/auth/token.d.ts.map +1 -0
  33. package/dist/commands/auth/token.js +56 -0
  34. package/dist/commands/auth/token.js.map +1 -0
  35. package/dist/commands/changelog.d.ts +3 -0
  36. package/dist/commands/changelog.d.ts.map +1 -0
  37. package/dist/commands/changelog.js +16 -0
  38. package/dist/commands/changelog.js.map +1 -0
  39. package/dist/commands/channel/create.d.ts +11 -0
  40. package/dist/commands/channel/create.d.ts.map +1 -0
  41. package/dist/commands/channel/create.js +35 -0
  42. package/dist/commands/channel/create.js.map +1 -0
  43. package/dist/commands/channel/helpers.d.ts +9 -0
  44. package/dist/commands/channel/helpers.d.ts.map +1 -0
  45. package/dist/commands/channel/helpers.js +51 -0
  46. package/dist/commands/channel/helpers.js.map +1 -0
  47. package/dist/commands/channel/index.d.ts +3 -0
  48. package/dist/commands/channel/index.d.ts.map +1 -0
  49. package/dist/commands/channel/index.js +104 -0
  50. package/dist/commands/channel/index.js.map +1 -0
  51. package/dist/commands/channel/list.d.ts +8 -0
  52. package/dist/commands/channel/list.d.ts.map +1 -0
  53. package/dist/commands/channel/list.js +144 -0
  54. package/dist/commands/channel/list.js.map +1 -0
  55. package/dist/commands/channel/threads.d.ts +11 -0
  56. package/dist/commands/channel/threads.d.ts.map +1 -0
  57. package/dist/commands/channel/threads.js +100 -0
  58. package/dist/commands/channel/threads.js.map +1 -0
  59. package/dist/commands/channel/update.d.ts +12 -0
  60. package/dist/commands/channel/update.d.ts.map +1 -0
  61. package/dist/commands/channel/update.js +84 -0
  62. package/dist/commands/channel/update.js.map +1 -0
  63. package/dist/commands/comment/delete.d.ts +5 -0
  64. package/dist/commands/comment/delete.d.ts.map +1 -0
  65. package/dist/commands/comment/delete.js +33 -0
  66. package/dist/commands/comment/delete.js.map +1 -0
  67. package/dist/commands/comment/index.d.ts +3 -0
  68. package/dist/commands/comment/index.d.ts.map +1 -0
  69. package/dist/commands/comment/index.js +49 -0
  70. package/dist/commands/comment/index.js.map +1 -0
  71. package/dist/commands/comment/update.d.ts +5 -0
  72. package/dist/commands/comment/update.d.ts.map +1 -0
  73. package/dist/commands/comment/update.js +37 -0
  74. package/dist/commands/comment/update.js.map +1 -0
  75. package/dist/commands/comment/view.d.ts +3 -0
  76. package/dist/commands/comment/view.d.ts.map +1 -0
  77. package/dist/commands/comment/view.js +31 -0
  78. package/dist/commands/comment/view.js.map +1 -0
  79. package/dist/commands/completion/helpers.d.ts +14 -0
  80. package/dist/commands/completion/helpers.d.ts.map +1 -0
  81. package/dist/commands/completion/helpers.js +37 -0
  82. package/dist/commands/completion/helpers.js.map +1 -0
  83. package/dist/commands/completion/index.d.ts +3 -0
  84. package/dist/commands/completion/index.d.ts.map +1 -0
  85. package/dist/commands/completion/index.js +22 -0
  86. package/dist/commands/completion/index.js.map +1 -0
  87. package/dist/commands/completion/install.d.ts +2 -0
  88. package/dist/commands/completion/install.d.ts.map +1 -0
  89. package/dist/commands/completion/install.js +19 -0
  90. package/dist/commands/completion/install.js.map +1 -0
  91. package/dist/commands/completion/server.d.ts +3 -0
  92. package/dist/commands/completion/server.d.ts.map +1 -0
  93. package/dist/commands/completion/server.js +35 -0
  94. package/dist/commands/completion/server.js.map +1 -0
  95. package/dist/commands/completion/uninstall.d.ts +2 -0
  96. package/dist/commands/completion/uninstall.d.ts.map +1 -0
  97. package/dist/commands/completion/uninstall.js +19 -0
  98. package/dist/commands/completion/uninstall.js.map +1 -0
  99. package/dist/commands/config/index.d.ts +3 -0
  100. package/dist/commands/config/index.d.ts.map +1 -0
  101. package/dist/commands/config/index.js +29 -0
  102. package/dist/commands/config/index.js.map +1 -0
  103. package/dist/commands/config/set.d.ts +3 -0
  104. package/dist/commands/config/set.d.ts.map +1 -0
  105. package/dist/commands/config/set.js +41 -0
  106. package/dist/commands/config/set.js.map +1 -0
  107. package/dist/commands/config/view.d.ts +6 -0
  108. package/dist/commands/config/view.d.ts.map +1 -0
  109. package/dist/commands/config/view.js +121 -0
  110. package/dist/commands/config/view.js.map +1 -0
  111. package/dist/commands/conversation/done.d.ts +3 -0
  112. package/dist/commands/conversation/done.d.ts.map +1 -0
  113. package/dist/commands/conversation/done.js +23 -0
  114. package/dist/commands/conversation/done.js.map +1 -0
  115. package/dist/commands/conversation/helpers.d.ts +28 -0
  116. package/dist/commands/conversation/helpers.d.ts.map +1 -0
  117. package/dist/commands/conversation/helpers.js +119 -0
  118. package/dist/commands/conversation/helpers.js.map +1 -0
  119. package/dist/commands/conversation/index.d.ts +3 -0
  120. package/dist/commands/conversation/index.d.ts.map +1 -0
  121. package/dist/commands/conversation/index.js +107 -0
  122. package/dist/commands/conversation/index.js.map +1 -0
  123. package/dist/commands/conversation/mute.d.ts +3 -0
  124. package/dist/commands/conversation/mute.d.ts.map +1 -0
  125. package/dist/commands/conversation/mute.js +30 -0
  126. package/dist/commands/conversation/mute.js.map +1 -0
  127. package/dist/commands/conversation/reply.d.ts +3 -0
  128. package/dist/commands/conversation/reply.d.ts.map +1 -0
  129. package/dist/commands/conversation/reply.js +37 -0
  130. package/dist/commands/conversation/reply.js.map +1 -0
  131. package/dist/commands/conversation/unmute.d.ts +3 -0
  132. package/dist/commands/conversation/unmute.d.ts.map +1 -0
  133. package/dist/commands/conversation/unmute.js +28 -0
  134. package/dist/commands/conversation/unmute.js.map +1 -0
  135. package/dist/commands/conversation/unread.d.ts +3 -0
  136. package/dist/commands/conversation/unread.d.ts.map +1 -0
  137. package/dist/commands/conversation/unread.js +56 -0
  138. package/dist/commands/conversation/unread.js.map +1 -0
  139. package/dist/commands/conversation/view.d.ts +3 -0
  140. package/dist/commands/conversation/view.d.ts.map +1 -0
  141. package/dist/commands/conversation/view.js +77 -0
  142. package/dist/commands/conversation/view.js.map +1 -0
  143. package/dist/commands/conversation/with.d.ts +3 -0
  144. package/dist/commands/conversation/with.d.ts.map +1 -0
  145. package/dist/commands/conversation/with.js +48 -0
  146. package/dist/commands/conversation/with.js.map +1 -0
  147. package/dist/commands/doctor.d.ts +9 -0
  148. package/dist/commands/doctor.d.ts.map +1 -0
  149. package/dist/commands/doctor.js +325 -0
  150. package/dist/commands/doctor.js.map +1 -0
  151. package/dist/commands/groups/create.d.ts +8 -0
  152. package/dist/commands/groups/create.d.ts.map +1 -0
  153. package/dist/commands/groups/create.js +27 -0
  154. package/dist/commands/groups/create.js.map +1 -0
  155. package/dist/commands/groups/delete.d.ts +7 -0
  156. package/dist/commands/groups/delete.d.ts.map +1 -0
  157. package/dist/commands/groups/delete.js +30 -0
  158. package/dist/commands/groups/delete.js.map +1 -0
  159. package/dist/commands/groups/index.d.ts +3 -0
  160. package/dist/commands/groups/index.d.ts.map +1 -0
  161. package/dist/commands/groups/index.js +98 -0
  162. package/dist/commands/groups/index.js.map +1 -0
  163. package/dist/commands/groups/list.d.ts +7 -0
  164. package/dist/commands/groups/list.d.ts.map +1 -0
  165. package/dist/commands/groups/list.js +42 -0
  166. package/dist/commands/groups/list.js.map +1 -0
  167. package/dist/commands/groups/members.d.ts +4 -0
  168. package/dist/commands/groups/members.d.ts.map +1 -0
  169. package/dist/commands/groups/members.js +90 -0
  170. package/dist/commands/groups/members.js.map +1 -0
  171. package/dist/commands/groups/rename.d.ts +3 -0
  172. package/dist/commands/groups/rename.d.ts.map +1 -0
  173. package/dist/commands/groups/rename.js +28 -0
  174. package/dist/commands/groups/rename.js.map +1 -0
  175. package/dist/commands/groups/view.d.ts +7 -0
  176. package/dist/commands/groups/view.d.ts.map +1 -0
  177. package/dist/commands/groups/view.js +52 -0
  178. package/dist/commands/groups/view.js.map +1 -0
  179. package/dist/commands/inbox.d.ts +3 -0
  180. package/dist/commands/inbox.d.ts.map +1 -0
  181. package/dist/commands/inbox.js +147 -0
  182. package/dist/commands/inbox.js.map +1 -0
  183. package/dist/commands/mentions.d.ts +3 -0
  184. package/dist/commands/mentions.d.ts.map +1 -0
  185. package/dist/commands/mentions.js +23 -0
  186. package/dist/commands/mentions.js.map +1 -0
  187. package/dist/commands/msg/delete.d.ts +5 -0
  188. package/dist/commands/msg/delete.d.ts.map +1 -0
  189. package/dist/commands/msg/delete.js +31 -0
  190. package/dist/commands/msg/delete.js.map +1 -0
  191. package/dist/commands/msg/index.d.ts +3 -0
  192. package/dist/commands/msg/index.d.ts.map +1 -0
  193. package/dist/commands/msg/index.js +47 -0
  194. package/dist/commands/msg/index.js.map +1 -0
  195. package/dist/commands/msg/update.d.ts +5 -0
  196. package/dist/commands/msg/update.d.ts.map +1 -0
  197. package/dist/commands/msg/update.js +37 -0
  198. package/dist/commands/msg/update.js.map +1 -0
  199. package/dist/commands/msg/view.d.ts +3 -0
  200. package/dist/commands/msg/view.d.ts.map +1 -0
  201. package/dist/commands/msg/view.js +31 -0
  202. package/dist/commands/msg/view.js.map +1 -0
  203. package/dist/commands/react.d.ts +3 -0
  204. package/dist/commands/react.d.ts.map +1 -0
  205. package/dist/commands/react.js +149 -0
  206. package/dist/commands/react.js.map +1 -0
  207. package/dist/commands/search.d.ts +3 -0
  208. package/dist/commands/search.d.ts.map +1 -0
  209. package/dist/commands/search.js +30 -0
  210. package/dist/commands/search.js.map +1 -0
  211. package/dist/commands/skill/index.d.ts +3 -0
  212. package/dist/commands/skill/index.d.ts.map +1 -0
  213. package/dist/commands/skill/index.js +29 -0
  214. package/dist/commands/skill/index.js.map +1 -0
  215. package/dist/commands/skill/install.d.ts +3 -0
  216. package/dist/commands/skill/install.d.ts.map +1 -0
  217. package/dist/commands/skill/install.js +16 -0
  218. package/dist/commands/skill/install.js.map +1 -0
  219. package/dist/commands/skill/list.d.ts +6 -0
  220. package/dist/commands/skill/list.d.ts.map +1 -0
  221. package/dist/commands/skill/list.js +22 -0
  222. package/dist/commands/skill/list.js.map +1 -0
  223. package/dist/commands/skill/uninstall.d.ts +3 -0
  224. package/dist/commands/skill/uninstall.d.ts.map +1 -0
  225. package/dist/commands/skill/uninstall.js +15 -0
  226. package/dist/commands/skill/uninstall.js.map +1 -0
  227. package/dist/commands/skill/update.d.ts +3 -0
  228. package/dist/commands/skill/update.d.ts.map +1 -0
  229. package/dist/commands/skill/update.js +37 -0
  230. package/dist/commands/skill/update.js.map +1 -0
  231. package/dist/commands/thread/create.d.ts +8 -0
  232. package/dist/commands/thread/create.d.ts.map +1 -0
  233. package/dist/commands/thread/create.js +70 -0
  234. package/dist/commands/thread/create.js.map +1 -0
  235. package/dist/commands/thread/delete.d.ts +7 -0
  236. package/dist/commands/thread/delete.d.ts.map +1 -0
  237. package/dist/commands/thread/delete.js +38 -0
  238. package/dist/commands/thread/delete.js.map +1 -0
  239. package/dist/commands/thread/helpers.d.ts +24 -0
  240. package/dist/commands/thread/helpers.d.ts.map +1 -0
  241. package/dist/commands/thread/helpers.js +45 -0
  242. package/dist/commands/thread/helpers.js.map +1 -0
  243. package/dist/commands/thread/index.d.ts +3 -0
  244. package/dist/commands/thread/index.d.ts.map +1 -0
  245. package/dist/commands/thread/index.js +134 -0
  246. package/dist/commands/thread/index.js.map +1 -0
  247. package/dist/commands/thread/mutate.d.ts +5 -0
  248. package/dist/commands/thread/mutate.d.ts.map +1 -0
  249. package/dist/commands/thread/mutate.js +23 -0
  250. package/dist/commands/thread/mutate.js.map +1 -0
  251. package/dist/commands/thread/mute.d.ts +8 -0
  252. package/dist/commands/thread/mute.d.ts.map +1 -0
  253. package/dist/commands/thread/mute.js +63 -0
  254. package/dist/commands/thread/mute.js.map +1 -0
  255. package/dist/commands/thread/rename.d.ts +3 -0
  256. package/dist/commands/thread/rename.d.ts.map +1 -0
  257. package/dist/commands/thread/rename.js +29 -0
  258. package/dist/commands/thread/rename.js.map +1 -0
  259. package/dist/commands/thread/reply.d.ts +9 -0
  260. package/dist/commands/thread/reply.d.ts.map +1 -0
  261. package/dist/commands/thread/reply.js +85 -0
  262. package/dist/commands/thread/reply.js.map +1 -0
  263. package/dist/commands/thread/update.d.ts +5 -0
  264. package/dist/commands/thread/update.d.ts.map +1 -0
  265. package/dist/commands/thread/update.js +45 -0
  266. package/dist/commands/thread/update.js.map +1 -0
  267. package/dist/commands/thread/view.d.ts +9 -0
  268. package/dist/commands/thread/view.d.ts.map +1 -0
  269. package/dist/commands/thread/view.js +171 -0
  270. package/dist/commands/thread/view.js.map +1 -0
  271. package/dist/commands/update/index.d.ts +3 -0
  272. package/dist/commands/update/index.d.ts.map +1 -0
  273. package/dist/commands/update/index.js +14 -0
  274. package/dist/commands/update/index.js.map +1 -0
  275. package/dist/commands/user.d.ts +3 -0
  276. package/dist/commands/user.d.ts.map +1 -0
  277. package/dist/commands/user.js +90 -0
  278. package/dist/commands/user.js.map +1 -0
  279. package/dist/commands/view.d.ts +3 -0
  280. package/dist/commands/view.d.ts.map +1 -0
  281. package/dist/commands/view.js +68 -0
  282. package/dist/commands/view.js.map +1 -0
  283. package/dist/commands/workspace.d.ts +3 -0
  284. package/dist/commands/workspace.d.ts.map +1 -0
  285. package/dist/commands/workspace.js +56 -0
  286. package/dist/commands/workspace.js.map +1 -0
  287. package/dist/index.d.ts +3 -0
  288. package/dist/index.d.ts.map +1 -0
  289. package/dist/index.js +190 -0
  290. package/dist/index.js.map +1 -0
  291. package/dist/lib/api.d.ts +35 -0
  292. package/dist/lib/api.d.ts.map +1 -0
  293. package/dist/lib/api.js +306 -0
  294. package/dist/lib/api.js.map +1 -0
  295. package/dist/lib/auth-constants.d.ts +3 -0
  296. package/dist/lib/auth-constants.d.ts.map +1 -0
  297. package/dist/lib/auth-constants.js +3 -0
  298. package/dist/lib/auth-constants.js.map +1 -0
  299. package/dist/lib/auth-pages.d.ts +3 -0
  300. package/dist/lib/auth-pages.d.ts.map +1 -0
  301. package/dist/lib/auth-pages.js +707 -0
  302. package/dist/lib/auth-pages.js.map +1 -0
  303. package/dist/lib/auth-provider.d.ts +74 -0
  304. package/dist/lib/auth-provider.d.ts.map +1 -0
  305. package/dist/lib/auth-provider.js +238 -0
  306. package/dist/lib/auth-provider.js.map +1 -0
  307. package/dist/lib/auth.d.ts +39 -0
  308. package/dist/lib/auth.d.ts.map +1 -0
  309. package/dist/lib/auth.js +57 -0
  310. package/dist/lib/auth.js.map +1 -0
  311. package/dist/lib/comms-account.d.ts +22 -0
  312. package/dist/lib/comms-account.d.ts.map +1 -0
  313. package/dist/lib/comms-account.js +23 -0
  314. package/dist/lib/comms-account.js.map +1 -0
  315. package/dist/lib/completion.d.ts +31 -0
  316. package/dist/lib/completion.d.ts.map +1 -0
  317. package/dist/lib/completion.js +173 -0
  318. package/dist/lib/completion.js.map +1 -0
  319. package/dist/lib/config.d.ts +61 -0
  320. package/dist/lib/config.d.ts.map +1 -0
  321. package/dist/lib/config.js +184 -0
  322. package/dist/lib/config.js.map +1 -0
  323. package/dist/lib/dates.d.ts +3 -0
  324. package/dist/lib/dates.d.ts.map +1 -0
  325. package/dist/lib/dates.js +44 -0
  326. package/dist/lib/dates.js.map +1 -0
  327. package/dist/lib/errors.d.ts +28 -0
  328. package/dist/lib/errors.d.ts.map +1 -0
  329. package/dist/lib/errors.js +34 -0
  330. package/dist/lib/errors.js.map +1 -0
  331. package/dist/lib/global-args.d.ts +52 -0
  332. package/dist/lib/global-args.d.ts.map +1 -0
  333. package/dist/lib/global-args.js +124 -0
  334. package/dist/lib/global-args.js.map +1 -0
  335. package/dist/lib/input.d.ts +3 -0
  336. package/dist/lib/input.d.ts.map +1 -0
  337. package/dist/lib/input.js +80 -0
  338. package/dist/lib/input.js.map +1 -0
  339. package/dist/lib/markdown.d.ts +3 -0
  340. package/dist/lib/markdown.d.ts.map +1 -0
  341. package/dist/lib/markdown.js +15 -0
  342. package/dist/lib/markdown.js.map +1 -0
  343. package/dist/lib/options.d.ts +16 -0
  344. package/dist/lib/options.d.ts.map +1 -0
  345. package/dist/lib/options.js +2 -0
  346. package/dist/lib/options.js.map +1 -0
  347. package/dist/lib/output.d.ts +41 -0
  348. package/dist/lib/output.d.ts.map +1 -0
  349. package/dist/lib/output.js +184 -0
  350. package/dist/lib/output.js.map +1 -0
  351. package/dist/lib/permissions.d.ts +4 -0
  352. package/dist/lib/permissions.d.ts.map +1 -0
  353. package/dist/lib/permissions.js +41 -0
  354. package/dist/lib/permissions.js.map +1 -0
  355. package/dist/lib/progress.d.ts +29 -0
  356. package/dist/lib/progress.d.ts.map +1 -0
  357. package/dist/lib/progress.js +86 -0
  358. package/dist/lib/progress.js.map +1 -0
  359. package/dist/lib/public-channels.d.ts +4 -0
  360. package/dist/lib/public-channels.d.ts.map +1 -0
  361. package/dist/lib/public-channels.js +32 -0
  362. package/dist/lib/public-channels.js.map +1 -0
  363. package/dist/lib/refs.d.ts +62 -0
  364. package/dist/lib/refs.d.ts.map +1 -0
  365. package/dist/lib/refs.js +378 -0
  366. package/dist/lib/refs.js.map +1 -0
  367. package/dist/lib/search-api.d.ts +25 -0
  368. package/dist/lib/search-api.d.ts.map +1 -0
  369. package/dist/lib/search-api.js +93 -0
  370. package/dist/lib/search-api.js.map +1 -0
  371. package/dist/lib/search-helpers.d.ts +32 -0
  372. package/dist/lib/search-helpers.d.ts.map +1 -0
  373. package/dist/lib/search-helpers.js +183 -0
  374. package/dist/lib/search-helpers.js.map +1 -0
  375. package/dist/lib/skills/content.d.ts +8 -0
  376. package/dist/lib/skills/content.d.ts.map +1 -0
  377. package/dist/lib/skills/content.js +410 -0
  378. package/dist/lib/skills/content.js.map +1 -0
  379. package/dist/lib/skills/create-installer.d.ts +9 -0
  380. package/dist/lib/skills/create-installer.d.ts.map +1 -0
  381. package/dist/lib/skills/create-installer.js +65 -0
  382. package/dist/lib/skills/create-installer.js.map +1 -0
  383. package/dist/lib/skills/index.d.ts +7 -0
  384. package/dist/lib/skills/index.d.ts.map +1 -0
  385. package/dist/lib/skills/index.js +54 -0
  386. package/dist/lib/skills/index.js.map +1 -0
  387. package/dist/lib/skills/types.d.ts +30 -0
  388. package/dist/lib/skills/types.d.ts.map +1 -0
  389. package/dist/lib/skills/types.js +2 -0
  390. package/dist/lib/skills/types.js.map +1 -0
  391. package/dist/lib/skills/update-installed.d.ts +9 -0
  392. package/dist/lib/skills/update-installed.d.ts.map +1 -0
  393. package/dist/lib/skills/update-installed.js +20 -0
  394. package/dist/lib/skills/update-installed.js.map +1 -0
  395. package/dist/lib/spinner.d.ts +3 -0
  396. package/dist/lib/spinner.d.ts.map +1 -0
  397. package/dist/lib/spinner.js +10 -0
  398. package/dist/lib/spinner.js.map +1 -0
  399. package/dist/lib/threads.d.ts +4 -0
  400. package/dist/lib/threads.d.ts.map +1 -0
  401. package/dist/lib/threads.js +6 -0
  402. package/dist/lib/threads.js.map +1 -0
  403. package/dist/lib/update.d.ts +13 -0
  404. package/dist/lib/update.d.ts.map +1 -0
  405. package/dist/lib/update.js +23 -0
  406. package/dist/lib/update.js.map +1 -0
  407. package/dist/lib/user-records.d.ts +15 -0
  408. package/dist/lib/user-records.d.ts.map +1 -0
  409. package/dist/lib/user-records.js +84 -0
  410. package/dist/lib/user-records.js.map +1 -0
  411. package/dist/lib/validation.d.ts +2 -0
  412. package/dist/lib/validation.d.ts.map +1 -0
  413. package/dist/lib/validation.js +7 -0
  414. package/dist/lib/validation.js.map +1 -0
  415. package/dist/postinstall.d.ts +2 -0
  416. package/dist/postinstall.d.ts.map +1 -0
  417. package/dist/postinstall.js +4 -0
  418. package/dist/postinstall.js.map +1 -0
  419. package/package.json +77 -8
  420. package/scripts/check-skill-sync.js +40 -0
  421. package/scripts/postinstall.js +12 -0
  422. package/scripts/sync-skill.js +29 -0
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Per-CLI extension of `@doist/cli-core`'s global-args parser.
3
+ *
4
+ * Layers comms's `--include-private-channels`, `--non-interactive`,
5
+ * `--interactive`, and the `--progress-jsonl <path>` space form on top of
6
+ * the subset of cli-core's canonical shape that comms actually registers
7
+ * with Commander (`--json`, `--ndjson`, `--accessible`, `--no-spinner`,
8
+ * `--progress-jsonl[=path]`).
9
+ *
10
+ * cli-core's parser also surfaces `quiet` and `verbose` from argv, but
11
+ * comms does not register `--quiet` or `--verbose` globally (Commander
12
+ * would reject them) — so we drop them from the exported shape to avoid
13
+ * the type/API leak where helpers believe the binary supports them.
14
+ */
15
+ import { createAccessibleGate, createGlobalArgsStore, createSpinnerGate, parseGlobalArgs as parseCoreGlobalArgs, } from '@doist/cli-core';
16
+ function parseCommsLocalFlags(argv) {
17
+ let includePrivate = false;
18
+ let nonInteractive = false;
19
+ let interactive = false;
20
+ let progressJsonl = false;
21
+ for (let i = 0; i < argv.length; i++) {
22
+ const arg = argv[i];
23
+ if (arg === '--')
24
+ break;
25
+ if (arg === '--include-private-channels') {
26
+ includePrivate = true;
27
+ }
28
+ else if (arg === '--non-interactive') {
29
+ nonInteractive = true;
30
+ }
31
+ else if (arg === '--interactive') {
32
+ interactive = true;
33
+ }
34
+ else if (arg === '--progress-jsonl') {
35
+ // Bare or space form. Last one wins — overwrite any prior value.
36
+ if (i + 1 < argv.length && !argv[i + 1].startsWith('-')) {
37
+ progressJsonl = argv[i + 1];
38
+ i++;
39
+ }
40
+ else {
41
+ progressJsonl = true;
42
+ }
43
+ }
44
+ else if (arg.startsWith('--progress-jsonl=')) {
45
+ progressJsonl = arg.slice('--progress-jsonl='.length);
46
+ }
47
+ }
48
+ return {
49
+ includePrivateChannels: includePrivate,
50
+ nonInteractive,
51
+ interactive,
52
+ progressJsonl,
53
+ };
54
+ }
55
+ function parseFullArgs(argv) {
56
+ const args = argv ?? process.argv;
57
+ const base = parseCoreGlobalArgs(args);
58
+ const local = parseCommsLocalFlags(args);
59
+ return {
60
+ ...base,
61
+ progressJsonl: local.progressJsonl,
62
+ progressJsonlPath: typeof local.progressJsonl === 'string' ? local.progressJsonl : undefined,
63
+ includePrivateChannels: local.includePrivateChannels,
64
+ nonInteractive: local.nonInteractive,
65
+ interactive: local.interactive,
66
+ };
67
+ }
68
+ /**
69
+ * Parse well-known global flags from an argv array. Pure — pass an explicit
70
+ * array for testing, or omit to read `process.argv`. Returns the narrowed
71
+ * comms surface; cli-core's `quiet` and `verbose` are intentionally
72
+ * dropped (see {@link GlobalArgs}).
73
+ */
74
+ export function parseGlobalArgs(argv) {
75
+ const { quiet: _quiet, verbose: _verbose, ...rest } = parseFullArgs(argv);
76
+ return rest;
77
+ }
78
+ const store = createGlobalArgsStore(() => parseFullArgs());
79
+ /** Clear the cached parse result. Call in test teardown. */
80
+ export const resetGlobalArgs = store.reset;
81
+ // ---------------------------------------------------------------------------
82
+ // Query functions — drop-in replacements for the old process.argv checks
83
+ // ---------------------------------------------------------------------------
84
+ export function isJsonMode() {
85
+ return store.get().json;
86
+ }
87
+ export function isNdjsonMode() {
88
+ return store.get().ndjson;
89
+ }
90
+ /** Pre-subcommand `tdc --user <ref>` (see `stripUserFlag` in `src/index.ts`). */
91
+ export function getRequestedUserRef() {
92
+ return store.get().user;
93
+ }
94
+ export function isNonInteractive() {
95
+ const args = store.get();
96
+ if (args.interactive)
97
+ return false;
98
+ if (args.nonInteractive)
99
+ return true;
100
+ return !process.stdin.isTTY;
101
+ }
102
+ export function includePrivateChannels() {
103
+ const envVal = process.env.COMMS_INCLUDE_PRIVATE_CHANNELS;
104
+ if (envVal === '1' || envVal === 'true') {
105
+ return true;
106
+ }
107
+ return store.get().includePrivateChannels;
108
+ }
109
+ export function isProgressJsonlEnabled() {
110
+ return store.get().progressJsonl !== false;
111
+ }
112
+ export function getProgressJsonlPath() {
113
+ return store.get().progressJsonlPath;
114
+ }
115
+ export const isAccessible = createAccessibleGate({
116
+ envVar: 'TDC_ACCESSIBLE',
117
+ getArgs: store.get,
118
+ });
119
+ export const shouldDisableSpinner = createSpinnerGate({
120
+ envVar: 'TDC_SPINNER',
121
+ getArgs: store.get,
122
+ extraTriggers: () => store.get().nonInteractive,
123
+ });
124
+ //# sourceMappingURL=global-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-args.js","sourceRoot":"","sources":["../../src/lib/global-args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function readStdin(): Promise<string | null>;
2
+ export declare function openEditor(): Promise<string | null>;
3
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/lib/input.ts"],"names":[],"mappings":"AAQA,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCzD"}
@@ -0,0 +1,80 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { readFile, unlink, writeFile } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { isNonInteractive } from './global-args.js';
6
+ const STDIN_TIMEOUT_MS = 100;
7
+ export async function readStdin() {
8
+ if (process.stdin.isTTY) {
9
+ return null;
10
+ }
11
+ return new Promise((resolve) => {
12
+ let data = '';
13
+ let settled = false;
14
+ let timeout;
15
+ const settle = (value) => {
16
+ if (settled)
17
+ return;
18
+ settled = true;
19
+ if (timeout)
20
+ clearTimeout(timeout);
21
+ process.stdin.removeListener('data', onData);
22
+ process.stdin.removeListener('end', onEnd);
23
+ process.stdin.removeListener('error', onError);
24
+ resolve(value);
25
+ };
26
+ const onData = (chunk) => {
27
+ data += chunk;
28
+ // Data arrived — clear any non-interactive timeout and wait for end
29
+ if (timeout) {
30
+ clearTimeout(timeout);
31
+ timeout = undefined;
32
+ }
33
+ };
34
+ const onEnd = () => settle(data.trim() || null);
35
+ const onError = () => settle(null);
36
+ process.stdin.setEncoding('utf8');
37
+ process.stdin.on('data', onData);
38
+ process.stdin.on('end', onEnd);
39
+ process.stdin.on('error', onError);
40
+ // In non-interactive mode, don't wait indefinitely for a pipe that may never close
41
+ if (isNonInteractive()) {
42
+ timeout = setTimeout(() => {
43
+ settle(data.trim() || null);
44
+ }, STDIN_TIMEOUT_MS);
45
+ }
46
+ });
47
+ }
48
+ export async function openEditor() {
49
+ if (isNonInteractive()) {
50
+ return null;
51
+ }
52
+ const editor = process.env.EDITOR || process.env.VISUAL || 'vi';
53
+ const tmpFile = join(tmpdir(), `comms-cli-${Date.now()}.md`);
54
+ await writeFile(tmpFile, '');
55
+ return new Promise((resolve) => {
56
+ const child = spawn(editor, [tmpFile], {
57
+ stdio: 'inherit',
58
+ });
59
+ child.on('exit', async (code) => {
60
+ if (code !== 0) {
61
+ await unlink(tmpFile).catch(() => { });
62
+ resolve(null);
63
+ return;
64
+ }
65
+ try {
66
+ const content = await readFile(tmpFile, 'utf8');
67
+ await unlink(tmpFile).catch(() => { });
68
+ resolve(content.trim() || null);
69
+ }
70
+ catch {
71
+ resolve(null);
72
+ }
73
+ });
74
+ child.on('error', async () => {
75
+ await unlink(tmpFile).catch(() => { });
76
+ resolve(null);
77
+ });
78
+ });
79
+ }
80
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/lib/input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function preloadMarkdown(): Promise<void>;
2
+ export declare function renderMarkdown(content: string): Promise<string>;
3
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/lib/markdown.ts"],"names":[],"mappings":"AAWA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrE"}
@@ -0,0 +1,15 @@
1
+ import { preloadMarkdown as corePreloadMarkdown, renderMarkdown as coreRenderMarkdown, } from '@doist/cli-core/markdown';
2
+ let preloadPromise = null;
3
+ function preprocessMentions(content) {
4
+ return content.replace(/\[([^\]]+)\]\((comms-mention:\/\/\d+)\)/g, '[@$1]($2)');
5
+ }
6
+ export async function preloadMarkdown() {
7
+ if (!preloadPromise)
8
+ preloadPromise = corePreloadMarkdown();
9
+ return preloadPromise;
10
+ }
11
+ export async function renderMarkdown(content) {
12
+ await preloadMarkdown();
13
+ return coreRenderMarkdown(preprocessMentions(content));
14
+ }
15
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/lib/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,IAAI,mBAAmB,EACtC,cAAc,IAAI,kBAAkB,GACvC,MAAM,0BAA0B,CAAA;AAEjC,IAAI,cAAc,GAAyB,IAAI,CAAA;AAE/C,SAAS,kBAAkB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,0CAA0C,EAAE,WAAW,CAAC,CAAA;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,IAAI,CAAC,cAAc;QAAE,cAAc,GAAG,mBAAmB,EAAE,CAAA;IAC3D,OAAO,cAAc,CAAA;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe;IAChD,MAAM,eAAe,EAAE,CAAA;IACvB,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;AAC1D,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ViewOptions as CoreViewOptions } from '@doist/cli-core';
2
+ export type ViewOptions = CoreViewOptions & {
3
+ full?: boolean;
4
+ raw?: boolean;
5
+ };
6
+ export type PaginatedViewOptions = ViewOptions & {
7
+ limit?: string;
8
+ since?: string;
9
+ until?: string;
10
+ };
11
+ export type MutationOptions = {
12
+ dryRun?: boolean;
13
+ json?: boolean;
14
+ full?: boolean;
15
+ };
16
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAErE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG;IACxC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/lib/options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import type { BaseCliError } from './errors.js';
2
+ type AnyCliError = BaseCliError<string>;
3
+ export declare const colors: {
4
+ author: import("chalk").ChalkInstance;
5
+ timestamp: import("chalk").ChalkInstance;
6
+ channel: import("chalk").ChalkInstance;
7
+ unread: import("chalk").ChalkInstance;
8
+ url: import("chalk").ChalkInstance;
9
+ error: import("chalk").ChalkInstance;
10
+ };
11
+ export type EntityType = 'thread' | 'comment' | 'conversation' | 'message' | 'workspace' | 'user' | 'channel' | 'group';
12
+ export declare function filterEntityFields<T extends object>(data: T, type: EntityType, full?: boolean): T | Partial<T>;
13
+ export declare function filterEntityFields<T extends object>(data: T[], type: EntityType, full?: boolean): Array<T | Partial<T>>;
14
+ export declare function formatJson<T extends object>(data: T | T[], type?: EntityType, full?: boolean): string;
15
+ export declare function formatNdjson<T extends object>(items: T[], type?: EntityType, full?: boolean): string;
16
+ export interface PaginatedOutput<T> {
17
+ results: T[];
18
+ nextCursor: string | null;
19
+ }
20
+ export declare function formatPaginatedJson<T extends object>(data: PaginatedOutput<T>, type?: EntityType, full?: boolean): string;
21
+ export declare function formatPaginatedNdjson<T extends object>(data: PaginatedOutput<T>, type?: EntityType, full?: boolean): string;
22
+ export declare function formatError(error: AnyCliError): string;
23
+ export declare function formatError(message: string): string;
24
+ export declare function formatErrorJson(error: AnyCliError): string;
25
+ export declare function formatErrorJson(code: string, message: string, hints?: string[]): string;
26
+ export declare function printError(message: string): void;
27
+ export declare function printJson<T extends object>(data: T | T[], type?: EntityType, full?: boolean): void;
28
+ export declare function printNdjson<T extends object>(items: T[], type?: EntityType, full?: boolean): void;
29
+ export declare function printEmpty({ options, type, message, }: {
30
+ options: {
31
+ json?: boolean;
32
+ ndjson?: boolean;
33
+ full?: boolean;
34
+ };
35
+ type: EntityType;
36
+ message: string;
37
+ }): void;
38
+ export declare function pluralize(count: number, singular: string): string;
39
+ export declare function printDryRun(action: string, details?: Record<string, string | undefined>): void;
40
+ export {};
41
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ import { formatJson as formatJsonCore, formatNdjson as formatNdjsonCore } from '@doist/cli-core';
2
+ import chalk from 'chalk';
3
+ export const colors = {
4
+ author: chalk.cyan,
5
+ timestamp: chalk.dim,
6
+ channel: chalk.blue,
7
+ unread: chalk.bold,
8
+ url: chalk.dim,
9
+ error: chalk.red,
10
+ };
11
+ const THREAD_ESSENTIAL_FIELDS = [
12
+ 'id',
13
+ 'title',
14
+ 'channelId',
15
+ 'workspaceId',
16
+ 'creator',
17
+ 'posted',
18
+ 'lastUpdated',
19
+ 'commentCount',
20
+ 'isArchived',
21
+ 'isUnread',
22
+ 'url',
23
+ 'reactions',
24
+ ];
25
+ const COMMENT_ESSENTIAL_FIELDS = [
26
+ 'id',
27
+ 'content',
28
+ 'creator',
29
+ 'threadId',
30
+ 'posted',
31
+ 'reactions',
32
+ ];
33
+ const CONVERSATION_ESSENTIAL_FIELDS = [
34
+ 'id',
35
+ 'workspaceId',
36
+ 'userIds',
37
+ 'title',
38
+ 'messageCount',
39
+ 'lastActive',
40
+ 'archived',
41
+ ];
42
+ const MESSAGE_ESSENTIAL_FIELDS = [
43
+ 'id',
44
+ 'content',
45
+ 'creator',
46
+ 'conversationId',
47
+ 'posted',
48
+ 'reactions',
49
+ ];
50
+ const WORKSPACE_ESSENTIAL_FIELDS = ['id', 'name', 'creator', 'plan'];
51
+ const USER_ESSENTIAL_FIELDS = ['id', 'fullName', 'email', 'timezone', 'userType'];
52
+ const CHANNEL_ESSENTIAL_FIELDS = [
53
+ 'id',
54
+ 'name',
55
+ 'description',
56
+ 'workspaceId',
57
+ 'public',
58
+ 'archived',
59
+ 'url',
60
+ ];
61
+ const GROUP_ESSENTIAL_FIELDS = ['id', 'name', 'workspaceId', 'userIds'];
62
+ function getEssentialFields(type) {
63
+ switch (type) {
64
+ case 'thread':
65
+ return THREAD_ESSENTIAL_FIELDS;
66
+ case 'comment':
67
+ return COMMENT_ESSENTIAL_FIELDS;
68
+ case 'conversation':
69
+ return CONVERSATION_ESSENTIAL_FIELDS;
70
+ case 'message':
71
+ return MESSAGE_ESSENTIAL_FIELDS;
72
+ case 'workspace':
73
+ return WORKSPACE_ESSENTIAL_FIELDS;
74
+ case 'user':
75
+ return USER_ESSENTIAL_FIELDS;
76
+ case 'channel':
77
+ return CHANNEL_ESSENTIAL_FIELDS;
78
+ case 'group':
79
+ return GROUP_ESSENTIAL_FIELDS;
80
+ }
81
+ }
82
+ function pickFields(item, fields) {
83
+ const result = {};
84
+ for (const field of fields) {
85
+ if (field in item) {
86
+ ;
87
+ result[field] = item[field];
88
+ }
89
+ }
90
+ return result;
91
+ }
92
+ export function filterEntityFields(data, type, full = false) {
93
+ if (full) {
94
+ return data;
95
+ }
96
+ const fields = getEssentialFields(type);
97
+ if (Array.isArray(data)) {
98
+ return data.map((item) => pickFields(item, fields));
99
+ }
100
+ return pickFields(data, fields);
101
+ }
102
+ export function formatJson(data, type, full = false) {
103
+ if (full || !type)
104
+ return formatJsonCore(data);
105
+ return formatJsonCore(filterEntityFields(data, type));
106
+ }
107
+ export function formatNdjson(items, type, full = false) {
108
+ if (full || !type)
109
+ return formatNdjsonCore(items);
110
+ return formatNdjsonCore(filterEntityFields(items, type));
111
+ }
112
+ export function formatPaginatedJson(data, type, full = false) {
113
+ const results = type ? filterEntityFields(data.results, type, full) : data.results;
114
+ return formatJson({ results, nextCursor: data.nextCursor });
115
+ }
116
+ export function formatPaginatedNdjson(data, type, full = false) {
117
+ if (!data.nextCursor)
118
+ return formatNdjson(data.results, type, full);
119
+ // Build the trailer with a string concat (not an array spread) so a
120
+ // 10k-row page doesn't pay an O(n) copy just to add one meta line.
121
+ const body = formatNdjson(data.results, type, full);
122
+ const trailer = JSON.stringify({ _meta: true, nextCursor: data.nextCursor });
123
+ return body ? `${body}\n${trailer}` : trailer;
124
+ }
125
+ export function formatError(messageOrError) {
126
+ if (typeof messageOrError === 'string') {
127
+ return colors.error(messageOrError);
128
+ }
129
+ const color = messageOrError.type === 'info' ? chalk.yellow : chalk.red;
130
+ const lines = messageOrError.type === 'info'
131
+ ? [messageOrError.message]
132
+ : [`Error: ${messageOrError.code}`, messageOrError.message];
133
+ if (messageOrError.hints && messageOrError.hints.length > 0) {
134
+ lines.push('');
135
+ for (const hint of messageOrError.hints) {
136
+ lines.push(` - ${hint}`);
137
+ }
138
+ }
139
+ return color(lines.join('\n'));
140
+ }
141
+ export function formatErrorJson(codeOrError, message, hints) {
142
+ if (typeof codeOrError === 'string') {
143
+ return JSON.stringify({ error: { code: codeOrError, message, hints } });
144
+ }
145
+ return JSON.stringify({
146
+ error: { code: codeOrError.code, message: codeOrError.message, hints: codeOrError.hints },
147
+ });
148
+ }
149
+ export function printError(message) {
150
+ console.error(formatError(message));
151
+ }
152
+ export function printJson(data, type, full = false) {
153
+ console.log(formatJson(data, type, full));
154
+ }
155
+ export function printNdjson(items, type, full = false) {
156
+ console.log(formatNdjson(items, type, full));
157
+ }
158
+ export function printEmpty({ options, type, message, }) {
159
+ if (options.json) {
160
+ console.log(formatJson([], type, options.full));
161
+ return;
162
+ }
163
+ if (options.ndjson) {
164
+ return;
165
+ }
166
+ console.log(message);
167
+ }
168
+ export function pluralize(count, singular) {
169
+ return count === 1 ? singular : `${singular}s`;
170
+ }
171
+ export function printDryRun(action, details = {}) {
172
+ console.log(chalk.yellow(`[dry-run] Would ${action}:`));
173
+ for (const [key, value] of Object.entries(details)) {
174
+ if (value !== undefined) {
175
+ const [firstLine, ...rest] = value.split('\n');
176
+ console.log(` ${key}: ${firstLine}`);
177
+ for (const line of rest) {
178
+ console.log(` ${line}`);
179
+ }
180
+ }
181
+ }
182
+ console.log(chalk.dim('Run without --dry-run to execute.'));
183
+ }
184
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const READ_ONLY_ERROR_MESSAGE = "This CLI is authenticated in read-only mode. Re-run `tdc auth login` without --read-only to enable write operations.";
2
+ export declare function isMutatingMethod(methodPath: string): boolean;
3
+ export declare function ensureWriteAllowed(): Promise<void>;
4
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/lib/permissions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,uBAAuB,yHACsF,CAAA;AA6B1H,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOxD"}
@@ -0,0 +1,41 @@
1
+ import { getAuthMetadata } from './auth.js';
2
+ import { CliError } from './errors.js';
3
+ export const READ_ONLY_ERROR_MESSAGE = 'This CLI is authenticated in read-only mode. Re-run `tdc auth login` without --read-only to enable write operations.';
4
+ /**
5
+ * Known read-only API method paths. Any method not in this set is assumed to be mutating.
6
+ * This is a safe-by-default approach: new API methods are blocked until explicitly allowed.
7
+ */
8
+ const KNOWN_SAFE_API_METHODS = new Set([
9
+ 'users.getSessionUser',
10
+ 'workspaces.getWorkspaces',
11
+ 'workspaces.getPublicChannels',
12
+ 'workspaceUsers.getWorkspaceUsers',
13
+ 'workspaceUsers.getUserById',
14
+ 'threads.getThread',
15
+ 'threads.getUnread',
16
+ 'comments.getComment',
17
+ 'comments.getComments',
18
+ 'channels.getChannel',
19
+ 'channels.getChannels',
20
+ 'conversations.getConversations',
21
+ 'conversations.getConversation',
22
+ 'conversations.getUnread',
23
+ 'conversationMessages.getMessage',
24
+ 'conversationMessages.getMessages',
25
+ 'inbox.getInbox',
26
+ 'groups.getGroups',
27
+ 'groups.getGroup',
28
+ 'batch',
29
+ ]);
30
+ export function isMutatingMethod(methodPath) {
31
+ return !KNOWN_SAFE_API_METHODS.has(methodPath);
32
+ }
33
+ export async function ensureWriteAllowed() {
34
+ const metadata = await getAuthMetadata();
35
+ if (metadata.authMode === 'read-only') {
36
+ throw new CliError('READ_ONLY', READ_ONLY_ERROR_MESSAGE, [
37
+ 'Re-run: tdc auth login (without --read-only)',
38
+ ]);
39
+ }
40
+ }
41
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/lib/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,CAAC,MAAM,uBAAuB,GAChC,sHAAsH,CAAA;AAE1H;;;GAGG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACnC,sBAAsB;IACtB,0BAA0B;IAC1B,8BAA8B;IAC9B,kCAAkC;IAClC,4BAA4B;IAC5B,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,gCAAgC;IAChC,+BAA+B;IAC/B,yBAAyB;IACzB,iCAAiC;IACjC,kCAAkC;IAClC,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,OAAO;CACV,CAAC,CAAA;AAEF,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IAC/C,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACpC,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAA;IACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,uBAAuB,EAAE;YACrD,8CAA8C;SACjD,CAAC,CAAA;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,29 @@
1
+ export type ProgressEvent = {
2
+ type: 'start' | 'api_call' | 'api_response' | 'complete' | 'error';
3
+ timestamp: string;
4
+ command?: string;
5
+ endpoint?: string;
6
+ cursor?: string | null;
7
+ count?: number;
8
+ has_more?: boolean;
9
+ next_cursor?: string | null;
10
+ error_code?: string;
11
+ message?: string;
12
+ };
13
+ export declare class ProgressTracker {
14
+ private enabled;
15
+ private outputStream;
16
+ constructor();
17
+ private checkAndInitialize;
18
+ isEnabled(): boolean;
19
+ emit(event: Omit<ProgressEvent, 'timestamp'>): void;
20
+ emitStart(command: string): void;
21
+ emitApiCall(endpoint: string, cursor?: string | null): void;
22
+ emitApiResponse(count: number, hasMore: boolean, nextCursor?: string | null): void;
23
+ emitComplete(): void;
24
+ emitError(errorCode?: string, message?: string): void;
25
+ close(): void;
26
+ }
27
+ export declare function getProgressTracker(): ProgressTracker;
28
+ export declare function resetProgressTracker(): void;
29
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,OAAO,CAAA;IAClE,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,YAAY,CAAsD;;IAM1E,OAAO,CAAC,kBAAkB;IAwB1B,SAAS,IAAI,OAAO;IAIpB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI;IAcnD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI3D,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASlF,YAAY,IAAI,IAAI;IAIpB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrD,KAAK,IAAI,IAAI;CAOhB;AAKD,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}