@getsupervisor/agents-studio-sdk 1.0.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ # Changelog
2
+
3
+ Todas las notas de versión generadas automáticamente por semantic-release aparecerán aquí.
package/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # @getsupervisor/conversation-sdk
2
+
3
+ SDK JS/TS para conectar con Conversational API.
4
+
5
+ ## Instalación
6
+
7
+ ```bash
8
+ npm i @getsupervisor/conversation-sdk
9
+ ```
10
+
11
+ ## Uso básico
12
+
13
+ ```ts
14
+ import { createClient } from '@getsupervisor/conversation-sdk';
15
+
16
+ const client = createClient({ baseUrl: 'http://localhost:3000/v1' });
17
+ const id = 'a3b2c1...';
18
+
19
+ // iniciar auth y obtener QR
20
+ const qr = await client.connections.auth(id);
21
+ console.log(qr.qr);
22
+
23
+ // escuchar eventos SSE
24
+ const off = client.connections.onEvents(id, (e) => console.log('evt', e.data));
25
+
26
+ // obtener estado
27
+ const state = await client.connections.getState(id);
28
+
29
+ // cerrar sesión
30
+ await client.connections.disconnect(id);
31
+ off();
32
+ ```
33
+
34
+ ## Configuración
35
+
36
+ ```ts
37
+ createClient({
38
+ baseUrl: '...',
39
+ headers: { Authorization: 'Bearer ...' },
40
+ timeoutMs: 35000,
41
+ retry: { maxRetries: 2, baseDelayMs: 300 },
42
+ });
43
+ ```
44
+
45
+ ## Errores tipados y reintentos
46
+
47
+ - HttpError(status, statusText, body)
48
+ - TimeoutError(ms)
49
+ - NetworkError(cause)
50
+ - Política de reintentos con backoff exponencial y jitter.
51
+
52
+ ## Compatibilidad
53
+
54
+ - Soporta ESM y CJS.
55
+ - Navegador y Node (requiere EventSource global o polyfill para SSE).
56
+
57
+ ..
package/dist/index.cjs ADDED
@@ -0,0 +1,318 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/index.ts
20
+ var index_exports = {};
21
+ __export(index_exports, {
22
+ HttpError: () => HttpError,
23
+ NetworkError: () => NetworkError,
24
+ TimeoutError: () => TimeoutError,
25
+ createAgentInstructionsApi: () => createAgentInstructionsApi,
26
+ createAgentKnowledgeApi: () => createAgentKnowledgeApi,
27
+ createAgentPhonesApi: () => createAgentPhonesApi,
28
+ createAgentsApi: () => createAgentsApi,
29
+ createClient: () => createClient,
30
+ createHttp: () => createHttp,
31
+ createToolsApi: () => createToolsApi,
32
+ createWorkspacesApi: () => createWorkspacesApi
33
+ });
34
+ module.exports = __toCommonJS(index_exports);
35
+
36
+ // src/errors.ts
37
+ var HttpError = class extends Error {
38
+ constructor(status, statusText, body, url) {
39
+ super(`HTTP ${status} ${statusText}`);
40
+ this.status = status;
41
+ this.statusText = statusText;
42
+ this.body = body;
43
+ this.url = url;
44
+ this.name = "HttpError";
45
+ }
46
+ };
47
+ var TimeoutError = class extends Error {
48
+ constructor(ms, url) {
49
+ super(`Timeout after ${ms}ms`);
50
+ this.ms = ms;
51
+ this.url = url;
52
+ this.name = "TimeoutError";
53
+ }
54
+ };
55
+ var NetworkError = class extends Error {
56
+ constructor(cause, url) {
57
+ super("Network error");
58
+ this.cause = cause;
59
+ this.url = url;
60
+ this.name = "NetworkError";
61
+ }
62
+ };
63
+
64
+ // src/http.ts
65
+ function sleep(ms) {
66
+ return new Promise((r) => setTimeout(r, ms));
67
+ }
68
+ async function withTimeout(p, ms, ab, url) {
69
+ return new Promise((resolve, reject) => {
70
+ const to = setTimeout(() => {
71
+ ab?.abort();
72
+ reject(new TimeoutError(ms, url));
73
+ }, ms);
74
+ p.then((v) => {
75
+ clearTimeout(to);
76
+ resolve(v);
77
+ }).catch((e) => {
78
+ clearTimeout(to);
79
+ reject(e);
80
+ });
81
+ });
82
+ }
83
+ async function withRetry(fn, policy) {
84
+ const max = policy?.maxRetries ?? 2;
85
+ const base = policy?.baseDelayMs ?? 300;
86
+ const maxDelay = policy?.maxDelayMs ?? 3e3;
87
+ const retryOn = policy?.retryOn ?? ((err) => err instanceof NetworkError || err instanceof HttpError && err.status >= 500);
88
+ let attempt = 0;
89
+ while (true) {
90
+ try {
91
+ return await fn(attempt);
92
+ } catch (e) {
93
+ if (attempt >= max || !retryOn(e, attempt)) throw e;
94
+ const delay = Math.min(maxDelay, base * 2 ** attempt) + Math.floor(Math.random() * 100);
95
+ await sleep(delay);
96
+ attempt += 1;
97
+ }
98
+ }
99
+ }
100
+ function createHttp(cfg) {
101
+ const base = cfg.baseUrl.replace(/\/$/, "");
102
+ const fx = cfg.fetchImpl ?? fetch;
103
+ const headers = cfg.headers ?? {};
104
+ const timeout = cfg.timeoutMs ?? 35e3;
105
+ const log = cfg.logger ?? {};
106
+ const retry = cfg.retry;
107
+ async function doFetch(url, init) {
108
+ const ab = new AbortController();
109
+ const req = async () => {
110
+ try {
111
+ const res = await withTimeout(
112
+ fx(url, { ...init, signal: ab.signal }),
113
+ timeout,
114
+ ab,
115
+ url
116
+ );
117
+ if (!res.ok) {
118
+ const body = await res.clone().json().catch(() => void 0);
119
+ throw new HttpError(res.status, res.statusText, body, url);
120
+ }
121
+ return res;
122
+ } catch (e) {
123
+ if (e.name === "AbortError") throw new TimeoutError(timeout, url);
124
+ if (e instanceof HttpError) throw e;
125
+ throw new NetworkError(e, url);
126
+ }
127
+ };
128
+ return withRetry(req, retry);
129
+ }
130
+ return { base, headers, timeout, log, retry, doFetch };
131
+ }
132
+
133
+ // src/api/agents.ts
134
+ function createAgentsApi(cfg) {
135
+ const { base, headers, doFetch } = createHttp(cfg);
136
+ return {
137
+ async get(agentId) {
138
+ const res = await doFetch(`${base}/v1/agents/${agentId}`, {
139
+ method: "GET",
140
+ headers
141
+ });
142
+ return res.json();
143
+ },
144
+ async delete(agentId) {
145
+ await doFetch(`${base}/v1/agents/${agentId}`, {
146
+ method: "DELETE",
147
+ headers
148
+ });
149
+ }
150
+ };
151
+ }
152
+
153
+ // src/api/agent-knowledge.ts
154
+ function createAgentKnowledgeApi(cfg) {
155
+ const { base, headers, doFetch } = createHttp(cfg);
156
+ const jsonHeaders = { "content-type": "application/json", ...headers };
157
+ return {
158
+ async upload(agentId, payload) {
159
+ const res = await doFetch(
160
+ `${base}/v1/agents/${agentId}/knowledge/upload`,
161
+ {
162
+ method: "POST",
163
+ headers: jsonHeaders,
164
+ body: JSON.stringify(payload)
165
+ }
166
+ );
167
+ return res.json();
168
+ },
169
+ async listBases(agentId) {
170
+ const res = await doFetch(
171
+ `${base}/v1/agents/${agentId}/knowledge/bases`,
172
+ {
173
+ method: "GET",
174
+ headers
175
+ }
176
+ );
177
+ return res.json();
178
+ },
179
+ async listUploads(agentId) {
180
+ const res = await doFetch(
181
+ `${base}/v1/agents/${agentId}/knowledge/uploads`,
182
+ {
183
+ method: "GET",
184
+ headers
185
+ }
186
+ );
187
+ return res.json();
188
+ }
189
+ };
190
+ }
191
+
192
+ // src/api/agent-instructions.ts
193
+ function createAgentInstructionsApi(cfg) {
194
+ const { base, headers, doFetch } = createHttp(cfg);
195
+ const jsonHeaders = { "content-type": "application/json", ...headers };
196
+ return {
197
+ async list(agentId, opts) {
198
+ const search = opts?.versionId ? `?versionId=${encodeURIComponent(opts.versionId)}` : "";
199
+ const res = await doFetch(
200
+ `${base}/v1/agents/${agentId}/instructions${search}`,
201
+ {
202
+ method: "GET",
203
+ headers
204
+ }
205
+ );
206
+ return res.json();
207
+ },
208
+ async create(agentId, payload) {
209
+ const res = await doFetch(`${base}/v1/agents/${agentId}/instructions`, {
210
+ method: "POST",
211
+ headers: jsonHeaders,
212
+ body: JSON.stringify(payload)
213
+ });
214
+ return res.json();
215
+ }
216
+ };
217
+ }
218
+
219
+ // src/api/agent-phones.ts
220
+ function createAgentPhonesApi(cfg) {
221
+ const { base, headers, doFetch } = createHttp(cfg);
222
+ const jsonHeaders = { "content-type": "application/json", ...headers };
223
+ return {
224
+ async connect(agentId, payload) {
225
+ const res = await doFetch(`${base}/v1/agents/${agentId}/phones`, {
226
+ method: "POST",
227
+ headers: jsonHeaders,
228
+ body: JSON.stringify(payload)
229
+ });
230
+ return res.json();
231
+ },
232
+ async disconnect(agentId, phoneId) {
233
+ await doFetch(`${base}/v1/agents/${agentId}/phones/${phoneId}`, {
234
+ method: "DELETE",
235
+ headers
236
+ });
237
+ }
238
+ };
239
+ }
240
+
241
+ // src/api/workspaces.ts
242
+ function createWorkspacesApi(cfg) {
243
+ const { base, headers, doFetch } = createHttp(cfg);
244
+ const jsonHeaders = { "content-type": "application/json", ...headers };
245
+ return {
246
+ async listPhones(workspaceId, opts) {
247
+ const search = opts?.channel ? `?channel=${opts.channel}` : "";
248
+ const res = await doFetch(
249
+ `${base}/v1/workspaces/${workspaceId}/phones${search}`,
250
+ {
251
+ method: "GET",
252
+ headers
253
+ }
254
+ );
255
+ return res.json();
256
+ },
257
+ async enable(workspaceId, payload) {
258
+ const res = await doFetch(`${base}/v1/workspaces/${workspaceId}/enable`, {
259
+ method: "POST",
260
+ headers: jsonHeaders,
261
+ body: JSON.stringify(payload)
262
+ });
263
+ return res.json();
264
+ }
265
+ };
266
+ }
267
+
268
+ // src/api/tools.ts
269
+ function createToolsApi(cfg) {
270
+ const { base, headers, doFetch } = createHttp(cfg);
271
+ const jsonHeaders = { "content-type": "application/json", ...headers };
272
+ return {
273
+ async list() {
274
+ const res = await doFetch(`${base}/v1/tools`, {
275
+ method: "GET",
276
+ headers
277
+ });
278
+ return res.json();
279
+ },
280
+ async execute(toolId, payload) {
281
+ const res = await doFetch(`${base}/v1/tools/${toolId}/execute`, {
282
+ method: "POST",
283
+ headers: jsonHeaders,
284
+ body: JSON.stringify(payload)
285
+ });
286
+ return res.json();
287
+ }
288
+ };
289
+ }
290
+
291
+ // src/client.ts
292
+ function createClient(cfg) {
293
+ return {
294
+ agents: {
295
+ ...createAgentsApi(cfg),
296
+ knowledge: createAgentKnowledgeApi(cfg),
297
+ instructions: createAgentInstructionsApi(cfg),
298
+ phones: createAgentPhonesApi(cfg)
299
+ },
300
+ workspaces: createWorkspacesApi(cfg),
301
+ tools: createToolsApi(cfg)
302
+ };
303
+ }
304
+ // Annotate the CommonJS export names for ESM import in node:
305
+ 0 && (module.exports = {
306
+ HttpError,
307
+ NetworkError,
308
+ TimeoutError,
309
+ createAgentInstructionsApi,
310
+ createAgentKnowledgeApi,
311
+ createAgentPhonesApi,
312
+ createAgentsApi,
313
+ createClient,
314
+ createHttp,
315
+ createToolsApi,
316
+ createWorkspacesApi
317
+ });
318
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/http.ts","../src/api/agents.ts","../src/api/agent-knowledge.ts","../src/api/agent-instructions.ts","../src/api/agent-phones.ts","../src/api/workspaces.ts","../src/api/tools.ts","../src/client.ts"],"sourcesContent":["export * from './api/agents';\nexport * from './api/agent-knowledge';\nexport * from './api/agent-instructions';\nexport * from './api/agent-phones';\nexport * from './api/workspaces';\nexport * from './api/tools';\nexport * from './client';\nexport * from './errors';\nexport * from './http';\nexport * from './types';\n","export class HttpError extends Error {\n constructor(\n public status: number,\n public statusText: string,\n public body?: unknown,\n public url?: string,\n ) {\n super(`HTTP ${status} ${statusText}`);\n this.name = 'HttpError';\n }\n}\n\nexport class TimeoutError extends Error {\n constructor(\n public ms: number,\n public url?: string,\n ) {\n super(`Timeout after ${ms}ms`);\n this.name = 'TimeoutError';\n }\n}\n\nexport class NetworkError extends Error {\n constructor(\n public cause?: unknown,\n public url?: string,\n ) {\n super('Network error');\n this.name = 'NetworkError';\n }\n}\n\nexport type RetryPolicy = {\n maxRetries?: number; // default 2\n baseDelayMs?: number; // default 300\n maxDelayMs?: number; // default 3000\n retryOn?: (err: unknown, attempt: number) => boolean; // default: network or 5xx\n};\n","import { ClientConfig } from './types';\nimport { HttpError, NetworkError, RetryPolicy, TimeoutError } from './errors';\n\nfunction sleep(ms: number) {\n return new Promise((r) => setTimeout(r, ms));\n}\n\nasync function withTimeout<T>(\n p: Promise<T>,\n ms: number,\n ab?: AbortController,\n url?: string,\n) {\n return new Promise<T>((resolve, reject) => {\n const to = setTimeout(() => {\n ab?.abort();\n reject(new TimeoutError(ms, url));\n }, ms);\n p.then((v) => {\n clearTimeout(to);\n resolve(v);\n }).catch((e) => {\n clearTimeout(to);\n reject(e);\n });\n });\n}\n\nasync function withRetry<T>(\n fn: (attempt: number) => Promise<T>,\n policy?: RetryPolicy,\n): Promise<T> {\n const max = policy?.maxRetries ?? 2;\n const base = policy?.baseDelayMs ?? 300;\n const maxDelay = policy?.maxDelayMs ?? 3000;\n const retryOn =\n policy?.retryOn ??\n ((err) =>\n err instanceof NetworkError ||\n (err instanceof HttpError && err.status >= 500));\n let attempt = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n try {\n return await fn(attempt);\n } catch (e) {\n if (attempt >= max || !retryOn(e, attempt)) throw e;\n const delay =\n Math.min(maxDelay, base * 2 ** attempt) +\n Math.floor(Math.random() * 100);\n await sleep(delay);\n attempt += 1;\n }\n }\n}\n\nexport function createHttp(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const base = cfg.baseUrl.replace(/\\/$/, '');\n const fx = cfg.fetchImpl ?? fetch;\n const headers = cfg.headers ?? {};\n const timeout = cfg.timeoutMs ?? 35000;\n const log = cfg.logger ?? {};\n const retry = cfg.retry;\n\n async function doFetch(url: string, init: RequestInit) {\n const ab = new AbortController();\n const req = async () => {\n try {\n const res = await withTimeout(\n fx(url, { ...init, signal: ab.signal }),\n timeout,\n ab,\n url,\n );\n if (!res.ok) {\n const body = await res\n .clone()\n .json()\n .catch(() => undefined);\n throw new HttpError(res.status, res.statusText, body, url);\n }\n return res;\n } catch (e: any) {\n if (e.name === 'AbortError') throw new TimeoutError(timeout, url);\n if (e instanceof HttpError) throw e;\n throw new NetworkError(e, url);\n }\n };\n return withRetry(req, retry);\n }\n\n return { base, headers, timeout, log, retry, doFetch };\n}\n","import type { AgentDetail, ClientConfig } from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentsApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, headers, doFetch } = createHttp(cfg);\n\n return {\n async get(agentId: string): Promise<AgentDetail> {\n const res = await doFetch(`${base}/v1/agents/${agentId}`, {\n method: 'GET',\n headers,\n });\n return res.json();\n },\n async delete(agentId: string): Promise<void> {\n await doFetch(`${base}/v1/agents/${agentId}`, {\n method: 'DELETE',\n headers,\n });\n },\n };\n}\n","import type {\n AgentKnowledgeBasesResponse,\n AgentKnowledgeUploadsResponse,\n ClientConfig,\n KnowledgeUploadRequest,\n KnowledgeUploadResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentKnowledgeApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, headers, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json', ...headers };\n\n return {\n async upload(\n agentId: string,\n payload: KnowledgeUploadRequest,\n ): Promise<KnowledgeUploadResponse> {\n const res = await doFetch(\n `${base}/v1/agents/${agentId}/knowledge/upload`,\n {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n },\n );\n return res.json();\n },\n async listBases(agentId: string): Promise<AgentKnowledgeBasesResponse> {\n const res = await doFetch(\n `${base}/v1/agents/${agentId}/knowledge/bases`,\n {\n method: 'GET',\n headers,\n },\n );\n return res.json();\n },\n async listUploads(agentId: string): Promise<AgentKnowledgeUploadsResponse> {\n const res = await doFetch(\n `${base}/v1/agents/${agentId}/knowledge/uploads`,\n {\n method: 'GET',\n headers,\n },\n );\n return res.json();\n },\n };\n}\n","import type {\n AgentInstructionsResponse,\n ClientConfig,\n CreateInstructionRequest,\n InstructionCreatedResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentInstructionsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, headers, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json', ...headers };\n\n return {\n async list(\n agentId: string,\n opts?: { versionId?: string },\n ): Promise<AgentInstructionsResponse> {\n const search = opts?.versionId\n ? `?versionId=${encodeURIComponent(opts.versionId)}`\n : '';\n const res = await doFetch(\n `${base}/v1/agents/${agentId}/instructions${search}`,\n {\n method: 'GET',\n headers,\n },\n );\n return res.json();\n },\n async create(\n agentId: string,\n payload: CreateInstructionRequest,\n ): Promise<InstructionCreatedResponse> {\n const res = await doFetch(`${base}/v1/agents/${agentId}/instructions`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type {\n ClientConfig,\n ConnectPhoneRequest,\n PhoneAssignmentResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createAgentPhonesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, headers, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json', ...headers };\n\n return {\n async connect(\n agentId: string,\n payload: ConnectPhoneRequest,\n ): Promise<PhoneAssignmentResponse> {\n const res = await doFetch(`${base}/v1/agents/${agentId}/phones`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n async disconnect(agentId: string, phoneId: string): Promise<void> {\n await doFetch(`${base}/v1/agents/${agentId}/phones/${phoneId}`, {\n method: 'DELETE',\n headers,\n });\n },\n };\n}\n","import type {\n ClientConfig,\n WorkspaceEnableRequest,\n WorkspaceEnableResponse,\n WorkspacePhoneChannel,\n WorkspacePhonesResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createWorkspacesApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const { base, headers, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json', ...headers };\n\n return {\n async listPhones(\n workspaceId: string,\n opts?: { channel?: WorkspacePhoneChannel },\n ): Promise<WorkspacePhonesResponse> {\n const search = opts?.channel ? `?channel=${opts.channel}` : '';\n const res = await doFetch(\n `${base}/v1/workspaces/${workspaceId}/phones${search}`,\n {\n method: 'GET',\n headers,\n },\n );\n return res.json();\n },\n async enable(\n workspaceId: string,\n payload: WorkspaceEnableRequest,\n ): Promise<WorkspaceEnableResponse> {\n const res = await doFetch(`${base}/v1/workspaces/${workspaceId}/enable`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type {\n ClientConfig,\n ExecuteToolRequest,\n ExecuteToolResponse,\n ToolsCatalogResponse,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport { createHttp } from '../http';\n\nexport function createToolsApi(cfg: ClientConfig & { retry?: RetryPolicy }) {\n const { base, headers, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json', ...headers };\n\n return {\n async list(): Promise<ToolsCatalogResponse> {\n const res = await doFetch(`${base}/v1/tools`, {\n method: 'GET',\n headers,\n });\n return res.json();\n },\n async execute(\n toolId: string,\n payload: ExecuteToolRequest,\n ): Promise<ExecuteToolResponse> {\n const res = await doFetch(`${base}/v1/tools/${toolId}/execute`, {\n method: 'POST',\n headers: jsonHeaders,\n body: JSON.stringify(payload),\n });\n return res.json();\n },\n };\n}\n","import type { ClientConfig } from './types';\nimport type { RetryPolicy } from './errors';\nimport { createAgentsApi } from './api/agents';\nimport { createAgentKnowledgeApi } from './api/agent-knowledge';\nimport { createAgentInstructionsApi } from './api/agent-instructions';\nimport { createAgentPhonesApi } from './api/agent-phones';\nimport { createWorkspacesApi } from './api/workspaces';\nimport { createToolsApi } from './api/tools';\n\nexport function createClient(cfg: ClientConfig & { retry?: RetryPolicy }) {\n return {\n agents: {\n ...createAgentsApi(cfg),\n knowledge: createAgentKnowledgeApi(cfg),\n instructions: createAgentInstructionsApi(cfg),\n phones: createAgentPhonesApi(cfg),\n },\n workspaces: createWorkspacesApi(cfg),\n tools: createToolsApi(cfg),\n };\n}\n"],"mappings":"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","names":[]}