@onereach/idw-init-account-resources 0.19.7 → 0.20.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/index.js +4 -7
- package/dist/index.js.map +1 -1
- package/dist/initializers/rdb.js +247 -18
- package/dist/initializers/rdb.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +4 -2
- package/src/initializers/rdb.ts +230 -8
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
WARN Issue while reading "/builds/onereach/platform/idw/idw-template/.npmrc". Failed to replace env in config: ${OR_NPM_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @onereach/idw-init-account-resources@0.19.
|
|
3
|
+
> @onereach/idw-init-account-resources@0.19.7 build /builds/onereach/platform/idw/idw-template/packages/level-system/idw-init-account-resources
|
|
4
4
|
> rimraf dist && tsc -b && mkdir dist/assets/skills/documentation && cp -r src/assets/skills/documentation/* dist/assets/skills/documentation
|
|
5
5
|
|
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -113,20 +113,17 @@ function init(token_1, discoveryUrl_1) {
|
|
|
113
113
|
return [4, logAsyncFunc('Files init', function () { return resources.files.init(); })];
|
|
114
114
|
case 1:
|
|
115
115
|
files = _a.sent();
|
|
116
|
-
return [4, logAsyncFunc('RDB init', function () { return resources.rdb.init(); })];
|
|
116
|
+
return [4, logAsyncFunc('RDB init', function () { return resources.rdb.init({ files: files }); })];
|
|
117
117
|
case 2:
|
|
118
|
-
_a.sent();
|
|
119
|
-
return [4, logAsyncFunc('IDW init', function () { return resources.idw.init(files); })];
|
|
120
|
-
case 3:
|
|
121
118
|
_a.sent();
|
|
122
119
|
return [4, logAsyncFunc('HITL init', function () { return resources.hitl.init(); })];
|
|
123
|
-
case
|
|
120
|
+
case 3:
|
|
124
121
|
_a.sent();
|
|
125
122
|
return [4, logAsyncFunc('Lookup init', function () { return resources.lookup.init(); })];
|
|
126
|
-
case
|
|
123
|
+
case 4:
|
|
127
124
|
collections = _a.sent();
|
|
128
125
|
return [4, logAsyncFunc('Contacts init', function () { return resources.contacts.init(); })];
|
|
129
|
-
case
|
|
126
|
+
case 5:
|
|
130
127
|
contactBooks = _a.sent();
|
|
131
128
|
return [2, {
|
|
132
129
|
collections: collections,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kDAA4B;AAE5B,+CAOwB;AAQxB,SAAe,gBAAgB,CAAC,MAAc,EAAE,IAAY,EAAE,EAAsB;;;;;;;oBAEhF,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;oBACzB,WAAM,EAAE,EAAE,EAAA;;oBAArB,QAAQ,GAAG,SAAU;oBAC3B,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,uBAAuB,EAAE,IAAI,GAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAE;oBAE3F,WAAO,QAAQ,EAAC;;;oBAEV,SAAS,GAAG,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,GAAC,EAAE,CAAC,CAAC;oBAC5E,MAAM,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC;oBAEhB,MAAM,SAAS,CAAC;;;;;CAEnB;AAED,SAAsB,IAAI;wDAAC,KAAa,EAAE,YAAoB,EAAE,MAAwB;;QAAxB,uBAAA,EAAA,gBAAwB;;;;oBACtF,IAAA,gBAAM,EAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;oBACrC,IAAA,gBAAM,EAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;oBAE7C,SAAS,GAAG;wBAChB,GAAG,EAAE,IAAI,+BAAgB,CAAC;4BACxB,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,MAAM,EAAE,IAAI,kCAAmB,CAAC;4BAC9B,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,GAAG,EAAE,IAAI,+BAAgB,CAAC;4BACxB,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,IAAI,EAAE,IAAI,gCAAiB,CAAC;4BAC1B,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,QAAQ,EAAE,IAAI,oCAAqB,CAAC;4BAClC,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,KAAK,EAAE,IAAI,iCAAkB,CAAC;4BAC5B,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;qBACH,CAAC;oBAEI,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC3C,WAAM,YAAY,CAAC,YAAY,EAAE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAtB,CAAsB,CAAC,EAAA;;oBAAtE,KAAK,GAAG,SAA8D;oBAE5E,WAAM,YAAY,CAAC,UAAU,EAAE,cAAM,OAAA,SAAS,CAAC,GAAG,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kDAA4B;AAE5B,+CAOwB;AAQxB,SAAe,gBAAgB,CAAC,MAAc,EAAE,IAAY,EAAE,EAAsB;;;;;;;oBAEhF,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;oBACzB,WAAM,EAAE,EAAE,EAAA;;oBAArB,QAAQ,GAAG,SAAU;oBAC3B,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,uBAAuB,EAAE,IAAI,GAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAE;oBAE3F,WAAO,QAAQ,EAAC;;;oBAEV,SAAS,GAAG,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,GAAC,EAAE,CAAC,CAAC;oBAC5E,MAAM,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC;oBAEhB,MAAM,SAAS,CAAC;;;;;CAEnB;AAED,SAAsB,IAAI;wDAAC,KAAa,EAAE,YAAoB,EAAE,MAAwB;;QAAxB,uBAAA,EAAA,gBAAwB;;;;oBACtF,IAAA,gBAAM,EAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;oBACrC,IAAA,gBAAM,EAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;oBAE7C,SAAS,GAAG;wBAChB,GAAG,EAAE,IAAI,+BAAgB,CAAC;4BACxB,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,MAAM,EAAE,IAAI,kCAAmB,CAAC;4BAC9B,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,GAAG,EAAE,IAAI,+BAAgB,CAAC;4BACxB,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,IAAI,EAAE,IAAI,gCAAiB,CAAC;4BAC1B,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,QAAQ,EAAE,IAAI,oCAAqB,CAAC;4BAClC,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;wBACF,KAAK,EAAE,IAAI,iCAAkB,CAAC;4BAC5B,KAAK,OAAA;4BACL,YAAY,cAAA;yBACb,CAAC;qBACH,CAAC;oBAEI,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC3C,WAAM,YAAY,CAAC,YAAY,EAAE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAtB,CAAsB,CAAC,EAAA;;oBAAtE,KAAK,GAAG,SAA8D;oBAE5E,WAAM,YAAY,CAAC,UAAU,EAAE,cAAM,OAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,EAA7B,CAA6B,CAAC,EAAA;;oBAAnE,SAAmE,CAAC;oBACpE,WAAM,YAAY,CAAC,WAAW,EAAE,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAArB,CAAqB,CAAC,EAAA;;oBAA5D,SAA4D,CAAC;oBAKzC,WAAM,YAAY,CAAC,aAAa,EAAE,cAAM,OAAA,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAvB,CAAuB,CAAC,EAAA;;oBAA9E,WAAW,GAAG,SAAgE;oBAC/D,WAAM,YAAY,CAAC,eAAe,EAAE,cAAM,OAAA,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAzB,CAAyB,CAAC,EAAA;;oBAAnF,YAAY,GAAG,SAAoE;oBAEzF,WAAO;4BACL,WAAW,aAAA;4BACX,YAAY,cAAA;4BACZ,KAAK,OAAA;yBACN,EAAC;;;;CACH;AAhDD,oBAgDC"}
|
package/dist/initializers/rdb.js
CHANGED
|
@@ -40,9 +40,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.InitRdbResources = void 0;
|
|
43
|
+
var files_1 = require("@or-sdk/files");
|
|
44
|
+
var idw_1 = require("@or-sdk/idw");
|
|
45
|
+
var crypto_1 = require("crypto");
|
|
43
46
|
var path_1 = __importDefault(require("path"));
|
|
44
47
|
var domains_1 = require("../assets/domains");
|
|
45
48
|
var models_1 = require("../assets/models");
|
|
49
|
+
var skills_1 = require("../assets/skills");
|
|
50
|
+
var encodeAccountId_1 = require("../utils/encodeAccountId");
|
|
46
51
|
var OrPgClient_1 = require("../utils/OrPgClient");
|
|
47
52
|
var umzugSetup_1 = require("../utils/umzugSetup");
|
|
48
53
|
var InitRdbResources = (function () {
|
|
@@ -54,26 +59,38 @@ var InitRdbResources = (function () {
|
|
|
54
59
|
token: this.token,
|
|
55
60
|
discoveryUrl: this.discoveryUrl,
|
|
56
61
|
});
|
|
62
|
+
this.idwApi = new idw_1.IdwApiV2({
|
|
63
|
+
token: token,
|
|
64
|
+
discoveryUrl: discoveryUrl,
|
|
65
|
+
});
|
|
66
|
+
this.filesApi = new files_1.Files({
|
|
67
|
+
token: token,
|
|
68
|
+
discoveryUrl: discoveryUrl,
|
|
69
|
+
});
|
|
57
70
|
}
|
|
58
|
-
InitRdbResources.prototype.init = function () {
|
|
71
|
+
InitRdbResources.prototype.init = function (data) {
|
|
59
72
|
return __awaiter(this, void 0, void 0, function () {
|
|
60
|
-
var services, sdkApiUrl, accountId, sequelize, umzug, error_1;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
73
|
+
var files, services, sdkApiUrl, accountId, sequelize, umzug, error_1;
|
|
74
|
+
var _a, _b;
|
|
75
|
+
return __generator(this, function (_c) {
|
|
76
|
+
switch (_c.label) {
|
|
77
|
+
case 0:
|
|
78
|
+
files = data.files;
|
|
79
|
+
return [4, fetch("".concat(this.discoveryUrl, "/api/v2/services")).then(function (res) { return res.json(); })];
|
|
64
80
|
case 1:
|
|
65
|
-
services = (
|
|
81
|
+
services = (_c.sent()).services;
|
|
66
82
|
sdkApiUrl = services.find(function (service) { return service.serviceKey === 'sdk-api'; }).url;
|
|
67
83
|
this.mcpApi = services.find(function (service) { return service.serviceKey === 'mcp-api'; }).url;
|
|
84
|
+
this.chatUrl = (_b = (_a = services.find(function (service) { return service.serviceKey === 'rwc'; })) === null || _a === void 0 ? void 0 : _a.url) === null || _b === void 0 ? void 0 : _b.replace('rwc.', 'chat.');
|
|
68
85
|
return [4, fetch("".concat(sdkApiUrl, "/auth/token"), {
|
|
69
86
|
headers: { Authorization: this.token },
|
|
70
87
|
}).then(function (res) { return res.json(); })];
|
|
71
88
|
case 2:
|
|
72
|
-
accountId = (
|
|
89
|
+
accountId = (_c.sent()).accountId;
|
|
73
90
|
this.accPart = this.encode(accountId);
|
|
74
91
|
return [4, this.pgClient.getSequelize(OrPgClient_1.DB_NAME.IDW)];
|
|
75
92
|
case 3:
|
|
76
|
-
sequelize =
|
|
93
|
+
sequelize = _c.sent();
|
|
77
94
|
umzug = (0, umzugSetup_1.setupUmzug)({
|
|
78
95
|
accountId: accountId,
|
|
79
96
|
migrationsPath: path_1.default.join(__dirname, '../assets/db_migrations/*.{js,ts}'),
|
|
@@ -81,34 +98,61 @@ var InitRdbResources = (function () {
|
|
|
81
98
|
token: this.token,
|
|
82
99
|
sequelizeInstance: sequelize,
|
|
83
100
|
});
|
|
84
|
-
|
|
101
|
+
_c.label = 4;
|
|
85
102
|
case 4:
|
|
86
|
-
|
|
103
|
+
_c.trys.push([4, 6, , 7]);
|
|
87
104
|
return [4, umzug.up()];
|
|
88
105
|
case 5:
|
|
89
|
-
|
|
106
|
+
_c.sent();
|
|
90
107
|
return [3, 7];
|
|
91
108
|
case 6:
|
|
92
|
-
error_1 =
|
|
109
|
+
error_1 = _c.sent();
|
|
93
110
|
console.error('<======== Migration failed ========>');
|
|
94
111
|
console.error('Migration type: ', error_1.name);
|
|
95
112
|
console.warn('Migration error detail: ', error_1.detail || '<no detailed info>');
|
|
96
113
|
throw new Error('Migration failed', { cause: error_1 });
|
|
97
|
-
case 7: return [4, this.upsertDefaultData(sequelize,
|
|
114
|
+
case 7: return [4, this.upsertDefaultData(sequelize, {
|
|
115
|
+
models: models_1.models,
|
|
116
|
+
datasources: models_1.datasources,
|
|
117
|
+
domains: domains_1.domains,
|
|
118
|
+
skills: skills_1.skills,
|
|
119
|
+
files: files,
|
|
120
|
+
}, accountId)];
|
|
98
121
|
case 8:
|
|
99
|
-
|
|
122
|
+
_c.sent();
|
|
100
123
|
return [4, this.linkOldKnowledgesToDefaultDomain(sequelize)];
|
|
101
124
|
case 9:
|
|
102
|
-
|
|
125
|
+
_c.sent();
|
|
103
126
|
return [4, sequelize.close()];
|
|
104
127
|
case 10:
|
|
128
|
+
_c.sent();
|
|
129
|
+
return [2];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
InitRdbResources.prototype.upsertDefaultData = function (sequelize, data, accountId) {
|
|
135
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
136
|
+
var models, datasources, domains, skills;
|
|
137
|
+
return __generator(this, function (_a) {
|
|
138
|
+
switch (_a.label) {
|
|
139
|
+
case 0:
|
|
140
|
+
models = data.models, datasources = data.datasources, domains = data.domains, skills = data.skills;
|
|
141
|
+
return [4, this.setDatasources(sequelize, models, datasources)];
|
|
142
|
+
case 1:
|
|
143
|
+
_a.sent();
|
|
144
|
+
return [4, this.setSkillsAndDomains(sequelize, domains, skills, data.files, accountId)];
|
|
145
|
+
case 2:
|
|
146
|
+
_a.sent();
|
|
147
|
+
return [4, this.removeDeletedSkills(sequelize, skills)];
|
|
148
|
+
case 3:
|
|
105
149
|
_a.sent();
|
|
106
150
|
return [2];
|
|
107
151
|
}
|
|
108
152
|
});
|
|
109
153
|
});
|
|
110
154
|
};
|
|
111
|
-
InitRdbResources.prototype.
|
|
155
|
+
InitRdbResources.prototype.setDatasources = function (sequelize_1) {
|
|
112
156
|
return __awaiter(this, arguments, void 0, function (sequelize, models, datasources) {
|
|
113
157
|
var error_2;
|
|
114
158
|
var _this = this;
|
|
@@ -205,11 +249,116 @@ var InitRdbResources = (function () {
|
|
|
205
249
|
}); })];
|
|
206
250
|
case 1:
|
|
207
251
|
_a.sent();
|
|
208
|
-
console.log('Default
|
|
252
|
+
console.log('Default datasources successfully upserted.');
|
|
209
253
|
return [3, 3];
|
|
210
254
|
case 2:
|
|
211
255
|
error_2 = _a.sent();
|
|
212
|
-
console.error('Error upserting default data:', error_2);
|
|
256
|
+
console.error('Error upserting default datasources data:', error_2);
|
|
257
|
+
return [3, 3];
|
|
258
|
+
case 3: return [2];
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
};
|
|
263
|
+
InitRdbResources.prototype.setSkillsAndDomains = function (sequelize_1) {
|
|
264
|
+
return __awaiter(this, arguments, void 0, function (sequelize, domains, skills, files, accountId) {
|
|
265
|
+
var error_3;
|
|
266
|
+
var _this = this;
|
|
267
|
+
if (domains === void 0) { domains = []; }
|
|
268
|
+
if (skills === void 0) { skills = []; }
|
|
269
|
+
return __generator(this, function (_a) {
|
|
270
|
+
switch (_a.label) {
|
|
271
|
+
case 0:
|
|
272
|
+
_a.trys.push([0, 2, , 3]);
|
|
273
|
+
return [4, sequelize.transaction(function (transaction) { return __awaiter(_this, void 0, void 0, function () {
|
|
274
|
+
var index, domainMap, _i, domains_2, domain, domainResult, transformedSkills, _a, transformedSkills_1, skill, skillResult, skillId;
|
|
275
|
+
var _this = this;
|
|
276
|
+
return __generator(this, function (_b) {
|
|
277
|
+
switch (_b.label) {
|
|
278
|
+
case 0:
|
|
279
|
+
index = 0;
|
|
280
|
+
domainMap = {};
|
|
281
|
+
_i = 0, domains_2 = domains;
|
|
282
|
+
_b.label = 1;
|
|
283
|
+
case 1:
|
|
284
|
+
if (!(_i < domains_2.length)) return [3, 4];
|
|
285
|
+
domain = domains_2[_i];
|
|
286
|
+
return [4, sequelize.query("\n INSERT INTO domains (id, account_id, slug, name, abbreviation, image, created_at, updated_at)\n VALUES (:id, :accountId, :slug, :name, :abbreviation, :image, :created_at, :updated_at)\n ON CONFLICT (slug) DO UPDATE\n SET abbreviation = EXCLUDED.abbreviation,\n updated_at = NOW()\n RETURNING id;\n ", {
|
|
287
|
+
replacements: {
|
|
288
|
+
id: (0, crypto_1.randomUUID)(),
|
|
289
|
+
accountId: accountId,
|
|
290
|
+
slug: this.slugify(domain.name),
|
|
291
|
+
name: domain.name,
|
|
292
|
+
abbreviation: domain.abbreviation,
|
|
293
|
+
image: "/domains/img-".concat(index, ".png"),
|
|
294
|
+
created_at: new Date(),
|
|
295
|
+
updated_at: new Date(),
|
|
296
|
+
},
|
|
297
|
+
transaction: transaction,
|
|
298
|
+
})];
|
|
299
|
+
case 2:
|
|
300
|
+
domainResult = (_b.sent())[0];
|
|
301
|
+
index++;
|
|
302
|
+
domainMap[domain.name] = domainResult[0].id;
|
|
303
|
+
_b.label = 3;
|
|
304
|
+
case 3:
|
|
305
|
+
_i++;
|
|
306
|
+
return [3, 1];
|
|
307
|
+
case 4:
|
|
308
|
+
transformedSkills = skills.map(function (skill) { return _this.mapSkillData(skill, files, accountId); });
|
|
309
|
+
_a = 0, transformedSkills_1 = transformedSkills;
|
|
310
|
+
_b.label = 5;
|
|
311
|
+
case 5:
|
|
312
|
+
if (!(_a < transformedSkills_1.length)) return [3, 10];
|
|
313
|
+
skill = transformedSkills_1[_a];
|
|
314
|
+
return [4, sequelize.query("\n INSERT INTO skills (id, account_id, slug, name, description, meta, url, created_at, updated_at)\n VALUES (:id, :accountId, :slug, :name, :description, :meta, :url, :created_at, :updated_at)\n ON CONFLICT (slug) DO UPDATE\n SET description = EXCLUDED.description,\n meta = EXCLUDED.meta,\n url = EXCLUDED.url,\n updated_at = NOW()\n RETURNING id;\n ", {
|
|
315
|
+
replacements: {
|
|
316
|
+
id: (0, crypto_1.randomUUID)(),
|
|
317
|
+
accountId: accountId,
|
|
318
|
+
slug: this.slugify(skill.name),
|
|
319
|
+
name: skill.name,
|
|
320
|
+
description: skill.description,
|
|
321
|
+
meta: JSON.stringify(skill.meta),
|
|
322
|
+
url: skill.url,
|
|
323
|
+
created_at: new Date(),
|
|
324
|
+
updated_at: new Date(),
|
|
325
|
+
},
|
|
326
|
+
transaction: transaction,
|
|
327
|
+
})];
|
|
328
|
+
case 6:
|
|
329
|
+
skillResult = (_b.sent())[0];
|
|
330
|
+
skillId = skillResult[0].id;
|
|
331
|
+
return [4, sequelize.query('DELETE FROM domain_skills WHERE skill = :skill_id;', {
|
|
332
|
+
replacements: { skill_id: skillId },
|
|
333
|
+
transaction: transaction,
|
|
334
|
+
})];
|
|
335
|
+
case 7:
|
|
336
|
+
_b.sent();
|
|
337
|
+
return [4, sequelize.query("\n INSERT INTO domain_skills (id, skill, domain)\n VALUES (:id, :skill, :domain)", {
|
|
338
|
+
replacements: {
|
|
339
|
+
id: (0, crypto_1.randomUUID)(),
|
|
340
|
+
skill: skillId,
|
|
341
|
+
domain: domainMap[skill.domain],
|
|
342
|
+
},
|
|
343
|
+
transaction: transaction,
|
|
344
|
+
})];
|
|
345
|
+
case 8:
|
|
346
|
+
_b.sent();
|
|
347
|
+
_b.label = 9;
|
|
348
|
+
case 9:
|
|
349
|
+
_a++;
|
|
350
|
+
return [3, 5];
|
|
351
|
+
case 10: return [2];
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
}); })];
|
|
355
|
+
case 1:
|
|
356
|
+
_a.sent();
|
|
357
|
+
console.log('Default skills and domains successfully upserted.');
|
|
358
|
+
return [3, 3];
|
|
359
|
+
case 2:
|
|
360
|
+
error_3 = _a.sent();
|
|
361
|
+
console.error('Error upserting default skills and domains data:', error_3);
|
|
213
362
|
return [3, 3];
|
|
214
363
|
case 3: return [2];
|
|
215
364
|
}
|
|
@@ -264,6 +413,86 @@ var InitRdbResources = (function () {
|
|
|
264
413
|
var n = BigInt('0x' + hex);
|
|
265
414
|
return n.toString(36);
|
|
266
415
|
};
|
|
416
|
+
InitRdbResources.prototype.removeDeletedSkills = function (sequelize, skillDefinitions) {
|
|
417
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
418
|
+
var skills, isSystem, isDeleted, deletedSystemSkills, DOCUMENTATION_FOLDER;
|
|
419
|
+
var _this = this;
|
|
420
|
+
return __generator(this, function (_a) {
|
|
421
|
+
switch (_a.label) {
|
|
422
|
+
case 0: return [4, sequelize.query('SELECT * FROM skills')];
|
|
423
|
+
case 1:
|
|
424
|
+
skills = (_a.sent())[0];
|
|
425
|
+
isSystem = function (skill) { var _a, _b; return (_b = (_a = skill.meta) === null || _a === void 0 ? void 0 : _a.skill) === null || _b === void 0 ? void 0 : _b.isSystem; };
|
|
426
|
+
isDeleted = function (skill) { return !skillDefinitions.find(function (item) { return item.name === skill.name; }); };
|
|
427
|
+
deletedSystemSkills = skills.filter(function (skill) { return isSystem(skill) && isDeleted(skill); });
|
|
428
|
+
return [4, Promise.all(deletedSystemSkills.map(function (skill) { return _this.idwApi.deleteSkill(skill.id); }))];
|
|
429
|
+
case 2:
|
|
430
|
+
_a.sent();
|
|
431
|
+
return [4, Promise.all(deletedSystemSkills.map(function (skill) { return sequelize.query('' +
|
|
432
|
+
'DELETE FROM skills WHERE id = :skill_id', { replacements: { skill_id: skill.id } }); }))];
|
|
433
|
+
case 3:
|
|
434
|
+
_a.sent();
|
|
435
|
+
DOCUMENTATION_FOLDER = 'IDW/docs';
|
|
436
|
+
return [4, Promise.all(deletedSystemSkills.map(function (skill) {
|
|
437
|
+
return _this.filesApi
|
|
438
|
+
.deleteFile("".concat(DOCUMENTATION_FOLDER, "/").concat(skill.slug, ".pdf"), true)
|
|
439
|
+
.catch(function (err) {
|
|
440
|
+
console.warn("Failed to delete file for skill \"".concat(skill.slug, "\":"), err.message);
|
|
441
|
+
return null;
|
|
442
|
+
});
|
|
443
|
+
}))];
|
|
444
|
+
case 4:
|
|
445
|
+
_a.sent();
|
|
446
|
+
return [2];
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
});
|
|
450
|
+
};
|
|
451
|
+
;
|
|
452
|
+
InitRdbResources.prototype.slugify = function (string) {
|
|
453
|
+
var result = String(string)
|
|
454
|
+
.normalize('NFKD')
|
|
455
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
456
|
+
.trim()
|
|
457
|
+
.toLowerCase()
|
|
458
|
+
.replace(/[^a-z0-9 -]/g, '')
|
|
459
|
+
.replace(/\s+/g, '-')
|
|
460
|
+
.replace(/-+/g, '-')
|
|
461
|
+
.replace(/^-+|-+$/g, '');
|
|
462
|
+
var alphanumCount = (result.match(/[a-z0-9]/g) || []).length;
|
|
463
|
+
if (alphanumCount < 2) {
|
|
464
|
+
throw new Error('Slug must have at least 2 alphanumeric characters');
|
|
465
|
+
}
|
|
466
|
+
return result;
|
|
467
|
+
};
|
|
468
|
+
;
|
|
469
|
+
InitRdbResources.prototype.mapSkillData = function (skillDefinition, files, account_id) {
|
|
470
|
+
var _a, _b;
|
|
471
|
+
var encodedAccountId = (0, encodeAccountId_1.encodeAccountId)(account_id);
|
|
472
|
+
return {
|
|
473
|
+
slug: this.slugify(skillDefinition.name),
|
|
474
|
+
name: skillDefinition.name,
|
|
475
|
+
description: skillDefinition.description,
|
|
476
|
+
url: "".concat(this.chatUrl, "/").concat(encodedAccountId, "/").concat(skillDefinition.meta.chatId),
|
|
477
|
+
domain: (_a = skillDefinition.domain) !== null && _a !== void 0 ? _a : domains_1.UnlabelledDomain.name,
|
|
478
|
+
meta: {
|
|
479
|
+
chat: {
|
|
480
|
+
id: skillDefinition.meta.chatId,
|
|
481
|
+
},
|
|
482
|
+
skill: {
|
|
483
|
+
advanced: skillDefinition.advanced,
|
|
484
|
+
disabled: skillDefinition.disabled,
|
|
485
|
+
editable: skillDefinition.editable,
|
|
486
|
+
userRole: skillDefinition.forRoles,
|
|
487
|
+
forUsers: skillDefinition.forUsers,
|
|
488
|
+
prompt: skillDefinition.meta.prompt,
|
|
489
|
+
promptParams: skillDefinition.meta.promptParams,
|
|
490
|
+
isSystem: (_b = skillDefinition.isSystem) !== null && _b !== void 0 ? _b : true,
|
|
491
|
+
docUrl: files[skillDefinition.uid],
|
|
492
|
+
},
|
|
493
|
+
},
|
|
494
|
+
};
|
|
495
|
+
};
|
|
267
496
|
return InitRdbResources;
|
|
268
497
|
}());
|
|
269
498
|
exports.InitRdbResources = InitRdbResources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rdb.js","sourceRoot":"","sources":["../../src/initializers/rdb.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rdb.js","sourceRoot":"","sources":["../../src/initializers/rdb.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onereach/idw-init-account-resources",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Creation of required resources in OneReach account to enable IDW",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"contributors": [
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"@or-sdk/files": "3.4.36",
|
|
16
16
|
"@or-sdk/graph": "1.7.26",
|
|
17
17
|
"@or-sdk/hitl": "0.34.35",
|
|
18
|
-
"@or-sdk/idw": "
|
|
18
|
+
"@or-sdk/idw": "8.1.1",
|
|
19
19
|
"@or-sdk/key-value-storage": "^0.27.10",
|
|
20
20
|
"@or-sdk/lookup": "1.14.5",
|
|
21
21
|
"@or-sdk/pgsql": "1.1.8",
|
package/src/index.ts
CHANGED
|
@@ -66,10 +66,12 @@ export async function init(token: string, discoveryUrl: string, logger: Logger =
|
|
|
66
66
|
const logAsyncFunc = FuncExecutionLog.bind(null, logger);
|
|
67
67
|
const files = await logAsyncFunc('Files init', () => resources.files.init());
|
|
68
68
|
|
|
69
|
-
await logAsyncFunc('RDB init', () => resources.rdb.init());
|
|
70
|
-
await logAsyncFunc('IDW init', () => resources.idw.init(files));
|
|
69
|
+
await logAsyncFunc('RDB init', () => resources.rdb.init({ files }));
|
|
71
70
|
await logAsyncFunc('HITL init', () => resources.hitl.init());
|
|
72
71
|
|
|
72
|
+
// we do not need idw init anymore since we do initialization inside RDB init, but let's keep it for a while
|
|
73
|
+
// await logAsyncFunc('IDW init', () => resources.idw.init(files));
|
|
74
|
+
|
|
73
75
|
const collections = await logAsyncFunc('Lookup init', () => resources.lookup.init());
|
|
74
76
|
const contactBooks = await logAsyncFunc('Contacts init', () => resources.contacts.init());
|
|
75
77
|
|
package/src/initializers/rdb.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
import { Files } from '@or-sdk/files';
|
|
2
|
+
import { IdwApiV2, SkillItem } from '@or-sdk/idw';
|
|
3
|
+
import { randomUUID } from 'crypto';
|
|
1
4
|
import path from 'path';
|
|
2
5
|
import { Sequelize } from 'sequelize';
|
|
3
6
|
|
|
4
|
-
import { UnlabelledDomain } from '../assets/domains';
|
|
7
|
+
import { UnlabelledDomain, domains } from '../assets/domains';
|
|
5
8
|
import { datasources, models } from '../assets/models';
|
|
6
|
-
import {
|
|
9
|
+
import { skills } from '../assets/skills';
|
|
10
|
+
import {
|
|
11
|
+
DomainDefinition, SkillDefinition, DatasourceDefinition, DiscovyreService,
|
|
12
|
+
IdwModel, IdwModelDefinition, InitRdbResourcesConfig,
|
|
13
|
+
} from '../types';
|
|
14
|
+
import { encodeAccountId } from '../utils/encodeAccountId';
|
|
7
15
|
import { DB_NAME, OrPgClient } from '../utils/OrPgClient';
|
|
8
16
|
import { setupUmzug } from '../utils/umzugSetup';
|
|
9
17
|
|
|
@@ -12,8 +20,12 @@ export class InitRdbResources {
|
|
|
12
20
|
private discoveryUrl: string;
|
|
13
21
|
private pgClient: OrPgClient;
|
|
14
22
|
|
|
23
|
+
private idwApi: IdwApiV2;
|
|
24
|
+
private filesApi: Files;
|
|
25
|
+
|
|
15
26
|
private mcpApi!: string;
|
|
16
27
|
private accPart!: string;
|
|
28
|
+
private chatUrl!: string;
|
|
17
29
|
|
|
18
30
|
constructor({ token, discoveryUrl }: InitRdbResourcesConfig) {
|
|
19
31
|
this.token = token;
|
|
@@ -23,14 +35,27 @@ export class InitRdbResources {
|
|
|
23
35
|
token: this.token,
|
|
24
36
|
discoveryUrl: this.discoveryUrl,
|
|
25
37
|
});
|
|
38
|
+
|
|
39
|
+
this.idwApi = new IdwApiV2({
|
|
40
|
+
token,
|
|
41
|
+
discoveryUrl,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
this.filesApi = new Files({
|
|
45
|
+
token,
|
|
46
|
+
discoveryUrl,
|
|
47
|
+
});
|
|
26
48
|
}
|
|
27
49
|
|
|
28
|
-
public async init(): Promise<void> {
|
|
50
|
+
public async init(data: { files: Record<string, string>; }): Promise<void> {
|
|
51
|
+
const { files } = data;
|
|
52
|
+
|
|
29
53
|
const { services } =
|
|
30
54
|
await fetch(`${this.discoveryUrl}/api/v2/services`).then(res => res.json());
|
|
31
55
|
|
|
32
56
|
const sdkApiUrl = services.find((service: DiscovyreService) => service.serviceKey === 'sdk-api').url;
|
|
33
57
|
this.mcpApi = services.find((service: DiscovyreService) => service.serviceKey === 'mcp-api').url;
|
|
58
|
+
this.chatUrl = services.find((service: DiscovyreService) => service.serviceKey === 'rwc')?.url?.replace('rwc.', 'chat.');
|
|
34
59
|
|
|
35
60
|
const { accountId } = await fetch(`${sdkApiUrl}/auth/token`, {
|
|
36
61
|
headers: { Authorization: this.token },
|
|
@@ -58,7 +83,13 @@ export class InitRdbResources {
|
|
|
58
83
|
throw new Error('Migration failed', { cause: error });
|
|
59
84
|
}
|
|
60
85
|
|
|
61
|
-
await this.upsertDefaultData(sequelize,
|
|
86
|
+
await this.upsertDefaultData(sequelize, {
|
|
87
|
+
models,
|
|
88
|
+
datasources,
|
|
89
|
+
domains,
|
|
90
|
+
skills,
|
|
91
|
+
files,
|
|
92
|
+
}, accountId);
|
|
62
93
|
await this.linkOldKnowledgesToDefaultDomain(sequelize);
|
|
63
94
|
|
|
64
95
|
await sequelize.close();
|
|
@@ -66,9 +97,23 @@ export class InitRdbResources {
|
|
|
66
97
|
|
|
67
98
|
private async upsertDefaultData(
|
|
68
99
|
sequelize: Sequelize,
|
|
69
|
-
|
|
70
|
-
|
|
100
|
+
data: {
|
|
101
|
+
models: IdwModelDefinition[],
|
|
102
|
+
datasources: DatasourceDefinition[],
|
|
103
|
+
domains: DomainDefinition[],
|
|
104
|
+
skills: SkillDefinition[],
|
|
105
|
+
files: Record<string, string>,
|
|
106
|
+
},
|
|
107
|
+
accountId: string,
|
|
71
108
|
) {
|
|
109
|
+
const { models, datasources, domains, skills } = data;
|
|
110
|
+
await this.setDatasources(sequelize, models, datasources);
|
|
111
|
+
await this.setSkillsAndDomains(sequelize, domains, skills, data.files, accountId);
|
|
112
|
+
await this.removeDeletedSkills(sequelize, skills);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
private async setDatasources(sequelize: Sequelize, models: IdwModelDefinition[] = [],
|
|
116
|
+
datasources: DatasourceDefinition[] = []) {
|
|
72
117
|
try {
|
|
73
118
|
await sequelize.transaction(async (transaction) => {
|
|
74
119
|
// Upsert datasources
|
|
@@ -175,9 +220,109 @@ export class InitRdbResources {
|
|
|
175
220
|
});
|
|
176
221
|
|
|
177
222
|
// eslint-disable-next-line no-console
|
|
178
|
-
console.log('Default
|
|
223
|
+
console.log('Default datasources successfully upserted.');
|
|
224
|
+
} catch (error) {
|
|
225
|
+
console.error('Error upserting default datasources data:', error);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
private async setSkillsAndDomains(sequelize: Sequelize,
|
|
230
|
+
domains: DomainDefinition[] = [],
|
|
231
|
+
skills: SkillDefinition[] = [],
|
|
232
|
+
files: Record<string, string>,
|
|
233
|
+
accountId: string) {
|
|
234
|
+
try {
|
|
235
|
+
await sequelize.transaction(async (transaction) => {
|
|
236
|
+
let index = 0;
|
|
237
|
+
const domainMap: Record<string, string> = {};
|
|
238
|
+
|
|
239
|
+
for (const domain of domains) {
|
|
240
|
+
const [domainResult] = await sequelize.query(
|
|
241
|
+
`
|
|
242
|
+
INSERT INTO domains (id, account_id, slug, name, abbreviation, image, created_at, updated_at)
|
|
243
|
+
VALUES (:id, :accountId, :slug, :name, :abbreviation, :image, :created_at, :updated_at)
|
|
244
|
+
ON CONFLICT (slug) DO UPDATE
|
|
245
|
+
SET abbreviation = EXCLUDED.abbreviation,
|
|
246
|
+
updated_at = NOW()
|
|
247
|
+
RETURNING id;
|
|
248
|
+
`,
|
|
249
|
+
{
|
|
250
|
+
replacements: {
|
|
251
|
+
id: randomUUID(),
|
|
252
|
+
accountId,
|
|
253
|
+
slug: this.slugify(domain.name),
|
|
254
|
+
name: domain.name,
|
|
255
|
+
abbreviation: domain.abbreviation,
|
|
256
|
+
image: `/domains/img-${index}.png`,
|
|
257
|
+
created_at: new Date(),
|
|
258
|
+
updated_at: new Date(),
|
|
259
|
+
},
|
|
260
|
+
transaction,
|
|
261
|
+
},
|
|
262
|
+
);
|
|
263
|
+
index++;
|
|
264
|
+
domainMap[domain.name] = (domainResult[0] as { id: string; }).id;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
const transformedSkills = skills.map((skill) => this.mapSkillData(skill, files, accountId));
|
|
268
|
+
for (const skill of transformedSkills) {
|
|
269
|
+
const [skillResult] = await sequelize.query(
|
|
270
|
+
`
|
|
271
|
+
INSERT INTO skills (id, account_id, slug, name, description, meta, url, created_at, updated_at)
|
|
272
|
+
VALUES (:id, :accountId, :slug, :name, :description, :meta, :url, :created_at, :updated_at)
|
|
273
|
+
ON CONFLICT (slug) DO UPDATE
|
|
274
|
+
SET description = EXCLUDED.description,
|
|
275
|
+
meta = EXCLUDED.meta,
|
|
276
|
+
url = EXCLUDED.url,
|
|
277
|
+
updated_at = NOW()
|
|
278
|
+
RETURNING id;
|
|
279
|
+
`,
|
|
280
|
+
{
|
|
281
|
+
replacements: {
|
|
282
|
+
id: randomUUID(),
|
|
283
|
+
accountId,
|
|
284
|
+
slug: this.slugify(skill.name),
|
|
285
|
+
name: skill.name,
|
|
286
|
+
description: skill.description,
|
|
287
|
+
meta: JSON.stringify(skill.meta),
|
|
288
|
+
url: skill.url,
|
|
289
|
+
created_at: new Date(),
|
|
290
|
+
updated_at: new Date(),
|
|
291
|
+
},
|
|
292
|
+
transaction,
|
|
293
|
+
},
|
|
294
|
+
);
|
|
295
|
+
const skillId = (skillResult[0] as { id: string; }).id;
|
|
296
|
+
|
|
297
|
+
// delete old relations
|
|
298
|
+
await sequelize.query(
|
|
299
|
+
'DELETE FROM domain_skills WHERE skill = :skill_id;',
|
|
300
|
+
{
|
|
301
|
+
replacements: { skill_id: skillId },
|
|
302
|
+
transaction,
|
|
303
|
+
},
|
|
304
|
+
);
|
|
305
|
+
|
|
306
|
+
await sequelize.query(
|
|
307
|
+
`
|
|
308
|
+
INSERT INTO domain_skills (id, skill, domain)
|
|
309
|
+
VALUES (:id, :skill, :domain)`,
|
|
310
|
+
{
|
|
311
|
+
replacements: {
|
|
312
|
+
id: randomUUID(),
|
|
313
|
+
skill: skillId,
|
|
314
|
+
domain: domainMap[skill.domain],
|
|
315
|
+
},
|
|
316
|
+
transaction,
|
|
317
|
+
},
|
|
318
|
+
);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
// eslint-disable-next-line no-console
|
|
323
|
+
console.log('Default skills and domains successfully upserted.');
|
|
179
324
|
} catch (error) {
|
|
180
|
-
console.error('Error upserting default data:', error);
|
|
325
|
+
console.error('Error upserting default skills and domains data:', error);
|
|
181
326
|
}
|
|
182
327
|
}
|
|
183
328
|
|
|
@@ -223,4 +368,81 @@ export class InitRdbResources {
|
|
|
223
368
|
// BigInt -> base36 string (lowercase [0-9a-z])
|
|
224
369
|
return n.toString(36);
|
|
225
370
|
}
|
|
371
|
+
|
|
372
|
+
private async removeDeletedSkills(sequelize: Sequelize, skillDefinitions: SkillDefinition[]) {
|
|
373
|
+
const [skills] = (await sequelize.query('SELECT * FROM skills')) as SkillItem[][];
|
|
374
|
+
|
|
375
|
+
const isSystem = (skill: SkillItem) => (skill.meta?.skill as { isSystem?: boolean; })?.isSystem;
|
|
376
|
+
const isDeleted = (skill: SkillItem) => !skillDefinitions.find((item) => item.name === skill.name);
|
|
377
|
+
|
|
378
|
+
const deletedSystemSkills = skills.filter((skill) => isSystem(skill) && isDeleted(skill));
|
|
379
|
+
await Promise.all(deletedSystemSkills.map((skill) => this.idwApi.deleteSkill(skill.id)));
|
|
380
|
+
|
|
381
|
+
await Promise.all(
|
|
382
|
+
deletedSystemSkills.map((skill) => sequelize.query('' +
|
|
383
|
+
'DELETE FROM skills WHERE id = :skill_id',
|
|
384
|
+
{ replacements: { skill_id: skill.id } }),
|
|
385
|
+
),
|
|
386
|
+
);
|
|
387
|
+
|
|
388
|
+
const DOCUMENTATION_FOLDER = 'IDW/docs';
|
|
389
|
+
|
|
390
|
+
await Promise.all(
|
|
391
|
+
deletedSystemSkills.map((skill) =>
|
|
392
|
+
this.filesApi
|
|
393
|
+
.deleteFile(`${DOCUMENTATION_FOLDER}/${skill.slug}.pdf`, true)
|
|
394
|
+
.catch((err) => {
|
|
395
|
+
console.warn(`Failed to delete file for skill "${skill.slug}":`, err.message);
|
|
396
|
+
return null;
|
|
397
|
+
}),
|
|
398
|
+
),
|
|
399
|
+
);
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
private slugify(string: string): string {
|
|
403
|
+
const result = String(string)
|
|
404
|
+
.normalize('NFKD') // split accented characters into their base characters and diacritical marks
|
|
405
|
+
.replace(/[\u0300-\u036f]/g, '') // remove all the accents, which happen to be all in the \u03xx UNICODE block.
|
|
406
|
+
.trim() // trim leading or trailing whitespace
|
|
407
|
+
.toLowerCase() // convert to lowercase
|
|
408
|
+
.replace(/[^a-z0-9 -]/g, '') // remove non-alphanumeric characters
|
|
409
|
+
.replace(/\s+/g, '-') // replace spaces with hyphens
|
|
410
|
+
.replace(/-+/g, '-') // remove consecutive hyphens
|
|
411
|
+
.replace(/^-+|-+$/g, ''); // remove leading/trailing hyphens
|
|
412
|
+
|
|
413
|
+
const alphanumCount = (result.match(/[a-z0-9]/g) || []).length;
|
|
414
|
+
|
|
415
|
+
if (alphanumCount < 2) {
|
|
416
|
+
throw new Error('Slug must have at least 2 alphanumeric characters');
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
return result;
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
private mapSkillData(skillDefinition: SkillDefinition, files: Record<string, string>, account_id: string) {
|
|
423
|
+
const encodedAccountId = encodeAccountId(account_id);
|
|
424
|
+
return {
|
|
425
|
+
slug: this.slugify(skillDefinition.name),
|
|
426
|
+
name: skillDefinition.name,
|
|
427
|
+
description: skillDefinition.description,
|
|
428
|
+
url: `${this.chatUrl}/${encodedAccountId}/${skillDefinition.meta.chatId}`,
|
|
429
|
+
domain: skillDefinition.domain ?? UnlabelledDomain.name,
|
|
430
|
+
meta: {
|
|
431
|
+
chat: {
|
|
432
|
+
id: skillDefinition.meta.chatId,
|
|
433
|
+
},
|
|
434
|
+
skill: {
|
|
435
|
+
advanced: skillDefinition.advanced,
|
|
436
|
+
disabled: skillDefinition.disabled,
|
|
437
|
+
editable: skillDefinition.editable,
|
|
438
|
+
userRole: skillDefinition.forRoles,
|
|
439
|
+
forUsers: skillDefinition.forUsers,
|
|
440
|
+
prompt: skillDefinition.meta.prompt,
|
|
441
|
+
promptParams: skillDefinition.meta.promptParams,
|
|
442
|
+
isSystem: skillDefinition.isSystem ?? true,
|
|
443
|
+
docUrl: files[skillDefinition.uid],
|
|
444
|
+
},
|
|
445
|
+
},
|
|
446
|
+
};
|
|
447
|
+
}
|
|
226
448
|
}
|