@sendbird/cli 0.0.0-stage → 0.3.0-alpha.1

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 (182) hide show
  1. package/.claude-plugin/plugin.json +11 -0
  2. package/.codex-plugin/plugin.json +33 -0
  3. package/LICENSE +13 -0
  4. package/NOTICE.md +1105 -0
  5. package/PROVENANCE.md +15 -0
  6. package/README.md +457 -2
  7. package/dist/acl.d.ts +2 -0
  8. package/dist/acl.js +12 -0
  9. package/dist/acl.js.map +1 -0
  10. package/dist/billing-plan.d.ts +68 -0
  11. package/dist/billing-plan.js +235 -0
  12. package/dist/billing-plan.js.map +1 -0
  13. package/dist/browser.d.ts +1 -0
  14. package/dist/browser.js +20 -0
  15. package/dist/browser.js.map +1 -0
  16. package/dist/calls-catalog.d.ts +79 -0
  17. package/dist/calls-catalog.js +322 -0
  18. package/dist/calls-catalog.js.map +1 -0
  19. package/dist/calls-credits.d.ts +31 -0
  20. package/dist/calls-credits.js +224 -0
  21. package/dist/calls-credits.js.map +1 -0
  22. package/dist/calls-trial.d.ts +45 -0
  23. package/dist/calls-trial.js +77 -0
  24. package/dist/calls-trial.js.map +1 -0
  25. package/dist/calls.d.ts +10 -0
  26. package/dist/calls.js +470 -0
  27. package/dist/calls.js.map +1 -0
  28. package/dist/catalog.d.ts +67 -0
  29. package/dist/catalog.js +784 -0
  30. package/dist/catalog.js.map +1 -0
  31. package/dist/cli.d.ts +6 -0
  32. package/dist/cli.js +502 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/core.d.ts +86 -0
  35. package/dist/core.js +531 -0
  36. package/dist/core.js.map +1 -0
  37. package/dist/diagnostics.d.ts +206 -0
  38. package/dist/diagnostics.js +664 -0
  39. package/dist/diagnostics.js.map +1 -0
  40. package/dist/discovery.d.ts +700 -0
  41. package/dist/discovery.js +838 -0
  42. package/dist/discovery.js.map +1 -0
  43. package/dist/docs.d.ts +31 -0
  44. package/dist/docs.js +137 -0
  45. package/dist/docs.js.map +1 -0
  46. package/dist/features.d.ts +131 -0
  47. package/dist/features.js +227 -0
  48. package/dist/features.js.map +1 -0
  49. package/dist/generated-api.d.ts +116 -0
  50. package/dist/generated-api.js +118 -0
  51. package/dist/generated-api.js.map +1 -0
  52. package/dist/human-format.d.ts +40 -0
  53. package/dist/human-format.js +205 -0
  54. package/dist/human-format.js.map +1 -0
  55. package/dist/human-list.d.ts +2 -0
  56. package/dist/human-list.js +368 -0
  57. package/dist/human-list.js.map +1 -0
  58. package/dist/human-output.d.ts +10 -0
  59. package/dist/human-output.js +1351 -0
  60. package/dist/human-output.js.map +1 -0
  61. package/dist/human-pro.d.ts +3 -0
  62. package/dist/human-pro.js +201 -0
  63. package/dist/human-pro.js.map +1 -0
  64. package/dist/human-progress.d.ts +5 -0
  65. package/dist/human-progress.js +49 -0
  66. package/dist/human-progress.js.map +1 -0
  67. package/dist/local.d.ts +42 -0
  68. package/dist/local.js +707 -0
  69. package/dist/local.js.map +1 -0
  70. package/dist/oauth-callback.d.ts +3 -0
  71. package/dist/oauth-callback.js +66 -0
  72. package/dist/oauth-callback.js.map +1 -0
  73. package/dist/oauth-lock.d.ts +6 -0
  74. package/dist/oauth-lock.js +212 -0
  75. package/dist/oauth-lock.js.map +1 -0
  76. package/dist/oauth.d.ts +32 -0
  77. package/dist/oauth.js +493 -0
  78. package/dist/oauth.js.map +1 -0
  79. package/dist/presentation.d.ts +208 -0
  80. package/dist/presentation.js +156 -0
  81. package/dist/presentation.js.map +1 -0
  82. package/dist/pro-api-catalog.d.ts +24 -0
  83. package/dist/pro-api-catalog.js +619 -0
  84. package/dist/pro-api-catalog.js.map +1 -0
  85. package/dist/pro-api.d.ts +10 -0
  86. package/dist/pro-api.js +338 -0
  87. package/dist/pro-api.js.map +1 -0
  88. package/dist/project.d.ts +34 -0
  89. package/dist/project.js +62 -0
  90. package/dist/project.js.map +1 -0
  91. package/dist/recovery.d.ts +41 -0
  92. package/dist/recovery.js +417 -0
  93. package/dist/recovery.js.map +1 -0
  94. package/dist/runner.d.ts +47 -0
  95. package/dist/runner.js +603 -0
  96. package/dist/runner.js.map +1 -0
  97. package/dist/sdk-catalog.d.ts +69 -0
  98. package/dist/sdk-catalog.js +527 -0
  99. package/dist/sdk-catalog.js.map +1 -0
  100. package/dist/sdk-config.d.ts +19 -0
  101. package/dist/sdk-config.js +85 -0
  102. package/dist/sdk-config.js.map +1 -0
  103. package/dist/sdk-dto.d.ts +244 -0
  104. package/dist/sdk-dto.js +98 -0
  105. package/dist/sdk-dto.js.map +1 -0
  106. package/dist/sdk-limits.d.ts +2 -0
  107. package/dist/sdk-limits.js +3 -0
  108. package/dist/sdk-limits.js.map +1 -0
  109. package/dist/sdk-node-file-reader.d.ts +6 -0
  110. package/dist/sdk-node-file-reader.js +38 -0
  111. package/dist/sdk-node-file-reader.js.map +1 -0
  112. package/dist/sdk-pro-catalog.d.ts +22 -0
  113. package/dist/sdk-pro-catalog.js +234 -0
  114. package/dist/sdk-pro-catalog.js.map +1 -0
  115. package/dist/sdk-pro-runtime.d.ts +31 -0
  116. package/dist/sdk-pro-runtime.js +293 -0
  117. package/dist/sdk-pro-runtime.js.map +1 -0
  118. package/dist/sdk-query.d.ts +10 -0
  119. package/dist/sdk-query.js +29 -0
  120. package/dist/sdk-query.js.map +1 -0
  121. package/dist/sdk-runtime.d.ts +15 -0
  122. package/dist/sdk-runtime.js +685 -0
  123. package/dist/sdk-runtime.js.map +1 -0
  124. package/dist/sdk-worker.d.ts +1 -0
  125. package/dist/sdk-worker.js +26 -0
  126. package/dist/sdk-worker.js.map +1 -0
  127. package/dist/sdk.d.ts +29 -0
  128. package/dist/sdk.js +346 -0
  129. package/dist/sdk.js.map +1 -0
  130. package/dist/search-engine.d.ts +17 -0
  131. package/dist/search-engine.js +54 -0
  132. package/dist/search-engine.js.map +1 -0
  133. package/dist/search-intents.d.ts +2 -0
  134. package/dist/search-intents.js +98 -0
  135. package/dist/search-intents.js.map +1 -0
  136. package/dist/search.d.ts +7 -0
  137. package/dist/search.js +58 -0
  138. package/dist/search.js.map +1 -0
  139. package/dist/secret-output.d.ts +2 -0
  140. package/dist/secret-output.js +108 -0
  141. package/dist/secret-output.js.map +1 -0
  142. package/dist/shell.d.ts +3 -0
  143. package/dist/shell.js +14 -0
  144. package/dist/shell.js.map +1 -0
  145. package/dist/skills.d.ts +210 -0
  146. package/dist/skills.js +374 -0
  147. package/dist/skills.js.map +1 -0
  148. package/dist/value-semantics.d.ts +70 -0
  149. package/dist/value-semantics.js +173 -0
  150. package/dist/value-semantics.js.map +1 -0
  151. package/dist/version.d.ts +1 -0
  152. package/dist/version.js +3 -0
  153. package/dist/version.js.map +1 -0
  154. package/dist/windows.d.ts +4 -0
  155. package/dist/windows.js +136 -0
  156. package/dist/windows.js.map +1 -0
  157. package/dist/workflows.d.ts +228 -0
  158. package/dist/workflows.js +1207 -0
  159. package/dist/workflows.js.map +1 -0
  160. package/package.json +86 -4
  161. package/plugin.json +22 -0
  162. package/references/agent-guide.json +196 -0
  163. package/references/commands.md +247 -0
  164. package/references/dashboard-inventory.json +14796 -0
  165. package/references/docs-index.json +2709 -0
  166. package/references/sdk-commands.json +15065 -0
  167. package/references/workflows.json +1246 -0
  168. package/skills/sendbird/SKILL.md +96 -0
  169. package/skills/sendbird/agents/openai.yaml +4 -0
  170. package/skills/sendbird/references/build-chat-app.md +49 -0
  171. package/skills/sendbird/references/client-guide.md +34 -0
  172. package/skills/sendbird/references/client-plugin-bridge.md +77 -0
  173. package/skills/sendbird/references/client-plugin-install.md +39 -0
  174. package/skills/sendbird/references/operational-checks.md +35 -0
  175. package/skills/sendbird/references/pro-capabilities.md +52 -0
  176. package/skills/sendbird/scripts/client-guide.mjs +283 -0
  177. package/skills/sendbird/scripts/client-plugin-bridge.mjs +703 -0
  178. package/skills/sendbird-setup/SKILL.md +18 -0
  179. package/skills/sendbird-setup/agents/openai.yaml +4 -0
  180. package/skills/sendbird-setup/references/onboarding.md +73 -0
  181. package/skills/sendbird-setup/scripts/install-cli.mjs +447 -0
  182. package/skills/sendbird-setup/scripts/npm-run.mjs +34 -0
@@ -0,0 +1,69 @@
1
+ import { type Definition } from "./catalog.js";
2
+ export type SdkDefinition = Definition & {
3
+ action: string;
4
+ mutates: boolean;
5
+ stream?: boolean;
6
+ };
7
+ export declare const sdkDefinitions: SdkDefinition[];
8
+ export declare function describeSdk(d: SdkDefinition): {
9
+ transport: string;
10
+ authentication: string;
11
+ mutates: boolean;
12
+ stream: boolean;
13
+ source_url: string;
14
+ example: {
15
+ context: {
16
+ "as-user": string;
17
+ "org-id"?: string | undefined;
18
+ "app-id": string;
19
+ } | {
20
+ "as-user": string;
21
+ "org-id": string;
22
+ } | {
23
+ "as-user": string;
24
+ "org-id"?: undefined;
25
+ };
26
+ command: string;
27
+ params: {
28
+ [x: string]: unknown;
29
+ };
30
+ query: {
31
+ [x: string]: unknown;
32
+ };
33
+ body: Record<string, unknown>;
34
+ };
35
+ private_input_fields?: string[] | undefined;
36
+ params: Record<string, unknown>;
37
+ query: Record<string, unknown>;
38
+ body: Record<string, unknown>;
39
+ response: Record<string, unknown>;
40
+ dangerous: boolean;
41
+ source: [string, string];
42
+ requires_org_context?: boolean | undefined;
43
+ command: string;
44
+ description: string;
45
+ method: string;
46
+ path: string;
47
+ scope: "app" | "org" | undefined;
48
+ };
49
+ export declare function sdkExample(d: SdkDefinition): {
50
+ context: {
51
+ "as-user": string;
52
+ "org-id"?: string | undefined;
53
+ "app-id": string;
54
+ } | {
55
+ "as-user": string;
56
+ "org-id": string;
57
+ } | {
58
+ "as-user": string;
59
+ "org-id"?: undefined;
60
+ };
61
+ command: string;
62
+ params: {
63
+ [x: string]: unknown;
64
+ };
65
+ query: {
66
+ [x: string]: unknown;
67
+ };
68
+ body: Record<string, unknown>;
69
+ };
@@ -0,0 +1,527 @@
1
+ import { proSdkDefinitions, expressiveFields, translationFields, metaArray, } from "./sdk-pro-catalog.js";
2
+ /**
3
+ * Declarative contract for commands executed through the Chat SDK as a user.
4
+ * Keep this separate from Dashboard API definitions: identical resources can
5
+ * have different permissions, inputs, and observable outcomes in each domain.
6
+ */
7
+ import { z } from "zod";
8
+ import { SDK_QUERY_PAGE_LIMIT } from "./sdk-limits.js";
9
+ import { describe, exampleFor } from "./catalog.js";
10
+ const text = z.string().min(1);
11
+ const id = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
12
+ const channel = { type: z.enum(["open", "group", "supergroup"]), id: text };
13
+ const group = { ...channel, type: z.enum(["group", "supergroup"]) };
14
+ const regular = { ...channel, type: z.literal("group") };
15
+ const message = { ...channel, message_id: id };
16
+ const page = {
17
+ before_id: id.optional(),
18
+ before: z
19
+ .number()
20
+ .int()
21
+ .nonnegative()
22
+ .max(Number.MAX_SAFE_INTEGER)
23
+ .optional(),
24
+ limit: z.number().int().min(1).max(100).default(20),
25
+ };
26
+ // SDK query cursors are process-local. A later page is replayed from page 1.
27
+ const queryPage = z
28
+ .number()
29
+ .int()
30
+ .positive()
31
+ .max(SDK_QUERY_PAGE_LIMIT)
32
+ .default(1);
33
+ const groupType = z.enum(["all", "group", "supergroup"]).default("all");
34
+ const countPreference = z.enum([
35
+ "all",
36
+ "unread_message_count_only",
37
+ "unread_mention_count_only",
38
+ "off",
39
+ ]);
40
+ const messageBody = {
41
+ ...expressiveFields,
42
+ ...translationFields,
43
+ poll_id: id.optional(),
44
+ message: text,
45
+ custom_type: z.string().optional(),
46
+ data: z.string().optional(),
47
+ parent_message_id: id.optional(),
48
+ };
49
+ const sdkUser = z.object({
50
+ user_id: text,
51
+ nickname: z.string().optional(),
52
+ connection_status: z.enum(["online", "offline", "nonavailable"]).optional(),
53
+ last_seen_at: z.number().nullable().optional(),
54
+ preferred_languages: z.array(z.string()).nullable().optional(),
55
+ restriction_info: z
56
+ .object({
57
+ type: z.string().nullable(),
58
+ end_at: z.number(),
59
+ description: z.string().nullable(),
60
+ })
61
+ .optional(),
62
+ });
63
+ const sdkMessage = z
64
+ .object({
65
+ message_id: id,
66
+ channel_url: text,
67
+ created_at: z.number(),
68
+ type: z.string(),
69
+ message: z.string().optional(),
70
+ sender: sdkUser.optional(),
71
+ mention_type: z.enum(["users", "channel"]).nullable().optional(),
72
+ mentioned_users: z.array(sdkUser).nullable().optional(),
73
+ mentioned_user_ids: z.array(z.string()).nullable().optional(),
74
+ meta_arrays: z.array(metaArray).optional(),
75
+ poll_id: id.nullable().optional(),
76
+ translations: z.record(z.string(), z.string()).optional(),
77
+ requires_auth: z.boolean().optional(),
78
+ thumbnails: z
79
+ .array(z.object({
80
+ url: z.string(),
81
+ width: z.number(),
82
+ height: z.number(),
83
+ real_width: z.number(),
84
+ real_height: z.number(),
85
+ }))
86
+ .optional(),
87
+ })
88
+ .passthrough();
89
+ const sdkOutputs = {
90
+ status: z.object({ connected: z.boolean(), app_id: text, user: sdkUser }),
91
+ send: sdkMessage,
92
+ file: sdkMessage,
93
+ get: sdkMessage,
94
+ update: sdkMessage,
95
+ reply: sdkMessage,
96
+ list: z.object({
97
+ messages: z.array(sdkMessage),
98
+ next_before_id: id.nullable(),
99
+ pagination: z.string(),
100
+ }),
101
+ thread: z.object({
102
+ parent: sdkMessage,
103
+ messages: z.array(sdkMessage),
104
+ next_before: z.number().nullable(),
105
+ pagination: z.string(),
106
+ note: z.string().optional(),
107
+ }),
108
+ delete: z.object({ deleted: z.boolean(), message_id: id }),
109
+ "reaction-add": z.object({
110
+ message_id: id,
111
+ key: text,
112
+ user_id: text,
113
+ operation: z.string(),
114
+ }),
115
+ "reaction-remove": z.object({
116
+ message_id: id,
117
+ key: text,
118
+ user_id: text,
119
+ operation: z.string(),
120
+ }),
121
+ receipts: z.object({
122
+ message_id: id,
123
+ unread_count: z.number(),
124
+ undelivered_count: z.number(),
125
+ read_members: z.array(sdkUser),
126
+ unread_members: z.array(sdkUser),
127
+ }),
128
+ pin: z.object({ pinned: z.boolean(), message_id: id }),
129
+ unpin: z.object({ pinned: z.boolean(), message_id: id }),
130
+ join: z
131
+ .object({ channel_url: text, name: z.string(), type: text })
132
+ .passthrough(),
133
+ accept: z
134
+ .object({ channel_url: text, name: z.string(), type: text })
135
+ .passthrough(),
136
+ leave: z.object({ left: z.boolean(), channel_url: text }),
137
+ decline: z.object({ declined: z.boolean(), channel_url: text }),
138
+ read: z.object({ read: z.boolean(), channel_url: text }),
139
+ typing: z.object({ typing: z.boolean(), channel_url: text }),
140
+ participants: z.object({
141
+ participants: z.array(sdkUser),
142
+ has_more: z.boolean(),
143
+ page: z.number().int().positive(),
144
+ next_page: z.number().int().positive().nullable(),
145
+ pagination: z.string(),
146
+ }),
147
+ "members-list": z.object({
148
+ members: z.array(sdkUser),
149
+ has_more: z.boolean(),
150
+ page: z.number().int().positive(),
151
+ next_page: z.number().int().positive().nullable(),
152
+ pagination: z.string(),
153
+ }),
154
+ "members-invite": z
155
+ .object({ channel_url: text, name: z.string(), type: text })
156
+ .passthrough(),
157
+ "my-channels-list": z.object({
158
+ channels: z.array(z.object({
159
+ channel_url: text,
160
+ name: z.string(),
161
+ type: z.enum(["group", "supergroup"]),
162
+ last_message_id: id.nullable(),
163
+ sdk_unread_message_count_snapshot: z
164
+ .number()
165
+ .int()
166
+ .nonnegative()
167
+ .nullable(),
168
+ sdk_unread_mention_count_snapshot: z
169
+ .number()
170
+ .int()
171
+ .nonnegative()
172
+ .nullable(),
173
+ my_member_state: z.string(),
174
+ my_count_preference: countPreference,
175
+ member_count: z.number().int().nonnegative(),
176
+ })),
177
+ has_more: z.boolean(),
178
+ page: z.number().int().positive(),
179
+ next_page: z.number().int().positive().nullable(),
180
+ pagination: z.string(),
181
+ filters: z.object({
182
+ type: groupType,
183
+ member_state: z.enum(["all", "joined", "invited"]),
184
+ }),
185
+ unread_count_note: z.string(),
186
+ }),
187
+ "my-channels-unread": z.object({
188
+ type: groupType,
189
+ unread_message_count: z.number().int().nonnegative(),
190
+ }),
191
+ "emoji-list": z.object({
192
+ emoji_hash: z.string(),
193
+ emojis: z.array(z.object({
194
+ key: text,
195
+ url: z.string(),
196
+ category_id: z.number().int(),
197
+ category_name: z.string(),
198
+ })),
199
+ }),
200
+ "invitation-get": z.object({ auto_accept: z.boolean() }),
201
+ "invitation-set": z.object({ auto_accept: z.boolean() }),
202
+ "count-preference-get": z.object({
203
+ channel_url: text,
204
+ type: z.enum(["group", "supergroup"]),
205
+ preference: countPreference,
206
+ }),
207
+ "count-preference-set": z.object({
208
+ channel_url: text,
209
+ type: z.enum(["group", "supergroup"]),
210
+ preference: countPreference,
211
+ }),
212
+ "typing-users": z.object({ channel_url: text, users: z.array(sdkUser) }),
213
+ "counters-get": z.object({
214
+ counters: z.record(z.string(), z.number().int()),
215
+ }),
216
+ "counters-create": z.object({
217
+ counters: z.record(z.string(), z.number().int()),
218
+ }),
219
+ "counters-increase": z.object({
220
+ counters: z.record(z.string(), z.number().int()),
221
+ }),
222
+ "counters-decrease": z.object({
223
+ counters: z.record(z.string(), z.number().int()),
224
+ }),
225
+ "pins-list": z.object({
226
+ messages: z.array(sdkMessage),
227
+ has_more: z.boolean(),
228
+ page: z.number().int().positive(),
229
+ next_page: z.number().int().positive().nullable(),
230
+ pagination: z.string(),
231
+ }),
232
+ "push-get": z.object({ option: text }),
233
+ "push-set": z.object({ option: text }),
234
+ "channel-push-get": z.object({ option: text }),
235
+ "channel-push-set": z.object({ option: text }),
236
+ "snooze-get": z.object({}).passthrough(),
237
+ "snooze-set": z.object({}).passthrough(),
238
+ hide: z.object({}).passthrough(),
239
+ unhide: z.object({}).passthrough(),
240
+ "reset-history": z.object({}).passthrough(),
241
+ "scheduled-create": z.object({
242
+ scheduled_message_id: id,
243
+ scheduled_at: z.number().int().positive(),
244
+ channel_url: text,
245
+ message: z.string().optional(),
246
+ }),
247
+ "scheduled-list": z.object({
248
+ messages: z.array(z.object({
249
+ scheduled_message_id: id,
250
+ scheduled_at: z.number().int().positive(),
251
+ channel_url: text,
252
+ message: z.string().optional(),
253
+ })),
254
+ has_more: z.boolean(),
255
+ page: z.number().int().positive(),
256
+ next_page: z.number().int().positive().nullable(),
257
+ status_filter: z.enum(["all", "pending", "sent", "failed", "canceled"]),
258
+ pagination: z.string().optional(),
259
+ }),
260
+ "scheduled-cancel": z.object({ canceled: z.boolean(), message_id: id }),
261
+ "scheduled-send-now": z.object({ sent: z.boolean(), message_id: id }),
262
+ translate: sdkMessage.extend({
263
+ translations: z.record(z.string(), z.string()),
264
+ }),
265
+ "message-changes": z.object({}).passthrough(),
266
+ "poll-list": z.object({
267
+ polls: z.array(z.object({}).passthrough()),
268
+ has_more: z.boolean(),
269
+ page: z.number().int().positive(),
270
+ next_page: z.number().int().positive().nullable(),
271
+ pagination: z.string().optional(),
272
+ }),
273
+ "poll-vote": z.object({}).passthrough(),
274
+ "poll-option-add": z.object({}).passthrough(),
275
+ "operator-add": z.object({ updated: z.literal(true) }),
276
+ "operator-remove": z.object({ updated: z.literal(true) }),
277
+ mute: z.object({ updated: z.literal(true) }),
278
+ unmute: z.object({ updated: z.literal(true) }),
279
+ ban: z.object({ updated: z.literal(true) }),
280
+ unban: z.object({ updated: z.literal(true) }),
281
+ freeze: z.object({ frozen: z.boolean() }),
282
+ watch: z.object({
283
+ event: z.literal("complete"),
284
+ reason: z.enum(["duration", "interrupted", "event_limit"]),
285
+ events: z.number(),
286
+ }),
287
+ };
288
+ const defs = [];
289
+ function add(name, action, description, params, body, api, mutates = false, danger = false, stream = false) {
290
+ defs.push({
291
+ name,
292
+ action,
293
+ description,
294
+ params,
295
+ body,
296
+ method: "SDK",
297
+ path: api,
298
+ scope: "app",
299
+ response: sdkOutputs[action],
300
+ source: ["@sendbird/chat", api],
301
+ mutates,
302
+ danger,
303
+ stream,
304
+ });
305
+ }
306
+ add("chat sdk status", "status", "Connect as a Chat user and report the SDK session", z.object({}), undefined, "SendbirdChat.connect");
307
+ add("chat message send", "send", "Send a text message as the connected user", z.object(channel), z.object(messageBody).strict(), "BaseChannel.sendUserMessage", true);
308
+ add("chat message file", "file", "Send a file URL or upload a local file as a file message", z.object(channel), z
309
+ .object({
310
+ ...expressiveFields,
311
+ thumbnail_sizes: z
312
+ .array(z
313
+ .object({
314
+ width: z.number().int().positive().max(4096),
315
+ height: z.number().int().positive().max(4096),
316
+ })
317
+ .strict())
318
+ .max(10)
319
+ .optional(),
320
+ file: z.string().optional(),
321
+ file_url: z.url().optional(),
322
+ file_name: z.string().optional(),
323
+ mime_type: z.string().optional(),
324
+ custom_type: z.string().optional(),
325
+ data: z.string().optional(),
326
+ parent_message_id: id.optional(),
327
+ })
328
+ .strict(), "BaseChannel.sendFileMessage", true);
329
+ add("chat message list", "list", "Read a bounded page of channel messages; before is an exclusive millisecond timestamp", z.object(channel), z.object(page).strict(), "BaseChannel.getMessagesByTimestamp");
330
+ add("chat message get", "get", "Get one channel message; to translate it use chat sdk message translate", z.object(message), undefined, "MessageModule.getMessage");
331
+ add("chat message update", "update", "Update your text message subject to SDK permissions", z.object(message), z
332
+ .object({
333
+ ...expressiveFields,
334
+ ...translationFields,
335
+ message: text,
336
+ data: z.string().optional(),
337
+ custom_type: z.string().optional(),
338
+ })
339
+ .strict(), "BaseChannel.updateUserMessage", true);
340
+ add("chat message delete", "delete", "Delete a message subject to SDK permissions", z.object(message), undefined, "BaseChannel.deleteMessage", true, true);
341
+ add("chat message reply", "reply", "Reply to a message in a Group or Supergroup thread", z.object({ ...group, message_id: id }), z
342
+ .object({
343
+ ...expressiveFields,
344
+ ...translationFields,
345
+ message: text,
346
+ data: z.string().optional(),
347
+ custom_type: z.string().optional(),
348
+ })
349
+ .strict(), "BaseChannel.sendUserMessage", true);
350
+ add("chat message thread", "thread", "Read replies to a parent message", z.object({ ...group, message_id: id }), z
351
+ .object({
352
+ before: page.before,
353
+ limit: page.limit,
354
+ inclusive: z.boolean().default(true),
355
+ })
356
+ .strict(), "UserMessage.getThreadedMessagesByTimestamp");
357
+ for (const action of ["add", "remove"])
358
+ add(`chat message reaction ${action}`, `reaction-${action}`, `${action === "add" ? "Add" : "Remove"} your reaction on a Group/Supergroup message`, z.object({ ...group, message_id: id }), z.object({ key: text }).strict(), `BaseChannel.${action === "add" ? "addReaction" : "deleteReaction"}`, true);
359
+ add("chat message receipts", "receipts", "Read message read/delivery receipts (regular Group only)", z.object({ ...regular, message_id: id }), undefined, "GroupChannel.getReadMembers");
360
+ for (const action of ["pin", "unpin"])
361
+ add(`chat message ${action}`, action, `${action} a message subject to channel permissions`, z.object({ ...group, message_id: id }), undefined, `BaseChannel.${action}Message`, true);
362
+ add("chat channel join", "join", "Join a public Group/Supergroup channel as the connected user", z.object(group), z.object({ access_code: z.string().optional() }).strict(), "GroupChannel.join", true);
363
+ add("chat channel leave", "leave", "Leave a Group/Supergroup channel as the connected user", z.object(group), undefined, "GroupChannel.leave", true, true);
364
+ add("chat channel invitation accept", "accept", "Accept the connected user’s channel invitation", z.object(group), z.object({ access_code: z.string().optional() }).strict(), "GroupChannel.acceptInvitation", true);
365
+ add("chat channel invitation decline", "decline", "Decline the connected user’s channel invitation", z.object(group), undefined, "GroupChannel.declineInvitation", true, true);
366
+ add("chat channel participants list", "participants", "List currently connected Open-channel participants (one bounded page)", z.object({ ...channel, type: z.literal("open") }), z.object({ limit: page.limit, page: queryPage }).strict(), "OpenChannel.createParticipantListQuery");
367
+ add("chat sdk channel members list", "members-list", "List one bounded page of Group/Supergroup members as the connected user", z.object(group), z.object({ limit: page.limit, page: queryPage }).strict(), "GroupChannel.createMemberListQuery");
368
+ add("chat sdk channel members invite", "members-invite", "Invite users as the connected Group/Supergroup member", z.object(group), z.object({ user_ids: z.array(text).min(1) }).strict(), "GroupChannel.inviteWithUserIds", true);
369
+ add("chat sdk channel my list", "my-channels-list", "List one bounded page of the connected user's Group/Supergroup channels", z.object({}), z
370
+ .object({
371
+ type: groupType,
372
+ member_state: z.enum(["all", "joined", "invited"]).default("all"),
373
+ limit: page.limit,
374
+ page: queryPage,
375
+ })
376
+ .strict(), "GroupChannelModule.createMyGroupChannelListQuery");
377
+ add("chat sdk channel my unread", "my-channels-unread", "Get the connected user's total unread message count by Group/Supergroup type", z.object({}), z.object({ type: groupType }).strict(), "GroupChannelModule.getTotalUnreadMessageCount");
378
+ add("chat sdk emoji list", "emoji-list", "List registered emoji keys for message reactions", z.object({}), undefined, "SendbirdChat.getAllEmoji");
379
+ for (const action of ["get", "set"])
380
+ add(`chat sdk user invitation ${action}`, `invitation-${action}`, `${action === "get" ? "Read" : "Set"} the connected user's automatic Group invitation acceptance`, z.object({}), action === "get"
381
+ ? undefined
382
+ : z.object({ auto_accept: z.boolean() }).strict(), action === "get"
383
+ ? "SendbirdChat.getChannelInvitationPreference"
384
+ : "SendbirdChat.setChannelInvitationPreference", action === "set");
385
+ for (const action of ["get", "set"])
386
+ add(`chat sdk channel count-preference ${action}`, `count-preference-${action}`, `${action === "get" ? "Read" : "Set"} the connected user's unread count preference for one Group/Supergroup channel`, z.object(group), action === "get"
387
+ ? undefined
388
+ : z.object({ preference: countPreference }).strict(), action === "get"
389
+ ? "GroupChannel.myCountPreference"
390
+ : "GroupChannel.setMyCountPreference", action === "set");
391
+ add("chat sdk channel typing-users", "typing-users", "List users currently typing in a regular Group channel", z.object(regular), undefined, "GroupChannel.getTypingUsers");
392
+ for (const action of ["get", "create", "increase", "decrease"])
393
+ add(`chat sdk channel counters ${action}`, `counters-${action}`, action === "get"
394
+ ? "Read selected channel metacounters as the connected user"
395
+ : action === "create"
396
+ ? "Create channel metacounters as the connected user"
397
+ : `${action === "increase" ? "Atomically increase" : "Atomically decrease"} channel metacounters as the connected user`, z.object(channel), action === "get"
398
+ ? z.object({ keys: z.array(text).min(1).max(20) }).strict()
399
+ : z
400
+ .object({
401
+ counters: z
402
+ .record(text, z.number().int().positive())
403
+ .refine((value) => Object.keys(value).length > 0, "At least one counter is required"),
404
+ })
405
+ .strict(), action === "get"
406
+ ? "BaseChannel.getMetaCounters"
407
+ : `BaseChannel.${action}MetaCounters`, action !== "get");
408
+ add("chat sdk message pins list", "pins-list", "List one bounded page of pinned Group/Supergroup messages", z.object(group), z.object({ limit: page.limit, page: queryPage }).strict(), "GroupChannel.createPinnedMessageListQuery");
409
+ add("chat sdk user push get", "push-get", "Read the connected user's app-wide push preference", z.object({}), undefined, "SendbirdChat.getPushTriggerOption");
410
+ add("chat sdk user push set", "push-set", "Set the connected user's app-wide push preference", z.object({}), z.object({ option: z.enum(["all", "mention_only", "off"]) }).strict(), "SendbirdChat.setPushTriggerOption", true);
411
+ add("chat sdk user snooze get", "snooze-get", "Read the connected user's push snooze period", z.object({}), undefined, "SendbirdChat.getSnoozePeriod");
412
+ add("chat sdk user snooze set", "snooze-set", "Set a snooze window in Unix milliseconds, or disable it while preserving its existing timestamps", z.object({}), z
413
+ .object({
414
+ enabled: z.boolean(),
415
+ start_at: z.number().int().nonnegative().optional(),
416
+ end_at: z.number().int().nonnegative().optional(),
417
+ })
418
+ .strict(), "SendbirdChat.setSnoozePeriod", true);
419
+ for (const action of ["get", "set"])
420
+ add(`chat sdk channel push ${action}`, `channel-push-${action}`, `${action === "get" ? "Read" : "Set"} the connected user's channel push preference`, z.object(group), action === "get"
421
+ ? undefined
422
+ : z
423
+ .object({ option: z.enum(["default", "all", "mention_only", "off"]) })
424
+ .strict(), action === "get"
425
+ ? "GroupChannel.getMyPushTriggerOption"
426
+ : "GroupChannel.setMyPushTriggerOption", action === "set");
427
+ for (const action of ["hide", "unhide", "reset-history"])
428
+ add(`chat sdk channel ${action}`, action, `${action.replace("-", " ")} the channel for the connected user`, z.object(group), action === "hide"
429
+ ? z
430
+ .object({ hide_previous_messages: z.boolean().default(false) })
431
+ .strict()
432
+ : undefined, action === "hide"
433
+ ? "GroupChannel.hide"
434
+ : action === "unhide"
435
+ ? "GroupChannel.unhide"
436
+ : "GroupChannel.resetMyHistory", true, action !== "unhide");
437
+ add("chat sdk message scheduled create", "scheduled-create", "Schedule a text message in a Group/Supergroup channel; scheduled_at is Unix epoch milliseconds (13 digits), at least 5 minutes ahead", z.object(group), z
438
+ .object({
439
+ message: text,
440
+ scheduled_at: z.number().int().min(1_000_000_000_000, {
441
+ message: "scheduled_at must be Unix epoch milliseconds (13 digits), not seconds; multiply seconds by 1000",
442
+ }),
443
+ custom_type: z.string().optional(),
444
+ data: z.string().optional(),
445
+ })
446
+ .strict(), "GroupChannel.createScheduledUserMessage", true);
447
+ add("chat sdk message scheduled list", "scheduled-list", "List scheduled messages by status; all includes canceled history, pending shows remaining scheduled sends", z.object(group), z
448
+ .object({
449
+ limit: page.limit,
450
+ page: queryPage,
451
+ status: z
452
+ .enum(["all", "pending", "sent", "failed", "canceled"])
453
+ .default("all"),
454
+ })
455
+ .strict(), "GroupChannelModule.createScheduledMessageListQuery");
456
+ for (const action of ["cancel", "send-now"])
457
+ add(`chat sdk message scheduled ${action}`, `scheduled-${action}`, `${action === "cancel" ? "Cancel" : "Send now"} one scheduled message`, z.object({ ...group, message_id: id }), undefined, action === "cancel"
458
+ ? "GroupChannel.cancelScheduledMessage"
459
+ : "GroupChannel.sendScheduledMessageNow", true, true);
460
+ add("chat sdk message translate", "translate", "Translate a user message into requested language codes", z.object({ ...channel, message_id: id }), z.object({ languages: z.array(text).min(1).max(10) }).strict(), "BaseChannel.translateUserMessage");
461
+ add("chat sdk message changes", "message-changes", "Read SDK message change logs since a timestamp", z.object(channel), z.object({ since: z.number().int().nonnegative() }).strict(), "BaseChannel.getMessageChangeLogsSinceTimestamp");
462
+ add("chat sdk poll list", "poll-list", "List one bounded page of polls in a Group/Supergroup channel", z.object(group), z.object({ limit: page.limit, page: queryPage }).strict(), "GroupChannel.createPollListQuery");
463
+ add("chat sdk poll vote", "poll-vote", "Vote for poll options as the connected user", z.object(group), z.object({ poll_id: id, option_ids: z.array(id).max(20) }).strict(), "GroupChannel.votePoll", true);
464
+ add("chat sdk poll option add", "poll-option-add", "Add an option to a poll subject to channel permissions", z.object(group), z.object({ poll_id: id, option: text }).strict(), "GroupChannel.addPollOption", true);
465
+ for (const action of ["add", "remove"])
466
+ add(`chat sdk channel operators ${action}`, `operator-${action}`, `${action === "add" ? "Add" : "Remove"} channel operators`, z.object(channel), z.object({ user_ids: z.array(text).min(1) }).strict(), action === "add"
467
+ ? "BaseChannel.addOperators"
468
+ : "BaseChannel.removeOperators", true, true);
469
+ for (const action of ["mute", "unmute", "ban", "unban"])
470
+ add(`chat sdk channel moderation ${action}`, action, `${action} a user in a channel subject to operator permissions`, z.object(channel), action === "mute" || action === "ban"
471
+ ? z
472
+ .object({
473
+ user_id: text,
474
+ seconds: z.number().int().positive().optional(),
475
+ description: z.string().optional(),
476
+ })
477
+ .strict()
478
+ : z.object({ user_id: text }).strict(), `BaseChannel.${action}UserWithUserId`, true, true);
479
+ for (const action of ["freeze", "unfreeze"])
480
+ add(`chat sdk channel moderation ${action}`, "freeze", `${action} a channel subject to operator permissions`, z.object(channel), z.object({ frozen: z.literal(action === "freeze") }).strict(), `BaseChannel.${action}`, true, true);
481
+ add("chat channel read", "read", "Mark channel messages as read for the connected user", z.object(group), undefined, "GroupChannel.markAsRead", true);
482
+ add("chat channel typing", "typing", "Send a typing indicator for a bounded duration, then stop it (regular Group only)", z.object(regular), z.object({ seconds: z.number().min(1).max(30).default(3) }).strict(), "GroupChannel.startTyping", true);
483
+ add("chat channel watch", "watch", "Stream channel events as NDJSON until duration, event limit or Ctrl+C", z.object(channel), z
484
+ .object({
485
+ seconds: z.number().int().min(1).max(3600).default(60),
486
+ max_events: z.number().int().min(1).max(10000).default(100),
487
+ })
488
+ .strict(), "GroupChannelHandler / OpenChannelHandler", false, false, true);
489
+ export const sdkDefinitions = [
490
+ ...defs,
491
+ ...proSdkDefinitions(sdkMessage, sdkUser),
492
+ ];
493
+ export function describeSdk(d) {
494
+ return {
495
+ ...describe(d),
496
+ transport: "chat-sdk",
497
+ authentication: "--as-user USER with CLI OAuth (or explicit --user-token-file / --allow-guest)",
498
+ mutates: d.mutates,
499
+ stream: !!d.stream,
500
+ source_url: "https://sendbird.com/docs/chat/sdk/v4/javascript/overview",
501
+ example: sdkExample(d),
502
+ };
503
+ }
504
+ export function sdkExample(d) {
505
+ const e = exampleFor(d);
506
+ const context = {
507
+ ...e.context,
508
+ "as-user": "USER_ID",
509
+ };
510
+ if (d.action === "file")
511
+ e.body = {
512
+ file_url: "https://example.com/photo.png",
513
+ file_name: "photo.png",
514
+ };
515
+ if (["counters-create", "counters-increase", "counters-decrease"].includes(d.action))
516
+ e.body = { counters: { likes: 1 } };
517
+ if (d.action === "counters-get")
518
+ e.body = { keys: ["likes"] };
519
+ if (d.action === "scheduled-create")
520
+ e.body = { ...e.body, scheduled_at: 1_900_000_000_000 };
521
+ if (d.action === "members-invite")
522
+ e.body = { user_ids: ["USER_ID"] };
523
+ if (d.action === "snooze-set")
524
+ e.body = { enabled: true, start_at: 1893456000000, end_at: 1893459600000 };
525
+ return { ...e, context };
526
+ }
527
+ //# sourceMappingURL=sdk-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-catalog.js","sourceRoot":"","sources":["../src/sdk-catalog.ts"],"names":[],"mappings":"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"}