@getsupervisor/agents-studio-sdk 1.10.0 → 1.11.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 +20 -0
- package/README.md +23 -0
- package/dist/index.cjs +177 -94
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +85 -1
- package/dist/index.d.ts +85 -1
- package/dist/index.js +175 -94
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## v1.10.0
|
|
2
|
+
|
|
3
|
+
## [1.10.0](https://github.com/julio-supervisor/agents-studio-be/compare/v1.9.0...v1.10.0) (2025-10-17)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **badges:** agregar archivo SVG de badge de cobertura ([9a880d4](https://github.com/julio-supervisor/agents-studio-be/commit/9a880d4e5f6983ab441aa04371ee5c49ee69de16))
|
|
8
|
+
* **ci:** add coverage badge generation and update README with coverage metrics ([ce21547](https://github.com/julio-supervisor/agents-studio-be/commit/ce21547440a70536fb461526dc8673c8e91ca1fc))
|
|
9
|
+
* **ci:** add NODE_AUTH_TOKEN build argument for Docker image ([5711a10](https://github.com/julio-supervisor/agents-studio-be/commit/5711a106667262e83b3598c71a7aa85b7468d3d2))
|
|
10
|
+
* **ci:** update coverage badge generation and enhance README with CI badges ([f65f7df](https://github.com/julio-supervisor/agents-studio-be/commit/f65f7df6d6eb40f401bbee0e9c9cc25dbce98476))
|
|
11
|
+
* **instructions:** implement instruction management module ([48f2a5e](https://github.com/julio-supervisor/agents-studio-be/commit/48f2a5e6549606707b2571a0844d433d8b8a8dc9))
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **ci:** update coverage badge generation action and README to reflect new badge path ([0ba765c](https://github.com/julio-supervisor/agents-studio-be/commit/0ba765c67c7bba37aa5fbb2f75f0e0eb2d53cd93))
|
|
16
|
+
* **ci:** update coverage badge generation paths for consistency ([fec0e57](https://github.com/julio-supervisor/agents-studio-be/commit/fec0e57bd7e1f2e9de01058da89271b0a542a7b4))
|
|
17
|
+
* **docs:** actualizar descripciones de instrucciones en la especificación OpenAPI ([5f8a36f](https://github.com/julio-supervisor/agents-studio-be/commit/5f8a36f9ceab3b39d6f81a51ef9500d33eb5713a))
|
|
18
|
+
* **docs:** corregir la ruta del badge de cobertura en el README ([049c28f](https://github.com/julio-supervisor/agents-studio-be/commit/049c28fa4323f82b43616d92fd262309f8d84efa))
|
|
19
|
+
|
|
20
|
+
|
|
1
21
|
## v1.9.0
|
|
2
22
|
|
|
3
23
|
## [1.9.0](https://github.com/julio-supervisor/agents-studio-be/compare/v1.8.0...v1.9.0) (2025-10-16)
|
package/README.md
CHANGED
|
@@ -32,6 +32,29 @@ await client.agents
|
|
|
32
32
|
.instructions('version-1')
|
|
33
33
|
.create({ order: 1, content: 'Saluda con empatía' });
|
|
34
34
|
|
|
35
|
+
// administrar blueprints por versión
|
|
36
|
+
const blueprints = client.agents.blueprints(agent.agentId);
|
|
37
|
+
await blueprints
|
|
38
|
+
.version('version-1')
|
|
39
|
+
.create({
|
|
40
|
+
languageId: 'es-MX',
|
|
41
|
+
personalityName: 'Embajador de marca',
|
|
42
|
+
personalityRole: 'Consultor de adopción',
|
|
43
|
+
targetAudience: 'Usuarios nuevos',
|
|
44
|
+
mainGoal: 'Incrementar la activación',
|
|
45
|
+
personalityInitialGreeting: '¡Hola! Soy tu asistente de onboarding.',
|
|
46
|
+
personalityMessageStyleId: 'style-uuid',
|
|
47
|
+
personalityToneStyleId: 'tone-uuid',
|
|
48
|
+
requiredData: [{ key: 'industry', label: 'Industria' }],
|
|
49
|
+
criticalRules: ['Nunca compartas precios internos'],
|
|
50
|
+
topicsAllowed: ['onboarding', 'soporte'],
|
|
51
|
+
topicsForbidden: ['facturación'],
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// los helpers del entity también exponen blueprints
|
|
55
|
+
const agentBlueprint = await agent.blueprints.version('version-1').get();
|
|
56
|
+
console.log(agentBlueprint.personalityName);
|
|
57
|
+
|
|
35
58
|
// catálogo y recursos de tools
|
|
36
59
|
const tools = await client.tools.list({ agentType: 'chat' });
|
|
37
60
|
await client.tools.uploadResource(tools.data[0].identifier, formData);
|
package/dist/index.cjs
CHANGED
|
@@ -22,11 +22,13 @@ __export(index_exports, {
|
|
|
22
22
|
HttpError: () => HttpError,
|
|
23
23
|
NetworkError: () => NetworkError,
|
|
24
24
|
TimeoutError: () => TimeoutError,
|
|
25
|
+
bindAgentBlueprints: () => bindAgentBlueprints,
|
|
25
26
|
bindAgentInstructions: () => bindAgentInstructions,
|
|
26
27
|
bindAgentPhones: () => bindAgentPhones,
|
|
27
28
|
bindAgentSchedule: () => bindAgentSchedule,
|
|
28
29
|
bindAgentTags: () => bindAgentTags,
|
|
29
30
|
bindAgentVersions: () => bindAgentVersions,
|
|
31
|
+
createAgentBlueprintsApi: () => createAgentBlueprintsApi,
|
|
30
32
|
createAgentEntity: () => createAgentEntity,
|
|
31
33
|
createAgentInstructionsApi: () => createAgentInstructionsApi,
|
|
32
34
|
createAgentPhonesApi: () => createAgentPhonesApi,
|
|
@@ -42,98 +44,6 @@ __export(index_exports, {
|
|
|
42
44
|
});
|
|
43
45
|
module.exports = __toCommonJS(index_exports);
|
|
44
46
|
|
|
45
|
-
// src/utils/pagination.ts
|
|
46
|
-
var toNumber = (value) => {
|
|
47
|
-
return typeof value === "number" ? value : void 0;
|
|
48
|
-
};
|
|
49
|
-
var toBoolean = (value) => {
|
|
50
|
-
return typeof value === "boolean" ? value : void 0;
|
|
51
|
-
};
|
|
52
|
-
function cloneOptions(options, overrides) {
|
|
53
|
-
return {
|
|
54
|
-
...options ?? {},
|
|
55
|
-
...overrides ?? {}
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
function normalizeMeta(meta) {
|
|
59
|
-
if (!meta) {
|
|
60
|
-
return void 0;
|
|
61
|
-
}
|
|
62
|
-
const metaRecord = meta;
|
|
63
|
-
return {
|
|
64
|
-
...metaRecord,
|
|
65
|
-
page: toNumber(metaRecord.page),
|
|
66
|
-
limit: toNumber(metaRecord.limit) ?? toNumber(metaRecord.pageSize),
|
|
67
|
-
total: toNumber(metaRecord.total) ?? toNumber(metaRecord.totalItems),
|
|
68
|
-
hasNext: toBoolean(metaRecord.hasNext),
|
|
69
|
-
hasPrevious: toBoolean(metaRecord.hasPrevious),
|
|
70
|
-
totalPages: toNumber(metaRecord.totalPages)
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
function resolveHasNext(meta, limit) {
|
|
74
|
-
if (typeof meta?.hasNext === "boolean") {
|
|
75
|
-
return meta.hasNext;
|
|
76
|
-
}
|
|
77
|
-
if (typeof meta?.total === "number" && typeof meta?.page === "number" && typeof limit === "number") {
|
|
78
|
-
return meta.page * limit < meta.total;
|
|
79
|
-
}
|
|
80
|
-
if (typeof meta?.totalPages === "number" && typeof meta?.page === "number") {
|
|
81
|
-
return meta.page < meta.totalPages;
|
|
82
|
-
}
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
function resolveHasPrevious(meta) {
|
|
86
|
-
if (typeof meta?.hasPrevious === "boolean") {
|
|
87
|
-
return meta.hasPrevious;
|
|
88
|
-
}
|
|
89
|
-
if (typeof meta?.page === "number") {
|
|
90
|
-
return meta.page > 1;
|
|
91
|
-
}
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
function attachPaginator(response, fetchPage, options) {
|
|
95
|
-
const baseOptions = options ?? {};
|
|
96
|
-
const meta = normalizeMeta(response.meta);
|
|
97
|
-
const currentPage = typeof meta?.page === "number" ? meta.page : typeof baseOptions.page === "number" ? baseOptions.page : 1;
|
|
98
|
-
const currentLimit = typeof meta?.limit === "number" ? meta.limit : typeof baseOptions.limit === "number" ? baseOptions.limit : void 0;
|
|
99
|
-
const getNextResponse = async (page, overrides) => {
|
|
100
|
-
const nextOptions = cloneOptions(baseOptions, {
|
|
101
|
-
...overrides,
|
|
102
|
-
page
|
|
103
|
-
});
|
|
104
|
-
const nextResponse = await fetchPage(nextOptions);
|
|
105
|
-
return attachPaginator(nextResponse, fetchPage, nextOptions);
|
|
106
|
-
};
|
|
107
|
-
return Object.assign(response, {
|
|
108
|
-
async next() {
|
|
109
|
-
if (!resolveHasNext(meta, currentLimit)) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
return getNextResponse(currentPage + 1);
|
|
113
|
-
},
|
|
114
|
-
async prev() {
|
|
115
|
-
if (!resolveHasPrevious(meta)) {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
return getNextResponse(Math.max(1, currentPage - 1));
|
|
119
|
-
},
|
|
120
|
-
async page(pageNumber) {
|
|
121
|
-
if (typeof pageNumber !== "number" || Number.isNaN(pageNumber)) {
|
|
122
|
-
throw new TypeError("page(pageNumber) requires a numeric value.");
|
|
123
|
-
}
|
|
124
|
-
if (pageNumber < 1) {
|
|
125
|
-
throw new RangeError(
|
|
126
|
-
"Page numbers must be greater than or equal to 1."
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
return getNextResponse(pageNumber);
|
|
130
|
-
},
|
|
131
|
-
async reload() {
|
|
132
|
-
return getNextResponse(currentPage);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
|
|
137
47
|
// src/errors.ts
|
|
138
48
|
var HttpError = class extends Error {
|
|
139
49
|
constructor(status, statusText, body, url) {
|
|
@@ -424,6 +334,149 @@ function getQueryBuilderString(value) {
|
|
|
424
334
|
return String(result);
|
|
425
335
|
}
|
|
426
336
|
|
|
337
|
+
// src/api/agent-blueprints.ts
|
|
338
|
+
function createAgentBlueprintsApi(cfg) {
|
|
339
|
+
const { base, doFetch } = createHttp(cfg);
|
|
340
|
+
const jsonHeaders = { "content-type": "application/json" };
|
|
341
|
+
const list = async (agentId, options = {}) => {
|
|
342
|
+
const query = serializeListOptions({ filter: options.filter });
|
|
343
|
+
const res = await doFetch(`${base}/v1/agents/${agentId}/blueprints`, {
|
|
344
|
+
method: "GET",
|
|
345
|
+
query
|
|
346
|
+
});
|
|
347
|
+
return res.json();
|
|
348
|
+
};
|
|
349
|
+
const get = async (agentId, versionId) => {
|
|
350
|
+
const res = await doFetch(
|
|
351
|
+
`${base}/v1/agents/${agentId}/versions/${versionId}/blueprint`,
|
|
352
|
+
{
|
|
353
|
+
method: "GET"
|
|
354
|
+
}
|
|
355
|
+
);
|
|
356
|
+
return res.json();
|
|
357
|
+
};
|
|
358
|
+
const create = async (agentId, versionId, payload) => {
|
|
359
|
+
const res = await doFetch(
|
|
360
|
+
`${base}/v1/agents/${agentId}/versions/${versionId}/blueprint`,
|
|
361
|
+
{
|
|
362
|
+
method: "POST",
|
|
363
|
+
body: JSON.stringify(payload),
|
|
364
|
+
headers: jsonHeaders
|
|
365
|
+
}
|
|
366
|
+
);
|
|
367
|
+
return res.json();
|
|
368
|
+
};
|
|
369
|
+
const update = async (agentId, versionId, payload) => {
|
|
370
|
+
const res = await doFetch(
|
|
371
|
+
`${base}/v1/agents/${agentId}/versions/${versionId}/blueprint`,
|
|
372
|
+
{
|
|
373
|
+
method: "PATCH",
|
|
374
|
+
body: JSON.stringify(payload),
|
|
375
|
+
headers: jsonHeaders
|
|
376
|
+
}
|
|
377
|
+
);
|
|
378
|
+
return res.json();
|
|
379
|
+
};
|
|
380
|
+
return {
|
|
381
|
+
list,
|
|
382
|
+
get,
|
|
383
|
+
create,
|
|
384
|
+
update
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// src/utils/pagination.ts
|
|
389
|
+
var toNumber = (value) => {
|
|
390
|
+
return typeof value === "number" ? value : void 0;
|
|
391
|
+
};
|
|
392
|
+
var toBoolean = (value) => {
|
|
393
|
+
return typeof value === "boolean" ? value : void 0;
|
|
394
|
+
};
|
|
395
|
+
function cloneOptions(options, overrides) {
|
|
396
|
+
return {
|
|
397
|
+
...options ?? {},
|
|
398
|
+
...overrides ?? {}
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
function normalizeMeta(meta) {
|
|
402
|
+
if (!meta) {
|
|
403
|
+
return void 0;
|
|
404
|
+
}
|
|
405
|
+
const metaRecord = meta;
|
|
406
|
+
return {
|
|
407
|
+
...metaRecord,
|
|
408
|
+
page: toNumber(metaRecord.page),
|
|
409
|
+
limit: toNumber(metaRecord.limit) ?? toNumber(metaRecord.pageSize),
|
|
410
|
+
total: toNumber(metaRecord.total) ?? toNumber(metaRecord.totalItems),
|
|
411
|
+
hasNext: toBoolean(metaRecord.hasNext),
|
|
412
|
+
hasPrevious: toBoolean(metaRecord.hasPrevious),
|
|
413
|
+
totalPages: toNumber(metaRecord.totalPages)
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
function resolveHasNext(meta, limit) {
|
|
417
|
+
if (typeof meta?.hasNext === "boolean") {
|
|
418
|
+
return meta.hasNext;
|
|
419
|
+
}
|
|
420
|
+
if (typeof meta?.total === "number" && typeof meta?.page === "number" && typeof limit === "number") {
|
|
421
|
+
return meta.page * limit < meta.total;
|
|
422
|
+
}
|
|
423
|
+
if (typeof meta?.totalPages === "number" && typeof meta?.page === "number") {
|
|
424
|
+
return meta.page < meta.totalPages;
|
|
425
|
+
}
|
|
426
|
+
return false;
|
|
427
|
+
}
|
|
428
|
+
function resolveHasPrevious(meta) {
|
|
429
|
+
if (typeof meta?.hasPrevious === "boolean") {
|
|
430
|
+
return meta.hasPrevious;
|
|
431
|
+
}
|
|
432
|
+
if (typeof meta?.page === "number") {
|
|
433
|
+
return meta.page > 1;
|
|
434
|
+
}
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
function attachPaginator(response, fetchPage, options) {
|
|
438
|
+
const baseOptions = options ?? {};
|
|
439
|
+
const meta = normalizeMeta(response.meta);
|
|
440
|
+
const currentPage = typeof meta?.page === "number" ? meta.page : typeof baseOptions.page === "number" ? baseOptions.page : 1;
|
|
441
|
+
const currentLimit = typeof meta?.limit === "number" ? meta.limit : typeof baseOptions.limit === "number" ? baseOptions.limit : void 0;
|
|
442
|
+
const getNextResponse = async (page, overrides) => {
|
|
443
|
+
const nextOptions = cloneOptions(baseOptions, {
|
|
444
|
+
...overrides,
|
|
445
|
+
page
|
|
446
|
+
});
|
|
447
|
+
const nextResponse = await fetchPage(nextOptions);
|
|
448
|
+
return attachPaginator(nextResponse, fetchPage, nextOptions);
|
|
449
|
+
};
|
|
450
|
+
return Object.assign(response, {
|
|
451
|
+
async next() {
|
|
452
|
+
if (!resolveHasNext(meta, currentLimit)) {
|
|
453
|
+
return null;
|
|
454
|
+
}
|
|
455
|
+
return getNextResponse(currentPage + 1);
|
|
456
|
+
},
|
|
457
|
+
async prev() {
|
|
458
|
+
if (!resolveHasPrevious(meta)) {
|
|
459
|
+
return null;
|
|
460
|
+
}
|
|
461
|
+
return getNextResponse(Math.max(1, currentPage - 1));
|
|
462
|
+
},
|
|
463
|
+
async page(pageNumber) {
|
|
464
|
+
if (typeof pageNumber !== "number" || Number.isNaN(pageNumber)) {
|
|
465
|
+
throw new TypeError("page(pageNumber) requires a numeric value.");
|
|
466
|
+
}
|
|
467
|
+
if (pageNumber < 1) {
|
|
468
|
+
throw new RangeError(
|
|
469
|
+
"Page numbers must be greater than or equal to 1."
|
|
470
|
+
);
|
|
471
|
+
}
|
|
472
|
+
return getNextResponse(pageNumber);
|
|
473
|
+
},
|
|
474
|
+
async reload() {
|
|
475
|
+
return getNextResponse(currentPage);
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
|
|
427
480
|
// src/api/agent-instructions.ts
|
|
428
481
|
function createAgentInstructionsApi(cfg) {
|
|
429
482
|
const { base, doFetch } = createHttp(cfg);
|
|
@@ -714,6 +767,24 @@ var bindAgentVersions = (api, agentId) => ({
|
|
|
714
767
|
};
|
|
715
768
|
}
|
|
716
769
|
});
|
|
770
|
+
var bindAgentBlueprints = (api, agentId) => ({
|
|
771
|
+
list(opts) {
|
|
772
|
+
return api.list(agentId, opts);
|
|
773
|
+
},
|
|
774
|
+
version(versionId) {
|
|
775
|
+
return {
|
|
776
|
+
get() {
|
|
777
|
+
return api.get(agentId, versionId);
|
|
778
|
+
},
|
|
779
|
+
create(payload) {
|
|
780
|
+
return api.create(agentId, versionId, payload);
|
|
781
|
+
},
|
|
782
|
+
update(payload) {
|
|
783
|
+
return api.update(agentId, versionId, payload);
|
|
784
|
+
}
|
|
785
|
+
};
|
|
786
|
+
}
|
|
787
|
+
});
|
|
717
788
|
var createAgentEntity = (dto, options) => {
|
|
718
789
|
const {
|
|
719
790
|
instructionsApi,
|
|
@@ -721,6 +792,7 @@ var createAgentEntity = (dto, options) => {
|
|
|
721
792
|
phonesApi,
|
|
722
793
|
scheduleApi,
|
|
723
794
|
versionsApi,
|
|
795
|
+
blueprintsApi,
|
|
724
796
|
reload,
|
|
725
797
|
updateAgent,
|
|
726
798
|
deleteAgent
|
|
@@ -732,6 +804,7 @@ var createAgentEntity = (dto, options) => {
|
|
|
732
804
|
phones: bindAgentPhones(phonesApi, dto.agentId),
|
|
733
805
|
schedule: bindAgentSchedule(scheduleApi, dto.agentId),
|
|
734
806
|
versions: bindAgentVersions(versionsApi, dto.agentId),
|
|
807
|
+
blueprints: bindAgentBlueprints(blueprintsApi, dto.agentId),
|
|
735
808
|
async save(patch) {
|
|
736
809
|
return updateAgent(dto.agentId, patch);
|
|
737
810
|
},
|
|
@@ -814,6 +887,7 @@ function createAgentsApi(cfg, relatedApis) {
|
|
|
814
887
|
phonesApi: relatedApis.phonesApi,
|
|
815
888
|
scheduleApi: relatedApis.scheduleApi,
|
|
816
889
|
versionsApi: relatedApis.versionsApi,
|
|
890
|
+
blueprintsApi: relatedApis.blueprintsApi,
|
|
817
891
|
reload: async (agentId) => {
|
|
818
892
|
const latest = await getAgentDetail(agentId);
|
|
819
893
|
return wrapAgent(latest);
|
|
@@ -1065,13 +1139,15 @@ function createClient(initialCfg) {
|
|
|
1065
1139
|
const phonesApi = createAgentPhonesApi(runtimeCfg);
|
|
1066
1140
|
const scheduleApi = createAgentScheduleApi(runtimeCfg);
|
|
1067
1141
|
const versionsApi = createAgentVersionsApi(runtimeCfg);
|
|
1142
|
+
const blueprintsApi = createAgentBlueprintsApi(runtimeCfg);
|
|
1068
1143
|
const voicesApi = createVoicesApi(runtimeCfg);
|
|
1069
1144
|
const agentsApi = createAgentsApi(runtimeCfg, {
|
|
1070
1145
|
instructionsApi,
|
|
1071
1146
|
tagsApi,
|
|
1072
1147
|
phonesApi,
|
|
1073
1148
|
scheduleApi,
|
|
1074
|
-
versionsApi
|
|
1149
|
+
versionsApi,
|
|
1150
|
+
blueprintsApi
|
|
1075
1151
|
});
|
|
1076
1152
|
const instructionsNamespace = Object.assign(
|
|
1077
1153
|
(agentId) => bindAgentInstructions(instructionsApi, agentId),
|
|
@@ -1093,6 +1169,10 @@ function createClient(initialCfg) {
|
|
|
1093
1169
|
(agentId) => bindAgentVersions(versionsApi, agentId),
|
|
1094
1170
|
versionsApi
|
|
1095
1171
|
);
|
|
1172
|
+
const blueprintsNamespace = Object.assign(
|
|
1173
|
+
(agentId) => bindAgentBlueprints(blueprintsApi, agentId),
|
|
1174
|
+
blueprintsApi
|
|
1175
|
+
);
|
|
1096
1176
|
const apis = {
|
|
1097
1177
|
agents: {
|
|
1098
1178
|
...agentsApi,
|
|
@@ -1100,7 +1180,8 @@ function createClient(initialCfg) {
|
|
|
1100
1180
|
tags: tagsNamespace,
|
|
1101
1181
|
phones: phonesNamespace,
|
|
1102
1182
|
schedule: scheduleNamespace,
|
|
1103
|
-
versions: versionsNamespace
|
|
1183
|
+
versions: versionsNamespace,
|
|
1184
|
+
blueprints: blueprintsNamespace
|
|
1104
1185
|
},
|
|
1105
1186
|
workspaces: createWorkspacesApi(runtimeCfg),
|
|
1106
1187
|
tools: createToolsApi(runtimeCfg),
|
|
@@ -1152,11 +1233,13 @@ function createClient(initialCfg) {
|
|
|
1152
1233
|
HttpError,
|
|
1153
1234
|
NetworkError,
|
|
1154
1235
|
TimeoutError,
|
|
1236
|
+
bindAgentBlueprints,
|
|
1155
1237
|
bindAgentInstructions,
|
|
1156
1238
|
bindAgentPhones,
|
|
1157
1239
|
bindAgentSchedule,
|
|
1158
1240
|
bindAgentTags,
|
|
1159
1241
|
bindAgentVersions,
|
|
1242
|
+
createAgentBlueprintsApi,
|
|
1160
1243
|
createAgentEntity,
|
|
1161
1244
|
createAgentInstructionsApi,
|
|
1162
1245
|
createAgentPhonesApi,
|