mirror of
https://github.com/hcengineering/platform.git
synced 2026-08-17 18:05:42 +02:00
UBERF-13587: Huly secretary integration (#9861)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
This commit is contained in:
Generated
+143
@@ -133,6 +133,15 @@ importers:
|
||||
'@rush-temp/activity-resources':
|
||||
specifier: file:./projects/activity-resources.tgz
|
||||
version: file:projects/activity-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@22.15.29)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
'@rush-temp/ai-assistant':
|
||||
specifier: file:./projects/ai-assistant.tgz
|
||||
version: file:projects/ai-assistant.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@22.15.29)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
'@rush-temp/ai-assistant-assets':
|
||||
specifier: file:./projects/ai-assistant-assets.tgz
|
||||
version: file:projects/ai-assistant-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
'@rush-temp/ai-assistant-resources':
|
||||
specifier: file:./projects/ai-assistant-resources.tgz
|
||||
version: file:projects/ai-assistant-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@22.15.29)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
'@rush-temp/ai-bot':
|
||||
specifier: file:./projects/ai-bot.tgz
|
||||
version: file:projects/ai-bot.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@22.15.29)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
@@ -559,6 +568,9 @@ importers:
|
||||
'@rush-temp/model-activity':
|
||||
specifier: file:./projects/model-activity.tgz
|
||||
version: file:projects/model-activity.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
'@rush-temp/model-ai-assistant':
|
||||
specifier: file:./projects/model-ai-assistant.tgz
|
||||
version: file:projects/model-ai-assistant.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
'@rush-temp/model-ai-bot':
|
||||
specifier: file:./projects/model-ai-bot.tgz
|
||||
version: file:projects/model-ai-bot.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
@@ -4379,6 +4391,18 @@ packages:
|
||||
resolution: {integrity: sha512-6ZhlPiyVd+TRx0o0qdULlvoalPU0FlX8HS5NAkSgjhkdKMHuvDNDNpIhPjTZ4DZrXPpNBZZyXSiarXAKD4G8Qw==, tarball: file:projects/activity.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/ai-assistant-assets@file:projects/ai-assistant-assets.tgz':
|
||||
resolution: {integrity: sha512-xMeqPY9WNH6VNmUx0H+MYd+6a7X9/p+ETR+1kFr/NN5TAALQqG4+7POW8a1z/YQESI0aEt1MXqzbpCXdN6MRSg==, tarball: file:projects/ai-assistant-assets.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/ai-assistant-resources@file:projects/ai-assistant-resources.tgz':
|
||||
resolution: {integrity: sha512-aDNUOd/pe/cLE9TuPx2N0b8qPbYLWui5iCYXUs32W7WAYbrXJDOZj2tYJlZR0kl0j4ydoHeJzn3x6uE1WteM7w==, tarball: file:projects/ai-assistant-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/ai-assistant@file:projects/ai-assistant.tgz':
|
||||
resolution: {integrity: sha512-zV980Axii2zE/l6RXcue6zoj267Mh2GIg8G+4Ih/+vzBtPP2gjojU7kg2jvxUlTAp/ovYd2PALmutDTUShw60A==, tarball: file:projects/ai-assistant.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/ai-bot-resources@file:projects/ai-bot-resources.tgz':
|
||||
resolution: {integrity: sha512-Ne8uj1rTTgpgWHs/SZ9wwZQacLv4LLKx0n7qVcgBoR2rl5kRcjChiUlEA2+NLMTXfwqoUBJORNQSRnpLZkUp8g==, tarball: file:projects/ai-bot-resources.tgz}
|
||||
version: 0.0.0
|
||||
@@ -4943,6 +4967,10 @@ packages:
|
||||
resolution: {integrity: sha512-ZNulrcnrHfqoQt8d2s3Ef83wxd1DeX+r9HDWpOclei6CuuebWnNGVSEIXmJ9fr9DQj6yJVbkj481qLgI7e3K5g==, tarball: file:projects/model-activity.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/model-ai-assistant@file:projects/model-ai-assistant.tgz':
|
||||
resolution: {integrity: sha512-H9B1vpwWN8SAb94yJbs6Kh+klMeefGcf4blEAHefllxpeSY4lRIUsKabraQ9/oKLTnWX6IA5CcYb4c/3+qgLzQ==, tarball: file:projects/model-ai-assistant.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/model-ai-bot@file:projects/model-ai-bot.tgz':
|
||||
resolution: {integrity: sha512-24xp2zEvYzmo/W4PDZRdhTmoNANfgqa7M3wOsvbEwpeXZhhEaWfE+yZEF3ZRlqdgIUK+EpmugoM3KScCYT6+XQ==, tarball: file:projects/model-ai-bot.tgz}
|
||||
version: 0.0.0
|
||||
@@ -17557,6 +17585,96 @@ snapshots:
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
||||
'@rush-temp/ai-assistant-assets@file:projects/ai-assistant-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))':
|
||||
dependencies:
|
||||
'@types/jest': 29.5.12
|
||||
'@types/node': 22.15.29
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint: 8.56.0
|
||||
eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint-plugin-import: 2.29.1(eslint@8.56.0)
|
||||
eslint-plugin-n: 15.7.0(eslint@8.56.0)
|
||||
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
|
||||
jest: 29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
prettier: 3.2.5
|
||||
ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(jest@29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(typescript@5.8.3)
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- '@jest/types'
|
||||
- babel-jest
|
||||
- babel-plugin-macros
|
||||
- esbuild
|
||||
- node-notifier
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
||||
'@rush-temp/ai-assistant-resources@file:projects/ai-assistant-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@22.15.29)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))':
|
||||
dependencies:
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint: 8.56.0
|
||||
eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint-plugin-import: 2.29.1(eslint@8.56.0)
|
||||
eslint-plugin-n: 15.7.0(eslint@8.56.0)
|
||||
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
|
||||
eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.20)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
jest: 29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
prettier: 3.2.5
|
||||
prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.20)
|
||||
sass: 1.71.1
|
||||
svelte: 4.2.20
|
||||
svelte-check: 3.6.9(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(postcss@8.5.3)(sass@1.71.1)(svelte@4.2.20)
|
||||
svelte-eslint-parser: 0.33.1(svelte@4.2.20)
|
||||
svelte-loader: 3.2.0(svelte@4.2.20)
|
||||
svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(postcss@8.5.3)(sass@1.71.1)(svelte@4.2.20)(typescript@5.8.3)
|
||||
ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(jest@29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(typescript@5.8.3)
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- '@jest/types'
|
||||
- '@types/node'
|
||||
- babel-jest
|
||||
- babel-plugin-macros
|
||||
- coffeescript
|
||||
- esbuild
|
||||
- less
|
||||
- node-notifier
|
||||
- postcss
|
||||
- postcss-load-config
|
||||
- pug
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
||||
'@rush-temp/ai-assistant@file:projects/ai-assistant.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@22.15.29)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))':
|
||||
dependencies:
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint: 8.56.0
|
||||
eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint-plugin-import: 2.29.1(eslint@8.56.0)
|
||||
eslint-plugin-n: 15.7.0(eslint@8.56.0)
|
||||
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
|
||||
jest: 29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
prettier: 3.2.5
|
||||
ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(jest@29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(typescript@5.8.3)
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- '@jest/types'
|
||||
- '@types/node'
|
||||
- babel-jest
|
||||
- babel-plugin-macros
|
||||
- esbuild
|
||||
- node-notifier
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
||||
'@rush-temp/ai-bot-resources@file:projects/ai-bot-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@22.15.29)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(postcss@8.5.3)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))':
|
||||
dependencies:
|
||||
'@types/jest': 29.5.12
|
||||
@@ -21918,6 +22036,31 @@ snapshots:
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
||||
'@rush-temp/model-ai-assistant@file:projects/model-ai-assistant.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))':
|
||||
dependencies:
|
||||
'@types/jest': 29.5.12
|
||||
'@types/node': 22.15.29
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint: 8.56.0
|
||||
eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.3))(eslint@8.56.0)(typescript@5.8.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.8.3)
|
||||
eslint-plugin-import: 2.29.1(eslint@8.56.0)
|
||||
eslint-plugin-n: 15.7.0(eslint@8.56.0)
|
||||
eslint-plugin-promise: 6.1.1(eslint@8.56.0)
|
||||
jest: 29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))
|
||||
prettier: 3.2.5
|
||||
ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(jest@29.7.0(@types/node@22.15.29)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3)))(typescript@5.8.3)
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- '@jest/types'
|
||||
- babel-jest
|
||||
- babel-plugin-macros
|
||||
- esbuild
|
||||
- node-notifier
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
||||
'@rush-temp/model-ai-bot@file:projects/model-ai-bot.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.25.9)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.15.29)(typescript@5.8.3))':
|
||||
dependencies:
|
||||
'@types/jest': 29.5.12
|
||||
|
||||
@@ -258,6 +258,9 @@
|
||||
"@hcengineering/huly-mail": "^0.6.0",
|
||||
"@hcengineering/huly-mail-assets": "^0.6.0",
|
||||
"@hcengineering/huly-mail-resources": "^0.6.0",
|
||||
"@hcengineering/ai-assistant": "^0.6.0",
|
||||
"@hcengineering/ai-assistant-assets": "^0.6.0",
|
||||
"@hcengineering/ai-assistant-resources": "^0.6.0",
|
||||
"electron-squirrel-startup": "~1.0.0",
|
||||
"dotenv": "~16.0.0",
|
||||
"electron-context-menu": "^4.0.4",
|
||||
|
||||
@@ -68,6 +68,7 @@ import { achievementId } from '@hcengineering/achievement'
|
||||
import communication, { communicationId } from '@hcengineering/communication'
|
||||
import { emojiId } from '@hcengineering/emoji'
|
||||
import { hulyMailId } from '@hcengineering/huly-mail'
|
||||
import { aiAssistantId } from '@hcengineering/ai-assistant'
|
||||
import billingPlugin, { billingId } from '@hcengineering/billing'
|
||||
|
||||
import '@hcengineering/activity-assets'
|
||||
@@ -125,6 +126,7 @@ import '@hcengineering/media-assets'
|
||||
import '@hcengineering/communication-assets'
|
||||
import '@hcengineering/billing-assets'
|
||||
import '@hcengineering/huly-mail-assets'
|
||||
import '@hcengineering/ai-assistant-assets'
|
||||
|
||||
import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector'
|
||||
import { coreId } from '@hcengineering/core'
|
||||
@@ -246,6 +248,7 @@ function configureI18n (): void {
|
||||
addStringsLoader(emojiId, async (lang: string) => await import(`@hcengineering/emoji-assets/lang/${lang}.json`))
|
||||
addStringsLoader(billingId, async (lang: string) => await import(`@hcengineering/billing-assets/lang/${lang}.json`))
|
||||
addStringsLoader(hulyMailId, async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`))
|
||||
addStringsLoader(aiAssistantId, async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`))
|
||||
}
|
||||
|
||||
export class PlatformBranding {
|
||||
|
||||
@@ -279,6 +279,9 @@
|
||||
"@hcengineering/huly-mail": "^0.6.0",
|
||||
"@hcengineering/huly-mail-assets": "^0.6.0",
|
||||
"@hcengineering/huly-mail-resources": "^0.6.0",
|
||||
"@hcengineering/ai-assistant": "^0.6.0",
|
||||
"@hcengineering/ai-assistant-assets": "^0.6.0",
|
||||
"@hcengineering/ai-assistant-resources": "^0.6.0",
|
||||
"@sentry/svelte": "^9.22.0",
|
||||
"posthog-js": "^1.246.0",
|
||||
"readable-stream": "^4.7.0",
|
||||
|
||||
@@ -77,6 +77,7 @@ import communication, { communicationId } from '@hcengineering/communication'
|
||||
import {emojiId} from '@hcengineering/emoji'
|
||||
import billingPlugin, {billingId} from '@hcengineering/billing'
|
||||
import { hulyMailId } from '@hcengineering/huly-mail'
|
||||
import { aiAssistantId } from '@hcengineering/ai-assistant'
|
||||
|
||||
import '@hcengineering/activity-assets'
|
||||
import '@hcengineering/analytics-collector-assets'
|
||||
@@ -133,6 +134,7 @@ import '@hcengineering/communication-assets'
|
||||
import '@hcengineering/emoji-assets'
|
||||
import '@hcengineering/billing-assets'
|
||||
import '@hcengineering/huly-mail-assets'
|
||||
import '@hcengineering/ai-assistant-assets'
|
||||
|
||||
import { coreId } from '@hcengineering/core'
|
||||
import presentation, {
|
||||
@@ -375,6 +377,7 @@ function configureI18n(): void {
|
||||
addStringsLoader(emojiId, async (lang: string) => await import(`@hcengineering/emoji-assets/lang/${lang}.json`))
|
||||
addStringsLoader(billingId, async (lang: string) => await import(`@hcengineering/billing-assets/lang/${lang}.json`))
|
||||
addStringsLoader(hulyMailId, async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`))
|
||||
addStringsLoader(aiAssistantId, async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`))
|
||||
}
|
||||
|
||||
export async function configurePlatform() {
|
||||
@@ -586,6 +589,7 @@ export async function configurePlatform() {
|
||||
addLocation(emojiId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/emoji-resources'))
|
||||
addLocation(billingId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/billing-resources'))
|
||||
addLocation(hulyMailId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/huly-mail-resources'))
|
||||
addLocation(aiAssistantId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/ai-assistant-resources'))
|
||||
|
||||
setMetadata(client.metadata.FilterModel, 'ui')
|
||||
setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin])
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
*
|
||||
!/lib/**
|
||||
!CHANGELOG.md
|
||||
/lib/**/__tests__/
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
"rigPackageName": "@hcengineering/platform-rig",
|
||||
"rigProfile": "model"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
testEnvironment: 'node',
|
||||
testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'],
|
||||
roots: ["./src"],
|
||||
coverageReporters: ["text-summary", "html"]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"name": "@hcengineering/model-ai-assistant",
|
||||
"version": "0.6.0",
|
||||
"main": "lib/index.js",
|
||||
"svelte": "src/index.ts",
|
||||
"types": "types/index.d.ts",
|
||||
"author": "Copyright © Hardcore Engineering Inc.",
|
||||
"template": "@hcengineering/model-package",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "compile",
|
||||
"build:watch": "compile",
|
||||
"format": "format src",
|
||||
"_phase:build": "compile transpile src",
|
||||
"_phase:format": "format src",
|
||||
"_phase:validate": "compile validate",
|
||||
"_phase:test": "jest --passWithNoTests --silent --forceExit",
|
||||
"test": "jest --passWithNoTests --silent --forceExit"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@hcengineering/platform-rig": "^0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.11.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-n": "^15.4.0",
|
||||
"eslint": "^8.54.0",
|
||||
"@typescript-eslint/parser": "^6.11.0",
|
||||
"eslint-config-standard-with-typescript": "^40.0.0",
|
||||
"prettier": "^3.1.0",
|
||||
"typescript": "^5.8.3",
|
||||
"@types/node": "^22.15.29",
|
||||
"jest": "^29.7.0",
|
||||
"@types/jest": "^29.5.5",
|
||||
"ts-jest": "^29.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hcengineering/model": "^0.6.11",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/model-core": "^0.6.0",
|
||||
"@hcengineering/ai-assistant": "^0.6.0",
|
||||
"@hcengineering/ai-assistant-resources": "^0.6.0",
|
||||
"@hcengineering/setting": "^0.6.17",
|
||||
"@hcengineering/ui": "^0.6.15"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { aiAssistantIntegrationKind } from '@hcengineering/ai-assistant'
|
||||
import { type Builder } from '@hcengineering/model'
|
||||
import core from '@hcengineering/model-core'
|
||||
import setting from '@hcengineering/setting'
|
||||
|
||||
import aiAssistant from './plugin'
|
||||
|
||||
export { aiAssistantId } from '@hcengineering/ai-assistant'
|
||||
export { default } from './plugin'
|
||||
|
||||
export function createModel (builder: Builder): void {
|
||||
builder.createDoc(
|
||||
setting.class.IntegrationType,
|
||||
core.space.Model,
|
||||
{
|
||||
label: aiAssistant.string.IntegrationLabel,
|
||||
description: aiAssistant.string.IntegrationDescription,
|
||||
icon: aiAssistant.component.IconHulyAssistant,
|
||||
allowMultiple: false,
|
||||
createComponent: aiAssistant.component.Connect,
|
||||
onDisconnect: aiAssistant.handler.DisconnectHandler,
|
||||
onDisconnectAll: aiAssistant.handler.DisconnectAllHandler,
|
||||
reconnectComponent: aiAssistant.component.Connect,
|
||||
kind: aiAssistantIntegrationKind
|
||||
},
|
||||
aiAssistant.integrationType.AiAssistant
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { type IntlString, mergeIds } from '@hcengineering/platform'
|
||||
import { aiAssistantId } from '@hcengineering/ai-assistant'
|
||||
import aiAssistant from '@hcengineering/ai-assistant-resources/src/plugin'
|
||||
|
||||
export default mergeIds(aiAssistantId, aiAssistant, {
|
||||
string: {
|
||||
ConfigLabel: '' as IntlString,
|
||||
ConfigDescription: '' as IntlString,
|
||||
IntegrationLabel: '' as IntlString,
|
||||
IntegrationDescription: '' as IntlString
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "./node_modules/@hcengineering/platform-rig/profiles/model/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
"declarationDir": "./types",
|
||||
"tsBuildInfoFile": ".build/build.tsbuildinfo"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "lib", "dist", "types", "bundle"]
|
||||
}
|
||||
@@ -132,6 +132,7 @@
|
||||
"@hcengineering/model-communication": "^0.6.0",
|
||||
"@hcengineering/model-emoji": "^0.6.0",
|
||||
"@hcengineering/model-billing": "^0.6.0",
|
||||
"@hcengineering/model-huly-mail": "^0.6.0"
|
||||
"@hcengineering/model-huly-mail": "^0.6.0",
|
||||
"@hcengineering/model-ai-assistant": "^0.6.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,6 +108,7 @@ import testManagement, {
|
||||
} from '@hcengineering/model-test-management'
|
||||
import { mailId, createModel as mailModel } from '@hcengineering/model-mail'
|
||||
import { hulyMailId, createModel as hulyMailModel } from '@hcengineering/model-huly-mail'
|
||||
import aiAssistant, { aiAssistantId, createModel as aiAssistantModel } from '@hcengineering/model-ai-assistant'
|
||||
|
||||
import {
|
||||
serverDocumentsId,
|
||||
@@ -481,6 +482,18 @@ export default function buildModel (): Builder {
|
||||
[mailModel, mailId],
|
||||
[billingModel, billingId, { beta: false, hidden: true, enabled: true }],
|
||||
[hulyMailModel, hulyMailId],
|
||||
[
|
||||
aiAssistantModel,
|
||||
aiAssistantId,
|
||||
{
|
||||
label: aiAssistant.string.ConfigLabel,
|
||||
description: aiAssistant.string.ConfigDescription,
|
||||
hidden: true,
|
||||
enabled: false,
|
||||
beta: true,
|
||||
classFilter: defaultFilter
|
||||
}
|
||||
],
|
||||
|
||||
[serverCoreModel, serverCoreId],
|
||||
[serverAttachmentModel, serverAttachmentId],
|
||||
|
||||
@@ -223,6 +223,7 @@ export interface AccountClient {
|
||||
mergeSpecifiedPersons: (primaryPerson: PersonUuid, secondaryPerson: PersonUuid) => Promise<void>
|
||||
mergeSpecifiedAccounts: (primaryAccount: AccountUuid, secondaryAccount: AccountUuid) => Promise<void>
|
||||
addEmailSocialId: (email: string) => Promise<OtpInfo>
|
||||
addHulyAssistantSocialId: () => Promise<PersonId>
|
||||
|
||||
setCookie: () => Promise<void>
|
||||
deleteCookie: () => Promise<void>
|
||||
@@ -1098,6 +1099,15 @@ class AccountClientImpl implements AccountClient {
|
||||
return await this.rpc(request)
|
||||
}
|
||||
|
||||
async addHulyAssistantSocialId (): Promise<PersonId> {
|
||||
const request = {
|
||||
method: 'addHulyAssistantSocialId' as const,
|
||||
params: {}
|
||||
}
|
||||
|
||||
return await this.rpc(request)
|
||||
}
|
||||
|
||||
async setCookie (): Promise<void> {
|
||||
const url = concatLink(this.url, '/cookie')
|
||||
const response = await fetch(url, { ...this.request, method: 'PUT' })
|
||||
|
||||
@@ -869,7 +869,8 @@ export enum SocialIdType {
|
||||
PHONE = 'phone',
|
||||
OIDC = 'oidc',
|
||||
HULY = 'huly',
|
||||
TELEGRAM = 'telegram'
|
||||
TELEGRAM = 'telegram',
|
||||
HULY_ASSISTANT = 'huly-assistant'
|
||||
}
|
||||
|
||||
export interface SocialId {
|
||||
|
||||
@@ -977,7 +977,7 @@ export function pickPrimarySocialId (socialIds: SocialId[]): SocialId {
|
||||
return hulySocialIds[0] ?? activeSocialIds[0]
|
||||
}
|
||||
|
||||
export const loginSocialTypes = [SocialIdType.EMAIL, SocialIdType.GOOGLE, SocialIdType.GITHUB]
|
||||
export const loginSocialTypes = [SocialIdType.EMAIL, SocialIdType.GOOGLE, SocialIdType.GITHUB, SocialIdType.OIDC]
|
||||
|
||||
export function notEmpty<T> (id: T | undefined | null): id is T {
|
||||
return id !== undefined && id !== null && id !== ''
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
"rigPackageName": "@hcengineering/platform-rig",
|
||||
"rigProfile": "assets"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
testEnvironment: 'node',
|
||||
testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'],
|
||||
roots: ["./src"],
|
||||
coverageReporters: ["text-summary", "html"]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "AI Asistent",
|
||||
"IntegrationDescription": "Váš AI asistent poháněný umělou inteligencí, který pomáhá organizovat, automatizovat a zjednodušit váš denní pracovní tok napříč platformou",
|
||||
"ConfigLabel": "AI Asistent",
|
||||
"ConfigDescription": "Osobní asistent poháněný umělou inteligencí",
|
||||
"Connect": "Připojit",
|
||||
"Cancel": "Zrušit",
|
||||
"Status": "Stav",
|
||||
"FailedToConnect": "Služba AI Asistenta není dostupná",
|
||||
"Configure": "Konfigurovat AI Asistenta"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "KI-Assistent",
|
||||
"IntegrationDescription": "Ihr KI-unterstützter persönlicher Assistent, der hilft, Ihren täglichen Arbeitsablauf auf der Plattform zu organisieren, automatisieren und zu optimieren",
|
||||
"ConfigLabel": "KI-Assistent",
|
||||
"ConfigDescription": "KI-unterstützter persönlicher Assistent",
|
||||
"Connect": "Verbinden",
|
||||
"Cancel": "Abbrechen",
|
||||
"Status": "Status",
|
||||
"FailedToConnect": "KI-Assistent-Service ist nicht verfügbar",
|
||||
"Configure": "KI-Assistent konfigurieren"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "AI Assistant",
|
||||
"IntegrationDescription": "Your AI-powered personal assistant that helps organize, automate, and streamline your daily workflow across the platform",
|
||||
"ConfigLabel": "AI Assistant",
|
||||
"ConfigDescription": "AI-powered personal assistant",
|
||||
"Connect": "Connect",
|
||||
"Cancel": "Cancel",
|
||||
"Status": "Status",
|
||||
"FailedToConnect": "AI Assistant service is not available",
|
||||
"Configure": "Configure AI Assistant"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "Asistente de IA",
|
||||
"IntegrationDescription": "Tu asistente personal impulsado por IA que ayuda a organizar, automatizar y optimizar tu flujo de trabajo diario en toda la plataforma",
|
||||
"ConfigLabel": "Asistente de IA",
|
||||
"ConfigDescription": "Asistente personal impulsado por IA",
|
||||
"Connect": "Conectar",
|
||||
"Cancel": "Cancelar",
|
||||
"Status": "Estado",
|
||||
"FailedToConnect": "El servicio del Asistente de IA no está disponible",
|
||||
"Configure": "Configurar Asistente de IA"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "Assistant IA",
|
||||
"IntegrationDescription": "Votre assistant personnel alimenté par IA qui aide à organiser, automatiser et rationaliser votre flux de travail quotidien sur la plateforme",
|
||||
"ConfigLabel": "Assistant IA",
|
||||
"ConfigDescription": "Assistant personnel alimenté par IA",
|
||||
"Connect": "Se connecter",
|
||||
"Cancel": "Annuler",
|
||||
"Status": "Statut",
|
||||
"FailedToConnect": "Le service Assistant IA n'est pas disponible",
|
||||
"Configure": "Configurer l'Assistant IA"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "Assistente AI",
|
||||
"IntegrationDescription": "Il tuo assistente personale basato sull'AI che aiuta a organizzare, automatizzare e snellire il tuo flusso di lavoro quotidiano sulla piattaforma",
|
||||
"ConfigLabel": "Assistente AI",
|
||||
"ConfigDescription": "Assistente personale basato sull'AI",
|
||||
"Connect": "Connetti",
|
||||
"Cancel": "Annulla",
|
||||
"Status": "Stato",
|
||||
"FailedToConnect": "Il servizio Assistente AI non è disponibile",
|
||||
"Configure": "Configura Assistente AI"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "AIアシスタント",
|
||||
"IntegrationDescription": "プラットフォーム全体で日常のワークフローを整理、自動化、効率化するAI搭載のパーソナルアシスタント",
|
||||
"ConfigLabel": "AIアシスタント",
|
||||
"ConfigDescription": "AI搭載のパーソナルアシスタント",
|
||||
"Connect": "接続",
|
||||
"Cancel": "キャンセル",
|
||||
"Status": "ステータス",
|
||||
"FailedToConnect": "AIアシスタントサービスは利用できません",
|
||||
"Configure": "AIアシスタント設定"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "Assistente de IA",
|
||||
"IntegrationDescription": "Seu assistente pessoal alimentado por IA que ajuda a organizar, automatizar e simplificar seu fluxo de trabalho diário na plataforma",
|
||||
"ConfigLabel": "Assistente de IA",
|
||||
"ConfigDescription": "Assistente pessoal alimentado por IA",
|
||||
"Connect": "Conectar",
|
||||
"Cancel": "Cancelar",
|
||||
"Status": "Status",
|
||||
"FailedToConnect": "O serviço do Assistente de IA não está disponível",
|
||||
"Configure": "Configurar Assistente de IA"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "ИИ Помощник",
|
||||
"IntegrationDescription": "Ваш персональный помощник на основе ИИ, который помогает организовать, автоматизировать и оптимизировать ваш ежедневный рабочий процесс на платформе",
|
||||
"ConfigLabel": "ИИ Помощник",
|
||||
"ConfigDescription": "Персональный помощник на основе ИИ",
|
||||
"Connect": "Подключить",
|
||||
"Cancel": "Отмена",
|
||||
"Status": "Статус",
|
||||
"FailedToConnect": "Служба ИИ Помощника недоступна",
|
||||
"Configure": "Настроить ИИ Помощника"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"string": {
|
||||
"IntegrationLabel": "AI 助手",
|
||||
"IntegrationDescription": "您的 AI 驱动的个人助手,帮助组织、自动化和简化您在平台上的日常工作流程",
|
||||
"ConfigLabel": "AI 助手",
|
||||
"ConfigDescription": "AI 驱动的个人助手",
|
||||
"Connect": "连接",
|
||||
"Cancel": "取消",
|
||||
"Status": "状态",
|
||||
"FailedToConnect": "AI 助手服务不可用",
|
||||
"Configure": "配置 AI 助手"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "@hcengineering/ai-assistant-assets",
|
||||
"version": "0.6.0",
|
||||
"main": "src/index.ts",
|
||||
"author": "Copyright © Hardcore Engineering Inc.",
|
||||
"template": "@hcengineering/assets-package",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "compile",
|
||||
"test": "jest --passWithNoTests --silent",
|
||||
"format": "format src",
|
||||
"build:watch": "compile",
|
||||
"build:docs": "",
|
||||
"_phase:build": "compile transpile src",
|
||||
"_phase:test": "jest --passWithNoTests --silent",
|
||||
"_phase:format": "format src",
|
||||
"_phase:validate": "compile validate"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@hcengineering/platform-rig": "^0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.11.0",
|
||||
"@typescript-eslint/parser": "^6.11.0",
|
||||
"eslint-config-standard-with-typescript": "^40.0.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-n": "^15.4.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint": "^8.54.0",
|
||||
"prettier": "^3.1.0",
|
||||
"typescript": "^5.8.3",
|
||||
"@types/node": "^22.15.29",
|
||||
"jest": "^29.7.0",
|
||||
"ts-jest": "^29.1.1",
|
||||
"@types/jest": "^29.5.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/ai-assistant": "^0.6.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { makeLocalesTest } from '@hcengineering/platform'
|
||||
|
||||
it(
|
||||
'Locales are equale',
|
||||
makeLocalesTest((lang) => import(`../../lang/${lang}.json`))
|
||||
)
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "./node_modules/@hcengineering/platform-rig/profiles/assets/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
"declarationDir": "./types",
|
||||
"types": ["node", "jest"],
|
||||
"tsBuildInfoFile": ".build/build.tsbuildinfo"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "lib", "dist", "types", "bundle"]
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'],
|
||||
parserOptions: { tsconfigRootDir: __dirname }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"trailingComma": "none",
|
||||
"tabWidth": 2,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"printWidth": 120,
|
||||
"useTabs": false,
|
||||
"bracketSpacing": true,
|
||||
"proseWrap": "preserve",
|
||||
"plugins": [
|
||||
"prettier-plugin-svelte"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": "*.svelte",
|
||||
"options": {
|
||||
"parser": "svelte"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
"rigPackageName": "@hcengineering/platform-rig",
|
||||
"rigProfile": "ui"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
testEnvironment: 'node',
|
||||
testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)']
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"name": "@hcengineering/ai-assistant-resources",
|
||||
"version": "0.6.0",
|
||||
"main": "src/index.ts",
|
||||
"author": "Copyright © Hardcore Engineering Inc.",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "compile ui",
|
||||
"build:docs": "api-extractor run --local",
|
||||
"format": "format src",
|
||||
"svelte-check": "do-svelte-check",
|
||||
"_phase:svelte-check": "do-svelte-check",
|
||||
"build:watch": "compile ui",
|
||||
"_phase:build": "compile ui",
|
||||
"_phase:format": "format src",
|
||||
"_phase:validate": "compile validate"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@hcengineering/platform-rig": "^0.6.0",
|
||||
"svelte-loader": "^3.2.0",
|
||||
"sass": "^1.53.0",
|
||||
"svelte-preprocess": "^5.1.3",
|
||||
"@typescript-eslint/eslint-plugin": "^6.11.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-n": "^15.4.0",
|
||||
"eslint": "^8.54.0",
|
||||
"@typescript-eslint/parser": "^6.11.0",
|
||||
"eslint-config-standard-with-typescript": "^40.0.0",
|
||||
"eslint-plugin-svelte": "^2.35.1",
|
||||
"prettier-plugin-svelte": "^3.2.2",
|
||||
"prettier": "^3.1.0",
|
||||
"svelte-check": "^3.6.9",
|
||||
"typescript": "^5.8.3",
|
||||
"jest": "^29.7.0",
|
||||
"ts-jest": "^29.1.1",
|
||||
"@types/jest": "^29.5.5",
|
||||
"svelte-eslint-parser": "^0.33.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"svelte": "^4.2.20",
|
||||
"@hcengineering/ai-assistant": "^0.6.0",
|
||||
"@hcengineering/ui": "^0.6.15",
|
||||
"@hcengineering/presentation": "^0.6.3",
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/card-resources": "^0.6.0",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/setting": "^0.6.17",
|
||||
"@hcengineering/login": "^0.6.12",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/panel": "^0.6.23",
|
||||
"@hcengineering/analytics": "^0.6.0",
|
||||
"@hcengineering/integration-client": "^0.6.0",
|
||||
"@hcengineering/account-client": "^0.6.0",
|
||||
"@hcengineering/setting-resources": "^0.6.0",
|
||||
"@hcengineering/view-resources": "^0.6.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
plugins: [
|
||||
require('autoprefixer')
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
<!--
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
-->
|
||||
<script lang="ts">
|
||||
import { createEventDispatcher, onMount } from 'svelte'
|
||||
import { fade } from 'svelte/transition'
|
||||
|
||||
import presentation, { Card, getClient, getCurrentWorkspaceUuid, SpaceSelector } from '@hcengineering/presentation'
|
||||
import { Label, Loading } from '@hcengineering/ui'
|
||||
import { type Integration } from '@hcengineering/account-client'
|
||||
import { isWorkspaceIntegration } from '@hcengineering/integration-client'
|
||||
|
||||
import { getIntegrationClient, getAccountClient } from '../utils'
|
||||
import aiAssistant from '../plugin'
|
||||
import { buildSocialIdString, getCurrentAccount, SocialIdType, type PersonId } from '@hcengineering/core'
|
||||
import HulyAssistant from './icons/HulyAssistant.svelte'
|
||||
|
||||
export let integration: Integration | undefined = undefined
|
||||
|
||||
let isLoading = true
|
||||
|
||||
const account = getCurrentAccount()
|
||||
const accountClient = getAccountClient()
|
||||
|
||||
onMount(async () => {
|
||||
try {
|
||||
let socialId = await getSocialId()
|
||||
if (socialId == null) {
|
||||
socialId = await accountClient.addHulyAssistantSocialId()
|
||||
}
|
||||
|
||||
const integrationClient = await getIntegrationClient()
|
||||
if (integration === undefined) {
|
||||
integration = await integrationClient.connect(socialId)
|
||||
}
|
||||
|
||||
integration = isWorkspaceIntegration(integration)
|
||||
? integration
|
||||
: await integrationClient.integrate(integration, getCurrentWorkspaceUuid())
|
||||
|
||||
isLoading = false
|
||||
dispatch('close')
|
||||
} catch (err) {
|
||||
isLoading = false
|
||||
console.error('Failed to find/create huly assistant social id/integration:', err)
|
||||
}
|
||||
})
|
||||
|
||||
async function getSocialId (): Promise<PersonId | undefined> {
|
||||
const socialKey = buildSocialIdString({
|
||||
type: SocialIdType.HULY_ASSISTANT,
|
||||
value: account.uuid
|
||||
})
|
||||
return await accountClient.findSocialIdBySocialKey(socialKey)
|
||||
}
|
||||
|
||||
const dispatch = createEventDispatcher()
|
||||
</script>
|
||||
|
||||
<Card
|
||||
label={aiAssistant.string.Configure}
|
||||
okAction={async () => {
|
||||
dispatch('close')
|
||||
}}
|
||||
canSave={false}
|
||||
fullSize
|
||||
okLabel={presentation.string.Ok}
|
||||
on:close={() => dispatch('close')}
|
||||
on:changeContent
|
||||
>
|
||||
<svelte:fragment slot="title">
|
||||
<div class="flex-row-center gap-2">
|
||||
<HulyAssistant size="medium" />
|
||||
<span class="text-normal">
|
||||
<Label label={aiAssistant.string.Configure} />
|
||||
</span>
|
||||
</div>
|
||||
</svelte:fragment>
|
||||
<div class="flex-col min-w-100 flex-gap-4" transition:fade={{ duration: 300 }}>
|
||||
{#if isLoading}
|
||||
<div class="flex-center">
|
||||
<div class="p-5">
|
||||
<Loading />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</Card>
|
||||
@@ -0,0 +1,436 @@
|
||||
<!--
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
-->
|
||||
|
||||
<script lang="ts">
|
||||
export let size: 'small' | 'medium' | 'large' | undefined = undefined
|
||||
</script>
|
||||
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 256 256"
|
||||
class={size !== undefined ? `svg-${size}` : null}
|
||||
style="enable-background:new 0 0 36 36;"
|
||||
xml:space="preserve"
|
||||
>
|
||||
<path
|
||||
fill="#494F5A"
|
||||
d="M 216.365 160.009 C 211.366 176.728 184.503 191.859 174.923 204.692 C 172.096 208.478 184.329 205.629 189.001 206.336 C 189.567 206.422 189.128 207.856 188.574 208.001 C 186.634 208.511 184.557 208.178 182.556 208.03 C 178.734 207.748 172.045 207.862 169.812 207.31 C 165.665 206.286 159.404 206.552 159.06 202.294 C 158.621 196.867 169.441 189.957 170.341 189.041 C 175.617 183.679 181.869 176.026 188.007 171.007 C 190.475 168.988 194.337 169.376 196.9 167.477 C 200.976 164.457 202.661 159.064 205.944 155.196 C 206.711 154.292 209.63 154.032 210.235 153.012 C 210.702 152.223 217.391 156.576 216.365 160.009 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#B6C4D8"
|
||||
d="M 49.342 40.777 C 56.426 40.509 86.591 40.196 91.597 40.497 C 97.95 40.552 99.731 44.014 99.89 50.665 C 99.997 55.128 99.796 80.175 99.462 87.347 C 98.882 87.491 97.77 89.441 97.381 89.03 C 97.26 83.643 45.447 92.508 42.388 90.602 C 39.46 88.778 40.423 55.423 41.112 51.902 C 41.075 46.071 42.07 41.052 49.342 40.777 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#6D7887"
|
||||
d="M 43.668 153.758 C 56.22 152.701 68.157 159.972 80.668 161.44 C 86.75 162.154 93.575 157.412 99.002 160.25 C 101.944 161.789 99.47 167.716 97.084 170.025 C 93.89 173.116 88.896 174.011 84.462 174.324 C 79.773 174.655 75.199 172.71 70.569 171.898 C 64.729 170.874 58.018 172.051 53.05 168.814 C 48.918 166.122 63.093 155.944 60.239 160.582 C 57.533 164.98 54.864 171.028 49.798 172.024 C 46.74 172.625 48.723 165.424 46.448 163.294 C 45.307 162.226 42.411 166.199 41.973 164.698 C 40.94 161.155 39.991 154.068 43.668 153.758 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#424853"
|
||||
d="M 172.297 203.942 C 172.297 203.942 195.294 183.873 205.232 173.909 C 208.251 170.882 209.879 167.965 215.794 168.955 C 217.298 169.207 217.082 172.062 217.047 173.586 C 216.995 175.928 217.299 178.386 216.517 180.595 C 214.855 185.294 195.021 203.392 193.24 206.972 C 190.677 212.129 169.439 207.653 172.297 203.942 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#788495"
|
||||
d="M 163.424 92.434 C 159.401 104.706 140.183 113.418 138.007 125.006 C 137.712 126.575 134.917 127.287 133.652 128.262 C 132.019 129.522 131.852 132.309 130.682 134.008 C 128.011 137.885 113.247 137.095 111.948 137.224 C 110.636 137.355 107.672 137.922 108.034 136.654 C 109.144 132.773 110.487 128.102 113.316 125.223 C 119.048 119.389 130.783 109.092 137.238 104.193 C 141.429 101.012 168.394 77.272 163.424 92.434 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#525966"
|
||||
d="M 158.096 192.551 C 158.297 187.209 157.248 181.267 160.267 176.854 C 167.643 166.073 185.888 151.948 195.932 151.843 C 196.922 151.833 207.089 152.151 206.439 152.898 C 204.464 155.166 202.552 160.241 200.597 162.526 C 199.718 163.552 196.343 165.088 195.389 166.042 C 190.888 170.543 183.914 179.792 178.126 181.58 C 174.776 182.614 165.316 192.365 162.694 194.692 C 159.548 197.485 158.004 194.994 158.096 192.551 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#959EAD"
|
||||
d="M148.584 95.144c.292.572.113 1.092-.684 1.744-1.381.129-2.143.126-3.369.12-7.894-.023-15.525-.883-21.495 4.66.902-2.484.753-3.993-2.076-3.659a778.548 778.548 0 0 0-16.155 2.096c-.42.372-.61.64-.803.9 0-.007.012.002-.334.034-2.453 2.35-4.56 4.667-6.81 7.279-1.714 2.093-3.285 3.894-5.1 5.693-.244-.002-.731-.009-1.057.016-1.126.681-1.926 1.337-3.134 1.989-3.968 1.662-8.002 2.74-10.976 5.135-4.274 3.442-7.775 7.843-11.917 11.993a598.882 598.882 0 0 1-6.836 2.767c3.698-3.751 7.396-7.502 11.556-11.697 1.915-2.016 3.368-3.587 5.096-5.29 1.148-1.03 2.022-1.928 3.176-2.978 2.608-2.573 4.935-4.994 7.57-7.599 1.813-1.859 3.318-3.535 5.132-5.358 3.37-2.424 6.433-4.702 9.869-7.02 1.837-.358 3.301-.674 4.765-.99 14.37.037 28.741.075 43.582.165z"
|
||||
/>
|
||||
<path
|
||||
fill="#5A616E"
|
||||
d="M 194.36 151.866 C 196.398 152.048 186.118 156.611 182.745 158.767 C 177.683 162.003 172.984 165.861 168.738 170.113 C 168.217 170.635 161.708 177.13 161.607 176.921 C 155.075 163.451 161.161 152.17 170.353 152.029 C 181.594 151.856 193.727 151.809 194.36 151.866 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#9CA1AB"
|
||||
d="M 159.003 90 C 158.236 90.338 157.469 90.676 156.473 90.646 C 156.827 82.518 157.408 74.758 157.989 66.998 C 158.047 61.518 158.001 56.035 158.192 50.56 C 158.42 43.989 162.593 39.218 168.955 39.094 C 181.733 38.844 194.52 39.068 207.665 39.637 C 208.006 40.427 207.985 40.677 207.595 40.952 C 206.58 41.003 205.563 41.938 204.547 41.931 C 199.274 41.893 194.462 40.812 189.67 41.051 C 188.067 41.131 186.516 42.249 184.728 42.914 C 184.515 42.935 184.087 42.952 184.022 42.607 C 182.975 41.863 181.993 41.463 180.636 41.037 C 179.509 41.021 178.757 41.032 177.553 41.027 C 176.909 41.01 176.265 41.001 175.621 40.998 C 163.101 40.994 157.569 48.24 161.149 60.168 C 161.397 60.994 163.023 61.406 164.004 62.005 C 164 62 163.989 61.992 163.828 62.322 C 161.104 65.72 159.745 77.983 161.65 81.485 C 161.825 81.806 162.54 81.835 162.84 82.303 C 161.452 85.071 160.228 87.536 159.003 90 L 159.003 90 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#B6C8E0"
|
||||
d="M 56.552 40.961 C 61.189 40.988 65.414 40.988 69.639 40.988 L 70.419 42.928 L 52.201 57.267 L 51.084 56.083 L 57.274 48.414 L 52.847 49.646 C 51.703 47.408 53.145 44.077 52.002 41.427 C 53.382 40.987 54.762 40.961 56.552 40.961 L 56.552 40.961 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#758191"
|
||||
d="M 53.608 154.278 L 44.738 154.425 C 44.438 155.135 43.653 156.988 42.52 158.925 C 41.267 154.555 42.948 150.841 46.164 147.215 C 48.547 146.032 50.262 145.007 52.314 143.99 C 53.099 144 53.548 144.004 54.137 144.327 C 54.519 145.767 54.76 146.888 54.857 148.305 C 53.807 150.068 57.617 150.684 56.713 152.15 L 53.608 154.278 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#7C8799"
|
||||
d="M207.963 40.927c.021-.25.043-.5.084-1.126 6.205 1.394 8.782 4.577 8.943 10.937.112 4.452.037 8.909-.265 13.929-.768.808-1.225 1.05-1.693.834-.35-4.814-.687-9.169-1.025-13.766.001-.243 0-.729.134-1.043 1.548-5.815-2.952-7.365-6.178-9.765z"
|
||||
/>
|
||||
<path
|
||||
fill="#525661"
|
||||
d="M 217.159 171.617 C 212.859 169.315 210.655 170.677 207.386 171.964 C 208.703 169.817 210.517 167.738 211.987 165.44 C 213.26 163.449 215.242 161.773 216.443 159.218 C 217.077 162.097 216.758 167.873 217.159 171.617 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#7C8799"
|
||||
d="M 57.629 136 C 60.013 135.041 62.189 133.756 64.997 132.757 C 66.427 132.947 67.225 133.681 67.907 134.263 C 67.502 135.023 67.213 135.521 66.619 136.183 C 62.869 137.891 59.423 139.435 56.015 140.622 C 56.333 139.112 55.433 139.054 55.712 137.903 C 55.797 137.596 57.152 136.261 57.629 135.999 L 57.629 136 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#6D7887"
|
||||
d="M214.184 65.988c.456-.243 1.773-1.292 2.469-1.635.296.335.353 1.548.471 2.306-.071 6.2-.203 12.076-.857 17.829-.766-3.559-.95-7-1.292-10.426-.102-1.026-.645-2.009-.949-3.385.364-1.821-.169-3.241.158-4.689z"
|
||||
/>
|
||||
<path
|
||||
fill="#959EAD"
|
||||
d="M56.567 136.907c.045 1.053-.234 2.205-.544 3.72-.03.362-.042.351-.37.382-1.444 1.012-2.56 1.993-3.675 2.974-1.716 1.024-3.43 2.049-5.49 3.083 3.023-3.347 6.39-6.704 10.08-10.16z"
|
||||
/>
|
||||
<path
|
||||
fill="#717C8C"
|
||||
d="m41.189 173.007-.315-.767c-.024-2.938.055-5.62.387-8.763.252-.46.658-.504.658-.504.345.473.69.946 1.06 2.155-.579 3.117-1.184 5.498-1.79 7.88z"
|
||||
/>
|
||||
<path
|
||||
fill="#626B7A"
|
||||
d="M 205.004 154.005 C 204.996 153.496 205.001 152.987 205.02 152.479 C 206.848 152.249 208.645 152.529 210.713 153.052 C 210.205 153.532 209.427 154.353 207.953 154.593 C 206.507 154.595 205.755 154.008 205.003 154.005 L 205.004 154.005 Z"
|
||||
/>
|
||||
<path fill="#525661" d="M215.359 157.59a8.299 8.299 0 0 1-2.558-2.42c1 .569 1.74 1.334 2.558 2.42z" />
|
||||
<path
|
||||
fill="#9CA1AB"
|
||||
d="M153.9 92.353c.627-.537 1.108-.835 1.857-1.227-.51.88-1.287 1.853-2.436 2.84-.103-.45.165-.912.58-1.613z"
|
||||
/>
|
||||
<path
|
||||
fill="#F5F5F5"
|
||||
d="M214.001 124.002c-.45.642-.903 1.28-1.676 1.96-.32.043-.326.037-.286-.285.679-.777 1.317-1.232 1.955-1.687a.5.5 0 0 0 .007.012z"
|
||||
/>
|
||||
<path fill="#F7F7F7" d="M106.001 211.625c-.224-.592-.447-1.56-.336-2.576.335.7.336 1.45.336 2.576z" />
|
||||
<path
|
||||
fill="#2E343E"
|
||||
d="M158.476 212.857c-.08-3.304-.162-6.607-.168-10.358 3.807 1.394 7.54 3.235 11.735 4.8.464-.276.928-.267.928-.267 3.71.327 7.418.654 11.58 1.43 1.118 4.472 1.784 8.496 2.064 12.611a91.2 91.2 0 0 1-6.949.354c-3.514-.111-6.601-.137-10.01-.303-1.43-.476-2.538-.812-3.833-1.398-1.49-1.511-2.79-2.773-4.164-4.34a40.23 40.23 0 0 0-1.183-2.53z"
|
||||
/>
|
||||
<path
|
||||
fill="#292D36"
|
||||
d="M183.171 221.433c-.425-.209-1.128-8.813-1.789-13.269 1.716-.445 5.053-.145 7.516-.153 1.183-.022 1.615-.051 2.394-.049.814.062 1.278.093 1.732.527.652 4.436 4.017 8.428 4.24 12.566-3.139.196-11.142.417-14.093.378z"
|
||||
/>
|
||||
<path
|
||||
fill="#525661"
|
||||
d="M 158.245 192.031 C 157.575 187.427 161.118 183.952 165.256 180.726 C 168.615 178.106 173.436 178.273 177.383 181.316 C 175.682 184.159 172.361 186.89 170.449 189.394 C 169.985 189.941 169.355 190.651 168.319 191.332 C 167.257 191.832 166.767 192.199 166.277 192.567 C 166.027 193.009 165.494 193.012 164.763 193.712 C 163.54 193.984 160.185 203.387 158.346 203.273 C 158.171 203.262 157.989 193.55 158.245 192.031 Z M 205.002 154.003 C 205.755 154.008 206.507 154.01 207.634 154.016 C 208.19 155.466 208.371 156.912 208.453 157.568 C 204.359 161.11 200.743 164.437 196.9 167.478 C 195.066 168.928 192.802 169.835 190.363 170.653 C 189.997 169.879 190.001 169.44 190.006 169.001 C 190.006 169.001 190 168.999 190.228 168.904 C 190.741 168.609 190.924 168.34 191.005 168.002 C 191.005 168.002 191 168 191.23 167.906 C 191.748 167.614 191.93 167.344 192.005 167.002 C 192.005 167.002 192 167 192.302 166.991 C 193.072 166.654 193.539 166.328 194.007 166.001 C 194.007 166.001 194 165.999 194.223 165.898 C 194.727 165.597 194.913 165.331 195.007 165 C 195.007 165 194.999 165 195.223 164.898 C 195.726 164.597 195.912 164.332 196.006 164.001 C 196.006 164.001 196 164 196.224 163.898 C 196.727 163.594 196.914 163.328 197.008 162.998 C 197.008 162.998 196.999 162.999 197.228 162.895 C 197.66 162.525 197.863 162.259 198.067 161.994 C 199.848 159.802 201.63 157.61 203.829 155.376 C 204.5 154.891 204.753 154.446 205.005 154.002 C 205.005 154.002 205 154 205.002 154.002 L 205.002 154.003 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#A7B8CF"
|
||||
d="M 43.632 59.234 C 49.503 55.811 66.716 59.465 69.269 56.7 C 74.705 50.813 76.438 47.959 82.771 43.051 C 85.59 40.866 92.074 38.504 93.398 41.815 C 100.351 59.209 78.621 77.638 66.666 82.002 C 62.465 83.536 75.247 70.759 71.016 69.309 C 61.454 66.032 51.079 87.073 43.523 70.91 C 41.875 67.384 40.27 61.194 43.632 59.234 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#9FAFC6"
|
||||
d="M 67 82 C 73.801 75.272 80.652 68.592 87.383 61.794 C 90.286 58.861 92.941 55.683 95.853 52.317 C 96.34 53.487 96.897 54.943 96.989 56.429 C 97.294 61.362 98.315 67.04 98.327 72.398 C 96.757 73.918 94.499 74.291 93.114 75.386 C 90.742 77.262 88.364 79.131 85.998 80.646 C 86.508 79.042 87.01 77.794 87.511 76.546 L 86.677 74.446 C 81.792 83.052 74.31 82.219 66.999 82 L 67 82 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#98A7BE"
|
||||
d="M 85.758 79.017 C 88.134 77.145 90.742 77.262 93.114 75.386 C 94.499 74.291 96.893 73.037 98.609 71.907 C 99.005 76.76 98.046 81.788 98.173 87.398 C 98.195 88.427 99.085 88.936 98.598 89.216 C 96.837 90.589 92.396 94.737 90.964 96.076 C 90.926 96.042 80.019 95.762 75.003 95.407 C 76.347 92.626 77.139 88.113 78.448 85.681 C 78.447 85.68 78.154 83.182 78.495 83.148 C 79.609 82.132 83.229 82.971 84.17 81.748 C 84.888 81.338 85.208 79.185 85.758 79.017 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#494F5A"
|
||||
d="M 97.993 88.998 C 98.113 88.718 98.195 88.427 98.235 87.903 C 98.555 87.586 98.882 87.491 99.462 87.347 C 99.748 89.939 99.783 92.849 99.84 95.884 C 96.802 98.554 93.966 101.506 90.576 103.437 C 90.319 100.996 90.126 97.593 90.452 95.16 C 91.502 94.417 92.3 93.746 93.099 93.075 C 93.099 93.075 93 93.049 93.372 93.033 C 95.16 91.677 96.577 90.338 97.993 88.998 Z"
|
||||
/>
|
||||
<path fill="#B6C8E0" d="M48.726 60.032c.122.529-.053 1.085-.472 1.81-.104-.482.036-1.132.472-1.81z" />
|
||||
<path
|
||||
fill="#717C8C"
|
||||
d="M 80.28 162.547 C 75.323 161.639 61.714 161.096 63.596 156.42 C 67.189 147.492 79.961 151.542 86.776 151.387 C 95.262 151.194 102.929 146.064 111.225 144.27 C 117.893 142.828 114.867 135.606 116.121 134.798 C 122.629 130.61 124.716 137.66 130.01 132.016 C 134.252 127.495 148.891 110.886 151.797 108.572 C 153.841 106.943 155.953 104.171 157.589 102.133 C 158.842 100.574 161.225 99.709 162.791 98.464 C 165.119 96.612 169.824 92.694 171.155 95.354 C 176.074 105.18 165.553 109.02 162.341 114.889 C 161.454 116.51 164.171 118.98 162.983 120.395 C 156.836 127.723 149.46 133.925 142.736 140.728 C 138.88 144.629 141.984 151.01 136.579 151.946 C 133.356 152.505 113.107 152.819 111.624 153.207 C 108.367 154.059 105.562 156.129 102.284 159.374 C 99.039 162.587 81.482 162.768 80.28 162.547 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#656E7D"
|
||||
d="M 55.996 167.972 C 60.625 169.407 65.607 169.87 70.569 169.766 C 75.721 169.658 80.682 169.416 85.835 169.458 C 86.009 169.459 88.05 171.899 87.997 173.004 C 87.811 176.853 82.359 178.262 79.667 181.018 C 77.98 182.745 77.057 186.184 74.644 186.234 C 66.36 186.406 58.011 184.442 50.218 181.628 C 37.558 177.056 53.706 167.262 55.996 167.972 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#737F8F"
|
||||
d="M73.993 149.999c-.468.258-.935.516-1.903.986-.697.513-.894.814-1.09 1.114-.1.288-.274.522-1.033.813-1.001.455-1.489.797-1.977 1.139-.487.871-.975 1.743-2.019 2.8a15.02 15.02 0 0 0-2.027 1.175c-4.029-1.248-8.717-.635-11.93-4.624.89-1.867 1.794-3.334 3.228-5.142 5.872-3.009 11.239-3.215 15.926-.58 1.965-1.087 3.405-1.883 4.698-2.383-.722 1.457-1.297 2.618-1.872 4.009l-.001.693z"
|
||||
/>
|
||||
<path
|
||||
fill="#656E7D"
|
||||
d="M 99.842 165.174 C 101.47 165.283 99.119 168.364 98.948 169.986 C 98.149 177.587 100.045 188.813 97.239 192.851 C 93.078 198.84 81.753 188.423 78.216 182.046 C 76.347 178.677 83.929 176.444 86.758 173.829 C 89.579 171.221 97.222 164.998 99.842 165.174 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#697382"
|
||||
d="M 41.125 173.402 C 41.795 170.626 41.881 166.749 42.488 163.938 C 43.466 163.023 47.164 160.961 48.651 160.221 C 49.506 162.873 48.151 168.575 48.999 171.85 C 48.999 172.494 49.019 172.992 49.019 172.992 C 49.019 172.992 49.005 173.004 48.677 173.029 C 47.554 173.711 47.412 175.134 46.381 175.945 C 45.661 176.657 42.12 181.968 41.276 182.524 C 40.2 182.518 41.583 177.023 40.866 177.017 C 40.817 175.823 41.105 174.597 41.125 173.402 Z"
|
||||
/>
|
||||
<path fill="#7C8799" d="M54.707 168.02c-.161.317-.634.652-1.406 1.04.166-.304.63-.664 1.406-1.04z" />
|
||||
<path
|
||||
fill="#7C8799"
|
||||
d="M55.999 165.999c.095-.327.281-.59.777-.895.221-.106.224-.104.225-.102-.092.33-.277.593-.776.896-.222.104-.225.102-.226.1z"
|
||||
/>
|
||||
<path
|
||||
fill="#3C414B"
|
||||
d="M 191.896 207.625 C 196.691 202.831 205.597 192.674 210.322 187.966 C 212.391 185.905 213.056 180.377 215.864 181.18 C 216.23 181.285 216.601 186.313 216.496 187.765 C 216.152 192.521 216.685 197.452 215.326 202.022 C 214.534 204.686 212.475 207.265 209.653 208.374 C 202.204 211.301 190.624 208.897 191.896 207.625 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#575E6B"
|
||||
d="M 215.384 182.212 C 214.824 181.652 215.943 182.771 215.384 182.212 Z M 191.411 206.311 C 191.411 205.721 191.411 206.899 191.411 206.311 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#7C8799"
|
||||
d="M 113.996 129.019 C 112.02 131.449 112.315 136.939 109.973 139.859 C 107.445 140.533 102.284 136.832 100.98 137.985 C 96.046 142.347 91.183 141.629 85.961 138.694 C 84.956 138.261 83.986 138.132 82.791 138.109 C 82.287 138.417 82.099 138.683 81.894 139.231 C 81.589 139.717 81.33 139.901 80.639 139.996 C 77.844 137.651 75.419 135.311 73.135 132.68 C 74.845 130.923 76.415 129.457 78.37 128.04 C 81.9 128.85 88.108 125.259 90.786 126.821 C 94.844 129.187 94.096 131.132 96.257 128.024 C 96.503 128.013 96.997 127.999 97.37 127.994 C 99.695 126.89 101.652 125.795 103.6 124.687 C 107.272 122.598 110.822 119.834 115.436 122.852 C 118.818 118.91 121.556 113.942 127.966 115.284 L 128.008 116.078 C 127.532 116.639 127.055 117.2 125.968 117.88 C 124.239 119.002 123.121 120.004 122.003 121.007 C 122.003 121.007 122 121 121.773 121.113 C 121.366 121.508 121.184 121.79 121.003 122.072 C 119.55 123.948 118.097 125.825 116.043 127.866 C 114.961 128.359 114.478 128.689 113.996 129.019 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#808D9F"
|
||||
d="M 112.451 126.017 C 110.251 126.615 99.702 127.239 97.476 127.734 C 96.812 127.882 97.883 126.405 98.3 125.867 C 99.149 124.773 99.833 123.686 100.812 122.707 C 102.492 121.027 113.972 103.836 115.927 102.793 C 139.012 90.484 141.48 96.3 147.304 96.45 C 149.976 96.519 141.919 102.138 140.014 104.013 C 135.184 108.766 121.221 123.633 112.451 126.017 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#758191"
|
||||
d="M 83.379 134.672 C 88.565 137.304 96.046 142.347 100.98 137.985 C 102.284 136.832 105.174 137.473 107.667 137.145 C 109.356 137.107 111.473 136.101 111.948 135.505 C 115.491 131.063 119.582 132.653 124.475 135.299 C 122.478 138.744 120.238 141.888 117.999 145.032 C 117.902 145.344 117.721 145.597 116.904 145.893 C 115.9 145.993 115.448 145.991 114.996 145.989 C 113.722 145.369 112.154 143.935 111.225 144.27 C 106.984 145.801 103.031 148.155 98.764 149.58 C 94.972 150.846 93.815 154.947 89.186 153.376 C 85.445 152.106 76.486 155.563 72.095 155.119 C 71.774 154.981 65.023 148.357 65.329 147.971 C 69.432 144.33 76.738 142.14 80.535 138.884 L 83.379 134.672 Z M 171.002 95.002 C 168.226 96.101 165.146 96.777 162.791 98.464 C 161.47 99.41 161.346 102.028 159.983 103.95 C 157.523 105.674 155.763 107.342 154.003 109.01 C 154.003 109.01 153.999 109 153.659 109.033 C 149.531 113.038 145.743 117.01 141.632 121.013 C 140.208 121.697 139.106 122.35 138.004 123.003 C 138.344 121.828 138.34 120.343 139.076 119.526 C 145.882 111.982 152.985 104.697 159.551 96.956 C 160.698 95.604 159.741 92.469 159.381 90.079 C 160.228 87.536 161.452 85.071 163.057 82.199 C 163.71 81.599 163.896 81.343 164.21 80.909 C 164.697 80.591 164.88 80.328 165.2 79.899 C 165.712 79.599 165.905 79.333 166.003 79.001 C 166 79 166.002 79.007 166.296 78.867 C 167.717 78.149 168.844 77.57 170.289 77.13 C 172.891 78.287 173.689 79.64 171.784 81.8 C 170.589 83.155 169.63 84.72 168.415 86.054 C 164.969 89.839 165.145 90.737 170.092 93.216 C 170.479 93.638 170.75 93.834 171.016 94.272 C 171.01 94.516 171.002 95.002 171.002 95.002 Z"
|
||||
/>
|
||||
<path fill="#8895A8" d="M135.36 108.977c1.092-1.612 2.527-3.26 4.307-4.935-1.09 1.615-2.527 3.257-4.306 4.935z" />
|
||||
<path fill="#758191" d="M133.652 127.004c-.46.91-1.274 1.822-2.365 2.87.485-.866 1.25-1.867 2.365-2.87z" />
|
||||
<path
|
||||
fill="#717C8C"
|
||||
d="M 158.154 184.573 C 157.718 182.266 157.709 163.201 158.329 162.076 C 159.209 162.11 157.677 159.649 161.771 158.898 C 161.411 163.228 160.8 175.564 161.621 176.921 C 161.032 178.635 159.448 182.843 158.154 184.573 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#8390A3"
|
||||
d="M 97.44 129.865 C 96.365 130.765 94.615 129.199 93.248 129.51 C 84.715 131.45 76.617 135.269 67.963 136.566 C 66.135 136.84 62.122 135.653 63.025 134.04 C 73.036 116.154 88.994 113.395 105.534 110.884 C 106.953 110.669 108.612 107.688 113.856 108.3 C 115.984 108.548 99.775 127.911 97.44 129.865 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#8895A8"
|
||||
d="M 88.004 114.326 C 85.029 112.176 92.946 109.495 95.768 107.148 C 98.687 104.72 101.29 100.646 105.032 100 C 110.305 99.089 118.496 96.549 123.824 97.043 C 125.221 97.172 124.175 104.554 123.834 105.915 C 122.662 110.596 96.215 120.26 88.004 114.326 L 88.004 114.326 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#3C414B"
|
||||
d="M 85.235 108.347 C 81.874 108.505 78.82 108.48 75.398 107.968 C 76.018 105.737 77.098 104.038 77.968 102.236 C 79.055 99.983 79.968 97.646 81.369 95.246 C 84.589 95.175 89.245 95.158 92.051 95.187 C 91.991 97.492 90.787 99.843 90.745 102.642 C 89.259 104.812 87.049 106.488 85.235 108.347 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#424853"
|
||||
d="M43.924 104.184s-.442-.095-.662-.146c-.895-5.024-1.57-9.996-1.902-15.297 1.022.431 1.7 1.19 2.46 2.198.816 1 1.552 1.754 2.256 2.944a650.388 650.388 0 0 1-2.152 10.301z"
|
||||
/>
|
||||
<path
|
||||
fill="#333941"
|
||||
d="M 178.697 144.972 C 176.72 147.109 174.634 149.51 172.552 151.932 C 172.187 152.204 171.984 152.162 170.933 152.173 C 167.433 152.929 164.779 153.425 162.05 153.714 C 162.041 151.803 161.013 150.641 161.245 148.94 C 166.303 143.932 172.185 138.846 177.019 134.493 C 176.726 136.966 177.596 134.294 177.319 136.344 C 177.045 138.369 175.645 145.103 178.697 144.972 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#6D7887"
|
||||
d="M 164.172 153.47 C 167.825 152.274 167.193 153.011 170.304 152.297 C 167.568 154.857 164.723 157.084 161.316 159.817 C 160.546 159.995 159.236 161.194 158.433 160.819 C 159.177 158.761 160.561 155.693 164.172 153.47 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#5F6877"
|
||||
d="M 178.382 137.059 C 173.343 141.934 164.883 147.256 159.102 151.222 C 156.282 153.156 154.295 152.835 150.885 152.571 C 149.158 152.437 153.457 147.471 154.007 147.002 C 157.114 144.354 159.126 139.971 161.699 136.2 C 167.96 127.022 185.917 114.963 189.719 105.685 C 190.672 103.362 196.827 102.966 196.646 100.462 C 196.418 97.303 193.988 94.694 193.031 91.674 C 190.814 84.681 207.027 76.541 211.297 72.996 C 218.058 67.383 217.785 92.674 216.845 96.21"
|
||||
/>
|
||||
<path
|
||||
fill="#333941"
|
||||
d="M215.59 109.426c-.795 1.049-1.436 1.708-2.348 2.034.162-3.876 1.957-7.558-1.332-10.72 1.486-2.088 2.973-4.176 4.705-6.464-.127 4.787-.498 9.774-1.024 15.15z"
|
||||
/>
|
||||
<path
|
||||
fill="#6D7887"
|
||||
d="M 175.099 41.076 C 177.34 41.073 187.43 41.128 189.67 41.051 C 194.625 40.88 199.631 40.657 204.542 41.341 C 205.139 41.424 205.123 42.719 204.694 43.143 C 201.343 46.452 201.399 48.272 197.806 51.316 C 196.739 52.22 200.084 55.596 199.01 56.491 C 198.718 56.734 197.705 88.135 181.11 84.753 C 180.26 84.58 179.947 83.075 180.296 82.281 C 180.723 81.312 183.003 81.608 182.96 80.55 C 182.783 76.159 178.676 72.044 179.712 67.773 C 180.708 63.668 183.543 62.399 181.011 61.613 C 179.355 61.099 182.567 58.128 181.97 56.5 C 181.097 54.122 177.176 53.263 177.019 50.735 C 176.803 47.254 174.347 41.077 175.099 41.076 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#788495"
|
||||
d="M 168.931 78.167 C 168.926 78.944 160.299 89.922 159.809 90.219 C 159.128 90.158 161.397 60.994 161.149 60.168 C 157.569 48.24 163.102 40.994 175.621 40.998 C 176.114 40.999 176.608 41.006 177.492 41.371 C 176.974 42.331 176.043 42.897 175.162 43.533 C 172.699 45.313 178.019 50.291 179.577 52.408 C 178.732 55.224 171.334 57.645 170.448 60.043 C 169.671 62.151 173.793 65.063 173.772 67.164 C 173.731 71.301 168.068 77.64 168.931 78.167 L 168.931 78.167 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#626B7A"
|
||||
d="M203.911 43.022c.004-.432.582-1.411.591-2.168.742-.347 2.078-.439 3.183-.488 3.594 2.375 8.614 4.596 6.744 10.449-.908.989-1.97 1.541-2.426 2.182-.004.004-.012.012-.233.113-.497.298-.679.56-.769.889-.001.001-.003.003-.335.032-1.777 1.007-3.221 1.985-4.833 2.583-.391-4.793-1.698-9.178-1.922-13.592z"
|
||||
/>
|
||||
<path
|
||||
fill="#737F8F"
|
||||
d="M172.996 52.004c-1.555-1.713-.297-6.691 2.166-8.47.881-.637 1.812-1.203 2.782-2.147.813-.355 1.565-.366 2.692-.35-.816 2.81-2.008 5.594-3.763 8.67a187.274 187.274 0 0 0-3.877 2.297zM184.728 42.914c-.111.547-.435 1.116-.76 1.685-.117-.442-.236-.884-.118-1.486.237-.161.665-.178.878-.199z"
|
||||
/>
|
||||
<path
|
||||
fill="#5F6877"
|
||||
d="M44.038 177.005c.485-.556.97-1.113 1.695-1.567.244.276.247.448.251.62l4.234 5.57c8.774-3.32 17.056-3.334 25.33 1.52-1.055 1.906-2.301 3.379-3.814 4.971-.757.706-1.247 1.293-2.002 2-.75.706-1.236 1.293-1.944 1.987-.505.308-.688.576-.78.903-.007-.007.004.004-.22.107-.503.301-.687.566-.781.891-.003-.005.01.01-.324.004-.778-.007-1.223-.009-2.075-.01-1.856-.204-3.41-.14-4.737-.655-5.883-2.286-8.78-1.593-13.293 3.384-1.416 1.562-2.927 3.037-4.489 4.135-.157-6.568-.22-12.72-.283-18.871.07-.16.14-.319.65-.772 1.154-1.601 1.868-2.909 2.582-4.217z"
|
||||
/>
|
||||
<path
|
||||
fill="#788495"
|
||||
d="M 85.664 135.077 C 85.592 137.206 73.072 147.287 71.168 147.679 C 64.615 149.027 57.793 151.462 51.244 150.095 C 49.053 149.638 49.365 144.902 52.39 141.772 C 56.303 137.724 62.788 136.568 67.51 133.503"
|
||||
/>
|
||||
<path
|
||||
fill="#7C8799"
|
||||
d="M55.652 141.01c-.14.882-.608 1.796-1.366 2.854-.738.14-1.187.136-1.972.126.779-.988 1.895-1.969 3.338-2.98z"
|
||||
/>
|
||||
<path
|
||||
fill="#626B7A"
|
||||
d="M 206.616 53.078 C 207.654 51.935 213.678 50.47 214.007 51.978 C 215.16 57.267 216.663 67.859 214.793 73.59 C 214.153 75.553 209.181 74.663 207.657 76.032 C 203.722 79.567 200.59 84.173 195.994 86.791 C 194.956 87.382 194.086 84.721 194.416 83.573 C 195.668 79.22 193.895 72.431 194.802 67.993 C 195.033 66.863 205.734 54.05 206.616 53.078 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#6D7887"
|
||||
d="M214.007 51.735c-.467.572-.933.901-1.7 1.244.152-.623.604-1.26 1.378-1.934.322-.039.323.447.322.69z"
|
||||
/>
|
||||
<path
|
||||
fill="#575E6B"
|
||||
d="M 41.193 201.725 C 40.93 199.397 38.754 196.472 43.544 194.297 C 47.707 192.406 53.077 187.441 57.608 186.833 C 59.855 186.531 72.091 190.26 74.342 190.857 C 77.526 191.701 85.191 193.828 87.691 191.683 C 89.378 190.235 90.096 186.979 93.481 187.924 C 98.152 189.229 99.192 202.861 97.584 205.211 C 94.697 209.431 87.59 207.482 82.508 208.045 C 81.563 208.15 59.581 210.743 56.276 210.731 C 44.488 210.689 49.943 210.196 41.167 202.556"
|
||||
/>
|
||||
<path
|
||||
fill="#758191"
|
||||
d="M 100.938 169.394 C 101.305 170.114 99.842 178.478 99.998 179.623 C 100.003 186.716 99.717 198.686 99.566 205.863 C 98.909 203.923 97.826 206.916 97.266 203.657 C 96.926 200.093 97.338 186.726 96.991 183.68 C 96.993 182.898 96.999 182.452 97.004 182.005 C 97.706 180.35 98.534 169.216 99.508 167.516 L 100.938 169.394 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#758191"
|
||||
d="M 99.887 212.341 C 99.489 212.842 97.834 215.511 97.065 215.199 C 96.683 212.439 96.695 205.124 96.684 204.703 C 97.104 204.349 98.853 203.035 99.556 202.641 C 99.886 205.259 99.838 209.249 99.887 212.341 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#525661"
|
||||
d="M 215.053 201.948 C 215.387 197.365 215.919 179.659 216.925 170.84 C 217.417 175.11 217.09 202.098 216.691 202.026 C 216.147 201.973 215.6 201.947 215.053 201.948 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#2E343E"
|
||||
d="M214.704 202.022c.762-.072 1.175-.07 1.899-.057.002 4.027-.305 8.043-.641 12.469-.365.899-.703 1.389-1.387 2.334-1.398 1.239-2.449 2.023-3.522 2.343.378-2.604 1.026-4.737 1.088-6.887.041-1.423-1.676-2.914-2.1-4.351 1.132-1.939 3.181-3.836 4.663-5.851z"
|
||||
/>
|
||||
<path
|
||||
fill="#20252C"
|
||||
d="M201.443 221.358c-1.197.026-1.96-.045-3.458-.106a39.067 39.067 0 0 1-2.984-.261c-.663-4.033-1.325-8.066-1.977-12.502 5.677-.44 11.343-.478 17.471-.544.887 1.408 1.687 2.856 1.646 4.279-.062 2.15-.71 4.283-1.088 6.887-.547.82-1.117 1.175-1.87 1.706-2.558.266-4.931.355-7.74.541z"
|
||||
/>
|
||||
<path
|
||||
fill="#9BABC1"
|
||||
d="M 42.784 91.394 C 39.874 90.128 41.821 81.086 42.157 77.772 C 42.337 75.995 46.9 80.513 48.686 80.516 C 53.394 80.526 58.253 78.191 62.775 79.502 C 64.498 80.002 62.158 76.406 63.327 75.046 C 67.304 70.422 88.683 65.839 87.511 76.545 C 86.995 81.256 83.251 81.825 80.651 85.036 C 78.544 87.637 77.858 92.638 74.53 92.995 C 64.346 94.088 53.283 95.949 43.891 91.862 L 42.784 91.394 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#A3B3C9"
|
||||
d="M 63.611 84.816 C 62.517 86.237 64.497 80.002 62.775 79.502 C 55.304 77.335 44.358 83.68 42.342 79.03 C 40.851 75.591 40.239 70.14 43.179 67.815 C 61.232 53.539 50.818 77.406 51.911 76.945 C 58.981 73.963 64.597 66.512 72.264 66.19 C 74.691 66.088 72.805 71.26 71.777 73.461 C 70.279 76.669 66.455 81.122 63.611 84.816 Z M 76.794 94.361 C 74.692 88.716 78.09 97.842 76.794 94.361 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#9FAFC6"
|
||||
d="M74.998 92.993c-.447-4.123 2.102-6.24 5.654-7.956-.96 2.396-2.27 4.828-3.615 7.609-.033.35-.042.362-.377.362-.778-.005-1.22-.01-1.662-.015z"
|
||||
/>
|
||||
<path fill="#9FAFC6" d="M81.343 84.969c.432-.946 1.205-1.925 2.319-2.942-.433.944-1.205 1.926-2.32 2.942z" />
|
||||
<path
|
||||
fill="#697382"
|
||||
d="M 153.782 152.452 C 140.56 152.347 132.908 151.852 135.004 148.005 C 138.861 140.922 156.555 126.577 163.324 120.345 C 167.04 116.923 168.94 110.337 172.526 106.779 C 174.644 104.676 178.842 105.756 180.002 103.006 C 180.264 102.385 182.207 102.726 181.99 103.363 C 179.126 111.783 174.861 120.529 172.016 129.02 C 171.634 130.161 170.026 132.192 167.783 134.589 C 161.154 141.677 156.209 152.471 153.782 152.452 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#20252C"
|
||||
d="M137.05 151.563c3.017.101 8 .141 11.468.742.446 4.429.156 8.363-.31 12.379-8.229.025-18.673.127-26.377-.415-.236-4.397-.596-8.251-.896-12.167 2.684-.052 6.423-.272 9.978-.29 2.626-.061 4.382-.155 6.137-.249z"
|
||||
/>
|
||||
<path
|
||||
fill="#6D7887"
|
||||
d="M 180.01 104.034 C 176.956 107.013 172.633 108.568 169.812 111.769 C 166.803 115.184 166.667 121.839 162.319 123.182 C 159.543 124.039 158.109 117.774 159.151 115.062 C 160.446 111.69 164.481 111.535 166.36 108.45 C 169.577 103.169 168.294 94.607 173.242 90.898 C 174.013 90.32 179.114 85.67 180.14 86.291 C 182.059 87.452 185.051 88.739 184.966 90.981 C 184.887 93.064 180.593 92.604 179.826 94.542 C 178.662 97.485 179.407 100.927 180.01 104.034"
|
||||
/>
|
||||
<path
|
||||
fill="#424853"
|
||||
d="M 100.891 170.963 C 100.598 169.564 96.922 163.489 99.995 160.275 C 102.107 158.066 107.056 153.041 109.208 152.268 C 109.555 156.695 110.334 160.297 110.029 164.403 C 107.887 165.748 104.73 167.553 102.619 168.874 C 101.86 169.659 101.375 170.311 100.891 170.963 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#292D36"
|
||||
d="M121.553 151.891c.736 3.959 1.037 7.875.903 12.357-2.77.508-6.097.449-8.432-.05-.007-4.368-.028-8.349-.035-12.276 2.041-.043 5.088-.032 7.564-.031z"
|
||||
/>
|
||||
<path
|
||||
fill="#333941"
|
||||
d="M114.631 151.934c.37 3.969.378 7.896-.034 12.362-2.14.55-3.862.559-5.584.569 0-3.95-.001-7.899.012-12.298.436-.509.86-.568 1.89-.65.792-.069.979-.116 1.165-.163.73.046 1.459.092 2.551.18z"
|
||||
/>
|
||||
<path fill="#5F6877" d="M 96.994 183.67 C 96.791 191.85 97.39 167.746 96.994 183.67 Z" />
|
||||
<path fill="#788495" d="M82.792 138.109c.119.219-.072.482-.569.795-.124-.22.064-.487.569-.795z" />
|
||||
<path
|
||||
fill="#717C8C"
|
||||
d="M 165.193 93.127 C 165.481 91.341 165.434 85.144 165.822 83.377 C 166.189 81.702 167.459 77.823 167.997 76.194 C 168.999 73.152 173.282 67.94 175.17 65.353 C 175.545 64.838 179.506 66.825 179.991 67.986 C 181.684 72.039 183.045 76.299 183.626 80.653 C 183.899 82.693 163.104 106.068 165.193 93.127 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#292D36"
|
||||
d="M 158.027 163.733 C 157.183 164.308 156.371 164.513 154.838 164.807 C 151.741 164.817 149.364 164.737 146.988 164.655 C 146.993 160.725 146.998 156.795 147.007 152.399 C 147.193 151.854 147.377 151.775 148.062 151.653 C 148.562 151.61 149.051 151.577 149.275 151.659 C 149.5 151.74 149.963 151.624 150.285 151.678 C 151.036 151.67 151.465 151.607 151.893 151.544 C 155.693 153.126 159.696 150.413 162.894 148.323 C 163.257 149.731 166.023 152.373 164.228 153.356 C 163.205 155.494 160.488 157.716 159.367 159.754 C 159.048 161.239 158.301 162.217 158.027 163.733 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#252A30"
|
||||
d="M 85.848 107.826 C 82.928 107.807 49.663 108.739 46.496 108.138 C 46.338 103.632 44.674 97.906 45.219 93.962 C 51.36 94.032 67.225 92.995 72.908 93.359 C 72.913 94 85.951 94.947 85.528 95.313 C 83.42 95.859 86.963 104.218 85.93 107.378 L 85.848 107.826 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#292D36"
|
||||
d="M67.568 97c-.231 3.44-.893 6.88-1.557 10.722-2.054.478-4.105.554-6.581.512.607-3.279 1.29-6.628 2.848-9.504.609-1.124 3.182-1.185 5.29-1.73z"
|
||||
/>
|
||||
<path
|
||||
fill="#333941"
|
||||
d="M 50.014 95.123 C 49.926 99.047 49.838 102.971 49.585 107.344 C 48.543 107.498 47.234 108.255 46.011 107.885 C 45.006 107.132 43.955 105.109 43.198 104.161 C 43.806 100.604 45.336 97.607 46.402 94.023 C 47.846 94.193 48.93 94.658 50.014 95.123 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#A7B8CF"
|
||||
d="M 50.47 95.103 C 48.93 94.658 47.044 94.483 45.634 93.878 C 44.675 93.085 44.6 91.907 43.819 90.938 C 43.796 90.404 43.853 90.116 43.989 89.395 C 53.262 96.287 64.046 91.788 74.53 92.995 C 75.44 92.998 75.882 93.003 76.656 93.014 C 76.953 93.318 76.919 93.617 76.794 94.36 C 74.064 94.925 71.426 95.045 68.384 95.258 C 62.296 95.262 56.612 95.173 50.471 95.103 L 50.47 95.103 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#252A30"
|
||||
d="M 212.089 100.654 C 215.668 103.632 214.297 107.23 213.868 111.177 C 213.871 111.582 212.912 112.34 212.889 112.543 C 206.487 118.745 199.137 125.367 192.041 131.493 C 189.961 131.46 189.566 130.679 188.613 130.567 L 188.291 123.878 C 195.863 116.331 203.758 108.655 211.62 100.924 L 212.089 100.654 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#292D36"
|
||||
d="M 188.3 123.84 C 188.613 125.806 188.613 127.861 188.613 130.567 C 189.566 130.679 190.931 130.839 192.71 131.002 C 188.513 135.543 177.717 145.987 172.809 150.701 C 169.459 151.008 160.695 152.062 160.969 150.037 C 161.246 147.987 176.727 136.966 177.019 134.493 C 180.679 130.69 184.333 127.31 188.3 123.841 L 188.3 123.84 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#656E7D"
|
||||
d="M 176.596 114.013 C 179.783 106.049 176.178 99.544 181.679 94.906 C 183.252 93.58 189.618 94.454 191.004 92.999 C 191.095 92.904 192.725 91.38 193.035 91.987 C 194.432 94.721 196.466 97.397 196.645 100.462 C 196.795 103.036 194.978 105.348 193.952 107.714 C 193.222 109.398 174.952 125.976 173.387 126.911 C 171.803 127.857 174.773 118.569 176.596 114.013 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#697382"
|
||||
d="M 186.63 97.934 C 184.931 99.071 180.888 104.465 180.303 102.506 C 179.677 100.409 176.645 99.995 174.663 99.07 C 170.509 97.132 179.134 93.066 179.578 90.982 C 180.077 88.641 181.169 88.004 179.649 86.155 C 178.275 84.484 183.838 84.728 185.498 83.341 C 189.743 79.794 192.315 74.495 196.632 71.037 C 197.623 70.243 200.646 70.135 200.425 71.385 C 199.637 75.845 195.803 79.261 194.416 83.573 C 194.042 84.735 196.623 86.542 196.01 88.023 C 195.288 89.766 196.779 91.056 195.202 92.093 C 194.399 92.621 194.113 92.927 186.63 97.934 Z"
|
||||
/>
|
||||
<path fill="#717C8C" d="M209.291 74.99c.17-.303.637-.625 1.402-.962-.169.305-.636.625-1.402.963z" />
|
||||
<path fill="#6D7887" d="M211.297 72.996c.175-.302.652-.634 1.436-.981-.173.306-.654.63-1.436.98z" />
|
||||
<path
|
||||
fill="#758191"
|
||||
d="M156.257 145.85c-.081-.395.086-.957.507-1.681.083.397-.087.956-.507 1.681zM196.815 105.123c.334-.14.51-.135.952-.124-.193.094-.652.181-.952.124z"
|
||||
/>
|
||||
<path fill="#717C8C" d="M208.228 75.903c-.134-.23.053-.496.558-.802.134.228-.051.497-.558.802z" />
|
||||
<path
|
||||
fill="#758191"
|
||||
d="M153.233 147.914c-.135-.231.051-.499.558-.805.139.233-.046.502-.558.805zM193.183 108.912c-.038-.17.173-.445.61-.856.03.16-.166.454-.61.856zM167.234 134.912c-.143-.235.039-.503.55-.8.142.237-.042.502-.55.8zM168.24 133.91c-.146-.236.034-.503.545-.798.144.236-.038.502-.545.799zM184.228 117.915c-.137-.233.05-.501.555-.808.147.24-.037.51-.555.808z"
|
||||
/>
|
||||
<path fill="#6D7887" d="M206.99 95.987c.1-.038.21-.063.178-.027-.142.06-.167.04-.178.027z" />
|
||||
<path
|
||||
fill="#737F8F"
|
||||
d="M 175.996 69.009 C 175.996 69.009 164.278 76.62 161.933 76.095 C 168.029 74.22 168.1 70.463 168.141 66.326 C 168.162 64.225 169.671 62.151 170.448 60.043 C 171.379 57.526 172.23 54.98 172.999 52.408 C 172.996 52.004 173 52 173.37 52.001 C 174.834 51.663 175.929 51.324 177.023 50.985 C 181.306 50.459 183.832 52.117 183.332 55.836 C 183.12 57.416 184.018 60.287 183.651 62.605 C 182.629 64.778 180.87 66.733 179.67 68.27 C 179.172 68.594 177.091 67.676 176.996 68.009 C 176.996 68.009 176.999 67.999 176.779 68.104 C 176.279 68.409 176.091 68.676 175.996 69.009 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#697382"
|
||||
d="M194.042 51.996c1.123-.573 2.246-1.146 3.808-1.53 1.675 3.64 2.912 7.094 4.004 10.845-1.703 2.428-3.262 4.56-4.82 6.69 0 0-.02.009-.023.021-1.096.21-2.188.407-4.657.851.222-4.982.424-9.515.746-14.723.395-1.168.668-1.66.942-2.154z"
|
||||
/>
|
||||
<path
|
||||
fill="#656E7D"
|
||||
d="M202 61.013c-1.238-3.453-4.764-7.499-6.147-11.28 1.986-2.564 6.408-4.206 8.841-6.59.525 4.265.748 8.678 1.003 13.76-1.212 1.817-2.454 2.964-3.697 4.11z"
|
||||
/>
|
||||
<path
|
||||
fill="#788495"
|
||||
d="M177.02 50.735c-1.091.589-2.186.928-3.647 1.264.734-.669 1.835-1.334 3.286-2.006.35-.006.356.493.36.742z"
|
||||
/>
|
||||
<path
|
||||
fill="#717C8C"
|
||||
d="M69.998 189.998c.49-.586.98-1.173 1.736-1.879.266-.119.267-.118.236.208-.674.778-1.317 1.23-1.963 1.68l-.01-.009z"
|
||||
/>
|
||||
<path
|
||||
fill="#494F5A"
|
||||
d="M45.047 218.885c-.287-.348-.575-.696-1.066-1.155a45.277 45.277 0 0 1-3.065-4.401c-.047-3.827.01-7.316.172-11.204 1.57.84 3.035 2.08 4.54 3.972.158 4.71.276 8.768.15 12.826-.244 0-.73-.038-.73-.038z"
|
||||
/>
|
||||
<path
|
||||
fill="#424853"
|
||||
d="M97.584 205.211c.344 2.246.355 4.626.44 7.45.036 1.162-.003 1.879-.088 2.952-1.284 1.47-2.52 2.584-4.189 4.073-1.198.7-1.964 1.024-3.176 1.362-2.82-.004-5.195-.021-7.57-.502l-.038-12.488c4.762-.904 9.525-1.808 14.621-2.847z"
|
||||
/>
|
||||
<path
|
||||
fill="#5C6472"
|
||||
d="M 69.075 193.388 C 69.018 193.017 68.997 192.641 69.013 192.266 C 69.342 191.547 69.663 191.077 69.998 190.309 C 70.653 189.558 69.657 188.025 70.333 187.249 C 72.492 185.682 74.036 182.311 76.462 180.907 C 80.493 181.764 86.443 185.986 90.456 187.297 C 90.157 188.736 89.576 189.879 88.995 191.022 C 88.995 191.022 88.997 190.996 88.776 191.096 C 88.366 191.471 88.178 191.747 87.99 192.023 C 87.99 192.023 87.996 191.997 87.681 192.043 C 86.907 192.761 86.447 193.434 85.987 194.107 C 85.226 195.059 84.465 196.012 83.351 196.983 C 82.997 197.003 82.945 196.957 82.945 196.957 C 81.299 191.558 76.999 194.811 73.894 194.218 C 72.339 193.921 70.732 193.903 69.075 193.388 L 69.075 193.388 Z"
|
||||
/>
|
||||
<path
|
||||
fill="#333941"
|
||||
d="M84.14 207.84c.467 4.021.622 8.468.319 13.05-3.439.501-9.686.548-12.809.025-.338-4.442-.683-8.789-1.021-12.781 3.356-.034 9.7-.273 13.511-.294z"
|
||||
/>
|
||||
<path
|
||||
fill="#252A30"
|
||||
d="M56.379 208.078c3.024-.012 7.614-.168 11.099.249-.201 4.456.346 8.442-.664 12.555-1.753.207-9.676.153-8.83-.317-.669-4.455-.937-8.481-1.605-12.487z"
|
||||
/>
|
||||
<path
|
||||
fill="#2E343E"
|
||||
d="M65 220.986c.663-4.03 1.326-8.058 1.979-12.485 1.385-.415 2.78-.432 4.59-.408.754 4.033 1.093 8.026 1.11 12.565-.758.644-1.194.74-2.051.726-2.157-.206-3.893-.302-5.628-.398z"
|
||||
/>
|
||||
<path
|
||||
fill="#20252C"
|
||||
d="M56.582 208.04a60.287 60.287 0 0 1 1.998 12.601c-2.14.478-4.305.387-6.079-.09-.343-4.418-.682-8.333-.97-12.341 1.38-.046 3.258-.162 5.051-.17z"
|
||||
/>
|
||||
<path
|
||||
fill="#3C414B"
|
||||
d="M45.636 218.899c-.118-4.058-.491-8.143-.444-12.569 1.064.076 2.604.57 3.648 1.762.084 4.588.024 8.428-.363 12.243-1.036-.487-2.131-.974-2.841-1.436z"
|
||||
/>
|
||||
<path
|
||||
fill="#292D36"
|
||||
d="M48.199 220.209c.06-3.84.192-7.506.267-11.824.769-.427 2.057-.399 3.187-.296.663 4.059.951 8.068.901 12.571-1.401.422-2.465.349-3.59.133-.062-.141-.765-.584-.765-.584z"
|
||||
/>
|
||||
<path fill="#697382" d="M61.966 197.973c.121-.02.243-.038.2-.014-.166.043-.2.014-.2.014z" />
|
||||
<path fill="#5C6472" d="M83.02 197.03c-.1.04-.223.055-.211-.002.136-.07.188-.025.211.001z" />
|
||||
<path fill="#697382" d="M62.015 198.02c-.102.04-.22.061-.193.018.144-.065.178-.036.193-.018z" />
|
||||
<path fill="#E2E2E2" d="M215.307 220.977c-.034-.464.223-.961.588-1.718a3.834 3.834 0 0 1-.588 1.718z" />
|
||||
<path fill="#3C414B" d="M79.641 95.25c-.219.204-.75.316-1.436.257.272-.229.698-.289 1.436-.256z" />
|
||||
<path fill="#697382" d="M175.533 105.552c-.057.033.056-.034 0 0z" />
|
||||
<path fill="#697382" d="M149.275 151.659c-.016-.33.227-.382.595-.137.093.102-.37.218-.595.137z" />
|
||||
</svg>
|
||||
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { type Resources } from '@hcengineering/platform'
|
||||
import type { Integration } from '@hcengineering/account-client'
|
||||
|
||||
import Configure from './components/Configure.svelte'
|
||||
import IconHulyAssistant from './components/icons/HulyAssistant.svelte'
|
||||
import { getIntegrationClient } from './utils'
|
||||
|
||||
export default async (): Promise<Resources> => ({
|
||||
component: {
|
||||
Connect: Configure,
|
||||
Configure,
|
||||
IconHulyAssistant
|
||||
},
|
||||
handler: {
|
||||
DisconnectHandler: async (integration: Integration): Promise<void> => {
|
||||
if (integration == null) {
|
||||
console.error('Missing required argument integration in DisconnectHandler')
|
||||
return
|
||||
}
|
||||
const integrationClient = await getIntegrationClient()
|
||||
await integrationClient.removeIntegration(integration.socialId, integration.workspaceUuid)
|
||||
},
|
||||
DisconnectAllHandler: async (integration: Integration): Promise<void> => {
|
||||
if (integration == null) {
|
||||
console.error('Missing required argument integration in DisconnectHandler')
|
||||
return
|
||||
}
|
||||
const integrationClient = await getIntegrationClient()
|
||||
await integrationClient.removeConnection(integration)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { type IntlString, mergeIds } from '@hcengineering/platform'
|
||||
|
||||
import aiAssistant, { aiAssistantId } from '@hcengineering/ai-assistant'
|
||||
|
||||
export default mergeIds(aiAssistantId, aiAssistant, {
|
||||
string: {
|
||||
Connect: '' as IntlString,
|
||||
FailedToConnect: '' as IntlString,
|
||||
Configure: '' as IntlString
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,39 @@
|
||||
//
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
import { getMetadata } from '@hcengineering/platform'
|
||||
import presentation from '@hcengineering/presentation'
|
||||
import login from '@hcengineering/login'
|
||||
import { aiAssistantIntegrationKind } from '@hcengineering/ai-assistant'
|
||||
import {
|
||||
getIntegrationClient as getIntegrationClientRaw,
|
||||
type IntegrationClient
|
||||
} from '@hcengineering/integration-client'
|
||||
import { getClient as getAccountClientRaw, type AccountClient } from '@hcengineering/account-client'
|
||||
|
||||
export async function getIntegrationClient (): Promise<IntegrationClient> {
|
||||
const accountsUrl = getMetadata(login.metadata.AccountsUrl)
|
||||
const token = getMetadata(presentation.metadata.Token)
|
||||
if (accountsUrl === undefined || token === undefined) {
|
||||
throw new Error('Accounts URL or token is not defined')
|
||||
}
|
||||
return getIntegrationClientRaw(accountsUrl, token, aiAssistantIntegrationKind, 'ai-assistant')
|
||||
}
|
||||
|
||||
export function getAccountClient (): AccountClient {
|
||||
const accountsUrl = getMetadata(login.metadata.AccountsUrl)
|
||||
const token = getMetadata(presentation.metadata.Token)
|
||||
|
||||
return getAccountClientRaw(accountsUrl, token)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
const sveltePreprocess = require('svelte-preprocess')
|
||||
|
||||
module.exports = {
|
||||
preprocess: sveltePreprocess()
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "./node_modules/@hcengineering/platform-rig/profiles/ui/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
"declarationDir": "./types"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "lib", "dist", "types", "bundle"]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'],
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: './tsconfig.json'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
*
|
||||
!/lib/**
|
||||
!CHANGELOG.md
|
||||
/lib/**/__tests__/
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
||||
"rigPackageName": "@hcengineering/platform-rig"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
testEnvironment: 'node',
|
||||
testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'],
|
||||
roots: ["./src"],
|
||||
coverageReporters: ["text-summary", "html"]
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"name": "@hcengineering/ai-assistant",
|
||||
"version": "0.6.0",
|
||||
"main": "lib/index.js",
|
||||
"svelte": "src/index.ts",
|
||||
"types": "types/index.d.ts",
|
||||
"files": [
|
||||
"lib/**/*",
|
||||
"types/**/*",
|
||||
"tsconfig.json"
|
||||
],
|
||||
"author": "Copyright © Hardcore Engineering Inc.",
|
||||
"license": "EPL-2.0",
|
||||
"scripts": {
|
||||
"build": "compile",
|
||||
"build:watch": "compile",
|
||||
"format": "format src",
|
||||
"test": "jest --passWithNoTests --silent",
|
||||
"_phase:build": "compile transpile src",
|
||||
"_phase:test": "jest --passWithNoTests --silent",
|
||||
"_phase:format": "format src",
|
||||
"_phase:validate": "compile validate"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@hcengineering/platform-rig": "^0.6.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.11.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-n": "^15.4.0",
|
||||
"eslint": "^8.54.0",
|
||||
"@typescript-eslint/parser": "^6.11.0",
|
||||
"eslint-config-standard-with-typescript": "^40.0.0",
|
||||
"prettier": "^3.1.0",
|
||||
"typescript": "^5.8.3",
|
||||
"jest": "^29.7.0",
|
||||
"ts-jest": "^29.1.1",
|
||||
"@types/jest": "^29.5.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/ui": "^0.6.15",
|
||||
"@hcengineering/setting": "^0.6.17"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
//
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import type { Ref, IntegrationKind } from '@hcengineering/core'
|
||||
import { type Plugin, plugin } from '@hcengineering/platform'
|
||||
import type { Handler, IntegrationType } from '@hcengineering/setting'
|
||||
import type { AnyComponent } from '@hcengineering/ui'
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export const aiAssistantIntegrationKind = 'ai-assistant' as IntegrationKind
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export const aiAssistantId = 'ai-assistant' as Plugin
|
||||
|
||||
export default plugin(aiAssistantId, {
|
||||
component: {
|
||||
Connect: '' as AnyComponent,
|
||||
IconHulyAssistant: '' as AnyComponent,
|
||||
Configure: '' as AnyComponent
|
||||
},
|
||||
integrationType: {
|
||||
AiAssistant: '' as Ref<IntegrationType>
|
||||
},
|
||||
handler: {
|
||||
DisconnectHandler: '' as Handler,
|
||||
DisconnectAllHandler: '' as Handler
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json",
|
||||
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./lib",
|
||||
"declarationDir": "./types",
|
||||
"tsBuildInfoFile": ".build/build.tsbuildinfo"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "lib", "dist", "types", "bundle"]
|
||||
}
|
||||
@@ -2596,6 +2596,26 @@
|
||||
"projectFolder": "plugins/huly-mail-resources",
|
||||
"shouldPublish": false
|
||||
},
|
||||
{
|
||||
"packageName": "@hcengineering/model-ai-assistant",
|
||||
"projectFolder": "models/ai-assistant",
|
||||
"shouldPublish": false
|
||||
},
|
||||
{
|
||||
"packageName": "@hcengineering/ai-assistant",
|
||||
"projectFolder": "plugins/ai-assistant",
|
||||
"shouldPublish": false
|
||||
},
|
||||
{
|
||||
"packageName": "@hcengineering/ai-assistant-assets",
|
||||
"projectFolder": "plugins/ai-assistant-assets",
|
||||
"shouldPublish": false
|
||||
},
|
||||
{
|
||||
"packageName": "@hcengineering/ai-assistant-resources",
|
||||
"projectFolder": "plugins/ai-assistant-resources",
|
||||
"shouldPublish": false
|
||||
},
|
||||
{
|
||||
"packageName": "@hcengineering/pod-worker",
|
||||
"projectFolder": "services/worker",
|
||||
|
||||
@@ -33,7 +33,8 @@ export function getMigrations (ns: string): [string, string][] {
|
||||
getV12Migration(ns),
|
||||
getV13Migration(ns),
|
||||
getV14Migration(ns),
|
||||
getV15Migration(ns)
|
||||
getV15Migration(ns),
|
||||
getV16Migration(ns)
|
||||
]
|
||||
}
|
||||
|
||||
@@ -436,3 +437,12 @@ function getV15Migration (ns: string): [string, string] {
|
||||
`
|
||||
]
|
||||
}
|
||||
|
||||
function getV16Migration (ns: string): [string, string] {
|
||||
return [
|
||||
'account_db_v16_add_huly_assistant_social_id_type',
|
||||
`
|
||||
ALTER TYPE ${ns}.social_id_type ADD VALUE 'huly-assistant' AFTER 'telegram';
|
||||
`
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2293,6 +2293,17 @@ async function addEmailSocialId (
|
||||
return await sendOtp(ctx, db, branding, targetSocialId)
|
||||
}
|
||||
|
||||
async function addHulyAssistantSocialId (
|
||||
ctx: MeasureContext,
|
||||
db: AccountDB,
|
||||
branding: Branding | null,
|
||||
token: string
|
||||
): Promise<PersonId> {
|
||||
const { account } = decodeTokenVerbose(ctx, token)
|
||||
|
||||
return await addSocialIdBase(db, account, SocialIdType.HULY_ASSISTANT, account, true)
|
||||
}
|
||||
|
||||
export async function releaseSocialId (
|
||||
ctx: MeasureContext,
|
||||
db: AccountDB,
|
||||
@@ -2421,6 +2432,7 @@ export type AccountMethods =
|
||||
| 'getAccountInfo'
|
||||
| 'isReadOnlyGuest'
|
||||
| 'addEmailSocialId'
|
||||
| 'addHulyAssistantSocialId'
|
||||
| 'releaseSocialId'
|
||||
| 'deleteAccount'
|
||||
|
||||
@@ -2464,6 +2476,7 @@ export function getMethods (hasSignUp: boolean = true): Partial<Record<AccountMe
|
||||
ensurePerson: wrap(ensurePerson),
|
||||
exchangeGuestToken: wrap(exchangeGuestToken),
|
||||
addEmailSocialId: wrap(addEmailSocialId),
|
||||
addHulyAssistantSocialId: wrap(addHulyAssistantSocialId),
|
||||
releaseSocialId: wrap(releaseSocialId),
|
||||
deleteAccount: wrap(deleteAccount),
|
||||
|
||||
|
||||
@@ -586,7 +586,10 @@ export async function addSocialIdToPerson (
|
||||
const { person, type, value, confirmed, displayValue } = params
|
||||
const { extra } = decodeTokenVerbose(ctx, token)
|
||||
|
||||
verifyAllowedServices(['github', 'telegram-bot', 'gmail', 'tool', 'workspace', 'hulygram', 'google-calendar'], extra)
|
||||
verifyAllowedServices(
|
||||
['github', 'telegram-bot', 'gmail', 'tool', 'workspace', 'hulygram', 'google-calendar', 'ai-assistant'],
|
||||
extra
|
||||
)
|
||||
|
||||
if (person == null || person === '' || !Object.values(SocialIdType).includes(type) || value == null || value === '') {
|
||||
throw new PlatformError(new Status(Severity.ERROR, platform.status.BadRequest, {}))
|
||||
|
||||
Reference in New Issue
Block a user