@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
package/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # @chanl/sdk
2
+
3
+ TypeScript SDK for the [Chanl AI](https://chanl.ai) platform.
4
+
5
+ Build, connect, and monitor AI agents for customer experience.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @chanl/sdk
11
+ ```
12
+
13
+ ## Quick Start
14
+
15
+ ```typescript
16
+ import { ChanlSDK } from '@chanl/sdk';
17
+
18
+ const chanl = new ChanlSDK({
19
+ apiKey: 'your-api-key',
20
+ baseUrl: 'https://platform.chanl.ai',
21
+ });
22
+
23
+ // List agents
24
+ const agents = await chanl.agents.list();
25
+
26
+ // Chat with an agent
27
+ const response = await chanl.chat.send(agentId, {
28
+ message: 'Hello!',
29
+ });
30
+
31
+ // Search knowledge base
32
+ const results = await chanl.knowledge.search({ query: 'FAQ' });
33
+ ```
34
+
35
+ ## Modules
36
+
37
+ | Module | Description |
38
+ |--------|-------------|
39
+ | `agents` | Manage AI agents |
40
+ | `tools` | MCP tools and toolsets |
41
+ | `scenarios` | Test scenarios and simulations |
42
+ | `knowledge` | Knowledge base (RAG) |
43
+ | `memory` | Agent memory |
44
+ | `chat` | Chat sessions |
45
+ | `calls` | Call analytics and transcripts |
46
+ | `scorecards` | Call evaluation |
47
+ | `prompts` | Prompt templates |
48
+ | `personas` | Test personas |
49
+ | `mcp` | MCP server configuration |
50
+
51
+ ## Documentation
52
+
53
+ - [Chanl Platform](https://chanl.ai)
54
+ - [API Reference](https://chanl.ai/docs)
55
+ - [GitHub](https://github.com/chanl-ai/chanl-sdk)
56
+
57
+ ## License
58
+
59
+ MIT
@@ -0,0 +1,106 @@
1
+ /**
2
+ * OpenAI Adapter for @chanl-ai/sdk
3
+ *
4
+ * TDD Phase: GREEN - Implementation to make tests pass
5
+ *
6
+ * Provides integration with OpenAI's function calling format:
7
+ * 1. Convert Chanl tools to OpenAI ChatCompletionTool format
8
+ * 2. Execute tool calls from OpenAI responses
9
+ */
10
+ import { ChanlSDK } from '../client';
11
+ /**
12
+ * OpenAI function definition
13
+ */
14
+ export interface OpenAIFunction {
15
+ name: string;
16
+ description: string;
17
+ parameters: Record<string, unknown>;
18
+ }
19
+ /**
20
+ * OpenAI ChatCompletionTool format
21
+ */
22
+ export interface OpenAIChatCompletionTool {
23
+ type: 'function';
24
+ function: OpenAIFunction;
25
+ }
26
+ /**
27
+ * OpenAI tool call from assistant response
28
+ */
29
+ export interface OpenAIToolCall {
30
+ id: string;
31
+ type: 'function';
32
+ function: {
33
+ name: string;
34
+ arguments: string;
35
+ };
36
+ }
37
+ /**
38
+ * Tool output for OpenAI messages
39
+ * Matches OpenAI's ChatCompletionToolMessageParam
40
+ */
41
+ export interface ToolOutput {
42
+ tool_call_id: string;
43
+ role: 'tool';
44
+ content: string;
45
+ }
46
+ /**
47
+ * Options for fetching tools
48
+ */
49
+ export interface GetToolsOptions {
50
+ /** Filter by tag */
51
+ tag?: string;
52
+ }
53
+ /**
54
+ * Adapter to integrate Chanl tools with OpenAI's function calling
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const adapter = new OpenAIAdapter(sdk, 'ws_abc123');
59
+ *
60
+ * // Get tools as OpenAI functions
61
+ * const tools = await adapter.getToolsAsOpenAIFunctions();
62
+ *
63
+ * // Use with OpenAI
64
+ * const response = await openai.chat.completions.create({
65
+ * model: 'gpt-4',
66
+ * messages: [...],
67
+ * tools,
68
+ * });
69
+ *
70
+ * // Execute tool calls from response
71
+ * if (response.choices[0].message.tool_calls) {
72
+ * const results = await adapter.executeToolCalls(
73
+ * response.choices[0].message.tool_calls
74
+ * );
75
+ * }
76
+ * ```
77
+ */
78
+ export declare class OpenAIAdapter {
79
+ private sdk;
80
+ /** Cached tools for lookup during execution */
81
+ private toolsCache;
82
+ constructor(sdk: ChanlSDK);
83
+ /**
84
+ * Convert Chanl tools to OpenAI function calling format
85
+ *
86
+ * @param options - Optional filters for which tools to include
87
+ * @returns Array of OpenAI ChatCompletionTool objects
88
+ */
89
+ getToolsAsOpenAIFunctions(options?: GetToolsOptions): Promise<OpenAIChatCompletionTool[]>;
90
+ /**
91
+ * Execute tool calls from an OpenAI response
92
+ *
93
+ * @param toolCalls - Array of tool calls from OpenAI assistant message
94
+ * @returns Array of tool outputs ready for OpenAI messages
95
+ */
96
+ executeToolCalls(toolCalls: OpenAIToolCall[]): Promise<ToolOutput[]>;
97
+ /**
98
+ * Convert a single Chanl tool to OpenAI function format
99
+ */
100
+ private convertToolToOpenAI;
101
+ /**
102
+ * Execute a single tool call
103
+ */
104
+ private executeSingleToolCall;
105
+ }
106
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAOrC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,aAAa;IAKtB,OAAO,CAAC,GAAG;IAJb,+CAA+C;IAC/C,OAAO,CAAC,UAAU,CAAgC;gBAGxC,GAAG,EAAE,QAAQ;IAGvB;;;;;OAKG;IACG,yBAAyB,CAC7B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAwBtC;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAoB1E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;YACW,qBAAqB;CAuFpC"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ /**
3
+ * OpenAI Adapter for @chanl-ai/sdk
4
+ *
5
+ * TDD Phase: GREEN - Implementation to make tests pass
6
+ *
7
+ * Provides integration with OpenAI's function calling format:
8
+ * 1. Convert Chanl tools to OpenAI ChatCompletionTool format
9
+ * 2. Execute tool calls from OpenAI responses
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OpenAIAdapter = void 0;
13
+ /**
14
+ * Adapter to integrate Chanl tools with OpenAI's function calling
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const adapter = new OpenAIAdapter(sdk, 'ws_abc123');
19
+ *
20
+ * // Get tools as OpenAI functions
21
+ * const tools = await adapter.getToolsAsOpenAIFunctions();
22
+ *
23
+ * // Use with OpenAI
24
+ * const response = await openai.chat.completions.create({
25
+ * model: 'gpt-4',
26
+ * messages: [...],
27
+ * tools,
28
+ * });
29
+ *
30
+ * // Execute tool calls from response
31
+ * if (response.choices[0].message.tool_calls) {
32
+ * const results = await adapter.executeToolCalls(
33
+ * response.choices[0].message.tool_calls
34
+ * );
35
+ * }
36
+ * ```
37
+ */
38
+ class OpenAIAdapter {
39
+ constructor(sdk) {
40
+ this.sdk = sdk;
41
+ /** Cached tools for lookup during execution */
42
+ this.toolsCache = new Map();
43
+ }
44
+ /**
45
+ * Convert Chanl tools to OpenAI function calling format
46
+ *
47
+ * @param options - Optional filters for which tools to include
48
+ * @returns Array of OpenAI ChatCompletionTool objects
49
+ */
50
+ async getToolsAsOpenAIFunctions(options = {}) {
51
+ const filters = {
52
+ isEnabled: true,
53
+ };
54
+ if (options.tag) {
55
+ filters.tag = options.tag;
56
+ }
57
+ const response = await this.sdk.tools.list(filters);
58
+ if (!response.success || !response.data?.tools) {
59
+ return [];
60
+ }
61
+ // Cache tools for later execution
62
+ this.toolsCache.clear();
63
+ for (const tool of response.data.tools) {
64
+ this.toolsCache.set(tool.name, tool);
65
+ }
66
+ return response.data.tools.map((tool) => this.convertToolToOpenAI(tool));
67
+ }
68
+ /**
69
+ * Execute tool calls from an OpenAI response
70
+ *
71
+ * @param toolCalls - Array of tool calls from OpenAI assistant message
72
+ * @returns Array of tool outputs ready for OpenAI messages
73
+ */
74
+ async executeToolCalls(toolCalls) {
75
+ if (toolCalls.length === 0) {
76
+ return [];
77
+ }
78
+ // Refresh cache if empty
79
+ if (this.toolsCache.size === 0) {
80
+ await this.getToolsAsOpenAIFunctions();
81
+ }
82
+ const results = [];
83
+ for (const toolCall of toolCalls) {
84
+ const result = await this.executeSingleToolCall(toolCall);
85
+ results.push(result);
86
+ }
87
+ return results;
88
+ }
89
+ /**
90
+ * Convert a single Chanl tool to OpenAI function format
91
+ */
92
+ convertToolToOpenAI(tool) {
93
+ return {
94
+ type: 'function',
95
+ function: {
96
+ name: tool.name,
97
+ description: tool.description,
98
+ parameters: tool.inputSchema,
99
+ },
100
+ };
101
+ }
102
+ /**
103
+ * Execute a single tool call
104
+ */
105
+ async executeSingleToolCall(toolCall) {
106
+ const { id, function: func } = toolCall;
107
+ const { name, arguments: argsString } = func;
108
+ // Find the tool
109
+ const tool = this.toolsCache.get(name);
110
+ if (!tool) {
111
+ return {
112
+ tool_call_id: id,
113
+ role: 'tool',
114
+ content: JSON.stringify({
115
+ error: `Tool '${name}' not found`,
116
+ }),
117
+ };
118
+ }
119
+ // Parse arguments
120
+ let args;
121
+ try {
122
+ args = JSON.parse(argsString);
123
+ }
124
+ catch {
125
+ return {
126
+ tool_call_id: id,
127
+ role: 'tool',
128
+ content: JSON.stringify({
129
+ error: `Invalid JSON arguments: ${argsString}`,
130
+ }),
131
+ };
132
+ }
133
+ // Execute the tool
134
+ try {
135
+ const response = await this.sdk.tools.execute(tool.id, args);
136
+ if (!response.success) {
137
+ return {
138
+ tool_call_id: id,
139
+ role: 'tool',
140
+ content: JSON.stringify({
141
+ error: response.message ?? 'Tool execution failed',
142
+ }),
143
+ };
144
+ }
145
+ const execution = response.data;
146
+ // Handle undefined execution data
147
+ if (!execution) {
148
+ return {
149
+ tool_call_id: id,
150
+ role: 'tool',
151
+ content: JSON.stringify({
152
+ error: 'No execution data returned',
153
+ }),
154
+ };
155
+ }
156
+ // Check if execution failed
157
+ if (!execution.success) {
158
+ return {
159
+ tool_call_id: id,
160
+ role: 'tool',
161
+ content: JSON.stringify({
162
+ error: execution.error ?? 'Execution failed',
163
+ }),
164
+ };
165
+ }
166
+ // Return successful output
167
+ return {
168
+ tool_call_id: id,
169
+ role: 'tool',
170
+ content: JSON.stringify(execution.data ?? {}),
171
+ };
172
+ }
173
+ catch (error) {
174
+ return {
175
+ tool_call_id: id,
176
+ role: 'tool',
177
+ content: JSON.stringify({
178
+ error: error instanceof Error ? error.message : 'Unknown execution error',
179
+ }),
180
+ };
181
+ }
182
+ }
183
+ }
184
+ exports.OpenAIAdapter = OpenAIAdapter;
185
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { ChanlConfig, RequestConfig, ApiResponse } from "./types/config";
2
+ import { AudioModule } from "./modules/audio";
3
+ import { TranscriptModule } from "./modules/transcript";
4
+ import { ScorecardModule } from "./modules/scorecard";
5
+ import { WorkspaceModule } from "./modules/workspace";
6
+ import { AlertModule } from "./modules/alerts";
7
+ import { AuthModule } from "./modules/auth";
8
+ import { HealthModule } from "./modules/health";
9
+ import { PromptsModule } from "./modules/prompts";
10
+ import { ToolsModule } from "./modules/tools";
11
+ import { ToolsetsModule } from "./modules/toolsets";
12
+ import { ScenariosModule } from "./modules/scenarios";
13
+ import { AgentsModule } from "./modules/agents";
14
+ import { PersonasModule } from "./modules/personas";
15
+ import { CallsModule } from "./modules/calls";
16
+ import { McpModule } from "./modules/mcp";
17
+ import { KnowledgeModule } from "./modules/knowledge";
18
+ import { MemoryModule } from "./modules/memory";
19
+ import { ChatModule } from "./modules/chat";
20
+ export declare class ChanlSDK {
21
+ private config;
22
+ readonly audio: AudioModule;
23
+ readonly transcript: TranscriptModule;
24
+ readonly scorecard: ScorecardModule;
25
+ readonly workspace: WorkspaceModule;
26
+ readonly alerts: AlertModule;
27
+ readonly auth: AuthModule;
28
+ readonly health: HealthModule;
29
+ readonly prompts: PromptsModule;
30
+ readonly tools: ToolsModule;
31
+ readonly toolsets: ToolsetsModule;
32
+ readonly scenarios: ScenariosModule;
33
+ readonly agents: AgentsModule;
34
+ readonly personas: PersonasModule;
35
+ readonly calls: CallsModule;
36
+ readonly mcp: McpModule;
37
+ readonly knowledge: KnowledgeModule;
38
+ readonly memory: MemoryModule;
39
+ readonly chat: ChatModule;
40
+ constructor(config: ChanlConfig);
41
+ /**
42
+ * Make a request to the API
43
+ */
44
+ request<T = unknown>(method: string, url: string, data?: unknown, config?: RequestConfig): Promise<ApiResponse<T>>;
45
+ /**
46
+ * Make a streaming request that returns the raw Response.
47
+ *
48
+ * Unlike `request()`, this does NOT parse JSON or apply timeout.
49
+ * The caller reads `response.body` via `getReader()`.
50
+ * Used for SSE / chunked-transfer endpoints (e.g., chat streaming).
51
+ */
52
+ requestStream(method: string, url: string, data?: unknown): Promise<Response>;
53
+ /**
54
+ * Recursively normalize _id → id in response data.
55
+ * Skips if id already exists to avoid overwriting.
56
+ */
57
+ private normalizeIds;
58
+ /**
59
+ * Update authentication credentials
60
+ */
61
+ updateAuth(authConfig: {
62
+ apiKey?: string;
63
+ jwtToken?: string;
64
+ }): void;
65
+ /**
66
+ * Get current configuration
67
+ */
68
+ getConfig(): ChanlConfig;
69
+ /**
70
+ * Enable/disable debug logging
71
+ */
72
+ setDebug(enabled: boolean): void;
73
+ }
74
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}