@chanl/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 (138) hide show
  1. package/README.md +59 -0
  2. package/dist/adapters/openai.d.ts +106 -0
  3. package/dist/adapters/openai.d.ts.map +1 -0
  4. package/dist/adapters/openai.js +185 -0
  5. package/dist/adapters/openai.js.map +1 -0
  6. package/dist/client.d.ts +74 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +293 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/errors/index.d.ts +179 -0
  11. package/dist/errors/index.d.ts.map +1 -0
  12. package/dist/errors/index.js +319 -0
  13. package/dist/errors/index.js.map +1 -0
  14. package/dist/index.d.ts +38 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +76 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/live/index.d.ts +9 -0
  19. package/dist/live/index.d.ts.map +1 -0
  20. package/dist/live/index.js +16 -0
  21. package/dist/live/index.js.map +1 -0
  22. package/dist/live/live-call.d.ts +48 -0
  23. package/dist/live/live-call.d.ts.map +1 -0
  24. package/dist/live/live-call.js +148 -0
  25. package/dist/live/live-call.js.map +1 -0
  26. package/dist/live/live-chat.d.ts +71 -0
  27. package/dist/live/live-chat.d.ts.map +1 -0
  28. package/dist/live/live-chat.js +95 -0
  29. package/dist/live/live-chat.js.map +1 -0
  30. package/dist/live/live-execution.d.ts +55 -0
  31. package/dist/live/live-execution.d.ts.map +1 -0
  32. package/dist/live/live-execution.js +170 -0
  33. package/dist/live/live-execution.js.map +1 -0
  34. package/dist/live/typed-emitter.d.ts +15 -0
  35. package/dist/live/typed-emitter.d.ts.map +1 -0
  36. package/dist/live/typed-emitter.js +40 -0
  37. package/dist/live/typed-emitter.js.map +1 -0
  38. package/dist/live/types.d.ts +24 -0
  39. package/dist/live/types.d.ts.map +1 -0
  40. package/dist/live/types.js +6 -0
  41. package/dist/live/types.js.map +1 -0
  42. package/dist/modules/agents.d.ts +378 -0
  43. package/dist/modules/agents.d.ts.map +1 -0
  44. package/dist/modules/agents.js +259 -0
  45. package/dist/modules/agents.js.map +1 -0
  46. package/dist/modules/alerts.d.ts +43 -0
  47. package/dist/modules/alerts.d.ts.map +1 -0
  48. package/dist/modules/alerts.js +56 -0
  49. package/dist/modules/alerts.js.map +1 -0
  50. package/dist/modules/audio.d.ts +47 -0
  51. package/dist/modules/audio.d.ts.map +1 -0
  52. package/dist/modules/audio.js +75 -0
  53. package/dist/modules/audio.js.map +1 -0
  54. package/dist/modules/auth.d.ts +76 -0
  55. package/dist/modules/auth.d.ts.map +1 -0
  56. package/dist/modules/auth.js +59 -0
  57. package/dist/modules/auth.js.map +1 -0
  58. package/dist/modules/calls.d.ts +825 -0
  59. package/dist/modules/calls.d.ts.map +1 -0
  60. package/dist/modules/calls.js +398 -0
  61. package/dist/modules/calls.js.map +1 -0
  62. package/dist/modules/chat.d.ts +165 -0
  63. package/dist/modules/chat.d.ts.map +1 -0
  64. package/dist/modules/chat.js +169 -0
  65. package/dist/modules/chat.js.map +1 -0
  66. package/dist/modules/health.d.ts +45 -0
  67. package/dist/modules/health.d.ts.map +1 -0
  68. package/dist/modules/health.js +22 -0
  69. package/dist/modules/health.js.map +1 -0
  70. package/dist/modules/knowledge.d.ts +202 -0
  71. package/dist/modules/knowledge.d.ts.map +1 -0
  72. package/dist/modules/knowledge.js +147 -0
  73. package/dist/modules/knowledge.js.map +1 -0
  74. package/dist/modules/mcp.d.ts +140 -0
  75. package/dist/modules/mcp.d.ts.map +1 -0
  76. package/dist/modules/mcp.js +110 -0
  77. package/dist/modules/mcp.js.map +1 -0
  78. package/dist/modules/memory.d.ts +163 -0
  79. package/dist/modules/memory.d.ts.map +1 -0
  80. package/dist/modules/memory.js +208 -0
  81. package/dist/modules/memory.js.map +1 -0
  82. package/dist/modules/personas.d.ts +168 -0
  83. package/dist/modules/personas.d.ts.map +1 -0
  84. package/dist/modules/personas.js +106 -0
  85. package/dist/modules/personas.js.map +1 -0
  86. package/dist/modules/prompts.d.ts +128 -0
  87. package/dist/modules/prompts.d.ts.map +1 -0
  88. package/dist/modules/prompts.js +93 -0
  89. package/dist/modules/prompts.js.map +1 -0
  90. package/dist/modules/scenarios.d.ts +294 -0
  91. package/dist/modules/scenarios.d.ts.map +1 -0
  92. package/dist/modules/scenarios.js +349 -0
  93. package/dist/modules/scenarios.js.map +1 -0
  94. package/dist/modules/scorecard.d.ts +642 -0
  95. package/dist/modules/scorecard.d.ts.map +1 -0
  96. package/dist/modules/scorecard.js +327 -0
  97. package/dist/modules/scorecard.js.map +1 -0
  98. package/dist/modules/tools.d.ts +222 -0
  99. package/dist/modules/tools.d.ts.map +1 -0
  100. package/dist/modules/tools.js +302 -0
  101. package/dist/modules/tools.js.map +1 -0
  102. package/dist/modules/toolsets.d.ts +173 -0
  103. package/dist/modules/toolsets.d.ts.map +1 -0
  104. package/dist/modules/toolsets.js +216 -0
  105. package/dist/modules/toolsets.js.map +1 -0
  106. package/dist/modules/transcript.d.ts +60 -0
  107. package/dist/modules/transcript.d.ts.map +1 -0
  108. package/dist/modules/transcript.js +69 -0
  109. package/dist/modules/transcript.js.map +1 -0
  110. package/dist/modules/workspace.d.ts +48 -0
  111. package/dist/modules/workspace.d.ts.map +1 -0
  112. package/dist/modules/workspace.js +49 -0
  113. package/dist/modules/workspace.js.map +1 -0
  114. package/dist/types/api.d.ts +8 -0
  115. package/dist/types/api.d.ts.map +1 -0
  116. package/dist/types/api.js +25 -0
  117. package/dist/types/api.js.map +1 -0
  118. package/dist/types/config.d.ts +70 -0
  119. package/dist/types/config.d.ts.map +1 -0
  120. package/dist/types/config.js +3 -0
  121. package/dist/types/config.js.map +1 -0
  122. package/dist/types/memory.d.ts +243 -0
  123. package/dist/types/memory.d.ts.map +1 -0
  124. package/dist/types/memory.js +9 -0
  125. package/dist/types/memory.js.map +1 -0
  126. package/dist/types/tool-calls.d.ts +61 -0
  127. package/dist/types/tool-calls.d.ts.map +1 -0
  128. package/dist/types/tool-calls.js +9 -0
  129. package/dist/types/tool-calls.js.map +1 -0
  130. package/dist/types/tools.d.ts +321 -0
  131. package/dist/types/tools.d.ts.map +1 -0
  132. package/dist/types/tools.js +9 -0
  133. package/dist/types/tools.js.map +1 -0
  134. package/dist/types/toolsets.d.ts +149 -0
  135. package/dist/types/toolsets.d.ts.map +1 -0
  136. package/dist/types/toolsets.js +8 -0
  137. package/dist/types/toolsets.js.map +1 -0
  138. package/package.json +60 -0
@@ -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":";;;AAsBA,MAAa,WAAW;IACtB,YAAoB,GAAa;QAAb,QAAG,GAAH,GAAG,CAAU;IAAG,CAAC;IAErC;;OAEG;IACK,OAAO;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,IAAmB,EACnB,OAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEhC,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;YAC3B,mEAAmE;YACnE,IAAI,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,eAAe,CAAC;YACpD,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;gBAC9D,QAAQ,GAAG,SAAS,SAAS,EAAE,CAAC;YAClC,CAAC;YACD,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAY,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CACrB,MAAM,EACN,qBAAqB,IAAI,eAAe,EACxC,QAAQ,EACR;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,qBAAqB;aACtC;SACF,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CACrB,KAAK,EACL,qBAAqB,IAAI,UAAU,EAAE,EAAE,CACxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,MAGC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAE1C,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,qBAAqB,IAAI,SAAS,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3G,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CACrB,QAAQ,EACR,qBAAqB,IAAI,UAAU,EAAE,EAAE,CACxC,CAAC;IACJ,CAAC;CACF;AA9FD,kCA8FC"}
@@ -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"}