@metad/contracts 3.6.2 → 3.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/.babelrc +5 -0
  2. package/.eslintrc.json +18 -0
  3. package/babel.config.json +1 -0
  4. package/index.cjs.js +5 -4233
  5. package/jest.config.ts +16 -0
  6. package/package.json +2 -2
  7. package/project.json +53 -0
  8. package/src/agent/{ai-model.d.ts → ai-model.ts} +2 -2
  9. package/src/agent/graph.ts +275 -0
  10. package/src/agent/index.ts +5 -0
  11. package/src/agent/token.ts +23 -0
  12. package/src/agent/utils.spec.ts +283 -0
  13. package/src/agent/utils.ts +122 -0
  14. package/src/agent/variables.ts +66 -0
  15. package/src/ai/ai-model.model.ts +232 -0
  16. package/src/ai/ai-provider.model.ts +53 -0
  17. package/src/ai/ai.model.ts +87 -0
  18. package/src/ai/chat-message-feedback.model.ts +31 -0
  19. package/src/ai/chat-message.model.ts +277 -0
  20. package/src/ai/chat.model.ts +207 -0
  21. package/src/ai/copilot-checkpoint.model.ts +25 -0
  22. package/src/ai/copilot-example.model.ts +23 -0
  23. package/src/ai/copilot-model.model.ts +31 -0
  24. package/src/ai/copilot-organization.model.ts +21 -0
  25. package/src/ai/copilot-provider.model.ts +46 -0
  26. package/src/ai/copilot-role.model.ts +48 -0
  27. package/src/ai/copilot-store.model.ts +34 -0
  28. package/src/ai/copilot-user.model.ts +24 -0
  29. package/src/ai/copilot.model.ts +47 -0
  30. package/src/ai/{environment.model.d.ts → environment.model.ts} +12 -10
  31. package/src/ai/feature.model.ts +6 -0
  32. package/src/ai/index.ts +40 -0
  33. package/src/ai/knowledge-doc-chunk.model.ts +123 -0
  34. package/src/ai/knowledge-doc-chunk.spec.ts +47 -0
  35. package/src/ai/knowledge-doc-page.model.ts +20 -0
  36. package/src/ai/knowledge-doc.model.ts +364 -0
  37. package/src/ai/knowledge-pipeline.ts +138 -0
  38. package/src/ai/knowledge-retrieval-log.model.ts +19 -0
  39. package/src/ai/knowledgebase-task.model.ts +46 -0
  40. package/src/ai/knowledgebase.model.ts +205 -0
  41. package/src/ai/rag-web.ts +54 -0
  42. package/src/ai/rag.ts +24 -0
  43. package/src/ai/role-permissions.ts +13 -0
  44. package/src/ai/types.ts +83 -0
  45. package/src/ai/xpert-agent-execution.model.ts +115 -0
  46. package/src/ai/xpert-agent.model.ts +264 -0
  47. package/src/ai/xpert-project.model.ts +103 -0
  48. package/src/ai/xpert-table.model.ts +100 -0
  49. package/src/ai/xpert-task.model.ts +32 -0
  50. package/src/ai/xpert-template.model.ts +53 -0
  51. package/src/ai/xpert-tool-mcp.model.ts +77 -0
  52. package/src/ai/xpert-tool.model.ts +216 -0
  53. package/src/ai/xpert-toolset.model.ts +220 -0
  54. package/src/ai/xpert-workflow-task.prompt.ts +71 -0
  55. package/src/ai/xpert-workflow.model.ts +502 -0
  56. package/src/ai/xpert-workspace.model.ts +42 -0
  57. package/src/ai/xpert.model.ts +637 -0
  58. package/src/ai/xpert.utils.ts +214 -0
  59. package/src/analytics/ai.ts +79 -0
  60. package/src/analytics/approval-policy.model.ts +40 -0
  61. package/src/analytics/business-area-user.model.ts +43 -0
  62. package/src/analytics/business-area.ts +20 -0
  63. package/src/analytics/certification.model.ts +12 -0
  64. package/src/analytics/chatbi-conversation.model.ts +16 -0
  65. package/src/analytics/chatbi-model.model.ts +22 -0
  66. package/src/analytics/collection.model.ts +8 -0
  67. package/src/analytics/comment.model.ts +14 -0
  68. package/src/analytics/data-source-type.ts +19 -0
  69. package/src/analytics/data-source.ts +72 -0
  70. package/src/analytics/favorite.ts +18 -0
  71. package/src/analytics/features.ts +19 -0
  72. package/src/analytics/feed-model.ts +15 -0
  73. package/src/analytics/gateway.ts +31 -0
  74. package/src/analytics/index.ts +39 -0
  75. package/src/analytics/indicator-app.ts +49 -0
  76. package/src/analytics/{indicator-market.d.ts → indicator-market.ts} +6 -2
  77. package/src/analytics/indicator.ts +143 -0
  78. package/src/analytics/model-query-log.model.ts +45 -0
  79. package/src/analytics/model-query.ts +22 -0
  80. package/src/analytics/{notification-destination.d.ts → notification-destination.ts} +9 -5
  81. package/src/analytics/{permission-approval-user.model.d.ts → permission-approval-user.model.ts} +10 -8
  82. package/src/analytics/permission-approval.model.ts +58 -0
  83. package/src/analytics/project.model.ts +56 -0
  84. package/src/analytics/role-permissions.ts +36 -0
  85. package/src/analytics/schema.ts +300 -0
  86. package/src/analytics/screenshot.model.ts +28 -0
  87. package/src/analytics/semantic-model-entity.ts +50 -0
  88. package/src/analytics/semantic-model-member.ts +49 -0
  89. package/src/analytics/semantic-model.ts +237 -0
  90. package/src/analytics/{story-point.d.ts → story-point.ts} +11 -6
  91. package/src/analytics/story-template.model.ts +34 -0
  92. package/src/analytics/story-widget.ts +15 -0
  93. package/src/analytics/story.ts +109 -0
  94. package/src/analytics/subscription.ts +43 -0
  95. package/src/analytics/visit.model.ts +39 -0
  96. package/src/analytics/webSocket.ts +53 -0
  97. package/src/api-key.model.ts +11 -0
  98. package/src/base-entity.model.ts +34 -0
  99. package/src/contact.model.ts +45 -0
  100. package/src/core.model.ts +103 -0
  101. package/src/{country.model.d.ts → country.model.ts} +3 -2
  102. package/src/currency.model.ts +582 -0
  103. package/src/{custom-smtp.model.d.ts → custom-smtp.model.ts} +21 -17
  104. package/src/date-picker.model.ts +5 -0
  105. package/src/email-template.model.ts +50 -0
  106. package/src/email.model.ts +46 -0
  107. package/src/employee.model.ts +199 -0
  108. package/src/entity-with-members.model.ts +16 -0
  109. package/src/feature.model.ts +108 -0
  110. package/src/file-provider.ts +37 -0
  111. package/src/help-center-article.model.ts +35 -0
  112. package/src/help-center.model.ts +33 -0
  113. package/src/http-status.enum.ts +58 -0
  114. package/src/import-export.model.ts +42 -0
  115. package/src/index.ts +60 -0
  116. package/src/integration/dify.ts +31 -0
  117. package/src/integration/dingtalk.ts +16 -0
  118. package/src/integration/fastgpt.ts +32 -0
  119. package/src/integration/firecrawl.ts +46 -0
  120. package/src/integration/github.ts +149 -0
  121. package/src/integration/index.ts +15 -0
  122. package/src/integration/lark.ts +79 -0
  123. package/src/integration/wecom.ts +16 -0
  124. package/src/integration.model.ts +119 -0
  125. package/src/invite.model.ts +144 -0
  126. package/src/language.model.ts +22 -0
  127. package/src/organization-contact.model.ts +84 -0
  128. package/src/{organization-department.model.d.ts → organization-department.model.ts} +16 -10
  129. package/src/organization-language.model.ts +24 -0
  130. package/src/organization-projects.model.ts +99 -0
  131. package/src/organization-team-employee-model.ts +14 -0
  132. package/src/organization-team-model.ts +25 -0
  133. package/src/organization.model.ts +266 -0
  134. package/src/{password-reset.model.d.ts → password-reset.model.ts} +14 -10
  135. package/src/{plain-object.model.d.ts → plain-object.model.ts} +1 -1
  136. package/src/plugin.ts +15 -0
  137. package/src/role-permission.model.ts +123 -0
  138. package/src/role.model.ts +31 -0
  139. package/src/schedule.ts +71 -0
  140. package/src/secret-token.model.ts +15 -0
  141. package/src/seed.model.ts +50 -0
  142. package/src/storage-file.model.ts +46 -0
  143. package/src/tag-entity.model.ts +23 -0
  144. package/src/tenant.model.ts +52 -0
  145. package/src/tools/index.ts +1 -0
  146. package/src/tools/sandbox.ts +5 -0
  147. package/src/translation.model.ts +37 -0
  148. package/src/types.ts +277 -0
  149. package/src/user-organization.model.ts +31 -0
  150. package/src/user.model.ts +151 -0
  151. package/src/visibility.model.ts +6 -0
  152. package/tsconfig.json +22 -0
  153. package/tsconfig.lib.json +10 -0
  154. package/tsconfig.spec.json +9 -0
  155. package/index.cjs.d.ts +0 -1
  156. package/index.esm.d.ts +0 -1
  157. package/index.esm.js +0 -4129
  158. package/src/agent/graph.d.ts +0 -148
  159. package/src/agent/index.d.ts +0 -5
  160. package/src/agent/token.d.ts +0 -21
  161. package/src/agent/utils.d.ts +0 -19
  162. package/src/agent/variables.d.ts +0 -14
  163. package/src/ai/ai-model.model.d.ts +0 -198
  164. package/src/ai/ai-provider.model.d.ts +0 -43
  165. package/src/ai/ai.model.d.ts +0 -82
  166. package/src/ai/chat-message-feedback.model.d.ts +0 -24
  167. package/src/ai/chat-message.model.d.ts +0 -222
  168. package/src/ai/chat.model.d.ts +0 -189
  169. package/src/ai/copilot-checkpoint.model.d.ts +0 -23
  170. package/src/ai/copilot-example.model.d.ts +0 -19
  171. package/src/ai/copilot-model.model.d.ts +0 -26
  172. package/src/ai/copilot-organization.model.d.ts +0 -17
  173. package/src/ai/copilot-provider.model.d.ts +0 -31
  174. package/src/ai/copilot-role.model.d.ts +0 -43
  175. package/src/ai/copilot-store.model.d.ts +0 -29
  176. package/src/ai/copilot-user.model.d.ts +0 -20
  177. package/src/ai/copilot.model.d.ts +0 -36
  178. package/src/ai/feature.model.d.ts +0 -6
  179. package/src/ai/index.d.ts +0 -39
  180. package/src/ai/knowledge-doc-chunk.model.d.ts +0 -60
  181. package/src/ai/knowledge-doc-page.model.d.ts +0 -15
  182. package/src/ai/knowledge-doc.model.d.ts +0 -192
  183. package/src/ai/knowledge-pipeline.d.ts +0 -107
  184. package/src/ai/knowledge-retrieval-log.model.d.ts +0 -10
  185. package/src/ai/knowledgebase-task.model.d.ts +0 -39
  186. package/src/ai/knowledgebase.model.d.ts +0 -162
  187. package/src/ai/rag-web.d.ts +0 -26
  188. package/src/ai/rag.d.ts +0 -24
  189. package/src/ai/role-permissions.d.ts +0 -13
  190. package/src/ai/types.d.ts +0 -39
  191. package/src/ai/xpert-agent-execution.model.d.ts +0 -96
  192. package/src/ai/xpert-agent.model.d.ts +0 -192
  193. package/src/ai/xpert-project.model.d.ts +0 -86
  194. package/src/ai/xpert-task.model.d.ts +0 -26
  195. package/src/ai/xpert-template.model.d.ts +0 -47
  196. package/src/ai/xpert-tool-mcp.model.d.ts +0 -67
  197. package/src/ai/xpert-tool.model.d.ts +0 -147
  198. package/src/ai/xpert-toolset.model.d.ts +0 -200
  199. package/src/ai/xpert-workflow-task.prompt.d.ts +0 -2
  200. package/src/ai/xpert-workflow.model.d.ts +0 -366
  201. package/src/ai/xpert-workspace.model.d.ts +0 -32
  202. package/src/ai/xpert.model.d.ts +0 -529
  203. package/src/ai/xpert.utils.d.ts +0 -80
  204. package/src/analytics/ai.d.ts +0 -73
  205. package/src/analytics/approval-policy.model.d.ts +0 -30
  206. package/src/analytics/business-area-user.model.d.ts +0 -35
  207. package/src/analytics/business-area.d.ts +0 -17
  208. package/src/analytics/certification.model.d.ts +0 -11
  209. package/src/analytics/chatbi-conversation.model.d.ts +0 -15
  210. package/src/analytics/chatbi-model.model.d.ts +0 -18
  211. package/src/analytics/collection.model.d.ts +0 -6
  212. package/src/analytics/comment.model.d.ts +0 -10
  213. package/src/analytics/data-source-type.d.ts +0 -16
  214. package/src/analytics/data-source.d.ts +0 -62
  215. package/src/analytics/favorite.d.ts +0 -14
  216. package/src/analytics/features.d.ts +0 -19
  217. package/src/analytics/feed-model.d.ts +0 -13
  218. package/src/analytics/gateway.d.ts +0 -27
  219. package/src/analytics/index.d.ts +0 -38
  220. package/src/analytics/indicator-app.d.ts +0 -44
  221. package/src/analytics/indicator.d.ts +0 -106
  222. package/src/analytics/model-query-log.model.d.ts +0 -41
  223. package/src/analytics/model-query.d.ts +0 -21
  224. package/src/analytics/permission-approval.model.d.ts +0 -47
  225. package/src/analytics/project.model.d.ts +0 -50
  226. package/src/analytics/role-permissions.d.ts +0 -25
  227. package/src/analytics/schema.d.ts +0 -262
  228. package/src/analytics/screenshot.model.d.ts +0 -25
  229. package/src/analytics/semantic-model-entity.d.ts +0 -37
  230. package/src/analytics/semantic-model-member.d.ts +0 -24
  231. package/src/analytics/semantic-model.d.ts +0 -175
  232. package/src/analytics/story-template.model.d.ts +0 -28
  233. package/src/analytics/story-widget.d.ts +0 -12
  234. package/src/analytics/story.d.ts +0 -93
  235. package/src/analytics/subscription.d.ts +0 -38
  236. package/src/analytics/visit.model.d.ts +0 -34
  237. package/src/analytics/webSocket.d.ts +0 -48
  238. package/src/api-key.model.d.ts +0 -10
  239. package/src/base-entity.model.d.ts +0 -27
  240. package/src/contact.model.d.ts +0 -41
  241. package/src/core.model.d.ts +0 -97
  242. package/src/currency.model.d.ts +0 -579
  243. package/src/date-picker.model.d.ts +0 -5
  244. package/src/email-template.model.d.ts +0 -39
  245. package/src/email.model.d.ts +0 -36
  246. package/src/employee.model.d.ts +0 -128
  247. package/src/entity-with-members.model.d.ts +0 -13
  248. package/src/feature.model.d.ts +0 -93
  249. package/src/file-provider.d.ts +0 -33
  250. package/src/help-center-article.model.d.ts +0 -0
  251. package/src/help-center.model.d.ts +0 -0
  252. package/src/http-status.enum.d.ts +0 -57
  253. package/src/import-export.model.d.ts +0 -36
  254. package/src/index.d.ts +0 -48
  255. package/src/integration/dify.d.ts +0 -0
  256. package/src/integration/dingtalk.d.ts +0 -2
  257. package/src/integration/fastgpt.d.ts +0 -0
  258. package/src/integration/firecrawl.d.ts +0 -2
  259. package/src/integration/github.d.ts +0 -69
  260. package/src/integration/index.d.ts +0 -4
  261. package/src/integration/lark.d.ts +0 -11
  262. package/src/integration/wecom.d.ts +0 -2
  263. package/src/integration.model.d.ts +0 -90
  264. package/src/invite.model.d.ts +0 -123
  265. package/src/language.model.d.ts +0 -19
  266. package/src/organization-contact.model.d.ts +0 -73
  267. package/src/organization-language.model.d.ts +0 -18
  268. package/src/organization-projects.model.d.ts +0 -80
  269. package/src/organization-team-employee-model.d.ts +0 -12
  270. package/src/organization-team-model.d.ts +0 -19
  271. package/src/organization.model.d.ts +0 -239
  272. package/src/plugin.d.ts +0 -13
  273. package/src/role-permission.model.d.ts +0 -61
  274. package/src/role.model.d.ts +0 -26
  275. package/src/schedule.d.ts +0 -27
  276. package/src/secret-token.model.d.ts +0 -11
  277. package/src/seed.model.d.ts +0 -37
  278. package/src/storage-file.model.d.ts +0 -40
  279. package/src/tag-entity.model.d.ts +0 -20
  280. package/src/tenant.model.d.ts +0 -40
  281. package/src/tools/index.d.ts +0 -1
  282. package/src/tools/sandbox.d.ts +0 -5
  283. package/src/translation.model.d.ts +0 -26
  284. package/src/types.d.ts +0 -241
  285. package/src/user-organization.model.d.ts +0 -24
  286. package/src/user.model.d.ts +0 -131
  287. package/src/visibility.model.d.ts +0 -6
@@ -0,0 +1,637 @@
1
+ import { ToolCall as LToolCall } from '@langchain/core/dist/messages/tool'
2
+ import { RunnableToolLike } from '@langchain/core/runnables'
3
+ import { StructuredToolInterface } from '@langchain/core/tools'
4
+ import { ITag } from '../tag-entity.model'
5
+ import { IUser, LanguagesEnum } from '../user.model'
6
+ import { ICopilotModel, TCopilotModel } from './copilot-model.model'
7
+ import { IKnowledgebase, TKBRecallParams } from './knowledgebase.model'
8
+ import { ChecklistItem, I18nObject, IPoint, ISize, TAvatar } from '../types'
9
+ import { IXpertAgent } from './xpert-agent.model'
10
+ import { IXpertToolset } from './xpert-toolset.model'
11
+ import { IBasePerWorkspaceEntityModel } from './xpert-workspace.model'
12
+ import { IIntegration } from '../integration.model'
13
+ import { TChatFrom, TSensitiveOperation } from './chat.model'
14
+ import { IWorkflowNode, TVariableAssigner, TWFCase, VariableOperationEnum } from './xpert-workflow.model'
15
+ import { IEnvironment } from './environment.model'
16
+ import { IStorageFile } from '../storage-file.model'
17
+ import { STATE_VARIABLE_HUMAN, TInterruptCommand } from '../agent/graph'
18
+
19
+ export type ToolCall = LToolCall
20
+
21
+ export enum XpertTypeEnum {
22
+ /**
23
+ * Chat Agents
24
+ */
25
+ Agent = 'agent',
26
+
27
+ /**
28
+ * Copilot in UI
29
+ */
30
+ Copilot = 'copilot',
31
+
32
+ /**
33
+ * Knowledge Workflow
34
+ */
35
+ Knowledge = 'knowledge',
36
+ }
37
+
38
+ export type TXpertFeatures = {
39
+ opener: {
40
+ enabled: boolean
41
+ message: string
42
+ questions: string[]
43
+ }
44
+
45
+ suggestion: {
46
+ enabled: boolean
47
+ prompt: string
48
+ }
49
+
50
+ textToSpeech: {
51
+ enabled: boolean
52
+ copilotModel?: TCopilotModel
53
+ }
54
+
55
+ speechToText: {
56
+ enabled: boolean
57
+ copilotModel?: TCopilotModel
58
+ }
59
+
60
+ /**
61
+ * File upload feature
62
+ */
63
+ attachment?: TXpertAttachment
64
+
65
+ /**
66
+ * Reply with memory(Q&A)
67
+ */
68
+ memoryReply?: {
69
+ enabled: boolean
70
+ scoreThreshold?: number
71
+ }
72
+ }
73
+
74
+ export type TXpert = {
75
+ /**
76
+ * Unique slug identifier, generated from name
77
+ */
78
+ slug: string
79
+ /**
80
+ * Expert name
81
+ */
82
+ name: string
83
+ /**
84
+ * Expert type
85
+ */
86
+ type: XpertTypeEnum
87
+ title?: string
88
+ /**
89
+ * @deprecated use title
90
+ */
91
+ titleCN?: string
92
+ /**
93
+ * Expert description
94
+ */
95
+ description?: string
96
+
97
+ /**
98
+ * Is active
99
+ */
100
+ active?: boolean
101
+ /**
102
+ * Avatar Object
103
+ */
104
+ avatar?: TAvatar
105
+
106
+ /**
107
+ * Conversation starters
108
+ */
109
+ starters?: string[]
110
+
111
+ /**
112
+ * More configuration
113
+ */
114
+ options?: TXpertOptions
115
+ /**
116
+ * Config for every agent
117
+ */
118
+ agentConfig?: TXpertAgentConfig
119
+ /**
120
+ * Config of summarize past conversations
121
+ */
122
+ summarize?: TSummarize
123
+ /**
124
+ * Long-term memory config
125
+ */
126
+ memory?: TLongTermMemory
127
+
128
+ features?: TXpertFeatures
129
+
130
+ /**
131
+ * Version of role: '1' '2' '2.1' '2.2'...
132
+ */
133
+ version?: string
134
+ /**
135
+ * Is latest version
136
+ */
137
+ latest?: boolean
138
+ /**
139
+ * Release notes
140
+ */
141
+ releaseNotes?: string
142
+
143
+ /**
144
+ * Draft on current version
145
+ */
146
+ draft?: TXpertTeamDraft
147
+ /**
148
+ * Published graph
149
+ */
150
+ graph?: TXpertGraph
151
+
152
+ api?: TChatApi
153
+ app?: TChatApp
154
+ userId?: string
155
+ user?: IUser
156
+
157
+ /**
158
+ * Primary agent for this expert
159
+ */
160
+ agent?: IXpertAgent
161
+
162
+ // Many to one
163
+ // Used copilot model
164
+ copilotModel?: ICopilotModel
165
+ copilotModelId?: string
166
+
167
+ // One to many
168
+ agents?: IXpertAgent[]
169
+
170
+ // Many to many relationships
171
+
172
+ /**
173
+ * Sub-experts, Digital experts who perform specific tasks, focus on completing the assigned work
174
+ */
175
+ executors?: IXpert[]
176
+ /**
177
+ * The task coordinator who called this expert
178
+ */
179
+ leaders?: IXpert[]
180
+
181
+ knowledgebases?: IKnowledgebase[]
182
+ toolsets?: IXpertToolset[]
183
+
184
+ /**
185
+ * The corresponding person in charge, whose has the authority to execute this digital expert
186
+ */
187
+ managers?: IUser[]
188
+ /**
189
+ * Integrations for this xpert
190
+ */
191
+ integrations?: IIntegration[]
192
+
193
+ tags?: ITag[]
194
+ }
195
+
196
+ /**
197
+ * Digital Expert
198
+ */
199
+ export interface IXpert extends IBasePerWorkspaceEntityModel, TXpert {
200
+ environmentId?: string
201
+ environment?: IEnvironment
202
+ /**
203
+ * When type is 'knowledge', it must binding a knowledgebase
204
+ */
205
+ knowledgebase?: IKnowledgebase
206
+ }
207
+
208
+ export type TXpertOptions = {
209
+ knowledge?: Record<
210
+ string,
211
+ {
212
+ position?: IPoint
213
+ size?: ISize
214
+ }
215
+ >
216
+ toolset?: Record<
217
+ string,
218
+ {
219
+ position?: IPoint
220
+ size?: ISize
221
+ }
222
+ >
223
+ agent?: Record<
224
+ string,
225
+ {
226
+ position?: IPoint
227
+ size?: ISize
228
+ }
229
+ >
230
+ xpert?: Record<
231
+ string,
232
+ {
233
+ position?: IPoint
234
+ size?: ISize
235
+ }
236
+ >
237
+ position?: IPoint
238
+ scale?: number
239
+ }
240
+
241
+ /**
242
+ * Config for Agent execution (Langgraph.js)
243
+ */
244
+ export type TXpertAgentConfig = {
245
+ /**
246
+ * Maximum number of times a call can recurse. If not provided, defaults to 25.
247
+ */
248
+ recursionLimit?: number;
249
+ /** Maximum number of parallel calls to make. */
250
+ maxConcurrency?: number;
251
+ /**
252
+ * Timeout for this call in milliseconds.
253
+ */
254
+ timeout?: number;
255
+
256
+ /**
257
+ * Sensitive tools and agents
258
+ */
259
+ interruptBefore?: string[]
260
+ /**
261
+ * End nodes
262
+ */
263
+ endNodes?: string[]
264
+
265
+ /**
266
+ * Custom variables of graph state
267
+ */
268
+ stateVariables?: TStateVariable[]
269
+
270
+ /**
271
+ * Custom input parameters should be consistent with the start node or primary agent parameters.
272
+ */
273
+ parameters?: TXpertParameter[]
274
+
275
+ /**
276
+ * @deprecated use memories in tools
277
+ */
278
+ toolsMemory?: Record<string, TVariableAssigner[]>
279
+
280
+ /**
281
+ * Disable agent's output
282
+ * @deprecated use `mute` instead
283
+ */
284
+ disableOutputs?: string[]
285
+
286
+ /**
287
+ * Mute nodes in the graph of agents: filter messages by tags of stream events
288
+ */
289
+ mute?: string[][]
290
+
291
+ /**
292
+ * Recall knowledge params
293
+ */
294
+ recalls?: Record<string, TKBRecallParams>
295
+
296
+ /**
297
+ * Retrieval params for every knowledgebase
298
+ */
299
+ retrievals?: Record<string, TKBRetrievalSettings>
300
+
301
+ /**
302
+ * Summarize the title of the conversation
303
+ */
304
+ summarizeTitle?: {
305
+ disable?: boolean
306
+ instruction?: string
307
+ }
308
+
309
+ tools?: Record<string, {
310
+ /**
311
+ * Memory assigner for tool's results. (save result of tool call into state variable)
312
+ */
313
+ memories?: TVariableAssigner[]
314
+ timeout?: number
315
+ /**
316
+ * Custom description for the tool
317
+ */
318
+ description?: string
319
+ }>
320
+ }
321
+
322
+ export type TStateVariableType = XpertParameterTypeEnum | 'object' | 'array[string]' | 'array[number]' | 'array[object]'
323
+ /**
324
+ */
325
+ export type TStateVariable<ValueType = any, UpdateType = ValueType> = TXpertParameter & {
326
+ type: TStateVariableType
327
+ default?: any
328
+ reducer?: (a: ValueType, b: UpdateType) => ValueType
329
+ operation?: VariableOperationEnum
330
+ }
331
+
332
+ /**
333
+ * Config for summarizing past conversations
334
+ */
335
+ export type TSummarize = {
336
+ enabled?: boolean
337
+ /**
338
+ * The system prompt guide how to summarize the conversation
339
+ */
340
+ prompt?: string
341
+ /**
342
+ * The maximum number of tolerated messages, otherwise it will be summarized.
343
+ * Should be greater than the number of retained messages
344
+ */
345
+ maxMessages?: number
346
+ /**
347
+ * Number of retained messages
348
+ */
349
+ retainMessages?: number
350
+ }
351
+
352
+ export enum LongTermMemoryTypeEnum {
353
+ PROFILE = 'profile',
354
+ QA = 'qa',
355
+ }
356
+
357
+ export type TLongTermMemoryConfig = {
358
+ enabled?: boolean
359
+ /**
360
+ * System prompt guide how to remember the key points of the conversation
361
+ */
362
+ prompt?: string
363
+ }
364
+ /**
365
+ * Config of long-term memory
366
+ */
367
+ export type TLongTermMemory = {
368
+ enabled?: boolean
369
+ // type?: LongTermMemoryTypeEnum
370
+ copilotModel?: TCopilotModel
371
+ profile?: TLongTermMemoryConfig & {
372
+ afterSeconds?: number
373
+ }
374
+ qa?: TLongTermMemoryConfig
375
+ }
376
+
377
+ export type TXpertAttachmentType = 'document' | 'image' | 'audio' | 'video' | 'others'
378
+ export type TXpertAttachment = {
379
+ enabled?: boolean
380
+ type?: 'upload' | 'url' | 'all'
381
+ maxNum?: number
382
+ fileTypes?: Array<TXpertAttachmentType>
383
+ }
384
+
385
+ export enum XpertParameterTypeEnum {
386
+ /**
387
+ * @deprecated use string
388
+ */
389
+ TEXT = 'text',
390
+ /**
391
+ * @deprecated use string
392
+ */
393
+ PARAGRAPH = 'paragraph',
394
+ STRING = 'string',
395
+ NUMBER = 'number',
396
+ OBJECT = 'object',
397
+ SELECT = 'select',
398
+ FILE = 'file',
399
+ ARRAY_STRING = 'array[string]',
400
+ ARRAY_NUMBER = 'array[number]',
401
+ ARRAY = 'array[object]',
402
+ ARRAY_FILE = 'array[file]',
403
+ ARRAY_DOCUMENT = 'array[document]',
404
+
405
+ BOOLEAN = 'boolean',
406
+ SECRET = 'secret',
407
+ }
408
+
409
+ export type TXpertParameter = {
410
+ type: XpertParameterTypeEnum
411
+ name: string
412
+ /**
413
+ * @deprecated use description and name only
414
+ */
415
+ title?: string
416
+ description?: string | I18nObject
417
+ optional?: boolean
418
+ default?: any
419
+ maximum?: number
420
+ options?: string[]
421
+ item?: TXpertParameter[]
422
+ }
423
+
424
+ export type TChatApp = {
425
+ enabled?: boolean
426
+ public?: boolean
427
+ }
428
+
429
+ export type TChatApi = {
430
+ disabled?: boolean
431
+ }
432
+
433
+ // Xpert team draft types
434
+ export type TXpertGraph = {
435
+ nodes: TXpertTeamNode[]
436
+ connections: TXpertTeamConnection[]
437
+ }
438
+
439
+ export type TXpertTeamDraft = TXpertGraph & {
440
+ team: Partial<IXpert>
441
+ savedAt?: Date
442
+ checklist?: ChecklistItem[]
443
+ }
444
+
445
+ export type TXpertTeamNodeType = 'agent' | 'knowledge' | 'toolset' | 'xpert' | 'workflow'
446
+
447
+ export type TXpertTeamNode = {
448
+ key: string
449
+ type: TXpertTeamNodeType
450
+ position: IRect
451
+ size?: ISize
452
+ hash?: string
453
+ parentId?: string
454
+ readonly?: boolean
455
+ } & (
456
+ | {
457
+ type: 'agent'
458
+ entity: IXpertAgent
459
+ }
460
+ | {
461
+ type: 'knowledge'
462
+ entity: IKnowledgebase
463
+ }
464
+ | {
465
+ type: 'toolset'
466
+ entity: IXpertToolset
467
+ }
468
+ | {
469
+ type: 'xpert'
470
+ entity: IXpert
471
+ nodes?: TXpertTeamNode[]
472
+ connections?: TXpertTeamConnection[]
473
+ expanded?: boolean
474
+ }
475
+ | {
476
+ type: 'workflow'
477
+ entity: IWorkflowNode
478
+ }
479
+ )
480
+
481
+ export interface IRect extends IPoint, Partial<ISize> {
482
+ gravityCenter?: IPoint
483
+ }
484
+
485
+ export type TXpertTeamGroup = {
486
+ id: string
487
+ title: string
488
+ position: IPoint
489
+ size?: ISize
490
+ parentId?: string
491
+ team: IXpert
492
+ agent?: IXpertAgent
493
+ }
494
+
495
+ export interface TXpertTeamConnection {
496
+ key: string
497
+ from: string
498
+ to: string
499
+ /**
500
+ * - edge: Horizontal Process, workflow
501
+ * - others: Vertical Process, agent
502
+ */
503
+ type: 'edge' | TXpertTeamNodeType
504
+
505
+ readonly?: boolean
506
+ }
507
+
508
+ export enum ChatMessageTypeEnum {
509
+ // LOG = 'log',
510
+ MESSAGE = 'message',
511
+ EVENT = 'event'
512
+ }
513
+
514
+ /**
515
+ * https://js.langchain.com/docs/how_to/streaming/#event-reference
516
+ */
517
+ export enum ChatMessageEventTypeEnum {
518
+ ON_CONVERSATION_START = 'on_conversation_start',
519
+ ON_CONVERSATION_END = 'on_conversation_end',
520
+ ON_MESSAGE_START = 'on_message_start',
521
+ ON_MESSAGE_END = 'on_message_end',
522
+ ON_TOOL_START = 'on_tool_start',
523
+ ON_TOOL_END = 'on_tool_end',
524
+ ON_TOOL_ERROR = 'on_tool_error',
525
+ /**
526
+ * Step message in tool call
527
+ */
528
+ ON_TOOL_MESSAGE = 'on_tool_message',
529
+ ON_AGENT_START = 'on_agent_start',
530
+ ON_AGENT_END = 'on_agent_end',
531
+ ON_RETRIEVER_START = 'on_retriever_start',
532
+ ON_RETRIEVER_END = 'on_retriever_end',
533
+ ON_RETRIEVER_ERROR = 'on_retriever_error',
534
+ ON_INTERRUPT = 'on_interrupt',
535
+ ON_ERROR = 'on_error',
536
+ ON_CHAT_EVENT = 'on_chat_event',
537
+ }
538
+
539
+ /**
540
+ * Human input message, include parameters and attachments
541
+ */
542
+ export type TChatRequestHuman = {
543
+ input?: string
544
+ files?: Partial<IStorageFile>[]
545
+ [key: string]: unknown
546
+ }
547
+
548
+ export type TChatRequest = {
549
+ /**
550
+ * The human input, include parameters
551
+ */
552
+ input: TChatRequestHuman
553
+ /**
554
+ * Custom graph state
555
+ */
556
+ state?: {[STATE_VARIABLE_HUMAN]: TChatRequestHuman} & Record<string, any>
557
+ xpertId: string
558
+ agentKey?: string
559
+ projectId?: string
560
+ conversationId?: string
561
+ environmentId?: string
562
+ id?: string
563
+ executionId?: string
564
+ confirm?: boolean
565
+ /**
566
+ * Reject the sensitive tool calls
567
+ */
568
+ reject?: boolean
569
+ /**
570
+ * Message to update parameters of last tool call message
571
+ * @deprecated use `command` instead
572
+ */
573
+ operation?: TSensitiveOperation
574
+ command?: TInterruptCommand
575
+ retry?: boolean
576
+ }
577
+
578
+ export type TChatOptions = {
579
+ conversationId?: string
580
+ /**
581
+ * @deprecated
582
+ */
583
+ knowledgebases?: string[]
584
+ /**
585
+ * @deprecated
586
+ */
587
+ toolsets?: string[]
588
+ /**
589
+ * The language used by the current browser page
590
+ */
591
+ language?: LanguagesEnum
592
+ /**
593
+ * The browser's time zone
594
+ */
595
+ timeZone?: string
596
+ /**
597
+ * Call from
598
+ */
599
+ from?: TChatFrom
600
+ /**
601
+ * Whether to summarize the conversation title
602
+ */
603
+ summarizeTitle?: boolean
604
+ /**
605
+ * Project ID, identify the project where the xpert invoked
606
+ */
607
+ projectId?: string
608
+ /**
609
+ * Schedule task ID
610
+ */
611
+ taskId?: string
612
+ /**
613
+ * Specify environment with variables to run
614
+ */
615
+ environment?: IEnvironment
616
+ /**
617
+ * Specify additional tools
618
+ */
619
+ tools?: (StructuredToolInterface | RunnableToolLike)[]
620
+ }
621
+
622
+ /**
623
+ * Knowledgebase retrieval settings
624
+ */
625
+ export type TKBRetrievalSettings = {
626
+ metadata: {
627
+ filtering_mode: "disabled" | "automatic" | "manual"
628
+ /**
629
+ * Conditions (filter) when mode is manual
630
+ */
631
+ filtering_conditions: TWFCase
632
+ /**
633
+ * Parameter fields (tool call) when mode is automatic
634
+ */
635
+ fields: Record<string, object>
636
+ }
637
+ }