@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,86 @@
1
+ import fs from 'node:fs';
2
+ import { getProgressJsonlPath, isProgressJsonlEnabled } from './global-args.js';
3
+ export class ProgressTracker {
4
+ enabled = false;
5
+ outputStream = null;
6
+ constructor() {
7
+ this.checkAndInitialize();
8
+ }
9
+ checkAndInitialize() {
10
+ if (!isProgressJsonlEnabled()) {
11
+ return;
12
+ }
13
+ this.enabled = true;
14
+ const outputPath = getProgressJsonlPath();
15
+ if (outputPath) {
16
+ try {
17
+ this.outputStream = fs.createWriteStream(outputPath, { flags: 'a' });
18
+ }
19
+ catch (_error) {
20
+ // Fall back to stderr if file creation fails
21
+ console.error(`Warning: Could not create progress file ${outputPath}, falling back to stderr`);
22
+ this.outputStream = process.stderr;
23
+ }
24
+ }
25
+ else {
26
+ this.outputStream = process.stderr;
27
+ }
28
+ }
29
+ isEnabled() {
30
+ return this.enabled;
31
+ }
32
+ emit(event) {
33
+ if (!this.enabled || !this.outputStream) {
34
+ return;
35
+ }
36
+ const progressEvent = {
37
+ ...event,
38
+ timestamp: new Date().toISOString(),
39
+ };
40
+ const line = `${JSON.stringify(progressEvent)}\n`;
41
+ this.outputStream.write(line);
42
+ }
43
+ emitStart(command) {
44
+ this.emit({ type: 'start', command });
45
+ }
46
+ emitApiCall(endpoint, cursor) {
47
+ this.emit({ type: 'api_call', endpoint, cursor });
48
+ }
49
+ emitApiResponse(count, hasMore, nextCursor) {
50
+ this.emit({
51
+ type: 'api_response',
52
+ count,
53
+ has_more: hasMore,
54
+ next_cursor: nextCursor,
55
+ });
56
+ }
57
+ emitComplete() {
58
+ this.emit({ type: 'complete' });
59
+ }
60
+ emitError(errorCode, message) {
61
+ this.emit({ type: 'error', error_code: errorCode, message });
62
+ }
63
+ close() {
64
+ if (this.outputStream && this.outputStream !== process.stderr) {
65
+ ;
66
+ this.outputStream.close();
67
+ }
68
+ this.enabled = false;
69
+ this.outputStream = null;
70
+ }
71
+ }
72
+ // Global singleton instance
73
+ let progressTracker = null;
74
+ export function getProgressTracker() {
75
+ if (!progressTracker) {
76
+ progressTracker = new ProgressTracker();
77
+ }
78
+ return progressTracker;
79
+ }
80
+ export function resetProgressTracker() {
81
+ if (progressTracker) {
82
+ progressTracker.close();
83
+ }
84
+ progressTracker = null;
85
+ }
86
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function getPublicChannelIds(workspaceId: number): Promise<Set<string>>;
2
+ export declare function clearPublicChannelCache(): void;
3
+ export declare function assertChannelIsPublic(channelId: string, workspaceId: number): Promise<void>;
4
+ //# sourceMappingURL=public-channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-channels.d.ts","sourceRoot":"","sources":["../../src/lib/public-channels.ts"],"names":[],"mappings":"AAMA,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAYnF;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjG"}
@@ -0,0 +1,32 @@
1
+ import { getCommsClient } from './api.js';
2
+ import { CliError } from './errors.js';
3
+ import { includePrivateChannels } from './global-args.js';
4
+ const publicChannelCache = new Map();
5
+ export async function getPublicChannelIds(workspaceId) {
6
+ const cached = publicChannelCache.get(workspaceId);
7
+ if (cached)
8
+ return cached;
9
+ const client = await getCommsClient();
10
+ const channels = await client.channels.getChannels({ workspaceId });
11
+ const publicIds = new Set();
12
+ for (const ch of channels) {
13
+ if (ch.public)
14
+ publicIds.add(ch.id);
15
+ }
16
+ publicChannelCache.set(workspaceId, publicIds);
17
+ return publicIds;
18
+ }
19
+ export function clearPublicChannelCache() {
20
+ publicChannelCache.clear();
21
+ }
22
+ export async function assertChannelIsPublic(channelId, workspaceId) {
23
+ if (includePrivateChannels())
24
+ return;
25
+ const publicIds = await getPublicChannelIds(workspaceId);
26
+ if (!publicIds.has(channelId)) {
27
+ throw new CliError('NOT_FOUND', 'This thread belongs to a private channel.', [
28
+ 'Use --include-private-channels to access it',
29
+ ]);
30
+ }
31
+ }
32
+ //# sourceMappingURL=public-channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-channels.js","sourceRoot":"","sources":["../../src/lib/public-channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAuB,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAClD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QACxB,IAAI,EAAE,CAAC,MAAM;YAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC9C,OAAO,SAAS,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACnC,kBAAkB,CAAC,KAAK,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,SAAiB,EAAE,WAAmB;IAC9E,IAAI,sBAAsB,EAAE;QAAE,OAAM;IACpC,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAA;IACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,2CAA2C,EAAE;YACzE,6CAA6C;SAChD,CAAC,CAAA;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,62 @@
1
+ import type { Channel, Group, Workspace } from '@doist/comms-sdk';
2
+ export declare function isIdRef(ref: string): boolean;
3
+ /**
4
+ * Returns the raw id portion of `123`, `id:123`, or `id:abc-xyz`. The Comms
5
+ * backend uses numeric ids for users and workspaces and base58 UUIDv7 strings
6
+ * for everything else, so this stays string-typed and consumers narrow as
7
+ * needed (`Number(...)` for numeric refs after validation).
8
+ */
9
+ export declare function extractId(ref: string): string;
10
+ export declare function extractNumericId(ref: string): number;
11
+ export declare function parseNumericIdRefs(refs: string, label?: string): number[] | null;
12
+ export declare function looksLikeRawId(ref: string): boolean;
13
+ export interface ParsedCommsUrl {
14
+ workspaceId?: number;
15
+ channelId?: string;
16
+ threadId?: string;
17
+ commentId?: string;
18
+ conversationId?: string;
19
+ messageId?: string;
20
+ }
21
+ export declare function parseCommsUrl(url: string): ParsedCommsUrl | null;
22
+ export type ParsedRef = {
23
+ type: 'id';
24
+ id: string;
25
+ } | {
26
+ type: 'url';
27
+ parsed: ParsedCommsUrl;
28
+ } | {
29
+ type: 'name';
30
+ name: string;
31
+ };
32
+ export declare function parseRef(ref: string): ParsedRef;
33
+ export declare function resolveWorkspaceRef(ref: string): Promise<Workspace>;
34
+ export declare function resolveThreadId(ref: string): string;
35
+ export declare function resolveChannelRef(ref: string, workspaceId: number): Promise<Channel>;
36
+ export declare function resolveChannelId(ref: string): string;
37
+ export declare function getDirectChannelId(ref: string): string | null;
38
+ export declare function resolveCommentId(ref: string): string;
39
+ export declare function resolveConversationId(ref: string): string;
40
+ export declare function resolveMessageId(ref: string): string;
41
+ export type CommsUrlRoute = {
42
+ entityType: 'message' | 'conversation' | 'comment' | 'thread';
43
+ url: string;
44
+ };
45
+ export declare function classifyCommsUrl(url: string): CommsUrlRoute | null;
46
+ /**
47
+ * Split a list of notify refs into numeric user IDs and base58 group IDs by
48
+ * checking each ref against the workspace's known group IDs. Anything not in
49
+ * the group set is treated as a user ID and parsed as a number.
50
+ */
51
+ export declare function partitionNotifyIds(ids: readonly string[], groupIds: ReadonlySet<string>): {
52
+ userIds: number[];
53
+ groupIds: string[];
54
+ };
55
+ /**
56
+ * Parse a comma-separated list of notify refs into raw IDs (untyped — callers
57
+ * use {@link partitionNotifyIds} to split into users vs. groups).
58
+ */
59
+ export declare function parseNotifyIdRefs(refs: string): string[];
60
+ export declare function resolveGroupRef(ref: string, workspaceId: number): Promise<Group>;
61
+ export declare function resolveUserRefs(refs: string, workspaceId: number): Promise<number[]>;
62
+ //# sourceMappingURL=refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/lib/refs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,378 @@
1
+ import { fetchWorkspaces, getGroup, getWorkspaceGroups, getCommsClient } from './api.js';
2
+ import { CliError } from './errors.js';
3
+ function normalizeRef(ref) {
4
+ return ref.trim();
5
+ }
6
+ export function isIdRef(ref) {
7
+ return normalizeRef(ref).startsWith('id:');
8
+ }
9
+ /**
10
+ * Returns the raw id portion of `123`, `id:123`, or `id:abc-xyz`. The Comms
11
+ * backend uses numeric ids for users and workspaces and base58 UUIDv7 strings
12
+ * for everything else, so this stays string-typed and consumers narrow as
13
+ * needed (`Number(...)` for numeric refs after validation).
14
+ */
15
+ export function extractId(ref) {
16
+ const normalized = normalizeRef(ref);
17
+ const idStr = isIdRef(normalized) ? normalized.slice(3).trim() : normalized;
18
+ if (!idStr) {
19
+ throw new CliError('INVALID_ID', `Invalid ID: ${ref}`);
20
+ }
21
+ return idStr;
22
+ }
23
+ export function extractNumericId(ref) {
24
+ const idStr = extractId(ref);
25
+ if (!/^\d+$/.test(idStr)) {
26
+ throw new CliError('INVALID_ID', `Invalid numeric ID: ${ref}`);
27
+ }
28
+ return Number(idStr);
29
+ }
30
+ export function parseNumericIdRefs(refs, label = 'reference') {
31
+ const ids = [];
32
+ for (const rawRef of refs.split(',')) {
33
+ const ref = rawRef.trim();
34
+ if (!ref) {
35
+ throw new CliError('INVALID_REF', `Invalid ${label} reference list: found empty value`);
36
+ }
37
+ const id = extractId(ref);
38
+ if (!/^\d+$/.test(id)) {
39
+ return null;
40
+ }
41
+ ids.push(Number(id));
42
+ }
43
+ return ids;
44
+ }
45
+ export function looksLikeRawId(ref) {
46
+ const normalized = normalizeRef(ref);
47
+ if (!normalized || normalized.includes(' '))
48
+ return false;
49
+ return /^[A-Za-z0-9_-]+$/.test(normalized) && /\d/.test(normalized);
50
+ }
51
+ export function parseCommsUrl(url) {
52
+ try {
53
+ const parsed = new URL(url);
54
+ if (!parsed.hostname.includes('comms.todoist.com')) {
55
+ return null;
56
+ }
57
+ const path = parsed.pathname;
58
+ const result = {};
59
+ // Pattern: /a/{workspaceId}/ch/{channelId}/t/{threadId}/c/{commentId}
60
+ // Pattern: /a/{workspaceId}/msg/{conversationId}/m/{messageId}
61
+ const workspaceMatch = path.match(/\/a\/(\d+)/);
62
+ if (workspaceMatch) {
63
+ result.workspaceId = parseInt(workspaceMatch[1], 10);
64
+ }
65
+ const channelMatch = path.match(/\/ch\/([A-Za-z0-9_-]+)/);
66
+ if (channelMatch) {
67
+ result.channelId = channelMatch[1];
68
+ }
69
+ const threadMatch = path.match(/\/t\/([A-Za-z0-9_-]+)/);
70
+ if (threadMatch) {
71
+ result.threadId = threadMatch[1];
72
+ }
73
+ const commentMatch = path.match(/\/c\/([A-Za-z0-9_-]+)/);
74
+ if (commentMatch) {
75
+ result.commentId = commentMatch[1];
76
+ }
77
+ const conversationMatch = path.match(/\/msg\/([A-Za-z0-9_-]+)/);
78
+ if (conversationMatch) {
79
+ result.conversationId = conversationMatch[1];
80
+ }
81
+ const messageMatch = path.match(/\/m\/([A-Za-z0-9_-]+)/);
82
+ if (messageMatch) {
83
+ result.messageId = messageMatch[1];
84
+ }
85
+ return Object.keys(result).length > 0 ? result : null;
86
+ }
87
+ catch {
88
+ return null;
89
+ }
90
+ }
91
+ export function parseRef(ref) {
92
+ const normalized = normalizeRef(ref);
93
+ if (isIdRef(normalized)) {
94
+ return { type: 'id', id: extractId(normalized) };
95
+ }
96
+ if (normalized.startsWith('http://') || normalized.startsWith('https://')) {
97
+ const parsed = parseCommsUrl(normalized);
98
+ if (parsed) {
99
+ return { type: 'url', parsed };
100
+ }
101
+ }
102
+ if (looksLikeRawId(normalized)) {
103
+ return { type: 'id', id: normalized };
104
+ }
105
+ return { type: 'name', name: normalized };
106
+ }
107
+ /**
108
+ * Match an entity by name: exact (case-insensitive) → unique substring → ambiguous/not-found.
109
+ */
110
+ function matchByName(items, query, opts) {
111
+ const lower = query.toLowerCase();
112
+ const exact = items.find((item) => item.name.toLowerCase() === lower);
113
+ if (exact)
114
+ return exact;
115
+ const partial = items.filter((item) => item.name.toLowerCase().includes(lower));
116
+ if (partial.length === 1)
117
+ return partial[0];
118
+ if (partial.length > 1) {
119
+ const matches = partial
120
+ .slice(0, 5)
121
+ .map((item) => `"${item.name}" (id:${item.id})`)
122
+ .join(', ');
123
+ throw new CliError(opts.ambiguousCode, `Multiple matches for "${opts.ref}": ${matches}`, [
124
+ 'Use the numeric ID (e.g. id:123) to specify exactly which one.',
125
+ ]);
126
+ }
127
+ throw new CliError(opts.notFoundCode, `"${opts.ref}" not found`, [opts.listHint]);
128
+ }
129
+ export async function resolveWorkspaceRef(ref) {
130
+ const workspaces = await fetchWorkspaces();
131
+ const parsed = parseRef(ref);
132
+ if (parsed.type === 'id') {
133
+ const numericId = Number(parsed.id);
134
+ if (!Number.isFinite(numericId)) {
135
+ throw new CliError('WORKSPACE_NOT_FOUND', `Workspace with ID ${parsed.id} not found`, [
136
+ 'Run: tdc workspaces to list available workspaces',
137
+ ]);
138
+ }
139
+ const workspace = workspaces.find((w) => w.id === numericId);
140
+ if (!workspace) {
141
+ throw new CliError('WORKSPACE_NOT_FOUND', `Workspace with ID ${parsed.id} not found`, [
142
+ 'Run: tdc workspaces to list available workspaces',
143
+ ]);
144
+ }
145
+ return workspace;
146
+ }
147
+ if (parsed.type === 'url' && parsed.parsed.workspaceId) {
148
+ const workspace = workspaces.find((w) => w.id === parsed.parsed.workspaceId);
149
+ if (!workspace) {
150
+ throw new CliError('WORKSPACE_NOT_FOUND', `Workspace with ID ${parsed.parsed.workspaceId} not found`, ['Run: tdc workspaces to list available workspaces']);
151
+ }
152
+ return workspace;
153
+ }
154
+ if (parsed.type === 'name') {
155
+ return matchByName(workspaces, parsed.name, {
156
+ ambiguousCode: 'AMBIGUOUS_WORKSPACE',
157
+ notFoundCode: 'WORKSPACE_NOT_FOUND',
158
+ ref,
159
+ listHint: 'Run: tdc workspaces to list available workspaces',
160
+ });
161
+ }
162
+ throw new CliError('WORKSPACE_NOT_FOUND', `Workspace "${ref}" not found`, [
163
+ 'Run: tdc workspaces to list available workspaces',
164
+ ]);
165
+ }
166
+ export function resolveThreadId(ref) {
167
+ const parsed = parseRef(ref);
168
+ if (parsed.type === 'id') {
169
+ return parsed.id;
170
+ }
171
+ if (parsed.type === 'url' && parsed.parsed.threadId) {
172
+ return parsed.parsed.threadId;
173
+ }
174
+ throw new CliError('INVALID_REF', `Invalid thread reference: ${ref}. Use an id, id:<id>, or a Comms URL.`);
175
+ }
176
+ function assertChannelInWorkspace(channel, workspaceId) {
177
+ if (channel.workspaceId !== workspaceId) {
178
+ throw new CliError('CHANNEL_NOT_FOUND', `Channel ${channel.id} does not belong to workspace ${workspaceId}`);
179
+ }
180
+ }
181
+ export async function resolveChannelRef(ref, workspaceId) {
182
+ const parsed = parseRef(ref);
183
+ const client = await getCommsClient();
184
+ if (parsed.type === 'id') {
185
+ const channel = await client.channels.getChannel(parsed.id);
186
+ assertChannelInWorkspace(channel, workspaceId);
187
+ return channel;
188
+ }
189
+ if (parsed.type === 'url' && parsed.parsed.channelId) {
190
+ if (parsed.parsed.workspaceId && parsed.parsed.workspaceId !== workspaceId) {
191
+ throw new CliError('CHANNEL_NOT_FOUND', `Channel URL belongs to workspace ${parsed.parsed.workspaceId}, but the current workspace is ${workspaceId}`, ['Pass the matching workspace-ref or use the default workspace that owns the URL.']);
192
+ }
193
+ const channel = await client.channels.getChannel(parsed.parsed.channelId);
194
+ assertChannelInWorkspace(channel, workspaceId);
195
+ return channel;
196
+ }
197
+ if (parsed.type === 'name') {
198
+ const channels = await client.channels.getChannels({ workspaceId });
199
+ return matchByName(channels, parsed.name, {
200
+ ambiguousCode: 'AMBIGUOUS_CHANNEL',
201
+ notFoundCode: 'CHANNEL_NOT_FOUND',
202
+ ref,
203
+ listHint: 'Run: tdc channels to list available channels',
204
+ });
205
+ }
206
+ throw new CliError('CHANNEL_NOT_FOUND', `Channel "${ref}" not found`, [
207
+ 'Run: tdc channels to list available channels',
208
+ ]);
209
+ }
210
+ export function resolveChannelId(ref) {
211
+ const channelId = getDirectChannelId(ref);
212
+ if (channelId)
213
+ return channelId;
214
+ throw new CliError('INVALID_REF', `Invalid channel reference: ${ref}. Use an id, id:<id>, or a Comms URL.`);
215
+ }
216
+ export function getDirectChannelId(ref) {
217
+ const parsed = parseRef(ref);
218
+ if (parsed.type === 'id') {
219
+ return parsed.id;
220
+ }
221
+ if (parsed.type === 'url') {
222
+ if (parsed.parsed.channelId) {
223
+ return parsed.parsed.channelId;
224
+ }
225
+ throw new CliError('INVALID_REF', `Invalid channel reference: ${ref}. Use an id, id:<id>, or a Comms URL.`);
226
+ }
227
+ return null;
228
+ }
229
+ export function resolveCommentId(ref) {
230
+ const parsed = parseRef(ref);
231
+ if (parsed.type === 'id') {
232
+ return parsed.id;
233
+ }
234
+ if (parsed.type === 'url' && parsed.parsed.commentId) {
235
+ return parsed.parsed.commentId;
236
+ }
237
+ throw new CliError('INVALID_REF', `Invalid comment reference: ${ref}. Use an id, id:<id>, or a Comms URL.`);
238
+ }
239
+ export function resolveConversationId(ref) {
240
+ const parsed = parseRef(ref);
241
+ if (parsed.type === 'id') {
242
+ return parsed.id;
243
+ }
244
+ if (parsed.type === 'url' && parsed.parsed.conversationId) {
245
+ return parsed.parsed.conversationId;
246
+ }
247
+ throw new CliError('INVALID_REF', `Invalid conversation reference: ${ref}. Use an id, id:<id>, or a Comms URL.`);
248
+ }
249
+ export function resolveMessageId(ref) {
250
+ const parsed = parseRef(ref);
251
+ if (parsed.type === 'id') {
252
+ return parsed.id;
253
+ }
254
+ if (parsed.type === 'url' && parsed.parsed.messageId) {
255
+ return parsed.parsed.messageId;
256
+ }
257
+ throw new CliError('INVALID_REF', `Invalid message reference: ${ref}. Use an id, id:<id>, or a Comms URL.`);
258
+ }
259
+ export function classifyCommsUrl(url) {
260
+ const parsed = parseCommsUrl(url);
261
+ if (!parsed)
262
+ return null;
263
+ if (parsed.messageId)
264
+ return { entityType: 'message', url };
265
+ if (parsed.conversationId && !parsed.messageId)
266
+ return { entityType: 'conversation', url };
267
+ if (parsed.commentId)
268
+ return { entityType: 'comment', url };
269
+ if (parsed.threadId && !parsed.commentId)
270
+ return { entityType: 'thread', url };
271
+ return null;
272
+ }
273
+ /**
274
+ * Split a list of notify refs into numeric user IDs and base58 group IDs by
275
+ * checking each ref against the workspace's known group IDs. Anything not in
276
+ * the group set is treated as a user ID and parsed as a number.
277
+ */
278
+ export function partitionNotifyIds(ids, groupIds) {
279
+ const users = [];
280
+ const groups = [];
281
+ for (const id of ids) {
282
+ if (groupIds.has(id)) {
283
+ groups.push(id);
284
+ continue;
285
+ }
286
+ const num = Number(id);
287
+ if (!Number.isFinite(num) || !/^\d+$/.test(id)) {
288
+ throw new CliError('INVALID_REF', `Invalid notify ID "${id}": expected a numeric user ID or a known group ID.`);
289
+ }
290
+ users.push(num);
291
+ }
292
+ return { userIds: users, groupIds: groups };
293
+ }
294
+ /**
295
+ * Parse a comma-separated list of notify refs into raw IDs (untyped — callers
296
+ * use {@link partitionNotifyIds} to split into users vs. groups).
297
+ */
298
+ export function parseNotifyIdRefs(refs) {
299
+ return refs.split(',').map((userRef) => {
300
+ const trimmed = userRef.trim();
301
+ if (!trimmed) {
302
+ throw new CliError('INVALID_REF', 'Invalid notify reference list: found empty value');
303
+ }
304
+ try {
305
+ return extractId(trimmed);
306
+ }
307
+ catch {
308
+ throw new CliError('INVALID_REF', `Invalid notify reference: ${trimmed}. Use a user or group id.`);
309
+ }
310
+ });
311
+ }
312
+ export async function resolveGroupRef(ref, workspaceId) {
313
+ const parsed = parseRef(ref);
314
+ if (parsed.type === 'id') {
315
+ try {
316
+ const group = await getGroup(parsed.id, workspaceId);
317
+ if (group.workspaceId !== workspaceId) {
318
+ throw new CliError('GROUP_NOT_FOUND', `Group ${parsed.id} does not belong to workspace ${workspaceId}`);
319
+ }
320
+ return group;
321
+ }
322
+ catch (error) {
323
+ if (error instanceof CliError)
324
+ throw error;
325
+ throw new CliError('GROUP_NOT_FOUND', `Group with ID ${parsed.id} not found`, [
326
+ 'Run: tdc groups to list available groups',
327
+ ]);
328
+ }
329
+ }
330
+ if (parsed.type === 'name') {
331
+ const groups = await getWorkspaceGroups(workspaceId);
332
+ return matchByName(groups, parsed.name, {
333
+ ambiguousCode: 'AMBIGUOUS_GROUP',
334
+ notFoundCode: 'GROUP_NOT_FOUND',
335
+ ref,
336
+ listHint: 'Run: tdc groups to list available groups',
337
+ });
338
+ }
339
+ throw new CliError('GROUP_NOT_FOUND', `Group "${ref}" not found`, [
340
+ 'Run: tdc groups to list available groups',
341
+ ]);
342
+ }
343
+ export async function resolveUserRefs(refs, workspaceId) {
344
+ const numericIds = parseNumericIdRefs(refs, 'user');
345
+ if (numericIds)
346
+ return numericIds;
347
+ const { getWorkspaceUsers } = await import('./api.js');
348
+ const users = await getWorkspaceUsers(workspaceId);
349
+ const parts = refs.split(',').map((r) => r.trim());
350
+ const ids = [];
351
+ for (const ref of parts) {
352
+ const parsed = parseRef(ref);
353
+ if (parsed.type === 'id') {
354
+ const num = Number(parsed.id);
355
+ if (!Number.isFinite(num) || !/^\d+$/.test(parsed.id)) {
356
+ throw new CliError('INVALID_REF', `Invalid user ID: ${ref}`);
357
+ }
358
+ ids.push(num);
359
+ continue;
360
+ }
361
+ const query = ref.toLowerCase();
362
+ const matches = users.filter((u) => u.fullName.toLowerCase().includes(query) || u.email?.toLowerCase().includes(query));
363
+ if (matches.length === 0) {
364
+ throw new CliError('USER_NOT_FOUND', `No user found matching "${ref}"`, [
365
+ 'Run: tdc users to list workspace members',
366
+ ]);
367
+ }
368
+ if (matches.length > 1) {
369
+ const list = matches
370
+ .map((u) => ` ${u.id} ${u.fullName} <${u.email ?? ''}>`)
371
+ .join('\n');
372
+ throw new CliError('AMBIGUOUS_USER', `Multiple users match "${ref}":\n${list}\n\nUse numeric ID to specify.`);
373
+ }
374
+ ids.push(matches[0].id);
375
+ }
376
+ return ids;
377
+ }
378
+ //# sourceMappingURL=refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/lib/refs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { SearchResult } from '@doist/comms-sdk';
2
+ export type SearchType = 'threads' | 'messages' | 'all';
3
+ export interface ExtendedSearchParams {
4
+ workspaceId: number;
5
+ query?: string;
6
+ title?: string;
7
+ type?: SearchType;
8
+ channelIds?: string[];
9
+ conversationIds?: string[];
10
+ authorIds?: number[];
11
+ toUserIds?: number[];
12
+ mentionSelf?: boolean;
13
+ dateFrom?: string;
14
+ dateTo?: string;
15
+ limit?: number;
16
+ cursor?: string;
17
+ }
18
+ export interface ExtendedSearchResponse {
19
+ items: SearchResult[];
20
+ nextCursorMark?: string;
21
+ hasMore: boolean;
22
+ isPlanRestricted: boolean;
23
+ }
24
+ export declare function extendedSearch(params: ExtendedSearchParams): Promise<ExtendedSearchResponse>;
25
+ //# sourceMappingURL=search-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-api.d.ts","sourceRoot":"","sources":["../../src/lib/search-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAapD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,OAAO,CAAA;CAC5B;AA8BD,wBAAsB,cAAc,CAChC,MAAM,EAAE,oBAAoB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAqDjC"}