@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,122 @@
1
+ import { isRouterKey } from '../ai'
2
+ import { TXpertGraph } from '../ai/xpert.model'
3
+ import { DeepPartial } from '../types'
4
+
5
+ /**
6
+ * Channels of all upstream and downstream nodes relative to the starting point startKey.
7
+ *
8
+ * @param graph
9
+ * @param startKey
10
+ */
11
+ export function allChannels(graph: TXpertGraph, startKey: string) {
12
+ graph = getCurrentGraph(graph, startKey)
13
+ return graph.nodes.filter((node) => !(node.type === 'workflow' && isRouterKey(node.key))).map((node) => node.key)
14
+ }
15
+
16
+ export function findStartNodes(graph: DeepPartial<TXpertGraph>, key: string): string[] {
17
+ const toMap = new Map<string, string[]>()
18
+ // Consider only horizontal processes
19
+ const connections = graph.connections.filter((_) => _.type === 'edge')
20
+ // Construct toMap: record all upstream nodes of each node
21
+ for (const conn of connections) {
22
+ if (!toMap.has(conn.to)) toMap.set(conn.to, [])
23
+ const [fromKey] = conn.from.split('/')
24
+ if (conn.type === 'edge') {
25
+ toMap.get(conn.to).push(fromKey)
26
+ }
27
+ }
28
+
29
+ const result = new Set<string>()
30
+
31
+ const checked = []
32
+ // Recursively search upstream until you reach the starting point
33
+ function dfsUp(nodeKey: string) {
34
+ checked.push(nodeKey)
35
+ const parents = toMap.get(nodeKey)
36
+
37
+ // There is no upstream, this is the starting point
38
+ if (!parents || parents.length === 0) {
39
+ result.add(nodeKey)
40
+ return
41
+ }
42
+
43
+ for (const parent of parents) {
44
+ // There is a cycle
45
+ if (checked.includes(parent)) {
46
+ return
47
+ }
48
+ dfsUp(parent)
49
+ }
50
+ }
51
+
52
+ dfsUp(key)
53
+
54
+ return Array.from(result)
55
+ }
56
+
57
+ /**
58
+ * Keep the content in the same graph as the key node (including the node, its connected nodes, and the 'edge' type connections between them)
59
+ *
60
+ * @param graph
61
+ * @param key
62
+ * @returns
63
+ */
64
+ export function getCurrentGraph(graph: TXpertGraph, key: string): TXpertGraph {
65
+ const validConnections = graph.connections.filter(conn => conn.type === 'edge')
66
+
67
+ // Extract the primary key (remove the / suffix)
68
+ const normalize = (k: string) => k.split('/')[0]
69
+
70
+ // Adjacency list: bidirectional (because you want to traverse the current graph)
71
+ const adjacency = new Map<string, Set<string>>()
72
+
73
+ for (const conn of validConnections) {
74
+ const from = normalize(conn.from)
75
+ const to = normalize(conn.to)
76
+
77
+ if (!adjacency.has(from)) adjacency.set(from, new Set())
78
+ if (!adjacency.has(to)) adjacency.set(to, new Set())
79
+
80
+ adjacency.get(from).add(to)
81
+ adjacency.get(to).add(from)
82
+ }
83
+
84
+ const visited = new Set<string>()
85
+ const queue: string[] = key ? [normalize(key)] : []
86
+
87
+ // BFS/DFS collects all nodes in the same graph
88
+ while (queue.length > 0) {
89
+ const current = queue.pop()
90
+ if (visited.has(current)) continue
91
+ visited.add(current)
92
+
93
+ const neighbors = adjacency.get(current) || new Set()
94
+ for (const neighbor of neighbors) {
95
+ if (!visited.has(neighbor)) {
96
+ queue.push(neighbor)
97
+ }
98
+ }
99
+ }
100
+
101
+ const nodeSet = new Set(graph.nodes.map(n => n.key))
102
+ const keptNodes = graph.nodes.filter(n => visited.has(normalize(n.key)))
103
+ const keptNodeKeys = new Set(keptNodes.map(n => n.key))
104
+
105
+ const keptConnections = validConnections.filter(conn => {
106
+ const from = normalize(conn.from)
107
+ const to = normalize(conn.to)
108
+ return visited.has(from) && visited.has(to)
109
+ })
110
+
111
+ return {
112
+ nodes: keptNodes,
113
+ connections: keptConnections
114
+ }
115
+ }
116
+
117
+ export function shortTitle(input: string) {
118
+ if (input) {
119
+ return input.length <= 50 ? input : input.slice(0, 50) + '...'
120
+ }
121
+ return null
122
+ }
@@ -0,0 +1,21 @@
1
+ import { TWorkflowVarGroup } from "../ai";
2
+
3
+ /**
4
+ *
5
+ * Returns the variable schema for a given variable name.
6
+ * The variable name can be in the format of 'groupName.variableName' or just 'variableName'.
7
+ *
8
+ * @param variables
9
+ * @param variable
10
+ * @returns
11
+ */
12
+ export function getVariableSchema(variables: TWorkflowVarGroup[], variable: string) {
13
+ const [groupName, ...rest] = variable?.split('.') ?? []
14
+
15
+ const group = variables?.find((_) => (rest.length ? _.group?.name === groupName : !_.group?.name))
16
+
17
+ return {
18
+ group,
19
+ variable: group?.variables.find((_) => _.name === (rest.join('.') || groupName))
20
+ }
21
+ }
@@ -0,0 +1,228 @@
1
+ import { AiModelTypeEnum } from '../agent/'
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { I18nObject } from '../types'
4
+ import { ICopilot } from './copilot.model'
5
+
6
+ export interface IAiModel extends IBasePerTenantAndOrganizationEntityModel {
7
+ /**
8
+ * 模型名称
9
+ */
10
+ name: string
11
+
12
+ /**
13
+ * 模型展示名称
14
+ */
15
+ label: string
16
+
17
+ /**
18
+ * 模型类型
19
+ */
20
+ modelType: string
21
+
22
+ /**
23
+ * 模型特性
24
+ */
25
+ features: string[]
26
+
27
+ /**
28
+ * 模型属性
29
+ */
30
+ modelProperties: Record<string, any>
31
+
32
+ /**
33
+ * 参数规则
34
+ */
35
+ parameterRules: Record<string, any>[]
36
+
37
+ /**
38
+ * 定价信息
39
+ */
40
+ pricing: {
41
+ input: string
42
+ output: string
43
+ unit: string
44
+ currency: string
45
+ }
46
+
47
+ /**
48
+ * 是否已废弃
49
+ */
50
+ deprecated: boolean
51
+ }
52
+
53
+ export enum ProviderType {
54
+ CUSTOM = 'custom',
55
+ SYSTEM = 'system'
56
+ }
57
+
58
+ export interface ICopilotWithProvider extends ICopilot {
59
+ providerWithModels: Partial<IAiProviderEntity>
60
+ }
61
+
62
+ export interface IAiProviderEntity {
63
+ provider: string;
64
+ label: I18nObject;
65
+ description: I18nObject;
66
+ icon_small: I18nObject;
67
+ icon_large: I18nObject;
68
+ background: string;
69
+ help: ProviderHelpInfo;
70
+ supported_model_types: AiModelTypeEnum[];
71
+ configurate_methods: ConfigurateMethod[];
72
+ model_credential_schema: ModelCredentialSchema;
73
+ provider_credential_schema: ProviderCredentialSchema;
74
+ models: ProviderModel[]
75
+ /**
76
+ * Not yet implemented, your contribution is needed
77
+ */
78
+ not_implemented?: boolean
79
+ }
80
+
81
+ export interface ProviderHelpInfo {
82
+ title: I18nObject;
83
+ url: I18nObject;
84
+ }
85
+
86
+ export interface ProviderModel {
87
+ model: string;
88
+ label: I18nObject;
89
+ model_type: AiModelTypeEnum;
90
+ features?: ModelFeature[];
91
+ fetch_from: FetchFrom;
92
+ model_properties: Partial<Record<ModelPropertyKey, any>>;
93
+ deprecated?: boolean;
94
+ modelConfig?: any;
95
+ }
96
+
97
+ export interface ProviderCredentialSchema {
98
+ credential_form_schemas: CredentialFormSchema[];
99
+ }
100
+
101
+ /**
102
+ * @todo Use JSON Schema to implement
103
+ */
104
+ export enum CredentialFormTypeEnum {
105
+ TEXT_INPUT = "text-input",
106
+ SECRET_INPUT = "secret-input",
107
+ SELECT = "select",
108
+ RADIO = "radio",
109
+ // SWITCH = "switch", // use ParameterType.BOOLEAN
110
+ }
111
+
112
+ export interface CredentialFormSchema {
113
+ variable: string;
114
+ label: I18nObject;
115
+ type: CredentialFormTypeEnum | ParameterType
116
+ required: boolean;
117
+ default?: number | string | boolean
118
+ options?: {
119
+ label: I18nObject
120
+ value: number | string | boolean
121
+ }[]
122
+ placeholder: I18nObject;
123
+
124
+ max_length?: number
125
+ show_on?: FormShowOnObject[]
126
+ }
127
+
128
+ export interface FormShowOnObject {
129
+ variable: string
130
+ value: string
131
+ }
132
+
133
+ export enum FetchFrom {
134
+ PREDEFINED_MODEL = "predefined-model",
135
+ CUSTOMIZABLE_MODEL = "customizable-model"
136
+ }
137
+
138
+ export enum ModelFeature {
139
+ TOOL_CALL = "tool-call",
140
+ MULTI_TOOL_CALL = "multi-tool-call",
141
+ AGENT_THOUGHT = "agent-thought",
142
+ VISION = "vision",
143
+ STREAM_TOOL_CALL = "stream-tool-call"
144
+ }
145
+
146
+ export enum ModelPropertyKey {
147
+ MODE = "mode",
148
+ CONTEXT_SIZE = "context_size",
149
+ MAX_CHUNKS = "max_chunks",
150
+ FILE_UPLOAD_LIMIT = "file_upload_limit",
151
+ SUPPORTED_FILE_EXTENSIONS = "supported_file_extensions",
152
+ MAX_CHARACTERS_PER_CHUNK = "max_characters_per_chunk",
153
+ DEFAULT_VOICE = "default_voice",
154
+ VOICES = "voices",
155
+ WORD_LIMIT = "word_limit",
156
+ AUDIO_TYPE = "audio_type",
157
+ MAX_WORKERS = "max_workers"
158
+ }
159
+
160
+ export enum ConfigurateMethod {
161
+ PREDEFINED_MODEL = 'predefined-model',
162
+ CUSTOMIZABLE_MODEL = 'customizable-model'
163
+ }
164
+
165
+ /**
166
+ * @todo Use JSON Schema to implement
167
+ */
168
+ export enum ParameterType {
169
+ FLOAT = "float",
170
+ INT = "int",
171
+ STRING = "string",
172
+ BOOLEAN = "boolean",
173
+ TEXT = "text"
174
+ }
175
+
176
+ /**
177
+ * @todo Use JSON Schema to implement
178
+ */
179
+ export interface ParameterRule {
180
+ name?: string;
181
+ useTemplate?: string;
182
+ label: I18nObject;
183
+ type: ParameterType;
184
+ help?: I18nObject;
185
+ required?: boolean;
186
+ default?: any;
187
+ min?: number;
188
+ max?: number;
189
+ precision?: number;
190
+ options?: string[];
191
+ }
192
+
193
+ export interface PriceConfig {
194
+ input: number;
195
+ output?: number;
196
+ unit: number;
197
+ currency: string;
198
+ }
199
+
200
+ export interface AIModelEntity extends ProviderModel {
201
+ parameter_rules?: ParameterRule[]
202
+ pricing?: PriceConfig
203
+ }
204
+
205
+ export interface FieldModelSchema {
206
+ label: I18nObject
207
+ placeholder?: I18nObject
208
+ }
209
+
210
+
211
+ export interface ModelCredentialSchema {
212
+ model: FieldModelSchema
213
+ credential_form_schemas: CredentialFormSchema[]
214
+ }
215
+
216
+ export const AI_MODEL_TYPE_VARIABLE = "__model_type"
217
+
218
+ export enum PriceType {
219
+ INPUT = "input",
220
+ OUTPUT = "output"
221
+ }
222
+
223
+ export interface PriceInfo {
224
+ unitPrice: number;
225
+ unit: number;
226
+ totalAmount: number;
227
+ currency: string;
228
+ }
@@ -0,0 +1,53 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+
3
+ export interface IAiProvider extends IBasePerTenantAndOrganizationEntityModel {
4
+ /**
5
+ * 供应商标识,如 'openai'
6
+ */
7
+ name: string
8
+
9
+ /**
10
+ * 供应商展示名称
11
+ */
12
+ label: string
13
+
14
+ /**
15
+ * 供应商描述
16
+ */
17
+ description: string
18
+
19
+ /**
20
+ * 供应商小图标
21
+ */
22
+ iconSmall: string
23
+
24
+ /**
25
+ * 供应商大图标
26
+ */
27
+ iconLarge: string
28
+
29
+ /**
30
+ * 背景颜色
31
+ */
32
+ background: string
33
+
34
+ /**
35
+ * 帮助信息标题
36
+ */
37
+ helpTitle: string
38
+
39
+ /**
40
+ * 帮助信息URL
41
+ */
42
+ helpUrl: string
43
+
44
+ /**
45
+ * 支持的模型类型
46
+ */
47
+ supportedModelTypes: string[]
48
+
49
+ /**
50
+ * 配置方式
51
+ */
52
+ configurateMethods: string[]
53
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Business roles for AI copilot (commands or contexts)
3
+ */
4
+ export enum AiBusinessRole {
5
+ FinanceBP = 'finance_bp',
6
+ SupplyChainExpert = 'supply_chain_expert',
7
+ }
8
+
9
+ /**
10
+ * Providers for LLMs
11
+ *
12
+ * - https://js.langchain.com/docs/integrations/chat/
13
+ */
14
+ export enum AiProvider {
15
+ /**
16
+ * - https://js.langchain.com/docs/integrations/chat/openai/
17
+ */
18
+ OpenAI = 'openai',
19
+ /**
20
+ * - https://js.langchain.com/docs/integrations/chat/openai/
21
+ */
22
+ Azure = 'azure',
23
+ // DashScope = 'dashscope',
24
+ /**
25
+ * - https://ollama.com/
26
+ * - https://js.langchain.com/docs/integrations/chat/ollama/
27
+ */
28
+ Ollama = 'ollama',
29
+ /**
30
+ * - https://www.deepseek.com/zh
31
+ * - https://js.langchain.com/docs/integrations/chat/openai/
32
+ */
33
+ DeepSeek = 'deepseek',
34
+ /**
35
+ * - https://docs.anthropic.com/en/home
36
+ * - https://js.langchain.com/docs/integrations/chat/anthropic/
37
+ */
38
+ Anthropic = 'anthropic',
39
+ /**
40
+ * - https://www.aliyun.com/product/bailian
41
+ * - https://js.langchain.com/docs/integrations/chat/alibaba_tongyi/
42
+ */
43
+ AlibabaTongyi = 'alibaba_tongyi',
44
+ /**
45
+ * - https://open.bigmodel.cn/
46
+ * - https://js.langchain.com/docs/integrations/chat/openai/
47
+ */
48
+ Zhipu = 'zhipu',
49
+ /**
50
+ * - https://qianfan.cloud.baidu.com/
51
+ * - https://js.langchain.com/docs/integrations/chat/baidu_qianfan/
52
+ */
53
+ BaiduQianfan = 'baidu_qianfan',
54
+ /**
55
+ * - https://www.together.ai/
56
+ * - https://js.langchain.com/docs/integrations/chat/togetherai/
57
+ */
58
+ Together = 'together',
59
+ /**
60
+ * - https://platform.moonshot.cn/console
61
+ * - https://js.langchain.com/docs/integrations/chat/openai/
62
+ */
63
+ Moonshot = 'moonshot',
64
+ /**
65
+ * - https://groq.com/
66
+ * - https://js.langchain.com/docs/integrations/chat/openai/
67
+ */
68
+ Groq = 'groq',
69
+ /**
70
+ * - https://mistral.ai/
71
+ *
72
+ */
73
+ Mistral = 'mistral',
74
+ /**
75
+ * - https://cohere.com/
76
+ */
77
+ Cohere = 'cohere',
78
+
79
+ }
80
+
81
+ export enum AiProtocol {
82
+ OpenAI = 'openai',
83
+ Others = 'others'
84
+ }
85
+
86
+ export const OpenAIEmbeddingsProviders = [AiProvider.OpenAI, AiProvider.Azure, AiProvider.DeepSeek]
87
+ export const OllamaEmbeddingsProviders = [AiProvider.Ollama]
@@ -0,0 +1,31 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IChatMessage } from './chat-message.model'
3
+ import { IChatConversation } from './chat.model'
4
+
5
+ export enum ChatMessageFeedbackRatingEnum {
6
+ LIKE = 'like',
7
+ DISLIKE = 'dislike'
8
+ }
9
+
10
+
11
+ /**
12
+ *
13
+ */
14
+ export interface IChatMessageFeedback extends IBasePerTenantAndOrganizationEntityModel {
15
+
16
+ rating: ChatMessageFeedbackRatingEnum
17
+
18
+ content?: string
19
+
20
+ // Many to one
21
+ /**
22
+ * Chat conversation
23
+ */
24
+ conversation?: IChatConversation
25
+ conversationId?: string | null
26
+ /**
27
+ * Chat conversation message
28
+ */
29
+ message?: IChatMessage
30
+ messageId?: string | null
31
+ }