@sendbird/cli 0.0.0-stage → 0.4.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 (182) hide show
  1. package/.claude-plugin/plugin.json +11 -0
  2. package/.codex-plugin/plugin.json +39 -0
  3. package/LICENSE +13 -0
  4. package/NOTICE.md +1105 -0
  5. package/PROVENANCE.md +15 -0
  6. package/README.md +44 -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 +703 -0
  41. package/dist/discovery.js +846 -0
  42. package/dist/discovery.js.map +1 -0
  43. package/dist/docs.d.ts +31 -0
  44. package/dist/docs.js +139 -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 +106 -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 +90 -4
  161. package/plugin.json +25 -0
  162. package/references/agent-guide.json +199 -0
  163. package/references/commands.md +247 -0
  164. package/references/dashboard-inventory.json +14796 -0
  165. package/references/docs-index.json +5329 -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 +50 -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,322 @@
1
+ import { callsCreditDefinitions, callsTrialFollowupSchema, } from "./calls-credits.js";
2
+ import { z } from "zod";
3
+ const text = z.string().min(1);
4
+ const api = "app/calls/api/index.ts";
5
+ const pushApi = "app/core/api/settings.ts";
6
+ const prefix = "/dashboard_api/v2oip/applications/{appId}/settings/";
7
+ export const pushTypes = [
8
+ "apns_voip",
9
+ "calls_apns_remote",
10
+ "fcm_voip",
11
+ "huawei_voip",
12
+ ];
13
+ export const relayMethodDescription = "Direct calls: stun&turn tries direct P2P/STUN first and falls back to TURN relay; turn uses TURN server relay only. Direct-call cloud recording prevents relay changes.";
14
+ const general = {
15
+ relay_method: z
16
+ .enum(["stun&turn", "turn"])
17
+ .describe(relayMethodDescription)
18
+ .optional(),
19
+ direct_call_cloud_recording_enabled: z.boolean().optional(),
20
+ group_call_cloud_recording_enabled: z.boolean().optional(),
21
+ direct_call_recording_video: z.enum(["dual", "callee"]).optional(),
22
+ direct_call_recording_display_timestamp: z.boolean().optional(),
23
+ direct_call_recording_timestamp_timezone: z.string().optional(),
24
+ };
25
+ const webhookEvents = z.array(z.enum([
26
+ "direct_call:dial",
27
+ "direct_call:accept",
28
+ "direct_call:end",
29
+ "room:create",
30
+ "room:delete",
31
+ "room:participant_enter",
32
+ "room:participant_exit",
33
+ "room:participant_disconnect",
34
+ "room:invitation_send",
35
+ "room:invitation_cancel",
36
+ "room:invitation_accept",
37
+ "room:invitation_decline",
38
+ "room:invitation_no_answer",
39
+ ]));
40
+ const chatEvents = z.array(z.enum(["direct_call:dial", "direct_call:end"]));
41
+ const webhook = {
42
+ enabled: z.boolean(),
43
+ url: z.string(),
44
+ enabled_events: webhookEvents,
45
+ };
46
+ const chat = { enabled: z.boolean(), enabled_events: chatEvents };
47
+ const nonempty = (value) => Object.keys(value).length > 0;
48
+ export const callsActivationStateSchema = z.object({
49
+ app_id: text,
50
+ is_calls_enabled: z.boolean().nullable(),
51
+ calls_flag_source: z.enum([
52
+ "attrs.sendbird_calls.enabled",
53
+ "is_calls_enabled",
54
+ "unknown",
55
+ "conflict",
56
+ ]),
57
+ push_enabled: z.boolean().nullable(),
58
+ region: z.string().optional(),
59
+ });
60
+ export const callsDefinitions = [
61
+ ...callsCreditDefinitions,
62
+ {
63
+ name: "calls activate",
64
+ description: "Activate Calls for an existing app; requires organization.applications.all and --yes. Use --claim-trial for a separately authorized free trial; no credits purchased",
65
+ method: "POST",
66
+ path: "/dashboard_api/v2oip/applications/{appId}/register",
67
+ scope: "app",
68
+ requiresOrg: true,
69
+ danger: true,
70
+ response: z.object({}).passthrough(),
71
+ resultSchema: z.object({
72
+ calls_trial: callsTrialFollowupSchema.optional(),
73
+ acknowledgement: z.object({}).passthrough(),
74
+ readback: z.discriminatedUnion("status", [
75
+ z.object({
76
+ status: z.enum(["matches", "mismatch"]),
77
+ activation: callsActivationStateSchema,
78
+ note: text,
79
+ }),
80
+ z.object({ status: z.literal("unavailable"), code: text, note: text }),
81
+ ]),
82
+ }),
83
+ source: ["app/core/api/overview.ts", "registerCallsApplication"],
84
+ },
85
+ {
86
+ name: "calls settings push get",
87
+ description: "Read the shared Push switch and Calls activation; this command never changes the switch",
88
+ method: "GET",
89
+ path: "/dashboard/applications/{appId}/get_detail/",
90
+ scope: "app",
91
+ response: z.object({
92
+ app_id: text,
93
+ push_enabled: z.boolean().nullable(),
94
+ is_calls_enabled: z.boolean().nullable(),
95
+ calls_flag_source: z.enum([
96
+ "attrs.sendbird_calls.enabled",
97
+ "is_calls_enabled",
98
+ "unknown",
99
+ "conflict",
100
+ ]),
101
+ region: z.string().optional(),
102
+ }),
103
+ source: ["app/core/api/application.ts", "fetchApplicationGetDetail"],
104
+ },
105
+ ];
106
+ for (const [name, fields, response, read, write, example] of [
107
+ [
108
+ "general",
109
+ general,
110
+ z.object({
111
+ general: z.object({
112
+ ...general,
113
+ direct_call_recording_timestamp_timezone: z.string().optional(),
114
+ }),
115
+ }),
116
+ "fetchCallsSettings",
117
+ "updateCallsSettings",
118
+ { relay_method: "turn" },
119
+ ],
120
+ [
121
+ "webhook",
122
+ webhook,
123
+ z.object({
124
+ webhook: z.object({
125
+ ...webhook,
126
+ all_webhook_categories: webhookEvents.optional(),
127
+ }),
128
+ }),
129
+ "fetchWebhookSetting",
130
+ "updateWebhookSetting",
131
+ { enabled: false },
132
+ ],
133
+ [
134
+ "chat-integration",
135
+ chat,
136
+ z.object({
137
+ chat_integration: z.object({
138
+ ...chat,
139
+ all_chat_integration_categories: chatEvents.optional(),
140
+ }),
141
+ }),
142
+ "fetchChatIntegration",
143
+ "updateChatIntegration",
144
+ { enabled: false, enabled_events: [] },
145
+ ],
146
+ ]) {
147
+ const path = prefix + name.replaceAll("-", "_");
148
+ callsDefinitions.push({
149
+ name: `calls settings ${name} get`,
150
+ description: `Read Calls ${name} settings`,
151
+ method: "GET",
152
+ path,
153
+ scope: "app",
154
+ response,
155
+ query: name === "webhook"
156
+ ? z.object({
157
+ display_all_webhook_categories: z.boolean().default(true),
158
+ })
159
+ : name === "chat-integration"
160
+ ? z.object({
161
+ display_all_chat_integration_categories: z
162
+ .boolean()
163
+ .default(true),
164
+ })
165
+ : undefined,
166
+ source: [api, read],
167
+ });
168
+ // Dashboard sends partial updates for general/webhook. Chat integration sends
169
+ // both fields together. false and empty event arrays are meaningful updates.
170
+ const body = name === "general"
171
+ ? z.object(general).strict().refine(nonempty, "Supply a setting")
172
+ : name === "webhook"
173
+ ? z
174
+ .object(webhook)
175
+ .partial()
176
+ .strict()
177
+ .refine(nonempty, "Supply a setting")
178
+ : z.object(chat).strict();
179
+ callsDefinitions.push({
180
+ name: `calls settings ${name} set`,
181
+ description: `Update Calls ${name} settings; inspect current values and confirm with --yes`,
182
+ method: "PUT",
183
+ path,
184
+ scope: "app",
185
+ body,
186
+ response,
187
+ danger: true,
188
+ privateFields: name === "webhook" ? ["url"] : undefined,
189
+ source: [api, write],
190
+ example,
191
+ });
192
+ }
193
+ export const pushRecord = z.object({
194
+ id: text,
195
+ push_type: z.string().optional(),
196
+ is_sandbox: z.boolean().optional(),
197
+ apns_env_cert_type: z.string().optional(),
198
+ apns_expiration: z.number().optional(),
199
+ apns_name: z.string().optional(),
200
+ apns_type: z.string().optional(),
201
+ apns_key_id: z.string().optional(),
202
+ apns_team_id: z.string().optional(),
203
+ content_available: z.boolean().optional(),
204
+ mutable_content: z.boolean().optional(),
205
+ has_unread_count_badge: z.number().optional(),
206
+ push_sound: z.string().nullable().optional(),
207
+ project_id: z.string().optional(),
208
+ private_key_id: z.string().optional(),
209
+ use_v1_api: z.boolean().optional(),
210
+ created_at: z.number().optional(),
211
+ huawei_app_id: z.string().optional(),
212
+ });
213
+ export const callsPushListSchema = z.object({
214
+ push_configurations: z.array(pushRecord),
215
+ total_count: z.number().optional(),
216
+ next: z.string().optional(),
217
+ prev: z.string().optional(),
218
+ });
219
+ export const pushBody = z
220
+ .object({
221
+ format: z.enum(["p8", "p12"]).optional(),
222
+ environment: z.enum(["production", "development"]).optional(),
223
+ apns_bundle_id: text.optional(),
224
+ apns_key_id: text.optional(),
225
+ apns_team_id: text.optional(),
226
+ apns_cert_password: z.string().optional(),
227
+ huawei_app_id: text.optional(),
228
+ huawei_app_secret: text.optional(),
229
+ push_sound: z.string().nullable().optional(),
230
+ })
231
+ .strict();
232
+ for (const [action, method, symbol] of [
233
+ ["list", "GET", "fetchPushConfiguration"],
234
+ ["create", "POST", "createPushConfiguration"],
235
+ ["update", "PUT", "updatePushConfiguration"],
236
+ ["delete", "DELETE", "deletePushConfiguration"],
237
+ ]) {
238
+ callsDefinitions.push({
239
+ name: `calls push ${action}`,
240
+ description: `${action === "list" ? "List" : action === "create" ? "Register" : action === "update" ? "Replace" : "Delete"} Calls VoIP push credentials; writes require --yes and private inputs`,
241
+ method,
242
+ path: "/platform/v3/applications/push/{push_type}" +
243
+ (["update", "delete"].includes(action) ? "/{id}" : ""),
244
+ scope: "app",
245
+ params: z.object({
246
+ push_type: z.enum(pushTypes),
247
+ ...(["update", "delete"].includes(action) ? { id: text } : {}),
248
+ }),
249
+ query: action === "list"
250
+ ? z.object({
251
+ paginated: z.literal(true).default(true),
252
+ limit: z.number().int().min(1).max(100).default(20),
253
+ token: z.string().optional(),
254
+ })
255
+ : undefined,
256
+ body: ["create", "update"].includes(action) ? pushBody : undefined,
257
+ // The Dashboard types PUT's push_configurations as a string. Keep that
258
+ // legacy acknowledgement separate from list/create's array contract.
259
+ response: action === "list" || action === "create"
260
+ ? callsPushListSchema
261
+ : action === "update"
262
+ ? z.object({
263
+ push_configurations: z.union([z.string(), z.array(pushRecord)]),
264
+ })
265
+ : z.object({}).nullable(),
266
+ danger: action !== "list",
267
+ privateFields: ["apns_cert_password", "huawei_app_secret"],
268
+ source: [pushApi, symbol],
269
+ example: action === "create" || action === "update"
270
+ ? {
271
+ format: "p8",
272
+ environment: "development",
273
+ apns_bundle_id: "com.example.calls",
274
+ apns_key_id: "KEY_ID",
275
+ apns_team_id: "TEAM_ID",
276
+ }
277
+ : undefined,
278
+ });
279
+ }
280
+ // API validation and the final CLI receipt are different contracts. In
281
+ // particular, readback is added locally after the server acknowledges a write.
282
+ for (const d of callsDefinitions) {
283
+ if (d.method === "GET" ||
284
+ d.name === "calls activate" ||
285
+ d.name.startsWith("calls credits "))
286
+ continue;
287
+ const isPush = d.name.startsWith("calls push ");
288
+ const next = z
289
+ .array(z.object({ argv: z.array(z.string()), reason: z.string() }).strict())
290
+ .optional();
291
+ const readback = z.discriminatedUnion("status", [
292
+ z
293
+ .object({
294
+ status: z.literal("read_completed"),
295
+ settings: isPush ? callsPushListSchema : d.response,
296
+ note: text,
297
+ next,
298
+ })
299
+ .strict(),
300
+ z
301
+ .object({
302
+ status: z.literal("unavailable"),
303
+ code: text,
304
+ note: text,
305
+ next,
306
+ })
307
+ .strict(),
308
+ ]);
309
+ const upstream = d.response instanceof z.ZodObject ? d.response.shape : {};
310
+ d.resultSchema = z
311
+ .object({
312
+ ...upstream,
313
+ ...(isPush ? { push_type: z.enum(pushTypes) } : {}),
314
+ ...(isPush && d.method !== "POST" ? { configuration_id: text } : {}),
315
+ ...(d.method === "DELETE"
316
+ ? { acknowledgement: z.null().optional() }
317
+ : {}),
318
+ readback,
319
+ })
320
+ .strict();
321
+ }
322
+ //# sourceMappingURL=calls-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calls-catalog.js","sourceRoot":"","sources":["../src/calls-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** Organization-scoped Calls vouchers. Gate owns eligibility and grant terms.
2
+ * No purchase, subscription, payment, or automatic retry is performed here.
3
+ */
4
+ import { z } from "zod";
5
+ import { type Request, type Transport } from "./core.js";
6
+ import type { Definition } from "./catalog.js";
7
+ export declare const callsCreditDefinitions: Definition[];
8
+ /** Present only when a caller opts into the follow-up or a human is offered it. */
9
+ export declare const callsTrialFollowupSchema: z.ZodObject<{
10
+ status: z.ZodEnum<{
11
+ accepted: "accepted";
12
+ skipped: "skipped";
13
+ declined: "declined";
14
+ failed: "failed";
15
+ }>;
16
+ note: z.ZodString;
17
+ code: z.ZodOptional<z.ZodString>;
18
+ mutation_state: z.ZodOptional<z.ZodEnum<{
19
+ not_attempted: "not_attempted";
20
+ rejected: "rejected";
21
+ unknown: "unknown";
22
+ acknowledged: "acknowledged";
23
+ }>>;
24
+ result: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
25
+ next: z.ZodArray<z.ZodObject<{
26
+ argv: z.ZodArray<z.ZodString>;
27
+ reason: z.ZodString;
28
+ }, z.core.$strip>>;
29
+ }, z.core.$strip>;
30
+ export declare function beforeCallsCredits(d: Definition, t: Transport, orgId: string | undefined): Promise<void>;
31
+ export declare function callsCreditsResult(d: Definition, r: Request, t: Transport, value: unknown, orgId: string | undefined): Promise<unknown>;
@@ -0,0 +1,224 @@
1
+ /** Organization-scoped Calls vouchers. Gate owns eligibility and grant terms.
2
+ * No purchase, subscription, payment, or automatic retry is performed here.
3
+ */
4
+ import { z } from "zod";
5
+ import { CliError, encodeSegment, request, } from "./core.js";
6
+ const text = z.string().min(1);
7
+ const date = z.iso.datetime({ offset: true }).nullable();
8
+ const voucher = z.object({
9
+ uid: text,
10
+ organization: z.object({ uid: text }),
11
+ status: text,
12
+ credit: z.number().nonnegative(),
13
+ transferred_credit: z.number(),
14
+ used_credit: z.number().nonnegative(),
15
+ start_dt: date,
16
+ expire_dt: date,
17
+ });
18
+ const trialVoucher = voucher.extend({ paid_amount: z.literal(0) });
19
+ const page = z.object({
20
+ count: z.number().int().nonnegative(),
21
+ results: z.array(voucher),
22
+ });
23
+ const summary = z.object({
24
+ voucher_id: text,
25
+ status: text,
26
+ credit: z.number(),
27
+ transferred_credit: z.number(),
28
+ used_credit: z.number(),
29
+ remaining_credit: z.number(),
30
+ started_at: date,
31
+ expires_at: date,
32
+ });
33
+ const next = z
34
+ .array(z.object({ argv: z.array(z.string()), reason: z.string() }))
35
+ .optional();
36
+ export const callsCreditDefinitions = [
37
+ {
38
+ name: "calls credits list",
39
+ description: "Read organization Calls voucher history, status and expiry; a balance on an expired voucher is not usable credit",
40
+ method: "GET",
41
+ path: "/dashboard_api/billing/vouchers/",
42
+ scope: "org",
43
+ query: z.object({
44
+ limit: z.number().int().min(1).max(100).default(20),
45
+ offset: z.number().int().nonnegative().default(0),
46
+ ordering: z.literal("-created_at").default("-created_at"),
47
+ }),
48
+ response: page,
49
+ resultSchema: z.object({
50
+ org_id: text,
51
+ vouchers: z.array(summary),
52
+ total: z.number().int(),
53
+ next_offset: z.number().int().nullable(),
54
+ note: text,
55
+ }),
56
+ source: ["app/common/api/billing.ts", "fetchVouchers"],
57
+ },
58
+ {
59
+ name: "calls credits claim-trial",
60
+ description: "Request the organization's one-time free Calls trial; OWNER, self-service organization, no voucher history and explicit confirmation (--yes or terminal prompt) required. No paid purchase or auto-renewal request",
61
+ method: "POST",
62
+ path: "/dashboard_api/billing/vouchers/start_free_trial",
63
+ scope: "org",
64
+ danger: true,
65
+ body: z.object({}).strict(),
66
+ response: trialVoucher,
67
+ resultSchema: z.object({
68
+ org_id: text,
69
+ voucher: summary,
70
+ readback: z.discriminatedUnion("status", [
71
+ z.object({
72
+ status: z.literal("found"),
73
+ voucher: summary,
74
+ note: text,
75
+ next,
76
+ }),
77
+ z.object({ status: z.literal("not_observed"), note: text, next }),
78
+ z.object({
79
+ status: z.literal("unavailable"),
80
+ code: text,
81
+ note: text,
82
+ next,
83
+ }),
84
+ ]),
85
+ }),
86
+ source: ["app/calls/api/index.ts", "createFreeVoucher"],
87
+ },
88
+ ];
89
+ /** Present only when a caller opts into the follow-up or a human is offered it. */
90
+ export const callsTrialFollowupSchema = z.object({
91
+ status: z.enum(["accepted", "skipped", "declined", "failed"]),
92
+ note: text,
93
+ code: text.optional(),
94
+ mutation_state: z
95
+ .enum(["not_attempted", "unknown", "acknowledged", "rejected"])
96
+ .optional(),
97
+ result: callsCreditDefinitions[1].resultSchema.optional(),
98
+ next: z.array(z.object({ argv: z.array(text), reason: text })),
99
+ });
100
+ function checked(schema, value) {
101
+ const parsed = schema.safeParse(value);
102
+ if (!parsed.success)
103
+ throw new CliError("E_SCHEMA", "Calls voucher identity or policy response is incomplete; inspect Dashboard", 8);
104
+ return parsed.data;
105
+ }
106
+ function checkPage(value, orgId) {
107
+ const data = checked(page, value);
108
+ if (data.results.some((v) => v.organization.uid !== orgId))
109
+ throw new CliError("E_CONTEXT", "Calls voucher response belongs to another organization", 5);
110
+ if (data.count < data.results.length)
111
+ throw new CliError("E_SCHEMA", "Calls voucher count is inconsistent", 8);
112
+ return data;
113
+ }
114
+ function voucherSummary(value, orgId) {
115
+ if (value.organization.uid !== orgId)
116
+ throw new CliError("E_CONTEXT", "Calls voucher response belongs to another organization", 5);
117
+ return {
118
+ voucher_id: value.uid,
119
+ status: value.status,
120
+ credit: value.credit,
121
+ transferred_credit: value.transferred_credit,
122
+ used_credit: value.used_credit,
123
+ // Billing already folds carry-over/debt into credit; adding it again double-counts.
124
+ remaining_credit: value.credit - value.used_credit,
125
+ started_at: value.start_dt,
126
+ expires_at: value.expire_dt,
127
+ };
128
+ }
129
+ const listRequest = (limit) => ({
130
+ method: "GET",
131
+ path: "/dashboard_api/billing/vouchers/",
132
+ query: { limit, offset: 0, ordering: "-created_at" },
133
+ });
134
+ export async function beforeCallsCredits(d, t, orgId) {
135
+ if (!d.name.startsWith("calls credits "))
136
+ return;
137
+ // Both Gate endpoints resolve the authenticated organization, not a query UID.
138
+ const who = checked(z.object({
139
+ organization: z.object({ uid: text }).optional(),
140
+ organizations: z.array(z.object({ uid: text })).optional(),
141
+ role: z.object({ name: text }).optional(),
142
+ }), await request(t, { method: "GET", path: "/dashboard/auth/verify2/" }));
143
+ const authenticated = who.organization?.uid ??
144
+ (who.organizations?.length === 1 ? who.organizations[0].uid : undefined);
145
+ if (!authenticated || authenticated !== orgId)
146
+ throw new CliError("E_CONTEXT", "Selected organization does not match the authenticated Calls billing organization", 5);
147
+ if (d.method === "GET")
148
+ return; // Gate enforces voucher read permissions.
149
+ if (who.role?.name !== "OWNER")
150
+ throw new CliError("E_PERMISSION", "Only the organization OWNER can request the free Calls trial", 4);
151
+ const org = checked(z.object({ uid: text, is_self_serve: z.boolean() }), await request(t, {
152
+ method: "GET",
153
+ path: `/dashboard_api/organizations/${encodeSegment(orgId)}/`,
154
+ }));
155
+ if (org.uid !== orgId)
156
+ throw new CliError("E_CONTEXT", "Organization response does not match the selected organization", 5);
157
+ if (!org.is_self_serve)
158
+ throw new CliError("E_CAPABILITY", "The free Calls trial requires a self-service organization", 5);
159
+ const history = checkPage(await request(t, listRequest(1)), orgId);
160
+ if (history.count !== 0)
161
+ throw new CliError("E_CAPABILITY", "This organization already has voucher history, including expired/depleted vouchers; a second free trial was not requested. Use calls credits list", 5);
162
+ const subscription = checked(z.object({
163
+ current_subscription: z.object({ subscription_name: text }).nullable(),
164
+ }), await request(t, {
165
+ method: "GET",
166
+ path: "/dashboard_api/billing/subscriptions/info/",
167
+ query: { product: "CHAT" },
168
+ }));
169
+ if (subscription.current_subscription?.subscription_name === "developer")
170
+ throw new CliError("E_CAPABILITY", "The Developer plan does not support Calls vouchers; no trial was requested", 5);
171
+ // The server's lock and final eligibility check remain authoritative.
172
+ }
173
+ export async function callsCreditsResult(d, r, t, value, orgId) {
174
+ if (!d.name.startsWith("calls credits "))
175
+ return value;
176
+ const org = orgId; // Required by prepare(), then bound to verify2 before dispatch.
177
+ if (d.method === "GET") {
178
+ const data = checkPage(value, org), offset = Number(r.query.offset);
179
+ if (offset < data.count && data.results.length === 0)
180
+ throw new CliError("E_SCHEMA", "Calls voucher page is incomplete; no empty-history inference is safe", 8);
181
+ return {
182
+ org_id: org,
183
+ vouchers: data.results.map((v) => voucherSummary(v, org)),
184
+ total: data.count,
185
+ next_offset: offset + data.results.length < data.count
186
+ ? offset + data.results.length
187
+ : null,
188
+ note: "History, not a current-call availability guarantee. Inspect status and expiry; READY, EXPIRED and DEPLETED balances are not active credit. Trial amounts/duration come from the server, not the upcoming unified-credit plan.",
189
+ };
190
+ }
191
+ const accepted = voucherSummary(checked(trialVoucher, value), org);
192
+ const note = "The trial request was accepted. Inspect status and expiry; this does not prove call availability. No paid purchase or subscription change was requested. The server updates the organization's has_calls_credit state as part of activation; call availability still requires independent verification. Do not repeat the claim on a missing readback.";
193
+ try {
194
+ const data = checkPage(await request(t, listRequest(100)), org);
195
+ const found = data.results.find((v) => v.uid === accepted.voucher_id);
196
+ return {
197
+ org_id: org,
198
+ voucher: accepted,
199
+ readback: found
200
+ ? {
201
+ status: "found",
202
+ voucher: voucherSummary(found, org),
203
+ note,
204
+ }
205
+ : {
206
+ status: "not_observed",
207
+ note: note +
208
+ " Only the first 100 vouchers were checked; follow calls credits list pagination.",
209
+ },
210
+ };
211
+ }
212
+ catch (error) {
213
+ return {
214
+ org_id: org,
215
+ voucher: accepted,
216
+ readback: {
217
+ status: "unavailable",
218
+ code: error instanceof CliError ? error.code : "E_SCHEMA",
219
+ note,
220
+ },
221
+ };
222
+ }
223
+ }
224
+ //# sourceMappingURL=calls-credits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calls-credits.js","sourceRoot":"","sources":["../src/calls-credits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /** Optional second step after Calls activation. Never turn a follow-up failure
2
+ * into a failed app creation/registration that encourages repeating the write. */
3
+ import { type Transport } from "./core.js";
4
+ import type { Options } from "./runner.js";
5
+ export declare function followCallsTrial(opts: Options, t: Transport, activationConfirmed: () => Promise<boolean>, claim: () => Promise<unknown>): Promise<{
6
+ status: string;
7
+ note: string;
8
+ next: {
9
+ argv: string[];
10
+ reason: string;
11
+ }[];
12
+ result?: undefined;
13
+ code?: undefined;
14
+ mutation_state?: undefined;
15
+ } | {
16
+ status: string;
17
+ note: string;
18
+ result: unknown;
19
+ next: {
20
+ argv: string[];
21
+ reason: string;
22
+ }[];
23
+ code?: undefined;
24
+ mutation_state?: undefined;
25
+ } | {
26
+ status: string;
27
+ code: string;
28
+ note: string;
29
+ next: {
30
+ argv: string[];
31
+ reason: string;
32
+ }[];
33
+ result?: undefined;
34
+ mutation_state?: undefined;
35
+ } | {
36
+ status: string;
37
+ code: string;
38
+ mutation_state: import("./recovery.js").MutationState;
39
+ note: string;
40
+ next: {
41
+ argv: string[];
42
+ reason: string;
43
+ }[];
44
+ result?: undefined;
45
+ }>;