@onereach/idw-init-account-resources 0.17.3 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.17.2 build /builds/onereach/platform/idw/idw-template/packages/level-system/idw-init-account-resources
3
+ > @onereach/idw-init-account-resources@0.18.0 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
@@ -1,5 +1,18 @@
1
1
  # @onereach/idw-init-account-resources
2
2
 
3
+ ## 0.18.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 3d3b837: pull latest changes from development
8
+ - 3d3b837: Implement migration for the new chat
9
+
10
+ ## 0.18.0
11
+
12
+ ### Minor Changes
13
+
14
+ - 8206380: update the mcp datasource url and params
15
+
3
16
  ## 0.17.3
4
17
 
5
18
  ### Patch Changes
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ module.exports = {
40
+ up: function (queryInterface) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ return __generator(this, function (_a) {
43
+ switch (_a.label) {
44
+ case 0: return [4, queryInterface.context.sequelize.query("\n CREATE TABLE IF NOT EXISTS chat_sessions (\n id UUID NOT NULL PRIMARY KEY,\n account_id UUID NOT NULL,\n user_id UUID NOT NULL,\n hitl_id VARCHAR(30),\n\n title VARCHAR(500), -- \u0437\u0433\u0435\u043D\u0435\u0440\u043E\u0432\u0430\u043D\u0430 \u043D\u0430\u0437\u0432\u0430 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0456 \u043F\u0435\u0440\u0448\u043E\u0433\u043E \u043F\u043E\u0432\u0456\u0434\u043E\u043C\u043B\u0435\u043D\u043D\u044F\n status VARCHAR(30) NOT NULL CHECK (status IN ('active', 'archived')), -- active, archived\n\n metadata JSONB DEFAULT '{}', -- active models for the beginning\n\n created_at timestamptz NOT NULL,\n updated_at timestamptz DEFAULT NULL\n );\n ")];
45
+ case 1:
46
+ _a.sent();
47
+ return [4, queryInterface.context.sequelize.query("\n CREATE TABLE IF NOT EXISTS chat_messages (\n id UUID PRIMARY KEY NOT NULL,\n\n parent_message_id UUID REFERENCES chat_messages(id),\n chat_id UUID REFERENCES chat_sessions(id) ON DELETE CASCADE,\n role VARCHAR(30) NOT NULL CHECK (role IN ('user', 'assistant')),\n\n content TEXT NOT NULL,\n\n -- \u041C\u0435\u0442\u0430\u0434\u0430\u043D\u0456\n metadata JSONB DEFAULT '{}',\n\n created_at timestamptz NOT NULL,\n updated_at timestamptz DEFAULT NULL\n );\n ")];
48
+ case 2:
49
+ _a.sent();
50
+ return [4, queryInterface.context.sequelize.query("\n CREATE TABLE IF NOT EXISTS chat_files (\n PRIMARY KEY (chat_id, message_id),\n\n chat_id UUID REFERENCES chat_sessions(id) ON DELETE CASCADE,\n message_id UUID REFERENCES chat_messages(id) ON DELETE CASCADE,\n\n filename VARCHAR(500) NOT NULL,\n mime_type VARCHAR(100),\n\n size_bytes INTEGER,\n url TEXT,\n\n created_at timestamptz DEFAULT NOW()\n );\n ")];
51
+ case 3:
52
+ _a.sent();
53
+ return [4, queryInterface.context.sequelize.query("\n CREATE INDEX idx_chat_sessions_account_user ON chat_sessions(account_id, user_id);\n CREATE INDEX idx_chat_sessions_updated ON chat_sessions(account_id, updated_at DESC);\n CREATE INDEX idx_chat_messages_session ON chat_messages(chat_id, created_at);\n CREATE INDEX idx_chat_messages_content_search ON chat_messages USING GIN(to_tsvector('english', content));\n ")];
54
+ case 4:
55
+ _a.sent();
56
+ return [2];
57
+ }
58
+ });
59
+ });
60
+ },
61
+ down: function (queryInterface) {
62
+ return __awaiter(this, void 0, void 0, function () {
63
+ return __generator(this, function (_a) {
64
+ switch (_a.label) {
65
+ case 0: return [4, queryInterface.context.sequelize.query('DROP TABLE IF EXISTS chat_sessions')];
66
+ case 1:
67
+ _a.sent();
68
+ return [4, queryInterface.context.sequelize.query('DROP TABLE IF EXISTS chat_messages')];
69
+ case 2:
70
+ _a.sent();
71
+ return [4, queryInterface.context.sequelize.query('DROP TABLE IF EXISTS chat_files')];
72
+ case 3:
73
+ _a.sent();
74
+ return [4, queryInterface.context.sequelize.query("\n DROP INDEX IF EXISTS idx_chat_sessions_account_user ON chat_sessions(account_id, user_id);\n DROP INDEX IF EXISTS idx_chat_sessions_updated ON chat_sessions(account_id, updated_at DESC);\n DROP INDEX IF EXISTS idx_chat_messages_session ON chat_messages(chat_id, created_at);\n DROP INDEX IF EXISTS idx_chat_messages_content_search ON chat_messages USING GIN(to_tsvector('english', content));\n ")];
75
+ case 4:
76
+ _a.sent();
77
+ return [2];
78
+ }
79
+ });
80
+ });
81
+ },
82
+ };
83
+ //# sourceMappingURL=20250922090051-chat-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20250922090051-chat-sessions.js","sourceRoot":"","sources":["../../../src/assets/db_migrations/20250922090051-chat-sessions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKb,MAAM,CAAC,OAAO,GAAG;IACT,EAAE,YAAC,cAAoE;;;;4BAC3E,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,yyBAe5C,CAAC,EAAA;;wBAfF,SAeE,CAAC;wBAEH,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,2hBAgB5C,CAAC,EAAA;;wBAhBF,SAgBE,CAAC;wBAEH,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,4aAe5C,CAAC,EAAA;;wBAfF,SAeE,CAAC;wBAEH,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,8YAK5C,CAAC,EAAA;;wBALF,SAKE,CAAC;;;;;KACJ;IAGK,IAAI,YAAC,cAAwE;;;;4BACjF,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAA;;wBAAlF,SAAkF,CAAC;wBACnF,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAA;;wBAAlF,SAAkF,CAAC;wBACnF,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAA;;wBAA/E,SAA+E,CAAC;wBAEhF,WAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,8aAK5C,CAAC,EAAA;;wBALF,SAKE,CAAC;;;;;KACJ;CACF,CAAC"}
@@ -82,7 +82,7 @@ var InitRdbResources = (function () {
82
82
  }).then(function (res) { return res.json(); })];
83
83
  case 2:
84
84
  accountId = (_a.sent()).accountId;
85
- this.accPart = accountId.split('-')[0];
85
+ this.accPart = this.encode(accountId);
86
86
  return [4, this._getPgConnectionParams()];
87
87
  case 3:
88
88
  connectionParams = _a.sent();
@@ -178,7 +178,7 @@ var InitRdbResources = (function () {
178
178
  case 1:
179
179
  if (!(_i < datasources_1.length)) return [3, 4];
180
180
  ds = datasources_1[_i];
181
- mcp_url = "https://".concat(this.accPart, "-").concat(ds.slug, ".").concat(this.mcpApi.replace('https://', ''), "/mcp");
181
+ mcp_url = "https://".concat(ds.slug, "-").concat(this.accPart, ".").concat(this.mcpApi.replace('https://', ''), "/mcp");
182
182
  return [4, sequelize.query("\n INSERT INTO datasources (\n name, slug, description, config, display_order, icon_url,\n is_default, is_llm, search_order, for_user_roles, mcp_url\n )\n VALUES (\n :name, :slug, :description, :config, :display_order, :icon_url,\n :is_default, :is_llm, :search_order, :for_user_roles, :mcp_url\n )\n ON CONFLICT (slug) DO UPDATE\n SET name = EXCLUDED.name,\n description = EXCLUDED.description,\n config = EXCLUDED.config,\n display_order = EXCLUDED.display_order,\n search_order = EXCLUDED.search_order,\n for_user_roles = EXCLUDED.for_user_roles,\n icon_url = EXCLUDED.icon_url,\n is_llm = EXCLUDED.is_llm,\n mcp_url = EXCLUDED.mcp_url,\n updated_at = NOW();\n ", {
183
183
  replacements: {
184
184
  name: ds.name,
@@ -319,6 +319,13 @@ var InitRdbResources = (function () {
319
319
  });
320
320
  });
321
321
  };
322
+ InitRdbResources.prototype.encode = function (accountId) {
323
+ var hex = accountId.replace(/-/g, '').toLowerCase();
324
+ if (!/^[0-9a-f]{32}$/.test(hex))
325
+ throw new Error('Invalid UUID');
326
+ var n = BigInt('0x' + hex);
327
+ return n.toString(36);
328
+ };
322
329
  return InitRdbResources;
323
330
  }());
324
331
  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.17.3",
3
+ "version": "0.18.1",
4
4
  "description": "Creation of required resources in OneReach account to enable IDW",
5
5
  "license": "UNLICENSED",
6
6
  "contributors": [
@@ -30,6 +30,7 @@
30
30
  "@types/pg": "8.11.6",
31
31
  "@types/semver": "7.5.8",
32
32
  "bun": "1.1.9",
33
+ "ts-node": "^10.9.0",
33
34
  "rimraf": "5.0.7",
34
35
  "typescript": "5.4.5"
35
36
  },
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+ import { QueryInterface, Sequelize } from 'sequelize';
3
+
4
+
5
+ /** @type {import('sequelize-cli').Migration} */
6
+ module.exports = {
7
+ async up(queryInterface: QueryInterface & {context: {sequelize: Sequelize;};}) {
8
+ await queryInterface.context.sequelize.query(`
9
+ CREATE TABLE IF NOT EXISTS chat_sessions (
10
+ id UUID NOT NULL PRIMARY KEY,
11
+ account_id UUID NOT NULL,
12
+ user_id UUID NOT NULL,
13
+ hitl_id VARCHAR(30),
14
+
15
+ title VARCHAR(500), -- згенерована назва на основі першого повідомлення
16
+ status VARCHAR(30) NOT NULL CHECK (status IN ('active', 'archived')), -- active, archived
17
+
18
+ metadata JSONB DEFAULT '{}', -- active models for the beginning
19
+
20
+ created_at timestamptz NOT NULL,
21
+ updated_at timestamptz DEFAULT NULL
22
+ );
23
+ `);
24
+
25
+ await queryInterface.context.sequelize.query(`
26
+ CREATE TABLE IF NOT EXISTS chat_messages (
27
+ id UUID PRIMARY KEY NOT NULL,
28
+
29
+ parent_message_id UUID REFERENCES chat_messages(id),
30
+ chat_id UUID REFERENCES chat_sessions(id) ON DELETE CASCADE,
31
+ role VARCHAR(30) NOT NULL CHECK (role IN ('user', 'assistant')),
32
+
33
+ content TEXT NOT NULL,
34
+
35
+ -- Метадані
36
+ metadata JSONB DEFAULT '{}',
37
+
38
+ created_at timestamptz NOT NULL,
39
+ updated_at timestamptz DEFAULT NULL
40
+ );
41
+ `);
42
+
43
+ await queryInterface.context.sequelize.query(`
44
+ CREATE TABLE IF NOT EXISTS chat_files (
45
+ PRIMARY KEY (chat_id, message_id),
46
+
47
+ chat_id UUID REFERENCES chat_sessions(id) ON DELETE CASCADE,
48
+ message_id UUID REFERENCES chat_messages(id) ON DELETE CASCADE,
49
+
50
+ filename VARCHAR(500) NOT NULL,
51
+ mime_type VARCHAR(100),
52
+
53
+ size_bytes INTEGER,
54
+ url TEXT,
55
+
56
+ created_at timestamptz DEFAULT NOW()
57
+ );
58
+ `);
59
+
60
+ await queryInterface.context.sequelize.query(`
61
+ CREATE INDEX idx_chat_sessions_account_user ON chat_sessions(account_id, user_id);
62
+ CREATE INDEX idx_chat_sessions_updated ON chat_sessions(account_id, updated_at DESC);
63
+ CREATE INDEX idx_chat_messages_session ON chat_messages(chat_id, created_at);
64
+ CREATE INDEX idx_chat_messages_content_search ON chat_messages USING GIN(to_tsvector('english', content));
65
+ `);
66
+ },
67
+
68
+
69
+ async down(queryInterface: QueryInterface & { context: { sequelize: Sequelize; }; }) {
70
+ await queryInterface.context.sequelize.query('DROP TABLE IF EXISTS chat_sessions');
71
+ await queryInterface.context.sequelize.query('DROP TABLE IF EXISTS chat_messages');
72
+ await queryInterface.context.sequelize.query('DROP TABLE IF EXISTS chat_files');
73
+
74
+ await queryInterface.context.sequelize.query(`
75
+ DROP INDEX IF EXISTS idx_chat_sessions_account_user ON chat_sessions(account_id, user_id);
76
+ DROP INDEX IF EXISTS idx_chat_sessions_updated ON chat_sessions(account_id, updated_at DESC);
77
+ DROP INDEX IF EXISTS idx_chat_messages_session ON chat_messages(chat_id, created_at);
78
+ DROP INDEX IF EXISTS idx_chat_messages_content_search ON chat_messages USING GIN(to_tsvector('english', content));
79
+ `);
80
+ },
81
+ };
@@ -43,7 +43,7 @@ export class InitRdbResources {
43
43
  headers: { Authorization: this.token },
44
44
  }).then(res => res.json());
45
45
 
46
- this.accPart = accountId.split('-')[0];
46
+ this.accPart = this.encode(accountId);
47
47
 
48
48
  const connectionParams = await this._getPgConnectionParams();
49
49
  const sequelize = new Sequelize(
@@ -118,7 +118,7 @@ export class InitRdbResources {
118
118
  await sequelize.transaction(async (transaction) => {
119
119
  // Upsert datasources
120
120
  for (const ds of datasources) {
121
- const mcp_url = `https://${this.accPart}-${ds.slug}.${this.mcpApi.replace('https://', '')}/mcp`;
121
+ const mcp_url = `https://${ds.slug}-${this.accPart}.${this.mcpApi.replace('https://', '')}/mcp`;
122
122
 
123
123
  await sequelize.query(
124
124
  `
@@ -271,4 +271,15 @@ export class InitRdbResources {
271
271
  await idwCoreSequelize.close();
272
272
  }
273
273
  }
274
+
275
+ private encode(accountId: string): string {
276
+ const hex = accountId.replace(/-/g, '').toLowerCase();
277
+ if (!/^[0-9a-f]{32}$/.test(hex)) throw new Error('Invalid UUID');
278
+
279
+ // hex -> BigInt
280
+ const n = BigInt('0x' + hex);
281
+
282
+ // BigInt -> base36 string (lowercase [0-9a-z])
283
+ return n.toString(36);
284
+ }
274
285
  }