@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,277 @@
1
+ import { MessageContent, MessageContentImageUrl, MessageType } from '@langchain/core/messages';
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { IChatConversation } from './chat.model'
4
+ import { LongTermMemoryTypeEnum } from './xpert.model'
5
+ import { XpertAgentExecutionStatusEnum } from './xpert-agent-execution.model';
6
+ import { JSONValue } from '../core.model';
7
+ import { IStorageFile } from '../storage-file.model';
8
+
9
+ export type TSummaryJob = Record<LongTermMemoryTypeEnum, {
10
+ jobId: number | string;
11
+ status: string
12
+ progress?: number
13
+ memoryKey?: string
14
+ }>
15
+
16
+ /**
17
+ * Message step type: determines the type of canvas
18
+ */
19
+ // export enum ChatMessageStepType {
20
+ // ComputerUse = 'computer_use',
21
+ // File = 'file',
22
+ // Notice = 'notice'
23
+ // }
24
+
25
+ /**
26
+ * Category of step message: determines the display components of computer use
27
+ */
28
+ export enum ChatMessageStepCategory {
29
+ /**
30
+ * List of items: urls, files, etc.
31
+ */
32
+ List = 'list',
33
+ /**
34
+ * Websearch results
35
+ */
36
+ WebSearch = 'web_search',
37
+ /**
38
+ * Files list
39
+ */
40
+ Files = 'files',
41
+ /**
42
+ * View a file
43
+ */
44
+ File = 'file',
45
+ /**
46
+ * Program Execution
47
+ */
48
+ Program = 'program',
49
+ /**
50
+ * Iframe
51
+ */
52
+ Iframe = 'iframe',
53
+
54
+ Memory = 'memory',
55
+
56
+ Tasks = 'tasks',
57
+
58
+ /**
59
+ * Knowledges (knowledge base retriever results)
60
+ */
61
+ Knowledges = 'knowledges'
62
+ }
63
+
64
+ /**
65
+ * Step message type, in canvas and ai message.
66
+ */
67
+ export type TChatMessageStep<T = any> = TMessageComponent<TMessageComponentStep<T>>
68
+ // {
69
+ // id?: string
70
+ // type?: ChatMessageStepType
71
+ // category?: ChatMessageStepCategory
72
+ // toolset?: string
73
+ // tool?: string
74
+ // title?: string
75
+ // message?: string
76
+ // created_date?: Date | string
77
+ // data?: T
78
+ // artifact?: any
79
+ // }
80
+
81
+ /**
82
+ * Chat message entity type
83
+ */
84
+ export interface IChatMessage extends IBasePerTenantAndOrganizationEntityModel, Omit<Omit<CopilotBaseMessage, 'createdAt'>, 'id'> {
85
+ /**
86
+ * Files
87
+ */
88
+ attachments?: IStorageFile[]
89
+ /**
90
+ * Job of summary
91
+ */
92
+ summaryJob?: TSummaryJob
93
+
94
+ /**
95
+ * the third-party platform's message
96
+ */
97
+ thirdPartyMessage?: any
98
+
99
+ /**
100
+ * Step messages from tools or others
101
+ */
102
+ events?: TChatMessageStep[]
103
+
104
+ // Many to one
105
+ /**
106
+ * Chat conversation
107
+ */
108
+ conversation?: IChatConversation
109
+ conversationId?: string | null
110
+
111
+ executionId?: string
112
+ }
113
+
114
+
115
+ /**
116
+ * @deprecated
117
+ */
118
+ export type DeprecatedMessageType = 'assistant' | 'user' | 'info' | 'component'
119
+ export type CopilotMessageType = MessageType | DeprecatedMessageType
120
+
121
+ export type ChatMessageStatusEnum = XpertAgentExecutionStatusEnum | 'thinking' | 'reasoning' | 'answering' | 'aborted'
122
+
123
+ /**
124
+ * BaseMessage or AIMessage in Langchain.js
125
+ */
126
+ export interface CopilotBaseMessage {
127
+ id: string
128
+ createdAt?: Date
129
+ role: CopilotMessageType
130
+
131
+ /**
132
+ * Status of the message:
133
+ */
134
+ status?: ChatMessageStatusEnum
135
+
136
+ content?: string | TMessageContent
137
+
138
+ /**
139
+ * Reasoning step messages
140
+ */
141
+ reasoning?: TMessageContentReasoning[]
142
+
143
+ /**
144
+ * Error info when status is error
145
+ */
146
+ error?: string
147
+ }
148
+
149
+ export type CopilotChatMessage = CopilotBaseMessage & {
150
+
151
+ tool_call_id?: string
152
+
153
+ /**
154
+ * If the message has a role of `function`, the `name` field is the name of the function.
155
+ * Otherwise, the name field should not be set.
156
+ */
157
+ name?: string
158
+
159
+ data?: JSONValue
160
+
161
+ messages?: Array<any> // StoredMessage
162
+
163
+ executionId?: string
164
+ }
165
+
166
+ /**
167
+ * @deprecated use data attr in message (subMessages)
168
+ */
169
+ export interface CopilotMessageGroup extends CopilotBaseMessage {
170
+ messages?: CopilotChatMessage[]
171
+ }
172
+
173
+ /**
174
+ * Similar to {@link MessageContentText} | {@link MessageContentImageUrl}, which together form {@link MessageContentComplex}
175
+ */
176
+ export type TMessageContentComponent<T extends object = object> = {
177
+ id: string
178
+ type: 'component'
179
+ data: TMessageComponent<T>
180
+ xpertName?: string
181
+ agentKey?: string;
182
+ }
183
+
184
+ /**
185
+ * Defines the data type of the sub-message of `component` type in the message `content` {@link MessageContentComplex}
186
+ */
187
+ export type TMessageComponent<T extends object = object> = T & {
188
+ id?: string
189
+ category: 'Dashboard' | 'Computer' | 'Tool'
190
+ type?: string
191
+ created_date?: Date | string
192
+ }
193
+
194
+ export type TMessageContentText = {
195
+ id?: string
196
+ xpertName?: string
197
+ agentKey?: string
198
+ type: "text";
199
+ text: string;
200
+ };
201
+ export type TMessageContentMemory = {
202
+ id?: string
203
+ agentKey?: string
204
+ type: "memory";
205
+ data: any[];
206
+ };
207
+ export type TMessageContentReasoning = {
208
+ id?: string
209
+ xpertName?: string
210
+ agentKey?: string
211
+ type: "reasoning";
212
+ text: string;
213
+ };
214
+ /**
215
+ * Enhance {@link MessageContentComplex} in Langchain.js
216
+ */
217
+ export type TMessageContentComplex = (TMessageContentText | TMessageContentReasoning | MessageContentImageUrl | TMessageContentComponent | TMessageContentMemory | (Record<string, any> & {
218
+ type?: "text" | "image_url" | string;
219
+ }) | (Record<string, any> & {
220
+ type?: never;
221
+ })) & {
222
+ id?: string
223
+ xpertName?: string
224
+ agentKey?: string;
225
+ created_date?: Date | string
226
+ }
227
+ /**
228
+ * Enhance {@link MessageContent} in Langchain.js
229
+ */
230
+ export type TMessageContent = string | TMessageContentComplex[];
231
+
232
+ export type TMessageComponentIframe = {
233
+ type: 'iframe'
234
+ title: string
235
+ url?: string
236
+ data?: {
237
+ url?: string
238
+ }
239
+ }
240
+
241
+ export type TMessageComponentStep<T = JSONValue> = {
242
+ type: ChatMessageStepCategory
243
+ toolset: string
244
+ toolset_id: string
245
+ tool?: string
246
+ title: string
247
+ message: string
248
+ status: 'success' | 'fail' | 'running'
249
+ created_date: Date | string
250
+ end_date: Date | string
251
+ error?: string
252
+ data?: T
253
+ input?: any
254
+ output?: string
255
+ artifact?: any
256
+ }
257
+
258
+ /**
259
+ * Data type for chat event message
260
+ */
261
+ export type TChatEventMessage = {
262
+ type?: string
263
+ title?: string
264
+ message?: string
265
+ status?: 'success' | 'fail' | 'running'
266
+ created_date?: Date | string
267
+ end_date?: Date | string
268
+ error?: string
269
+ }
270
+
271
+ // Type guards
272
+ /**
273
+ * @deprecated use content in message
274
+ */
275
+ export function isMessageGroup(message: CopilotBaseMessage): message is CopilotMessageGroup {
276
+ return 'messages' in message;
277
+ }
@@ -0,0 +1,207 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IXpertAgentExecution } from './xpert-agent-execution.model'
3
+ import { IXpert } from './xpert.model'
4
+ import { I18nObject } from '../types'
5
+ import { CopilotChatMessage, CopilotMessageGroup, IChatMessage } from './chat-message.model'
6
+ import { IXpertAgent } from './xpert-agent.model'
7
+ import { IXpertProject } from './xpert-project.model'
8
+ import { IStorageFile } from '../storage-file.model'
9
+ import { IXpertTask } from './xpert-task.model'
10
+ import { TInterruptMessage, TToolCall } from '../agent'
11
+
12
+
13
+ export type TChatConversationOptions = {
14
+ parameters?: {
15
+ input?: string
16
+ [key: string]: unknown
17
+ }
18
+ knowledgebases?: string[]
19
+ toolsets?: string[]
20
+ features?: Array<'timeline' | 'sandbox' | 'files'>
21
+ workspacePath?: string
22
+ workspaceUrl?: string
23
+ }
24
+
25
+ export type TChatConversationStatus = "idle" | "busy" | "interrupted" | "error"
26
+ export type TToolCallType = 'agent' | 'tool'
27
+ export type TChatFrom = 'platform' | 'webapp' | 'debugger' | 'knowledge' | 'job' | 'api' | 'feishu' | 'lark' | 'dingtalk' | 'wecom'
28
+
29
+ /**
30
+ * Operation for interrupt
31
+ */
32
+ export type TSensitiveOperation = {
33
+ messageId?: string
34
+ tasks?: {
35
+ name: string;
36
+ interrupts: {
37
+ value?: TInterruptMessage;
38
+ when?: "during";
39
+ resumable?: boolean;
40
+ ns?: string[];
41
+ }[];
42
+ type?: TToolCallType;
43
+ info?: {
44
+ name: string
45
+ title?: string
46
+ description: string
47
+ }
48
+ parameters?: {
49
+ name: string;
50
+ title: I18nObject | string
51
+ type: string;
52
+ description: I18nObject | string
53
+ placeholder?: I18nObject | string
54
+ }[],
55
+ call?: TToolCall
56
+ agent?: IXpertAgent
57
+ }[]
58
+ }
59
+
60
+ /**
61
+ * Chat conversation for xpert ai agent.
62
+ *
63
+ * Corresponds to the thread in the [Agent Protocol](https://github.com/langchain-ai/agent-protocol).
64
+ */
65
+ export interface IChatConversation extends IBasePerTenantAndOrganizationEntityModel {
66
+ /**
67
+ * Thread id for agent execution
68
+ */
69
+ threadId: string
70
+ /**
71
+ * A short title summarizing the session
72
+ */
73
+ title?: string
74
+ /**
75
+ * Current status of conversation
76
+ */
77
+ status?: TChatConversationStatus
78
+ /**
79
+ * Options
80
+ */
81
+ options?: TChatConversationOptions
82
+ /**
83
+ * Error message when status is error
84
+ */
85
+ error?: string
86
+ /**
87
+ * ChatMessages in conversation
88
+ */
89
+ messages?: IChatMessage[] | null
90
+ /**
91
+ * The last operation when interrupted
92
+ */
93
+ operation?: TSensitiveOperation
94
+ /**
95
+ * Conversation source / user type
96
+ */
97
+ from: TChatFrom
98
+ /**
99
+ * End anonymous user
100
+ */
101
+ fromEndUserId?: string
102
+
103
+ // Many to one
104
+ /**
105
+ * Chat with Xpert
106
+ */
107
+ xpert?: IXpert
108
+ xpertId?: string | null
109
+
110
+ project?: IXpertProject
111
+ projectId?: string | null
112
+
113
+ task?: IXpertTask
114
+ taskId?: string | null
115
+
116
+ // One to Many
117
+ executions?: IXpertAgentExecution[]
118
+ /**
119
+ * Files
120
+ */
121
+ attachments?: IStorageFile[]
122
+ }
123
+
124
+ export type TChatConversationLog = IChatConversation & {
125
+ messageCount: number
126
+ }
127
+
128
+ // Types
129
+ export type ChatMessage = {
130
+ conversationId: string;
131
+ id: string;
132
+ content: string
133
+ }
134
+
135
+ export type ChatUserMessage = ChatMessage & {
136
+ language: string
137
+ }
138
+
139
+ /**
140
+ * @deprecated use ChatMessageEventTypeEnum
141
+ */
142
+ export enum ChatGatewayEvent {
143
+ ACK = 'ack', // acknowledgment for received message
144
+ ConversationCreated = 'conversation_created',
145
+ Message = 'message',
146
+ MessageStream = 'message_stream',
147
+ StepStart = 'step_start',
148
+ StepEnd = 'step_end',
149
+ ToolStart = 'tool_start',
150
+ ToolEnd = 'tool_end',
151
+ ChainStart = 'chain_start',
152
+ ChainEnd = 'chain_end',
153
+ CancelChain = 'cancel_chain',
154
+ ChainAborted = 'chain_aborted',
155
+ Error = 'error',
156
+ Agent = 'agent'
157
+ }
158
+
159
+
160
+ /**
161
+ * @deprecated use ChatMessageEventTypeEnum
162
+ */
163
+ export type ChatGatewayMessage = {
164
+ organizationId?: string;
165
+ xpert?: {
166
+ id: string
167
+ knowledgebases?: string[]
168
+ toolsets: string[] | null
169
+ }
170
+ } & ({
171
+ event: ChatGatewayEvent.CancelChain
172
+ data: {
173
+ conversationId: string // Conversation ID
174
+ }
175
+ } | {
176
+ event: ChatGatewayEvent.ChainAborted
177
+ data: {
178
+ conversationId: string // Conversation ID
179
+ id?: string // Message id
180
+ }
181
+ } | {
182
+ event: ChatGatewayEvent.ConversationCreated
183
+ data: IChatConversation
184
+ } | {
185
+ event: ChatGatewayEvent.MessageStream
186
+ data: ChatUserMessage
187
+ } | {
188
+ event: ChatGatewayEvent.ToolStart | ChatGatewayEvent.ToolEnd
189
+ data: CopilotMessageGroup | CopilotMessageGroup[]
190
+ } | {
191
+ event: ChatGatewayEvent.ChainStart | ChatGatewayEvent.ChainEnd
192
+ data: {
193
+ id: string
194
+ }
195
+ } | {
196
+ event: ChatGatewayEvent.StepStart | ChatGatewayEvent.StepEnd
197
+ data: CopilotChatMessage
198
+ } | {
199
+ event: ChatGatewayEvent.Message | ChatGatewayEvent.Error
200
+ data: CopilotChatMessage
201
+ } | {
202
+ event: ChatGatewayEvent.Agent
203
+ data: {
204
+ id: string
205
+ message: CopilotChatMessage
206
+ }
207
+ })
@@ -0,0 +1,25 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+
3
+ /**
4
+ * Checkpoints for copilot, for langgraph framework
5
+ */
6
+ export interface ICopilotCheckpoint extends IBasePerTenantAndOrganizationEntityModel {
7
+ thread_id: string
8
+ checkpoint_ns: string
9
+ checkpoint_id: string
10
+ parent_id?: string
11
+ type?: string
12
+ checkpoint: Uint8Array
13
+ metadata: Uint8Array
14
+ }
15
+
16
+ export interface ICopilotCheckpointWrites extends IBasePerTenantAndOrganizationEntityModel {
17
+ thread_id: string
18
+ checkpoint_ns: string
19
+ checkpoint_id: string
20
+ task_id?: string
21
+ idx?: number
22
+ channel?: string
23
+ type?: string
24
+ value: Uint8Array
25
+ }
@@ -0,0 +1,23 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { AiProvider } from './ai.model'
3
+ import { IXpert } from './xpert.model'
4
+
5
+ /**
6
+ * Examples for copilot, which is used to few shot user question
7
+ */
8
+ export interface ICopilotKnowledge extends IBasePerTenantAndOrganizationEntityModel {
9
+ provider?: AiProvider | string
10
+ /**
11
+ * The name of xpert (copilot type)
12
+ */
13
+ role?: string
14
+ command?: string
15
+ input?: string
16
+ output?: string
17
+
18
+ // Has vector
19
+ vector?: boolean
20
+
21
+ xpert?: IXpert
22
+ xpertId?: string
23
+ }
@@ -0,0 +1,31 @@
1
+ import { AiModelTypeEnum } from '../agent'
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { ICopilot } from './copilot.model'
4
+
5
+ export interface ICopilotModel extends TCopilotModel, IBasePerTenantAndOrganizationEntityModel {}
6
+
7
+ export type TCopilotModel = {
8
+ /**
9
+ * Use a separate copilot
10
+ */
11
+ copilot?: ICopilot
12
+ copilotId?: string
13
+
14
+ /**
15
+ * Referenced copilot model if not using a separate copilot
16
+ */
17
+ referencedModel?: ICopilotModel
18
+ referencedId?: string
19
+
20
+ modelType?: AiModelTypeEnum
21
+ model?: string
22
+
23
+ /**
24
+ * Details config for ai model
25
+ */
26
+ options?: TCopilotModelOptions
27
+ }
28
+
29
+ export type TCopilotModelOptions = {
30
+ [key: string]: any
31
+ }
@@ -0,0 +1,21 @@
1
+ import { IBasePerTenantEntityModel } from '../base-entity.model'
2
+ import { IOrganization } from '../organization.model'
3
+ import { AiProvider } from './ai.model'
4
+ import { ICopilot, TCopilotTokenUsage } from './copilot.model'
5
+
6
+ /**
7
+ * Organization token usage of global copilot
8
+ */
9
+ export interface ICopilotOrganization extends IBasePerTenantEntityModel, TCopilotTokenUsage {
10
+ organizationId?: string
11
+ organization?: IOrganization
12
+ copilotId?: string
13
+ copilot?: ICopilot
14
+ // Associated AI Model provider
15
+ provider?: AiProvider | string
16
+ model?: string
17
+
18
+ // Total tokens used historically
19
+ tokenTotalUsed?: number
20
+ priceTotalUsed?: number
21
+ }
@@ -0,0 +1,46 @@
1
+ import { AiModelTypeEnum } from '../agent'
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { IAiProviderEntity } from './ai-model.model'
4
+ import { ICopilot } from './copilot.model'
5
+
6
+ export interface ICopilotProvider extends IBasePerTenantAndOrganizationEntityModel {
7
+ providerName?: string
8
+ providerType?: string
9
+ credentials?: Record<string, any>
10
+ // encryptedConfig?: Record<string, any>
11
+ isValid?: boolean
12
+ lastUsed?: Date
13
+ quotaType?: string
14
+ quotaLimit?: number
15
+ quotaUsed?: number
16
+
17
+ /**
18
+ */
19
+ options?: any
20
+
21
+ copilot?: ICopilot
22
+ copilotId?: string
23
+
24
+ models?: ICopilotProviderModel[]
25
+
26
+ // Temporary properties
27
+ provider?: IAiProviderEntity
28
+ }
29
+
30
+
31
+ export interface ICopilotProviderModel extends IBasePerTenantAndOrganizationEntityModel {
32
+ providerName?: string
33
+ modelName?: string
34
+ modelType?: AiModelTypeEnum
35
+ // encryptedConfig?: Record<string, any>
36
+ modelProperties?: Record<string, any>
37
+ isValid?: boolean
38
+
39
+ // Many to one
40
+ provider?: ICopilotProvider
41
+ providerId?: string
42
+
43
+ // Temporary properties
44
+ }
45
+
46
+ export type TCopilotProviderPublicDto = Omit<ICopilotProvider, 'credentials'>
@@ -0,0 +1,48 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IXpertToolset } from './xpert-toolset.model'
3
+ import { IKnowledgebase } from './knowledgebase.model'
4
+
5
+ /**
6
+ * @deprecated use Xpert
7
+ *
8
+ * Copilot role, business role for the copilot
9
+ */
10
+ export interface ICopilotRole extends IBasePerTenantAndOrganizationEntityModel {
11
+ name: string
12
+ title?: string
13
+ titleCN?: string
14
+ description?: string
15
+ /**
16
+ * 系统提示语
17
+ */
18
+ prompt?: string
19
+ /**
20
+ * 对话开场白
21
+ */
22
+ starters?: string[]
23
+ active?: boolean
24
+ avatar?: string
25
+
26
+ toolsets?: IXpertToolset[]
27
+ /**
28
+ * More configuration
29
+ */
30
+ options?: TCopilotRoleOptions
31
+
32
+ // Many to many relationship
33
+ knowledgebases?: IKnowledgebase[]
34
+ }
35
+
36
+ /**
37
+ * @deprecated use XpertRole
38
+ */
39
+ export type TCopilotRoleOptions = {
40
+ context?: Record<string, any>
41
+ toolsets: {
42
+ [id: string]: {
43
+ [tool: string]: {
44
+ defaultArgs: Record<string, any>
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,34 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+
3
+ export interface ICopilotStore extends TCopilotStore, IBasePerTenantAndOrganizationEntityModel {}
4
+
5
+ export interface ICopilotStoreVector extends TCopilotStoreVector, IBasePerTenantAndOrganizationEntityModel {
6
+ }
7
+
8
+ export type TCopilotStore = {
9
+ prefix: string
10
+ key?: string
11
+ value: any
12
+ }
13
+
14
+ export type TCopilotStoreVector = {
15
+ prefix: string
16
+ key: string
17
+ field_name: any
18
+ embedding: number[]
19
+ }
20
+
21
+ export const MEMORY_QA_PROMPT = `Summarize the experience of the above conversation and output a short question and answer.`
22
+ export const MEMORY_PROFILE_PROMPT = `Extract new user profile information from the above conversation in one short sentence. If no new information is available, return nothing.`
23
+
24
+ export type TMemory = {
25
+ memoryId?: string
26
+ }
27
+ export type TMemoryUserProfile = TMemory & {
28
+ profile: string
29
+ context?: string
30
+ }
31
+ export type TMemoryQA = TMemory & {
32
+ question: string
33
+ answer: string
34
+ }