@alertee/cli 0.3.0 → 0.5.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 (122) hide show
  1. package/dist/api.d.ts +180 -0
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +25 -2
  4. package/dist/api.js.map +1 -1
  5. package/dist/commands/alert-groups/add-email-group.d.ts +9 -0
  6. package/dist/commands/alert-groups/add-email-group.d.ts.map +1 -0
  7. package/dist/commands/alert-groups/add-email-group.js +33 -0
  8. package/dist/commands/alert-groups/add-email-group.js.map +1 -0
  9. package/dist/commands/alert-groups/add-webhook.d.ts +8 -0
  10. package/dist/commands/alert-groups/add-webhook.d.ts.map +1 -0
  11. package/dist/commands/alert-groups/add-webhook.js +64 -0
  12. package/dist/commands/alert-groups/add-webhook.js.map +1 -0
  13. package/dist/commands/alert-groups/create.d.ts +11 -0
  14. package/dist/commands/alert-groups/create.d.ts.map +1 -0
  15. package/dist/commands/alert-groups/create.js +31 -0
  16. package/dist/commands/alert-groups/create.js.map +1 -0
  17. package/dist/commands/alert-groups/delete.d.ts +5 -0
  18. package/dist/commands/alert-groups/delete.d.ts.map +1 -0
  19. package/dist/commands/alert-groups/delete.js +35 -0
  20. package/dist/commands/alert-groups/delete.js.map +1 -0
  21. package/dist/commands/alert-groups/list.d.ts +5 -0
  22. package/dist/commands/alert-groups/list.d.ts.map +1 -0
  23. package/dist/commands/alert-groups/list.js +35 -0
  24. package/dist/commands/alert-groups/list.js.map +1 -0
  25. package/dist/commands/alert-groups/recipients.d.ts +5 -0
  26. package/dist/commands/alert-groups/recipients.d.ts.map +1 -0
  27. package/dist/commands/alert-groups/recipients.js +62 -0
  28. package/dist/commands/alert-groups/recipients.js.map +1 -0
  29. package/dist/commands/alert-groups/remove-recipient.d.ts +8 -0
  30. package/dist/commands/alert-groups/remove-recipient.d.ts.map +1 -0
  31. package/dist/commands/alert-groups/remove-recipient.js +33 -0
  32. package/dist/commands/alert-groups/remove-recipient.js.map +1 -0
  33. package/dist/commands/alert-groups/resolve.d.ts +6 -0
  34. package/dist/commands/alert-groups/resolve.d.ts.map +1 -0
  35. package/dist/commands/alert-groups/resolve.js +27 -0
  36. package/dist/commands/alert-groups/resolve.js.map +1 -0
  37. package/dist/commands/alert-groups/test.d.ts +3 -0
  38. package/dist/commands/alert-groups/test.d.ts.map +1 -0
  39. package/dist/commands/alert-groups/test.js +24 -0
  40. package/dist/commands/alert-groups/test.js.map +1 -0
  41. package/dist/commands/alert-groups/update.d.ts +12 -0
  42. package/dist/commands/alert-groups/update.d.ts.map +1 -0
  43. package/dist/commands/alert-groups/update.js +46 -0
  44. package/dist/commands/alert-groups/update.js.map +1 -0
  45. package/dist/commands/checks/create.d.ts +25 -1
  46. package/dist/commands/checks/create.d.ts.map +1 -1
  47. package/dist/commands/checks/create.js +141 -82
  48. package/dist/commands/checks/create.js.map +1 -1
  49. package/dist/commands/checks/update.d.ts +3 -2
  50. package/dist/commands/checks/update.d.ts.map +1 -1
  51. package/dist/commands/checks/update.js +79 -19
  52. package/dist/commands/checks/update.js.map +1 -1
  53. package/dist/commands/connections/create.d.ts +14 -0
  54. package/dist/commands/connections/create.d.ts.map +1 -0
  55. package/dist/commands/connections/create.js +52 -0
  56. package/dist/commands/connections/create.js.map +1 -0
  57. package/dist/commands/connections/delete.d.ts +5 -0
  58. package/dist/commands/connections/delete.d.ts.map +1 -0
  59. package/dist/commands/connections/delete.js +35 -0
  60. package/dist/commands/connections/delete.js.map +1 -0
  61. package/dist/commands/connections/resolve.d.ts +9 -0
  62. package/dist/commands/connections/resolve.d.ts.map +1 -0
  63. package/dist/commands/connections/resolve.js +30 -0
  64. package/dist/commands/connections/resolve.js.map +1 -0
  65. package/dist/commands/connections/test.d.ts +3 -0
  66. package/dist/commands/connections/test.d.ts.map +1 -0
  67. package/dist/commands/connections/test.js +28 -0
  68. package/dist/commands/connections/test.js.map +1 -0
  69. package/dist/commands/email-groups/add.d.ts +3 -0
  70. package/dist/commands/email-groups/add.d.ts.map +1 -0
  71. package/dist/commands/email-groups/add.js +23 -0
  72. package/dist/commands/email-groups/add.js.map +1 -0
  73. package/dist/commands/email-groups/create.d.ts +8 -0
  74. package/dist/commands/email-groups/create.d.ts.map +1 -0
  75. package/dist/commands/email-groups/create.js +28 -0
  76. package/dist/commands/email-groups/create.js.map +1 -0
  77. package/dist/commands/email-groups/delete.d.ts +5 -0
  78. package/dist/commands/email-groups/delete.d.ts.map +1 -0
  79. package/dist/commands/email-groups/delete.js +35 -0
  80. package/dist/commands/email-groups/delete.js.map +1 -0
  81. package/dist/commands/email-groups/list.d.ts +5 -0
  82. package/dist/commands/email-groups/list.d.ts.map +1 -0
  83. package/dist/commands/email-groups/list.js +36 -0
  84. package/dist/commands/email-groups/list.js.map +1 -0
  85. package/dist/commands/email-groups/members.d.ts +5 -0
  86. package/dist/commands/email-groups/members.d.ts.map +1 -0
  87. package/dist/commands/email-groups/members.js +42 -0
  88. package/dist/commands/email-groups/members.js.map +1 -0
  89. package/dist/commands/email-groups/remove.d.ts +3 -0
  90. package/dist/commands/email-groups/remove.d.ts.map +1 -0
  91. package/dist/commands/email-groups/remove.js +19 -0
  92. package/dist/commands/email-groups/remove.js.map +1 -0
  93. package/dist/commands/email-groups/resolve.d.ts +6 -0
  94. package/dist/commands/email-groups/resolve.d.ts.map +1 -0
  95. package/dist/commands/email-groups/resolve.js +27 -0
  96. package/dist/commands/email-groups/resolve.js.map +1 -0
  97. package/dist/commands/org/create.d.ts +12 -0
  98. package/dist/commands/org/create.d.ts.map +1 -0
  99. package/dist/commands/org/create.js +33 -0
  100. package/dist/commands/org/create.js.map +1 -0
  101. package/dist/commands/org/list.d.ts +5 -0
  102. package/dist/commands/org/list.d.ts.map +1 -0
  103. package/dist/commands/org/list.js +35 -0
  104. package/dist/commands/org/list.js.map +1 -0
  105. package/dist/config.d.ts +1 -1
  106. package/dist/config.d.ts.map +1 -1
  107. package/dist/config.js +1 -1
  108. package/dist/config.js.map +1 -1
  109. package/dist/index.js +159 -3
  110. package/dist/index.js.map +1 -1
  111. package/dist/mcp.d.ts.map +1 -1
  112. package/dist/mcp.js +343 -2
  113. package/dist/mcp.js.map +1 -1
  114. package/dist/prompts.d.ts +15 -0
  115. package/dist/prompts.d.ts.map +1 -0
  116. package/dist/prompts.js +25 -0
  117. package/dist/prompts.js.map +1 -0
  118. package/dist/uuid.d.ts +13 -0
  119. package/dist/uuid.d.ts.map +1 -0
  120. package/dist/uuid.js +13 -0
  121. package/dist/uuid.js.map +1 -0
  122. package/package.json +1 -1
package/dist/api.d.ts CHANGED
@@ -10,9 +10,17 @@ export declare function createClient(config: Config): {
10
10
  listOrganizations: () => Promise<{
11
11
  organizations: OrgItem[];
12
12
  }>;
13
+ createOrganization: (body: CreateOrgBody) => Promise<{
14
+ organization: OrganizationDetail;
15
+ }>;
13
16
  listConnections: () => Promise<{
14
17
  connections: ConnectionItem[];
15
18
  }>;
19
+ upsertConnection: (body: UpsertConnectionBody) => Promise<{
20
+ connection: ConnectionDetail;
21
+ }>;
22
+ testConnection: (id: string) => Promise<TestConnectionResult>;
23
+ deleteConnection: (id: string) => Promise<void>;
16
24
  listChecks: () => Promise<{
17
25
  checks: CheckItem[];
18
26
  }>;
@@ -38,6 +46,35 @@ export declare function createClient(config: Config): {
38
46
  setCheckQuietWindow: (id: string, body: QuietWindowBody) => Promise<{
39
47
  item?: KnowledgeItem;
40
48
  }>;
49
+ listAlertGroups: () => Promise<{
50
+ alert_groups: AlertGroupItem[];
51
+ }>;
52
+ createAlertGroup: (body: AlertGroupBody) => Promise<{
53
+ alert_group: AlertGroupItem;
54
+ }>;
55
+ updateAlertGroup: (id: string, body: AlertGroupBody) => Promise<{
56
+ alert_group: AlertGroupItem;
57
+ }>;
58
+ deleteAlertGroup: (id: string) => Promise<{
59
+ success: boolean;
60
+ }>;
61
+ sendTestAlert: (id: string, body: SendTestAlertBody) => Promise<{
62
+ success: boolean;
63
+ message: string;
64
+ }>;
65
+ listAlertChannels: (groupId: string) => Promise<{
66
+ channels: AlertChannelItem[];
67
+ }>;
68
+ createAlertChannel: (body: CreateAlertChannelBody) => Promise<AlertChannelItem>;
69
+ deleteAlertChannel: (id: string) => Promise<void>;
70
+ listEmailGroups: () => Promise<{
71
+ groups: EmailGroupItem[];
72
+ }>;
73
+ getEmailGroup: (id: string) => Promise<EmailGroupItem>;
74
+ createEmailGroup: (body: CreateEmailGroupBody) => Promise<EmailGroupItem>;
75
+ deleteEmailGroup: (id: string) => Promise<void>;
76
+ addEmailGroupMembers: (id: string, emails: string[]) => Promise<void>;
77
+ removeEmailGroupMember: (id: string, email: string) => Promise<void>;
41
78
  };
42
79
  export interface TokenItem {
43
80
  id: string;
@@ -65,6 +102,53 @@ export interface ConnectionItem {
65
102
  name: string;
66
103
  type: string;
67
104
  }
105
+ /** POST /organizations body (organization.CreateOrgRequest). */
106
+ export interface CreateOrgBody {
107
+ name: string;
108
+ /** Optional URL-safe slug; auto-generated from the name when omitted. */
109
+ slug?: string;
110
+ }
111
+ /** The organization returned by POST /organizations (organization.Organization). */
112
+ export interface OrganizationDetail {
113
+ id: string;
114
+ name: string;
115
+ slug: string;
116
+ created_at: string;
117
+ updated_at: string;
118
+ }
119
+ /**
120
+ * PUT /connections body (connection.UpsertConnectionRequest). The plaintext
121
+ * `connection_string` is sent over HTTPS and encrypted server-side with the
122
+ * organization's key; the CLI never stores it. Omit `id` to create.
123
+ */
124
+ export interface UpsertConnectionBody {
125
+ id?: string;
126
+ name: string;
127
+ /** "postgres" | "postgresql" | "clickhouse" */
128
+ type: string;
129
+ connection_string: string;
130
+ ssl_client_cert?: string;
131
+ ssl_client_key?: string;
132
+ ssl_server_ca?: string;
133
+ }
134
+ /** A connection as returned by PUT /connections (connection.Connection). */
135
+ export interface ConnectionDetail {
136
+ id: string;
137
+ organization_id: string;
138
+ name: string;
139
+ type: string;
140
+ test_status: string;
141
+ last_tested_at: string;
142
+ created_at: string;
143
+ updated_at: string;
144
+ }
145
+ /** POST /connections/:id/test (connection.TestConnectionResponse). */
146
+ export interface TestConnectionResult {
147
+ success: boolean;
148
+ error?: string;
149
+ permissions?: string[];
150
+ warning?: string;
151
+ }
68
152
  /**
69
153
  * GET /checks returns db.Check rows serialized with Go PascalCase field names
70
154
  * (no json tags on the sqlc model). Interval/LastStatus are sql.Null* wrappers.
@@ -180,4 +264,100 @@ export interface QuietWindowBody {
180
264
  after?: string;
181
265
  clear?: boolean;
182
266
  }
267
+ /** Encore's uuid.NullUUID wire shape. */
268
+ export interface NullUUID {
269
+ UUID: string | null;
270
+ Valid: boolean;
271
+ }
272
+ /**
273
+ * An alert group (db.AlertGroup, serialized with Go PascalCase field names —
274
+ * no json tags). Description/IsDefault are sql.Null* wrappers.
275
+ */
276
+ export interface AlertGroupItem {
277
+ ID: string;
278
+ OrganizationID: string;
279
+ Name: string;
280
+ IsDefault: {
281
+ Bool: boolean;
282
+ Valid: boolean;
283
+ } | null;
284
+ Description: {
285
+ String: string;
286
+ Valid: boolean;
287
+ } | null;
288
+ }
289
+ /** POST/PUT /alert-groups body. is_default + description are required (not pointers). */
290
+ export interface AlertGroupBody {
291
+ name: string;
292
+ description: string;
293
+ is_default: boolean;
294
+ }
295
+ /** POST /alert-groups/:id/test body. */
296
+ export interface SendTestAlertBody {
297
+ alert_group_id: string;
298
+ check_name?: string;
299
+ alert_level?: string;
300
+ description?: string;
301
+ }
302
+ /**
303
+ * An alert channel — a recipient within a group (alert.AlertChannel, json
304
+ * tags). `config` holds slack/webhook settings; `email_group_id` links an
305
+ * email_group channel to its list.
306
+ */
307
+ export interface AlertChannelItem {
308
+ id: string;
309
+ alert_group_id: string;
310
+ channel_type: string;
311
+ config?: unknown;
312
+ enabled: boolean;
313
+ /** Asymmetric: a string in responses (when set), the object form in requests. */
314
+ email_group_id?: string | NullUUID | null;
315
+ created_at: string;
316
+ updated_at: string;
317
+ }
318
+ /**
319
+ * POST /alert/channels body. For webhook/slack send `config` (e.g.
320
+ * `{ url }` / `{ channel }`) and `email_group_id: null`; for email_group leave
321
+ * config `{}` and set `email_group_id` to the email group's UUID string.
322
+ *
323
+ * Note: the backend decodes `email_group_id` (a uuid.NullUUID) from a bare
324
+ * string or null on the wire — NOT the `{ UUID, Valid }` object (that object is
325
+ * a client-side representation the generated Encore client transforms away).
326
+ */
327
+ export interface CreateAlertChannelBody {
328
+ alert_group_id: string;
329
+ channel_type: string;
330
+ config?: unknown;
331
+ email_group_id: string | null;
332
+ }
333
+ /** An email group recipient list (alert.EmailGroup, json tags). */
334
+ export interface EmailGroupItem {
335
+ id: string;
336
+ organization_id: string;
337
+ name: string;
338
+ description?: string;
339
+ auto_add_members: boolean;
340
+ is_default: boolean;
341
+ member_count?: number;
342
+ members?: EmailGroupMemberItem[];
343
+ created_at: string;
344
+ updated_at: string;
345
+ }
346
+ export interface EmailGroupMemberItem {
347
+ id: string;
348
+ email: string;
349
+ name?: string;
350
+ /** Asymmetric: a string in responses (when set), the object form in requests. */
351
+ user_id?: string | NullUUID | null;
352
+ added_at: string;
353
+ }
354
+ /** POST /email-groups body. */
355
+ export interface CreateEmailGroupBody {
356
+ name: string;
357
+ description?: string;
358
+ auto_add_members: boolean;
359
+ is_default: boolean;
360
+ /** Initial member emails. */
361
+ members?: string[];
362
+ }
183
363
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -33,17 +33,23 @@ export function createClient(config) {
33
33
  catch { }
34
34
  throw new ApiError(res.status, msg);
35
35
  }
36
- if (res.status === 204)
36
+ // Some endpoints (e.g. DELETE) return an empty body; don't try to parse it.
37
+ const respText = await res.text();
38
+ if (!respText)
37
39
  return undefined;
38
- return res.json();
40
+ return JSON.parse(respText);
39
41
  }
40
42
  return {
41
43
  // Auth
42
44
  listTokens: () => request('GET', '/auth/tokens'),
43
45
  // Organizations
44
46
  listOrganizations: () => request('GET', '/organizations'),
47
+ createOrganization: (body) => request('POST', '/organizations', body),
45
48
  // Connections
46
49
  listConnections: () => request('GET', '/connections'),
50
+ upsertConnection: (body) => request('PUT', '/connections', body),
51
+ testConnection: (id) => request('POST', `/connections/${id}/test`),
52
+ deleteConnection: (id) => request('DELETE', `/connections/${id}`),
47
53
  // Checks
48
54
  listChecks: () => request('GET', '/checks'),
49
55
  getCheck: (id) => request('GET', `/checks/${id}`),
@@ -54,6 +60,23 @@ export function createClient(config) {
54
60
  deleteCheck: (id) => request('DELETE', `/checks/${id}`),
55
61
  snoozeCheck: (id, body) => request('POST', `/knowledge/checks/${id}/snooze`, body),
56
62
  setCheckQuietWindow: (id, body) => request('POST', `/knowledge/checks/${id}/quiet`, body),
63
+ // Alert groups
64
+ listAlertGroups: () => request('GET', '/alert-groups'),
65
+ createAlertGroup: (body) => request('POST', '/alert-groups', body),
66
+ updateAlertGroup: (id, body) => request('PUT', `/alert-groups/${id}`, body),
67
+ deleteAlertGroup: (id) => request('DELETE', `/alert-groups/${id}`),
68
+ sendTestAlert: (id, body) => request('POST', `/alert-groups/${id}/test`, body),
69
+ // Alert channels (recipients within a group)
70
+ listAlertChannels: (groupId) => request('GET', `/alert/groups/${groupId}/channels`),
71
+ createAlertChannel: (body) => request('POST', '/alert/channels', body),
72
+ deleteAlertChannel: (id) => request('DELETE', `/alert/channels/${id}`),
73
+ // Email groups (recipient lists)
74
+ listEmailGroups: () => request('GET', '/email-groups'),
75
+ getEmailGroup: (id) => request('GET', `/email-groups/${id}`),
76
+ createEmailGroup: (body) => request('POST', '/email-groups', body),
77
+ deleteEmailGroup: (id) => request('DELETE', `/email-groups/${id}`),
78
+ addEmailGroupMembers: (id, emails) => request('POST', `/email-groups/${id}/members`, { emails }),
79
+ removeEmailGroupMember: (id, email) => request('DELETE', `/email-groups/${id}/members/${encodeURIComponent(email)}`),
57
80
  };
58
81
  }
59
82
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/E,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IADlB,YACkB,MAAc,EAC9B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,WAAM,GAAN,MAAM,CAAQ;QAI9B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE;QAC/D,cAAc,EAAE,kBAAkB;KACnC,CAAA;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAA;IACtC,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;YAC3C,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU,CAAA;YACxB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAA;gBACtD,IAAI,GAAG,CAAC,OAAO;oBAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;YACpC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAA;QAC7C,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAA;IACjC,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU,EAAE,GAAG,EAAE,CACf,OAAO,CAA0B,KAAK,EAAE,cAAc,CAAC;QAEzD,gBAAgB;QAChB,iBAAiB,EAAE,GAAG,EAAE,CACtB,OAAO,CAA+B,KAAK,EAAE,gBAAgB,CAAC;QAEhE,cAAc;QACd,eAAe,EAAE,GAAG,EAAE,CACpB,OAAO,CAAoC,KAAK,EAAE,cAAc,CAAC;QAEnE,SAAS;QACT,UAAU,EAAE,GAAG,EAAE,CACf,OAAO,CAA0B,KAAK,EAAE,SAAS,CAAC;QAEpD,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,CACvB,OAAO,CAAuB,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;QAEvD,eAAe,EAAE,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAC7C,OAAO,CACL,KAAK,EACL,WAAW,EAAE,kBAAkB,KAAK,EAAE,CACvC;QAEH,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,CACvB,OAAO,CAAiB,MAAM,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAElE,WAAW,EAAE,CAAC,IAAqB,EAAE,EAAE,CACrC,OAAO,CAAuB,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC;QAExD,UAAU,EAAE,CAAC,EAAU,EAAE,IAAoB,EAAE,EAAE,CAC/C,OAAO,CAAuB,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC;QAE/D,WAAW,EAAE,CAAC,EAAU,EAAE,EAAE,CAC1B,OAAO,CAAuB,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;QAE1D,WAAW,EAAE,CAAC,EAAU,EAAE,IAAqB,EAAE,EAAE,CACjD,OAAO,CACL,MAAM,EACN,qBAAqB,EAAE,SAAS,EAChC,IAAI,CACL;QAEH,mBAAmB,EAAE,CAAC,EAAU,EAAE,IAAqB,EAAE,EAAE,CACzD,OAAO,CACL,MAAM,EACN,qBAAqB,EAAE,QAAQ,EAC/B,IAAI,CACL;KACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface AddEmailGroupOptions {
2
+ emailGroup?: string;
3
+ }
4
+ /**
5
+ * Attach an email group (recipient list) to an alert group, so its members
6
+ * receive the group's alerts.
7
+ */
8
+ export declare function addEmailGroupRecipient(nameOrId: string, opts?: AddEmailGroupOptions): Promise<void>;
9
+ //# sourceMappingURL=add-email-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-email-group.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/add-email-group.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -0,0 +1,33 @@
1
+ import { createClient } from '../../api.js';
2
+ import { requireConfig, requireOrg } from '../../config.js';
3
+ import { resolveEmailGroupId } from '../email-groups/resolve.js';
4
+ import { resolveAlertGroupId } from './resolve.js';
5
+ /**
6
+ * Attach an email group (recipient list) to an alert group, so its members
7
+ * receive the group's alerts.
8
+ */
9
+ export async function addEmailGroupRecipient(nameOrId, opts = {}) {
10
+ if (!opts.emailGroup) {
11
+ console.error('Email group required. Pass --email-group <name|id> (see: alertee email-groups list).');
12
+ process.exit(1);
13
+ }
14
+ const config = requireConfig();
15
+ requireOrg(config);
16
+ const client = createClient(config);
17
+ const groupId = await resolveAlertGroupId(client, nameOrId);
18
+ const emailGroupId = await resolveEmailGroupId(client, opts.emailGroup);
19
+ try {
20
+ const channel = await client.createAlertChannel({
21
+ alert_group_id: groupId,
22
+ channel_type: 'email_group',
23
+ config: {},
24
+ email_group_id: emailGroupId,
25
+ });
26
+ console.log(`Added email-group recipient (${channel.id}).`);
27
+ }
28
+ catch (err) {
29
+ console.error('Failed to add email group:', err.message);
30
+ process.exit(1);
31
+ }
32
+ }
33
+ //# sourceMappingURL=add-email-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-email-group.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/add-email-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAMlD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,OAA6B,EAAE;IAE/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAA;QACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAEvE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;YAC9C,cAAc,EAAE,OAAO;YACvB,YAAY,EAAE,aAAa;YAC3B,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,YAAY;SAC7B,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface AddWebhookOptions {
2
+ url?: string;
3
+ /** Repeatable "Key: Value" headers. */
4
+ header?: string[];
5
+ }
6
+ /** Add a webhook recipient to an alert group. */
7
+ export declare function addWebhook(nameOrId: string, opts?: AddWebhookOptions): Promise<void>;
8
+ //# sourceMappingURL=add-webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-webhook.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/add-webhook.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,iDAAiD;AACjD,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
@@ -0,0 +1,64 @@
1
+ import { input } from '@inquirer/prompts';
2
+ import { createClient } from '../../api.js';
3
+ import { requireConfig, requireOrg } from '../../config.js';
4
+ import { requireValue } from '../../prompts.js';
5
+ import { resolveAlertGroupId } from './resolve.js';
6
+ /** Add a webhook recipient to an alert group. */
7
+ export async function addWebhook(nameOrId, opts = {}) {
8
+ const config = requireConfig();
9
+ requireOrg(config);
10
+ const client = createClient(config);
11
+ const groupId = await resolveAlertGroupId(client, nameOrId);
12
+ const url = await requireValue(opts.url, () => input({
13
+ message: 'Webhook URL:',
14
+ validate: (v) => {
15
+ try {
16
+ new URL(v);
17
+ return true;
18
+ }
19
+ catch {
20
+ return 'Enter a valid URL';
21
+ }
22
+ },
23
+ }), 'Webhook URL required. Pass --url "https://…".');
24
+ try {
25
+ new URL(url);
26
+ }
27
+ catch {
28
+ console.error(`Invalid --url "${url}".`);
29
+ process.exit(1);
30
+ }
31
+ const headers = parseHeaders(opts.header);
32
+ const webhookConfig = { url };
33
+ if (headers && Object.keys(headers).length > 0)
34
+ webhookConfig.headers = headers;
35
+ try {
36
+ const channel = await client.createAlertChannel({
37
+ alert_group_id: groupId,
38
+ channel_type: 'webhook',
39
+ config: webhookConfig,
40
+ email_group_id: null,
41
+ });
42
+ console.log(`Added webhook recipient (${channel.id}).`);
43
+ }
44
+ catch (err) {
45
+ console.error('Failed to add webhook:', err.message);
46
+ process.exit(1);
47
+ }
48
+ }
49
+ /** Parse repeatable "Key: Value" flags into a headers object. */
50
+ function parseHeaders(raw) {
51
+ if (!raw || raw.length === 0)
52
+ return undefined;
53
+ const headers = {};
54
+ for (const h of raw) {
55
+ const idx = h.indexOf(':');
56
+ if (idx === -1) {
57
+ console.error(`Invalid --header "${h}". Use "Key: Value".`);
58
+ process.exit(1);
59
+ }
60
+ headers[h.slice(0, idx).trim()] = h.slice(idx + 1).trim();
61
+ }
62
+ return headers;
63
+ }
64
+ //# sourceMappingURL=add-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-webhook.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/add-webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface CreateAlertGroupOptions {
2
+ description?: string;
3
+ default?: boolean;
4
+ }
5
+ /**
6
+ * Create an alert group. A group is an empty container until you add recipients
7
+ * (`alert-groups add-webhook` / `add-email-group`). Checks route to a group via
8
+ * `checks create --alert-group`; the default group catches checks with none set.
9
+ */
10
+ export declare function createAlertGroup(name: string | undefined, opts?: CreateAlertGroupOptions): Promise<void>;
11
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/create.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -0,0 +1,31 @@
1
+ import { input } from '@inquirer/prompts';
2
+ import { createClient } from '../../api.js';
3
+ import { requireConfig, requireOrg } from '../../config.js';
4
+ import { requireValue } from '../../prompts.js';
5
+ /**
6
+ * Create an alert group. A group is an empty container until you add recipients
7
+ * (`alert-groups add-webhook` / `add-email-group`). Checks route to a group via
8
+ * `checks create --alert-group`; the default group catches checks with none set.
9
+ */
10
+ export async function createAlertGroup(name, opts = {}) {
11
+ const config = requireConfig();
12
+ requireOrg(config);
13
+ const client = createClient(config);
14
+ const resolvedName = await requireValue(name, () => input({ message: 'Alert group name:', validate: (v) => v.trim().length > 0 || 'Required' }), 'Alert group name required. Pass it as an argument: alertee alert-groups create "<name>"');
15
+ let group;
16
+ try {
17
+ const resp = await client.createAlertGroup({
18
+ name: resolvedName,
19
+ description: opts.description ?? '',
20
+ is_default: opts.default ?? false,
21
+ });
22
+ group = resp.alert_group;
23
+ }
24
+ catch (err) {
25
+ console.error('Failed to create alert group:', err.message);
26
+ process.exit(1);
27
+ }
28
+ console.log(`Created alert group "${group.Name}" (${group.ID}).`);
29
+ console.log('Add recipients: alertee alert-groups add-webhook <group> --url … (or add-email-group)');
30
+ }
31
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAO/C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAwB,EACxB,OAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,MAAM,YAAY,CACrC,IAAI,EACJ,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC,EACzG,yFAAyF,CAC1F,CAAA;IAED,IAAI,KAAyE,CAAA;IAC7E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;YACzC,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;SAClC,CAAC,CAAA;QACF,KAAK,GAAG,IAAI,CAAC,WAAW,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAA;AACtG,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Delete an alert group (by name or ID). Prompts for confirmation unless --yes. */
2
+ export declare function deleteAlertGroup(nameOrId: string, opts?: {
3
+ yes?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/delete.ts"],"names":[],"mappings":"AAMA,oFAAoF;AACpF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
@@ -0,0 +1,35 @@
1
+ import { confirm } from '@inquirer/prompts';
2
+ import { createClient } from '../../api.js';
3
+ import { requireConfig, requireOrg } from '../../config.js';
4
+ import { isInteractive } from '../../prompts.js';
5
+ import { resolveAlertGroupId } from './resolve.js';
6
+ /** Delete an alert group (by name or ID). Prompts for confirmation unless --yes. */
7
+ export async function deleteAlertGroup(nameOrId, opts = {}) {
8
+ const config = requireConfig();
9
+ requireOrg(config);
10
+ const client = createClient(config);
11
+ const id = await resolveAlertGroupId(client, nameOrId);
12
+ if (!opts.yes) {
13
+ if (!isInteractive()) {
14
+ console.error('Refusing to delete without confirmation. Pass --yes.');
15
+ process.exit(1);
16
+ }
17
+ const ok = await confirm({
18
+ message: `Delete alert group "${nameOrId}"? Checks using it fall back to the default group.`,
19
+ default: false,
20
+ });
21
+ if (!ok) {
22
+ console.log('Aborted.');
23
+ return;
24
+ }
25
+ }
26
+ try {
27
+ await client.deleteAlertGroup(id);
28
+ }
29
+ catch (err) {
30
+ console.error('Failed to delete alert group:', err.message);
31
+ process.exit(1);
32
+ }
33
+ console.log(`Deleted alert group ${id}.`);
34
+ }
35
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YACvB,OAAO,EAAE,uBAAuB,QAAQ,oDAAoD;YAC5F,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** List alert groups in the linked organization (the default one is marked *). */
2
+ export declare function listAlertGroups(opts?: {
3
+ format?: string;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/list.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAClF,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCnF"}
@@ -0,0 +1,35 @@
1
+ import { createClient } from '../../api.js';
2
+ import { requireConfig, requireOrg } from '../../config.js';
3
+ import { printJson, resolveFormat } from '../../output.js';
4
+ /** List alert groups in the linked organization (the default one is marked *). */
5
+ export async function listAlertGroups(opts = {}) {
6
+ const format = resolveFormat(opts.format);
7
+ const config = requireConfig();
8
+ requireOrg(config);
9
+ const client = createClient(config);
10
+ let groups;
11
+ try {
12
+ groups = (await client.listAlertGroups()).alert_groups;
13
+ }
14
+ catch (err) {
15
+ console.error('Failed to list alert groups:', err.message);
16
+ process.exit(1);
17
+ }
18
+ if (format === 'json') {
19
+ printJson(groups);
20
+ return;
21
+ }
22
+ if (groups.length === 0) {
23
+ console.log('No alert groups found.');
24
+ return;
25
+ }
26
+ const nameWidth = Math.max(4, ...groups.map((g) => g.Name.length));
27
+ const header = ` ${'NAME'.padEnd(nameWidth)} ID`;
28
+ console.log(header);
29
+ console.log('─'.repeat(header.length));
30
+ for (const g of groups) {
31
+ const marker = g.IsDefault?.Bool ? '*' : ' ';
32
+ console.log(`${marker} ${g.Name.padEnd(nameWidth)} ${g.ID}`);
33
+ }
34
+ }
35
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/alert-groups/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE1D,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA4B,EAAE;IAClE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,IAAI,MAA0E,CAAA;IAC9E,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,MAAM,CAAC,CAAA;QACjB,OAAM;IACR,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAA;IAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** List the recipients (channels) in an alert group. */
2
+ export declare function listRecipients(nameOrId: string, opts?: {
3
+ format?: string;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=recipients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipients.d.ts","sourceRoot":"","sources":["../../../src/commands/alert-groups/recipients.ts"],"names":[],"mappings":"AAMA,wDAAwD;AACxD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CA4Cf"}