twentythree-cli 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 (426) hide show
  1. package/README.md +25 -0
  2. package/bin/dev.cmd +2 -0
  3. package/bin/dev.js +28 -0
  4. package/bin/run.cmd +2 -0
  5. package/bin/run.js +23 -0
  6. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  7. package/dist/api/client.cjs +24 -0
  8. package/dist/api/types.cjs +0 -0
  9. package/dist/auth/credential-store.cjs +22 -0
  10. package/dist/auth/token-refresh.cjs +70 -0
  11. package/dist/auth/workspace-config.cjs +61 -0
  12. package/dist/commands/action/add.cjs +75 -0
  13. package/dist/commands/action/delete.cjs +64 -0
  14. package/dist/commands/action/exclude.cjs +70 -0
  15. package/dist/commands/action/get.cjs +112 -0
  16. package/dist/commands/action/include.cjs +70 -0
  17. package/dist/commands/action/list.cjs +119 -0
  18. package/dist/commands/action/types.cjs +63 -0
  19. package/dist/commands/action/update.cjs +86 -0
  20. package/dist/commands/action/upload.cjs +89 -0
  21. package/dist/commands/analytics/conversions/index.cjs +83 -0
  22. package/dist/commands/analytics/conversions/timeseries.cjs +83 -0
  23. package/dist/commands/analytics/conversions/totals.cjs +83 -0
  24. package/dist/commands/analytics/live/event-timeseries.cjs +86 -0
  25. package/dist/commands/analytics/live/event-totals.cjs +86 -0
  26. package/dist/commands/analytics/live/event.cjs +88 -0
  27. package/dist/commands/analytics/live/index.cjs +89 -0
  28. package/dist/commands/analytics/live/timeseries.cjs +85 -0
  29. package/dist/commands/analytics/live/totals.cjs +85 -0
  30. package/dist/commands/analytics/live/weekday/timeseries.cjs +85 -0
  31. package/dist/commands/analytics/live/weekday/totals.cjs +85 -0
  32. package/dist/commands/analytics/live/weekday.cjs +88 -0
  33. package/dist/commands/analytics/usage/devices/timeseries.cjs +83 -0
  34. package/dist/commands/analytics/usage/devices/totals.cjs +86 -0
  35. package/dist/commands/analytics/usage/devices.cjs +89 -0
  36. package/dist/commands/analytics/usage/domains/totals.cjs +83 -0
  37. package/dist/commands/analytics/usage/domains.cjs +89 -0
  38. package/dist/commands/analytics/usage/locations/totals.cjs +83 -0
  39. package/dist/commands/analytics/usage/locations.cjs +89 -0
  40. package/dist/commands/analytics/usage/sourceids/totals.cjs +83 -0
  41. package/dist/commands/analytics/usage/sourceids.cjs +89 -0
  42. package/dist/commands/analytics/usage/sources/totals.cjs +83 -0
  43. package/dist/commands/analytics/usage/sources.cjs +89 -0
  44. package/dist/commands/analytics/usage/spots/timeseries.cjs +83 -0
  45. package/dist/commands/analytics/usage/spots/totals.cjs +83 -0
  46. package/dist/commands/analytics/usage/spots.cjs +89 -0
  47. package/dist/commands/analytics/usage/storage.cjs +52 -0
  48. package/dist/commands/analytics/usage/traffic/timeseries.cjs +83 -0
  49. package/dist/commands/analytics/usage/traffic/totals.cjs +86 -0
  50. package/dist/commands/analytics/usage/traffic.cjs +89 -0
  51. package/dist/commands/analytics/video/index.cjs +89 -0
  52. package/dist/commands/analytics/video/performance/timeseries.cjs +83 -0
  53. package/dist/commands/analytics/video/performance/totals.cjs +80 -0
  54. package/dist/commands/analytics/video/performance.cjs +89 -0
  55. package/dist/commands/analytics/video/published/timeseries.cjs +83 -0
  56. package/dist/commands/analytics/video/published/totals.cjs +80 -0
  57. package/dist/commands/analytics/video/published.cjs +89 -0
  58. package/dist/commands/analytics/video/timeseries.cjs +86 -0
  59. package/dist/commands/analytics/video/totals.cjs +86 -0
  60. package/dist/commands/analytics/video/weekday/timeseries.cjs +86 -0
  61. package/dist/commands/analytics/video/weekday/totals.cjs +83 -0
  62. package/dist/commands/analytics/video/weekday.cjs +89 -0
  63. package/dist/commands/app/add.cjs +76 -0
  64. package/dist/commands/app/delete.cjs +57 -0
  65. package/dist/commands/app/update.cjs +77 -0
  66. package/dist/commands/audience/companies.cjs +116 -0
  67. package/dist/commands/audience/field/list.cjs +83 -0
  68. package/dist/commands/audience/field/remove.cjs +63 -0
  69. package/dist/commands/audience/field/set.cjs +78 -0
  70. package/dist/commands/audience/field/types.cjs +57 -0
  71. package/dist/commands/audience/funnel.cjs +77 -0
  72. package/dist/commands/audience/identity-sources.cjs +64 -0
  73. package/dist/commands/audience/list-collectors.cjs +88 -0
  74. package/dist/commands/audience/list.cjs +122 -0
  75. package/dist/commands/audience/metrics.cjs +89 -0
  76. package/dist/commands/audience/register.cjs +106 -0
  77. package/dist/commands/audience/remove.cjs +72 -0
  78. package/dist/commands/audience/search.cjs +106 -0
  79. package/dist/commands/audience/timelines.cjs +115 -0
  80. package/dist/commands/audience/unregister.cjs +65 -0
  81. package/dist/commands/auth/credentials.cjs +89 -0
  82. package/dist/commands/auth/status.cjs +34 -0
  83. package/dist/commands/category/create.cjs +80 -0
  84. package/dist/commands/category/delete.cjs +70 -0
  85. package/dist/commands/category/index.cjs +11 -0
  86. package/dist/commands/category/list.cjs +98 -0
  87. package/dist/commands/category/update.cjs +134 -0
  88. package/dist/commands/collector/exclude.cjs +56 -0
  89. package/dist/commands/collector/include.cjs +56 -0
  90. package/dist/commands/collector/list.cjs +81 -0
  91. package/dist/commands/comment/add.cjs +102 -0
  92. package/dist/commands/comment/clone.cjs +59 -0
  93. package/dist/commands/comment/delete.cjs +55 -0
  94. package/dist/commands/comment/list.cjs +126 -0
  95. package/dist/commands/comment/promote.cjs +65 -0
  96. package/dist/commands/comment/reaction/add.cjs +81 -0
  97. package/dist/commands/comment/reaction/list.cjs +92 -0
  98. package/dist/commands/comment/reaction/remove.cjs +81 -0
  99. package/dist/commands/comment/set-order.cjs +63 -0
  100. package/dist/commands/comment/update.cjs +63 -0
  101. package/dist/commands/doctor.cjs +129 -0
  102. package/dist/commands/openupload/list.cjs +95 -0
  103. package/dist/commands/openupload/update-file.cjs +85 -0
  104. package/dist/commands/openupload/upload-file.cjs +130 -0
  105. package/dist/commands/player/delete.cjs +66 -0
  106. package/dist/commands/player/embed-versions.cjs +83 -0
  107. package/dist/commands/player/embed.cjs +134 -0
  108. package/dist/commands/player/list.cjs +86 -0
  109. package/dist/commands/player/styles.cjs +70 -0
  110. package/dist/commands/player/update.cjs +80 -0
  111. package/dist/commands/poll/add.cjs +84 -0
  112. package/dist/commands/poll/answer.cjs +89 -0
  113. package/dist/commands/poll/list.cjs +92 -0
  114. package/dist/commands/poll/remove.cjs +57 -0
  115. package/dist/commands/poll/set-options.cjs +84 -0
  116. package/dist/commands/poll/update.cjs +79 -0
  117. package/dist/commands/presentation/page/link-locations.cjs +57 -0
  118. package/dist/commands/presentation/setting/list.cjs +44 -0
  119. package/dist/commands/presentation/setting/update.cjs +67 -0
  120. package/dist/commands/protection/protect.cjs +68 -0
  121. package/dist/commands/protection/unprotect.cjs +65 -0
  122. package/dist/commands/protection/verify.cjs +80 -0
  123. package/dist/commands/session/get-token.cjs +75 -0
  124. package/dist/commands/session/redeem-token.cjs +56 -0
  125. package/dist/commands/setting/update.cjs +79 -0
  126. package/dist/commands/site/get.cjs +73 -0
  127. package/dist/commands/site/search.cjs +93 -0
  128. package/dist/commands/spot/check.cjs +52 -0
  129. package/dist/commands/spot/create.cjs +79 -0
  130. package/dist/commands/spot/delete.cjs +68 -0
  131. package/dist/commands/spot/list.cjs +120 -0
  132. package/dist/commands/spot/reset-version.cjs +53 -0
  133. package/dist/commands/spot/set-videos.cjs +64 -0
  134. package/dist/commands/spot/update.cjs +78 -0
  135. package/dist/commands/tag/list.cjs +98 -0
  136. package/dist/commands/tag/related.cjs +57 -0
  137. package/dist/commands/thumbnail/add.cjs +66 -0
  138. package/dist/commands/thumbnail/data.cjs +60 -0
  139. package/dist/commands/thumbnail/delete.cjs +61 -0
  140. package/dist/commands/thumbnail/duplicate.cjs +67 -0
  141. package/dist/commands/thumbnail/file/delete.cjs +71 -0
  142. package/dist/commands/thumbnail/file/list.cjs +74 -0
  143. package/dist/commands/thumbnail/file/upload.cjs +79 -0
  144. package/dist/commands/thumbnail/index.cjs +11 -0
  145. package/dist/commands/thumbnail/list.cjs +89 -0
  146. package/dist/commands/thumbnail/update.cjs +87 -0
  147. package/dist/commands/user/create.cjs +87 -0
  148. package/dist/commands/user/get-login-token.cjs +72 -0
  149. package/dist/commands/user/get.cjs +67 -0
  150. package/dist/commands/user/list.cjs +95 -0
  151. package/dist/commands/user/redeem-login-token.cjs +55 -0
  152. package/dist/commands/user/send-invitation.cjs +63 -0
  153. package/dist/commands/user/tokens.cjs +80 -0
  154. package/dist/commands/user/update.cjs +121 -0
  155. package/dist/commands/video/delete.cjs +67 -0
  156. package/dist/commands/video/frame.cjs +69 -0
  157. package/dist/commands/video/get.cjs +68 -0
  158. package/dist/commands/video/index.cjs +11 -0
  159. package/dist/commands/video/list.cjs +98 -0
  160. package/dist/commands/video/replace.cjs +126 -0
  161. package/dist/commands/video/section/create.cjs +73 -0
  162. package/dist/commands/video/section/delete.cjs +78 -0
  163. package/dist/commands/video/section/index.cjs +11 -0
  164. package/dist/commands/video/section/list.cjs +75 -0
  165. package/dist/commands/video/section/set-thumbnail.cjs +73 -0
  166. package/dist/commands/video/section/update.cjs +84 -0
  167. package/dist/commands/video/subtitle/archive.cjs +76 -0
  168. package/dist/commands/video/subtitle/create.cjs +80 -0
  169. package/dist/commands/video/subtitle/data.cjs +75 -0
  170. package/dist/commands/video/subtitle/delete.cjs +84 -0
  171. package/dist/commands/video/subtitle/duplicate.cjs +89 -0
  172. package/dist/commands/video/subtitle/index.cjs +11 -0
  173. package/dist/commands/video/subtitle/list.cjs +94 -0
  174. package/dist/commands/video/subtitle/locales.cjs +60 -0
  175. package/dist/commands/video/subtitle/set-primary.cjs +64 -0
  176. package/dist/commands/video/subtitle/types.cjs +42 -0
  177. package/dist/commands/video/subtitle/update.cjs +93 -0
  178. package/dist/commands/video/subtitle/upload.cjs +104 -0
  179. package/dist/commands/video/transcoding-progress.cjs +71 -0
  180. package/dist/commands/video/update.cjs +184 -0
  181. package/dist/commands/video/upload.cjs +151 -0
  182. package/dist/commands/webhook/events.cjs +68 -0
  183. package/dist/commands/webhook/list.cjs +64 -0
  184. package/dist/commands/webhook/sample.cjs +47 -0
  185. package/dist/commands/webhook/subscribe.cjs +66 -0
  186. package/dist/commands/webhook/unsubscribe.cjs +71 -0
  187. package/dist/commands/webinar/attachment/delete.cjs +79 -0
  188. package/dist/commands/webinar/attachment/list.cjs +94 -0
  189. package/dist/commands/webinar/attachment/set-hidden.cjs +85 -0
  190. package/dist/commands/webinar/attachment/upload.cjs +128 -0
  191. package/dist/commands/webinar/clips.cjs +77 -0
  192. package/dist/commands/webinar/create.cjs +107 -0
  193. package/dist/commands/webinar/delete.cjs +62 -0
  194. package/dist/commands/webinar/highlights.cjs +84 -0
  195. package/dist/commands/webinar/index.cjs +11 -0
  196. package/dist/commands/webinar/list-formats.cjs +50 -0
  197. package/dist/commands/webinar/list.cjs +134 -0
  198. package/dist/commands/webinar/log.cjs +69 -0
  199. package/dist/commands/webinar/mail/add.cjs +101 -0
  200. package/dist/commands/webinar/mail/list.cjs +83 -0
  201. package/dist/commands/webinar/mail/preview.cjs +75 -0
  202. package/dist/commands/webinar/mail/remove.cjs +75 -0
  203. package/dist/commands/webinar/mail/send.cjs +68 -0
  204. package/dist/commands/webinar/mail/test.cjs +86 -0
  205. package/dist/commands/webinar/mail/update.cjs +84 -0
  206. package/dist/commands/webinar/metrics.cjs +59 -0
  207. package/dist/commands/webinar/queued-video/add.cjs +81 -0
  208. package/dist/commands/webinar/queued-video/remove.cjs +81 -0
  209. package/dist/commands/webinar/recording/split.cjs +53 -0
  210. package/dist/commands/webinar/recording/start.cjs +53 -0
  211. package/dist/commands/webinar/recording/status.cjs +52 -0
  212. package/dist/commands/webinar/recording/stop.cjs +53 -0
  213. package/dist/commands/webinar/repeat.cjs +65 -0
  214. package/dist/commands/webinar/room/connect.cjs +60 -0
  215. package/dist/commands/webinar/room/info.cjs +60 -0
  216. package/dist/commands/webinar/room/send-recording.cjs +59 -0
  217. package/dist/commands/webinar/room/themes.cjs +63 -0
  218. package/dist/commands/webinar/section/add.cjs +98 -0
  219. package/dist/commands/webinar/section/list.cjs +86 -0
  220. package/dist/commands/webinar/section/remove.cjs +75 -0
  221. package/dist/commands/webinar/section/update.cjs +85 -0
  222. package/dist/commands/webinar/series/apply-recurrence.cjs +68 -0
  223. package/dist/commands/webinar/series/cancel.cjs +73 -0
  224. package/dist/commands/webinar/series/create.cjs +80 -0
  225. package/dist/commands/webinar/series/delete.cjs +73 -0
  226. package/dist/commands/webinar/series/list.cjs +79 -0
  227. package/dist/commands/webinar/series/mapped-objects.cjs +69 -0
  228. package/dist/commands/webinar/series/metrics.cjs +57 -0
  229. package/dist/commands/webinar/series/recurrences.cjs +72 -0
  230. package/dist/commands/webinar/series/set-ondemand.cjs +67 -0
  231. package/dist/commands/webinar/series/skip-recurrence.cjs +79 -0
  232. package/dist/commands/webinar/series/update.cjs +71 -0
  233. package/dist/commands/webinar/series/upload-thumbnail.cjs +117 -0
  234. package/dist/commands/webinar/speaker/add-from-speaker.cjs +78 -0
  235. package/dist/commands/webinar/speaker/add-from-user.cjs +78 -0
  236. package/dist/commands/webinar/speaker/add.cjs +112 -0
  237. package/dist/commands/webinar/speaker/cancel-guest-request.cjs +62 -0
  238. package/dist/commands/webinar/speaker/connection-types.cjs +66 -0
  239. package/dist/commands/webinar/speaker/library.cjs +59 -0
  240. package/dist/commands/webinar/speaker/list.cjs +90 -0
  241. package/dist/commands/webinar/speaker/remove-avatar.cjs +62 -0
  242. package/dist/commands/webinar/speaker/remove.cjs +69 -0
  243. package/dist/commands/webinar/speaker/request-guest.cjs +62 -0
  244. package/dist/commands/webinar/speaker/send-invitation.cjs +62 -0
  245. package/dist/commands/webinar/speaker/set-avatar.cjs +130 -0
  246. package/dist/commands/webinar/speaker/set-order.cjs +95 -0
  247. package/dist/commands/webinar/speaker/update.cjs +90 -0
  248. package/dist/commands/webinar/transcription/connect.cjs +69 -0
  249. package/dist/commands/webinar/transcription/list.cjs +88 -0
  250. package/dist/commands/webinar/transcription/locales.cjs +76 -0
  251. package/dist/commands/webinar/transcription/transcriptionlist.cjs +67 -0
  252. package/dist/commands/webinar/update.cjs +192 -0
  253. package/dist/commands/webinar/upload-image.cjs +133 -0
  254. package/dist/commands/workspace/list.cjs +47 -0
  255. package/dist/commands/workspace/use.cjs +52 -0
  256. package/dist/index.cjs +6 -0
  257. package/dist/lib/analytics-flags.cjs +60 -0
  258. package/dist/lib/audit.cjs +44 -0
  259. package/dist/lib/base-command.cjs +156 -0
  260. package/dist/lib/output.cjs +82 -0
  261. package/dist/lib/pagination.cjs +36 -0
  262. package/dist/lib/term-map.cjs +48 -0
  263. package/dist/upload/chunk-pool.cjs +47 -0
  264. package/dist/upload/chunked-upload.cjs +131 -0
  265. package/dist/upload/types.cjs +9 -0
  266. package/docs/commands/README.md +31 -0
  267. package/docs/commands/action/add.md +36 -0
  268. package/docs/commands/action/delete.md +32 -0
  269. package/docs/commands/action/exclude.md +38 -0
  270. package/docs/commands/action/get.md +47 -0
  271. package/docs/commands/action/include.md +38 -0
  272. package/docs/commands/action/list.md +43 -0
  273. package/docs/commands/action/types.md +34 -0
  274. package/docs/commands/action/update.md +42 -0
  275. package/docs/commands/action/upload.md +36 -0
  276. package/docs/commands/action.md +306 -0
  277. package/docs/commands/analytics/conversions.md +113 -0
  278. package/docs/commands/analytics/live.md +338 -0
  279. package/docs/commands/analytics/usage.md +674 -0
  280. package/docs/commands/analytics/video.md +449 -0
  281. package/docs/commands/analytics.md +1559 -0
  282. package/docs/commands/app/add.md +38 -0
  283. package/docs/commands/app/delete.md +32 -0
  284. package/docs/commands/app/update.md +41 -0
  285. package/docs/commands/app.md +101 -0
  286. package/docs/commands/audience/companies.md +41 -0
  287. package/docs/commands/audience/field.md +119 -0
  288. package/docs/commands/audience/funnel.md +38 -0
  289. package/docs/commands/audience/identity-sources.md +29 -0
  290. package/docs/commands/audience/list-collectors.md +35 -0
  291. package/docs/commands/audience/list.md +42 -0
  292. package/docs/commands/audience/metrics.md +40 -0
  293. package/docs/commands/audience/register.md +45 -0
  294. package/docs/commands/audience/remove.md +35 -0
  295. package/docs/commands/audience/search.md +39 -0
  296. package/docs/commands/audience/timelines.md +41 -0
  297. package/docs/commands/audience/unregister.md +36 -0
  298. package/docs/commands/audience.md +485 -0
  299. package/docs/commands/auth/credentials.md +23 -0
  300. package/docs/commands/auth/status.md +27 -0
  301. package/docs/commands/auth.md +45 -0
  302. package/docs/commands/category/create.md +36 -0
  303. package/docs/commands/category/delete.md +32 -0
  304. package/docs/commands/category/list.md +34 -0
  305. package/docs/commands/category/update.md +39 -0
  306. package/docs/commands/category.md +141 -0
  307. package/docs/commands/collector/exclude.md +33 -0
  308. package/docs/commands/collector/include.md +33 -0
  309. package/docs/commands/collector/list.md +37 -0
  310. package/docs/commands/collector.md +93 -0
  311. package/docs/commands/comment/add.md +43 -0
  312. package/docs/commands/comment/clone.md +35 -0
  313. package/docs/commands/comment/delete.md +32 -0
  314. package/docs/commands/comment/list.md +42 -0
  315. package/docs/commands/comment/promote.md +37 -0
  316. package/docs/commands/comment/reaction.md +106 -0
  317. package/docs/commands/comment/set-order.md +34 -0
  318. package/docs/commands/comment/update.md +36 -0
  319. package/docs/commands/comment.md +330 -0
  320. package/docs/commands/doctor.md +28 -0
  321. package/docs/commands/openupload/list.md +36 -0
  322. package/docs/commands/openupload/update-file.md +40 -0
  323. package/docs/commands/openupload/upload-file.md +39 -0
  324. package/docs/commands/openupload.md +105 -0
  325. package/docs/commands/player/delete.md +32 -0
  326. package/docs/commands/player/embed-versions.md +34 -0
  327. package/docs/commands/player/embed.md +51 -0
  328. package/docs/commands/player/list.md +32 -0
  329. package/docs/commands/player/styles.md +32 -0
  330. package/docs/commands/player/update.md +37 -0
  331. package/docs/commands/player.md +193 -0
  332. package/docs/commands/poll/add.md +33 -0
  333. package/docs/commands/poll/answer.md +38 -0
  334. package/docs/commands/poll/list.md +33 -0
  335. package/docs/commands/poll/remove.md +32 -0
  336. package/docs/commands/poll/set-options.md +35 -0
  337. package/docs/commands/poll/update.md +41 -0
  338. package/docs/commands/poll.md +187 -0
  339. package/docs/commands/presentation/page.md +29 -0
  340. package/docs/commands/presentation/setting.md +58 -0
  341. package/docs/commands/presentation.md +82 -0
  342. package/docs/commands/protection/protect.md +37 -0
  343. package/docs/commands/protection/unprotect.md +34 -0
  344. package/docs/commands/protection/verify.md +39 -0
  345. package/docs/commands/protection.md +100 -0
  346. package/docs/commands/session/get-token.md +38 -0
  347. package/docs/commands/session/redeem-token.md +32 -0
  348. package/docs/commands/session.md +65 -0
  349. package/docs/commands/setting/update.md +37 -0
  350. package/docs/commands/setting.md +37 -0
  351. package/docs/commands/site/get.md +35 -0
  352. package/docs/commands/site/search.md +38 -0
  353. package/docs/commands/site.md +68 -0
  354. package/docs/commands/spot/check.md +32 -0
  355. package/docs/commands/spot/create.md +38 -0
  356. package/docs/commands/spot/delete.md +32 -0
  357. package/docs/commands/spot/list.md +43 -0
  358. package/docs/commands/spot/reset-version.md +32 -0
  359. package/docs/commands/spot/set-videos.md +35 -0
  360. package/docs/commands/spot/update.md +40 -0
  361. package/docs/commands/spot.md +222 -0
  362. package/docs/commands/tag/list.md +44 -0
  363. package/docs/commands/tag/related.md +32 -0
  364. package/docs/commands/tag.md +71 -0
  365. package/docs/commands/thumbnail/add.md +33 -0
  366. package/docs/commands/thumbnail/data.md +35 -0
  367. package/docs/commands/thumbnail/delete.md +32 -0
  368. package/docs/commands/thumbnail/duplicate.md +37 -0
  369. package/docs/commands/thumbnail/file.md +90 -0
  370. package/docs/commands/thumbnail/list.md +37 -0
  371. package/docs/commands/thumbnail/update.md +44 -0
  372. package/docs/commands/thumbnail.md +293 -0
  373. package/docs/commands/user/create.md +41 -0
  374. package/docs/commands/user/get-login-token.md +37 -0
  375. package/docs/commands/user/get.md +37 -0
  376. package/docs/commands/user/list.md +40 -0
  377. package/docs/commands/user/redeem-login-token.md +32 -0
  378. package/docs/commands/user/send-invitation.md +37 -0
  379. package/docs/commands/user/tokens.md +34 -0
  380. package/docs/commands/user/update.md +44 -0
  381. package/docs/commands/user.md +267 -0
  382. package/docs/commands/video/delete.md +32 -0
  383. package/docs/commands/video/frame.md +37 -0
  384. package/docs/commands/video/get.md +32 -0
  385. package/docs/commands/video/list.md +33 -0
  386. package/docs/commands/video/replace.md +37 -0
  387. package/docs/commands/video/section.md +177 -0
  388. package/docs/commands/video/subtitle.md +362 -0
  389. package/docs/commands/video/transcoding-progress.md +32 -0
  390. package/docs/commands/video/update.md +45 -0
  391. package/docs/commands/video/upload.md +44 -0
  392. package/docs/commands/video.md +801 -0
  393. package/docs/commands/webhook/events.md +34 -0
  394. package/docs/commands/webhook/list.md +29 -0
  395. package/docs/commands/webhook/sample.md +32 -0
  396. package/docs/commands/webhook/subscribe.md +33 -0
  397. package/docs/commands/webhook/unsubscribe.md +35 -0
  398. package/docs/commands/webhook.md +143 -0
  399. package/docs/commands/webinar/attachment.md +135 -0
  400. package/docs/commands/webinar/clips.md +32 -0
  401. package/docs/commands/webinar/create.md +40 -0
  402. package/docs/commands/webinar/delete.md +32 -0
  403. package/docs/commands/webinar/highlights.md +37 -0
  404. package/docs/commands/webinar/list-formats.md +29 -0
  405. package/docs/commands/webinar/list.md +41 -0
  406. package/docs/commands/webinar/log.md +32 -0
  407. package/docs/commands/webinar/mail.md +238 -0
  408. package/docs/commands/webinar/metrics.md +32 -0
  409. package/docs/commands/webinar/queued-video.md +65 -0
  410. package/docs/commands/webinar/recording.md +113 -0
  411. package/docs/commands/webinar/repeat.md +35 -0
  412. package/docs/commands/webinar/room.md +110 -0
  413. package/docs/commands/webinar/section.md +134 -0
  414. package/docs/commands/webinar/series.md +365 -0
  415. package/docs/commands/webinar/speaker.md +430 -0
  416. package/docs/commands/webinar/transcription.md +125 -0
  417. package/docs/commands/webinar/update.md +43 -0
  418. package/docs/commands/webinar/upload-image.md +42 -0
  419. package/docs/commands/webinar.md +2030 -0
  420. package/docs/commands/workspace/list.md +27 -0
  421. package/docs/commands/workspace/use.md +32 -0
  422. package/docs/commands/workspace.md +54 -0
  423. package/docs/guides/api-spec-upgrade.md +92 -0
  424. package/docs/guides/getting-started.md +66 -0
  425. package/oclif.manifest.json +21609 -0
  426. package/package.json +71 -0
@@ -0,0 +1,52 @@
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ //#region src/commands/spot/check.ts
7
+ /**
8
+ * Spot check command — retrieves details of a single spot.
9
+ *
10
+ * Maps to the GET /spot/check API endpoint.
11
+ * Outputs key-value pairs of the spot's properties.
12
+ *
13
+ * Threat mitigations:
14
+ * T-08-02: extends AuthenticatedCommand — anonymous mode rejected with AUTH-10 error
15
+ */
16
+ var SpotCheck = class SpotCheck extends require_lib_base_command.AuthenticatedCommand {
17
+ static description = "Get details of a specific spot";
18
+ static examples = ["<%= config.bin %> spot check 12345", "<%= config.bin %> spot check 12345 --json"];
19
+ static enableJsonFlag = true;
20
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
21
+ static args = { id: _oclif_core.Args.string({
22
+ description: "Spot ID",
23
+ required: true
24
+ }) };
25
+ static agentMetadata = {
26
+ api_endpoint: "GET /spot/check",
27
+ auth_scope: "read",
28
+ output_shape: { type: "key-value" },
29
+ side_effects: "none"
30
+ };
31
+ async run() {
32
+ const { args } = await this.parse(SpotCheck);
33
+ this.printWorkspaceHeader();
34
+ const { data, error } = await this.apiClient.GET("/spot/check", { params: { query: { spot_id: Number(args.id) } } });
35
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
36
+ const resp = data;
37
+ const obj = resp?.data ?? resp;
38
+ if (!obj) this.error("No data returned", { exit: 1 });
39
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
40
+ ok: true,
41
+ data: obj,
42
+ summary: `Spot ${args.id}`,
43
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
44
+ resource: "spot",
45
+ id: args.id
46
+ }]
47
+ });
48
+ for (const [k, v] of Object.entries(obj)) this.log(`${k}: ${require_lib_term_map.applyCliTerms(String(v ?? ""))}`);
49
+ }
50
+ };
51
+ //#endregion
52
+ module.exports = SpotCheck;
@@ -0,0 +1,79 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/spot/create.ts
9
+ /**
10
+ * Spot create command — creates a new spot in the active workspace.
11
+ *
12
+ * Maps to the POST /spot/create API endpoint.
13
+ * Spots are embed containers in TwentyThree.
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-02: extends AuthenticatedCommand — anonymous mode rejected with AUTH-10 error
17
+ */
18
+ var SpotCreate = class SpotCreate extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Create a new spot";
20
+ static examples = [
21
+ "<%= config.bin %> spot create --spot-name \"My Spot\"",
22
+ "<%= config.bin %> spot create --spot-name \"My Spot\" --spot-type \"video\"",
23
+ "<%= config.bin %> spot create --spot-name \"My Spot\" --json"
24
+ ];
25
+ static enableJsonFlag = true;
26
+ static flags = {
27
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
28
+ "spot-name": _oclif_core.Flags.string({
29
+ description: "Name for the new spot",
30
+ required: true
31
+ }),
32
+ "spot-type": _oclif_core.Flags.string({
33
+ description: "Type of spot",
34
+ required: false
35
+ }),
36
+ "spot-design": _oclif_core.Flags.string({
37
+ description: "Design for the spot",
38
+ required: false
39
+ }),
40
+ "spot-layout": _oclif_core.Flags.string({
41
+ description: "Layout for the spot",
42
+ required: false
43
+ })
44
+ };
45
+ static args = {};
46
+ static agentMetadata = {
47
+ api_endpoint: "POST /spot/create",
48
+ auth_scope: "write",
49
+ output_shape: { type: "key-value" },
50
+ side_effects: "creates"
51
+ };
52
+ async run() {
53
+ const { flags } = await this.parse(SpotCreate);
54
+ this.printWorkspaceHeader();
55
+ const body = { spot_name: flags["spot-name"] };
56
+ if (flags["spot-type"] !== void 0) body.spot_type = flags["spot-type"];
57
+ if (flags["spot-design"] !== void 0) body.spot_design = flags["spot-design"];
58
+ if (flags["spot-layout"] !== void 0) body.spot_layout = flags["spot-layout"];
59
+ const { data: createData, error: createError } = await this.apiClient.POST("/spot/create", {
60
+ body,
61
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
62
+ });
63
+ if (createError) this.error(require_lib_term_map.applyCliTerms(formatApiError(createError)), { exit: 1 });
64
+ const spotId = createData?.data?.spot_id;
65
+ this.log(chalk.default.green("Spot created"));
66
+ this.log(`ID: ${spotId}`);
67
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
68
+ ok: true,
69
+ data: createData,
70
+ summary: "Spot created",
71
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
72
+ resource: "spot",
73
+ id: String(spotId)
74
+ }]
75
+ });
76
+ }
77
+ };
78
+ //#endregion
79
+ module.exports = SpotCreate;
@@ -0,0 +1,68 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ let _clack_prompts = require("@clack/prompts");
9
+ //#region src/commands/spot/delete.ts
10
+ /**
11
+ * Spot delete command — deletes a spot after confirmation.
12
+ *
13
+ * Maps to the POST /spot/delete API endpoint.
14
+ * Prompts user to confirm deletion showing the workspace domain so they know
15
+ * which workspace they are deleting from (T-08-01 repudiation mitigation).
16
+ *
17
+ * --json flag skips the confirmation prompt (scripting mode — assume confirmed).
18
+ *
19
+ * Exit codes:
20
+ * 0 — success
21
+ * 1 — error (spot not found, API error)
22
+ * 2 — cancelled (user declined confirmation)
23
+ *
24
+ * Threat mitigations:
25
+ * T-08-01: Confirmation prompt includes workspace domain
26
+ * T-08-02: extends AuthenticatedCommand — anonymous mode rejected with AUTH-10 error
27
+ */
28
+ var SpotDelete = class SpotDelete extends require_lib_base_command.AuthenticatedCommand {
29
+ static description = "Delete a spot from the active workspace";
30
+ static examples = ["<%= config.bin %> spot delete 12345", "<%= config.bin %> spot delete 12345 --json"];
31
+ static enableJsonFlag = true;
32
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
33
+ static args = { id: _oclif_core.Args.string({
34
+ description: "Spot ID",
35
+ required: true
36
+ }) };
37
+ static agentMetadata = {
38
+ api_endpoint: "POST /spot/delete",
39
+ auth_scope: "write",
40
+ output_shape: { type: "key-value" },
41
+ side_effects: "destructive"
42
+ };
43
+ async run() {
44
+ const { args } = await this.parse(SpotDelete);
45
+ this.printWorkspaceHeader();
46
+ if (!this.jsonEnabled()) {
47
+ const confirmed = await (0, _clack_prompts.confirm)({ message: `Delete spot ${args.id} from ${this.activeWorkspace.domain}? This cannot be undone.` });
48
+ if ((0, _clack_prompts.isCancel)(confirmed) || !confirmed) process.exit(2);
49
+ }
50
+ const { data: deleteData, error: deleteError } = await this.apiClient.POST("/spot/delete", {
51
+ body: { spot_id: Number(args.id) },
52
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
53
+ });
54
+ if (deleteError) this.error(require_lib_term_map.applyCliTerms(formatApiError(deleteError)), { exit: 1 });
55
+ this.log(chalk.default.green(`Spot ${args.id} deleted`));
56
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
57
+ ok: true,
58
+ data: deleteData,
59
+ summary: `Spot ${args.id} deleted`,
60
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
61
+ resource: "spot",
62
+ id: args.id
63
+ }]
64
+ });
65
+ }
66
+ };
67
+ //#endregion
68
+ module.exports = SpotDelete;
@@ -0,0 +1,120 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/spot/list.ts
9
+ /**
10
+ * Spot list command — lists all spots in the active workspace.
11
+ *
12
+ * Maps to the GET /spot/list API endpoint.
13
+ * Spots are embed containers in TwentyThree.
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-02: extends AuthenticatedCommand — anonymous mode rejected with AUTH-10 error
17
+ */
18
+ var SpotList = class SpotList extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "List spots in the active workspace";
20
+ static examples = [
21
+ "<%= config.bin %> spot list",
22
+ "<%= config.bin %> spot list --search \"my spot\"",
23
+ "<%= config.bin %> spot list --active",
24
+ "<%= config.bin %> spot list --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ page: _oclif_core.Flags.integer({
30
+ description: "Page number",
31
+ required: false
32
+ }),
33
+ size: _oclif_core.Flags.integer({
34
+ description: "Number of results per page",
35
+ required: false
36
+ }),
37
+ search: _oclif_core.Flags.string({
38
+ description: "Search term",
39
+ required: false
40
+ }),
41
+ "spot-type": _oclif_core.Flags.string({
42
+ description: "Filter by spot type",
43
+ required: false
44
+ }),
45
+ active: _oclif_core.Flags.boolean({
46
+ description: "Filter by active status",
47
+ allowNo: true,
48
+ required: false
49
+ }),
50
+ "active-p": _oclif_core.Flags.string({
51
+ hidden: true,
52
+ required: false
53
+ }),
54
+ orderby: _oclif_core.Flags.string({
55
+ description: "Field to order results by",
56
+ required: false
57
+ }),
58
+ order: _oclif_core.Flags.string({
59
+ description: "Sort order (asc or desc)",
60
+ required: false
61
+ })
62
+ };
63
+ static args = {};
64
+ static agentMetadata = {
65
+ api_endpoint: "GET /spot/list",
66
+ auth_scope: "read",
67
+ output_shape: {
68
+ type: "table",
69
+ columns: [
70
+ "ID",
71
+ "Name",
72
+ "Type",
73
+ "Active"
74
+ ]
75
+ },
76
+ side_effects: "none"
77
+ };
78
+ async run() {
79
+ const { flags } = await this.parse(SpotList);
80
+ this.printWorkspaceHeader();
81
+ const activeVal = parseBoolParam(flags.active, flags["active-p"]);
82
+ const { data, error } = await this.apiClient.GET("/spot/list", { params: { query: {
83
+ search: flags.search,
84
+ spot_type: flags["spot-type"],
85
+ active_p: activeVal !== void 0 ? activeVal : void 0,
86
+ p: flags.page,
87
+ size: flags.size,
88
+ orderby: flags.orderby,
89
+ order: flags.order
90
+ } } });
91
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
92
+ const resp = data;
93
+ const rows = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
94
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
95
+ ok: true,
96
+ data: rows,
97
+ summary: `${rows.length} spot(s)`,
98
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "spot" }]
99
+ });
100
+ if (rows.length === 0) {
101
+ this.log("No spots found.");
102
+ return;
103
+ }
104
+ const table = require_lib_output.renderTable([
105
+ "ID",
106
+ "Name",
107
+ "Type",
108
+ "Active"
109
+ ], rows.map((r) => [
110
+ String(r.spot_id ?? ""),
111
+ String(r.spot_name ?? ""),
112
+ String(r.spot_type ?? ""),
113
+ String(r.active_p ?? "")
114
+ ]));
115
+ this.log(table.toString());
116
+ this.log(chalk.default.dim(`${rows.length} spot(s)`));
117
+ }
118
+ };
119
+ //#endregion
120
+ module.exports = SpotList;
@@ -0,0 +1,53 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/spot/reset-version.ts
9
+ /**
10
+ * Spot reset-version command — resets the version of a spot.
11
+ *
12
+ * Maps to the POST /spot/reset-version API endpoint.
13
+ *
14
+ * Threat mitigations:
15
+ * T-08-02: extends AuthenticatedCommand — anonymous mode rejected with AUTH-10 error
16
+ */
17
+ var SpotResetVersion = class SpotResetVersion extends require_lib_base_command.AuthenticatedCommand {
18
+ static description = "Reset the version of a spot";
19
+ static examples = ["<%= config.bin %> spot reset-version 12345", "<%= config.bin %> spot reset-version 12345 --json"];
20
+ static enableJsonFlag = true;
21
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
22
+ static args = { id: _oclif_core.Args.string({
23
+ description: "Spot ID",
24
+ required: true
25
+ }) };
26
+ static agentMetadata = {
27
+ api_endpoint: "POST /spot/reset-version",
28
+ auth_scope: "write",
29
+ output_shape: { type: "key-value" },
30
+ side_effects: "updates"
31
+ };
32
+ async run() {
33
+ const { args } = await this.parse(SpotResetVersion);
34
+ this.printWorkspaceHeader();
35
+ const { data, error } = await this.apiClient.POST("/spot/reset-version", {
36
+ body: { spot_id: Number(args.id) },
37
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
38
+ });
39
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
40
+ this.log(chalk.default.green(`Spot ${args.id} version reset`));
41
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
42
+ ok: true,
43
+ data,
44
+ summary: `Spot ${args.id} version reset`,
45
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
46
+ resource: "spot",
47
+ id: args.id
48
+ }]
49
+ });
50
+ }
51
+ };
52
+ //#endregion
53
+ module.exports = SpotResetVersion;
@@ -0,0 +1,64 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/spot/set-videos.ts
9
+ /**
10
+ * Spot set-videos command — assigns videos to a spot.
11
+ *
12
+ * Maps to the POST /spot/set-videos API endpoint.
13
+ * Accepts comma-separated video IDs to assign to the specified spot.
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-02: extends AuthenticatedCommand — anonymous mode rejected with AUTH-10 error
17
+ * T-08-03: Video IDs passed as comma-separated string; server-side validation enforces valid IDs
18
+ */
19
+ var SpotSetVideos = class SpotSetVideos extends require_lib_base_command.AuthenticatedCommand {
20
+ static description = "Assign videos to a spot";
21
+ static examples = ["<%= config.bin %> spot set-videos 12345 --videos \"111,222,333\"", "<%= config.bin %> spot set-videos 12345 --videos \"111\" --json"];
22
+ static enableJsonFlag = true;
23
+ static flags = {
24
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
25
+ videos: _oclif_core.Flags.string({
26
+ description: "Comma-separated video IDs to assign to the spot",
27
+ required: true
28
+ })
29
+ };
30
+ static args = { id: _oclif_core.Args.string({
31
+ description: "Spot ID",
32
+ required: true
33
+ }) };
34
+ static agentMetadata = {
35
+ api_endpoint: "POST /spot/set-videos",
36
+ auth_scope: "write",
37
+ output_shape: { type: "key-value" },
38
+ side_effects: "updates"
39
+ };
40
+ async run() {
41
+ const { args, flags } = await this.parse(SpotSetVideos);
42
+ this.printWorkspaceHeader();
43
+ const { data, error } = await this.apiClient.POST("/spot/set-videos", {
44
+ body: {
45
+ spot_id: Number(args.id),
46
+ videos: flags.videos
47
+ },
48
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
49
+ });
50
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
51
+ this.log(chalk.default.green(`Videos set for spot ${args.id}`));
52
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
53
+ ok: true,
54
+ data,
55
+ summary: `Videos set for spot ${args.id}`,
56
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
57
+ resource: "spot",
58
+ id: args.id
59
+ }]
60
+ });
61
+ }
62
+ };
63
+ //#endregion
64
+ module.exports = SpotSetVideos;
@@ -0,0 +1,78 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/spot/update.ts
9
+ /**
10
+ * Spot update command — updates metadata for an existing spot.
11
+ *
12
+ * Maps to the POST /spot/update API endpoint.
13
+ * Flag mode only: only flags explicitly provided are sent to the API.
14
+ *
15
+ * Threat mitigations:
16
+ * T-08-02: extends AuthenticatedCommand — anonymous mode rejected with AUTH-10 error
17
+ */
18
+ var SpotUpdate = class SpotUpdate extends require_lib_base_command.AuthenticatedCommand {
19
+ static description = "Update a spot";
20
+ static examples = [
21
+ "<%= config.bin %> spot update 12345 --spot-name \"New Name\"",
22
+ "<%= config.bin %> spot update 12345 --active",
23
+ "<%= config.bin %> spot update 12345 --no-active",
24
+ "<%= config.bin %> spot update 12345 --spot-name \"New Name\" --json"
25
+ ];
26
+ static enableJsonFlag = true;
27
+ static flags = {
28
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
29
+ "spot-name": _oclif_core.Flags.string({
30
+ description: "New name for the spot",
31
+ required: false
32
+ }),
33
+ active: _oclif_core.Flags.boolean({
34
+ description: "Set active status",
35
+ allowNo: true,
36
+ required: false
37
+ }),
38
+ "active-p": _oclif_core.Flags.string({
39
+ hidden: true,
40
+ required: false
41
+ })
42
+ };
43
+ static args = { id: _oclif_core.Args.string({
44
+ description: "Spot ID",
45
+ required: true
46
+ }) };
47
+ static agentMetadata = {
48
+ api_endpoint: "POST /spot/update",
49
+ auth_scope: "write",
50
+ output_shape: { type: "key-value" },
51
+ side_effects: "updates"
52
+ };
53
+ async run() {
54
+ const { args, flags } = await this.parse(SpotUpdate);
55
+ this.printWorkspaceHeader();
56
+ const body = { spot_id: Number(args.id) };
57
+ if (flags["spot-name"] !== void 0) body.spot_name = flags["spot-name"];
58
+ const activeVal = parseBoolParam(flags.active, flags["active-p"]);
59
+ if (activeVal !== void 0) body.active_p = activeVal ? 1 : 0;
60
+ const { data: updateData, error: updateError } = await this.apiClient.POST("/spot/update", {
61
+ body,
62
+ headers: { "Content-Type": "application/x-www-form-urlencoded" }
63
+ });
64
+ if (updateError) this.error(require_lib_term_map.applyCliTerms(formatApiError(updateError)), { exit: 1 });
65
+ this.log(chalk.default.green(`Spot ${args.id} updated`));
66
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
67
+ ok: true,
68
+ data: updateData,
69
+ summary: `Spot ${args.id} updated`,
70
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, {
71
+ resource: "spot",
72
+ id: args.id
73
+ }]
74
+ });
75
+ }
76
+ };
77
+ //#endregion
78
+ module.exports = SpotUpdate;
@@ -0,0 +1,98 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ const require_lib_pagination = require("../../lib/pagination.cjs");
6
+ let _oclif_core = require("@oclif/core");
7
+ let chalk = require("chalk");
8
+ chalk = require_runtime.__toESM(chalk);
9
+ //#region src/commands/tag/list.ts
10
+ /**
11
+ * Tag list command — lists all tags in the active workspace with auto-pagination.
12
+ */
13
+ var TagList = class TagList extends require_lib_base_command.AuthenticatedCommand {
14
+ static description = "List tags in the active workspace";
15
+ static agentMetadata = {
16
+ api_endpoint: "GET /tag/list",
17
+ auth_scope: "anonymous",
18
+ output_shape: {
19
+ type: "table",
20
+ columns: ["Tag", "Count"]
21
+ },
22
+ side_effects: "none"
23
+ };
24
+ static examples = [
25
+ "<%= config.bin %> tag list",
26
+ "<%= config.bin %> tag list --search marketing",
27
+ "<%= config.bin %> tag list --orderby count --order desc",
28
+ "<%= config.bin %> tag list --json"
29
+ ];
30
+ static enableJsonFlag = true;
31
+ static flags = {
32
+ ...require_lib_base_command.AuthenticatedCommand.baseFlags,
33
+ search: _oclif_core.Flags.string({
34
+ description: "Filter tags by a search string",
35
+ required: false
36
+ }),
37
+ "exclude-machine-tags": _oclif_core.Flags.boolean({
38
+ description: "Exclude machine tags from the results",
39
+ required: false
40
+ }),
41
+ "only-machine-tags": _oclif_core.Flags.boolean({
42
+ description: "Return only machine tags (overrides --exclude-machine-tags)",
43
+ required: false
44
+ }),
45
+ "only-published": _oclif_core.Flags.boolean({
46
+ description: "Return only tags from published videos",
47
+ required: false
48
+ }),
49
+ orderby: _oclif_core.Flags.string({
50
+ description: "Order tags by this value",
51
+ options: ["tag", "count"],
52
+ required: false
53
+ }),
54
+ order: _oclif_core.Flags.string({
55
+ description: "Sort order for the results",
56
+ options: ["asc", "desc"],
57
+ required: false
58
+ })
59
+ };
60
+ static args = {};
61
+ async run() {
62
+ const { flags } = await this.parse(TagList);
63
+ this.printWorkspaceHeader();
64
+ const tags = await require_lib_pagination.fetchAllPages(async (page, size) => {
65
+ const { data, error } = await this.apiClient.GET("/tag/list", { params: { query: {
66
+ p: page,
67
+ size,
68
+ search: flags.search,
69
+ exclude_machine_tags_p: flags["exclude-machine-tags"] ? true : void 0,
70
+ only_machine_tags_p: flags["only-machine-tags"] ? true : void 0,
71
+ only_published_p: flags["only-published"] ? true : void 0,
72
+ orderby: flags.orderby,
73
+ order: flags.order
74
+ } } });
75
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
76
+ const resp = data;
77
+ return {
78
+ data: Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [],
79
+ total_count: resp?.total_count
80
+ };
81
+ });
82
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
83
+ ok: true,
84
+ data: tags,
85
+ summary: `${tags.length} tag${tags.length === 1 ? "" : "s"}`,
86
+ breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "tag" }]
87
+ });
88
+ if (tags.length === 0) {
89
+ this.log("No tags found.");
90
+ return;
91
+ }
92
+ const table = require_lib_output.renderTable(["Tag", "Count"], tags.map((t) => [String(t.tag ?? ""), String(t.count ?? "")]));
93
+ this.log(table.toString());
94
+ this.log(chalk.default.dim(`${tags.length} tag${tags.length === 1 ? "" : "s"}`));
95
+ }
96
+ };
97
+ //#endregion
98
+ module.exports = TagList;
@@ -0,0 +1,57 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_lib_term_map = require("../../lib/term-map.cjs");
3
+ const require_lib_base_command = require("../../lib/base-command.cjs");
4
+ const require_lib_output = require("../../lib/output.cjs");
5
+ let _oclif_core = require("@oclif/core");
6
+ let chalk = require("chalk");
7
+ chalk = require_runtime.__toESM(chalk);
8
+ //#region src/commands/tag/related.ts
9
+ /**
10
+ * Tag related command — returns related tags for a given tag in the active workspace.
11
+ */
12
+ var TagRelated = class TagRelated extends require_lib_base_command.AuthenticatedCommand {
13
+ static description = "List tags related to a given tag";
14
+ static agentMetadata = {
15
+ api_endpoint: "GET /tag/related",
16
+ auth_scope: "anonymous",
17
+ output_shape: {
18
+ type: "table",
19
+ columns: ["Tag"]
20
+ },
21
+ side_effects: "none"
22
+ };
23
+ static examples = ["<%= config.bin %> tag related marketing", "<%= config.bin %> tag related marketing --json"];
24
+ static enableJsonFlag = true;
25
+ static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
26
+ static args = { tag: _oclif_core.Args.string({
27
+ description: "Tag to find related tags for",
28
+ required: true
29
+ }) };
30
+ async run() {
31
+ const { args } = await this.parse(TagRelated);
32
+ this.printWorkspaceHeader();
33
+ const { data, error } = await this.apiClient.GET("/tag/related", { params: { query: { tag: args.tag } } });
34
+ if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
35
+ const resp = data;
36
+ const tags = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
37
+ if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
38
+ ok: true,
39
+ data: tags,
40
+ summary: `${tags.length} related tag${tags.length === 1 ? "" : "s"}`,
41
+ breadcrumbs: [
42
+ { domain: this.activeWorkspace.domain },
43
+ { resource: "tag" },
44
+ { id: args.tag }
45
+ ]
46
+ });
47
+ if (tags.length === 0) {
48
+ this.log("No related tags found.");
49
+ return;
50
+ }
51
+ const table = require_lib_output.renderTable(["Tag"], tags.map((t) => [String(t.tag ?? "")]));
52
+ this.log(table.toString());
53
+ this.log(chalk.default.dim(`${tags.length} related tag${tags.length === 1 ? "" : "s"}`));
54
+ }
55
+ };
56
+ //#endregion
57
+ module.exports = TagRelated;