@metad/contracts 3.6.0 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/.babelrc +5 -0
  2. package/.eslintrc.json +18 -0
  3. package/babel.config.json +1 -0
  4. package/index.cjs.js +5 -3996
  5. package/jest.config.ts +16 -0
  6. package/package.json +2 -2
  7. package/project.json +53 -0
  8. package/src/agent/{ai-model.d.ts → ai-model.ts} +2 -2
  9. package/src/agent/graph.ts +272 -0
  10. package/src/agent/index.ts +5 -0
  11. package/src/agent/token.ts +23 -0
  12. package/src/agent/utils.spec.ts +283 -0
  13. package/src/agent/utils.ts +122 -0
  14. package/src/agent/variables.ts +21 -0
  15. package/src/ai/ai-model.model.ts +228 -0
  16. package/src/ai/ai-provider.model.ts +53 -0
  17. package/src/ai/ai.model.ts +87 -0
  18. package/src/ai/chat-message-feedback.model.ts +31 -0
  19. package/src/ai/chat-message.model.ts +277 -0
  20. package/src/ai/chat.model.ts +207 -0
  21. package/src/ai/copilot-checkpoint.model.ts +25 -0
  22. package/src/ai/copilot-example.model.ts +23 -0
  23. package/src/ai/copilot-model.model.ts +31 -0
  24. package/src/ai/copilot-organization.model.ts +21 -0
  25. package/src/ai/copilot-provider.model.ts +46 -0
  26. package/src/ai/copilot-role.model.ts +48 -0
  27. package/src/ai/copilot-store.model.ts +34 -0
  28. package/src/ai/copilot-user.model.ts +24 -0
  29. package/src/ai/copilot.model.ts +47 -0
  30. package/src/ai/{environment.model.d.ts → environment.model.ts} +12 -10
  31. package/src/ai/feature.model.ts +6 -0
  32. package/src/ai/index.ts +39 -0
  33. package/src/ai/knowledge-doc-chunk.model.ts +120 -0
  34. package/src/ai/knowledge-doc-chunk.spec.ts +47 -0
  35. package/src/ai/knowledge-doc-page.model.ts +20 -0
  36. package/src/ai/knowledge-doc.model.ts +252 -0
  37. package/src/ai/knowledge-pipeline.ts +138 -0
  38. package/src/ai/knowledge-retrieval-log.model.ts +19 -0
  39. package/src/ai/knowledgebase-task.model.ts +46 -0
  40. package/src/ai/knowledgebase.model.ts +190 -0
  41. package/src/ai/rag-web.ts +54 -0
  42. package/src/ai/rag.ts +24 -0
  43. package/src/ai/role-permissions.ts +13 -0
  44. package/src/ai/types.ts +83 -0
  45. package/src/ai/xpert-agent-execution.model.ts +115 -0
  46. package/src/ai/xpert-agent.model.ts +258 -0
  47. package/src/ai/xpert-project.model.ts +103 -0
  48. package/src/ai/xpert-task.model.ts +32 -0
  49. package/src/ai/xpert-template.model.ts +53 -0
  50. package/src/ai/xpert-tool-mcp.model.ts +72 -0
  51. package/src/ai/xpert-tool.model.ts +211 -0
  52. package/src/ai/xpert-toolset.model.ts +220 -0
  53. package/src/ai/xpert-workflow-task.prompt.ts +71 -0
  54. package/src/ai/xpert-workflow.model.ts +449 -0
  55. package/src/ai/xpert-workspace.model.ts +42 -0
  56. package/src/ai/xpert.model.ts +613 -0
  57. package/src/ai/xpert.utils.ts +214 -0
  58. package/src/analytics/ai.ts +79 -0
  59. package/src/analytics/approval-policy.model.ts +40 -0
  60. package/src/analytics/business-area-user.model.ts +43 -0
  61. package/src/analytics/business-area.ts +20 -0
  62. package/src/analytics/certification.model.ts +12 -0
  63. package/src/analytics/chatbi-conversation.model.ts +16 -0
  64. package/src/analytics/chatbi-model.model.ts +22 -0
  65. package/src/analytics/collection.model.ts +8 -0
  66. package/src/analytics/comment.model.ts +14 -0
  67. package/src/analytics/data-source-type.ts +19 -0
  68. package/src/analytics/data-source.ts +72 -0
  69. package/src/analytics/favorite.ts +18 -0
  70. package/src/analytics/features.ts +19 -0
  71. package/src/analytics/feed-model.ts +15 -0
  72. package/src/analytics/gateway.ts +30 -0
  73. package/src/analytics/index.ts +39 -0
  74. package/src/analytics/indicator-app.ts +49 -0
  75. package/src/analytics/{indicator-market.d.ts → indicator-market.ts} +6 -2
  76. package/src/analytics/indicator.ts +127 -0
  77. package/src/analytics/model-query-log.model.ts +45 -0
  78. package/src/analytics/model-query.ts +22 -0
  79. package/src/analytics/{notification-destination.d.ts → notification-destination.ts} +9 -5
  80. package/src/analytics/{permission-approval-user.model.d.ts → permission-approval-user.model.ts} +10 -8
  81. package/src/analytics/permission-approval.model.ts +58 -0
  82. package/src/analytics/project.model.ts +56 -0
  83. package/src/analytics/role-permissions.ts +36 -0
  84. package/src/analytics/schema.ts +300 -0
  85. package/src/analytics/screenshot.model.ts +28 -0
  86. package/src/analytics/semantic-model-entity.ts +49 -0
  87. package/src/analytics/semantic-model-member.ts +45 -0
  88. package/src/analytics/semantic-model.ts +227 -0
  89. package/src/analytics/{story-point.d.ts → story-point.ts} +11 -6
  90. package/src/analytics/story-template.model.ts +34 -0
  91. package/src/analytics/story-widget.ts +15 -0
  92. package/src/analytics/story.ts +109 -0
  93. package/src/analytics/subscription.ts +43 -0
  94. package/src/analytics/visit.model.ts +39 -0
  95. package/src/analytics/webSocket.ts +53 -0
  96. package/src/api-key.model.ts +11 -0
  97. package/src/base-entity.model.ts +34 -0
  98. package/src/contact.model.ts +45 -0
  99. package/src/core.model.ts +103 -0
  100. package/src/{country.model.d.ts → country.model.ts} +3 -2
  101. package/src/currency.model.ts +582 -0
  102. package/src/{custom-smtp.model.d.ts → custom-smtp.model.ts} +21 -17
  103. package/src/date-picker.model.ts +5 -0
  104. package/src/email-template.model.ts +50 -0
  105. package/src/email.model.ts +46 -0
  106. package/src/employee.model.ts +199 -0
  107. package/src/entity-with-members.model.ts +16 -0
  108. package/src/feature.model.ts +108 -0
  109. package/src/file-provider.ts +37 -0
  110. package/src/help-center-article.model.ts +35 -0
  111. package/src/help-center.model.ts +33 -0
  112. package/src/http-status.enum.ts +58 -0
  113. package/src/import-export.model.ts +42 -0
  114. package/src/index.ts +60 -0
  115. package/src/integration/dify.ts +31 -0
  116. package/src/integration/dingtalk.ts +16 -0
  117. package/src/integration/fastgpt.ts +32 -0
  118. package/src/integration/firecrawl.ts +46 -0
  119. package/src/integration/github.ts +149 -0
  120. package/src/integration/index.ts +15 -0
  121. package/src/integration/lark.ts +79 -0
  122. package/src/integration/wecom.ts +16 -0
  123. package/src/integration.model.ts +119 -0
  124. package/src/invite.model.ts +144 -0
  125. package/src/language.model.ts +22 -0
  126. package/src/organization-contact.model.ts +84 -0
  127. package/src/{organization-department.model.d.ts → organization-department.model.ts} +16 -10
  128. package/src/organization-language.model.ts +24 -0
  129. package/src/organization-projects.model.ts +99 -0
  130. package/src/organization-team-employee-model.ts +14 -0
  131. package/src/organization-team-model.ts +25 -0
  132. package/src/organization.model.ts +266 -0
  133. package/src/password-reset.model.ts +22 -0
  134. package/src/{plain-object.model.d.ts → plain-object.model.ts} +1 -1
  135. package/src/plugin.ts +15 -0
  136. package/src/role-permission.model.ts +123 -0
  137. package/src/role.model.ts +31 -0
  138. package/src/schedule.ts +71 -0
  139. package/src/secret-token.model.ts +15 -0
  140. package/src/seed.model.ts +50 -0
  141. package/src/storage-file.model.ts +46 -0
  142. package/src/tag-entity.model.ts +23 -0
  143. package/src/tenant.model.ts +52 -0
  144. package/src/tools/index.ts +1 -0
  145. package/src/tools/sandbox.ts +5 -0
  146. package/src/translation.model.ts +37 -0
  147. package/src/types.ts +277 -0
  148. package/src/user-organization.model.ts +31 -0
  149. package/src/user.model.ts +151 -0
  150. package/src/visibility.model.ts +6 -0
  151. package/tsconfig.json +22 -0
  152. package/tsconfig.lib.json +10 -0
  153. package/tsconfig.spec.json +9 -0
  154. package/index.cjs.d.ts +0 -1
  155. package/index.esm.d.ts +0 -1
  156. package/index.esm.js +0 -3900
  157. package/src/agent/graph.d.ts +0 -148
  158. package/src/agent/index.d.ts +0 -5
  159. package/src/agent/token.d.ts +0 -21
  160. package/src/agent/utils.d.ts +0 -19
  161. package/src/agent/variables.d.ts +0 -14
  162. package/src/ai/ai-model.model.d.ts +0 -195
  163. package/src/ai/ai-provider.model.d.ts +0 -43
  164. package/src/ai/ai.model.d.ts +0 -82
  165. package/src/ai/chat-message-feedback.model.d.ts +0 -24
  166. package/src/ai/chat-message.model.d.ts +0 -222
  167. package/src/ai/chat.model.d.ts +0 -189
  168. package/src/ai/copilot-checkpoint.model.d.ts +0 -23
  169. package/src/ai/copilot-example.model.d.ts +0 -19
  170. package/src/ai/copilot-model.model.d.ts +0 -26
  171. package/src/ai/copilot-organization.model.d.ts +0 -17
  172. package/src/ai/copilot-provider.model.d.ts +0 -31
  173. package/src/ai/copilot-role.model.d.ts +0 -43
  174. package/src/ai/copilot-store.model.d.ts +0 -29
  175. package/src/ai/copilot-user.model.d.ts +0 -20
  176. package/src/ai/copilot.model.d.ts +0 -36
  177. package/src/ai/feature.model.d.ts +0 -6
  178. package/src/ai/index.d.ts +0 -38
  179. package/src/ai/knowledge-doc-page.model.d.ts +0 -15
  180. package/src/ai/knowledge-doc.model.d.ts +0 -177
  181. package/src/ai/knowledge-pipeline.d.ts +0 -100
  182. package/src/ai/knowledge-retrieval-log.model.d.ts +0 -10
  183. package/src/ai/knowledgebase-task.model.d.ts +0 -36
  184. package/src/ai/knowledgebase.model.d.ts +0 -160
  185. package/src/ai/rag-web.d.ts +0 -26
  186. package/src/ai/rag.d.ts +0 -24
  187. package/src/ai/role-permissions.d.ts +0 -13
  188. package/src/ai/types.d.ts +0 -39
  189. package/src/ai/xpert-agent-execution.model.d.ts +0 -96
  190. package/src/ai/xpert-agent.model.d.ts +0 -192
  191. package/src/ai/xpert-project.model.d.ts +0 -86
  192. package/src/ai/xpert-task.model.d.ts +0 -26
  193. package/src/ai/xpert-template.model.d.ts +0 -47
  194. package/src/ai/xpert-tool-mcp.model.d.ts +0 -67
  195. package/src/ai/xpert-tool.model.d.ts +0 -147
  196. package/src/ai/xpert-toolset.model.d.ts +0 -200
  197. package/src/ai/xpert-workflow-task.prompt.d.ts +0 -2
  198. package/src/ai/xpert-workflow.model.d.ts +0 -365
  199. package/src/ai/xpert-workspace.model.d.ts +0 -32
  200. package/src/ai/xpert.model.d.ts +0 -497
  201. package/src/ai/xpert.utils.d.ts +0 -80
  202. package/src/analytics/ai.d.ts +0 -73
  203. package/src/analytics/approval-policy.model.d.ts +0 -30
  204. package/src/analytics/business-area-user.model.d.ts +0 -35
  205. package/src/analytics/business-area.d.ts +0 -17
  206. package/src/analytics/certification.model.d.ts +0 -11
  207. package/src/analytics/chatbi-conversation.model.d.ts +0 -15
  208. package/src/analytics/chatbi-model.model.d.ts +0 -18
  209. package/src/analytics/collection.model.d.ts +0 -6
  210. package/src/analytics/comment.model.d.ts +0 -10
  211. package/src/analytics/data-source-type.d.ts +0 -16
  212. package/src/analytics/data-source.d.ts +0 -62
  213. package/src/analytics/favorite.d.ts +0 -14
  214. package/src/analytics/features.d.ts +0 -19
  215. package/src/analytics/feed-model.d.ts +0 -13
  216. package/src/analytics/gateway.d.ts +0 -27
  217. package/src/analytics/index.d.ts +0 -38
  218. package/src/analytics/indicator-app.d.ts +0 -44
  219. package/src/analytics/indicator.d.ts +0 -106
  220. package/src/analytics/model-query-log.model.d.ts +0 -41
  221. package/src/analytics/model-query.d.ts +0 -21
  222. package/src/analytics/permission-approval.model.d.ts +0 -47
  223. package/src/analytics/project.model.d.ts +0 -50
  224. package/src/analytics/role-permissions.d.ts +0 -25
  225. package/src/analytics/schema.d.ts +0 -262
  226. package/src/analytics/screenshot.model.d.ts +0 -25
  227. package/src/analytics/semantic-model-entity.d.ts +0 -37
  228. package/src/analytics/semantic-model-member.d.ts +0 -24
  229. package/src/analytics/semantic-model.d.ts +0 -175
  230. package/src/analytics/story-template.model.d.ts +0 -28
  231. package/src/analytics/story-widget.d.ts +0 -12
  232. package/src/analytics/story.d.ts +0 -93
  233. package/src/analytics/subscription.d.ts +0 -38
  234. package/src/analytics/visit.model.d.ts +0 -34
  235. package/src/analytics/webSocket.d.ts +0 -48
  236. package/src/api-key.model.d.ts +0 -10
  237. package/src/base-entity.model.d.ts +0 -27
  238. package/src/contact.model.d.ts +0 -41
  239. package/src/core.model.d.ts +0 -97
  240. package/src/currency.model.d.ts +0 -579
  241. package/src/date-picker.model.d.ts +0 -5
  242. package/src/email-template.model.d.ts +0 -39
  243. package/src/email.model.d.ts +0 -36
  244. package/src/employee.model.d.ts +0 -128
  245. package/src/entity-with-members.model.d.ts +0 -13
  246. package/src/feature.model.d.ts +0 -93
  247. package/src/file-provider.d.ts +0 -33
  248. package/src/help-center-article.model.d.ts +0 -0
  249. package/src/help-center.model.d.ts +0 -0
  250. package/src/http-status.enum.d.ts +0 -57
  251. package/src/import-export.model.d.ts +0 -36
  252. package/src/index.d.ts +0 -48
  253. package/src/integration/dify.d.ts +0 -0
  254. package/src/integration/dingtalk.d.ts +0 -2
  255. package/src/integration/fastgpt.d.ts +0 -0
  256. package/src/integration/firecrawl.d.ts +0 -2
  257. package/src/integration/github.d.ts +0 -69
  258. package/src/integration/index.d.ts +0 -4
  259. package/src/integration/lark.d.ts +0 -11
  260. package/src/integration/ragflow.d.ts +0 -0
  261. package/src/integration/wecom.d.ts +0 -2
  262. package/src/integration.model.d.ts +0 -86
  263. package/src/invite.model.d.ts +0 -123
  264. package/src/language.model.d.ts +0 -19
  265. package/src/organization-contact.model.d.ts +0 -73
  266. package/src/organization-language.model.d.ts +0 -18
  267. package/src/organization-projects.model.d.ts +0 -80
  268. package/src/organization-team-employee-model.d.ts +0 -12
  269. package/src/organization-team-model.d.ts +0 -19
  270. package/src/organization.model.d.ts +0 -239
  271. package/src/password-reset.model.d.ts +0 -18
  272. package/src/plugin.d.ts +0 -13
  273. package/src/role-permission.model.d.ts +0 -61
  274. package/src/role.model.d.ts +0 -26
  275. package/src/schedule.d.ts +0 -27
  276. package/src/secret-token.model.d.ts +0 -11
  277. package/src/seed.model.d.ts +0 -37
  278. package/src/storage-file.model.d.ts +0 -40
  279. package/src/tag-entity.model.d.ts +0 -20
  280. package/src/tenant.model.d.ts +0 -40
  281. package/src/tools/index.d.ts +0 -1
  282. package/src/tools/sandbox.d.ts +0 -5
  283. package/src/translation.model.d.ts +0 -26
  284. package/src/types.d.ts +0 -240
  285. package/src/user-organization.model.d.ts +0 -24
  286. package/src/user.model.d.ts +0 -128
  287. package/src/visibility.model.d.ts +0 -6
@@ -0,0 +1,32 @@
1
+ // import { IntegrationEnum, IntegrationFeatureEnum, TIntegrationProvider } from '../integration.model';
2
+
3
+
4
+ // export const IntegrationFastGPTProvider: TIntegrationProvider = {
5
+ // name: IntegrationEnum.FastGPT,
6
+ // label: {
7
+ // en_US: 'FastGPT',
8
+ // zh_Hans: 'FastGPT'
9
+ // },
10
+ // description: {
11
+ // en_US: 'FastGPT is a knowledge base Q&A system based on LLM large language models.',
12
+ // zh_Hans: 'FastGPT 是一个基于 LLM 大语言模型的知识库问答系统。'
13
+ // },
14
+ // avatar: 'fastgpt.svg',
15
+ // schema: {
16
+ // type: 'object',
17
+ // properties: {
18
+ // url: {
19
+ // type: 'string',
20
+ // description: 'The url of FastGPT server'
21
+ // },
22
+ // apiKey: {
23
+ // type: 'string',
24
+ // description: 'The API Key of the FastGPT server'
25
+ // },
26
+ // }
27
+ // },
28
+ // features: [
29
+ // IntegrationFeatureEnum.KNOWLEDGE
30
+ // ],
31
+ // helpUrl: 'https://doc.fastgpt.io/docs/introduction/development/openapi/dataset'
32
+ // }
@@ -0,0 +1,46 @@
1
+ import { IntegrationEnum, TIntegrationProvider } from '../integration.model'
2
+ import { ParameterTypeEnum } from '../types'
3
+
4
+ export const IntegrationFirecrawlProvider: TIntegrationProvider = {
5
+ name: IntegrationEnum.FIRECRAWL,
6
+ label: {
7
+ en_US: 'Firecrawl',
8
+ },
9
+ avatar: 'firecrawl.png',
10
+ schema: {
11
+ type: 'object',
12
+ required: ['apiKey'],
13
+ parameters: [
14
+ {
15
+ name: 'apiKey',
16
+ type: ParameterTypeEnum.SECRET_INPUT,
17
+ label: {
18
+ en_US: 'API Key'
19
+ },
20
+ placeholder: {
21
+ zh_Hans: '从 firecrawl.dev 获取 API Key',
22
+ en_US: 'Get an API Key from firecrawl.dev'
23
+ },
24
+ help: {
25
+ title: {
26
+ en_US: 'Get an API Key',
27
+ zh_Hans: '获取一个 API Key',
28
+ },
29
+ url: {
30
+ en_US: 'https://firecrawl.dev'
31
+ }
32
+ }
33
+ },
34
+ {
35
+ name: 'apiUrl',
36
+ type: ParameterTypeEnum.STRING,
37
+ label: {
38
+ en_US: 'Base URL'
39
+ },
40
+ placeholder: {
41
+ en_US: 'https://api.firecrawl.dev'
42
+ },
43
+ }
44
+ ]
45
+ },
46
+ }
@@ -0,0 +1,149 @@
1
+ import { Endpoints } from "@octokit/types";
2
+ import { IIntegration, IntegrationEnum, TIntegrationProvider } from '../integration.model';
3
+
4
+
5
+ export const IntegrationGitHubProvider: TIntegrationProvider = {
6
+ name: IntegrationEnum.GITHUB,
7
+ label: {
8
+ en_US: 'GitHub',
9
+ zh_Hans: 'GitHub'
10
+ },
11
+ description: {
12
+ en_US: 'GitHub is a proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project.',
13
+ zh_Hans: 'GitHub 是一个专有的开发者平台,允许开发者创建、存储、管理和分享他们的代码。它使用 Git 提供分布式版本控制,GitHub 本身为每个项目提供访问控制、错误跟踪、软件功能请求、任务管理、持续集成和知识。'
14
+ },
15
+ avatar: 'github.svg',
16
+ webhook: true,
17
+ schema: {
18
+ type: 'object',
19
+ properties: {
20
+ appName: {
21
+ type: 'string',
22
+ description: 'The App Name of the GitHub App'
23
+ },
24
+ appId: {
25
+ type: 'string',
26
+ description: 'The App ID of the GitHub App'
27
+ },
28
+ clientId: {
29
+ type: 'string',
30
+ description: 'The Client ID of the GitHub App'
31
+ },
32
+ clientSecret: {
33
+ type: 'string',
34
+ description: 'The Client Secret of the GitHub App'
35
+ },
36
+ privateKey: {
37
+ type: 'textarea',
38
+ description: 'The private key of the GitHub App'
39
+ },
40
+ webhookSecret: {
41
+ type: 'string',
42
+ description: 'The webhook secret of the GitHub App'
43
+ }
44
+ }
45
+ },
46
+ // webhookUrl: (integration: IIntegration, baseUrl: string) => {
47
+ // return `${baseUrl}/api/github/${integration.id}/webhook`
48
+ // }
49
+ }
50
+
51
+ export type TGithubAuth = {
52
+ redirectUri: string;
53
+ integrationId: string;
54
+ access_token: string;
55
+ expires_in: number;
56
+ refresh_token: string;
57
+ refresh_token_expires_in: number;
58
+ token_type: string;
59
+ scope: string;
60
+ installation_token: string;
61
+ repository: string
62
+ };
63
+
64
+ type GitHubInstallationsResponse =
65
+ Endpoints["GET /user/installations"]["response"]["data"];
66
+ type GitHubInstallation = GitHubInstallationsResponse["installations"][0];
67
+
68
+ export interface Installation {
69
+ id: number;
70
+ accountName: string;
71
+ accountType: "User" | "Organization";
72
+ avatarUrl: string;
73
+ }
74
+
75
+ /**
76
+ * Transform GitHub API installation data to our simplified format
77
+ */
78
+ export const transformInstallation = (
79
+ installation: GitHubInstallation,
80
+ ): Installation => {
81
+ if (!installation.account) {
82
+ throw new Error("Installation account is null");
83
+ }
84
+
85
+ // Handle both User and Organization account types
86
+ let accountName: string;
87
+ if ("login" in installation.account && installation.account.login) {
88
+ accountName = installation.account.login;
89
+ } else if ("slug" in installation.account && installation.account.slug) {
90
+ accountName = installation.account.slug;
91
+ } else if ("name" in installation.account && installation.account.name) {
92
+ accountName = installation.account.name;
93
+ } else {
94
+ accountName = "Unknown";
95
+ }
96
+
97
+ const accountType = installation.target_type as "User" | "Organization";
98
+
99
+ return {
100
+ id: installation.id,
101
+ accountName,
102
+ accountType,
103
+ avatarUrl: installation.account.avatar_url,
104
+ };
105
+ };
106
+
107
+ export type TRepositoryReturn = {
108
+ repositories: Repository[]
109
+ pagination: {
110
+ page: number
111
+ perPage: number
112
+ hasMore: boolean
113
+ totalCount: number
114
+ }
115
+ }
116
+
117
+ /**
118
+ * Repository interface representing GitHub repository data
119
+ */
120
+ export interface Repository {
121
+ id: number;
122
+ name: string;
123
+ full_name: string;
124
+ description: string | null;
125
+ private: boolean;
126
+ fork: boolean;
127
+ html_url: string;
128
+ default_branch: string;
129
+ permissions: {
130
+ admin: boolean;
131
+ maintain: boolean;
132
+ push: boolean;
133
+ triage: boolean;
134
+ pull: boolean;
135
+ };
136
+ has_issues: boolean;
137
+ }
138
+
139
+ /**
140
+ * Branch interface representing GitHub branch data
141
+ */
142
+ export interface Branch {
143
+ name: string;
144
+ commit: {
145
+ sha: string;
146
+ url: string;
147
+ };
148
+ protected: boolean;
149
+ }
@@ -0,0 +1,15 @@
1
+ import { IntegrationEnum, TIntegrationProvider } from '../integration.model'
2
+ import { IntegrationDingTalkProvider } from './dingtalk'
3
+ import { IntegrationGitHubProvider } from './github'
4
+ // import { IntegrationLarkProvider } from './lark'
5
+ // import { IntegrationWeComProvider } from './wecom'
6
+
7
+ export * from './github'
8
+ export * from './lark'
9
+
10
+ export const INTEGRATION_PROVIDERS: Partial<Record<IntegrationEnum, TIntegrationProvider>> = {
11
+ // [IntegrationEnum.LARK]: IntegrationLarkProvider,
12
+ [IntegrationEnum.DINGTALK]: IntegrationDingTalkProvider,
13
+ // [IntegrationEnum.WECOM]: IntegrationWeComProvider,
14
+ [IntegrationEnum.GITHUB]: IntegrationGitHubProvider,
15
+ }
@@ -0,0 +1,79 @@
1
+ import { IIntegration, IntegrationEnum, TIntegrationProvider } from '../integration.model'
2
+
3
+ export type TIntegrationLarkOptions = {
4
+ isLark?: boolean
5
+ appId: string
6
+ appSecret: string
7
+ verificationToken: string
8
+ encryptKey: string
9
+ xpertId: string
10
+ preferLanguage: string
11
+ }
12
+
13
+ export const IntegrationLarkProvider: TIntegrationProvider = {
14
+ name: IntegrationEnum.LARK,
15
+ label: {
16
+ en_US: 'Lark',
17
+ zh_Hans: '飞书'
18
+ },
19
+ avatar: 'lark.png',
20
+ webhook: true,
21
+ schema: {
22
+ type: 'object',
23
+ properties: {
24
+ isLark: { type: 'boolean', title: {
25
+ en_US: 'Is Lark',
26
+ zh_Hans: '国际版'
27
+ } },
28
+ appId: { type: 'string', title: 'App ID' },
29
+ appSecret: { type: 'string', title: 'App Secret' },
30
+ verificationToken: { type: 'string', title: 'Verification Token' },
31
+ encryptKey: {
32
+ type: 'string',
33
+ title: {
34
+ en_US: 'Encrypt Key'
35
+ // zh_Hans: '加密密钥'
36
+ }
37
+ },
38
+ xpertId: {
39
+ type: 'remote-select',
40
+ title: {
41
+ en_US: 'Xpert',
42
+ zh_Hans: '数字专家'
43
+ },
44
+ placeholder: {
45
+ en_US: 'Choose a corresponding digital expert',
46
+ zh_Hans: '选择一个对应的数字专家'
47
+ },
48
+ selectUrl: '/api/xpert/select-options'
49
+ },
50
+ preferLanguage: {
51
+ type: 'select',
52
+ title: {
53
+ en_US: 'Preferred Language',
54
+ zh_Hans: '首选语言'
55
+ },
56
+ options: [
57
+ {
58
+ value: 'en',
59
+ label: {
60
+ en_US: 'English',
61
+ zh_Hans: '英语'
62
+ }
63
+ }, {
64
+ value: 'zh',
65
+ label: {
66
+ en_US: 'Chinese',
67
+ zh_Hans: '中文'
68
+ }
69
+ }
70
+ ]
71
+ },
72
+ },
73
+ required: ['appId', 'appSecret'],
74
+ secret: ['appSecret', 'verificationToken', 'encryptKey']
75
+ },
76
+ // webhookUrl: (integration: IIntegration, baseUrl: string) => {
77
+ // return `${baseUrl}/api/lark/webhook/${integration.id}`
78
+ // }
79
+ }
@@ -0,0 +1,16 @@
1
+ import { IntegrationEnum, TIntegrationProvider } from '../integration.model'
2
+
3
+ export const IntegrationWeComProvider: TIntegrationProvider = {
4
+ name: IntegrationEnum.WECOM,
5
+ label: {
6
+ en_US: 'WeCom',
7
+ zh_Hans: '企业微信'
8
+ },
9
+ avatar: 'wecom.webp',
10
+ webhook: true,
11
+ schema: {
12
+ type: 'object',
13
+ properties: {}
14
+ },
15
+ pro: true
16
+ }
@@ -0,0 +1,119 @@
1
+ import {
2
+ IBasePerTenantAndOrganizationEntityModel
3
+ } from './base-entity.model';
4
+ import { IOrganizationProjectsUpdateInput } from './organization-projects.model';
5
+ import { IOrganizationUpdateInput } from './organization.model';
6
+ import { ITag } from './tag-entity.model';
7
+ import { I18nObject, IconDefinition, TAvatar, TParameterSchema } from './types';
8
+
9
+
10
+ export interface IIntegration<T = any> extends IBasePerTenantAndOrganizationEntityModel {
11
+ name: string
12
+ description?: string
13
+ /**
14
+ * avatar object
15
+ */
16
+ avatar?: TAvatar
17
+ slug: string;
18
+ provider: string | IntegrationEnum
19
+
20
+ /**
21
+ * Integration features: ['knowledge', 'agent', ...]
22
+ */
23
+ features?: IntegrationFeatureEnum[]
24
+
25
+ /**
26
+ * Custom options for different providers
27
+ */
28
+ options?: T
29
+
30
+ tags?: ITag[]
31
+ }
32
+
33
+ export interface IIntegrationFilter {
34
+ integrationTypeId: string;
35
+ searchQuery: string;
36
+ filter: string;
37
+ }
38
+
39
+ export interface IIntegrationMapSyncProject
40
+ extends IBasePerTenantAndOrganizationEntityModel {
41
+ organizationProjectInput: IOrganizationProjectsUpdateInput;
42
+ integrationId: string;
43
+ sourceId: number;
44
+ }
45
+
46
+ export interface IIntegrationMapSyncOrganization
47
+ extends IBasePerTenantAndOrganizationEntityModel {
48
+ organizationInput: IOrganizationUpdateInput;
49
+ integrationId: string;
50
+ sourceId: number;
51
+ }
52
+
53
+ /**
54
+ * @deprecated use Plugins instead
55
+ */
56
+ export enum IntegrationEnum {
57
+ UPWORK = 'Upwork',
58
+ HUBSTAFF = 'Hubstaff',
59
+ LARK = 'Lark',
60
+ DINGTALK = 'DingTalk',
61
+ WECOM = 'WeCom',
62
+ FIRECRAWL = 'firecrawl',
63
+ KNOWLEDGEBASE = 'knowledgebase',
64
+ GITHUB = 'github',
65
+ RAGFlow = 'ragflow',
66
+ Dify = 'dify',
67
+ FastGPT = 'fastgpt',
68
+ }
69
+
70
+ export enum IntegrationFeatureEnum {
71
+ KNOWLEDGE = 'knowledge',
72
+ AGENT = 'agent',
73
+ SSO = 'sso',
74
+ }
75
+
76
+ export enum IntegrationFilterEnum {
77
+ ALL = 'All',
78
+ FREE = 'Free',
79
+ PAID = 'Paid'
80
+ }
81
+
82
+ export const DEFAULT_INTEGRATION_PAID_FILTERS = [
83
+ {
84
+ label: IntegrationFilterEnum.ALL,
85
+ value: 'all'
86
+ },
87
+ {
88
+ label: IntegrationFilterEnum.FREE,
89
+ value: 'false'
90
+ },
91
+ {
92
+ label: IntegrationFilterEnum.PAID,
93
+ value: 'true'
94
+ }
95
+ ];
96
+
97
+ export interface IDateRangeActivityFilter {
98
+ start: Date;
99
+ end: Date;
100
+ }
101
+
102
+ export type TIntegrationProvider = {
103
+ name: string
104
+ label: I18nObject
105
+ description?: I18nObject
106
+ avatar?: string
107
+ icon?: IconDefinition
108
+ webhook?: boolean
109
+ schema?: TParameterSchema
110
+ features?: IntegrationFeatureEnum[]
111
+ helpUrl?: string
112
+ /**
113
+ * Webhook URL generator, for example:
114
+ * `{{apiBaseUrl}}/api/integration/webhook/{{integrationId}}`
115
+ */
116
+ webhookUrl?: string
117
+ // webhookUrl?: (integration: IIntegration, baseUrl: string) => string
118
+ pro?: boolean
119
+ }
@@ -0,0 +1,144 @@
1
+ import { IRole } from './role.model';
2
+ import { IBasePerTenantAndOrganizationEntityModel } from './base-entity.model';
3
+ import { IUser, IUserRegistrationInput, LanguagesEnum } from './user.model';
4
+ import { IOrganization } from './organization.model';
5
+ import { IOrganizationContact } from './organization-contact.model';
6
+ import { IOrganizationDepartment } from './organization-department.model';
7
+ import { IEmployee } from './employee.model';
8
+
9
+ export interface IInvite extends IBasePerTenantAndOrganizationEntityModel {
10
+ token: string;
11
+ email: string;
12
+ roleId: string;
13
+ invitedById: string;
14
+ status: string;
15
+ expireDate: Date;
16
+ actionDate?: Date;
17
+ role?: IRole;
18
+ invitedBy?: IUser;
19
+ organizationContacts?: IOrganizationContact[];
20
+ departments?: IOrganizationDepartment[];
21
+ }
22
+
23
+ export interface IInviteAcceptInput extends IUserRegistrationInput {
24
+ inviteId: string;
25
+ organization: IOrganization;
26
+ originalUrl?: string;
27
+ }
28
+
29
+ export interface IInviteResendInput {
30
+ id: string;
31
+ invitedById: string;
32
+ email: string;
33
+ roleName: string;
34
+ organization: IOrganization;
35
+ departmentNames?: string[];
36
+ clientNames?: string[];
37
+ inviteType: any;
38
+
39
+ }
40
+
41
+ export interface ICreateEmailInvitesInput
42
+ extends IBasePerTenantAndOrganizationEntityModel {
43
+ emailIds: string[];
44
+ projectIds?: string[];
45
+ organizationContactIds?: string[];
46
+ departmentIds?: string[];
47
+ roleId: string;
48
+ invitedById: string;
49
+ inviteType: any;
50
+ startedWorkOn: Date;
51
+ appliedDate?: Date;
52
+ invitationExpirationPeriod?: number | string;
53
+ }
54
+
55
+ export interface ICreateOrganizationContactInviteInput
56
+ extends IBasePerTenantAndOrganizationEntityModel {
57
+ emailId: string;
58
+ organizationContactId: string;
59
+ roleId: string;
60
+ invitedById: string;
61
+ originalUrl: string;
62
+ languageCode: LanguagesEnum;
63
+ }
64
+
65
+ export interface ICreateEmailInvitesOutput {
66
+ items: IInvite[];
67
+ total: number;
68
+ ignored: number;
69
+ }
70
+
71
+ export interface IInviteFindInput
72
+ extends IBasePerTenantAndOrganizationEntityModel {
73
+ invitationType?: InvitationTypeEnum;
74
+ }
75
+
76
+ export interface IPublicInviteFindInput {
77
+ email: string;
78
+ token: string;
79
+ }
80
+
81
+ export interface IInviteUpdateInput {
82
+ status: InviteStatusEnum;
83
+ }
84
+
85
+ export enum InviteStatusEnum {
86
+ INVITED = 'INVITED',
87
+ ACCEPTED = 'ACCEPTED'
88
+ }
89
+
90
+ export enum InvitationTypeEnum {
91
+ USER = 'USER',
92
+ EMPLOYEE = 'EMPLOYEE',
93
+ CANDIDATE = 'CANDIDATE'
94
+ }
95
+
96
+ export enum InvitationExpirationEnum {
97
+ DAY = 1,
98
+ WEEK = 7,
99
+ TWO_WEEK = 14,
100
+ MONTH = 30,
101
+ NEVER = 'Never'
102
+ }
103
+
104
+ export interface IInviteViewModel {
105
+ email: string;
106
+ expireDate: string;
107
+ createdDate: string;
108
+ imageUrl: string;
109
+ fullName: string;
110
+ roleName?: string;
111
+ status: string;
112
+ projectNames: string[];
113
+ clientNames: string[];
114
+ departmentNames: string[];
115
+ id: string;
116
+ inviteUrl: string;
117
+ }
118
+
119
+ export interface IInviteUserModel
120
+ extends IBasePerTenantAndOrganizationEntityModel {
121
+ email: string;
122
+ role: string;
123
+ registerUrl: string;
124
+ languageCode: LanguagesEnum;
125
+ invitedBy: IUser;
126
+ originUrl?: string;
127
+ }
128
+ export interface IInviteEmployeeModel
129
+ extends IBasePerTenantAndOrganizationEntityModel {
130
+ email: string;
131
+ registerUrl: string;
132
+ languageCode: LanguagesEnum;
133
+ invitedBy: IUser;
134
+ organizationContacts?: IOrganizationContact[];
135
+ departments?: IOrganizationDepartment[];
136
+ originUrl?: string;
137
+ }
138
+
139
+ export interface IJoinEmployeeModel extends IBasePerTenantAndOrganizationEntityModel {
140
+ email: string;
141
+ employee: IEmployee;
142
+ organization: IOrganization;
143
+ languageCode: LanguagesEnum;
144
+ }
@@ -0,0 +1,22 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from './base-entity.model';
2
+
3
+ export interface ILanguage extends IBasePerTenantAndOrganizationEntityModel {
4
+ name?: string;
5
+ code?: string;
6
+ is_system?: boolean;
7
+ description?: string;
8
+ color?: string;
9
+ isSelected?: boolean;
10
+ }
11
+
12
+ export interface ILanguageName {
13
+ name?: string;
14
+ }
15
+
16
+ export interface ILanguageFindInput {
17
+ name?: string;
18
+ code?: string;
19
+ is_system?: boolean;
20
+ description?: string;
21
+ color?: string;
22
+ }