@tencentcloud/sdk-mcp 1.0.2 → 1.0.4

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 (115) hide show
  1. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/config.d.ts +14 -14
  2. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/global.d.ts +1 -1
  3. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/index.d.ts +9 -9
  4. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/report-ignore.d.ts +2 -2
  5. package/@tencent/aegis-node-sdk/lib/packages/core/src/core.d.ts +85 -85
  6. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/afterRequestHooks.d.ts +3 -3
  7. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/beforeRequestHooks.d.ts +9 -9
  8. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/modifyRequestHooks.d.ts +3 -3
  9. package/@tencent/aegis-node-sdk/lib/packages/core/src/index.d.ts +9 -9
  10. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/config.d.ts +62 -62
  11. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/env.d.ts +11 -11
  12. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/index.d.ts +4 -4
  13. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/log.d.ts +130 -130
  14. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/send.d.ts +34 -34
  15. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/format.d.ts +2 -2
  16. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/index.d.ts +18 -18
  17. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/length-limit.d.ts +8 -8
  18. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/pv.d.ts +8 -8
  19. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/remove-payload.d.ts +2 -2
  20. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/repeat-limit.d.ts +4 -4
  21. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/report.d.ts +10 -10
  22. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/sample.d.ts +3 -3
  23. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/throttle.d.ts +3 -3
  24. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/index.d.ts +34 -34
  25. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/jwt.d.ts +12 -12
  26. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/ot-js.d.ts +14 -14
  27. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/uuid.d.ts +2 -2
  28. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/whitelist.d.ts +12 -12
  29. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/write-before.d.ts +3 -3
  30. package/@tencent/aegis-node-sdk/lib/packages/core/src/plugin.d.ts +33 -33
  31. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/destroy.d.ts +2 -2
  32. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/event-emitter.d.ts +18 -18
  33. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/index.d.ts +60 -60
  34. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/index.d.ts +15 -15
  35. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/interface/selector.d.ts +5 -5
  36. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/pipes/batch-report-pipe.d.ts +6 -6
  37. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_base.d.ts +18 -18
  38. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_http.d.ts +12 -12
  39. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/ip_selector.d.ts +10 -10
  40. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/polaris_selector.d.ts +20 -20
  41. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/selector_base.d.ts +27 -27
  42. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/util/eval_require.d.ts +2 -2
  43. package/mcp-server-prompt.png +0 -0
  44. package/mcp.json +9 -9
  45. package/package.json +1 -1
  46. package/resource/doc/chatuikit/android/client_api_android.md +1377 -0
  47. package/resource/doc/chatuikit/android/integrate_tuichat_only_android.md +382 -0
  48. package/resource/doc/chatuikit/android/integrate_tuikit_android.md +612 -0
  49. package/resource/doc/chatuikit/android/ui_api_android.md +418 -0
  50. package/resource/doc/chatuikit/faq/freq_qa.md +86 -0
  51. package/resource/doc/chatuikit/faq/sdk_qa.md +117 -0
  52. package/resource/doc/chatuikit/faq/vue_qa.md +344 -0
  53. package/resource/doc/chatuikit/faq/web_qa.md +118 -0
  54. package/resource/doc/chatuikit/flutter/client_api_Flutter.md +939 -0
  55. package/resource/doc/chatuikit/flutter/integrate_tuikit_Flutter.md +1432 -0
  56. package/resource/doc/chatuikit/iOS/client_api_iOS.md +1371 -0
  57. package/resource/doc/chatuikit/iOS/integrate_tuichat_only_iOS.md +993 -0
  58. package/resource/doc/chatuikit/iOS/integrate_tuikit_iOS.md +1427 -0
  59. package/resource/doc/chatuikit/iOS/ui_api_iOS.md +526 -0
  60. package/resource/doc/chatuikit/react/integrate_tuichat_only_react.md +185 -0
  61. package/resource/doc/chatuikit/react/integrate_tuichat_react.md +212 -0
  62. package/resource/doc/chatuikit/vue/integrate_tuichat_only_vue.md +149 -0
  63. package/resource/doc/chatuikit/vue/integrate_tuichat_vue.md +248 -0
  64. package/server.js +57 -33
  65. package/server.js.map +1 -1
  66. package/@tencent/polaris/node_modules/axios/CHANGELOG.md +0 -891
  67. package/@tencent/polaris/node_modules/axios/LICENSE +0 -19
  68. package/@tencent/polaris/node_modules/axios/README.md +0 -908
  69. package/@tencent/polaris/node_modules/axios/SECURITY.md +0 -5
  70. package/@tencent/polaris/node_modules/axios/UPGRADE_GUIDE.md +0 -168
  71. package/@tencent/polaris/node_modules/axios/dist/axios.js +0 -2277
  72. package/@tencent/polaris/node_modules/axios/dist/axios.map +0 -1
  73. package/@tencent/polaris/node_modules/axios/dist/axios.min.js +0 -4
  74. package/@tencent/polaris/node_modules/axios/dist/axios.min.map +0 -1
  75. package/@tencent/polaris/node_modules/axios/index.d.ts +0 -221
  76. package/@tencent/polaris/node_modules/axios/index.js +0 -1
  77. package/@tencent/polaris/node_modules/axios/lib/adapters/README.md +0 -37
  78. package/@tencent/polaris/node_modules/axios/lib/adapters/http.js +0 -388
  79. package/@tencent/polaris/node_modules/axios/lib/adapters/xhr.js +0 -212
  80. package/@tencent/polaris/node_modules/axios/lib/axios.js +0 -57
  81. package/@tencent/polaris/node_modules/axios/lib/cancel/Cancel.js +0 -19
  82. package/@tencent/polaris/node_modules/axios/lib/cancel/CancelToken.js +0 -119
  83. package/@tencent/polaris/node_modules/axios/lib/cancel/isCancel.js +0 -5
  84. package/@tencent/polaris/node_modules/axios/lib/core/Axios.js +0 -155
  85. package/@tencent/polaris/node_modules/axios/lib/core/InterceptorManager.js +0 -54
  86. package/@tencent/polaris/node_modules/axios/lib/core/README.md +0 -8
  87. package/@tencent/polaris/node_modules/axios/lib/core/buildFullPath.js +0 -20
  88. package/@tencent/polaris/node_modules/axios/lib/core/createError.js +0 -18
  89. package/@tencent/polaris/node_modules/axios/lib/core/dispatchRequest.js +0 -87
  90. package/@tencent/polaris/node_modules/axios/lib/core/enhanceError.js +0 -43
  91. package/@tencent/polaris/node_modules/axios/lib/core/mergeConfig.js +0 -99
  92. package/@tencent/polaris/node_modules/axios/lib/core/settle.js +0 -25
  93. package/@tencent/polaris/node_modules/axios/lib/core/transformData.js +0 -22
  94. package/@tencent/polaris/node_modules/axios/lib/defaults.js +0 -134
  95. package/@tencent/polaris/node_modules/axios/lib/env/README.md +0 -3
  96. package/@tencent/polaris/node_modules/axios/lib/env/data.js +0 -3
  97. package/@tencent/polaris/node_modules/axios/lib/helpers/README.md +0 -7
  98. package/@tencent/polaris/node_modules/axios/lib/helpers/bind.js +0 -11
  99. package/@tencent/polaris/node_modules/axios/lib/helpers/buildURL.js +0 -70
  100. package/@tencent/polaris/node_modules/axios/lib/helpers/combineURLs.js +0 -14
  101. package/@tencent/polaris/node_modules/axios/lib/helpers/cookies.js +0 -53
  102. package/@tencent/polaris/node_modules/axios/lib/helpers/deprecatedMethod.js +0 -24
  103. package/@tencent/polaris/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -14
  104. package/@tencent/polaris/node_modules/axios/lib/helpers/isAxiosError.js +0 -13
  105. package/@tencent/polaris/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -68
  106. package/@tencent/polaris/node_modules/axios/lib/helpers/normalizeHeaderName.js +0 -12
  107. package/@tencent/polaris/node_modules/axios/lib/helpers/parseHeaders.js +0 -53
  108. package/@tencent/polaris/node_modules/axios/lib/helpers/spread.js +0 -27
  109. package/@tencent/polaris/node_modules/axios/lib/helpers/toFormData.js +0 -55
  110. package/@tencent/polaris/node_modules/axios/lib/helpers/validator.js +0 -82
  111. package/@tencent/polaris/node_modules/axios/lib/utils.js +0 -349
  112. package/@tencent/polaris/node_modules/axios/package.json +0 -86
  113. package/@tencent/polaris/node_modules/axios/tsconfig.json +0 -14
  114. package/@tencent/polaris/node_modules/axios/tslint.json +0 -6
  115. package/resource/doc/tuicallkit/vue/api_TUICallObserver.md +0 -926
@@ -0,0 +1,248 @@
1
+ ## chat-uikit-vue3 介绍
2
+
3
+ chat-uikit-vue3 是基于腾讯云 Chat SDK 的一款 vue3 UI 组件库,它提供了一些通用的 UI 组件,包含会话、聊天、群组等功能。基于这些精心设计的 UI 组件,您可以快速构建优雅的、可靠的、可扩展的 Chat 应用。 chat-uikit-vue3 界面效果如下图所示:
4
+
5
+ 您可以在线体验:[Web Demo](https://web.sdk.qcloud.com/im/demo/react/index.html?scene=social)
6
+
7
+ **TUIKit Web 端**界面效果如下图所示:
8
+
9
+
10
+
11
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/448b9f3a822511f0840d525400454e06.png)
12
+
13
+
14
+ **TUIKit H5 端**界面效果如下图所示:
15
+
16
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/dbb524d6822511f0840d525400454e06.png)
17
+
18
+
19
+ ## 开发环境要求
20
+ - vue3
21
+
22
+ - TypeScript
23
+
24
+ - node(node.js ≥ 16.0.0)
25
+
26
+ - npm(版本请与 node 版本匹配)
27
+
28
+
29
+ ## chat-uikit-vue3 集成
30
+
31
+ ### 步骤1:创建项目
32
+ 1. 创建一个新的名称为 **chat-example** 的 Vue3 项目,您可自行选择是否需要使用 ts 模板。
33
+
34
+
35
+
36
+ 【shell】
37
+ ``` bash
38
+ npm create vite@latest
39
+ ```
40
+ 2. 创建项目完成后,切换到项目所在目录。
41
+
42
+
43
+
44
+ 【shell】
45
+ ``` bash
46
+ cd chat-example
47
+ npm install
48
+ ```
49
+
50
+ ### 步骤2:下载 chat-uikit-vue3 组件
51
+
52
+
53
+ 【shell】
54
+ ``` bash
55
+ npm i @tencentcloud/chat-uikit-vue3
56
+ ```
57
+
58
+ ### 步骤3:引入 chat-uikit-vue3 组件
59
+
60
+ > **注意:**
61
+ >
62
+ > - 以下代码中未填入 `SDKAppID`、`userID` 和 `userSig`,需在 [步骤4](https://write.woa.com/#step4) 中获取相关信息后进行替换。
63
+ > - 为了尊重表情符号设计的版权,Demo/UIKit 项目不包括大型表情元素的剪切图。请在正式商业发布之前,用您自己设计或拥有版权的表情包替换它们。默认的小黄脸表情包由腾讯云拥有版权,并可以收费授权。如果您希望获得授权,请提交工单与我们联系。
64
+
65
+ ``` typescript
66
+ <template>
67
+ <UIKitProvider>
68
+ <div class="chat-layout">
69
+ <div class="sidebar" style="width: 300px;">
70
+ <div class="tab-header">
71
+ <button
72
+ :class="['tab-button', { active: activeTab === 'conversations' }]"
73
+ @click="activeTab = 'conversations'"
74
+ >
75
+ 会话
76
+ </button>
77
+ <button
78
+ :class="['tab-button', { active: activeTab === 'contacts' }]"
79
+ @click="activeTab = 'contacts'"
80
+ >
81
+ 联系人
82
+ </button>
83
+ </div>
84
+
85
+ <div class="tab-content">
86
+ <ConversationList v-if="activeTab === 'conversations'" />
87
+ <ContactList v-else />
88
+ </div>
89
+ </div>
90
+
91
+ <Chat style="flex: 1;" v-if="activeTab === 'conversations'">
92
+ <ChatHeader />
93
+ <MessageList />
94
+ <MessageInput />
95
+ </Chat>
96
+ <ContactInfo v-else style="flex: 1;" @send-message="handleSendMessage" />
97
+ </div>
98
+ </UIKitProvider>
99
+ </template>
100
+
101
+ <script setup lang="ts">
102
+ import { ref } from 'vue';
103
+ import {
104
+ ConversationList,
105
+ Chat,
106
+ MessageList,
107
+ MessageInput,
108
+ ChatHeader,
109
+ ContactList,
110
+ ContactInfo,
111
+ UIKitProvider,
112
+ useLoginState,
113
+ } from '@tencentcloud/chat-uikit-vue3';
114
+
115
+ const config = {
116
+ sdkAppId : 0, // SDKAppID, 可以参考步骤 4 获取
117
+ userId: 'xxx', // UserID, 可以参考步骤 4 获取
118
+ userSig: 'xxx', // userSig, 可以参考步骤 4 获取
119
+ }
120
+
121
+ const { login } = useLoginState();
122
+ const activeTab = ref<'conversations' | 'contacts'>('conversations');
123
+
124
+ login({
125
+ ...config,
126
+ useUploadPlugin: true
127
+ })
128
+ .then(() => {})
129
+ .catch(() => {});
130
+ const handleSendMessage = () => {
131
+ activeTab.value = 'conversations';
132
+ }
133
+ </script>
134
+
135
+ <style scoped>
136
+ .chat-layout {
137
+ width: 100vw;
138
+ height: 100vh;
139
+ display: flex;
140
+ }
141
+
142
+ .sidebar {
143
+ display: flex;
144
+ flex-direction: column;
145
+ border-right: 1px solid #e5e7eb;
146
+ }
147
+
148
+ .tab-header {
149
+ display: flex;
150
+ border-bottom: 1px solid #e5e7eb;
151
+ }
152
+
153
+ .tab-button {
154
+ flex: 1;
155
+ padding: 12px 16px;
156
+ background: none;
157
+ border: none;
158
+ cursor: pointer;
159
+ font-size: 14px;
160
+ color: #6b7280;
161
+ transition: all 0.2s;
162
+ }
163
+
164
+ .tab-button.active {
165
+ color: #3b82f6;
166
+ background-color: #eff6ff;
167
+ border-bottom: 2px solid #3b82f6;
168
+ }
169
+
170
+ .tab-content {
171
+ flex: 1;
172
+ overflow: hidden;
173
+ }
174
+ </style>
175
+ ```
176
+
177
+ ### 步骤4:获取 SDKAppID、userID 和 userSig
178
+ - SDKAppID:SDKAppID 是腾讯云 IM 服务区分客户账号的唯一标识。我们建议每一个独立的 App 都申请一个新的 SDKAppID。不同 SDKAppID 之间的消息是天然隔离的,不能互通。
179
+
180
+
181
+ 您可以在 [即时通信 IM 控制台](https://console.cloud.tencent.com/im) 查看所有的 SDKAppID,单击**创建新应用**,可以创建新的 SDKAppID。
182
+
183
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/2572e2a350d311f0adb15254005ef0f7.png)
184
+
185
+ - userID:可通过单击 [ 即时通信 IM 控制台 -【账号管理】](https://console.cloud.tencent.com/im/account-management),切换至目标应用所在账号,即可创建账号并获取 userID。
186
+
187
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/2568297950d311f0a6ac525400bf7822.png)
188
+
189
+ - userSig:可单击 [ 即时通信 IM 控制台 > 开发工具 > UserSig生成&校验](https://console.cloud.tencent.com/im/tool-usersig),填写创建的 userID,即可生成 userSig。
190
+
191
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/2576e73950d311f0abce52540099c741.png)
192
+
193
+
194
+ ### 步骤5:启动项目
195
+
196
+
197
+ 【shell】
198
+ ``` bash
199
+ npm run dev
200
+ ```
201
+
202
+ > **注意:**
203
+ >
204
+ > 1. 请确保 [步骤3](https://write.woa.com/#step3) 代码中 SDKAppID、userID 和 userSig 均已成功替换,如未替换将会导致项目表现异常。
205
+ > 2. userID 和 userSig 为一一对应关系,具体参见 生成 UserSig。
206
+ > 3. 如遇到项目启动失败,请检查 开发环境要求 是否满足。
207
+
208
+
209
+ ### 步骤6:发送您的第一条消息
210
+ 1. 项目启动成功后,切换到联系人,点击添加好友。
211
+
212
+ 2. 在输入框中搜索另一个用户的 userID(参考:[步骤4 -> 创建账号并获取 `userID`](https://write.woa.com/#step4))。
213
+
214
+ 3. 添加好友成功后,打开好友列表,发送消息。
215
+
216
+ 4. 在输入框输入消息,按下 **enter **键发送。
217
+
218
+
219
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/afaf6aa6822711f08aa952540099c741.gif)
220
+
221
+
222
+ ## 常见问题
223
+
224
+ #### 什么是 UserSig?
225
+
226
+ UserSig 是用户登录即时通信 IM 的密码,其本质是对 UserID 等信息加密后得到的密文。
227
+
228
+ #### 如何生成 UserSig?
229
+
230
+ UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向项目的接口,在需要 UserSig 时由您的项目向业务服务器发起请求获取动态 UserSig。更多详情请参见 [服务端生成 UserSig](https://cloud.tencent.com/document/product/269/32688)。
231
+
232
+ > **注意:**
233
+ >
234
+
235
+ > 本文示例代码采用的获取 UserSig 的方案是在客户端代码中配置 SECRETKEY,该方法中 SECRETKEY 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此**该方法仅适合本地跑通功能调试**。 正确的 UserSig 签发方式请参见上文。
236
+ >
237
+
238
+
239
+ ## 相关文档
240
+ - [chat-uikit-vue3 npm](https://www.npmjs.com/package/@tencentcloud/chat-uikit-vue3)
241
+
242
+ - [github Demo](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/demos/rtcube-vite-vue3)
243
+
244
+
245
+ ## 交流与反馈
246
+
247
+ 如遇任何问题,可联系 [官网售后](https://cloud.tencent.com/act/event/connect-service#/) 反馈,享有专业工程师的支持,解决您的难题。
248
+
package/server.js CHANGED
@@ -21,66 +21,90 @@ function createServer() {
21
21
  });
22
22
  const framework = ['vue', 'react', 'flutter', 'android', 'ios'];
23
23
  const toolDefinitions = {
24
- 'read_tuicallkit_integrete_docs': {
25
- name: 'read_tuicallkit_integrete_docs',
26
- description: '根据输入的开发框架,读取 TUICallKit 对应框架的文档',
24
+ 'read_tuicallkit_integrate_docs': {
25
+ name: 'read_tuicallkit_integrate_docs',
26
+ description: 'Refer to the TUICallKit integration documentation corresponding to the input development framework.',
27
27
  parameters: {
28
28
  // @ts-ignore
29
- framework: zod_1.z.enum(framework).optional().default('vue').describe('开发框架名称 (如: flutter, vue, react, android)'),
29
+ framework: zod_1.z.enum(framework).optional().default('vue').describe('Development framework name (e.g., flutter, vue, react, android)'),
30
30
  // @ts-ignore
31
- sdkAppId: zod_1.z.string().describe('您的应用 sdkAppId'),
31
+ sdkAppId: zod_1.z.string().describe("Your application's SDKAppID."),
32
32
  // @ts-ignore
33
- secretKey: zod_1.z.string().describe('您的应用 sdkAppId 对应的 secretKey'),
33
+ secretKey: zod_1.z.string().describe("The SecretKey corresponding to your application's SDKAppID."),
34
34
  },
35
35
  },
36
36
  'read_tuicallkit_faq_docs': {
37
37
  name: 'read_tuicallkit_faq_docs',
38
- description: '请输入您在使用 tuicallkit 遇到的问题!',
38
+ description: 'Please enter any issues you encountered while using TUICallKit.',
39
39
  parameters: {
40
40
  // @ts-ignore
41
- question: zod_1.z.string().describe('请描述你的问题'),
41
+ question: zod_1.z.string().describe('Please describe your issue.'),
42
42
  // @ts-ignore
43
- sdkAppId: zod_1.z.string().describe('您的应用 sdkAppId'),
43
+ sdkAppId: zod_1.z.string().describe("Your application's SDKAppID."),
44
+ },
45
+ },
46
+ 'read_chatuikit_integrate_docs': {
47
+ name: 'read_chatuikit_integrate_docs',
48
+ description: 'Refer to the ChatUIKit integration documentation corresponding to the input development framework.',
49
+ parameters: {
50
+ // @ts-ignore
51
+ framework: zod_1.z.enum(framework).optional().default('vue').describe('Development framework name (e.g., flutter, vue, react, android)'),
52
+ // @ts-ignore
53
+ sdkAppId: zod_1.z.string().describe("Your application's SDKAppID."),
54
+ // @ts-ignore
55
+ secretKey: zod_1.z.string().describe("The SecretKey corresponding to your application's SDKAppID."),
56
+ },
57
+ },
58
+ 'read_chatuikit_faq_docs': {
59
+ name: 'read_chatuikit_faq_docs',
60
+ description: 'Please enter any issues you encountered while using ChatUIKit.',
61
+ parameters: {
62
+ // @ts-ignore
63
+ question: zod_1.z.string().describe('Please describe your issue.'),
64
+ // @ts-ignore
65
+ sdkAppId: zod_1.z.string().describe("Your application's SDKAppID."),
44
66
  },
45
67
  },
46
68
  };
47
- const readLocalIntegrateDocsHandler = async ({ framework, sdkAppId, secretKey }) => {
48
- if (!framework) {
49
- throw new Error("框架名称是必需的");
50
- }
69
+ const readDocsWithConfig = async (docType, reportName, path, sdkAppId, reportExt2) => {
51
70
  try {
52
- aegis.report({ name: 'TUICallKitIntegrateMCP', ext1: sdkAppId, ext2: framework });
53
- const content = await readResourcesFiles(framework);
71
+ aegis.report({ name: reportName, ext1: sdkAppId, ext2: reportExt2 });
72
+ const content = await readResourcesFiles(path);
54
73
  return content;
55
74
  }
56
75
  catch (error) {
57
76
  return {
58
77
  content: [{
59
78
  type: "text",
60
- text: `读取文档时发生错误: ${error instanceof Error ? error.message : String(error)}`,
61
- }],
79
+ text: `An error occurred when reading ${docType} document: ${error instanceof Error ? error.message : String(error)}`,
80
+ }]
62
81
  };
63
82
  }
64
83
  };
65
- const readLocalResoureFaqHandler = async ({ question, sdkAppId }) => {
66
- try {
67
- aegis.report({ name: 'TUICallKitFAQMCP', ext1: sdkAppId, ext2: question });
68
- const content = await readResourcesFiles('FAQ');
69
- return content;
84
+ const readTUICallKitLocalIntegrateDocsHandler = async ({ framework, sdkAppId, secretKey }) => {
85
+ if (!framework) {
86
+ throw new Error("The framework name is required.");
70
87
  }
71
- catch (error) {
72
- return {
73
- content: [{
74
- type: "text",
75
- text: `读取文档时发生错误: ${error instanceof Error ? error.message : String(error)}`,
76
- }],
77
- };
88
+ return readDocsWithConfig("TUICallKit", "TUICallKitIntegrateTool", `tuicallkit/${framework}`, sdkAppId, framework);
89
+ };
90
+ const readTUICallKitResoureFaqHandler = async ({ question, sdkAppId }) => {
91
+ return readDocsWithConfig("TUICallKit", "TUICallKitFAQTool", "tuicallkit/FAQ", sdkAppId, question);
92
+ };
93
+ const readChatUIKitLocalIntegrateDocsHandler = async ({ framework, sdkAppId, secretKey }) => {
94
+ if (!framework) {
95
+ throw new Error("The framework name is required.");
78
96
  }
97
+ return readDocsWithConfig('ChatUIKit', 'ChatUIKitIntegrateTool', `chatuikit/${framework}`, sdkAppId, framework);
98
+ };
99
+ const readChatUIKitResoureFaqHandler = async ({ question, sdkAppId }) => {
100
+ return readDocsWithConfig("ChatUIKit", "ChatUIKitFAQTool", "chatuikit/FAQ", sdkAppId, question);
79
101
  };
80
102
  // Define the handler for read_tencent_callkit_docs
81
103
  const toolHandlers = {
82
- 'read_tuicallkit_integrete_docs': readLocalIntegrateDocsHandler,
83
- 'read_tuicallkit_faq_docs': readLocalResoureFaqHandler,
104
+ 'read_tuicallkit_integrate_docs': readTUICallKitLocalIntegrateDocsHandler,
105
+ 'read_tuicallkit_faq_docs': readTUICallKitResoureFaqHandler,
106
+ 'read_chatuikit_integrate_docs': readChatUIKitLocalIntegrateDocsHandler,
107
+ 'read_chatuikit_faq_docs': readChatUIKitResoureFaqHandler,
84
108
  };
85
109
  // Helper function to register all tools to a server instance
86
110
  function registerAllTools(serverInstance) {
@@ -98,7 +122,7 @@ function createServer() {
98
122
  // 读取 resources 某个 framework 下所有的 md 文档内容并返回
99
123
  async function readResourcesFiles(framework) {
100
124
  // 构建文档目录路径
101
- const docPath = path_1.default.join(__dirname, 'resource', 'doc', 'tuicallkit', framework.toLowerCase());
125
+ const docPath = path_1.default.join(__dirname, 'resource', 'doc', framework.toLowerCase());
102
126
  // 检查目录是否存在
103
127
  const stats = await fs_1.promises.stat(docPath);
104
128
  if (!stats.isDirectory()) {
@@ -125,7 +149,7 @@ async function readResourcesFiles(framework) {
125
149
  return {
126
150
  content: [{
127
151
  type: "text",
128
- text: `# TUICallKit ${framework} 的开发文档\n${documentContent}`,
152
+ text: `# ${framework} 的开发文档\n${documentContent}`,
129
153
  }],
130
154
  };
131
155
  }
package/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}