@getsupervisor/agents-studio-sdk 1.0.0 → 1.2.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 +37 -0
- package/README.md +27 -0
- package/dist/index.cjs +225 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +396 -102
- package/dist/index.d.ts +396 -102
- package/dist/index.js +221 -46
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
// src/entities/agent.ts
|
|
2
|
+
var bindAgentInstructions = (api, agentId) => ({
|
|
3
|
+
list(opts) {
|
|
4
|
+
return api.list(agentId, opts);
|
|
5
|
+
},
|
|
6
|
+
create(payload) {
|
|
7
|
+
return api.create(agentId, payload);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
var bindAgentKnowledge = (api, agentId) => ({
|
|
11
|
+
upload(payload) {
|
|
12
|
+
return api.upload(agentId, payload);
|
|
13
|
+
},
|
|
14
|
+
listBases() {
|
|
15
|
+
return api.listBases(agentId);
|
|
16
|
+
},
|
|
17
|
+
listUploads() {
|
|
18
|
+
return api.listUploads(agentId);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
var bindAgentPhones = (api, agentId) => ({
|
|
22
|
+
connect(payload) {
|
|
23
|
+
return api.connect(agentId, payload);
|
|
24
|
+
},
|
|
25
|
+
disconnect(phoneId) {
|
|
26
|
+
return api.disconnect(agentId, phoneId);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
var createAgentEntity = (dto, options) => {
|
|
30
|
+
const { instructionsApi, knowledgeApi, phonesApi, reload } = options;
|
|
31
|
+
const entity = {
|
|
32
|
+
...dto,
|
|
33
|
+
instructions: bindAgentInstructions(instructionsApi, dto.agentId),
|
|
34
|
+
knowledge: bindAgentKnowledge(knowledgeApi, dto.agentId),
|
|
35
|
+
phones: bindAgentPhones(phonesApi, dto.agentId),
|
|
36
|
+
async refresh() {
|
|
37
|
+
return reload(dto.agentId);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
return Object.freeze(entity);
|
|
41
|
+
};
|
|
42
|
+
|
|
1
43
|
// src/errors.ts
|
|
2
44
|
var HttpError = class extends Error {
|
|
3
45
|
constructor(status, statusText, body, url) {
|
|
@@ -65,16 +107,48 @@ async function withRetry(fn, policy) {
|
|
|
65
107
|
function createHttp(cfg) {
|
|
66
108
|
const base = cfg.baseUrl.replace(/\/$/, "");
|
|
67
109
|
const fx = cfg.fetchImpl ?? fetch;
|
|
68
|
-
const
|
|
110
|
+
const baseHeaders = { ...cfg.headers ?? {} };
|
|
69
111
|
const timeout = cfg.timeoutMs ?? 35e3;
|
|
70
112
|
const log = cfg.logger ?? {};
|
|
71
113
|
const retry = cfg.retry;
|
|
72
|
-
|
|
114
|
+
const WORKSPACE_HEADER = "x-workspace-id";
|
|
115
|
+
const resolveWorkspaceId = () => cfg.getWorkspaceId?.() ?? cfg.workspaceId ?? void 0;
|
|
116
|
+
const normalizeHeaders = (headers) => {
|
|
117
|
+
if (!headers) {
|
|
118
|
+
return {};
|
|
119
|
+
}
|
|
120
|
+
if (headers instanceof Headers) {
|
|
121
|
+
const result = {};
|
|
122
|
+
headers.forEach((value, key) => {
|
|
123
|
+
result[key] = value;
|
|
124
|
+
});
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
if (Array.isArray(headers)) {
|
|
128
|
+
return headers.reduce((acc, [key, value]) => {
|
|
129
|
+
acc[key] = value;
|
|
130
|
+
return acc;
|
|
131
|
+
}, {});
|
|
132
|
+
}
|
|
133
|
+
return { ...headers };
|
|
134
|
+
};
|
|
135
|
+
const buildHeaders = (extra) => {
|
|
136
|
+
const workspaceId = resolveWorkspaceId();
|
|
137
|
+
const normalizedExtra = normalizeHeaders(extra);
|
|
138
|
+
const headersWithWorkspace = workspaceId ? { [WORKSPACE_HEADER]: workspaceId } : {};
|
|
139
|
+
return {
|
|
140
|
+
...baseHeaders,
|
|
141
|
+
...headersWithWorkspace,
|
|
142
|
+
...normalizedExtra
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
async function doFetch(url, init = {}) {
|
|
73
146
|
const ab = new AbortController();
|
|
74
147
|
const req = async () => {
|
|
75
148
|
try {
|
|
149
|
+
const finalHeaders = buildHeaders(init.headers);
|
|
76
150
|
const res = await withTimeout(
|
|
77
|
-
fx(url, { ...init, signal: ab.signal }),
|
|
151
|
+
fx(url, { ...init, headers: finalHeaders, signal: ab.signal }),
|
|
78
152
|
timeout,
|
|
79
153
|
ab,
|
|
80
154
|
url
|
|
@@ -92,33 +166,94 @@ function createHttp(cfg) {
|
|
|
92
166
|
};
|
|
93
167
|
return withRetry(req, retry);
|
|
94
168
|
}
|
|
95
|
-
return {
|
|
169
|
+
return {
|
|
170
|
+
base,
|
|
171
|
+
timeout,
|
|
172
|
+
log,
|
|
173
|
+
retry,
|
|
174
|
+
doFetch,
|
|
175
|
+
buildHeaders,
|
|
176
|
+
resolveWorkspaceId
|
|
177
|
+
};
|
|
96
178
|
}
|
|
97
179
|
|
|
98
180
|
// src/api/agents.ts
|
|
99
|
-
function createAgentsApi(cfg) {
|
|
100
|
-
const { base,
|
|
181
|
+
function createAgentsApi(cfg, relatedApis) {
|
|
182
|
+
const { base, doFetch } = createHttp(cfg);
|
|
183
|
+
const jsonHeaders = { "content-type": "application/json" };
|
|
184
|
+
const listAgents = async () => {
|
|
185
|
+
const res = await doFetch(`${base}/v1/agents`, {
|
|
186
|
+
method: "GET"
|
|
187
|
+
});
|
|
188
|
+
return res.json();
|
|
189
|
+
};
|
|
190
|
+
const getAgentDetail = async (agentId) => {
|
|
191
|
+
const res = await doFetch(`${base}/v1/agents/${agentId}`, {
|
|
192
|
+
method: "GET"
|
|
193
|
+
});
|
|
194
|
+
return res.json();
|
|
195
|
+
};
|
|
196
|
+
const createAgent = async (payload) => {
|
|
197
|
+
const res = await doFetch(`${base}/v1/agents`, {
|
|
198
|
+
method: "POST",
|
|
199
|
+
body: JSON.stringify(payload),
|
|
200
|
+
headers: jsonHeaders
|
|
201
|
+
});
|
|
202
|
+
return res.json();
|
|
203
|
+
};
|
|
204
|
+
const updateAgent = async (agentId, payload) => {
|
|
205
|
+
const res = await doFetch(`${base}/v1/agents/${agentId}`, {
|
|
206
|
+
method: "PATCH",
|
|
207
|
+
body: JSON.stringify(payload),
|
|
208
|
+
headers: jsonHeaders
|
|
209
|
+
});
|
|
210
|
+
return res.json();
|
|
211
|
+
};
|
|
212
|
+
const deleteAgent = async (agentId) => {
|
|
213
|
+
await doFetch(`${base}/v1/agents/${agentId}`, {
|
|
214
|
+
method: "DELETE"
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
const baseApi = {
|
|
218
|
+
list: listAgents,
|
|
219
|
+
get: getAgentDetail,
|
|
220
|
+
create: createAgent,
|
|
221
|
+
update: updateAgent,
|
|
222
|
+
delete: deleteAgent
|
|
223
|
+
};
|
|
224
|
+
if (!relatedApis) {
|
|
225
|
+
return baseApi;
|
|
226
|
+
}
|
|
227
|
+
const wrapAgent = (detail) => createAgentEntity(detail, {
|
|
228
|
+
instructionsApi: relatedApis.instructionsApi,
|
|
229
|
+
knowledgeApi: relatedApis.knowledgeApi,
|
|
230
|
+
phonesApi: relatedApis.phonesApi,
|
|
231
|
+
reload: async (agentId) => {
|
|
232
|
+
const latest = await getAgentDetail(agentId);
|
|
233
|
+
return wrapAgent(latest);
|
|
234
|
+
}
|
|
235
|
+
});
|
|
101
236
|
return {
|
|
237
|
+
...baseApi,
|
|
102
238
|
async get(agentId) {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
headers
|
|
106
|
-
});
|
|
107
|
-
return res.json();
|
|
239
|
+
const detail = await getAgentDetail(agentId);
|
|
240
|
+
return wrapAgent(detail);
|
|
108
241
|
},
|
|
109
|
-
async
|
|
110
|
-
await
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
242
|
+
async create(payload) {
|
|
243
|
+
const detail = await createAgent(payload);
|
|
244
|
+
return wrapAgent(detail);
|
|
245
|
+
},
|
|
246
|
+
async update(agentId, payload) {
|
|
247
|
+
const detail = await updateAgent(agentId, payload);
|
|
248
|
+
return wrapAgent(detail);
|
|
114
249
|
}
|
|
115
250
|
};
|
|
116
251
|
}
|
|
117
252
|
|
|
118
253
|
// src/api/agent-knowledge.ts
|
|
119
254
|
function createAgentKnowledgeApi(cfg) {
|
|
120
|
-
const { base,
|
|
121
|
-
const jsonHeaders = { "content-type": "application/json"
|
|
255
|
+
const { base, doFetch } = createHttp(cfg);
|
|
256
|
+
const jsonHeaders = { "content-type": "application/json" };
|
|
122
257
|
return {
|
|
123
258
|
async upload(agentId, payload) {
|
|
124
259
|
const res = await doFetch(
|
|
@@ -135,8 +270,7 @@ function createAgentKnowledgeApi(cfg) {
|
|
|
135
270
|
const res = await doFetch(
|
|
136
271
|
`${base}/v1/agents/${agentId}/knowledge/bases`,
|
|
137
272
|
{
|
|
138
|
-
method: "GET"
|
|
139
|
-
headers
|
|
273
|
+
method: "GET"
|
|
140
274
|
}
|
|
141
275
|
);
|
|
142
276
|
return res.json();
|
|
@@ -145,8 +279,7 @@ function createAgentKnowledgeApi(cfg) {
|
|
|
145
279
|
const res = await doFetch(
|
|
146
280
|
`${base}/v1/agents/${agentId}/knowledge/uploads`,
|
|
147
281
|
{
|
|
148
|
-
method: "GET"
|
|
149
|
-
headers
|
|
282
|
+
method: "GET"
|
|
150
283
|
}
|
|
151
284
|
);
|
|
152
285
|
return res.json();
|
|
@@ -156,16 +289,15 @@ function createAgentKnowledgeApi(cfg) {
|
|
|
156
289
|
|
|
157
290
|
// src/api/agent-instructions.ts
|
|
158
291
|
function createAgentInstructionsApi(cfg) {
|
|
159
|
-
const { base,
|
|
160
|
-
const jsonHeaders = { "content-type": "application/json"
|
|
292
|
+
const { base, doFetch } = createHttp(cfg);
|
|
293
|
+
const jsonHeaders = { "content-type": "application/json" };
|
|
161
294
|
return {
|
|
162
295
|
async list(agentId, opts) {
|
|
163
296
|
const search = opts?.versionId ? `?versionId=${encodeURIComponent(opts.versionId)}` : "";
|
|
164
297
|
const res = await doFetch(
|
|
165
298
|
`${base}/v1/agents/${agentId}/instructions${search}`,
|
|
166
299
|
{
|
|
167
|
-
method: "GET"
|
|
168
|
-
headers
|
|
300
|
+
method: "GET"
|
|
169
301
|
}
|
|
170
302
|
);
|
|
171
303
|
return res.json();
|
|
@@ -183,8 +315,8 @@ function createAgentInstructionsApi(cfg) {
|
|
|
183
315
|
|
|
184
316
|
// src/api/agent-phones.ts
|
|
185
317
|
function createAgentPhonesApi(cfg) {
|
|
186
|
-
const { base,
|
|
187
|
-
const jsonHeaders = { "content-type": "application/json"
|
|
318
|
+
const { base, doFetch } = createHttp(cfg);
|
|
319
|
+
const jsonHeaders = { "content-type": "application/json" };
|
|
188
320
|
return {
|
|
189
321
|
async connect(agentId, payload) {
|
|
190
322
|
const res = await doFetch(`${base}/v1/agents/${agentId}/phones`, {
|
|
@@ -196,8 +328,7 @@ function createAgentPhonesApi(cfg) {
|
|
|
196
328
|
},
|
|
197
329
|
async disconnect(agentId, phoneId) {
|
|
198
330
|
await doFetch(`${base}/v1/agents/${agentId}/phones/${phoneId}`, {
|
|
199
|
-
method: "DELETE"
|
|
200
|
-
headers
|
|
331
|
+
method: "DELETE"
|
|
201
332
|
});
|
|
202
333
|
}
|
|
203
334
|
};
|
|
@@ -205,16 +336,15 @@ function createAgentPhonesApi(cfg) {
|
|
|
205
336
|
|
|
206
337
|
// src/api/workspaces.ts
|
|
207
338
|
function createWorkspacesApi(cfg) {
|
|
208
|
-
const { base,
|
|
209
|
-
const jsonHeaders = { "content-type": "application/json"
|
|
339
|
+
const { base, doFetch } = createHttp(cfg);
|
|
340
|
+
const jsonHeaders = { "content-type": "application/json" };
|
|
210
341
|
return {
|
|
211
342
|
async listPhones(workspaceId, opts) {
|
|
212
343
|
const search = opts?.channel ? `?channel=${opts.channel}` : "";
|
|
213
344
|
const res = await doFetch(
|
|
214
345
|
`${base}/v1/workspaces/${workspaceId}/phones${search}`,
|
|
215
346
|
{
|
|
216
|
-
method: "GET"
|
|
217
|
-
headers
|
|
347
|
+
method: "GET"
|
|
218
348
|
}
|
|
219
349
|
);
|
|
220
350
|
return res.json();
|
|
@@ -232,13 +362,12 @@ function createWorkspacesApi(cfg) {
|
|
|
232
362
|
|
|
233
363
|
// src/api/tools.ts
|
|
234
364
|
function createToolsApi(cfg) {
|
|
235
|
-
const { base,
|
|
236
|
-
const jsonHeaders = { "content-type": "application/json"
|
|
365
|
+
const { base, doFetch } = createHttp(cfg);
|
|
366
|
+
const jsonHeaders = { "content-type": "application/json" };
|
|
237
367
|
return {
|
|
238
368
|
async list() {
|
|
239
369
|
const res = await doFetch(`${base}/v1/tools`, {
|
|
240
|
-
method: "GET"
|
|
241
|
-
headers
|
|
370
|
+
method: "GET"
|
|
242
371
|
});
|
|
243
372
|
return res.json();
|
|
244
373
|
},
|
|
@@ -254,22 +383,68 @@ function createToolsApi(cfg) {
|
|
|
254
383
|
}
|
|
255
384
|
|
|
256
385
|
// src/client.ts
|
|
257
|
-
function createClient(
|
|
258
|
-
|
|
386
|
+
function createClient(initialCfg) {
|
|
387
|
+
const runtimeCfg = {
|
|
388
|
+
...initialCfg
|
|
389
|
+
};
|
|
390
|
+
const resolveWorkspaceId = () => runtimeCfg.workspaceId ?? runtimeCfg.getWorkspaceId?.();
|
|
391
|
+
const setWorkspaceId = (workspaceId) => {
|
|
392
|
+
runtimeCfg.workspaceId = workspaceId;
|
|
393
|
+
};
|
|
394
|
+
const setWorkspaceGetter = (getter) => {
|
|
395
|
+
runtimeCfg.getWorkspaceId = getter;
|
|
396
|
+
};
|
|
397
|
+
const instructionsApi = createAgentInstructionsApi(runtimeCfg);
|
|
398
|
+
const knowledgeApi = createAgentKnowledgeApi(runtimeCfg);
|
|
399
|
+
const phonesApi = createAgentPhonesApi(runtimeCfg);
|
|
400
|
+
const agentsApi = createAgentsApi(runtimeCfg, {
|
|
401
|
+
instructionsApi,
|
|
402
|
+
knowledgeApi,
|
|
403
|
+
phonesApi
|
|
404
|
+
});
|
|
405
|
+
const apis = {
|
|
259
406
|
agents: {
|
|
260
|
-
...
|
|
261
|
-
knowledge:
|
|
262
|
-
instructions:
|
|
263
|
-
phones:
|
|
407
|
+
...agentsApi,
|
|
408
|
+
knowledge: knowledgeApi,
|
|
409
|
+
instructions: instructionsApi,
|
|
410
|
+
phones: phonesApi
|
|
264
411
|
},
|
|
265
|
-
workspaces: createWorkspacesApi(
|
|
266
|
-
tools: createToolsApi(
|
|
412
|
+
workspaces: createWorkspacesApi(runtimeCfg),
|
|
413
|
+
tools: createToolsApi(runtimeCfg)
|
|
414
|
+
};
|
|
415
|
+
return {
|
|
416
|
+
...apis,
|
|
417
|
+
workspace: {
|
|
418
|
+
get: resolveWorkspaceId,
|
|
419
|
+
set(id) {
|
|
420
|
+
setWorkspaceGetter(void 0);
|
|
421
|
+
setWorkspaceId(id);
|
|
422
|
+
},
|
|
423
|
+
useGetter(getter) {
|
|
424
|
+
setWorkspaceGetter(getter);
|
|
425
|
+
},
|
|
426
|
+
clear() {
|
|
427
|
+
setWorkspaceGetter(void 0);
|
|
428
|
+
setWorkspaceId(void 0);
|
|
429
|
+
},
|
|
430
|
+
scoped(id) {
|
|
431
|
+
return createClient({
|
|
432
|
+
...initialCfg,
|
|
433
|
+
workspaceId: id,
|
|
434
|
+
getWorkspaceId: void 0
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
}
|
|
267
438
|
};
|
|
268
439
|
}
|
|
269
440
|
export {
|
|
270
441
|
HttpError,
|
|
271
442
|
NetworkError,
|
|
272
443
|
TimeoutError,
|
|
444
|
+
bindAgentInstructions,
|
|
445
|
+
bindAgentKnowledge,
|
|
446
|
+
bindAgentPhones,
|
|
447
|
+
createAgentEntity,
|
|
273
448
|
createAgentInstructionsApi,
|
|
274
449
|
createAgentKnowledgeApi,
|
|
275
450
|
createAgentPhonesApi,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../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 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":[]}
|
|
1
|
+
{"version":3,"sources":["../src/entities/agent.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":["import type {\n AgentDetail,\n ConnectPhoneRequest,\n CreateInstructionRequest,\n KnowledgeUploadRequest,\n} from '../types';\nimport type { createAgentInstructionsApi } from '../api/agent-instructions';\nimport type { createAgentKnowledgeApi } from '../api/agent-knowledge';\nimport type { createAgentPhonesApi } from '../api/agent-phones';\n\ntype AgentInstructionsApi = ReturnType<typeof createAgentInstructionsApi>;\ntype AgentKnowledgeApi = ReturnType<typeof createAgentKnowledgeApi>;\ntype AgentPhonesApi = ReturnType<typeof createAgentPhonesApi>;\n\ntype AgentInstructionsHelper = ReturnType<typeof bindAgentInstructions>;\ntype AgentKnowledgeHelper = ReturnType<typeof bindAgentKnowledge>;\ntype AgentPhonesHelper = ReturnType<typeof bindAgentPhones>;\n\nexport interface AgentEntity extends AgentDetail {\n instructions: AgentInstructionsHelper;\n knowledge: AgentKnowledgeHelper;\n phones: AgentPhonesHelper;\n refresh(): Promise<AgentEntity>;\n}\n\nexport type AgentEntityFactoryOptions = {\n instructionsApi: AgentInstructionsApi;\n knowledgeApi: AgentKnowledgeApi;\n phonesApi: AgentPhonesApi;\n reload(agentId: string): Promise<AgentEntity>;\n};\n\nexport const bindAgentInstructions = (\n api: AgentInstructionsApi,\n agentId: string,\n) => ({\n list(opts?: { versionId?: string }) {\n return api.list(agentId, opts);\n },\n create(payload: CreateInstructionRequest) {\n return api.create(agentId, payload);\n },\n});\n\nexport const bindAgentKnowledge = (\n api: AgentKnowledgeApi,\n agentId: string,\n) => ({\n upload(payload: KnowledgeUploadRequest) {\n return api.upload(agentId, payload);\n },\n listBases() {\n return api.listBases(agentId);\n },\n listUploads() {\n return api.listUploads(agentId);\n },\n});\n\nexport const bindAgentPhones = (api: AgentPhonesApi, agentId: string) => ({\n connect(payload: ConnectPhoneRequest) {\n return api.connect(agentId, payload);\n },\n disconnect(phoneId: string) {\n return api.disconnect(agentId, phoneId);\n },\n});\n\nexport const createAgentEntity = (\n dto: AgentDetail,\n options: AgentEntityFactoryOptions,\n): AgentEntity => {\n const { instructionsApi, knowledgeApi, phonesApi, reload } = options;\n\n const entity: AgentEntity = {\n ...dto,\n instructions: bindAgentInstructions(instructionsApi, dto.agentId),\n knowledge: bindAgentKnowledge(knowledgeApi, dto.agentId),\n phones: bindAgentPhones(phonesApi, dto.agentId),\n async refresh() {\n return reload(dto.agentId);\n },\n };\n\n return Object.freeze(entity);\n};\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 baseHeaders = { ...(cfg.headers ?? {}) };\n const timeout = cfg.timeoutMs ?? 35000;\n const log = cfg.logger ?? {};\n const retry = cfg.retry;\n const WORKSPACE_HEADER = 'x-workspace-id';\n\n const resolveWorkspaceId = () =>\n cfg.getWorkspaceId?.() ?? cfg.workspaceId ?? undefined;\n\n const normalizeHeaders = (headers?: HeadersInit): Record<string, string> => {\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n const result: Record<string, string> = {};\n headers.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n }\n\n if (Array.isArray(headers)) {\n return headers.reduce<Record<string, string>>((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n }\n\n return { ...headers } as Record<string, string>;\n };\n\n const buildHeaders = (extra?: HeadersInit): Record<string, string> => {\n const workspaceId = resolveWorkspaceId();\n const normalizedExtra = normalizeHeaders(extra);\n const headersWithWorkspace = workspaceId\n ? { [WORKSPACE_HEADER]: workspaceId }\n : {};\n\n return {\n ...baseHeaders,\n ...headersWithWorkspace,\n ...normalizedExtra,\n };\n };\n\n async function doFetch(url: string, init: RequestInit = {}) {\n const ab = new AbortController();\n const req = async () => {\n try {\n const finalHeaders = buildHeaders(init.headers);\n const res = await withTimeout(\n fx(url, { ...init, headers: finalHeaders, 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 {\n base,\n timeout,\n log,\n retry,\n doFetch,\n buildHeaders,\n resolveWorkspaceId,\n };\n}\n","import type {\n AgentDetail,\n AgentListResponse,\n ClientConfig,\n CreateAgentRequest,\n UpdateAgentRequest,\n} from '../types';\nimport type { RetryPolicy } from '../errors';\nimport type { AgentEntity } from '../entities/agent';\nimport type { createAgentInstructionsApi } from './agent-instructions';\nimport type { createAgentKnowledgeApi } from './agent-knowledge';\nimport type { createAgentPhonesApi } from './agent-phones';\nimport { createAgentEntity } from '../entities/agent';\nimport { createHttp } from '../http';\n\ntype AgentEntityDependencies = {\n instructionsApi: ReturnType<typeof createAgentInstructionsApi>;\n knowledgeApi: ReturnType<typeof createAgentKnowledgeApi>;\n phonesApi: ReturnType<typeof createAgentPhonesApi>;\n};\n\nexport type AgentsApi = {\n list(): Promise<AgentListResponse>;\n get(agentId: string): Promise<AgentDetail>;\n create(payload: CreateAgentRequest): Promise<AgentDetail>;\n update(agentId: string, payload: UpdateAgentRequest): Promise<AgentDetail>;\n delete(agentId: string): Promise<void>;\n};\n\nexport type AgentsApiWithEntities = Omit<\n AgentsApi,\n 'get' | 'create' | 'update'\n> & {\n get(agentId: string): Promise<AgentEntity>;\n create(payload: CreateAgentRequest): Promise<AgentEntity>;\n update(agentId: string, payload: UpdateAgentRequest): Promise<AgentEntity>;\n};\n\nexport function createAgentsApi(\n cfg: ClientConfig & { retry?: RetryPolicy },\n relatedApis?: AgentEntityDependencies,\n): AgentsApi | AgentsApiWithEntities {\n const { base, doFetch } = createHttp(cfg);\n\n const jsonHeaders = { 'content-type': 'application/json' } as const;\n\n const listAgents = async (): Promise<AgentListResponse> => {\n const res = await doFetch(`${base}/v1/agents`, {\n method: 'GET',\n });\n return res.json();\n };\n\n const getAgentDetail = async (agentId: string): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/v1/agents/${agentId}`, {\n method: 'GET',\n });\n return res.json();\n };\n\n const createAgent = async (\n payload: CreateAgentRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/v1/agents`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const updateAgent = async (\n agentId: string,\n payload: UpdateAgentRequest,\n ): Promise<AgentDetail> => {\n const res = await doFetch(`${base}/v1/agents/${agentId}`, {\n method: 'PATCH',\n body: JSON.stringify(payload),\n headers: jsonHeaders,\n });\n return res.json();\n };\n\n const deleteAgent = async (agentId: string): Promise<void> => {\n await doFetch(`${base}/v1/agents/${agentId}`, {\n method: 'DELETE',\n });\n };\n\n const baseApi: AgentsApi = {\n list: listAgents,\n get: getAgentDetail,\n create: createAgent,\n update: updateAgent,\n delete: deleteAgent,\n };\n\n if (!relatedApis) {\n return baseApi;\n }\n\n const wrapAgent = (detail: AgentDetail): AgentEntity =>\n createAgentEntity(detail, {\n instructionsApi: relatedApis.instructionsApi,\n knowledgeApi: relatedApis.knowledgeApi,\n phonesApi: relatedApis.phonesApi,\n reload: async (agentId: string) => {\n const latest = await getAgentDetail(agentId);\n return wrapAgent(latest);\n },\n });\n\n return {\n ...baseApi,\n async get(agentId: string) {\n const detail = await getAgentDetail(agentId);\n return wrapAgent(detail);\n },\n async create(payload: CreateAgentRequest) {\n const detail = await createAgent(payload);\n return wrapAgent(detail);\n },\n async update(agentId: string, payload: UpdateAgentRequest) {\n const detail = await updateAgent(agentId, payload);\n return wrapAgent(detail);\n },\n } satisfies AgentsApiWithEntities;\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, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\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 },\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 },\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, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\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 },\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, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\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 });\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, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\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 },\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, doFetch } = createHttp(cfg);\n const jsonHeaders = { 'content-type': 'application/json' };\n\n return {\n async list(): Promise<ToolsCatalogResponse> {\n const res = await doFetch(`${base}/v1/tools`, {\n method: 'GET',\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 { AgentsApiWithEntities } from './api/agents';\nimport type { ClientConfig } from './types';\nimport type { RetryPolicy } from './errors';\nimport { createAgentInstructionsApi } from './api/agent-instructions';\nimport { createAgentKnowledgeApi } from './api/agent-knowledge';\nimport { createAgentPhonesApi } from './api/agent-phones';\nimport { createAgentsApi } from './api/agents';\nimport { createToolsApi } from './api/tools';\nimport { createWorkspacesApi } from './api/workspaces';\n\nexport function createClient(\n initialCfg: ClientConfig & { retry?: RetryPolicy },\n) {\n const runtimeCfg: ClientConfig & { retry?: RetryPolicy } = {\n ...initialCfg,\n };\n\n const resolveWorkspaceId = () =>\n runtimeCfg.workspaceId ?? runtimeCfg.getWorkspaceId?.();\n\n const setWorkspaceId = (workspaceId?: string) => {\n runtimeCfg.workspaceId = workspaceId;\n };\n\n const setWorkspaceGetter = (\n getter?: (() => string | undefined) | undefined,\n ) => {\n runtimeCfg.getWorkspaceId = getter;\n };\n\n const instructionsApi = createAgentInstructionsApi(runtimeCfg);\n const knowledgeApi = createAgentKnowledgeApi(runtimeCfg);\n const phonesApi = createAgentPhonesApi(runtimeCfg);\n\n const agentsApi = createAgentsApi(runtimeCfg, {\n instructionsApi,\n knowledgeApi,\n phonesApi,\n }) as AgentsApiWithEntities;\n\n const apis = {\n agents: {\n ...agentsApi,\n knowledge: knowledgeApi,\n instructions: instructionsApi,\n phones: phonesApi,\n },\n workspaces: createWorkspacesApi(runtimeCfg),\n tools: createToolsApi(runtimeCfg),\n };\n\n return {\n ...apis,\n workspace: {\n get: resolveWorkspaceId,\n set(id?: string) {\n setWorkspaceGetter(undefined);\n setWorkspaceId(id);\n },\n useGetter(getter?: () => string | undefined) {\n setWorkspaceGetter(getter);\n },\n clear() {\n setWorkspaceGetter(undefined);\n setWorkspaceId(undefined);\n },\n scoped(id: string) {\n return createClient({\n ...initialCfg,\n workspaceId: id,\n getWorkspaceId: undefined,\n });\n },\n },\n };\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getsupervisor/agents-studio-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"build": "tsup src/index.ts --format esm,cjs --dts --sourcemap",
|
|
24
24
|
"lint": "eslint \"src/**/*.{ts,tsx}\"",
|
|
25
25
|
"test": "vitest",
|
|
26
|
-
"types:gen": "npx -y openapi-typescript
|
|
26
|
+
"types:gen": "npx -y openapi-typescript ../../../../docs/api-spec/openapi.yaml -o src/openapi-types.ts --export-type",
|
|
27
27
|
"release": "semantic-release"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|