@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,211 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { I18nObject } from '../types'
3
+ import { AiProviderRole } from './copilot.model'
4
+ import { TAvatar } from '../types'
5
+ import { IXpertToolset } from './xpert-toolset.model'
6
+
7
+ /**
8
+ * Tools for Xpert
9
+ */
10
+ export interface IXpertTool extends IBasePerTenantAndOrganizationEntityModel, XpertToolType {}
11
+
12
+ export type XpertToolType = {
13
+ name: string
14
+ description?: string
15
+ avatar?: TAvatar
16
+ /**
17
+ * @deprecated use disabled
18
+ */
19
+ enabled?: boolean
20
+ /**
21
+ * Is disabled in toolset
22
+ */
23
+ disabled?: boolean
24
+
25
+ options?: Record<string, any>
26
+ /**
27
+ * Schema of tool
28
+ */
29
+ schema?: Record<string, any> | TXpertToolEntity | IBuiltinTool
30
+ /**
31
+ * Default input parameters of tool
32
+ */
33
+ parameters?: Record<string, any>
34
+
35
+ /**
36
+ * Priority role of AI provider
37
+ * @default `AiProviderRole.Secondary`
38
+ */
39
+ aiProviderRole?: AiProviderRole
40
+
41
+ toolset?: IXpertToolset
42
+ toolsetId?: string
43
+
44
+ // Temporary properties
45
+ provider?: IBuiltinTool
46
+ }
47
+
48
+ export type TToolProviderIdentity = {
49
+ name: string
50
+ author: string
51
+ label: I18nObject
52
+ provider: string
53
+ entity?: string
54
+ }
55
+
56
+ interface ToolParameterOption {
57
+ value: string;
58
+ label: I18nObject;
59
+ }
60
+
61
+ export enum ToolParameterType {
62
+ STRING = "string",
63
+ NUMBER = "number",
64
+ BOOLEAN = "boolean",
65
+ ARRAY = "array",
66
+ SELECT = "select",
67
+ SECRET_INPUT = "secret-input",
68
+ FILE = "file"
69
+ }
70
+
71
+ export enum ToolParameterForm {
72
+ SCHEMA = "schema", // should be set while adding tool
73
+ FORM = "form", // should be set before invoking tool
74
+ LLM = "llm" // will be set by LLM
75
+ }
76
+
77
+ export type TToolParameter = {
78
+ name: string;
79
+ label: I18nObject;
80
+ human_description?: I18nObject;
81
+ placeholder?: I18nObject;
82
+ type: ToolParameterType;
83
+ form: ToolParameterForm;
84
+ llm_description?: string;
85
+ required?: boolean;
86
+ default?: number | string;
87
+ min?: number;
88
+ max?: number;
89
+ options?: ToolParameterOption[];
90
+ items?: {
91
+ type: ToolParameterType
92
+ }
93
+
94
+ /**
95
+ * Is visible for ai tool parameters
96
+ */
97
+ visible?: boolean
98
+ }
99
+
100
+ export interface ApiToolBundle {
101
+ /**
102
+ * This interface is used to store the schema information of an api based tool,
103
+ * such as the url, the method, the parameters, etc.
104
+ */
105
+
106
+ // server_url
107
+ server_url: string;
108
+ // method
109
+ method: string;
110
+ // summary
111
+ summary?: string;
112
+ // operation_id
113
+ operation_id?: string;
114
+ // parameters
115
+ parameters?: TToolParameter[];
116
+ // author
117
+ author: string;
118
+ // icon
119
+ icon?: string;
120
+ // openapi operation
121
+ openapi: Record<string, any>;
122
+ }
123
+
124
+ export interface IBuiltinTool {
125
+ identity: TToolProviderIdentity
126
+ description: {
127
+ human: I18nObject
128
+ llm: string
129
+ }
130
+ /**
131
+ * Definition of input parameters (yaml schema)
132
+ */
133
+ parameters?: TToolParameter[]
134
+ /**
135
+ * Schema of tool (zod/json-schema)
136
+ */
137
+ schema?: any
138
+ /**
139
+ * @deprecated how to use?
140
+ */
141
+ entity?: string
142
+ }
143
+
144
+ // Types for OData
145
+ export type TXpertToolEntity = {
146
+ name: string
147
+ method: 'create' | 'get' | 'query' | 'update' | 'delete'
148
+ entity: string
149
+ path: string
150
+ /**
151
+ * Definition of properties
152
+ */
153
+ parameters: Partial<TToolParameter>[]
154
+
155
+ description?: string
156
+ }
157
+
158
+ export const TOOL_NAME_REGEX = /^[a-zA-Z0-9_-]+$/;
159
+
160
+ // Helper functions for tools
161
+ /**
162
+ *
163
+ * @param tool Tool
164
+ * @param disableToolDefault Is default disable tools
165
+ * @returns Tool is enabled?
166
+ */
167
+ export function isToolEnabled(tool: IXpertTool, disableToolDefault = false) {
168
+ let disabled = tool.disabled
169
+ if (disabled == null && tool.enabled != null) {
170
+ disabled = !tool.enabled
171
+ }
172
+ if (disabled == null) {
173
+ disabled = disableToolDefault
174
+ }
175
+ return !disabled
176
+ }
177
+
178
+ /**
179
+ * Tool is enabled?
180
+ *
181
+ * @deprecated use isToolEnabled
182
+ */
183
+ export function isEnableTool(tool: IXpertTool, toolset: IXpertToolset) {
184
+ let disabled = tool.disabled
185
+ if (disabled == null && tool.enabled != null) {
186
+ disabled = !tool.enabled
187
+ }
188
+ if (disabled == null) {
189
+ disabled = toolset.options?.disableToolDefault
190
+ }
191
+ return !disabled
192
+ }
193
+
194
+ export function getEnabledTools(toolset: IXpertToolset) {
195
+ if (!toolset) return null
196
+ const disableToolDefault = toolset.options?.disableToolDefault
197
+ const positions = toolset?.options?.toolPositions
198
+ const tools = toolset?.tools?.filter((_) => isToolEnabled(_, disableToolDefault))
199
+ return positions && tools
200
+ ? tools.sort((a, b) => (positions[a.name] ?? Infinity) - (positions[b.name] ?? Infinity))
201
+ : tools
202
+ }
203
+
204
+ export function getToolLabel(tool: IXpertTool): I18nObject | string {
205
+ if (!tool) return ''
206
+ const identity = (tool.schema as IBuiltinTool)?.identity
207
+ if (identity) {
208
+ return identity.label || tool.name || ''
209
+ }
210
+ return tool.name || ''
211
+ }
@@ -0,0 +1,220 @@
1
+ import { AiProviderRole } from './copilot.model'
2
+ import { TAvatar } from '../types'
3
+ import { IXpertTool, XpertToolType } from './xpert-tool.model'
4
+ import { IBasePerWorkspaceEntityModel } from './xpert-workspace.model'
5
+ import { ITag } from '../tag-entity.model'
6
+ import { TCopilotModel } from './copilot-model.model'
7
+ import { Subscriber } from 'rxjs'
8
+ import { I18nObject } from '../types'
9
+
10
+
11
+ export enum XpertToolsetCategoryEnum {
12
+ BUILTIN = 'builtin',
13
+ API = 'api',
14
+ /**
15
+ * [Anthropic Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction)
16
+ */
17
+ MCP = 'mcp',
18
+ /**
19
+ * @deprecated
20
+ */
21
+ WORKFLOW = 'workflow'
22
+ }
23
+
24
+ export type XpertToolsetType = string
25
+ export type TXpertToolset = {
26
+ key?: string
27
+ /**
28
+ * toolset name
29
+ */
30
+ name: string
31
+ type?: XpertToolsetType
32
+ category?: 'command' | XpertToolsetCategoryEnum
33
+ description?: string
34
+ /**
35
+ * avatar object
36
+ */
37
+ avatar?: TAvatar
38
+ /**
39
+ * Priority role of AI provider
40
+ * @default `AiProviderRole.Secondary`
41
+ */
42
+ aiProviderRole?: AiProviderRole
43
+
44
+ /**
45
+ * Privacy policy of this toolset
46
+ */
47
+ privacyPolicy?: string
48
+ /**
49
+ * Custom disclaimer for the toolset
50
+ */
51
+ customDisclaimer?: string
52
+
53
+ options?: TXpertToolsetOptions
54
+ credentials?: TToolCredentials
55
+ schema?: string
56
+ schemaType?: 'openapi_json' | 'openapi_yaml'
57
+
58
+ tools?: IXpertTool[]
59
+
60
+ tags?: ITag[]
61
+ }
62
+
63
+ /**
64
+ * Toolset for Xpert
65
+ */
66
+ export interface IXpertToolset extends IBasePerWorkspaceEntityModel, TXpertToolset {}
67
+
68
+ export type TXpertToolsetOptions = {
69
+ provider?: IToolProvider
70
+ baseUrl?: string
71
+ toolPositions?: Record<string, number>
72
+ disableToolDefault?: boolean
73
+ needSandbox?: boolean
74
+ [key: string]: any
75
+ }
76
+
77
+ /**
78
+ * Context env when tool call in langchain.js
79
+ */
80
+ export type XpertToolContext = {
81
+ tenantId: string
82
+ organizationId?: string
83
+ userId: string
84
+ copilotModel: TCopilotModel
85
+ chatModel: unknown // BaseChatModel in langchain
86
+ tool_call_id: string
87
+ subscriber: Subscriber<MessageEvent>
88
+ }
89
+
90
+ export enum CredentialsType {
91
+ SECRET_INPUT = 'secret-input',
92
+ TEXT_INPUT = 'text-input',
93
+ SELECT = 'select',
94
+ REMOTE_SELECT = 'remote-select',
95
+ COPILOT_MODEL = 'copilot-model',
96
+ BOOLEAN = 'boolean',
97
+ INT = 'int',
98
+ NUMBER = 'number'
99
+ }
100
+
101
+ export interface ToolCredentialsOption {
102
+ value: string
103
+ label: I18nObject | string
104
+ }
105
+
106
+ export interface ToolProviderCredentials {
107
+ name: string
108
+ type: CredentialsType
109
+ required?: boolean
110
+ default?: number | string
111
+ options?: ToolCredentialsOption[]
112
+ /**
113
+ * Url for fetch remote select options
114
+ */
115
+ selectUrl?: string
116
+ /**
117
+ * Is multiple select
118
+ */
119
+ multi?: boolean
120
+ /**
121
+ * Depends on credentials
122
+ */
123
+ depends?: string[]
124
+ label?: I18nObject
125
+ help?: I18nObject
126
+ /**
127
+ * Url for help document
128
+ */
129
+ url?: string
130
+ placeholder?: I18nObject
131
+ max?: number
132
+ config?: Record<string, any>
133
+ }
134
+
135
+ export enum ApiProviderSchemaType {
136
+ /**
137
+ * Enum class for api provider schema type.
138
+ */
139
+ OPENAPI = "openapi",
140
+ SWAGGER = "swagger",
141
+ OPENAI_PLUGIN = "openai_plugin",
142
+ OPENAI_ACTIONS = "openai_actions"
143
+ }
144
+
145
+ export enum ToolTagEnum {
146
+ SEARCH = 'search',
147
+ IMAGE = 'image',
148
+ VIDEOS = 'videos',
149
+ WEATHER = 'weather',
150
+ FINANCE = 'finance',
151
+ DESIGN = 'design',
152
+ TRAVEL = 'travel',
153
+ SOCIAL = 'social',
154
+ NEWS = 'news',
155
+ MEDICAL = 'medical',
156
+ PRODUCTIVITY = 'productivity',
157
+ EDUCATION = 'education',
158
+ BUSINESS = 'business',
159
+ ENTERTAINMENT = 'entertainment',
160
+ UTILITIES = 'utilities',
161
+ ANALYSIS = 'analysis',
162
+ SANDBOX = 'sandbox',
163
+ PROJECT = 'project',
164
+ AGENT = 'agent',
165
+ OTHER = 'other'
166
+ }
167
+
168
+ export interface IToolTag {
169
+ name: string
170
+ label: I18nObject
171
+ icon: string
172
+ description?: I18nObject
173
+ }
174
+
175
+ export interface IToolProvider {
176
+ not_implemented?: boolean
177
+ pro?: boolean
178
+ id: string;
179
+ author: string;
180
+ name: string; // identifier
181
+ description: I18nObject;
182
+ /**
183
+ * @deprecated use avatar
184
+ */
185
+ icon?: string;
186
+ avatar: TAvatar
187
+ label: I18nObject; // label
188
+ help_url?: string
189
+ type: XpertToolsetCategoryEnum;
190
+ masked_credentials?: Record<string, any>
191
+ original_credentials?: Record<string, any>
192
+ is_team_authorization: boolean
193
+ allow_delete: boolean
194
+ tools?: XpertToolType[]
195
+ tags: ToolTagEnum[];
196
+ }
197
+
198
+ export type TToolCredentials = Record<string, string | number | boolean | any>
199
+
200
+ export type TToolsetParams = {
201
+ tenantId: string
202
+ organizationId?: string
203
+ projectId?: string
204
+ userId?: string
205
+ xpertId?: string
206
+ conversationId?: string
207
+ agentKey?: string
208
+ signal?: AbortSignal
209
+ env: Record<string, unknown>
210
+ }
211
+
212
+ export interface IBaseToolset {
213
+ toolNamePrefix?: string
214
+ }
215
+
216
+ export type TProgramToolMessage = {
217
+ code: string
218
+ output: string
219
+ error?: string
220
+ }
@@ -0,0 +1,71 @@
1
+ export const TASK_DESCRIPTION_PREFIX =
2
+ `Launch a new agent to handle complex, multi-step tasks autonomously.
3
+
4
+ Available agent types and the tools they have access to:`
5
+
6
+ export const TASK_DESCRIPTION_SUFFIX =
7
+ `When using the Task tool, you must specify a subagent_type parameter to select which agent type to use.
8
+
9
+ When to use the Agent tool:
10
+ - When you are instructed to execute custom slash commands. Use the Agent tool with the slash command invocation as the entire prompt. The slash command can take arguments. For example: Task(description="Check the file")
11
+
12
+ When NOT to use the Agent tool:
13
+ - If you want to read a specific file path, use the Read or Glob tool instead of the Agent tool, to find the match more quickly
14
+ - If you are searching for a specific term or definition within a known location, use the Glob tool instead, to find the match more quickly
15
+ - If you are searching for content within a specific file or set of 2-3 files, use the Read tool instead of the Agent tool, to find the match more quickly
16
+ - Other tasks that are not related to the agent descriptions above
17
+
18
+
19
+ Usage notes:
20
+ 1. Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses
21
+ 2. When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
22
+ 3. Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
23
+ 4. The agent's outputs should generally be trusted
24
+ 5. Clearly tell the agent whether you expect it to create content, perform analysis, or just do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent
25
+ 6. If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.
26
+
27
+ Example usage:
28
+
29
+ <example_agent_descriptions>
30
+ "content-reviewer": use this agent after you are done creating significant content or documents
31
+ "greeting-responder": use this agent when to respond to user greetings with a friendly joke
32
+ "research-analyst": use this agent to conduct thorough research on complex topics
33
+ </example_agent_description>
34
+
35
+ <example>
36
+ user: "Please write a function that checks if a number is prime"
37
+ assistant: Sure let me write a function that checks if a number is prime
38
+ assistant: First let me use the Write tool to write a function that checks if a number is prime
39
+ assistant: I'm going to use the Write tool to write the following code:
40
+ <code>
41
+ function isPrime(n) {
42
+ if (n <= 1) return false
43
+ for (let i = 2; i * i <= n; i++) {
44
+ if (n % i === 0) return false
45
+ }
46
+ return true
47
+ }
48
+ </code>
49
+ <commentary>
50
+ Since significant content was created and the task was completed, now use the content-reviewer agent to review the work
51
+ </commentary>
52
+ assistant: Now let me use the content-reviewer agent to review the code
53
+ assistant: Uses the Task tool to launch with the content-reviewer agent
54
+ </example>
55
+
56
+ <example>
57
+ user: "Can you help me research the environmental impact of different renewable energy sources and create a comprehensive report?"
58
+ <commentary>
59
+ This is a complex research task that would benefit from using the research-analyst agent to conduct thorough analysis
60
+ </commentary>
61
+ assistant: I'll help you research the environmental impact of renewable energy sources. Let me use the research-analyst agent to conduct comprehensive research on this topic.
62
+ assistant: Uses the Task tool to launch with the research-analyst agent, providing detailed instructions about what research to conduct and what format the report should take
63
+ </example>
64
+
65
+ <example>
66
+ user: "Hello"
67
+ <commentary>
68
+ Since the user is greeting, use the greeting-responder agent to respond with a friendly joke
69
+ </commentary>
70
+ assistant: "I'm going to use the Task tool to launch with the greeting-responder agent"
71
+ </example>`