@tencentcloud/sdk-mcp 1.3.0 → 1.3.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.
- package/package.json +2 -2
- package/resource/doc/chatuikit/react/integration.md +516 -48
- package/resource/doc/chatuikit/react/workflow.md +254 -0
- package/resource/doc/chatuikit/uniapp-app/faq.md +0 -0
- package/resource/doc/chatuikit/uniapp-app/integration.md +619 -0
- package/resource/doc/chatuikit/uniapp-app/workflow.md +576 -0
- package/resource/doc/chatuikit/vue/integration.md +511 -129
- package/resource/doc/chatuikit/vue/workflow.md +395 -0
- package/tools/chat/get-web-chat-integration.js +31 -14
- package/tools/chat/get-web-chat-integration.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +18 -11
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/present_framework_choice_def.js +1 -1
- package/tools/definitions/record_result_def.js +1 -1
- package/tools/definitions/record_result_def.js.map +1 -1
- package/tools/index.js +0 -2
- package/tools/index.js.map +1 -1
- package/tools/live/get-web-live-uikit-integration.js +1 -1
- package/utils/generate-structured-result.js +2 -2
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/chatuikit/react/chat_window_integration.md +0 -83
- package/resource/doc/chatuikit/vue/chat_window_integration.md +0 -131
- package/tools/chat/get-web-chat-window-integration.js +0 -28
- package/tools/chat/get-web-chat-window-integration.js.map +0 -1
- package/tools/definitions/get_web_chat_window_integration_def.js +0 -26
- package/tools/definitions/get_web_chat_window_integration_def.js.map +0 -1
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
# Vue Chat TUIKit 代码生成工作流指令
|
|
2
|
+
|
|
3
|
+
## 📋 指令目的
|
|
4
|
+
|
|
5
|
+
为 Agent 提供实现 Vue Chat TUIKit **核心功能的代码生成蓝图**,并指导 Agent **优先使用工具实时获取的最新文档内容**,专门针对 Vue3 Web 应用场景。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🛑 Agent 执行硬性限制 (Guardrails)
|
|
10
|
+
|
|
11
|
+
Agent 在生成代码时必须严格遵守以下指令:
|
|
12
|
+
|
|
13
|
+
### 1. 文档驱动集成
|
|
14
|
+
- 必须严格按照工具返回结果中的 `llm_code_generation_instructions_md` 步骤执行
|
|
15
|
+
- **必须严格按照集成文档中的示例代码生成代码**,不得擅自修改代码结构和实现方式
|
|
16
|
+
- 代码生成时应完全遵循集成文档提供的最佳实践和示例,确保代码的正确性和可运行性
|
|
17
|
+
|
|
18
|
+
### 2. CSS 样式强制规范 🔴
|
|
19
|
+
- **必须严格按照集成文档中的完整 CSS 样式代码生成**,包括:
|
|
20
|
+
- 官方 CSS 类名(如 `.chat-layout`、`.chat-content-panel` 等)
|
|
21
|
+
- 官方 CSS 变量定义(如 `--bg-color-operate`、`--stroke-color-primary` 等)
|
|
22
|
+
- 官方布局结构和样式属性
|
|
23
|
+
- 官方 `#app` 样式配置
|
|
24
|
+
- **禁止创建任何自定义样式类名或修改官方样式**
|
|
25
|
+
- 所有样式代码必须从集成文档中完整复制,不得修改
|
|
26
|
+
|
|
27
|
+
### 3. 静默执行集成 🔥
|
|
28
|
+
**CRITICAL**: 所有代码编写完成后,必须在最后一步自动安装依赖并启动项目,无需等待用户确认。
|
|
29
|
+
|
|
30
|
+
**强制执行要求**:
|
|
31
|
+
- **禁止询问**: 不得询问用户是否需要启动项目
|
|
32
|
+
- **禁止等待**: 不得等待用户手动执行启动命令
|
|
33
|
+
- **必须自动**: 代码完成后必须立即执行集成步骤
|
|
34
|
+
- **批量执行**: 安装依赖和启动命令必须在同一个 execute_command 调用中完成
|
|
35
|
+
|
|
36
|
+
**标准执行命令**:
|
|
37
|
+
```bash
|
|
38
|
+
cd [项目路径] && npm install && npm run dev
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 4. 零外部配置
|
|
42
|
+
- 禁止自动创建任何 `config.js` 或 `.env` 文件
|
|
43
|
+
- SDKAppID、UserID 和 UserSig 等关键凭证必须直接注入到代码变量中
|
|
44
|
+
|
|
45
|
+
### 5. 自动获取鉴权凭据
|
|
46
|
+
- 必须调用 `get_usersig` 工具获取测试凭证,禁止要求用户手动输入
|
|
47
|
+
- UserID 生成应保持简洁(禁止拼接动态时间戳以防逻辑出错)
|
|
48
|
+
|
|
49
|
+
### 6. 默认激活会话
|
|
50
|
+
- 集成逻辑必须包含 `setActiveConversation` 调用
|
|
51
|
+
- 默认打开 `C2Cadministrator` 会话
|
|
52
|
+
|
|
53
|
+
### 7. Vue3 组合式 API
|
|
54
|
+
- 优先使用 `<script setup>` 语法
|
|
55
|
+
- 使用 Vue3 Composition API(ref、reactive、computed 等)
|
|
56
|
+
- 正确引入和使用 TUIKit 组件
|
|
57
|
+
|
|
58
|
+
### 8. chat-only 模式功能限制(⚠️ 默认约束 + 用户主动要求时的例外)
|
|
59
|
+
|
|
60
|
+
**默认行为**:
|
|
61
|
+
当用户选择 chat-only 模式时,Agent **默认排除**以下扩展功能:
|
|
62
|
+
- **默认不集成 Sidebar**(侧边栏)
|
|
63
|
+
- **默认不集成 ChatSetting**(聊天设置)
|
|
64
|
+
- **默认不集成会话内搜索功能**
|
|
65
|
+
- **默认不集成 ConversationList**(会话列表)
|
|
66
|
+
- **默认仅保留核心聊天组件**:`Chat`、`MessageList`、`ChatHeader`、`MessageInput`
|
|
67
|
+
|
|
68
|
+
**例外处理**:
|
|
69
|
+
如果用户**明确要求**添加某些扩展功能(如"需要 ChatSetting"、"要集成搜索"等),Agent **应该允许并执行**:
|
|
70
|
+
- ✅ 在核心聊天组件基础上,额外集成用户明确要求的功能
|
|
71
|
+
- ✅ 只添加用户明确要求的功能,不擅自扩展其他功能
|
|
72
|
+
- ✅ 按照集成文档的规范正确集成所需组件
|
|
73
|
+
|
|
74
|
+
**判断标准**:
|
|
75
|
+
- 用户需求中包含明确的功能关键词(如"ChatSetting"、"搜索"、"设置"、"侧边栏"等)
|
|
76
|
+
- 用户明确说明需要某个扩展功能
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 📦 TUIKit 版本与依赖自动化
|
|
81
|
+
|
|
82
|
+
Agent 生成代码后,必须自动执行以下依赖链:
|
|
83
|
+
|
|
84
|
+
### 1. 核心依赖版本推荐
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"@tencentcloud/chat-uikit-vue3": "latest",
|
|
89
|
+
"@tencentcloud/call-uikit-vue": "latest"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 2. 构建环境补丁 (Vite/esbuild)
|
|
94
|
+
|
|
95
|
+
若检测到 Vite 项目,Agent 必须在 `package.json` 自动增加补丁配置以兼容 esbuild-wasm:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"overrides": {
|
|
100
|
+
"esbuild": "npm:esbuild-wasm@latest"
|
|
101
|
+
},
|
|
102
|
+
"resolutions": {
|
|
103
|
+
"esbuild": "npm:esbuild-wasm@latest"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 📦 Vue3 TUIKit 组件说明
|
|
111
|
+
|
|
112
|
+
Agent 在生成代码时,必须了解并正确使用以下 Vue3 组件:
|
|
113
|
+
|
|
114
|
+
| 组件名称 | 说明 | 使用场景 |
|
|
115
|
+
|---------|------|---------|
|
|
116
|
+
| `ConversationList` | 会话列表组件 | full-featured 模式,显示所有会话 |
|
|
117
|
+
| `Chat` | 会话的容器组件 | 所有模式,聊天主容器 |
|
|
118
|
+
| `MessageList` | 会话的消息列表组件 | 显示聊天消息记录 |
|
|
119
|
+
| `ChatHeader` | 会话的头部信息组件 | 显示会话标题、成员信息等 |
|
|
120
|
+
| `MessageInput` | 输入框组件 | 消息输入和发送 |
|
|
121
|
+
| `ChatSetting` | 单聊和群聊的管理组件 | 会话设置、群管理等 |
|
|
122
|
+
| `Search` | 云端搜索组件 | 搜索消息、联系人等 |
|
|
123
|
+
| `ContactList` | 联系人组件 | full-featured 模式,通讯录功能 |
|
|
124
|
+
|
|
125
|
+
**重要提示**:
|
|
126
|
+
- Agent 必须严格按照集成文档中的组件名称和用法生成代码
|
|
127
|
+
- 不要自行创造或修改组件名称
|
|
128
|
+
- 组件的具体使用方式以工具返回的集成文档为准
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 🛠️ 集成模式分发 (Goals)
|
|
133
|
+
|
|
134
|
+
根据用户的需求,Agent 必须选择对应的执行路径:
|
|
135
|
+
|
|
136
|
+
### 1. 全量功能集成 (full-featured)
|
|
137
|
+
|
|
138
|
+
**目标**: 实现类似微信的完整 IM 应用
|
|
139
|
+
|
|
140
|
+
**核心组件**:
|
|
141
|
+
- `ConversationList` (会话列表)
|
|
142
|
+
- `Chat` (聊天容器)
|
|
143
|
+
- `ContactList` (通讯录)
|
|
144
|
+
- `Search` (云端搜索)
|
|
145
|
+
|
|
146
|
+
**执行参考**:
|
|
147
|
+
- 参考工具返回结果中实时获取的 `integration.md` 指令
|
|
148
|
+
|
|
149
|
+
**适用场景**:
|
|
150
|
+
- 构建独立的聊天应用
|
|
151
|
+
- 需要完整的会话管理、通讯录、群组管理功能
|
|
152
|
+
- 作为 Web 应用的核心功能模块
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### 2. 仅集成聊天窗口 (chat-only)
|
|
157
|
+
|
|
158
|
+
**目标**: 适用于客服、问诊、详情页私聊等纯对话场景
|
|
159
|
+
|
|
160
|
+
**核心组件**:
|
|
161
|
+
- `Chat` (聊天容器)
|
|
162
|
+
- `MessageList` (消息列表)
|
|
163
|
+
- `ChatHeader` (聊天头部)
|
|
164
|
+
- `MessageInput` (输入框)
|
|
165
|
+
|
|
166
|
+
**执行参考**:
|
|
167
|
+
- 参考工具返回结果中实时获取的 `integration.md` 指令
|
|
168
|
+
|
|
169
|
+
**适用场景**:
|
|
170
|
+
- 客服咨询场景(用户点击咨询按钮进入聊天页面)
|
|
171
|
+
- 医疗在线问诊(患者与医生一对一沟通)
|
|
172
|
+
- 订单详情页私聊(买家与卖家沟通)
|
|
173
|
+
- 社交应用中的私信功能
|
|
174
|
+
|
|
175
|
+
**🔴 默认排除功能(Agent 必须遵守)**:
|
|
176
|
+
|
|
177
|
+
Agent 在生成 chat-only 模式代码时,**默认排除**以下功能和组件:
|
|
178
|
+
|
|
179
|
+
1. **默认不集成 Sidebar(侧边栏)**
|
|
180
|
+
- 默认不生成任何侧边栏相关代码
|
|
181
|
+
- 默认不引入会话列表、通讯录等侧边栏组件
|
|
182
|
+
- 聊天窗口默认应该是独立的、无侧边栏的纯聊天界面
|
|
183
|
+
|
|
184
|
+
2. **默认不集成 ChatSetting(聊天设置)**
|
|
185
|
+
- 默认不生成会话设置、群管理等功能
|
|
186
|
+
- 默认不在 ChatHeader 右侧添加设置按钮
|
|
187
|
+
- 默认不引入 ChatSetting 组件
|
|
188
|
+
|
|
189
|
+
3. **默认不集成会话内搜索功能**
|
|
190
|
+
- 默认不添加消息搜索功能
|
|
191
|
+
- 默认不在聊天界面添加搜索入口
|
|
192
|
+
- 默认不引入 Search 组件
|
|
193
|
+
|
|
194
|
+
4. **默认不集成会话列表(ConversationList)**
|
|
195
|
+
- chat-only 模式下,用户通过外部路由/参数指定会话 ID
|
|
196
|
+
- 默认不需要会话切换功能
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
**⚠️ 用户主动要求时的例外处理**:
|
|
201
|
+
|
|
202
|
+
如果用户在 chat-only 模式下**明确要求**添加某些扩展功能,Agent **应该允许并执行**:
|
|
203
|
+
|
|
204
|
+
**触发条件**(满足任一即可):
|
|
205
|
+
- 用户明确说明:"需要 ChatSetting"、"要集成聊天设置"、"添加会话设置功能"
|
|
206
|
+
- 用户明确说明:"需要 Search"、"要添加搜索功能"、"集成会话内搜索"
|
|
207
|
+
- 用户明确说明:"需要 Sidebar"、"要添加侧边栏"
|
|
208
|
+
- 用户明确提出其他扩展功能需求
|
|
209
|
+
|
|
210
|
+
**Agent 执行流程**:
|
|
211
|
+
1. ✅ **确认用户需求**:识别到用户主动要求添加扩展功能
|
|
212
|
+
2. ✅ **允许集成**:在 chat-only 模式基础上,额外集成用户要求的组件
|
|
213
|
+
3. ✅ **保持克制**:只添加用户明确要求的功能,不擅自扩展其他功能
|
|
214
|
+
4. ✅ **遵循文档**:按照集成文档的规范正确集成所需组件
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 📞 扩展功能:音视频通话 (TUICallKit)
|
|
219
|
+
|
|
220
|
+
若需求中包含"通话"或"视频"功能,Agent 必须执行:
|
|
221
|
+
|
|
222
|
+
### 组件挂载
|
|
223
|
+
- 使用 `Teleport` 将 TUICallKit 组件挂载到 body
|
|
224
|
+
|
|
225
|
+
### 交互注入
|
|
226
|
+
|
|
227
|
+
**在 ChatHeader 组件的右侧插槽注入通话按钮**:
|
|
228
|
+
- 图标: 电话、摄像机等
|
|
229
|
+
- 组件使用方式参考集成文档
|
|
230
|
+
|
|
231
|
+
**单聊逻辑**:
|
|
232
|
+
- 通过 `TUICallKitServer.call` 发起通话
|
|
233
|
+
- UserID 自动取自当前激活会话
|
|
234
|
+
|
|
235
|
+
**群聊逻辑**:
|
|
236
|
+
- 需集成成员选择组件
|
|
237
|
+
- 引导用户选择群成员后再发起通话
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## ✍️ Agent 代码生成示例指令 (Prompts)
|
|
242
|
+
|
|
243
|
+
当 Agent 开始编写代码时,应遵循以下语义逻辑:
|
|
244
|
+
|
|
245
|
+
**全量功能集成 (full-featured)**:
|
|
246
|
+
> "按照 `full-featured` 模式,为我生成一个 Vue3 TUIKit 集成页面。请自动配置 `C2Cadministrator` 默认激活会话,并注入由 `get_usersig` 工具获取的凭据。禁止创建 config 文件。**🔴 重要:必须严格按照集成文档中的完整 CSS 样式代码生成,禁止任何自定义或修改。**"
|
|
247
|
+
|
|
248
|
+
**仅聊天窗口集成 (chat-only)**:
|
|
249
|
+
> "按照 `chat-only` 模式,为我生成一个 Vue3 TUIKit 聊天窗口。请自动配置 `C2Cadministrator` 默认激活会话,并注入由 `get_usersig` 工具获取的凭据。禁止创建 config 文件。**严格排除 Sidebar、ChatSetting、会话内搜索等功能,仅保留核心聊天组件。🔴 重要:必须严格按照集成文档中的完整 CSS 样式代码生成,禁止任何自定义样式。**"
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 📝 关键要点总结
|
|
254
|
+
|
|
255
|
+
| 类别 | 要求 |
|
|
256
|
+
|------|------|
|
|
257
|
+
| **框架版本** | 专门针对 Vue3 项目 |
|
|
258
|
+
| **文档优先** | 严格遵循工具返回的最新文档指令 |
|
|
259
|
+
| **🔴 CSS 样式** | **严格按照集成文档 CSS,禁止任何自定义或修改** |
|
|
260
|
+
| **静默集成** | 代码编写完成后自动安装依赖并启动开发服务器 |
|
|
261
|
+
| **凭证注入** | 自动调用 `get_usersig`,直接注入代码 |
|
|
262
|
+
| **默认会话** | 自动激活 `C2Cadministrator` 会话 |
|
|
263
|
+
| **依赖管理** | 自动检测并安装所需依赖包 |
|
|
264
|
+
| **构建工具** | Vite 项目需添加 esbuild-wasm 补丁配置 |
|
|
265
|
+
| **集成模式** | 支持 full-featured(全量)和 chat-only(仅聊天)两种模式 |
|
|
266
|
+
| **chat-only 限制** | ⚠️ 默认排除 Sidebar、ChatSetting、搜索功能;用户主动要求时允许集成 |
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## 🎯 Agent 执行检查清单
|
|
271
|
+
|
|
272
|
+
在完成代码生成后,Agent 必须确认以下所有项目:
|
|
273
|
+
|
|
274
|
+
### 项目初始化
|
|
275
|
+
- [ ] 已创建 Vue3 项目或在现有项目中集成
|
|
276
|
+
- [ ] 已安装 `@tencentcloud/chat-uikit-vue3` 依赖
|
|
277
|
+
- [ ] 如果需要音视频通话,已安装 `@tencentcloud/call-uikit-vue`
|
|
278
|
+
- [ ] 如果是 Vite 项目,已添加 esbuild-wasm 补丁配置
|
|
279
|
+
|
|
280
|
+
### 代码生成
|
|
281
|
+
- [ ] 已在 main.js 中正确注册 TUIKit 组件
|
|
282
|
+
- [ ] 已创建主聊天容器组件(ChatContainer.vue 或类似)
|
|
283
|
+
- [ ] 组件使用了 `<script setup>` 语法
|
|
284
|
+
- [ ] 🔴 **CSS 样式严格合规**:
|
|
285
|
+
- [ ] 已从集成文档中完整获取所有 CSS 样式代码
|
|
286
|
+
- [ ] 已使用集成文档中的官方类名
|
|
287
|
+
- [ ] 已完整复制集成文档中的 CSS 变量定义
|
|
288
|
+
- [ ] 已使用集成文档中的布局样式配置
|
|
289
|
+
- [ ] 禁止创建任何自定义样式类名
|
|
290
|
+
- [ ] 禁止修改集成文档中的任何样式属性
|
|
291
|
+
- [ ] 样式代码与集成文档完全一致
|
|
292
|
+
|
|
293
|
+
### 凭证与登录
|
|
294
|
+
- [ ] 🔴 已调用 `get_usersig` 工具获取测试凭证
|
|
295
|
+
- [ ] 已将 SDKAppID、UserID、UserSig 直接注入到代码中
|
|
296
|
+
- [ ] 禁止创建 config.js 或 .env 文件
|
|
297
|
+
- [ ] 已实现 TUILogin.login() 登录逻辑
|
|
298
|
+
|
|
299
|
+
### 会话激活
|
|
300
|
+
- [ ] 已添加默认激活 `C2Cadministrator` 会话的逻辑
|
|
301
|
+
- [ ] 使用了正确的 API(setActiveConversation)
|
|
302
|
+
|
|
303
|
+
### 集成模式
|
|
304
|
+
- [ ] 已根据用户需求选择正确的集成模式(full-featured 或 chat-only)
|
|
305
|
+
- [ ] full-featured 模式:已集成 ConversationList、Chat、Contact 等组件
|
|
306
|
+
- [ ] chat-only 模式:已集成核心组件(Chat、MessageList、ChatHeader、MessageInput)
|
|
307
|
+
- [ ] chat-only 模式:已根据用户需求判断是否需要集成扩展功能
|
|
308
|
+
- [ ] 如果用户未主动要求,已确认不包含 Sidebar、ChatSetting、Search 等组件
|
|
309
|
+
- [ ] 如果用户主动要求(如"需要 ChatSetting"),已额外集成用户明确要求的功能
|
|
310
|
+
|
|
311
|
+
### 音视频通话(可选)
|
|
312
|
+
- [ ] 如果需要通话功能,已使用 Teleport 挂载 TUICallKit
|
|
313
|
+
- [ ] 已在 ChatHeader 组件右侧插槽添加通话按钮
|
|
314
|
+
- [ ] 已实现单聊和群聊的通话逻辑
|
|
315
|
+
|
|
316
|
+
### 最终检查
|
|
317
|
+
- [ ] 已调用 `record_result` 记录集成结果
|
|
318
|
+
- [ ] 已自动安装依赖(npm install)
|
|
319
|
+
- [ ] 已自动启动开发服务器(npm run dev)
|
|
320
|
+
- [ ] 项目可以正常运行,无报错
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## 💡 常见问题处理
|
|
325
|
+
|
|
326
|
+
### 1. Vite 构建错误
|
|
327
|
+
|
|
328
|
+
**问题现象**:Vite 项目运行时报 esbuild 相关错误
|
|
329
|
+
|
|
330
|
+
**原因**:某些依赖包与 esbuild 不兼容
|
|
331
|
+
|
|
332
|
+
**解决方案**:
|
|
333
|
+
在 `package.json` 中添加补丁配置:
|
|
334
|
+
```json
|
|
335
|
+
{
|
|
336
|
+
"overrides": {
|
|
337
|
+
"esbuild": "npm:esbuild-wasm@latest"
|
|
338
|
+
},
|
|
339
|
+
"resolutions": {
|
|
340
|
+
"esbuild": "npm:esbuild-wasm@latest"
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### 2. chat-only 模式包含了不该有的功能
|
|
346
|
+
|
|
347
|
+
**问题现象**:chat-only 模式生成的代码包含了用户未要求的 Sidebar、ChatSetting 或会话内搜索功能
|
|
348
|
+
|
|
349
|
+
**原因**:Agent 未正确判断用户需求,擅自添加了扩展功能
|
|
350
|
+
|
|
351
|
+
**判断标准**:
|
|
352
|
+
- ✅ **应该添加**:用户明确说明"需要 ChatSetting"、"要集成搜索"、"添加设置功能"等
|
|
353
|
+
- ❌ **不应添加**:用户只说"搭建 chat-only 聊天窗口",未提及扩展功能
|
|
354
|
+
|
|
355
|
+
**解决方案**:重新生成代码,确保默认不包含扩展功能
|
|
356
|
+
|
|
357
|
+
### 3. CSS 样式不符合集成文档
|
|
358
|
+
|
|
359
|
+
**问题现象**:生成的代码使用了自定义样式类名,或修改了官方样式
|
|
360
|
+
|
|
361
|
+
**原因**:Agent 未严格按照集成文档中的 CSS 样式生成代码
|
|
362
|
+
|
|
363
|
+
**解决方案**:
|
|
364
|
+
1. 重新调用 `get_web_chat_uikit_integration` 获取最新集成文档
|
|
365
|
+
2. 从集成文档中完整复制所有 CSS 样式代码
|
|
366
|
+
3. 严格按照集成文档中的类名、变量名、样式属性使用
|
|
367
|
+
4. 禁止任何形式的修改或自定义
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## 🔗 相关工具参考
|
|
372
|
+
|
|
373
|
+
### 必须使用的工具
|
|
374
|
+
|
|
375
|
+
#### `get_usersig` - 获取完整测试凭证(强制调用)
|
|
376
|
+
**用途**:生成完整的测试账号和鉴权凭证,包括:
|
|
377
|
+
- `SDKAppID`: 应用标识
|
|
378
|
+
- `userID`: 测试用户 ID
|
|
379
|
+
- `userSig`: 用户签名(有效期 7 天)
|
|
380
|
+
|
|
381
|
+
**调用时机**:在生成登录代码之前必须调用
|
|
382
|
+
|
|
383
|
+
**使用约束**:
|
|
384
|
+
- ✅ 必须使用工具返回的完整凭证
|
|
385
|
+
- ❌ 禁止让用户手动填写 SDKAppID 和 secretKey
|
|
386
|
+
- ❌ 禁止创建配置文件存储凭证
|
|
387
|
+
|
|
388
|
+
#### `record_result` - 记录集成结果
|
|
389
|
+
**用途**:记录集成过程和结果,用于统计和分析
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
**适用框架**: Vue3
|
|
394
|
+
**TUIKit 版本**: @tencentcloud/chat-uikit-vue3 > 4.0.0
|
|
395
|
+
**构建工具**: Vite (推荐) / Webpack
|
|
@@ -2,27 +2,44 @@ import { z } from 'zod';
|
|
|
2
2
|
import { GET_WEB_CHAT_UIKIT_INTEGRATION_DEFINITION } from '../definitions/get_web_chat_uikit_integration_def.js';
|
|
3
3
|
import { getDocContent } from '../../utils/get-doc-content.js';
|
|
4
4
|
import { reportCLSClient } from '../../utils/report-cls-client.js';
|
|
5
|
-
import {
|
|
6
|
-
function getResultText(params) {
|
|
7
|
-
const { framework = '' } = params;
|
|
5
|
+
import { generateStructuredResult } from '../../utils/generate-structured-result.js';
|
|
6
|
+
async function getResultText(params) {
|
|
7
|
+
const { framework = '', goals = [] } = params;
|
|
8
8
|
reportCLSClient({
|
|
9
9
|
method: 'get_web_chat_uikit_integration',
|
|
10
|
-
|
|
10
|
+
info: goals.join(','),
|
|
11
|
+
framework,
|
|
11
12
|
});
|
|
12
|
-
|
|
13
|
+
// 获取工作流指令
|
|
14
|
+
const baseInstructions = getDocContent(['chatuikit', framework, 'workflow.md']);
|
|
15
|
+
// 批量读取目标文档并生成结构化结果
|
|
16
|
+
const result = await generateStructuredResult({
|
|
17
|
+
baseInstructions,
|
|
18
|
+
goals,
|
|
19
|
+
framework,
|
|
20
|
+
pathMap: {
|
|
21
|
+
[goals[0]]: ['chatuikit', framework, 'integration.md'],
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
return result;
|
|
13
25
|
}
|
|
14
26
|
const registryGetWebChatIntegrationTool = (mcpServer) => {
|
|
15
27
|
const { name, description, parameter_descriptions } = GET_WEB_CHAT_UIKIT_INTEGRATION_DEFINITION;
|
|
16
28
|
mcpServer.tool(name, description, {
|
|
17
|
-
framework: z.enum(['react', 'vue']).describe(parameter_descriptions.framework),
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
framework: z.enum(['react', 'vue', 'uniapp-app']).describe(parameter_descriptions.framework),
|
|
30
|
+
goals: z.array(z.enum(['full-featured', 'chat-only'])).describe(parameter_descriptions.goals)
|
|
31
|
+
}, async (params) => {
|
|
32
|
+
const result = await getResultText(params);
|
|
33
|
+
return {
|
|
34
|
+
content: [
|
|
35
|
+
{
|
|
36
|
+
type: 'text',
|
|
37
|
+
text: result.llm_code_generation_instructions_md,
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
result: result,
|
|
41
|
+
};
|
|
42
|
+
});
|
|
26
43
|
};
|
|
27
44
|
export { registryGetWebChatIntegrationTool };
|
|
28
45
|
//# sourceMappingURL=get-web-chat-integration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-web-chat-integration.js","sourceRoot":"","sources":["../../../src/tools/chat/get-web-chat-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yCAAyC,EAAE,MAAM,sDAAsD,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get-web-chat-integration.js","sourceRoot":"","sources":["../../../src/tools/chat/get-web-chat-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yCAAyC,EAAE,MAAM,sDAAsD,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,KAAK,UAAU,aAAa,CAAC,MAA2B;IACtD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAC9C,eAAe,CAAC;QACd,MAAM,EAAE,gCAAgC;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,SAAS;KACV,CAAC,CAAC;IACH,UAAU;IACV,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAChF,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;QAC5C,gBAAgB;QAChB,KAAK;QACL,SAAS;QACT,OAAO,EAAE;YACP,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,gBAAgB,CAAC;SACvD;KACF,CAAC,CAAA;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,iCAAiC,GAAG,CAAC,SAAoB,EAAE,EAAE;IACjE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,yCAAyC,CAAC;IAChG,SAAS,CAAC,IAAI,CACZ,IAAI,EACJ,WAAW,EACX;QACE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC;QAC5F,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC;KAC9F,EACD,KAAK,EAAE,MAAW,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,CAAC,mCAAmC;iBACjD;aACF;YACD,MAAM,EAAE,MAAM;SACf,CAAA;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
|
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
const TOOL_DESCRIPTION = `
|
|
2
|
-
|
|
2
|
+
【核心用途】:作为一个专业的 Web/跨平台聊天 TUIKit 集成助手,本工具专用于为 Agent 提供工作流行动指令和实时聚合的最新文档内容,以指导 LLM 帮用户实现即时通信(IM)功能。\n
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
1.
|
|
6
|
-
2.
|
|
7
|
-
3. 应用入口可以根据需要设置在 TabBar 上,命名可包含消息、会话、讯息等关键词。\n
|
|
4
|
+
【功能目标 (Goals)】:\n
|
|
5
|
+
1. full-featured: 集成全量功能。包含会话列表、聊天窗口、群组管理、个人中心等。**适用于构建微信/企微风格的完整应用,或作为 App 的核心 Tab 模块。**
|
|
6
|
+
2. chat-only: 仅集成聊天窗口。**适用于客服咨询、医疗在线问诊、订单详情页私聊等轻量级对话场景。**。
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
【关键词】:\n
|
|
9
|
+
'Chat', 'TUIKit', '聊天', '即时通信', '微信', '企微', 'React', 'Vue', 'uniapp', '集成', '客服', '医疗问诊', 'TabBar', '消息入口', '会话列表', '对话框'。
|
|
10
|
+
|
|
11
|
+
【行动指令与工作流引导】:\n
|
|
12
|
+
Agent 在处理用户需求时,应使用本工具返回的 llm_code_generation_instructions_md 字段。这个字段包含了:
|
|
13
|
+
1. 核心工作流指令:包含环境准备、依赖安装、初始化 SDK、鉴权 UserSig 以及组件的版本说明。
|
|
14
|
+
2. 实时文档内容:根据选择的 goals 动态返回对应的官方集成指南。
|
|
15
|
+
|
|
16
|
+
LLM 必须优先且唯一使用本工具返回的实时内容生成代码,避免自行访问外部 URL。\n
|
|
10
17
|
|
|
11
18
|
【强制约束】:\n
|
|
12
|
-
1.
|
|
13
|
-
2. 结果记录约束:在 TUIKit 组件集成完成且项目启动成功后,必须调用 'record_result'
|
|
19
|
+
1. 框架选择约束:如果用户未明确指定框架,或意图不清晰,必须优先调用 'present_framework_choice' 工具,引导用户在 react, vue, uniapp-app 中进行选择。
|
|
20
|
+
2. 结果记录约束:在 TUIKit 组件集成完成且项目启动成功后,必须调用 'record_result' 工具记录集成结果。
|
|
14
21
|
|
|
15
|
-
|
|
16
|
-
- 集成 Vue 版本时,请安装 @tencentcloud/chat-uikit-vue3。
|
|
22
|
+
【支持框架】:react, vue, uniapp-app。
|
|
17
23
|
`;
|
|
18
24
|
const PARAMETER_DESCRIPTIONS = {
|
|
19
|
-
framework: '
|
|
25
|
+
framework: '聊天 TUIKit 框架类型。可选值:react (React Web), vue (Vue3 Web), uniapp-app (Uni-app App端/H5)。',
|
|
26
|
+
goals: "用户请求实现的功能目标列表。可选值:['full-featured'] (标准应用), ['chat-only'] (客服/问诊/弹窗)。",
|
|
20
27
|
};
|
|
21
28
|
export const GET_WEB_CHAT_UIKIT_INTEGRATION_DEFINITION = {
|
|
22
29
|
name: 'get_web_chat_uikit_integration',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_web_chat_uikit_integration_def.js","sourceRoot":"","sources":["../../../src/tools/definitions/get_web_chat_uikit_integration_def.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"get_web_chat_uikit_integration_def.js","sourceRoot":"","sources":["../../../src/tools/definitions/get_web_chat_uikit_integration_def.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBxB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,SAAS,EAAE,qFAAqF;IAChG,KAAK,EAAE,uEAAuE;CAC/E,CAAC;AAEF,MAAM,CAAC,MAAM,yCAAyC,GAAG;IACvD,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE,gBAAgB;IAC7B,sBAAsB,EAAE,sBAAsB;CAC/C,CAAC"}
|
|
@@ -7,7 +7,7 @@ const SELECTION_PROMPT_TEXT = `
|
|
|
7
7
|
请从支持的平台或框架中选择一个,禁止使用默认推导的结果,每次调用都必须要求用户选择。\n
|
|
8
8
|
|
|
9
9
|
1. Chat 聊天支持的选项 (TUIKit Chat Options):
|
|
10
|
-
'react', 'vue', 'flutter', 'android', 'ios'
|
|
10
|
+
'react', 'vue', 'uniapp-app', 'flutter', 'android', 'ios'
|
|
11
11
|
|
|
12
12
|
2. Call 音视频通话支持的选项 (Call Audio/Video Options):
|
|
13
13
|
'react', 'vue', 'flutter', 'android', 'ios'
|
|
@@ -14,7 +14,7 @@ export const RECORD_RESULT_DEFINITION = {
|
|
|
14
14
|
name: 'record_result',
|
|
15
15
|
description: TOOL_DESCRIPTION,
|
|
16
16
|
parameter_descriptions: {
|
|
17
|
-
framework: '项目集成中使用的平台/框架,必填项,可选值:react, vue, web, flutter, android, ios',
|
|
17
|
+
framework: '项目集成中使用的平台/框架,必填项,可选值:react, vue, web, flutter, android, ios, uniapp-app',
|
|
18
18
|
prompt: '用户输入的原始提示词信息',
|
|
19
19
|
tools: '项目集成过程中使用到的所有 MCP tools 名称列表(如: get_usersig, record_prompt)'
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record_result_def.js","sourceRoot":"","sources":["../../../src/tools/definitions/record_result_def.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAWxB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,gBAAgB;IAC7B,sBAAsB,EAAE;QACtB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"record_result_def.js","sourceRoot":"","sources":["../../../src/tools/definitions/record_result_def.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAWxB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,gBAAgB;IAC7B,sBAAsB,EAAE;QACtB,SAAS,EAAE,0EAA0E;QACrF,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,6DAA6D;KACrE;CACF,CAAC"}
|
package/tools/index.js
CHANGED
|
@@ -6,7 +6,6 @@ import { registryGetUserSigTool } from './common/get-usersig.js';
|
|
|
6
6
|
import { registryGetFaqTool } from './common/get-faq.js';
|
|
7
7
|
// chat
|
|
8
8
|
import { registryGetWebChatIntegrationTool } from './chat/get-web-chat-integration.js';
|
|
9
|
-
import { registryGetWebChatWindowIntegrationTool } from './chat/get-web-chat-window-integration.js';
|
|
10
9
|
import { registryGetWebChatComponentDetailTool } from './chat/get-web-chat-component-detail.js';
|
|
11
10
|
import { registryGetWebChatInitTool } from './chat/get-web-chat-uikit-init.js';
|
|
12
11
|
// import { registryGetWebCreateGroupTool } from './chat/get-web-create-group-doc.js';
|
|
@@ -38,7 +37,6 @@ function registryTools(mcpServer) {
|
|
|
38
37
|
registryGetFaqTool(mcpServer);
|
|
39
38
|
// chat
|
|
40
39
|
registryGetWebChatIntegrationTool(mcpServer);
|
|
41
|
-
registryGetWebChatWindowIntegrationTool(mcpServer);
|
|
42
40
|
registryGetWebChatComponentDetailTool(mcpServer);
|
|
43
41
|
registryGetWebChatInitTool(mcpServer);
|
|
44
42
|
//registryGetWebCreateGroupTool(mcpServer);
|
package/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,SAAS;AACT,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO;AACP,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,SAAS;AACT,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO;AACP,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,sFAAsF;AACtF,OAAO,EAAE,oCAAoC,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO;AACP,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,oCAAoC,EAAE,MAAM,uCAAuC,CAAC;AAC7F,YAAY;AACZ,+EAA+E;AAC/E,sFAAsF;AACtF,OAAO,EAAE,yCAAyC,EAAE,MAAM,kDAAkD,CAAC;AAC7G,OAAO,EAAE,oCAAoC,EAAE,MAAM,6CAA6C,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO;AACP,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO;AACP,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAGxF,cAAc;AACd,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAG7E,SAAS,aAAa,CAAC,SAAoB;IACzC,SAAS;IACT,kCAAkC,CAAC,SAAS,CAAC,CAAC;IAC9C,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACpC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACpC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO;IACP,iCAAiC,CAAC,SAAS,CAAC,CAAC;IAC7C,qCAAqC,CAAC,SAAS,CAAC,CAAC;IACjD,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,2CAA2C;IAC3C,oCAAoC,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO;IACP,iCAAiC,CAAC,SAAS,CAAC,CAAC;IAC7C,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACxC,oCAAoC,CAAC,SAAS,CAAC,CAAC;IAChD,YAAY;IACZ,wCAAwC;IACxC,2CAA2C;IAC3C,yCAAyC,CAAC,SAAS,CAAC,CAAC;IACrD,oCAAoC,CAAC,SAAS,CAAC,CAAC;IAChD,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO;IACP,iCAAiC,CAAC,SAAS,CAAC,CAAC;IAC7C,qCAAqC,CAAC,SAAS,CAAC,CAAC;IACjD,iCAAiC,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO;IACP,iCAAiC,CAAC,SAAS,CAAC,CAAC;IAC7C,cAAc;IACd,2CAA2C;IAC3C,OAAO;IACP,4BAA4B,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,OAAO,EACL,aAAa,GACd,CAAA"}
|
|
@@ -7,7 +7,7 @@ import { getDocContent } from "./get-doc-content.js";
|
|
|
7
7
|
* @property {string} [params.baseInstructions] - 基础指令说明
|
|
8
8
|
*/
|
|
9
9
|
async function generateStructuredResult(params) {
|
|
10
|
-
const { goals, pathMap, baseInstructions = '' } = params;
|
|
10
|
+
const { goals, pathMap, baseInstructions = '', framework } = params;
|
|
11
11
|
const pathsToRead = [];
|
|
12
12
|
for (const goal of goals) {
|
|
13
13
|
if (pathMap[goal]) {
|
|
@@ -24,7 +24,7 @@ async function generateStructuredResult(params) {
|
|
|
24
24
|
const finalContent = baseInstructions + combinedDocContent;
|
|
25
25
|
return {
|
|
26
26
|
status: 'SUCCESS',
|
|
27
|
-
framework:
|
|
27
|
+
framework: framework,
|
|
28
28
|
read_paths: pathsToRead,
|
|
29
29
|
llm_code_generation_instructions_md: finalContent,
|
|
30
30
|
note_to_llm: `Agent,已为您并发获取 ${pathsToRead.length} 篇文档。请结合工作流指令和文档内容生成代码。`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-structured-result.js","sourceRoot":"","sources":["../../src/utils/generate-structured-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,MAA2B;IACjE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-structured-result.js","sourceRoot":"","sources":["../../src/utils/generate-structured-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,MAA2B;IACjE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpE,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpD,yDAAyD;IACzD,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,WAAW,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;QAClC,kBAAkB,IAAI,qBAAqB,MAAM,WAAW,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;IAE3D,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,WAAW;QACvB,mCAAmC,EAAE,YAAY;QACjD,WAAW,EAAE,iBAAiB,WAAW,CAAC,MAAM,yBAAyB;KAC1E,CAAC;AACJ,CAAC;AAED,OAAO,EACL,wBAAwB,GACzB,CAAC"}
|