@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.
- package/.babelrc +5 -0
- package/.eslintrc.json +18 -0
- package/babel.config.json +1 -0
- package/index.cjs.js +5 -4233
- package/jest.config.ts +16 -0
- package/package.json +2 -2
- package/project.json +53 -0
- package/src/agent/{ai-model.d.ts → ai-model.ts} +2 -2
- package/src/agent/graph.ts +275 -0
- package/src/agent/index.ts +5 -0
- package/src/agent/token.ts +23 -0
- package/src/agent/utils.spec.ts +283 -0
- package/src/agent/utils.ts +122 -0
- package/src/agent/variables.ts +66 -0
- package/src/ai/ai-model.model.ts +232 -0
- package/src/ai/ai-provider.model.ts +53 -0
- package/src/ai/ai.model.ts +87 -0
- package/src/ai/chat-message-feedback.model.ts +31 -0
- package/src/ai/chat-message.model.ts +277 -0
- package/src/ai/chat.model.ts +207 -0
- package/src/ai/copilot-checkpoint.model.ts +25 -0
- package/src/ai/copilot-example.model.ts +23 -0
- package/src/ai/copilot-model.model.ts +31 -0
- package/src/ai/copilot-organization.model.ts +21 -0
- package/src/ai/copilot-provider.model.ts +46 -0
- package/src/ai/copilot-role.model.ts +48 -0
- package/src/ai/copilot-store.model.ts +34 -0
- package/src/ai/copilot-user.model.ts +24 -0
- package/src/ai/copilot.model.ts +47 -0
- package/src/ai/{environment.model.d.ts → environment.model.ts} +12 -10
- package/src/ai/feature.model.ts +6 -0
- package/src/ai/index.ts +40 -0
- package/src/ai/knowledge-doc-chunk.model.ts +123 -0
- package/src/ai/knowledge-doc-chunk.spec.ts +47 -0
- package/src/ai/knowledge-doc-page.model.ts +20 -0
- package/src/ai/knowledge-doc.model.ts +364 -0
- package/src/ai/knowledge-pipeline.ts +138 -0
- package/src/ai/knowledge-retrieval-log.model.ts +19 -0
- package/src/ai/knowledgebase-task.model.ts +46 -0
- package/src/ai/knowledgebase.model.ts +205 -0
- package/src/ai/rag-web.ts +54 -0
- package/src/ai/rag.ts +24 -0
- package/src/ai/role-permissions.ts +13 -0
- package/src/ai/types.ts +83 -0
- package/src/ai/xpert-agent-execution.model.ts +115 -0
- package/src/ai/xpert-agent.model.ts +264 -0
- package/src/ai/xpert-project.model.ts +103 -0
- package/src/ai/xpert-table.model.ts +100 -0
- package/src/ai/xpert-task.model.ts +32 -0
- package/src/ai/xpert-template.model.ts +53 -0
- package/src/ai/xpert-tool-mcp.model.ts +77 -0
- package/src/ai/xpert-tool.model.ts +216 -0
- package/src/ai/xpert-toolset.model.ts +220 -0
- package/src/ai/xpert-workflow-task.prompt.ts +71 -0
- package/src/ai/xpert-workflow.model.ts +502 -0
- package/src/ai/xpert-workspace.model.ts +42 -0
- package/src/ai/xpert.model.ts +637 -0
- package/src/ai/xpert.utils.ts +214 -0
- package/src/analytics/ai.ts +79 -0
- package/src/analytics/approval-policy.model.ts +40 -0
- package/src/analytics/business-area-user.model.ts +43 -0
- package/src/analytics/business-area.ts +20 -0
- package/src/analytics/certification.model.ts +12 -0
- package/src/analytics/chatbi-conversation.model.ts +16 -0
- package/src/analytics/chatbi-model.model.ts +22 -0
- package/src/analytics/collection.model.ts +8 -0
- package/src/analytics/comment.model.ts +14 -0
- package/src/analytics/data-source-type.ts +19 -0
- package/src/analytics/data-source.ts +72 -0
- package/src/analytics/favorite.ts +18 -0
- package/src/analytics/features.ts +19 -0
- package/src/analytics/feed-model.ts +15 -0
- package/src/analytics/gateway.ts +31 -0
- package/src/analytics/index.ts +39 -0
- package/src/analytics/indicator-app.ts +49 -0
- package/src/analytics/{indicator-market.d.ts → indicator-market.ts} +6 -2
- package/src/analytics/indicator.ts +143 -0
- package/src/analytics/model-query-log.model.ts +45 -0
- package/src/analytics/model-query.ts +22 -0
- package/src/analytics/{notification-destination.d.ts → notification-destination.ts} +9 -5
- package/src/analytics/{permission-approval-user.model.d.ts → permission-approval-user.model.ts} +10 -8
- package/src/analytics/permission-approval.model.ts +58 -0
- package/src/analytics/project.model.ts +56 -0
- package/src/analytics/role-permissions.ts +36 -0
- package/src/analytics/schema.ts +300 -0
- package/src/analytics/screenshot.model.ts +28 -0
- package/src/analytics/semantic-model-entity.ts +50 -0
- package/src/analytics/semantic-model-member.ts +49 -0
- package/src/analytics/semantic-model.ts +237 -0
- package/src/analytics/{story-point.d.ts → story-point.ts} +11 -6
- package/src/analytics/story-template.model.ts +34 -0
- package/src/analytics/story-widget.ts +15 -0
- package/src/analytics/story.ts +109 -0
- package/src/analytics/subscription.ts +43 -0
- package/src/analytics/visit.model.ts +39 -0
- package/src/analytics/webSocket.ts +53 -0
- package/src/api-key.model.ts +11 -0
- package/src/base-entity.model.ts +34 -0
- package/src/contact.model.ts +45 -0
- package/src/core.model.ts +103 -0
- package/src/{country.model.d.ts → country.model.ts} +3 -2
- package/src/currency.model.ts +582 -0
- package/src/{custom-smtp.model.d.ts → custom-smtp.model.ts} +21 -17
- package/src/date-picker.model.ts +5 -0
- package/src/email-template.model.ts +50 -0
- package/src/email.model.ts +46 -0
- package/src/employee.model.ts +199 -0
- package/src/entity-with-members.model.ts +16 -0
- package/src/feature.model.ts +108 -0
- package/src/file-provider.ts +37 -0
- package/src/help-center-article.model.ts +35 -0
- package/src/help-center.model.ts +33 -0
- package/src/http-status.enum.ts +58 -0
- package/src/import-export.model.ts +42 -0
- package/src/index.ts +60 -0
- package/src/integration/dify.ts +31 -0
- package/src/integration/dingtalk.ts +16 -0
- package/src/integration/fastgpt.ts +32 -0
- package/src/integration/firecrawl.ts +46 -0
- package/src/integration/github.ts +149 -0
- package/src/integration/index.ts +15 -0
- package/src/integration/lark.ts +79 -0
- package/src/integration/wecom.ts +16 -0
- package/src/integration.model.ts +119 -0
- package/src/invite.model.ts +144 -0
- package/src/language.model.ts +22 -0
- package/src/organization-contact.model.ts +84 -0
- package/src/{organization-department.model.d.ts → organization-department.model.ts} +16 -10
- package/src/organization-language.model.ts +24 -0
- package/src/organization-projects.model.ts +99 -0
- package/src/organization-team-employee-model.ts +14 -0
- package/src/organization-team-model.ts +25 -0
- package/src/organization.model.ts +266 -0
- package/src/{password-reset.model.d.ts → password-reset.model.ts} +14 -10
- package/src/{plain-object.model.d.ts → plain-object.model.ts} +1 -1
- package/src/plugin.ts +15 -0
- package/src/role-permission.model.ts +123 -0
- package/src/role.model.ts +31 -0
- package/src/schedule.ts +71 -0
- package/src/secret-token.model.ts +15 -0
- package/src/seed.model.ts +50 -0
- package/src/storage-file.model.ts +46 -0
- package/src/tag-entity.model.ts +23 -0
- package/src/tenant.model.ts +52 -0
- package/src/tools/index.ts +1 -0
- package/src/tools/sandbox.ts +5 -0
- package/src/translation.model.ts +37 -0
- package/src/types.ts +277 -0
- package/src/user-organization.model.ts +31 -0
- package/src/user.model.ts +151 -0
- package/src/visibility.model.ts +6 -0
- package/tsconfig.json +22 -0
- package/tsconfig.lib.json +10 -0
- package/tsconfig.spec.json +9 -0
- package/index.cjs.d.ts +0 -1
- package/index.esm.d.ts +0 -1
- package/index.esm.js +0 -4129
- package/src/agent/graph.d.ts +0 -148
- package/src/agent/index.d.ts +0 -5
- package/src/agent/token.d.ts +0 -21
- package/src/agent/utils.d.ts +0 -19
- package/src/agent/variables.d.ts +0 -14
- package/src/ai/ai-model.model.d.ts +0 -198
- package/src/ai/ai-provider.model.d.ts +0 -43
- package/src/ai/ai.model.d.ts +0 -82
- package/src/ai/chat-message-feedback.model.d.ts +0 -24
- package/src/ai/chat-message.model.d.ts +0 -222
- package/src/ai/chat.model.d.ts +0 -189
- package/src/ai/copilot-checkpoint.model.d.ts +0 -23
- package/src/ai/copilot-example.model.d.ts +0 -19
- package/src/ai/copilot-model.model.d.ts +0 -26
- package/src/ai/copilot-organization.model.d.ts +0 -17
- package/src/ai/copilot-provider.model.d.ts +0 -31
- package/src/ai/copilot-role.model.d.ts +0 -43
- package/src/ai/copilot-store.model.d.ts +0 -29
- package/src/ai/copilot-user.model.d.ts +0 -20
- package/src/ai/copilot.model.d.ts +0 -36
- package/src/ai/feature.model.d.ts +0 -6
- package/src/ai/index.d.ts +0 -39
- package/src/ai/knowledge-doc-chunk.model.d.ts +0 -60
- package/src/ai/knowledge-doc-page.model.d.ts +0 -15
- package/src/ai/knowledge-doc.model.d.ts +0 -192
- package/src/ai/knowledge-pipeline.d.ts +0 -107
- package/src/ai/knowledge-retrieval-log.model.d.ts +0 -10
- package/src/ai/knowledgebase-task.model.d.ts +0 -39
- package/src/ai/knowledgebase.model.d.ts +0 -162
- package/src/ai/rag-web.d.ts +0 -26
- package/src/ai/rag.d.ts +0 -24
- package/src/ai/role-permissions.d.ts +0 -13
- package/src/ai/types.d.ts +0 -39
- package/src/ai/xpert-agent-execution.model.d.ts +0 -96
- package/src/ai/xpert-agent.model.d.ts +0 -192
- package/src/ai/xpert-project.model.d.ts +0 -86
- package/src/ai/xpert-task.model.d.ts +0 -26
- package/src/ai/xpert-template.model.d.ts +0 -47
- package/src/ai/xpert-tool-mcp.model.d.ts +0 -67
- package/src/ai/xpert-tool.model.d.ts +0 -147
- package/src/ai/xpert-toolset.model.d.ts +0 -200
- package/src/ai/xpert-workflow-task.prompt.d.ts +0 -2
- package/src/ai/xpert-workflow.model.d.ts +0 -366
- package/src/ai/xpert-workspace.model.d.ts +0 -32
- package/src/ai/xpert.model.d.ts +0 -529
- package/src/ai/xpert.utils.d.ts +0 -80
- package/src/analytics/ai.d.ts +0 -73
- package/src/analytics/approval-policy.model.d.ts +0 -30
- package/src/analytics/business-area-user.model.d.ts +0 -35
- package/src/analytics/business-area.d.ts +0 -17
- package/src/analytics/certification.model.d.ts +0 -11
- package/src/analytics/chatbi-conversation.model.d.ts +0 -15
- package/src/analytics/chatbi-model.model.d.ts +0 -18
- package/src/analytics/collection.model.d.ts +0 -6
- package/src/analytics/comment.model.d.ts +0 -10
- package/src/analytics/data-source-type.d.ts +0 -16
- package/src/analytics/data-source.d.ts +0 -62
- package/src/analytics/favorite.d.ts +0 -14
- package/src/analytics/features.d.ts +0 -19
- package/src/analytics/feed-model.d.ts +0 -13
- package/src/analytics/gateway.d.ts +0 -27
- package/src/analytics/index.d.ts +0 -38
- package/src/analytics/indicator-app.d.ts +0 -44
- package/src/analytics/indicator.d.ts +0 -106
- package/src/analytics/model-query-log.model.d.ts +0 -41
- package/src/analytics/model-query.d.ts +0 -21
- package/src/analytics/permission-approval.model.d.ts +0 -47
- package/src/analytics/project.model.d.ts +0 -50
- package/src/analytics/role-permissions.d.ts +0 -25
- package/src/analytics/schema.d.ts +0 -262
- package/src/analytics/screenshot.model.d.ts +0 -25
- package/src/analytics/semantic-model-entity.d.ts +0 -37
- package/src/analytics/semantic-model-member.d.ts +0 -24
- package/src/analytics/semantic-model.d.ts +0 -175
- package/src/analytics/story-template.model.d.ts +0 -28
- package/src/analytics/story-widget.d.ts +0 -12
- package/src/analytics/story.d.ts +0 -93
- package/src/analytics/subscription.d.ts +0 -38
- package/src/analytics/visit.model.d.ts +0 -34
- package/src/analytics/webSocket.d.ts +0 -48
- package/src/api-key.model.d.ts +0 -10
- package/src/base-entity.model.d.ts +0 -27
- package/src/contact.model.d.ts +0 -41
- package/src/core.model.d.ts +0 -97
- package/src/currency.model.d.ts +0 -579
- package/src/date-picker.model.d.ts +0 -5
- package/src/email-template.model.d.ts +0 -39
- package/src/email.model.d.ts +0 -36
- package/src/employee.model.d.ts +0 -128
- package/src/entity-with-members.model.d.ts +0 -13
- package/src/feature.model.d.ts +0 -93
- package/src/file-provider.d.ts +0 -33
- package/src/help-center-article.model.d.ts +0 -0
- package/src/help-center.model.d.ts +0 -0
- package/src/http-status.enum.d.ts +0 -57
- package/src/import-export.model.d.ts +0 -36
- package/src/index.d.ts +0 -48
- package/src/integration/dify.d.ts +0 -0
- package/src/integration/dingtalk.d.ts +0 -2
- package/src/integration/fastgpt.d.ts +0 -0
- package/src/integration/firecrawl.d.ts +0 -2
- package/src/integration/github.d.ts +0 -69
- package/src/integration/index.d.ts +0 -4
- package/src/integration/lark.d.ts +0 -11
- package/src/integration/wecom.d.ts +0 -2
- package/src/integration.model.d.ts +0 -90
- package/src/invite.model.d.ts +0 -123
- package/src/language.model.d.ts +0 -19
- package/src/organization-contact.model.d.ts +0 -73
- package/src/organization-language.model.d.ts +0 -18
- package/src/organization-projects.model.d.ts +0 -80
- package/src/organization-team-employee-model.d.ts +0 -12
- package/src/organization-team-model.d.ts +0 -19
- package/src/organization.model.d.ts +0 -239
- package/src/plugin.d.ts +0 -13
- package/src/role-permission.model.d.ts +0 -61
- package/src/role.model.d.ts +0 -26
- package/src/schedule.d.ts +0 -27
- package/src/secret-token.model.d.ts +0 -11
- package/src/seed.model.d.ts +0 -37
- package/src/storage-file.model.d.ts +0 -40
- package/src/tag-entity.model.d.ts +0 -20
- package/src/tenant.model.d.ts +0 -40
- package/src/tools/index.d.ts +0 -1
- package/src/tools/sandbox.d.ts +0 -5
- package/src/translation.model.d.ts +0 -26
- package/src/types.d.ts +0 -241
- package/src/user-organization.model.d.ts +0 -24
- package/src/user.model.d.ts +0 -131
- 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,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 }
|