@metad/contracts 3.6.2 → 3.6.7

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 -4233
  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 +275 -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 +66 -0
  15. package/src/ai/ai-model.model.ts +232 -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 +40 -0
  33. package/src/ai/knowledge-doc-chunk.model.ts +123 -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 +364 -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 +205 -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 +264 -0
  47. package/src/ai/xpert-project.model.ts +103 -0
  48. package/src/ai/xpert-table.model.ts +100 -0
  49. package/src/ai/xpert-task.model.ts +32 -0
  50. package/src/ai/xpert-template.model.ts +53 -0
  51. package/src/ai/xpert-tool-mcp.model.ts +77 -0
  52. package/src/ai/xpert-tool.model.ts +216 -0
  53. package/src/ai/xpert-toolset.model.ts +220 -0
  54. package/src/ai/xpert-workflow-task.prompt.ts +71 -0
  55. package/src/ai/xpert-workflow.model.ts +502 -0
  56. package/src/ai/xpert-workspace.model.ts +42 -0
  57. package/src/ai/xpert.model.ts +637 -0
  58. package/src/ai/xpert.utils.ts +214 -0
  59. package/src/analytics/ai.ts +79 -0
  60. package/src/analytics/approval-policy.model.ts +40 -0
  61. package/src/analytics/business-area-user.model.ts +43 -0
  62. package/src/analytics/business-area.ts +20 -0
  63. package/src/analytics/certification.model.ts +12 -0
  64. package/src/analytics/chatbi-conversation.model.ts +16 -0
  65. package/src/analytics/chatbi-model.model.ts +22 -0
  66. package/src/analytics/collection.model.ts +8 -0
  67. package/src/analytics/comment.model.ts +14 -0
  68. package/src/analytics/data-source-type.ts +19 -0
  69. package/src/analytics/data-source.ts +72 -0
  70. package/src/analytics/favorite.ts +18 -0
  71. package/src/analytics/features.ts +19 -0
  72. package/src/analytics/feed-model.ts +15 -0
  73. package/src/analytics/gateway.ts +31 -0
  74. package/src/analytics/index.ts +39 -0
  75. package/src/analytics/indicator-app.ts +49 -0
  76. package/src/analytics/{indicator-market.d.ts → indicator-market.ts} +6 -2
  77. package/src/analytics/indicator.ts +143 -0
  78. package/src/analytics/model-query-log.model.ts +45 -0
  79. package/src/analytics/model-query.ts +22 -0
  80. package/src/analytics/{notification-destination.d.ts → notification-destination.ts} +9 -5
  81. package/src/analytics/{permission-approval-user.model.d.ts → permission-approval-user.model.ts} +10 -8
  82. package/src/analytics/permission-approval.model.ts +58 -0
  83. package/src/analytics/project.model.ts +56 -0
  84. package/src/analytics/role-permissions.ts +36 -0
  85. package/src/analytics/schema.ts +300 -0
  86. package/src/analytics/screenshot.model.ts +28 -0
  87. package/src/analytics/semantic-model-entity.ts +50 -0
  88. package/src/analytics/semantic-model-member.ts +49 -0
  89. package/src/analytics/semantic-model.ts +237 -0
  90. package/src/analytics/{story-point.d.ts → story-point.ts} +11 -6
  91. package/src/analytics/story-template.model.ts +34 -0
  92. package/src/analytics/story-widget.ts +15 -0
  93. package/src/analytics/story.ts +109 -0
  94. package/src/analytics/subscription.ts +43 -0
  95. package/src/analytics/visit.model.ts +39 -0
  96. package/src/analytics/webSocket.ts +53 -0
  97. package/src/api-key.model.ts +11 -0
  98. package/src/base-entity.model.ts +34 -0
  99. package/src/contact.model.ts +45 -0
  100. package/src/core.model.ts +103 -0
  101. package/src/{country.model.d.ts → country.model.ts} +3 -2
  102. package/src/currency.model.ts +582 -0
  103. package/src/{custom-smtp.model.d.ts → custom-smtp.model.ts} +21 -17
  104. package/src/date-picker.model.ts +5 -0
  105. package/src/email-template.model.ts +50 -0
  106. package/src/email.model.ts +46 -0
  107. package/src/employee.model.ts +199 -0
  108. package/src/entity-with-members.model.ts +16 -0
  109. package/src/feature.model.ts +108 -0
  110. package/src/file-provider.ts +37 -0
  111. package/src/help-center-article.model.ts +35 -0
  112. package/src/help-center.model.ts +33 -0
  113. package/src/http-status.enum.ts +58 -0
  114. package/src/import-export.model.ts +42 -0
  115. package/src/index.ts +60 -0
  116. package/src/integration/dify.ts +31 -0
  117. package/src/integration/dingtalk.ts +16 -0
  118. package/src/integration/fastgpt.ts +32 -0
  119. package/src/integration/firecrawl.ts +46 -0
  120. package/src/integration/github.ts +149 -0
  121. package/src/integration/index.ts +15 -0
  122. package/src/integration/lark.ts +79 -0
  123. package/src/integration/wecom.ts +16 -0
  124. package/src/integration.model.ts +119 -0
  125. package/src/invite.model.ts +144 -0
  126. package/src/language.model.ts +22 -0
  127. package/src/organization-contact.model.ts +84 -0
  128. package/src/{organization-department.model.d.ts → organization-department.model.ts} +16 -10
  129. package/src/organization-language.model.ts +24 -0
  130. package/src/organization-projects.model.ts +99 -0
  131. package/src/organization-team-employee-model.ts +14 -0
  132. package/src/organization-team-model.ts +25 -0
  133. package/src/organization.model.ts +266 -0
  134. package/src/{password-reset.model.d.ts → password-reset.model.ts} +14 -10
  135. package/src/{plain-object.model.d.ts → plain-object.model.ts} +1 -1
  136. package/src/plugin.ts +15 -0
  137. package/src/role-permission.model.ts +123 -0
  138. package/src/role.model.ts +31 -0
  139. package/src/schedule.ts +71 -0
  140. package/src/secret-token.model.ts +15 -0
  141. package/src/seed.model.ts +50 -0
  142. package/src/storage-file.model.ts +46 -0
  143. package/src/tag-entity.model.ts +23 -0
  144. package/src/tenant.model.ts +52 -0
  145. package/src/tools/index.ts +1 -0
  146. package/src/tools/sandbox.ts +5 -0
  147. package/src/translation.model.ts +37 -0
  148. package/src/types.ts +277 -0
  149. package/src/user-organization.model.ts +31 -0
  150. package/src/user.model.ts +151 -0
  151. package/src/visibility.model.ts +6 -0
  152. package/tsconfig.json +22 -0
  153. package/tsconfig.lib.json +10 -0
  154. package/tsconfig.spec.json +9 -0
  155. package/index.cjs.d.ts +0 -1
  156. package/index.esm.d.ts +0 -1
  157. package/index.esm.js +0 -4129
  158. package/src/agent/graph.d.ts +0 -148
  159. package/src/agent/index.d.ts +0 -5
  160. package/src/agent/token.d.ts +0 -21
  161. package/src/agent/utils.d.ts +0 -19
  162. package/src/agent/variables.d.ts +0 -14
  163. package/src/ai/ai-model.model.d.ts +0 -198
  164. package/src/ai/ai-provider.model.d.ts +0 -43
  165. package/src/ai/ai.model.d.ts +0 -82
  166. package/src/ai/chat-message-feedback.model.d.ts +0 -24
  167. package/src/ai/chat-message.model.d.ts +0 -222
  168. package/src/ai/chat.model.d.ts +0 -189
  169. package/src/ai/copilot-checkpoint.model.d.ts +0 -23
  170. package/src/ai/copilot-example.model.d.ts +0 -19
  171. package/src/ai/copilot-model.model.d.ts +0 -26
  172. package/src/ai/copilot-organization.model.d.ts +0 -17
  173. package/src/ai/copilot-provider.model.d.ts +0 -31
  174. package/src/ai/copilot-role.model.d.ts +0 -43
  175. package/src/ai/copilot-store.model.d.ts +0 -29
  176. package/src/ai/copilot-user.model.d.ts +0 -20
  177. package/src/ai/copilot.model.d.ts +0 -36
  178. package/src/ai/feature.model.d.ts +0 -6
  179. package/src/ai/index.d.ts +0 -39
  180. package/src/ai/knowledge-doc-chunk.model.d.ts +0 -60
  181. package/src/ai/knowledge-doc-page.model.d.ts +0 -15
  182. package/src/ai/knowledge-doc.model.d.ts +0 -192
  183. package/src/ai/knowledge-pipeline.d.ts +0 -107
  184. package/src/ai/knowledge-retrieval-log.model.d.ts +0 -10
  185. package/src/ai/knowledgebase-task.model.d.ts +0 -39
  186. package/src/ai/knowledgebase.model.d.ts +0 -162
  187. package/src/ai/rag-web.d.ts +0 -26
  188. package/src/ai/rag.d.ts +0 -24
  189. package/src/ai/role-permissions.d.ts +0 -13
  190. package/src/ai/types.d.ts +0 -39
  191. package/src/ai/xpert-agent-execution.model.d.ts +0 -96
  192. package/src/ai/xpert-agent.model.d.ts +0 -192
  193. package/src/ai/xpert-project.model.d.ts +0 -86
  194. package/src/ai/xpert-task.model.d.ts +0 -26
  195. package/src/ai/xpert-template.model.d.ts +0 -47
  196. package/src/ai/xpert-tool-mcp.model.d.ts +0 -67
  197. package/src/ai/xpert-tool.model.d.ts +0 -147
  198. package/src/ai/xpert-toolset.model.d.ts +0 -200
  199. package/src/ai/xpert-workflow-task.prompt.d.ts +0 -2
  200. package/src/ai/xpert-workflow.model.d.ts +0 -366
  201. package/src/ai/xpert-workspace.model.d.ts +0 -32
  202. package/src/ai/xpert.model.d.ts +0 -529
  203. package/src/ai/xpert.utils.d.ts +0 -80
  204. package/src/analytics/ai.d.ts +0 -73
  205. package/src/analytics/approval-policy.model.d.ts +0 -30
  206. package/src/analytics/business-area-user.model.d.ts +0 -35
  207. package/src/analytics/business-area.d.ts +0 -17
  208. package/src/analytics/certification.model.d.ts +0 -11
  209. package/src/analytics/chatbi-conversation.model.d.ts +0 -15
  210. package/src/analytics/chatbi-model.model.d.ts +0 -18
  211. package/src/analytics/collection.model.d.ts +0 -6
  212. package/src/analytics/comment.model.d.ts +0 -10
  213. package/src/analytics/data-source-type.d.ts +0 -16
  214. package/src/analytics/data-source.d.ts +0 -62
  215. package/src/analytics/favorite.d.ts +0 -14
  216. package/src/analytics/features.d.ts +0 -19
  217. package/src/analytics/feed-model.d.ts +0 -13
  218. package/src/analytics/gateway.d.ts +0 -27
  219. package/src/analytics/index.d.ts +0 -38
  220. package/src/analytics/indicator-app.d.ts +0 -44
  221. package/src/analytics/indicator.d.ts +0 -106
  222. package/src/analytics/model-query-log.model.d.ts +0 -41
  223. package/src/analytics/model-query.d.ts +0 -21
  224. package/src/analytics/permission-approval.model.d.ts +0 -47
  225. package/src/analytics/project.model.d.ts +0 -50
  226. package/src/analytics/role-permissions.d.ts +0 -25
  227. package/src/analytics/schema.d.ts +0 -262
  228. package/src/analytics/screenshot.model.d.ts +0 -25
  229. package/src/analytics/semantic-model-entity.d.ts +0 -37
  230. package/src/analytics/semantic-model-member.d.ts +0 -24
  231. package/src/analytics/semantic-model.d.ts +0 -175
  232. package/src/analytics/story-template.model.d.ts +0 -28
  233. package/src/analytics/story-widget.d.ts +0 -12
  234. package/src/analytics/story.d.ts +0 -93
  235. package/src/analytics/subscription.d.ts +0 -38
  236. package/src/analytics/visit.model.d.ts +0 -34
  237. package/src/analytics/webSocket.d.ts +0 -48
  238. package/src/api-key.model.d.ts +0 -10
  239. package/src/base-entity.model.d.ts +0 -27
  240. package/src/contact.model.d.ts +0 -41
  241. package/src/core.model.d.ts +0 -97
  242. package/src/currency.model.d.ts +0 -579
  243. package/src/date-picker.model.d.ts +0 -5
  244. package/src/email-template.model.d.ts +0 -39
  245. package/src/email.model.d.ts +0 -36
  246. package/src/employee.model.d.ts +0 -128
  247. package/src/entity-with-members.model.d.ts +0 -13
  248. package/src/feature.model.d.ts +0 -93
  249. package/src/file-provider.d.ts +0 -33
  250. package/src/help-center-article.model.d.ts +0 -0
  251. package/src/help-center.model.d.ts +0 -0
  252. package/src/http-status.enum.d.ts +0 -57
  253. package/src/import-export.model.d.ts +0 -36
  254. package/src/index.d.ts +0 -48
  255. package/src/integration/dify.d.ts +0 -0
  256. package/src/integration/dingtalk.d.ts +0 -2
  257. package/src/integration/fastgpt.d.ts +0 -0
  258. package/src/integration/firecrawl.d.ts +0 -2
  259. package/src/integration/github.d.ts +0 -69
  260. package/src/integration/index.d.ts +0 -4
  261. package/src/integration/lark.d.ts +0 -11
  262. package/src/integration/wecom.d.ts +0 -2
  263. package/src/integration.model.d.ts +0 -90
  264. package/src/invite.model.d.ts +0 -123
  265. package/src/language.model.d.ts +0 -19
  266. package/src/organization-contact.model.d.ts +0 -73
  267. package/src/organization-language.model.d.ts +0 -18
  268. package/src/organization-projects.model.d.ts +0 -80
  269. package/src/organization-team-employee-model.d.ts +0 -12
  270. package/src/organization-team-model.d.ts +0 -19
  271. package/src/organization.model.d.ts +0 -239
  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 -241
  285. package/src/user-organization.model.d.ts +0 -24
  286. package/src/user.model.d.ts +0 -131
  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' | 'object' | 'timestamp'
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,31 @@
1
+ import { TQueryOptions } from './model-query-log.model'
2
+
3
+ export type TGatewayQueryEvent = {
4
+ id: string
5
+ organizationId: string
6
+ dataSourceId: string
7
+ tenantId?: string
8
+ modelId?: string
9
+ isDraft: boolean
10
+ body: {
11
+ /**
12
+ * @deprecated use statement
13
+ */
14
+ mdx?: string
15
+ statement?: string
16
+ query?: TQueryOptions
17
+ /**
18
+ * Is use indicators draft, corresponding to `DataSourceOptions['isIndicatorsDraft']` in the ocap framework.
19
+ */
20
+ isIndicatorsDraft?: boolean
21
+ }
22
+ acceptLanguage?: string
23
+ forceRefresh: boolean
24
+ }
25
+
26
+ export type TGatewayRespEvent = any
27
+
28
+ export type TGatewayRespError = {
29
+ message: string
30
+ status: number
31
+ }
@@ -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 }