@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,214 @@
1
+ import { IPoint } from '../types'
2
+ import { IXpertAgent } from './xpert-agent.model'
3
+ import { IXpert, TXpertTeamNode } from './xpert.model'
4
+
5
+ // Helpers
6
+ export function omitXpertRelations(xpert: Partial<IXpert>) {
7
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
+ const { draft, agent, agents, executors, leaders, knowledgebases, toolsets, managers, ...rest } = xpert ?? {}
9
+ return rest
10
+ }
11
+
12
+ export function figureOutXpert(xpert: IXpert, isDraft: boolean) {
13
+ return (isDraft ? xpert.draft?.team : xpert) ?? xpert
14
+ }
15
+
16
+ export function xpertLabel(agent: Partial<IXpert>) {
17
+ return agent.title || agent.name
18
+ }
19
+
20
+ export function createXpertGraph(xpert: IXpert, position: IPoint) {
21
+ const graph = xpert.graph ?? xpert.draft
22
+
23
+ const { nodes, size } = locateNodes(graph.nodes, position)
24
+
25
+ return { nodes, size, connections: graph.connections }
26
+ }
27
+
28
+ export function locateNodes(nodes: TXpertTeamNode[], position: IPoint) {
29
+ // Extract the area by positions of all nodes
30
+ const positions = nodes.map((node) => node.position)
31
+ const x0Positions = positions.map((pos) => pos.x)
32
+ const x1Positions = nodes.map((node) => node.position.x + (node.size?.width ?? 240)) // Node width min 240
33
+ const y0Positions = positions.map((pos) => pos.y)
34
+ const y1Positions = nodes.map((node) => node.position.y + (node.size?.height ?? 70)) // Node height min 70
35
+
36
+ const xRange = {
37
+ min: Math.min(...x0Positions),
38
+ max: Math.max(...x1Positions)
39
+ }
40
+
41
+ const yRange = {
42
+ min: Math.min(...y0Positions),
43
+ max: Math.max(...y1Positions)
44
+ }
45
+
46
+ const size = {
47
+ width: xRange.max - xRange.min + 50,
48
+ height: yRange.max - yRange.min + 80
49
+ }
50
+
51
+ nodes.forEach((node) => {
52
+ node.position = {
53
+ x: position.x + (node.position?.x ? node.position.x - xRange.min : 0) + 10,
54
+ y: position.y + (node.position?.y ? node.position.y - yRange.min : 0) + 40
55
+ }
56
+ })
57
+
58
+ return { size, nodes }
59
+ }
60
+
61
+ /**
62
+ * Create all nodes of xpert and it's area size
63
+ *
64
+ * @param xpert
65
+ * @returns
66
+ */
67
+ export function createXpertNodes(xpert: IXpert, position: IPoint) {
68
+ const nodes: TXpertTeamNode[] = []
69
+ const agents = []
70
+ if (!xpert.agent.options?.hidden) {
71
+ agents.push(xpert.agent)
72
+ }
73
+ if (xpert.agents?.length) {
74
+ agents.push(...xpert.agents)
75
+ }
76
+ // Agents
77
+ nodes.push(
78
+ ...agents.map((_) => {
79
+ return {
80
+ type: 'agent',
81
+ key: _.key,
82
+ position: xpert.options?.agent?.[_.key]?.position ?? { x: 0, y: 0 },
83
+ size: xpert.options?.agent?.[_.key]?.size,
84
+ entity: _
85
+ } as TXpertTeamNode
86
+ })
87
+ )
88
+
89
+ // External experts
90
+ xpert.executors?.forEach((executor) => {
91
+ const position = xpert.options?.xpert?.[executor.id]?.position ?? { x: 0, y: 0 }
92
+ const executorGraph = createXpertNodes(executor, position)
93
+ nodes.push({
94
+ type: 'xpert',
95
+ key: executor.id,
96
+ position,
97
+ size: executorGraph.size,
98
+ entity: executor,
99
+ nodes: executorGraph.nodes
100
+ } as TXpertTeamNode)
101
+ })
102
+
103
+ // knowledgebases
104
+ nodes.push(
105
+ ...(xpert.knowledgebases ?? []).map((x) => {
106
+ return {
107
+ key: x.id,
108
+ type: 'knowledge',
109
+ position: xpert.options?.knowledge?.[x.id]?.position ?? { x: 0, y: 0 },
110
+ size: xpert.options?.knowledge?.[x.id]?.size,
111
+ entity: x
112
+ } as TXpertTeamNode
113
+ })
114
+ )
115
+
116
+ // Toolsets
117
+ nodes.push(
118
+ ...(xpert.toolsets ?? []).map((x) => {
119
+ return {
120
+ key: x.id,
121
+ type: 'toolset',
122
+ position: xpert.options?.toolset?.[x.id]?.position ?? { x: 0, y: 0 },
123
+ size: xpert.options?.toolset?.[x.id]?.size,
124
+ entity: x
125
+ } as TXpertTeamNode
126
+ })
127
+ )
128
+
129
+ // Extract the area by positions of all nodes
130
+ const positions = nodes.map((node) => node.position)
131
+ const x0Positions = positions.map((pos) => pos.x)
132
+ const x1Positions = nodes.map((node) => node.position.x + (node.size?.width ?? 240)) // Node width min 240
133
+ const y0Positions = positions.map((pos) => pos.y)
134
+ const y1Positions = nodes.map((node) => node.position.y + (node.size?.height ?? 70)) // Node height min 70
135
+
136
+ const xRange = {
137
+ min: Math.min(...x0Positions),
138
+ max: Math.max(...x1Positions)
139
+ }
140
+
141
+ const yRange = {
142
+ min: Math.min(...y0Positions),
143
+ max: Math.max(...y1Positions)
144
+ }
145
+
146
+ const size = {
147
+ width: xRange.max - xRange.min + 50,
148
+ height: yRange.max - yRange.min + 80
149
+ }
150
+
151
+ nodes.forEach((node) => {
152
+ node.position = {
153
+ x: position.x + (node.position?.x ? node.position.x - xRange.min : 0) + 10,
154
+ y: position.y + (node.position?.y ? node.position.y - yRange.min : 0) + 40
155
+ }
156
+ })
157
+
158
+ return { nodes, size }
159
+ }
160
+
161
+ export function createAgentConnections(agent: IXpertAgent, collaborators: IXpert[]) {
162
+ const connections = []
163
+ const from = agent.leaderKey
164
+ const to = agent.key
165
+ if (from && to) {
166
+ connections.push({
167
+ type: 'agent',
168
+ key: from + '/' + to,
169
+ from,
170
+ to
171
+ })
172
+ }
173
+
174
+ // collaborators
175
+ agent.collaboratorNames?.forEach((name) => {
176
+ const collaborator = collaborators.find((_) => _.name === name)
177
+ if (collaborator) {
178
+ const from = agent.key
179
+ const to = collaborator.id
180
+ connections.push({
181
+ type: 'xpert',
182
+ key: from + '/' + to,
183
+ from,
184
+ to
185
+ })
186
+ }
187
+ })
188
+
189
+ // knowledgebases
190
+ agent.knowledgebaseIds?.forEach((knowledgebaseId) => {
191
+ const from = agent.key
192
+ const to = knowledgebaseId
193
+ connections.push({
194
+ type: 'knowledge',
195
+ key: from + '/' + to,
196
+ from,
197
+ to
198
+ })
199
+ })
200
+
201
+ // toolsets
202
+ agent.toolsetIds?.forEach((toolsetId) => {
203
+ const from = agent.key
204
+ const to = toolsetId
205
+ connections.push({
206
+ type: 'toolset',
207
+ key: from + '/' + to,
208
+ from,
209
+ to
210
+ })
211
+ })
212
+
213
+ return connections
214
+ }
@@ -0,0 +1,79 @@
1
+ export enum ChatDashboardMessageType {
2
+ /**
3
+ * Display data preview using analytical card event
4
+ */
5
+ AnalyticalCard = 'AnalyticalCard',
6
+ /**
7
+ * Create or edit a cube event
8
+ */
9
+ Cube = 'Cube',
10
+ /**
11
+ * Edit a virtual cube event
12
+ */
13
+ VirtualCube = 'VirtualCube',
14
+ /**
15
+ * Create or edit members (calculated members or dimension sets) event
16
+ */
17
+ Members = 'Members',
18
+ /**
19
+ * List indicators event
20
+ */
21
+ ListIndicators = 'ListIndicators',
22
+ /**
23
+ * Create or edit an indicator event
24
+ */
25
+ Indicator = 'Indicator',
26
+
27
+ Indicators = 'Indicators',
28
+ }
29
+
30
+ export enum BIInterruptMessageType {
31
+ SwitchProject = 'switch_project',
32
+ SwitchSemanticModel = 'switch_semantic_model',
33
+ DeleteArtifact = 'delete_artifact',
34
+ }
35
+
36
+ export type TMessageContentCube = {
37
+ type: ChatDashboardMessageType.Cube,
38
+ data: {
39
+ modelId: string
40
+ cubeName: string
41
+ }
42
+ }
43
+
44
+ export type TMessageContentVirtualCube = {
45
+ type: ChatDashboardMessageType.VirtualCube,
46
+ data: {
47
+ modelId: string
48
+ cubeName: string
49
+ }
50
+ }
51
+
52
+ export type TMessageContentMembers = {
53
+ type: ChatDashboardMessageType.Members,
54
+ data: {
55
+ modelId: string
56
+ cubeName: string
57
+ members: {
58
+ __id__: string
59
+ name: string
60
+ label?: string
61
+ caption?: string
62
+ description?: string
63
+ formula: string
64
+ formatting?: {
65
+ unit?: string;
66
+ decimal?: number;
67
+ }
68
+ }[]
69
+ }
70
+ }
71
+
72
+ export type TMessageContentIndicator = {
73
+ type: ChatDashboardMessageType.Indicator,
74
+ data: {
75
+ modelId?: string
76
+ cubeName?: string
77
+ indicatorId: string
78
+ }
79
+ }
@@ -0,0 +1,40 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from "../base-entity.model";
2
+
3
+ export interface IApprovalPolicy
4
+ extends IBasePerTenantAndOrganizationEntityModel {
5
+ name: string;
6
+ description: string;
7
+ approvalType: string;
8
+ }
9
+
10
+ export interface IApprovalPolicyFindInput
11
+ extends IBasePerTenantAndOrganizationEntityModel {
12
+ name?: string;
13
+ description?: string;
14
+ approvalType?: string;
15
+ }
16
+
17
+ export interface IApprovalPolicyCreateInput
18
+ extends IApprovalPolicyFindInput {
19
+ name?: string;
20
+ }
21
+
22
+ export interface IApprovalPolicyUpdateInput
23
+ extends IApprovalPolicyCreateInput {
24
+ id?: string;
25
+ }
26
+
27
+ export enum ApprovalPolicyTypesEnum {
28
+ TIME_OFF = 1,
29
+ EQUIPMENT_SHARING = 2,
30
+ BUSINESS_TRIP = 3
31
+ }
32
+
33
+ export enum ApprovalPolicyTypesStringEnum {
34
+ TIME_OFF = 'TIME_OFF',
35
+ EQUIPMENT_SHARING = 'EQUIPMENT_SHARING',
36
+ BUSINESS_TRIP = 'BUSINESS_TRIP',
37
+ INDICATOR = 'INDICATOR',
38
+ STORY = 'STORY',
39
+ BUSINESS_AREA = 'BUSINESS_AREA',
40
+ }
@@ -0,0 +1,43 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model';
2
+ import { LanguagesEnum, IUser } from '../user.model';
3
+ import { IBusinessArea } from './business-area';
4
+
5
+ export enum BusinessAreaRole {
6
+ Adminer,
7
+ Modeler,
8
+ Viewer
9
+ }
10
+
11
+ export interface IBusinessAreaUser
12
+ extends IBasePerTenantAndOrganizationEntityModel {
13
+ businessAreaId: string
14
+ businessArea?: IBusinessArea
15
+ userId: string;
16
+ isDefault: boolean;
17
+ isActive: boolean;
18
+ user?: IUser;
19
+ role: BusinessAreaRole
20
+ }
21
+
22
+ export interface IBusinessAreaUserFindInput
23
+ extends IBasePerTenantAndOrganizationEntityModel {
24
+ businessAreaId?: string
25
+ id?: string;
26
+ userId?: string;
27
+ isDefault?: boolean;
28
+ isActive?: boolean;
29
+ }
30
+
31
+ export interface IBusinessAreaUserCreateInput
32
+ extends IBasePerTenantAndOrganizationEntityModel {
33
+ businessAreaId: string
34
+ userId: string;
35
+ isDefault?: boolean;
36
+ isActive?: boolean;
37
+ }
38
+
39
+ export interface IBusinessAreaUserDeleteInput {
40
+ userbusinessAreaId: string;
41
+ requestingUser: IUser;
42
+ language?: LanguagesEnum;
43
+ }
@@ -0,0 +1,20 @@
1
+ import { IBasePerTenantEntityModel } from "../base-entity.model";
2
+ import { ITag } from "../tag-entity.model";
3
+ import { IStory } from "./story";
4
+
5
+ export interface IBusinessArea extends IBasePerTenantEntityModel {
6
+ type?: BusinessType
7
+ name?: string
8
+ parentId?: string
9
+ level?: number
10
+ tags?: ITag[]
11
+ stories?: Array<IStory>
12
+
13
+ children?: Array<IBusinessArea>
14
+ }
15
+
16
+ export enum BusinessType {
17
+ SEMANTIC_MODEL = 'SEMANTIC_MODEL',
18
+ STORY = 'STORY',
19
+ INDICATOR = 'INDICATOR'
20
+ }
@@ -0,0 +1,12 @@
1
+ import { IBasePerTenantEntityModel } from '../base-entity.model'
2
+ import { IUser } from '../user.model'
3
+
4
+ export interface ICertification extends IBasePerTenantEntityModel {
5
+ name?: string
6
+ description?: string
7
+ /**
8
+ * Certification owner
9
+ */
10
+ owner?: IUser
11
+ ownerId?: string
12
+ }
@@ -0,0 +1,16 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IIndicator } from './indicator'
3
+
4
+ export interface IChatBIConversation extends IBasePerTenantAndOrganizationEntityModel {
5
+ key: string
6
+ name?: string
7
+ modelId?: string
8
+ entity?: string
9
+ command?: string
10
+ options?: {
11
+ messages: any[]
12
+ indicators?: IIndicator
13
+ answer?: any
14
+ examples: string[]
15
+ }
16
+ }
@@ -0,0 +1,22 @@
1
+ import { IXpert } from '../ai'
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { IIntegration } from '../integration.model'
4
+ import { ISemanticModel } from './semantic-model'
5
+
6
+ export interface IChatBIModel extends IBasePerTenantAndOrganizationEntityModel {
7
+ modelId: string
8
+ model?: ISemanticModel
9
+ entity: string
10
+ entityCaption?: string
11
+ entityDescription?: string
12
+ visits?: number
13
+ options?: ChatBIModelOptions
14
+
15
+ // ManyToMany
16
+ xperts?: IXpert[]
17
+ integrations?: IIntegration[]
18
+ }
19
+
20
+ export type ChatBIModelOptions = {
21
+ suggestions: string[]
22
+ }
@@ -0,0 +1,8 @@
1
+ import { IBasePerProjectEntityModel } from './project.model'
2
+
3
+
4
+ export interface ICollection extends IBasePerProjectEntityModel {
5
+ name?: string
6
+ parentId?: string
7
+ level?: number
8
+ }
@@ -0,0 +1,14 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IIndicator } from './indicator'
3
+
4
+
5
+ export interface IComment extends IBasePerTenantAndOrganizationEntityModel {
6
+ content?: string
7
+ parentId?: string
8
+ level?: number
9
+
10
+ options?: any
11
+
12
+ indicatorId?: string
13
+ indicator?: IIndicator
14
+ }
@@ -0,0 +1,19 @@
1
+ import { IBasePerTenantEntityModel } from '../base-entity.model'
2
+
3
+ export interface IDataSourceType extends IBasePerTenantEntityModel {
4
+ name?: string
5
+ type?: string
6
+ syntax?: DataSourceSyntaxEnum
7
+ protocol?: DataSourceProtocolEnum
8
+ configuration?: Record<string, unknown>
9
+ }
10
+
11
+ export enum DataSourceSyntaxEnum {
12
+ SQL = 'sql',
13
+ MDX = 'mdx'
14
+ }
15
+
16
+ export enum DataSourceProtocolEnum {
17
+ SQL = 'sql',
18
+ XMLA = 'xmla'
19
+ }
@@ -0,0 +1,72 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel, IBasePerTenantEntityModel } from '../base-entity.model'
2
+ import { IUser } from '../user.model'
3
+ import { IDataSourceType } from './data-source-type'
4
+ import { ISemanticModel } from './semantic-model'
5
+
6
+ export interface IDataSource extends IBasePerTenantAndOrganizationEntityModel {
7
+ name?: string
8
+ typeId?: string
9
+ type?: IDataSourceType
10
+ useLocalAgent?: boolean
11
+ authType?: AuthenticationEnum
12
+
13
+ options?: Record<string, unknown>
14
+
15
+ models?: ISemanticModel[]
16
+ authentications?: IDataSourceAuthentication[]
17
+ }
18
+
19
+ export interface IDataSourceAuthentication extends IBasePerTenantEntityModel {
20
+ dataSourceId: string
21
+ userId: string
22
+ username: string
23
+ password: string
24
+ validUntil?: Date
25
+
26
+ dataSource?: IDataSource
27
+ user?: IUser
28
+ }
29
+
30
+ export enum AuthenticationEnum {
31
+ NONE = 'NONE',
32
+ BASIC = 'BASIC'
33
+ }
34
+
35
+ export enum DataSourceTypeEnum {
36
+ NONE = 'NONE',
37
+ }
38
+
39
+ export interface IDSSchema {
40
+ catalog?: string
41
+ schema?: string
42
+ name: string
43
+ label?: string
44
+ type?: string
45
+ tables?: Array<IDSTable>
46
+ }
47
+
48
+ export interface IDSTable {
49
+ schema?: string
50
+ name?: string
51
+ label?: string
52
+ columns?: Array<IColumnDef>
53
+ }
54
+
55
+ export interface IColumnDef {
56
+ name: string
57
+ label?: string
58
+ /**
59
+ * Types in javascript
60
+ */
61
+ type: 'number' | 'string' | 'boolean'
62
+ /**
63
+ * Original data type in database
64
+ */
65
+ dataType: string
66
+ nullable?: boolean
67
+ position?: number
68
+ /**
69
+ * 应该等同于 label
70
+ */
71
+ comment?: string
72
+ }
@@ -0,0 +1,18 @@
1
+ import { BusinessType } from './business-area'
2
+ import { IIndicator } from './indicator'
3
+ import { IBasePerProjectEntityModel } from './project.model'
4
+ import { ISemanticModel } from './semantic-model'
5
+ import { IStory } from './story'
6
+
7
+ export interface IFavorite extends IBasePerProjectEntityModel {
8
+ type?: BusinessType
9
+
10
+ modelId?: string
11
+ model?: ISemanticModel
12
+
13
+ storyId?: string
14
+ story?: IStory
15
+
16
+ indicatorId?: string
17
+ indicator?: IIndicator
18
+ }
@@ -0,0 +1,19 @@
1
+ export enum AnalyticsFeatures {
2
+ FEATURE_BUSINESS_AREA = 'FEATURE_BUSINESS_AREA',
3
+ FEATURE_INDICATOR = 'FEATURE_INDICATOR',
4
+ FEATURE_INDICATOR_MARKET = 'FEATURE_INDICATOR_MARKET',
5
+ FEATURE_INDICATOR_REGISTER = 'FEATURE_INDICATOR_REGISTER',
6
+ FEATURE_INDICATOR_APP = 'FEATURE_INDICATOR_APP',
7
+ FEATURE_STORY = 'FEATURE_STORY',
8
+ FEATURE_STORY_CREATION = 'FEATURE_STORY_CREATION',
9
+ FEATURE_STORY_VIEWER = 'FEATURE_STORY_VIEWER',
10
+ FEATURE_STORY_MARKET = 'FEATURE_STORY_MARKET',
11
+ FEATURE_MODEL = 'FEATURE_MODEL',
12
+ FEATURE_MODEL_CREATION = 'FEATURE_MODEL_CREATION',
13
+ FEATURE_MODEL_VIEWER = 'FEATURE_MODEL_VIEWER',
14
+ FEATURE_SUBSCRIPTION = 'FEATURE_SUBSCRIPTION',
15
+ FEATURE_HOME_TREND = 'FEATURE_HOME_TREND',
16
+ FEATURE_HOME_CATALOG = 'FEATURE_HOME_CATALOG',
17
+ FEATURE_PROJECT = 'FEATURE_PROJECT',
18
+ FEATURE_DATA_FACTORY = 'FEATURE_DATA_FACTORY'
19
+ }
@@ -0,0 +1,15 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+
3
+ export interface IFeed extends IBasePerTenantAndOrganizationEntityModel {
4
+ type: FeedTypeEnum
5
+ entityId?: string
6
+ hidden?: boolean
7
+ options?: any
8
+ }
9
+
10
+ export enum FeedTypeEnum {
11
+ StoryWidget = 'StoryWidget',
12
+ IndicatorWidget = 'IndicatorWidget',
13
+ Recents = 'Recents',
14
+ Ranking = 'Ranking'
15
+ }
@@ -0,0 +1,30 @@
1
+ import { TQueryOptions } from './model-query-log.model'
2
+
3
+ export type TGatewayQueryEvent = {
4
+ id: string
5
+ organizationId: string
6
+ dataSourceId: string
7
+ modelId?: string
8
+ isDraft: boolean
9
+ body: {
10
+ /**
11
+ * @deprecated use statement
12
+ */
13
+ mdx?: string
14
+ statement?: string
15
+ query?: TQueryOptions
16
+ /**
17
+ * Is use indicators draft, corresponding to `DataSourceOptions['isIndicatorsDraft']` in the ocap framework.
18
+ */
19
+ isIndicatorsDraft?: boolean
20
+ }
21
+ acceptLanguage?: string
22
+ forceRefresh: boolean
23
+ }
24
+
25
+ export type TGatewayRespEvent = any
26
+
27
+ export type TGatewayRespError = {
28
+ message: string
29
+ status: number
30
+ }
@@ -0,0 +1,39 @@
1
+ import * as MDX from './schema'
2
+
3
+ export * from './ai'
4
+ export * from './business-area'
5
+ export * from './business-area-user.model'
6
+ export * from './collection.model'
7
+ export * from './data-source'
8
+ export * from './data-source-type'
9
+ export * from './favorite'
10
+ export * from './features'
11
+ export * from './feed-model'
12
+ export * from './indicator'
13
+ export * from './indicator-app'
14
+ export * from './indicator-market'
15
+ export * from './model-query'
16
+ export * from './notification-destination'
17
+ export * from './role-permissions'
18
+ export * from './semantic-model'
19
+ export * from './semantic-model-entity'
20
+ export * from './semantic-model-member'
21
+ export * from './story'
22
+ export * from './story-point'
23
+ export * from './story-widget'
24
+ export * from './subscription'
25
+ export * from './visit.model'
26
+ export * from './webSocket'
27
+ export * from './approval-policy.model'
28
+ export * from './permission-approval.model'
29
+ export * from './permission-approval-user.model'
30
+ export * from './project.model'
31
+ export * from './comment.model'
32
+ export * from './story-template.model'
33
+ export * from './screenshot.model'
34
+ export * from './certification.model'
35
+ export * from './chatbi-conversation.model'
36
+ export * from './chatbi-model.model'
37
+ export * from './model-query-log.model'
38
+ export * from './gateway'
39
+ export { MDX }