@chanl-ai/sdk 2.0.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 (137) hide show
  1. package/dist/adapters/openai.d.ts +106 -0
  2. package/dist/adapters/openai.d.ts.map +1 -0
  3. package/dist/adapters/openai.js +185 -0
  4. package/dist/adapters/openai.js.map +1 -0
  5. package/dist/client.d.ts +74 -0
  6. package/dist/client.d.ts.map +1 -0
  7. package/dist/client.js +293 -0
  8. package/dist/client.js.map +1 -0
  9. package/dist/errors/index.d.ts +179 -0
  10. package/dist/errors/index.d.ts.map +1 -0
  11. package/dist/errors/index.js +319 -0
  12. package/dist/errors/index.js.map +1 -0
  13. package/dist/index.d.ts +38 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +76 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/live/index.d.ts +9 -0
  18. package/dist/live/index.d.ts.map +1 -0
  19. package/dist/live/index.js +16 -0
  20. package/dist/live/index.js.map +1 -0
  21. package/dist/live/live-call.d.ts +48 -0
  22. package/dist/live/live-call.d.ts.map +1 -0
  23. package/dist/live/live-call.js +148 -0
  24. package/dist/live/live-call.js.map +1 -0
  25. package/dist/live/live-chat.d.ts +71 -0
  26. package/dist/live/live-chat.d.ts.map +1 -0
  27. package/dist/live/live-chat.js +95 -0
  28. package/dist/live/live-chat.js.map +1 -0
  29. package/dist/live/live-execution.d.ts +55 -0
  30. package/dist/live/live-execution.d.ts.map +1 -0
  31. package/dist/live/live-execution.js +170 -0
  32. package/dist/live/live-execution.js.map +1 -0
  33. package/dist/live/typed-emitter.d.ts +15 -0
  34. package/dist/live/typed-emitter.d.ts.map +1 -0
  35. package/dist/live/typed-emitter.js +40 -0
  36. package/dist/live/typed-emitter.js.map +1 -0
  37. package/dist/live/types.d.ts +24 -0
  38. package/dist/live/types.d.ts.map +1 -0
  39. package/dist/live/types.js +6 -0
  40. package/dist/live/types.js.map +1 -0
  41. package/dist/modules/agents.d.ts +378 -0
  42. package/dist/modules/agents.d.ts.map +1 -0
  43. package/dist/modules/agents.js +259 -0
  44. package/dist/modules/agents.js.map +1 -0
  45. package/dist/modules/alerts.d.ts +43 -0
  46. package/dist/modules/alerts.d.ts.map +1 -0
  47. package/dist/modules/alerts.js +56 -0
  48. package/dist/modules/alerts.js.map +1 -0
  49. package/dist/modules/audio.d.ts +47 -0
  50. package/dist/modules/audio.d.ts.map +1 -0
  51. package/dist/modules/audio.js +75 -0
  52. package/dist/modules/audio.js.map +1 -0
  53. package/dist/modules/auth.d.ts +76 -0
  54. package/dist/modules/auth.d.ts.map +1 -0
  55. package/dist/modules/auth.js +59 -0
  56. package/dist/modules/auth.js.map +1 -0
  57. package/dist/modules/calls.d.ts +825 -0
  58. package/dist/modules/calls.d.ts.map +1 -0
  59. package/dist/modules/calls.js +398 -0
  60. package/dist/modules/calls.js.map +1 -0
  61. package/dist/modules/chat.d.ts +165 -0
  62. package/dist/modules/chat.d.ts.map +1 -0
  63. package/dist/modules/chat.js +169 -0
  64. package/dist/modules/chat.js.map +1 -0
  65. package/dist/modules/health.d.ts +45 -0
  66. package/dist/modules/health.d.ts.map +1 -0
  67. package/dist/modules/health.js +22 -0
  68. package/dist/modules/health.js.map +1 -0
  69. package/dist/modules/knowledge.d.ts +202 -0
  70. package/dist/modules/knowledge.d.ts.map +1 -0
  71. package/dist/modules/knowledge.js +147 -0
  72. package/dist/modules/knowledge.js.map +1 -0
  73. package/dist/modules/mcp.d.ts +140 -0
  74. package/dist/modules/mcp.d.ts.map +1 -0
  75. package/dist/modules/mcp.js +110 -0
  76. package/dist/modules/mcp.js.map +1 -0
  77. package/dist/modules/memory.d.ts +163 -0
  78. package/dist/modules/memory.d.ts.map +1 -0
  79. package/dist/modules/memory.js +208 -0
  80. package/dist/modules/memory.js.map +1 -0
  81. package/dist/modules/personas.d.ts +168 -0
  82. package/dist/modules/personas.d.ts.map +1 -0
  83. package/dist/modules/personas.js +106 -0
  84. package/dist/modules/personas.js.map +1 -0
  85. package/dist/modules/prompts.d.ts +128 -0
  86. package/dist/modules/prompts.d.ts.map +1 -0
  87. package/dist/modules/prompts.js +93 -0
  88. package/dist/modules/prompts.js.map +1 -0
  89. package/dist/modules/scenarios.d.ts +294 -0
  90. package/dist/modules/scenarios.d.ts.map +1 -0
  91. package/dist/modules/scenarios.js +349 -0
  92. package/dist/modules/scenarios.js.map +1 -0
  93. package/dist/modules/scorecard.d.ts +642 -0
  94. package/dist/modules/scorecard.d.ts.map +1 -0
  95. package/dist/modules/scorecard.js +327 -0
  96. package/dist/modules/scorecard.js.map +1 -0
  97. package/dist/modules/tools.d.ts +222 -0
  98. package/dist/modules/tools.d.ts.map +1 -0
  99. package/dist/modules/tools.js +302 -0
  100. package/dist/modules/tools.js.map +1 -0
  101. package/dist/modules/toolsets.d.ts +173 -0
  102. package/dist/modules/toolsets.d.ts.map +1 -0
  103. package/dist/modules/toolsets.js +216 -0
  104. package/dist/modules/toolsets.js.map +1 -0
  105. package/dist/modules/transcript.d.ts +60 -0
  106. package/dist/modules/transcript.d.ts.map +1 -0
  107. package/dist/modules/transcript.js +69 -0
  108. package/dist/modules/transcript.js.map +1 -0
  109. package/dist/modules/workspace.d.ts +48 -0
  110. package/dist/modules/workspace.d.ts.map +1 -0
  111. package/dist/modules/workspace.js +49 -0
  112. package/dist/modules/workspace.js.map +1 -0
  113. package/dist/types/api.d.ts +8 -0
  114. package/dist/types/api.d.ts.map +1 -0
  115. package/dist/types/api.js +25 -0
  116. package/dist/types/api.js.map +1 -0
  117. package/dist/types/config.d.ts +70 -0
  118. package/dist/types/config.d.ts.map +1 -0
  119. package/dist/types/config.js +3 -0
  120. package/dist/types/config.js.map +1 -0
  121. package/dist/types/memory.d.ts +243 -0
  122. package/dist/types/memory.d.ts.map +1 -0
  123. package/dist/types/memory.js +9 -0
  124. package/dist/types/memory.js.map +1 -0
  125. package/dist/types/tool-calls.d.ts +61 -0
  126. package/dist/types/tool-calls.d.ts.map +1 -0
  127. package/dist/types/tool-calls.js +9 -0
  128. package/dist/types/tool-calls.js.map +1 -0
  129. package/dist/types/tools.d.ts +321 -0
  130. package/dist/types/tools.d.ts.map +1 -0
  131. package/dist/types/tools.js +9 -0
  132. package/dist/types/tools.js.map +1 -0
  133. package/dist/types/toolsets.d.ts +149 -0
  134. package/dist/types/toolsets.d.ts.map +1 -0
  135. package/dist/types/toolsets.js +8 -0
  136. package/dist/types/toolsets.js.map +1 -0
  137. package/package.json +60 -0
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ /**
3
+ * AgentsModule - SDK module for agent management
4
+ *
5
+ * Provides operations for AI agents.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AgentsModule = void 0;
9
+ class AgentsModule {
10
+ constructor(sdk) {
11
+ this.sdk = sdk;
12
+ }
13
+ /**
14
+ * List all agents with optional filters
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const { data } = await sdk.agents.list();
19
+ * console.log(data.agents);
20
+ * ```
21
+ */
22
+ async list(filters) {
23
+ const queryParams = new URLSearchParams();
24
+ if (filters?.status)
25
+ queryParams.append('status', filters.status);
26
+ if (filters?.provider)
27
+ queryParams.append('provider', filters.provider);
28
+ if (filters?.page)
29
+ queryParams.append('page', filters.page.toString());
30
+ if (filters?.limit)
31
+ queryParams.append('limit', filters.limit.toString());
32
+ if (filters?.sortBy)
33
+ queryParams.append('sortBy', filters.sortBy);
34
+ if (filters?.sortOrder)
35
+ queryParams.append('sortOrder', filters.sortOrder);
36
+ const url = `/api/v1/agents${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
37
+ return this.sdk.request('GET', url);
38
+ }
39
+ /**
40
+ * Get a single agent by ID
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const { data } = await sdk.agents.get('agent_abc');
45
+ * console.log(data.agent.name);
46
+ * ```
47
+ */
48
+ async get(id) {
49
+ return this.sdk.request('GET', `/api/v1/agents/${id}`);
50
+ }
51
+ /**
52
+ * Create a new agent
53
+ *
54
+ * Creates an agent with platform configuration. Use platform 'custom' for
55
+ * internally-managed agents, or specify a platform like 'vapi' for external
56
+ * integrations.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Create a custom agent
61
+ * const { data } = await sdk.agents.create({
62
+ * platform: 'custom',
63
+ * name: 'Support Agent',
64
+ * type: 'Voice Assistant',
65
+ * useCase: 'support',
66
+ * configuration: {
67
+ * prompt: 'You are a helpful customer support agent.',
68
+ * model: 'gpt-4o'
69
+ * }
70
+ * });
71
+ *
72
+ * // Create a VAPI agent
73
+ * const { data } = await sdk.agents.create({
74
+ * platform: 'vapi',
75
+ * platformAgentId: 'asst_abc123',
76
+ * name: 'VAPI Sales Bot',
77
+ * type: 'Voice Assistant',
78
+ * phoneNumbers: ['+1234567890']
79
+ * });
80
+ * ```
81
+ */
82
+ async create(data) {
83
+ return this.sdk.request('POST', '/api/v1/agents', data);
84
+ }
85
+ /**
86
+ * Update an existing agent
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const { data } = await sdk.agents.update('agent_abc', {
91
+ * status: 'active',
92
+ * configuration: { prompt: 'Updated prompt' },
93
+ * syncToVapi: true // Sync changes back to VAPI
94
+ * });
95
+ * ```
96
+ */
97
+ async update(id, data) {
98
+ return this.sdk.request('PATCH', `/api/v1/agents/${id}`, data);
99
+ }
100
+ /**
101
+ * Delete an agent
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * // Delete locally only
106
+ * await sdk.agents.delete('agent_abc');
107
+ *
108
+ * // Also delete from integration platform
109
+ * await sdk.agents.delete('agent_abc', {
110
+ * deleteFromIntegration: true
111
+ * });
112
+ * ```
113
+ */
114
+ async delete(id, options) {
115
+ const queryParams = new URLSearchParams();
116
+ if (options?.deleteFromIntegration) {
117
+ queryParams.append('deleteFromIntegration', 'true');
118
+ }
119
+ const url = `/api/v1/agents/${id}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
120
+ return this.sdk.request('DELETE', url);
121
+ }
122
+ /**
123
+ * Sync agents from an external platform
124
+ *
125
+ * Imports agents from VAPI, ElevenLabs, or other platforms into your workspace.
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * // Sync all agents from VAPI
130
+ * const { data } = await sdk.agents.sync('vapi');
131
+ *
132
+ * // Force update with clean sync
133
+ * const { data } = await sdk.agents.sync('vapi', {
134
+ * forceUpdate: true,
135
+ * cleanBeforeSync: true
136
+ * });
137
+ * ```
138
+ */
139
+ async sync(platform, options) {
140
+ return this.sdk.request('POST', `/api/v1/agents/sync/${platform}`, options || {});
141
+ }
142
+ /**
143
+ * Sync agents from all configured platforms
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const { data } = await sdk.agents.syncAll('ws_123', {
148
+ * forceUpdate: true
149
+ * });
150
+ * console.log(`Synced ${data.result.processed} agents`);
151
+ * ```
152
+ */
153
+ async syncAll(options) {
154
+ return this.sdk.request('POST', '/api/v1/agents/sync/all', options || {});
155
+ }
156
+ /**
157
+ * Import a specific agent from a third-party platform
158
+ *
159
+ * Imports one agent by its external ID from VAPI, Retell, Bland, or other
160
+ * platforms. The agent is created in Chanl with a deployment reference
161
+ * linking it back to the external platform.
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * // Import a VAPI agent
166
+ * const { data } = await sdk.agents.importFromPlatform('ws_123', {
167
+ * platform: 'vapi',
168
+ * externalAgentId: 'asst_abc123',
169
+ * });
170
+ * console.log(data.agent.name);
171
+ * console.log(data.agent.deployments[0].externalId);
172
+ *
173
+ * // Import with name override
174
+ * const { data } = await sdk.agents.importFromPlatform('ws_123', {
175
+ * platform: 'retell',
176
+ * externalAgentId: 'ret_xyz',
177
+ * name: 'My Custom Name',
178
+ * });
179
+ * ```
180
+ */
181
+ async importFromPlatform(options) {
182
+ return this.sdk.request('POST', '/api/v1/agents/import', options);
183
+ }
184
+ /**
185
+ * Publish an agent to a third-party platform
186
+ *
187
+ * Creates or updates the agent on an external platform (VAPI, Retell, Bland).
188
+ * Optionally includes the MCP URL for tool access.
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * // Publish to VAPI (creates new)
193
+ * const { data } = await sdk.agents.publish('agent_abc', {
194
+ * platform: 'vapi',
195
+ * includeMcp: true,
196
+ * });
197
+ * console.log(data.action); // 'created'
198
+ * console.log(data.externalId); // 'ext_vapi_789'
199
+ *
200
+ * // Update existing external agent
201
+ * const { data } = await sdk.agents.publish('agent_abc', {
202
+ * platform: 'vapi',
203
+ * targetExternalId: 'existing_ext_456',
204
+ * });
205
+ * console.log(data.action); // 'updated'
206
+ * ```
207
+ */
208
+ async publish(agentId, options) {
209
+ return this.sdk.request('POST', `/api/v1/agents/${agentId}/deploy`, options);
210
+ }
211
+ /**
212
+ * Push MCP URL to a third-party agent
213
+ *
214
+ * Configures a third-party agent to use the Chanl MCP server for tool access.
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * const { data } = await sdk.agents.pushMcp('ws_123', 'agent_abc', {
219
+ * platform: 'vapi',
220
+ * });
221
+ * console.log(data.mcpUrl); // 'https://my-workspace.chanl.dev/mcp'
222
+ * console.log(data.externalId); // 'ext_vapi_789'
223
+ *
224
+ * // Push to specific external agent
225
+ * const { data } = await sdk.agents.pushMcp('ws_123', 'agent_abc', {
226
+ * platform: 'vapi',
227
+ * targetExternalId: 'existing_ext_456',
228
+ * });
229
+ * ```
230
+ */
231
+ async pushMcp(agentId, options) {
232
+ return this.sdk.request('POST', `/api/v1/agents/${agentId}/push-mcp`, options);
233
+ }
234
+ /**
235
+ * Get agent statistics for the workspace
236
+ *
237
+ * Returns aggregate stats including total agents, average scores,
238
+ * tool failures, and breakdowns by platform and status.
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const { data } = await sdk.agents.getStats('ws_123');
243
+ * console.log('Total agents:', data.stats.totalAgents);
244
+ * console.log('By platform:', data.stats.byPlatform);
245
+ * ```
246
+ */
247
+ async getStats() {
248
+ return this.sdk.request('GET', '/api/v1/agents/stats');
249
+ }
250
+ /**
251
+ * Build full agent context in one call.
252
+ * Returns system prompt, memories, knowledge, tools, and token usage.
253
+ */
254
+ async context(agentId, options) {
255
+ return this.sdk.request('POST', `/api/v1/agents/${agentId}/context`, options || {});
256
+ }
257
+ }
258
+ exports.AgentsModule = AgentsModule;
259
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/modules/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { ChanlSDK } from "../client";
2
+ import { ApiResponse } from "../types/config";
3
+ export type AlertMetadata = Record<string, unknown>;
4
+ export interface Alert {
5
+ id: string;
6
+ type: string;
7
+ message: string;
8
+ severity: "info" | "warning" | "error";
9
+ workspaceId: string;
10
+ metadata?: AlertMetadata;
11
+ read: boolean;
12
+ createdAt: string;
13
+ updatedAt: string;
14
+ }
15
+ export declare class AlertModule {
16
+ private sdk;
17
+ constructor(sdk: ChanlSDK);
18
+ /**
19
+ * Get all alerts
20
+ */
21
+ getAll(params?: {
22
+ workspaceId?: string;
23
+ severity?: string;
24
+ read?: boolean;
25
+ page?: number;
26
+ limit?: number;
27
+ }): Promise<ApiResponse<Alert[]>>;
28
+ /**
29
+ * Mark alert as read
30
+ */
31
+ markAsRead(id: string): Promise<ApiResponse<void>>;
32
+ /**
33
+ * Mark all alerts as read
34
+ */
35
+ markAllAsRead(params?: {
36
+ workspaceId?: string;
37
+ }): Promise<ApiResponse<void>>;
38
+ /**
39
+ * Delete alert
40
+ */
41
+ delete(id: string): Promise<ApiResponse<void>>;
42
+ }
43
+ //# sourceMappingURL=alerts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../src/modules/alerts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,QAAQ;IAEjC;;OAEG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAuBjC;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAIxD;;OAEG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAW9B;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CAGrD"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlertModule = void 0;
4
+ class AlertModule {
5
+ constructor(sdk) {
6
+ this.sdk = sdk;
7
+ }
8
+ /**
9
+ * Get all alerts
10
+ */
11
+ async getAll(params) {
12
+ const queryParams = new URLSearchParams();
13
+ if (params?.workspaceId) {
14
+ queryParams.append("workspaceId", params.workspaceId);
15
+ }
16
+ if (params?.severity) {
17
+ queryParams.append("severity", params.severity);
18
+ }
19
+ if (params?.read !== undefined) {
20
+ queryParams.append("read", params.read.toString());
21
+ }
22
+ if (params?.page) {
23
+ queryParams.append("page", params.page.toString());
24
+ }
25
+ if (params?.limit) {
26
+ queryParams.append("limit", params.limit.toString());
27
+ }
28
+ const url = `/v1/alerts${queryParams.toString() ? `?${queryParams.toString()}` : ""}`;
29
+ return this.sdk.request("GET", url);
30
+ }
31
+ /**
32
+ * Mark alert as read
33
+ */
34
+ async markAsRead(id) {
35
+ return this.sdk.request("PUT", `/v1/alerts/${id}/read`);
36
+ }
37
+ /**
38
+ * Mark all alerts as read
39
+ */
40
+ async markAllAsRead(params) {
41
+ const queryParams = new URLSearchParams();
42
+ if (params?.workspaceId) {
43
+ queryParams.append("workspaceId", params.workspaceId);
44
+ }
45
+ const url = `/v1/alerts/read-all${queryParams.toString() ? `?${queryParams.toString()}` : ""}`;
46
+ return this.sdk.request("PUT", url);
47
+ }
48
+ /**
49
+ * Delete alert
50
+ */
51
+ async delete(id) {
52
+ return this.sdk.request("DELETE", `/v1/alerts/${id}`);
53
+ }
54
+ }
55
+ exports.AlertModule = AlertModule;
56
+ //# sourceMappingURL=alerts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../src/modules/alerts.ts"],"names":[],"mappings":";;;AAiBA,MAAa,WAAW;IACtB,YAAoB,GAAa;QAAb,QAAG,GAAH,GAAG,CAAU;IAAG,CAAC;IAErC;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAMZ;QACC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAE1C,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACjB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,GAAG,GAAG,aAAa,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAEnB;QACC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAE1C,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,GAAG,GAAG,sBAAsB,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/F,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;CACF;AAhED,kCAgEC"}
@@ -0,0 +1,47 @@
1
+ import { ChanlSDK } from "../client";
2
+ import { ApiResponse } from "../types/config";
3
+ export interface AudioUploadOptions {
4
+ metadata?: Record<string, unknown>;
5
+ filename?: string;
6
+ mimetype?: string;
7
+ }
8
+ export interface Audio {
9
+ id: string;
10
+ filename: string;
11
+ originalName: string;
12
+ mimetype: string;
13
+ size: number;
14
+ duration?: number;
15
+ workspaceId: string;
16
+ url?: string;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+ export declare class AudioModule {
21
+ private sdk;
22
+ constructor(sdk: ChanlSDK);
23
+ /**
24
+ * Get the workspaceId from SDK config, throwing if not set.
25
+ */
26
+ private getWsId;
27
+ /**
28
+ * Upload an audio file
29
+ */
30
+ upload(file: Buffer | File, options?: AudioUploadOptions): Promise<ApiResponse<Audio>>;
31
+ /**
32
+ * Get audio by ID
33
+ */
34
+ getById(id: string): Promise<ApiResponse<Audio>>;
35
+ /**
36
+ * Get all audio files with optional filtering
37
+ */
38
+ getAll(params?: {
39
+ page?: number;
40
+ limit?: number;
41
+ }): Promise<ApiResponse<Audio[]>>;
42
+ /**
43
+ * Delete audio file
44
+ */
45
+ delete(id: string): Promise<ApiResponse<void>>;
46
+ }
47
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/modules/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,QAAQ;IAEjC;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAgC9B;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAQtD;;OAEG;IACG,MAAM,CACV,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAehC;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CAOrD"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AudioModule = void 0;
4
+ class AudioModule {
5
+ constructor(sdk) {
6
+ this.sdk = sdk;
7
+ }
8
+ /**
9
+ * Get the workspaceId from SDK config, throwing if not set.
10
+ */
11
+ getWsId() {
12
+ const wsId = this.sdk.getConfig().workspaceId;
13
+ if (!wsId)
14
+ throw new Error('workspaceId required for audio operations. Set it in ChanlSDK config.');
15
+ return wsId;
16
+ }
17
+ /**
18
+ * Upload an audio file
19
+ */
20
+ async upload(file, options) {
21
+ const wsId = this.getWsId();
22
+ const formData = new FormData();
23
+ if (file instanceof Buffer) {
24
+ // Determine filename from options or use default based on mimetype
25
+ let filename = options?.filename || "audio.unknown";
26
+ if (!options?.filename && options?.mimetype) {
27
+ const extension = options.mimetype.split("/")[1] || "unknown";
28
+ filename = `audio.${extension}`;
29
+ }
30
+ formData.append("audio", new Blob([file]), filename);
31
+ }
32
+ else {
33
+ formData.append("audio", file);
34
+ }
35
+ if (options?.metadata) {
36
+ formData.append("metadata", JSON.stringify(options.metadata));
37
+ }
38
+ return this.sdk.request("POST", `/api/v1/workspace/${wsId}/calls/upload`, formData, {
39
+ headers: {
40
+ "Content-Type": "multipart/form-data",
41
+ },
42
+ });
43
+ }
44
+ /**
45
+ * Get audio by ID
46
+ */
47
+ async getById(id) {
48
+ const wsId = this.getWsId();
49
+ return this.sdk.request("GET", `/api/v1/workspace/${wsId}/calls/${id}`);
50
+ }
51
+ /**
52
+ * Get all audio files with optional filtering
53
+ */
54
+ async getAll(params) {
55
+ const wsId = this.getWsId();
56
+ const queryParams = new URLSearchParams();
57
+ if (params?.page) {
58
+ queryParams.append("page", params.page.toString());
59
+ }
60
+ if (params?.limit) {
61
+ queryParams.append("limit", params.limit.toString());
62
+ }
63
+ const url = `/api/v1/workspace/${wsId}/calls${queryParams.toString() ? `?${queryParams.toString()}` : ""}`;
64
+ return this.sdk.request("GET", url);
65
+ }
66
+ /**
67
+ * Delete audio file
68
+ */
69
+ async delete(id) {
70
+ const wsId = this.getWsId();
71
+ return this.sdk.request("DELETE", `/api/v1/workspace/${wsId}/calls/${id}`);
72
+ }
73
+ }
74
+ exports.AudioModule = AudioModule;
75
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/modules/audio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { ChanlSDK } from '../client';
2
+ import { ApiResponse } from '../types/config';
3
+ export interface ApiKey {
4
+ id: string;
5
+ name: string;
6
+ key: string;
7
+ workspaceId: string;
8
+ userId: string;
9
+ permissions: string[];
10
+ createdAt: string;
11
+ lastUsed?: string;
12
+ }
13
+ export interface CreateApiKeyRequest {
14
+ name: string;
15
+ workspaceId: string;
16
+ userId: string;
17
+ permissions?: string[];
18
+ }
19
+ export interface AuthTokenResponse {
20
+ accessToken: string;
21
+ refreshToken: string;
22
+ expiresIn: number;
23
+ user: {
24
+ id: string;
25
+ email: string;
26
+ displayName?: string;
27
+ };
28
+ defaultWorkspaceId?: string;
29
+ workspaces?: Array<{
30
+ workspaceId: string;
31
+ name?: string;
32
+ role: string;
33
+ }>;
34
+ }
35
+ export declare class AuthModule {
36
+ private sdk;
37
+ constructor(sdk: ChanlSDK);
38
+ /**
39
+ * Exchange a Firebase ID token for platform JWT tokens.
40
+ * Used by CLI browser login flow.
41
+ */
42
+ exchangeFirebaseToken(firebaseToken: string): Promise<ApiResponse<AuthTokenResponse>>;
43
+ /**
44
+ * Refresh an access token using a refresh token.
45
+ */
46
+ refreshToken(refreshToken: string): Promise<ApiResponse<{
47
+ accessToken: string;
48
+ refreshToken: string;
49
+ expiresIn: number;
50
+ }>>;
51
+ /**
52
+ * Create a new API key
53
+ */
54
+ createApiKey(data: CreateApiKeyRequest): Promise<ApiResponse<ApiKey>>;
55
+ /**
56
+ * Get all API keys
57
+ */
58
+ getApiKeys(params?: {
59
+ workspaceId?: string;
60
+ userId?: string;
61
+ }): Promise<ApiResponse<ApiKey[]>>;
62
+ /**
63
+ * Revoke API key
64
+ */
65
+ revokeApiKey(keyId: string): Promise<ApiResponse<void>>;
66
+ /**
67
+ * Validate API key
68
+ */
69
+ validateApiKey(apiKey: string): Promise<ApiResponse<{
70
+ valid: boolean;
71
+ workspaceId?: string;
72
+ userId?: string;
73
+ permissions?: string[];
74
+ }>>;
75
+ }
76
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/modules/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,QAAQ;IAEjC;;;OAGG;IACG,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAM3F;;OAEG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5D,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IAMH;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAI3E;;OAEG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAclC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAI7D;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QACxD,KAAK,EAAE,OAAO,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC,CAAC;CAGJ"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthModule = void 0;
4
+ class AuthModule {
5
+ constructor(sdk) {
6
+ this.sdk = sdk;
7
+ }
8
+ /**
9
+ * Exchange a Firebase ID token for platform JWT tokens.
10
+ * Used by CLI browser login flow.
11
+ */
12
+ async exchangeFirebaseToken(firebaseToken) {
13
+ return this.sdk.request('POST', '/api/v1/auth/firebase/exchange', {
14
+ firebaseToken,
15
+ });
16
+ }
17
+ /**
18
+ * Refresh an access token using a refresh token.
19
+ */
20
+ async refreshToken(refreshToken) {
21
+ return this.sdk.request('POST', '/api/v1/auth/token/refresh', {
22
+ refreshToken,
23
+ });
24
+ }
25
+ /**
26
+ * Create a new API key
27
+ */
28
+ async createApiKey(data) {
29
+ return this.sdk.request('POST', '/api/v1/auth/api-keys', data);
30
+ }
31
+ /**
32
+ * Get all API keys
33
+ */
34
+ async getApiKeys(params) {
35
+ const queryParams = new URLSearchParams();
36
+ if (params?.workspaceId) {
37
+ queryParams.append('workspaceId', params.workspaceId);
38
+ }
39
+ if (params?.userId) {
40
+ queryParams.append('userId', params.userId);
41
+ }
42
+ const url = `/api/v1/auth/api-keys${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
43
+ return this.sdk.request('GET', url);
44
+ }
45
+ /**
46
+ * Revoke API key
47
+ */
48
+ async revokeApiKey(keyId) {
49
+ return this.sdk.request('DELETE', `/api/v1/auth/api-keys/${keyId}`);
50
+ }
51
+ /**
52
+ * Validate API key
53
+ */
54
+ async validateApiKey(apiKey) {
55
+ return this.sdk.request('POST', '/api/v1/auth/validate', { apiKey });
56
+ }
57
+ }
58
+ exports.AuthModule = AuthModule;
59
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/modules/auth.ts"],"names":[],"mappings":";;;AAsCA,MAAa,UAAU;IACrB,YAAoB,GAAa;QAAb,QAAG,GAAH,GAAG,CAAU;IAAG,CAAC;IAErC;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,aAAqB;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,gCAAgC,EAAE;YAChE,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,YAAoB;QAKrC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE;YAC5D,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,IAAyB;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAGhB;QACC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAE1C,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,GAAG,GAAG,wBAAwB,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjG,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QAMjC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;CACF;AAvED,gCAuEC"}