@bussolabs/closeyourit-cli 0.0.16 → 0.0.18

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 (176) hide show
  1. package/README.md +81 -2
  2. package/dist/commands/agents/assign.d.ts +13 -0
  3. package/dist/commands/agents/assign.js +25 -0
  4. package/dist/commands/agents/create.d.ts +22 -0
  5. package/dist/commands/agents/create.js +58 -0
  6. package/dist/commands/agents/delete.d.ts +12 -0
  7. package/dist/commands/agents/delete.js +25 -0
  8. package/dist/commands/agents/list.d.ts +10 -0
  9. package/dist/commands/agents/list.js +34 -0
  10. package/dist/commands/agents/runs/list.d.ts +12 -0
  11. package/dist/commands/agents/runs/list.js +32 -0
  12. package/dist/commands/agents/runs/show.d.ts +10 -0
  13. package/dist/commands/agents/runs/show.js +21 -0
  14. package/dist/commands/agents/show.d.ts +9 -0
  15. package/dist/commands/agents/show.js +20 -0
  16. package/dist/commands/agents/update.d.ts +23 -0
  17. package/dist/commands/agents/update.js +59 -0
  18. package/dist/commands/alerts/notifications/delete.d.ts +12 -0
  19. package/dist/commands/alerts/notifications/delete.js +25 -0
  20. package/dist/commands/alerts/notifications/list.d.ts +9 -0
  21. package/dist/commands/alerts/notifications/list.js +29 -0
  22. package/dist/commands/alerts/notifications/read-all.d.ts +6 -0
  23. package/dist/commands/alerts/notifications/read-all.js +15 -0
  24. package/dist/commands/alerts/notifications/read.d.ts +9 -0
  25. package/dist/commands/alerts/notifications/read.js +22 -0
  26. package/dist/commands/alerts/preferences/show.d.ts +6 -0
  27. package/dist/commands/alerts/preferences/show.js +16 -0
  28. package/dist/commands/alerts/preferences/update.d.ts +20 -0
  29. package/dist/commands/alerts/preferences/update.js +63 -0
  30. package/dist/commands/analytics/goals/create.d.ts +13 -0
  31. package/dist/commands/analytics/goals/create.js +35 -0
  32. package/dist/commands/analytics/goals/delete.d.ts +13 -0
  33. package/dist/commands/analytics/goals/delete.js +27 -0
  34. package/dist/commands/analytics/goals/list.d.ts +9 -0
  35. package/dist/commands/analytics/goals/list.js +25 -0
  36. package/dist/commands/analytics/share.d.ts +10 -0
  37. package/dist/commands/analytics/share.js +30 -0
  38. package/dist/commands/analytics/show.d.ts +11 -0
  39. package/dist/commands/analytics/show.js +32 -0
  40. package/dist/commands/analytics/unshare.d.ts +10 -0
  41. package/dist/commands/analytics/unshare.js +24 -0
  42. package/dist/commands/cron-monitors/list.d.ts +11 -0
  43. package/dist/commands/cron-monitors/list.js +38 -0
  44. package/dist/commands/cron-monitors/show.d.ts +9 -0
  45. package/dist/commands/cron-monitors/show.js +20 -0
  46. package/dist/commands/groups/create.d.ts +1 -0
  47. package/dist/commands/groups/create.js +7 -0
  48. package/dist/commands/groups/update.d.ts +1 -0
  49. package/dist/commands/groups/update.js +8 -1
  50. package/dist/commands/ideas/archive.d.ts +12 -0
  51. package/dist/commands/ideas/archive.js +24 -0
  52. package/dist/commands/ideas/case-delete.d.ts +14 -0
  53. package/dist/commands/ideas/case-delete.js +30 -0
  54. package/dist/commands/ideas/case-update.d.ts +15 -0
  55. package/dist/commands/ideas/case-update.js +41 -0
  56. package/dist/commands/ideas/delete.d.ts +13 -0
  57. package/dist/commands/ideas/delete.js +27 -0
  58. package/dist/commands/ideas/unarchive.d.ts +12 -0
  59. package/dist/commands/ideas/unarchive.js +24 -0
  60. package/dist/commands/logs/link.d.ts +12 -0
  61. package/dist/commands/logs/link.js +33 -0
  62. package/dist/commands/logs/show.d.ts +9 -0
  63. package/dist/commands/logs/show.js +21 -0
  64. package/dist/commands/logs/unlink.d.ts +13 -0
  65. package/dist/commands/logs/unlink.js +26 -0
  66. package/dist/commands/members/remove.d.ts +12 -0
  67. package/dist/commands/members/remove.js +27 -0
  68. package/dist/commands/members/set-access.d.ts +4 -0
  69. package/dist/commands/members/set-access.js +38 -4
  70. package/dist/commands/members/update.d.ts +14 -0
  71. package/dist/commands/members/update.js +40 -0
  72. package/dist/commands/monitors/announcements/clear.d.ts +13 -0
  73. package/dist/commands/monitors/announcements/clear.js +27 -0
  74. package/dist/commands/monitors/announcements/set.d.ts +17 -0
  75. package/dist/commands/monitors/announcements/set.js +45 -0
  76. package/dist/commands/monitors/announcements/show.d.ts +12 -0
  77. package/dist/commands/monitors/announcements/show.js +24 -0
  78. package/dist/commands/monitors/create.d.ts +1 -0
  79. package/dist/commands/monitors/create.js +3 -0
  80. package/dist/commands/monitors/incidents/delete.d.ts +14 -0
  81. package/dist/commands/monitors/incidents/delete.js +28 -0
  82. package/dist/commands/monitors/incidents/group.d.ts +15 -0
  83. package/dist/commands/monitors/incidents/group.js +38 -0
  84. package/dist/commands/monitors/incidents/ungroup.d.ts +14 -0
  85. package/dist/commands/monitors/incidents/ungroup.js +31 -0
  86. package/dist/commands/monitors/incidents/update-add.d.ts +15 -0
  87. package/dist/commands/monitors/incidents/update-add.js +38 -0
  88. package/dist/commands/monitors/incidents/update-delete.d.ts +15 -0
  89. package/dist/commands/monitors/incidents/update-delete.js +31 -0
  90. package/dist/commands/monitors/publish.d.ts +12 -0
  91. package/dist/commands/monitors/publish.js +21 -0
  92. package/dist/commands/monitors/unpublish.d.ts +12 -0
  93. package/dist/commands/monitors/unpublish.js +21 -0
  94. package/dist/commands/monitors/update.d.ts +1 -0
  95. package/dist/commands/monitors/update.js +3 -0
  96. package/dist/commands/org/update.d.ts +2 -0
  97. package/dist/commands/org/update.js +10 -0
  98. package/dist/commands/platforms/create.d.ts +1 -0
  99. package/dist/commands/platforms/create.js +7 -0
  100. package/dist/commands/platforms/update.d.ts +1 -0
  101. package/dist/commands/platforms/update.js +8 -1
  102. package/dist/commands/projects/create.d.ts +2 -0
  103. package/dist/commands/projects/create.js +13 -0
  104. package/dist/commands/projects/link-server.d.ts +11 -0
  105. package/dist/commands/projects/link-server.js +33 -0
  106. package/dist/commands/projects/settings/show.d.ts +9 -0
  107. package/dist/commands/projects/settings/show.js +23 -0
  108. package/dist/commands/projects/settings/update.d.ts +14 -0
  109. package/dist/commands/projects/settings/update.js +50 -0
  110. package/dist/commands/projects/unlink-server.d.ts +13 -0
  111. package/dist/commands/projects/unlink-server.js +29 -0
  112. package/dist/commands/projects/update.d.ts +2 -0
  113. package/dist/commands/projects/update.js +14 -1
  114. package/dist/commands/releases/list.d.ts +10 -0
  115. package/dist/commands/releases/list.js +29 -0
  116. package/dist/commands/tickets/links.d.ts +12 -0
  117. package/dist/commands/tickets/links.js +33 -0
  118. package/dist/commands/tickets/reviewer.d.ts +13 -0
  119. package/dist/commands/tickets/reviewer.js +29 -0
  120. package/dist/commands/tickets/unlink.d.ts +14 -0
  121. package/dist/commands/tickets/unlink.js +29 -0
  122. package/dist/commands/tickets/unreviewer.d.ts +12 -0
  123. package/dist/commands/tickets/unreviewer.js +25 -0
  124. package/dist/commands/tickets/unwatch.d.ts +12 -0
  125. package/dist/commands/tickets/unwatch.js +25 -0
  126. package/dist/commands/tickets/watch.d.ts +12 -0
  127. package/dist/commands/tickets/watch.js +26 -0
  128. package/dist/commands/todos/complete.d.ts +10 -0
  129. package/dist/commands/todos/complete.js +23 -0
  130. package/dist/commands/todos/create.d.ts +10 -0
  131. package/dist/commands/todos/create.js +29 -0
  132. package/dist/commands/todos/delete.d.ts +12 -0
  133. package/dist/commands/todos/delete.js +25 -0
  134. package/dist/commands/todos/items/add.d.ts +14 -0
  135. package/dist/commands/todos/items/add.js +35 -0
  136. package/dist/commands/todos/items/delete.d.ts +13 -0
  137. package/dist/commands/todos/items/delete.js +26 -0
  138. package/dist/commands/todos/items/list.d.ts +12 -0
  139. package/dist/commands/todos/items/list.js +28 -0
  140. package/dist/commands/todos/items/update.d.ts +15 -0
  141. package/dist/commands/todos/items/update.js +38 -0
  142. package/dist/commands/todos/list.d.ts +9 -0
  143. package/dist/commands/todos/list.js +24 -0
  144. package/dist/commands/todos/reorder.d.ts +9 -0
  145. package/dist/commands/todos/reorder.js +19 -0
  146. package/dist/commands/todos/share.d.ts +12 -0
  147. package/dist/commands/todos/share.js +33 -0
  148. package/dist/commands/todos/shared-show.d.ts +9 -0
  149. package/dist/commands/todos/shared-show.js +20 -0
  150. package/dist/commands/todos/shared.d.ts +9 -0
  151. package/dist/commands/todos/shared.js +25 -0
  152. package/dist/commands/todos/shares.d.ts +9 -0
  153. package/dist/commands/todos/shares.js +26 -0
  154. package/dist/commands/todos/show.d.ts +9 -0
  155. package/dist/commands/todos/show.js +20 -0
  156. package/dist/commands/todos/uncomplete.d.ts +10 -0
  157. package/dist/commands/todos/uncomplete.js +23 -0
  158. package/dist/commands/todos/update.d.ts +13 -0
  159. package/dist/commands/todos/update.js +34 -0
  160. package/dist/commands/uptime-groups/create.d.ts +12 -0
  161. package/dist/commands/uptime-groups/create.js +35 -0
  162. package/dist/commands/uptime-groups/delete.d.ts +12 -0
  163. package/dist/commands/uptime-groups/delete.js +25 -0
  164. package/dist/commands/uptime-groups/list.d.ts +9 -0
  165. package/dist/commands/uptime-groups/list.js +24 -0
  166. package/dist/commands/uptime-groups/publish.d.ts +9 -0
  167. package/dist/commands/uptime-groups/publish.js +22 -0
  168. package/dist/commands/uptime-groups/show.d.ts +9 -0
  169. package/dist/commands/uptime-groups/show.js +20 -0
  170. package/dist/commands/uptime-groups/unpublish.d.ts +9 -0
  171. package/dist/commands/uptime-groups/unpublish.js +22 -0
  172. package/dist/commands/uptime-groups/update.d.ts +15 -0
  173. package/dist/commands/uptime-groups/update.js +37 -0
  174. package/oclif.manifest.json +6389 -2226
  175. package/opencli.json +3003 -83
  176. package/package.json +16 -1
package/README.md CHANGED
@@ -33,9 +33,15 @@ organization are stored locally.
33
33
  | `whoami` | Show account, organization, token prefix and permissions. |
34
34
  | `projects list [--page]` | List visible projects. |
35
35
  | `projects show <id\|key>` | Show one project. |
36
- | `projects create <name> [--group <id\|name>] [--key] [--color] [--description]` | Create a project (key derived from the name if omitted). |
36
+ | `projects create <name> --key <key> [--group <id\|name>] [--color] [--description] [--roadmap-enabled] [--quick-bug-report-enabled]` | Create a project (optionally inside a group). |
37
+ | `projects update --project <id\|key> [--name] [--key] [--color] [--description] [--group] [--roadmap-enabled] [--quick-bug-report-enabled]` | Update a project (only the passed fields change). |
38
+ | `projects link-server --project <id\|key> --host-id <id> --environment-id <id>` | Link a server host to a declared project environment (uptime). |
39
+ | `projects unlink-server <link-id> --project <id\|key> --confirm` | Unlink a server host from the project. |
40
+ | `projects settings show --project <id\|key>` | Show a project's settings (log/analytics retention + feature flags). |
41
+ | `projects settings update --project <id\|key> [--logs-retention-days] [--analytics-retention-days] [--roadmap-enabled] [--quick-bug-report-enabled] [--analytics-enabled]` | Update a project's settings (only the passed fields change). |
37
42
  | `groups list [--page]` | List groups (macro-projects) in your org. |
38
- | `groups create <name> [--color]` | Create a group (container of related projects, e.g. "DriverOne"). |
43
+ | `groups create <name> [--color] [--roadmap-enabled]` | Create a group (container of related projects, e.g. "DriverOne"). |
44
+ | `groups update <id\|name> [--name] [--color] [--roadmap-enabled]` | Update a group (rename, recolor, toggle roadmap). |
39
45
  | `roles list\|show <id\|name>` | List roles / show a role with its permission keys. |
40
46
  | `roles create <name> [--permission <key>…] [--color]` | Create an RBAC role (bundle of permission keys). |
41
47
  | `roles update <id\|name> [--name] [--permission <key>…] [--color]` | Update a role (permissions REPLACE the set). |
@@ -46,9 +52,15 @@ organization are stored locally.
46
52
  | `teams add-member\|remove-member <team> <email\|id>` | Add/remove one person, keeping the others. |
47
53
  | `teams delete <id\|name>` | Delete a team. |
48
54
  | `members list [--page]` | List org members (resolve email → account id). |
55
+ | `members set-access <membership-id> [--group <id\|name>…] [--project <id\|key>…] [--role-id <id\|name>…] [--override <key=allow\|deny\|inherit>…]` | Set a member's scope, direct roles and permission overrides. |
56
+ | `members update <membership-id> [--name] [--email] [--handle]` | Update a member's profile (requires members.edit). |
57
+ | `members remove <membership-id> --confirm` | Remove a member from the org (requires members.manage). |
49
58
  | `invitations create <email> [--role customer\|member\|admin]` | Invite a person; prints the acceptance link (once). |
50
59
  | `invitations list [--page]` | List invitations. |
51
60
  | `invitations revoke <id>` | Revoke a pending invitation. |
61
+ | `org update [--name] [--slug] [--projects-view cards\|table] [--logs-retention-days] [--analytics-retention-days]` | Update the organization (requires organization.manage). |
62
+ | `platforms create <code> --label <label> [--color] [--position] [--active] [--supports-uptime]` | Create a platform (a device/system your projects run on). |
63
+ | `platforms update <id\|code> [--code] [--label] [--color] [--position] [--active] [--supports-uptime]` | Update a platform. |
52
64
  | `errors list --project <id\|key> [--status] [--page]` | List error groups. |
53
65
  | `errors show <id> --project <id\|key>` | Show one error group. |
54
66
  | `errors resolve\|reopen\|mute\|unmute <id> --project <id\|key>` | Triage an error group. |
@@ -61,9 +73,21 @@ organization are stored locally.
61
73
  | `tickets create --project <id\|key> --title <t> [--kind] [--step-*] [--description] [--status-id] [--priority-id]` | Create a ticket. |
62
74
  | `tickets reject <id> --project <id\|key> --reason <text>` | Reject the review: back to work, the reason becomes a comment. |
63
75
  | `tickets approve <id> --project <id\|key>` | Approve the review: move to the first done status. |
76
+ | `tickets links <id> --project <id\|key>` | List the ticket-to-ticket links (duplicate/related) involving a ticket. |
77
+ | `tickets unlink <id> <link-id> --project <id\|key> --confirm` | Remove a ticket-to-ticket link (requires tickets.edit). |
78
+ | `tickets reviewer <id> --project <id\|key> --reviewer-id <account-id>` | Set the reviewer of a ticket (requires tickets.assign). |
79
+ | `tickets unreviewer <id> --project <id\|key>` | Remove the reviewer of a ticket. |
80
+ | `tickets watch\|unwatch <id> --project <id\|key>` | Watch / stop watching a ticket (its notifications). |
81
+ | `ideas delete <id> --project <id\|key> --confirm` | Delete an idea (author always allowed; others need ideas.delete). |
82
+ | `ideas archive\|unarchive <id> --project <id\|key>` | Archive an idea (open → archived) / reopen it. |
83
+ | `ideas case-update <idea-id> <case-id> --project <id\|key> [--title] [--description]` | Update a case (example) of an idea. |
84
+ | `ideas case-delete <idea-id> <case-id> --project <id\|key> --confirm` | Delete a case from an open idea. |
64
85
  | `metrics list --project <id\|key> [--kind] [--page]` | List metric groups. |
65
86
  | `metrics show <id> --project <id\|key>` | Show one metric group. |
66
87
  | `logs list [--project <id\|key>] [--level] [--trace-id] [--environment] [--page]` | List structured log entries. Cross-app: omit `--project` for the full visible stream. |
88
+ | `logs show <id>` | Show a single log entry (attributes, trace id, correlation). |
89
+ | `logs link <id> --to <Errors::Group:uuid\|Ticketing::Ticket:uuid>` | Manually link a log entry to an error group or ticket. |
90
+ | `logs unlink <id> <link-id> --confirm` | Remove a manual log link. |
67
91
  | `kb list [--project <id\|key>] [--kind] [--per] [--page]` | List knowledge pages. Cross-project: omit `--project` for every visible project. |
68
92
  | `kb search <query…> [--project <id\|key>] [--kind] [--per] [--page]` | Search knowledge pages (semantic when available, title ILIKE fallback). |
69
93
  | `kb show <id>` | Show one knowledge page: metadata header + raw markdown body. |
@@ -81,9 +105,64 @@ organization are stored locally.
81
105
  | `servers tokens list` | List the fleet enrollment tokens. |
82
106
  | `servers tokens create <name>` | Create an enrollment token (secret shown once). |
83
107
  | `servers tokens revoke <id> --confirm` | Revoke an enrollment token. |
108
+ | `agents list [--kind claude\|shell] [--page]` | List the automation agents in your org. |
109
+ | `agents show <id>` | Show one automation agent. |
110
+ | `agents create --name --slug --run --schedule [--kind] [--timeout] [--model] [--permission-mode] [--allowed-tool…] [--on-failure] [--project <id\|key>…] [--group <id\|name>…] [--catch-up] [--no-enabled]` | Create an agent (executed by closeyourit-automator). |
111
+ | `agents update <id> [--name] [--slug] [--kind] [--run] [--schedule] [--timeout] [--model] [--permission-mode] [--allowed-tool…] [--on-failure] [--enabled\|--no-enabled] [--catch-up\|--no-catch-up]` | Update an agent (only the passed fields change). |
112
+ | `agents assign <id> [--project <id\|key>…] [--group <id\|name>…]` | Assign the agent to projects/groups (replaces targets). |
113
+ | `agents delete <id> --confirm` | Delete an agent and its run history. |
114
+ | `agents runs list <agent-id> [--page]` | List an agent's run history. |
115
+ | `agents runs show <agent-id> <run-id>` | Show a single run (with output). |
116
+ | `monitors create --project <id\|key> --url <url> [--environment] [--http-method] [--interval-seconds] [--expected-status] [--timeout-seconds] [--expected-body-keyword] [--ssl-expiry-warn-days] [--group-id]` | Create an uptime monitor (one per environment). |
117
+ | `monitors update <id> --project <id\|key> [--url] [--http-method] [--interval-seconds] [--expected-status] [--timeout-seconds] [--expected-body-keyword] [--ssl-expiry-warn-days] [--group-id]` | Update an uptime monitor. |
118
+ | `monitors publish\|unpublish <id> --project <id\|key>` | Publish / unpublish the monitor's public status page. |
119
+ | `monitors announcements show <id> --project <id\|key>` | Show the status-page announcement banner. |
120
+ | `monitors announcements set <id> --project <id\|key> [--level info\|maintenance\|warning] [--message] [--starts-at] [--ends-at] [--active]` | Upsert the status-page announcement banner. |
121
+ | `monitors announcements clear <id> --project <id\|key> --confirm` | Remove the announcement banner. |
122
+ | `monitors incidents delete <id> <incident-id> --project <id\|key> --confirm` | Delete an uptime incident. |
123
+ | `monitors incidents group <id> --project <id\|key> --incident <id>… --phase <phase> [--body]` | Unify incidents and post the first narration step. |
124
+ | `monitors incidents ungroup <id> <incident-id> --project <id\|key> [--keep <window-id>]` | Dissolve an incident grouping. |
125
+ | `monitors incidents update-add <id> <incident-id> --project <id\|key> --phase <phase> [--body]` | Add a timeline step to a narrated incident. |
126
+ | `monitors incidents update-delete <id> <incident-id> <update-id> --project <id\|key> --confirm` | Delete a timeline step from an incident. |
127
+ | `uptime-groups list [--page]` | List uptime monitor groups in your org. |
128
+ | `uptime-groups show <id>` | Show an uptime monitor group. |
129
+ | `uptime-groups create --name <name> [--color] [--icon] [--description]` | Create an uptime monitor group (org-level container). |
130
+ | `uptime-groups update <id> [--name] [--color] [--icon] [--description]` | Update an uptime monitor group. |
131
+ | `uptime-groups delete <id> --confirm` | Delete an uptime monitor group. |
132
+ | `uptime-groups publish\|unpublish <id>` | Publish / unpublish the group's public status page. |
133
+ | `cron-monitors list [--status] [--project <id\|key>] [--page]` | List cron / heartbeat monitors across visible projects. |
134
+ | `cron-monitors show <id>` | Show a cron / heartbeat monitor. |
135
+ | `analytics show --project <id\|key> [--range 24h\|7d\|30d\|1y] [--environment]` | Show the web analytics snapshot (traffic, top pages, goals). |
136
+ | `analytics share --project <id\|key> [--password]` | Publish a public shareable analytics link. |
137
+ | `analytics unshare --project <id\|key> --confirm` | Revoke the public analytics link. |
138
+ | `analytics goals list --project <id\|key>` | List a project's conversion goals. |
139
+ | `analytics goals create --project <id\|key> --kind pageview_path\|custom_event --display-name <name> [--event-name] [--path-pattern]` | Create a conversion goal. |
140
+ | `analytics goals delete <id> --project <id\|key> --confirm` | Delete a conversion goal. |
141
+ | `releases list --project <id\|key> [--page]` | List a project's releases (tracked from CI). |
84
142
  | `alerts channels list` | List the external alert channels (webhook / Telegram). |
85
143
  | `alerts channels create <name> --kind telegram\|webhook …` | Create a channel (`--bot-token`/`--chat-id` or `--url`/`--secret`). |
86
144
  | `alerts channels delete <id> --confirm` | Delete a channel. |
145
+ | `alerts notifications list [--page]` | List your in-app alert notifications. |
146
+ | `alerts notifications read <id>` | Mark a notification as read. |
147
+ | `alerts notifications read-all` | Mark all your unread notifications as read. |
148
+ | `alerts notifications delete <id> --confirm` | Delete one of your notifications. |
149
+ | `alerts preferences show` | Show your personal alert preferences (per org). |
150
+ | `alerts preferences update [--in-app-enabled] [--email-enabled] [--errors-enabled] [--uptime-enabled] [--tickets-enabled] [--chat-enabled] [--servers-enabled] [--min-level] [--quiet-hours-enabled] [--quiet-hours-start] [--quiet-hours-end] [--quiet-hours-tz]` | Update your personal alert preferences (send only the fields to change). |
151
+ | `todos list [--page]` | List your own todo lists. |
152
+ | `todos show <id>` | Show one of your todo lists. |
153
+ | `todos create --name <name> [--color]` | Create a todo list. |
154
+ | `todos update <id> [--name] [--color]` | Update a todo list (rename or recolor). |
155
+ | `todos delete <id> --confirm` | Delete a todo list. |
156
+ | `todos reorder --list <id>…` | Reorder your todo lists (pass --list once per id, in order). |
157
+ | `todos shares <list-id>` | List the members a todo list is shared with. |
158
+ | `todos share <list-id> [--account <id>…]` | Set who a todo list is shared with (omit --account to unshare all). |
159
+ | `todos complete\|uncomplete <list-id> <item-id>` | Mark a todo item done / reopen it. |
160
+ | `todos shared [--page]` | List todo lists shared with you (read-only). |
161
+ | `todos shared-show <id>` | Show a todo list shared with you (read-only). |
162
+ | `todos items list <list-id> [--page]` | List the items of a todo list. |
163
+ | `todos items add <list-id> --title <title> [--ticket] [--position]` | Add an item to a todo list. |
164
+ | `todos items update <list-id> <item-id> [--title] [--ticket] [--position]` | Update a todo item. |
165
+ | `todos items delete <list-id> <item-id> --confirm` | Delete a todo item. |
87
166
 
88
167
  Every command accepts `--json` for machine-readable output and `--help` for usage details.
89
168
  `--project` accepts either a project UUID or its key (matched case-insensitively).
@@ -0,0 +1,13 @@
1
+ import { BaseCommand } from '../../base';
2
+ export default class AgentsAssign extends BaseCommand {
3
+ static args: {
4
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ project: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ group: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ };
12
+ run(): Promise<unknown>;
13
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../base");
5
+ class AgentsAssign extends base_1.BaseCommand {
6
+ static args = {
7
+ id: core_1.Args.string({ description: 'Agent id', required: true }),
8
+ };
9
+ static description = 'Assign an agent to projects/groups (replaces the current targets)';
10
+ static examples = ['<%= config.bin %> agents assign <agent-id> --project CYI --project DR'];
11
+ static flags = {
12
+ project: core_1.Flags.string({ description: 'Target project key/id (repeatable)', multiple: true }),
13
+ group: core_1.Flags.string({ description: 'Target group name/id (repeatable)', multiple: true }),
14
+ };
15
+ async run() {
16
+ const { args, flags } = await this.parse(AgentsAssign);
17
+ const projectIds = await Promise.all((flags.project ?? []).map((value) => this.resolveProjectId(value)));
18
+ const groupIds = await Promise.all((flags.group ?? []).map((value) => this.resolveGroupId(value)));
19
+ const res = await this.api.put(`/cli/v1/agents/${encodeURIComponent(args.id)}/assign`, { project_ids: projectIds, group_ids: groupIds });
20
+ if (!this.jsonEnabled())
21
+ this.log(`Assigned agent ${args.id} to ${projectIds.length} project(s), ${groupIds.length} group(s)`);
22
+ return res;
23
+ }
24
+ }
25
+ exports.default = AgentsAssign;
@@ -0,0 +1,22 @@
1
+ import { BaseCommand } from '../../base';
2
+ export default class AgentsCreate extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ name: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ slug: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ kind: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ run: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ schedule: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ timeout: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ model: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ 'permission-mode': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ 'allowed-tool': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ 'on-failure': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
16
+ project: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
17
+ group: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
18
+ 'catch-up': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
19
+ 'no-enabled': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
20
+ };
21
+ run(): Promise<unknown>;
22
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../base");
5
+ const PERMISSION_MODES = ['plan', 'acceptEdits', 'auto', 'manual', 'dontAsk', 'bypassPermissions'];
6
+ class AgentsCreate extends base_1.BaseCommand {
7
+ static description = 'Create an automation agent';
8
+ static examples = [
9
+ '<%= config.bin %> agents create --name Triage --slug triage --run "/closeyourit-ticket review" --schedule "every 15m" --project CYI',
10
+ ];
11
+ static flags = {
12
+ name: core_1.Flags.string({ description: 'Display name', required: true }),
13
+ slug: core_1.Flags.string({ description: 'Slug (a-z, 0-9, dashes)', required: true }),
14
+ kind: core_1.Flags.string({ description: 'Agent kind', options: ['claude', 'shell'], default: 'claude' }),
15
+ run: core_1.Flags.string({ description: 'Prompt / "/skill" (claude) or shell command (shell)', required: true }),
16
+ schedule: core_1.Flags.string({ description: 'Cron (UTC) or shorthand like "every 15m"', required: true }),
17
+ timeout: core_1.Flags.integer({ description: 'Timeout in seconds' }),
18
+ model: core_1.Flags.string({ description: 'Claude model override' }),
19
+ 'permission-mode': core_1.Flags.string({ description: 'Claude permission mode', options: PERMISSION_MODES }),
20
+ 'allowed-tool': core_1.Flags.string({ description: 'Allowed tool (repeatable)', multiple: true }),
21
+ 'on-failure': core_1.Flags.string({ description: 'Shell command run on failure' }),
22
+ project: core_1.Flags.string({ description: 'Target project key/id (repeatable)', multiple: true }),
23
+ group: core_1.Flags.string({ description: 'Target group name/id (repeatable)', multiple: true }),
24
+ 'catch-up': core_1.Flags.boolean({ description: 'Run missed schedules on start', default: false }),
25
+ 'no-enabled': core_1.Flags.boolean({ description: 'Create the agent disabled', default: false }),
26
+ };
27
+ async run() {
28
+ const { flags } = await this.parse(AgentsCreate);
29
+ const projectIds = await Promise.all((flags.project ?? []).map((value) => this.resolveProjectId(value)));
30
+ const groupIds = await Promise.all((flags.group ?? []).map((value) => this.resolveGroupId(value)));
31
+ const body = {
32
+ name: flags.name,
33
+ slug: flags.slug,
34
+ kind: flags.kind,
35
+ run: flags.run,
36
+ schedule: flags.schedule,
37
+ enabled: !flags['no-enabled'],
38
+ catch_up: flags['catch-up'],
39
+ project_ids: projectIds,
40
+ group_ids: groupIds,
41
+ };
42
+ if (flags.timeout !== undefined)
43
+ body.timeout_seconds = flags.timeout;
44
+ if (flags.model)
45
+ body.model = flags.model;
46
+ if (flags['permission-mode'])
47
+ body.permission_mode = flags['permission-mode'];
48
+ if (flags['allowed-tool'])
49
+ body.allowed_tools = flags['allowed-tool'];
50
+ if (flags['on-failure'])
51
+ body.on_failure_run = flags['on-failure'];
52
+ const res = await this.api.post('/cli/v1/agents', body);
53
+ if (!this.jsonEnabled())
54
+ this.log(`Created agent ${res.data?.id ?? ''} (${res.data?.slug ?? flags.slug})`);
55
+ return res;
56
+ }
57
+ }
58
+ exports.default = AgentsCreate;
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../base';
2
+ export default class AgentsDelete extends BaseCommand {
3
+ static args: {
4
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ confirm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<unknown>;
12
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../base");
5
+ class AgentsDelete extends base_1.BaseCommand {
6
+ static args = {
7
+ id: core_1.Args.string({ description: 'Agent id', required: true }),
8
+ };
9
+ static description = 'Delete an automation agent and its run history';
10
+ static examples = ['<%= config.bin %> agents delete <agent-id> --confirm'];
11
+ static flags = {
12
+ confirm: core_1.Flags.boolean({ description: 'Required: confirm the deletion' }),
13
+ };
14
+ async run() {
15
+ const { args, flags } = await this.parse(AgentsDelete);
16
+ if (!flags.confirm) {
17
+ this.error('Refusing to delete without --confirm.', { exit: 2 });
18
+ }
19
+ await this.api.delete(`/cli/v1/agents/${encodeURIComponent(args.id)}`);
20
+ if (!this.jsonEnabled())
21
+ this.log(`Deleted agent ${args.id}`);
22
+ return { deleted: args.id };
23
+ }
24
+ }
25
+ exports.default = AgentsDelete;
@@ -0,0 +1,10 @@
1
+ import { BaseCommand } from '../../base';
2
+ export default class AgentsList extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ kind: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ page: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ };
9
+ run(): Promise<unknown>;
10
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../base");
5
+ const output_1 = require("../../lib/output");
6
+ class AgentsList extends base_1.BaseCommand {
7
+ static description = 'List the automation agents in your organization';
8
+ static examples = ['<%= config.bin %> agents list', '<%= config.bin %> agents list --kind shell --json'];
9
+ static flags = {
10
+ ...base_1.pageFlag,
11
+ kind: core_1.Flags.string({ description: 'Filter by kind (repeatable)', multiple: true, options: ['claude', 'shell'] }),
12
+ };
13
+ async run() {
14
+ const { flags } = await this.parse(AgentsList);
15
+ const params = new URLSearchParams({ page: String(flags.page) });
16
+ for (const kind of flags.kind ?? [])
17
+ params.append('kind[]', kind);
18
+ const res = await this.api.get(`/cli/v1/agents?${params.toString()}`);
19
+ const agents = res.data ?? [];
20
+ if (!this.jsonEnabled()) {
21
+ this.log((0, output_1.renderTable)(['NAME', 'SLUG', 'KIND', 'SCHEDULE', 'ENABLED', 'LAST RUN', 'ID'], agents.map((agent) => [
22
+ String(agent.name ?? ''),
23
+ String(agent.slug ?? ''),
24
+ String(agent.kind ?? ''),
25
+ String(agent.schedule ?? ''),
26
+ String(agent.enabled ?? ''),
27
+ String(agent.last_run_status ?? '-'),
28
+ String(agent.id ?? ''),
29
+ ])));
30
+ }
31
+ return res;
32
+ }
33
+ }
34
+ exports.default = AgentsList;
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../../base';
2
+ export default class AgentsRunsList extends BaseCommand {
3
+ static args: {
4
+ agentId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ page: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ };
11
+ run(): Promise<unknown>;
12
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../../base");
5
+ const output_1 = require("../../../lib/output");
6
+ class AgentsRunsList extends base_1.BaseCommand {
7
+ static args = {
8
+ agentId: core_1.Args.string({ description: 'Agent id', required: true }),
9
+ };
10
+ static description = 'List the run history of an automation agent';
11
+ static examples = ['<%= config.bin %> agents runs list <agent-id>'];
12
+ static flags = {
13
+ ...base_1.pageFlag,
14
+ };
15
+ async run() {
16
+ const { args, flags } = await this.parse(AgentsRunsList);
17
+ const params = new URLSearchParams({ page: String(flags.page) });
18
+ const res = await this.api.get(`/cli/v1/agents/${encodeURIComponent(args.agentId)}/runs?${params.toString()}`);
19
+ const runs = res.data ?? [];
20
+ if (!this.jsonEnabled()) {
21
+ this.log((0, output_1.renderTable)(['STATUS', 'PROJECT', 'DURATION', 'STARTED', 'ID'], runs.map((run) => [
22
+ String(run.status ?? ''),
23
+ String(run.project_id ?? '-'),
24
+ run.duration_ms == null ? '-' : `${run.duration_ms} ms`,
25
+ String(run.started_at ?? '-'),
26
+ String(run.id ?? ''),
27
+ ])));
28
+ }
29
+ return res;
30
+ }
31
+ }
32
+ exports.default = AgentsRunsList;
@@ -0,0 +1,10 @@
1
+ import { BaseCommand } from '../../../base';
2
+ export default class AgentsRunsShow extends BaseCommand {
3
+ static args: {
4
+ agentId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
5
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static description: string;
8
+ static examples: string[];
9
+ run(): Promise<unknown>;
10
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../../base");
5
+ const output_1 = require("../../../lib/output");
6
+ class AgentsRunsShow extends base_1.BaseCommand {
7
+ static args = {
8
+ agentId: core_1.Args.string({ description: 'Agent id', required: true }),
9
+ id: core_1.Args.string({ description: 'Run id', required: true }),
10
+ };
11
+ static description = 'Show a single run of an automation agent (output included)';
12
+ static examples = ['<%= config.bin %> agents runs show <agent-id> <run-id>'];
13
+ async run() {
14
+ const { args } = await this.parse(AgentsRunsShow);
15
+ const res = await this.api.get(`/cli/v1/agents/${encodeURIComponent(args.agentId)}/runs/${encodeURIComponent(args.id)}`);
16
+ if (!this.jsonEnabled())
17
+ this.log((0, output_1.renderRecord)(res.data ?? {}));
18
+ return res;
19
+ }
20
+ }
21
+ exports.default = AgentsRunsShow;
@@ -0,0 +1,9 @@
1
+ import { BaseCommand } from '../../base';
2
+ export default class AgentsShow extends BaseCommand {
3
+ static args: {
4
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ run(): Promise<unknown>;
9
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../base");
5
+ const output_1 = require("../../lib/output");
6
+ class AgentsShow extends base_1.BaseCommand {
7
+ static args = {
8
+ id: core_1.Args.string({ description: 'Agent id', required: true }),
9
+ };
10
+ static description = 'Show an automation agent';
11
+ static examples = ['<%= config.bin %> agents show <agent-id>'];
12
+ async run() {
13
+ const { args } = await this.parse(AgentsShow);
14
+ const res = await this.api.get(`/cli/v1/agents/${encodeURIComponent(args.id)}`);
15
+ if (!this.jsonEnabled())
16
+ this.log((0, output_1.renderRecord)(res.data ?? {}));
17
+ return res;
18
+ }
19
+ }
20
+ exports.default = AgentsShow;
@@ -0,0 +1,23 @@
1
+ import { BaseCommand } from '../../base';
2
+ export default class AgentsUpdate extends BaseCommand {
3
+ static args: {
4
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ slug: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ kind: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ run: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ schedule: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ timeout: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ model: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
16
+ 'permission-mode': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
17
+ 'allowed-tool': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
18
+ 'on-failure': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
19
+ enabled: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
20
+ 'catch-up': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
21
+ };
22
+ run(): Promise<unknown>;
23
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../base");
5
+ const PERMISSION_MODES = ['plan', 'acceptEdits', 'auto', 'manual', 'dontAsk', 'bypassPermissions'];
6
+ class AgentsUpdate extends base_1.BaseCommand {
7
+ static args = {
8
+ id: core_1.Args.string({ description: 'Agent id', required: true }),
9
+ };
10
+ static description = 'Update an automation agent (only the flags you pass are changed)';
11
+ static examples = ['<%= config.bin %> agents update <agent-id> --name "New name" --no-enabled'];
12
+ static flags = {
13
+ name: core_1.Flags.string({ description: 'Display name' }),
14
+ slug: core_1.Flags.string({ description: 'Slug' }),
15
+ kind: core_1.Flags.string({ description: 'Agent kind', options: ['claude', 'shell'] }),
16
+ run: core_1.Flags.string({ description: 'Prompt / "/skill" or shell command' }),
17
+ schedule: core_1.Flags.string({ description: 'Cron (UTC) or shorthand' }),
18
+ timeout: core_1.Flags.integer({ description: 'Timeout in seconds' }),
19
+ model: core_1.Flags.string({ description: 'Claude model override' }),
20
+ 'permission-mode': core_1.Flags.string({ description: 'Claude permission mode', options: PERMISSION_MODES }),
21
+ 'allowed-tool': core_1.Flags.string({ description: 'Allowed tool (repeatable, replaces the list)', multiple: true }),
22
+ 'on-failure': core_1.Flags.string({ description: 'Shell command run on failure' }),
23
+ enabled: core_1.Flags.boolean({ description: 'Enable/disable the agent', allowNo: true }),
24
+ 'catch-up': core_1.Flags.boolean({ description: 'Run missed schedules on start', allowNo: true }),
25
+ };
26
+ async run() {
27
+ const { args, flags } = await this.parse(AgentsUpdate);
28
+ const body = {};
29
+ if (flags.name !== undefined)
30
+ body.name = flags.name;
31
+ if (flags.slug !== undefined)
32
+ body.slug = flags.slug;
33
+ if (flags.kind !== undefined)
34
+ body.kind = flags.kind;
35
+ if (flags.run !== undefined)
36
+ body.run = flags.run;
37
+ if (flags.schedule !== undefined)
38
+ body.schedule = flags.schedule;
39
+ if (flags.timeout !== undefined)
40
+ body.timeout_seconds = flags.timeout;
41
+ if (flags.model !== undefined)
42
+ body.model = flags.model;
43
+ if (flags['permission-mode'] !== undefined)
44
+ body.permission_mode = flags['permission-mode'];
45
+ if (flags['allowed-tool'] !== undefined)
46
+ body.allowed_tools = flags['allowed-tool'];
47
+ if (flags['on-failure'] !== undefined)
48
+ body.on_failure_run = flags['on-failure'];
49
+ if (flags.enabled !== undefined)
50
+ body.enabled = flags.enabled;
51
+ if (flags['catch-up'] !== undefined)
52
+ body.catch_up = flags['catch-up'];
53
+ const res = await this.api.put(`/cli/v1/agents/${encodeURIComponent(args.id)}`, body);
54
+ if (!this.jsonEnabled())
55
+ this.log(`Updated agent ${args.id}`);
56
+ return res;
57
+ }
58
+ }
59
+ exports.default = AgentsUpdate;
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../../base';
2
+ export default class AlertsNotificationsDelete extends BaseCommand {
3
+ static args: {
4
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ confirm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<unknown>;
12
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_1 = require("../../../base");
5
+ class AlertsNotificationsDelete extends base_1.BaseCommand {
6
+ static args = {
7
+ id: core_1.Args.string({ description: 'Notification id', required: true }),
8
+ };
9
+ static description = 'Delete one of your notifications (irreversible)';
10
+ static examples = ['<%= config.bin %> alerts notifications delete <notification-id> --confirm'];
11
+ static flags = {
12
+ confirm: core_1.Flags.boolean({ description: 'Required: confirm the irreversible deletion' }),
13
+ };
14
+ async run() {
15
+ const { args, flags } = await this.parse(AlertsNotificationsDelete);
16
+ if (!flags.confirm) {
17
+ this.error('Refusing to delete without --confirm (the action is irreversible).', { exit: 2 });
18
+ }
19
+ await this.api.delete(`/cli/v1/alert_notifications/${args.id}`);
20
+ if (!this.jsonEnabled())
21
+ this.log(`Deleted notification ${args.id}`);
22
+ return { deleted: args.id };
23
+ }
24
+ }
25
+ exports.default = AlertsNotificationsDelete;
@@ -0,0 +1,9 @@
1
+ import { BaseCommand } from '../../../base';
2
+ export default class AlertsNotificationsList extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ page: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ };
8
+ run(): Promise<unknown>;
9
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_1 = require("../../../base");
4
+ const output_1 = require("../../../lib/output");
5
+ class AlertsNotificationsList extends base_1.BaseCommand {
6
+ static description = 'List your in-app alert notifications (your own inbox)';
7
+ static examples = [
8
+ '<%= config.bin %> alerts notifications list',
9
+ '<%= config.bin %> alerts notifications list --page 2 --json',
10
+ ];
11
+ static flags = { ...base_1.pageFlag };
12
+ async run() {
13
+ const { flags } = await this.parse(AlertsNotificationsList);
14
+ const res = await this.api.get(`/cli/v1/alert_notifications?page=${flags.page}`);
15
+ const notifications = res.data ?? [];
16
+ if (!this.jsonEnabled()) {
17
+ this.log((0, output_1.renderTable)(['CREATED_AT', 'READ', 'TYPE', 'TITLE', 'ID'], notifications.map((notification) => [
18
+ String(notification.created_at ?? ''),
19
+ String(notification.read ?? ''),
20
+ String(notification.event_type ?? ''),
21
+ String(notification.title ?? ''),
22
+ String(notification.id ?? ''),
23
+ ])));
24
+ this.log(`\nUnread: ${String(res.meta?.unread ?? 0)}`);
25
+ }
26
+ return res;
27
+ }
28
+ }
29
+ exports.default = AlertsNotificationsList;
@@ -0,0 +1,6 @@
1
+ import { BaseCommand } from '../../../base';
2
+ export default class AlertsNotificationsReadAll extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ run(): Promise<unknown>;
6
+ }