@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,417 @@
1
+ const identifier = (value) => (typeof value === "string" || typeof value === "number") &&
2
+ String(value).length > 0 &&
3
+ String(value).length <= 2048 &&
4
+ !/[\x00-\x1f\x7f]/.test(String(value))
5
+ ? String(value)
6
+ : undefined;
7
+ export function recoverySnapshot(command, params, body, opts, environment) {
8
+ // Values, metadata keys, message text, credentials and file paths are excluded.
9
+ const fields = [
10
+ "nickname",
11
+ "profile_url",
12
+ "app_name",
13
+ "name",
14
+ "custom_type",
15
+ "data",
16
+ "is_public",
17
+ "is_distinct",
18
+ "is_super",
19
+ "guest_user_policy",
20
+ "is_active",
21
+ "metadata",
22
+ "enabled",
23
+ "enabled_events",
24
+ "relay_method",
25
+ "direct_call_cloud_recording_enabled",
26
+ "group_call_cloud_recording_enabled",
27
+ "direct_call_recording_video",
28
+ "direct_call_recording_display_timestamp",
29
+ "direct_call_recording_timestamp_timezone",
30
+ "auto_accept",
31
+ "option",
32
+ "preference",
33
+ "frozen",
34
+ "message",
35
+ ];
36
+ return {
37
+ command,
38
+ profile: identifier(opts.profile),
39
+ environment,
40
+ org_id: identifier(opts.orgId),
41
+ app_id: command.startsWith("calls credits ")
42
+ ? undefined
43
+ : identifier(opts.appId),
44
+ actor_user_id: identifier(opts.asUser),
45
+ resource_id: identifier(params.id),
46
+ channel_type: identifier(params.type),
47
+ message_id: identifier(params.message_id),
48
+ user_id: identifier(params.user_id ?? body.user_id),
49
+ poll_id: identifier(params.poll_id ?? body.poll_id),
50
+ custom_type: identifier(params.custom_type ?? body.custom_type),
51
+ channel_url: identifier(body.channel_url),
52
+ push_type: identifier(params.push_type),
53
+ changed_fields: fields.filter((field) => Object.hasOwn(body, field)),
54
+ sdk_options_required: Boolean(opts.allowGuest ||
55
+ opts.userTokenFile ||
56
+ opts.sdkConfigFile ||
57
+ opts.sdkApiHost ||
58
+ opts.sdkWsHost),
59
+ };
60
+ }
61
+ export function readbackPlan(s, details) {
62
+ let strategy = "manual";
63
+ let rule = "manual_unmapped";
64
+ const defaultNote = "No reliable CLI readback is defined. Inspect Dashboard or contact support before another change.";
65
+ let note = defaultNote;
66
+ const reads = [];
67
+ const prefix = [
68
+ "sendbird",
69
+ ...(s.profile ? ["--profile", s.profile] : []),
70
+ ...(s.org_id ? ["--org-id", s.org_id] : []),
71
+ ...(s.app_id ? ["--app-id", s.app_id] : []),
72
+ ];
73
+ const add = (path, flags, bounded = false, sdk = false) => {
74
+ if (!s.profile ||
75
+ (path !== "org list" &&
76
+ !s.app_id &&
77
+ path !== "app list" &&
78
+ !((path.startsWith("org ") || path === "calls credits list") &&
79
+ s.org_id))) {
80
+ note =
81
+ "The original profile/app was not resolved. Identify the original target before reading or retrying.";
82
+ return;
83
+ }
84
+ if (sdk && (!s.actor_user_id || s.sdk_options_required)) {
85
+ note =
86
+ "Reuse the original SDK actor, private credential input and endpoint overrides for a read. They are intentionally not copied into recovery output; do not use guest mode for recovery.";
87
+ return;
88
+ }
89
+ strategy = bounded ? "bounded_list" : "exact_resource";
90
+ reads.push({
91
+ argv: [
92
+ ...prefix,
93
+ ...path.split(" "),
94
+ ...flags,
95
+ ...(sdk ? ["--as-user", s.actor_user_id] : []),
96
+ "--json",
97
+ ],
98
+ reason: "Read the original target; this command does not repeat the failed change.",
99
+ });
100
+ };
101
+ const manual = (id, why) => {
102
+ rule = id;
103
+ note = why;
104
+ };
105
+ const exact = (path, id) => {
106
+ if (id)
107
+ add(path, ["--id", id]);
108
+ };
109
+ const channelFlags = s.resource_id &&
110
+ ["open", "group", "supergroup"].includes(s.channel_type ?? "")
111
+ ? ["--type", s.channel_type, "--id", s.resource_id]
112
+ : undefined;
113
+ const channel = (path, extra = [], bounded = false, sdk = false) => {
114
+ if (channelFlags)
115
+ add(path, [...channelFlags, ...extra], bounded, sdk);
116
+ };
117
+ const c = s.command;
118
+ if (c.startsWith("org sso ")) {
119
+ rule = "sso_policy";
120
+ add("org sso get", []);
121
+ note =
122
+ "Check SSO enforcement and identity-provider settings privately. Confirm a working login and recovery path; never repeat a policy change merely because a session expired.";
123
+ }
124
+ else if (c === "app delete") {
125
+ rule = "application_delete";
126
+ add("app list", [], true);
127
+ note =
128
+ "Inspect the original app ID and Dashboard. An empty or denied page is not proof of deletion; do not retry automatically.";
129
+ }
130
+ else if (c.startsWith("app ip-allowlist ")) {
131
+ rule = "ip_policy";
132
+ add("app ip-allowlist get", []);
133
+ note =
134
+ "Confirm access using the original source IP. If denied, use an authorized Dashboard recovery path; never clear the allowlist blindly.";
135
+ }
136
+ else if (c === "app partition set") {
137
+ rule = "partition_settings";
138
+ add("app get", []);
139
+ note =
140
+ "Read partitioning settings and migration state; changing the default is not proof that existing Open channels were converted.";
141
+ }
142
+ else if (c === "chat settings update") {
143
+ rule = "global_settings";
144
+ add("chat settings get", []);
145
+ }
146
+ else if (c.startsWith("chat settings custom ")) {
147
+ rule = "custom_settings";
148
+ if (s.custom_type)
149
+ add("chat settings custom get", ["--custom-type", s.custom_type]);
150
+ }
151
+ else if (c.startsWith("chat moderation keywords ")) {
152
+ rule = "moderation_keywords";
153
+ if (c.includes(" custom ") && s.custom_type)
154
+ add("chat moderation keywords custom list", [
155
+ "--custom-type",
156
+ s.custom_type,
157
+ ]);
158
+ else
159
+ add("chat moderation keywords global list", []);
160
+ note =
161
+ "Compare the intended keyword privately. The recovery record does not retain filter text.";
162
+ }
163
+ else if (c.startsWith("chat webhook ")) {
164
+ rule = "chat_webhook";
165
+ add("chat webhook get", []);
166
+ note =
167
+ "Inspect enabled events. The callback URL is masked; compare its private value in Dashboard before another write.";
168
+ }
169
+ else if (c === "chat push test send") {
170
+ manual("push_test_send", "A test notification may already have been sent. If an acknowledgement provided msg_id, use chat push test get with that ID and the original provider/channel. Otherwise inspect the device and Dashboard; never send another test blindly.");
171
+ }
172
+ else if (c.startsWith("chat sdk report ")) {
173
+ manual("sdk_report", "The SDK report has no reliable CLI lookup. Ask an authorized moderator to inspect it before resubmitting; do not copy report contents into recovery output.");
174
+ }
175
+ else if (c.startsWith("chat sdk user device ")) {
176
+ manual("sdk_device", "Inspect the device and current user's Push registration with the original private token input. Never remove other devices or register again solely because acknowledgement was lost.");
177
+ }
178
+ else if (c === "chat sdk poll create") {
179
+ manual("unattached_poll", "Poll creation prepares an unattached poll. Retain an acknowledged poll_id and attach explicitly; if the ID was lost, investigate before creating another poll. A channel list cannot locate an unattached poll reliably.");
180
+ }
181
+ else if (c.startsWith("chat push ") && !c.includes(" test ")) {
182
+ rule = "chat_push";
183
+ if (["apns", "fcm", "huawei"].includes(s.push_type ?? ""))
184
+ add("chat push list", ["--push-type", s.push_type]);
185
+ else
186
+ add("app get", []);
187
+ note =
188
+ "Inspect provider IDs and settings; secret equality and device receipt are not proven by a metadata read.";
189
+ }
190
+ else if (c.startsWith("chat announcement ")) {
191
+ rule = "announcement";
192
+ if (s.resource_id)
193
+ add("chat announcement get", ["--id", s.resource_id]);
194
+ else
195
+ add("chat announcement list", ["--limit", "100"], true);
196
+ note =
197
+ "Inspect the exact announcement when its ID is known. Same text or an empty page cannot prove creation or failure; do not resubmit an uncertain announcement.";
198
+ }
199
+ else if (c.startsWith("chat message meta ")) {
200
+ rule = "message_meta";
201
+ if (s.message_id)
202
+ channel("chat message get", ["--message-id", s.message_id], false, true);
203
+ }
204
+ else if (/^chat sdk user (block|unblock)$/.test(c)) {
205
+ rule = "sdk_block";
206
+ add("chat sdk user blocked list", ["--limit", "100"], true, true);
207
+ note =
208
+ "Inspect the intended user ID and follow bounded pages. Absence on one page is inconclusive.";
209
+ }
210
+ else if (/^chat sdk user (languages|dnd|push-template) set$/.test(c)) {
211
+ rule = "pro_sdk_preference";
212
+ add(c.replace(/ set$/, " get"), [], false, true);
213
+ }
214
+ else if (c.startsWith("chat sdk poll ")) {
215
+ rule = "poll_detail";
216
+ if (s.poll_id)
217
+ channel("chat sdk poll get", ["--poll-id", s.poll_id], false, true);
218
+ else
219
+ channel("chat sdk poll list", ["--limit", "100"], true, true);
220
+ }
221
+ else if (c.startsWith("chat moderation channel ")) {
222
+ rule = "dashboard_moderation";
223
+ if (c.includes("ban") && s.user_id)
224
+ channel("chat moderation channel banned get", ["--user-id", s.user_id]);
225
+ else if (c.includes("mute") && s.user_id)
226
+ channel("chat moderation channel muted get", ["--user-id", s.user_id]);
227
+ else
228
+ channel("chat channel get");
229
+ note =
230
+ "Inspect the original user's restriction and channel state; sender/operator rights differ from Dashboard moderation rights.";
231
+ }
232
+ else if (c === "org create") {
233
+ rule = "org_create";
234
+ add("org list", [], true);
235
+ note =
236
+ "Compare the intended name and accessible organization IDs. A name match does not prove this request created it.";
237
+ }
238
+ else if (c === "app create") {
239
+ rule = "app_create";
240
+ add("app list", ["--limit", "100"], true);
241
+ note =
242
+ "Compare name, region and organization; follow pagination. Names are not unique request identifiers.";
243
+ }
244
+ else if (c === "app rename") {
245
+ rule = "app_rename";
246
+ add("app get", []);
247
+ }
248
+ else if (c === "app feature set") {
249
+ rule = "app_feature";
250
+ add("app feature list", []);
251
+ note =
252
+ "Compare current flags with the confirmed change. Feature writes may partially affect upstream settings; a snapshot is not runtime verification. Do not replay blindly.";
253
+ }
254
+ else if (c === "app auth-policy set") {
255
+ rule = "auth_policy";
256
+ add("app auth-policy get", []);
257
+ }
258
+ else if (c === "chat user token issue")
259
+ manual("credential_rotation", "A masked token or existing user cannot prove issuance. Do not issue again or revoke as compensation; inspect the credential state privately with the authorized owner.");
260
+ else if (c.startsWith("chat user metadata ")) {
261
+ rule = "user_metadata";
262
+ exact("chat user metadata get", s.resource_id);
263
+ }
264
+ else if (/^chat user (create|update|delete|activate|deactivate)$/.test(c)) {
265
+ rule = "user";
266
+ exact("chat user get", s.resource_id ?? s.user_id);
267
+ }
268
+ else if (c === "chat channel create") {
269
+ rule = "channel_create";
270
+ const d = details && typeof details === "object"
271
+ ? details
272
+ : {};
273
+ const actual = d.actual && typeof d.actual === "object"
274
+ ? d.actual
275
+ : {};
276
+ const id = identifier(d.channel_url) ?? s.channel_url;
277
+ const type = typeof actual.is_super === "boolean"
278
+ ? actual.is_super
279
+ ? "supergroup"
280
+ : "group"
281
+ : s.channel_type;
282
+ if (id && ["open", "group", "supergroup"].includes(type ?? ""))
283
+ add("chat channel get", ["--type", type, "--id", id]);
284
+ else if (["open", "group", "supergroup"].includes(type ?? ""))
285
+ add("chat channel list", [
286
+ "--type",
287
+ type,
288
+ "--limit",
289
+ "100",
290
+ ...(type === "open" ? [] : ["--show-empty", "true"]),
291
+ ], true);
292
+ note =
293
+ "Compare the channel ID, type, members and requested settings. If the server returned another type, inspect that actual type. A list or same-name match is not proof of this creation.";
294
+ }
295
+ else if (/^chat channel (update|delete)$/.test(c)) {
296
+ rule = "channel";
297
+ channel("chat channel get");
298
+ }
299
+ else if (c.startsWith("chat channel metadata ")) {
300
+ rule = "channel_metadata";
301
+ channel("chat channel metadata get");
302
+ }
303
+ else if (c === "chat channel members invite" ||
304
+ c === "chat sdk channel members invite") {
305
+ rule = "members";
306
+ channel("chat channel members list", ["--limit", "100"], true);
307
+ note =
308
+ "Find each intended user ID and membership state; follow all pages. A denied read is not evidence of a failed invitation.";
309
+ }
310
+ else if (c === "support ticket submit")
311
+ manual("support_ticket", "No ticket lookup/correlation contract is available. Check the support inbox or ticket system before submitting again; do not include ticket text or attachments in diagnostics.");
312
+ else if (c === "calls credits claim-trial") {
313
+ rule = "calls_trial";
314
+ if (s.org_id)
315
+ add("calls credits list", [], true);
316
+ note =
317
+ "The server may create a voucher before activation fails, even on HTTP 400. Inspect status and expiry in the original organization; follow pages. Do not repeat the trial claim or infer usable credits from a historical balance. Contact support for a partially activated voucher.";
318
+ }
319
+ else if (c === "calls activate") {
320
+ rule = "calls_activation";
321
+ add("calls settings push get", []);
322
+ note =
323
+ "Inspect the exact app's Calls activation flag before retrying. Activation does not prove credits or call availability.";
324
+ }
325
+ else if (/^calls settings .+ set$/.test(c)) {
326
+ rule = "calls_settings";
327
+ add(c.replace(/ set$/, " get"), []);
328
+ note =
329
+ "Compare only the settings originally supplied, including false and empty lists. Redacted webhook/credential values cannot be verified by their presence.";
330
+ }
331
+ else if (c.startsWith("calls push ")) {
332
+ rule = "calls_push";
333
+ if (s.push_type)
334
+ add("calls push list", ["--push-type", s.push_type, "--limit", "100"], true);
335
+ note =
336
+ "Follow every cursor and compare the configuration ID and visible metadata. A masked key or matching metadata does not prove private credential replacement.";
337
+ }
338
+ else if (/^chat message (send|file|reply)$/.test(c)) {
339
+ rule = "message_without_id";
340
+ channel("chat message list", ["--limit", "100"], true, true);
341
+ note =
342
+ "No acknowledged message ID is available. Check sender, time and content privately, and follow history cursors. Identical messages may be legitimate; an empty page is not proof that sending failed.";
343
+ }
344
+ else if (/^chat message (update|delete|reaction add|reaction remove)$/.test(c)) {
345
+ rule = "message";
346
+ if (s.message_id)
347
+ channel("chat message get", ["--message-id", s.message_id], false, true);
348
+ }
349
+ else if (/^chat message (pin|unpin)$/.test(c)) {
350
+ rule = "pins";
351
+ channel("chat sdk message pins list", ["--limit", "100"], true, true);
352
+ }
353
+ else if (/^chat channel (join|leave|invitation accept|invitation decline)$/.test(c)) {
354
+ rule = "membership";
355
+ channel("chat channel members list", ["--limit", "100"], true);
356
+ note =
357
+ "Inspect the original actor's membership state with authorized Dashboard access. 401/403 and one missing page do not prove a leave or decline.";
358
+ }
359
+ else if (/^chat sdk (user (invitation|push|snooze)|channel (push|count-preference)) set$/.test(c)) {
360
+ rule = "sdk_preference";
361
+ const path = c.replace(/ set$/, " get");
362
+ if (c.includes(" channel "))
363
+ channel(path, [], false, true);
364
+ else
365
+ add(path, [], false, true);
366
+ }
367
+ else if (c.startsWith("chat sdk message scheduled ")) {
368
+ rule = "scheduled";
369
+ channel("chat sdk message scheduled list", ["--status", "all", "--limit", "100"], true, true);
370
+ note =
371
+ "Inspect pending, sent and canceled entries using the original scheduled ID if known; follow pages. Do not reschedule or send-now from absence in a pending-only list.";
372
+ }
373
+ else if (c.startsWith("chat sdk channel counters "))
374
+ manual("counters", "Read the original counter keys with chat sdk channel counters get and compare to a pre-change baseline. Concurrent increments make attribution uncertain; never repeat an increment/decrement from a missing acknowledgement.");
375
+ else if (/^chat sdk channel (hide|unhide|reset-history)$/.test(c))
376
+ manual("visibility_history", "Inspect this actor's channel visibility and history in an authorized client. A missing room/page does not prove hidden or reset history; do not repeat destructive resets.");
377
+ else if (c.startsWith("chat sdk channel operators ") ||
378
+ c.startsWith("chat sdk channel moderation "))
379
+ manual("moderation", "Inspect operator/moderation state in Dashboard using the original app, channel and user. The current CLI has no complete readback for every operator/ban/mute operation; do not apply an inverse action as compensation.");
380
+ else if (c === "chat channel read") {
381
+ rule = "read_receipt";
382
+ add("chat sdk channel my list", ["--type", "group", "--member-state", "all", "--limit", "100"], true, true);
383
+ note =
384
+ "Inspect the target room's unread snapshot. Null last-message data and new concurrent messages prevent a definitive result; do not treat aggregate zero as proof about a specific message.";
385
+ }
386
+ else if (c === "chat channel typing")
387
+ manual("ephemeral_typing", "Typing is transient and is cleared on disconnect. No durable readback proves the earlier typing signal was received.");
388
+ if (reads.length && note === defaultNote)
389
+ note =
390
+ "Compare the returned identity and only the originally supplied fields, including false and empty values. Matching current state does not prove this request caused it.";
391
+ const exactDeletion = c.endsWith(" delete") &&
392
+ ["user", "channel"].includes(rule) &&
393
+ reads.length === 1;
394
+ if (!reads.length && s.sdk_options_required)
395
+ note +=
396
+ " Reuse the original SDK credential and endpoint options privately; they are omitted from this plan. Never recover with guest mode.";
397
+ return {
398
+ rule,
399
+ strategy,
400
+ target: s,
401
+ verification: "not_checked",
402
+ automatic_retry: false,
403
+ safe_to_retry: false,
404
+ reads,
405
+ compare_fields: s.changed_fields,
406
+ note,
407
+ decisions: {
408
+ matching: "The observed state matches the intended state; do not repeat the change. This does not prove this request caused it.",
409
+ missing: exactDeletion
410
+ ? "With the original target and authorized read access confirmed, E_NOT_FOUND for this exact ID shows it is absent now. Do not send the delete again; this does not establish which request removed it."
411
+ : "Absence alone is inconclusive. Check the original environment, permissions, pagination and propagation delay; do not retry automatically.",
412
+ different: "Stop and inspect concurrent changes or a partial result before deciding on a new explicit change.",
413
+ unreadable: "Keep the outcome unresolved. Restore authorized read access; do not switch identity or weaken permissions to infer success.",
414
+ },
415
+ };
416
+ }
417
+ //# sourceMappingURL=recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type Definition } from "./catalog.js";
2
+ import { type Transport, type Request } from "./core.js";
3
+ export type Options = {
4
+ profile?: string;
5
+ orgId?: string;
6
+ appId?: string;
7
+ region?: string;
8
+ project?: boolean;
9
+ dryRun?: boolean;
10
+ yes?: boolean;
11
+ claimTrial?: boolean;
12
+ /** CLI-only consent callback; never enabled in JSON/raw or non-TTY execution. */
13
+ confirmTrial?: () => Promise<boolean>;
14
+ secretOutput?: string;
15
+ credentialFile?: string;
16
+ bodyFile?: string;
17
+ human?: boolean;
18
+ json?: boolean;
19
+ raw?: boolean;
20
+ };
21
+ export type Input = {
22
+ params?: Record<string, unknown>;
23
+ query?: Record<string, unknown>;
24
+ body?: Record<string, unknown>;
25
+ };
26
+ export declare function transport(opts: Options): Transport;
27
+ export declare function readBody(file: string): Record<string, unknown>;
28
+ export declare function prepare(d: Definition, input: Input, opts: Options): Request;
29
+ export declare function context(opts: Options): Options;
30
+ export declare function verify(t: Transport): Promise<{
31
+ [x: string]: unknown;
32
+ user?: {
33
+ [x: string]: unknown;
34
+ } | undefined;
35
+ organization?: {
36
+ [x: string]: unknown;
37
+ } | undefined;
38
+ organizations?: {
39
+ [x: string]: unknown;
40
+ }[] | undefined;
41
+ role?: {
42
+ [x: string]: unknown;
43
+ } | undefined;
44
+ }>;
45
+ export declare function checkAppOrg(t: Transport, appId: string, orgId?: string): Promise<Record<string, unknown>>;
46
+ export declare function execute(d: Definition, input: Input, opts: Options, injected?: Transport): Promise<unknown>;
47
+ export declare function definition(name: string): Definition;