@mybricks/plugin-ai 0.0.2 → 0.0.3

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 (249) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +164 -0
  2. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  3. package/dist/agents/app.js +335 -0
  4. package/dist/agents/app.js.map +1 -0
  5. package/dist/agents/common.js +483 -0
  6. package/dist/agents/common.js.map +1 -0
  7. package/dist/agents/custom.js +16 -0
  8. package/dist/agents/custom.js.map +1 -0
  9. package/dist/agents/index.js +38 -0
  10. package/dist/agents/index.js.map +1 -0
  11. package/dist/agents/knowledges/knowledge-base.js +579 -0
  12. package/dist/agents/knowledges/knowledge-base.js.map +1 -0
  13. package/dist/agents/knowledges/knowledge-node.js +228 -0
  14. package/dist/agents/knowledges/knowledge-node.js.map +1 -0
  15. package/dist/agents/knowledges/types.js +105 -0
  16. package/dist/agents/knowledges/types.js.map +1 -0
  17. package/dist/agents/utils/config.js +229 -0
  18. package/dist/agents/utils/config.js.map +1 -0
  19. package/dist/agents/workspace/coding-manager.js +20 -0
  20. package/dist/agents/workspace/coding-manager.js.map +1 -0
  21. package/dist/agents/workspace/components-manager.js +113 -0
  22. package/dist/agents/workspace/components-manager.js.map +1 -0
  23. package/dist/agents/workspace/outline-focus.js +167 -0
  24. package/dist/agents/workspace/outline-focus.js.map +1 -0
  25. package/dist/agents/workspace/outline-info.js +430 -0
  26. package/dist/agents/workspace/outline-info.js.map +1 -0
  27. package/dist/agents/workspace/page-tree-generator.js +70 -0
  28. package/dist/agents/workspace/page-tree-generator.js.map +1 -0
  29. package/dist/agents/workspace/workspace.js +251 -0
  30. package/dist/agents/workspace/workspace.js.map +1 -0
  31. package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js +100 -0
  32. package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js.map +1 -0
  33. package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js +120 -0
  34. package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js.map +1 -0
  35. package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js +146 -0
  36. package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js.map +1 -0
  37. package/dist/agents/workspace-by-knowledges/test.js +242 -0
  38. package/dist/agents/workspace-by-knowledges/test.js.map +1 -0
  39. package/dist/agents/workspace-by-knowledges/utils/components-manager.js +132 -0
  40. package/dist/agents/workspace-by-knowledges/utils/components-manager.js.map +1 -0
  41. package/dist/agents/workspace-by-knowledges/utils/outline-focus.js +167 -0
  42. package/dist/agents/workspace-by-knowledges/utils/outline-focus.js.map +1 -0
  43. package/dist/agents/workspace-by-knowledges/utils/outline-info.js +430 -0
  44. package/dist/agents/workspace-by-knowledges/utils/outline-info.js.map +1 -0
  45. package/dist/agents/workspace-by-knowledges/workspace.js +169 -0
  46. package/dist/agents/workspace-by-knowledges/workspace.js.map +1 -0
  47. package/dist/api/cloud-components.js +85 -0
  48. package/dist/api/cloud-components.js.map +1 -0
  49. package/dist/api-record-replay/manager.js +168 -0
  50. package/dist/api-record-replay/manager.js.map +1 -0
  51. package/{src/api-record-replay/recorder.ts → dist/api-record-replay/recorder.js} +22 -32
  52. package/dist/api-record-replay/recorder.js.map +1 -0
  53. package/dist/api-record-replay/replayer.js +136 -0
  54. package/dist/api-record-replay/replayer.js.map +1 -0
  55. package/dist/components/attachments/index.js +124 -0
  56. package/dist/components/attachments/index.js.map +1 -0
  57. package/dist/components/attachments/index.less.js +8 -0
  58. package/dist/components/attachments/index.less.js.map +1 -0
  59. package/dist/components/icons/index.js +112 -0
  60. package/dist/components/icons/index.js.map +1 -0
  61. package/dist/components/icons/index.less.js +8 -0
  62. package/dist/components/icons/index.less.js.map +1 -0
  63. package/dist/components/mention/index.js +19 -0
  64. package/dist/components/mention/index.js.map +1 -0
  65. package/dist/components/mention/index.less.js +8 -0
  66. package/dist/components/mention/index.less.js.map +1 -0
  67. package/dist/components/messages/index.js +429 -0
  68. package/dist/components/messages/index.js.map +1 -0
  69. package/dist/components/messages/index.less.js +8 -0
  70. package/dist/components/messages/index.less.js.map +1 -0
  71. package/dist/components/sender/index.js +244 -0
  72. package/dist/components/sender/index.js.map +1 -0
  73. package/dist/components/sender/index.less.js +8 -0
  74. package/dist/components/sender/index.less.js.map +1 -0
  75. package/dist/context/RequestStatusTracker.js +44 -0
  76. package/dist/context/RequestStatusTracker.js.map +1 -0
  77. package/dist/context/index.js +45 -0
  78. package/dist/context/index.js.map +1 -0
  79. package/dist/data.js +4 -0
  80. package/dist/data.js.map +1 -0
  81. package/dist/index.js +306 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js +27 -0
  84. package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  85. package/dist/plugin-ai/package.json.js +8 -0
  86. package/dist/plugin-ai/package.json.js.map +1 -0
  87. package/dist/plugin-ai/test/index.js +206 -0
  88. package/dist/plugin-ai/test/index.js.map +1 -0
  89. package/dist/preset/createTemplates.js +29 -0
  90. package/dist/preset/createTemplates.js.map +1 -0
  91. package/dist/preset/index.js +13 -0
  92. package/dist/preset/index.js.map +1 -0
  93. package/dist/preset/prompts.js +34 -0
  94. package/dist/preset/prompts.js.map +1 -0
  95. package/{src/preset/user.ts → dist/preset/user.js} +4 -3
  96. package/dist/preset/user.js.map +1 -0
  97. package/dist/requestAsStream.js +269 -0
  98. package/dist/requestAsStream.js.map +1 -0
  99. package/dist/rxai/node_modules/idb/build/index.js +277 -0
  100. package/dist/rxai/node_modules/idb/build/index.js.map +1 -0
  101. package/dist/rxai/src/agent/base.js +16 -0
  102. package/dist/rxai/src/agent/base.js.map +1 -0
  103. package/dist/rxai/src/agent/planning.js +1076 -0
  104. package/dist/rxai/src/agent/planning.js.map +1 -0
  105. package/dist/rxai/src/agent/rxai.js +254 -0
  106. package/dist/rxai/src/agent/rxai.js.map +1 -0
  107. package/dist/rxai/src/error/base.js +39 -0
  108. package/dist/rxai/src/error/base.js.map +1 -0
  109. package/dist/rxai/src/prompt/base.js +11 -0
  110. package/dist/rxai/src/prompt/base.js.map +1 -0
  111. package/dist/rxai/src/prompt/planning.js +23 -0
  112. package/dist/rxai/src/prompt/planning.js.map +1 -0
  113. package/dist/rxai/src/prompt/tool.js +14 -0
  114. package/dist/rxai/src/prompt/tool.js.map +1 -0
  115. package/dist/rxai/src/request/request.js +123 -0
  116. package/dist/rxai/src/request/request.js.map +1 -0
  117. package/dist/rxai/src/tool/getHistoryRecords.js +65 -0
  118. package/dist/rxai/src/tool/getHistoryRecords.js.map +1 -0
  119. package/dist/rxai/src/tool/util.js +424 -0
  120. package/dist/rxai/src/tool/util.js.map +1 -0
  121. package/dist/rxai/src/utils/events.js +43 -0
  122. package/dist/rxai/src/utils/events.js.map +1 -0
  123. package/dist/rxai/src/utils/idb.js +240 -0
  124. package/dist/rxai/src/utils/idb.js.map +1 -0
  125. package/dist/rxai/src/utils/retry.js +32 -0
  126. package/dist/rxai/src/utils/retry.js.map +1 -0
  127. package/dist/rxai/src/utils/uuid.js +7 -0
  128. package/dist/rxai/src/utils/uuid.js.map +1 -0
  129. package/dist/startView/components/header/header.js +12 -0
  130. package/dist/startView/components/header/header.js.map +1 -0
  131. package/dist/startView/components/header/header.less.js +8 -0
  132. package/dist/startView/components/header/header.less.js.map +1 -0
  133. package/dist/startView/index.js +62 -0
  134. package/dist/startView/index.js.map +1 -0
  135. package/dist/startView/index.less.js +8 -0
  136. package/dist/startView/index.less.js.map +1 -0
  137. package/dist/tools/analyze-and-expand-prd.js +116 -0
  138. package/dist/tools/analyze-and-expand-prd.js.map +1 -0
  139. package/dist/tools/analyze-requirement-and-components.js +208 -0
  140. package/dist/tools/analyze-requirement-and-components.js.map +1 -0
  141. package/dist/tools/answer.js +33 -0
  142. package/dist/tools/answer.js.map +1 -0
  143. package/dist/tools/build-process.js +550 -0
  144. package/dist/tools/build-process.js.map +1 -0
  145. package/dist/tools/coding-subagent-as-tool.js +101 -0
  146. package/dist/tools/coding-subagent-as-tool.js.map +1 -0
  147. package/dist/tools/generate-ui-content.js +528 -0
  148. package/dist/tools/generate-ui-content.js.map +1 -0
  149. package/dist/tools/index.js +31 -0
  150. package/dist/tools/index.js.map +1 -0
  151. package/dist/tools/open-dsl.js +49 -0
  152. package/dist/tools/open-dsl.js.map +1 -0
  153. package/dist/tools/refactor-ui-content.js +292 -0
  154. package/dist/tools/refactor-ui-content.js.map +1 -0
  155. package/dist/tools/utils.js +832 -0
  156. package/dist/tools/utils.js.map +1 -0
  157. package/dist/types/index.js +8 -0
  158. package/dist/types/index.js.map +1 -0
  159. package/dist/view/components/header/header.js +59 -0
  160. package/dist/view/components/header/header.js.map +1 -0
  161. package/dist/view/components/header/header.less.js +8 -0
  162. package/dist/view/components/header/header.less.js.map +1 -0
  163. package/dist/view/index.js +184 -0
  164. package/dist/view/index.js.map +1 -0
  165. package/dist/view/index.less.js +8 -0
  166. package/dist/view/index.less.js.map +1 -0
  167. package/package.json +28 -6
  168. package/src/agents/app.ts +0 -301
  169. package/src/agents/common.ts +0 -471
  170. package/src/agents/custom.ts +0 -14
  171. package/src/agents/index.ts +0 -37
  172. package/src/agents/knowledges/README.md +0 -614
  173. package/src/agents/knowledges/SUMMARY.md +0 -527
  174. package/src/agents/knowledges/index.ts +0 -8
  175. package/src/agents/knowledges/knowledge-base.ts +0 -565
  176. package/src/agents/knowledges/knowledge-node.ts +0 -266
  177. package/src/agents/knowledges/types.ts +0 -208
  178. package/src/agents/utils/config.ts +0 -427
  179. package/src/agents/workspace/coding-manager.ts +0 -31
  180. package/src/agents/workspace/components-manager.ts +0 -124
  181. package/src/agents/workspace/outline-focus.ts +0 -188
  182. package/src/agents/workspace/outline-info.ts +0 -520
  183. package/src/agents/workspace/page-tree-generator.ts +0 -83
  184. package/src/agents/workspace/workspace.ts +0 -319
  185. package/src/agents/workspace-by-knowledges/MIGRATION.md +0 -568
  186. package/src/agents/workspace-by-knowledges/README.md +0 -521
  187. package/src/agents/workspace-by-knowledges/index.ts +0 -11
  188. package/src/agents/workspace-by-knowledges/providers/component-docs-provider.ts +0 -92
  189. package/src/agents/workspace-by-knowledges/providers/focus-info-provider.ts +0 -131
  190. package/src/agents/workspace-by-knowledges/providers/index.ts +0 -8
  191. package/src/agents/workspace-by-knowledges/providers/project-info-provider.ts +0 -151
  192. package/src/agents/workspace-by-knowledges/test.ts +0 -240
  193. package/src/agents/workspace-by-knowledges/types.ts +0 -56
  194. package/src/agents/workspace-by-knowledges/utils/components-manager.ts +0 -145
  195. package/src/agents/workspace-by-knowledges/utils/index.ts +0 -8
  196. package/src/agents/workspace-by-knowledges/utils/outline-focus.ts +0 -178
  197. package/src/agents/workspace-by-knowledges/utils/outline-info.ts +0 -521
  198. package/src/agents/workspace-by-knowledges/workspace.ts +0 -166
  199. package/src/api/cloud-components.ts +0 -129
  200. package/src/api-record-replay/README.md +0 -187
  201. package/src/api-record-replay/index.ts +0 -11
  202. package/src/api-record-replay/manager.ts +0 -168
  203. package/src/api-record-replay/replayer.ts +0 -148
  204. package/src/components/attachments/index.less +0 -117
  205. package/src/components/attachments/index.tsx +0 -136
  206. package/src/components/icons/index.less +0 -8
  207. package/src/components/icons/index.tsx +0 -44
  208. package/src/components/index.less +0 -34
  209. package/src/components/mention/index.less +0 -23
  210. package/src/components/mention/index.tsx +0 -19
  211. package/src/components/messages/index.less +0 -1013
  212. package/src/components/messages/index.tsx +0 -519
  213. package/src/components/sender/index.less +0 -203
  214. package/src/components/sender/index.tsx +0 -298
  215. package/src/components/types.ts +0 -31
  216. package/src/constants/index.ts +0 -8
  217. package/src/context/RequestStatusTracker.ts +0 -50
  218. package/src/context/index.ts +0 -83
  219. package/src/data.ts +0 -5
  220. package/src/global.d.ts +0 -100
  221. package/src/index.tsx +0 -264
  222. package/src/mock.ts +0 -1267
  223. package/src/preset/agents.ts +0 -380
  224. package/src/preset/createTemplates.ts +0 -25
  225. package/src/preset/index.ts +0 -12
  226. package/src/preset/prompts.ts +0 -235
  227. package/src/preset/requestAsStream.ts +0 -246
  228. package/src/startView/components/header/header.less +0 -17
  229. package/src/startView/components/header/header.tsx +0 -15
  230. package/src/startView/components/index.ts +0 -1
  231. package/src/startView/index.less +0 -34
  232. package/src/startView/index.tsx +0 -61
  233. package/src/tools/analyze-and-expand-prd.ts +0 -272
  234. package/src/tools/analyze-requirement-and-components.ts +0 -589
  235. package/src/tools/answer.ts +0 -59
  236. package/src/tools/build-process.ts +0 -1174
  237. package/src/tools/coding-subagent-as-tool.ts +0 -119
  238. package/src/tools/generate-ui-content.ts +0 -1083
  239. package/src/tools/index.ts +0 -28
  240. package/src/tools/open-dsl.ts +0 -69
  241. package/src/tools/refactor-ui-content.ts +0 -801
  242. package/src/tools/type.d.ts +0 -12
  243. package/src/tools/utils.ts +0 -914
  244. package/src/types/index.ts +0 -4
  245. package/src/view/components/header/header.less +0 -51
  246. package/src/view/components/header/header.tsx +0 -60
  247. package/src/view/components/index.ts +0 -1
  248. package/src/view/index.less +0 -5
  249. package/src/view/index.tsx +0 -168
@@ -0,0 +1,251 @@
1
+ import { defineProperty as _defineProperty, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { ComponentsManager } from './components-manager.js';
3
+ import { PageTreeGenerator } from './page-tree-generator.js';
4
+
5
+ // 类型定义
6
+
7
+ class WorkSpace {
8
+ /** 当前聚焦页面的大纲 */
9
+
10
+ constructor(config, api, outlineInfo) {
11
+ var _config$currentFocus;
12
+ _defineProperty(this, "openedDocuments", []);
13
+ _defineProperty(this, "openedComponentDocs", []);
14
+ _defineProperty(this, "getJsxById", id => {
15
+ var isPage = this.focusInfo.pageId === id || !!this.findPageById(id);
16
+ if (isPage) {
17
+ var _this$outlineInfoMana, _this$outlineInfoMana2;
18
+ return (_this$outlineInfoMana = (_this$outlineInfoMana2 = this.outlineInfoManager.generateJSXByPageId(id)) === null || _this$outlineInfoMana2 === void 0 ? void 0 : _this$outlineInfoMana2.jsx) !== null && _this$outlineInfoMana !== void 0 ? _this$outlineInfoMana : '';
19
+ } else {
20
+ var _this$outlineInfoMana3, _this$outlineInfoMana4;
21
+ return (_this$outlineInfoMana3 = (_this$outlineInfoMana4 = this.outlineInfoManager.generateJSXByOutline(this.focusPageOutlineInfo, [id])) === null || _this$outlineInfoMana4 === void 0 ? void 0 : _this$outlineInfoMana4.jsx) !== null && _this$outlineInfoMana3 !== void 0 ? _this$outlineInfoMana3 : '';
22
+ }
23
+ });
24
+ this.api = api;
25
+ this.focusInfo = _objectSpread2({}, (_config$currentFocus = config.currentFocus) !== null && _config$currentFocus !== void 0 ? _config$currentFocus : {});
26
+ this.outlineInfoManager = outlineInfo;
27
+ this.focusPageOutlineInfo = this.outlineInfoManager.getFocusPageOutline();
28
+ }
29
+
30
+ /**
31
+ * 获取所有页面信息
32
+ */
33
+ getAllPageInfo() {
34
+ return this.api.getAllPageInfo();
35
+ }
36
+
37
+ /**
38
+ * 根据ID查找页面信息
39
+ */
40
+ findPageById(id) {
41
+ var allPageInfo = this.getAllPageInfo();
42
+ var pages = [];
43
+
44
+ // 兼容两种返回类型
45
+ if (Array.isArray(allPageInfo)) {
46
+ // 如果是 PagesData[] 类型
47
+ allPageInfo.forEach(pagesData => {
48
+ if (pagesData.pageAry && Array.isArray(pagesData.pageAry)) {
49
+ // 多画布
50
+ pages.push(...pagesData.pageAry);
51
+ } else {
52
+ pages.push(_objectSpread2({}, pagesData)); // 单画布
53
+ }
54
+ });
55
+ } else {
56
+ // 如果是 PagesData 类型
57
+ pages = allPageInfo.pageAry || [];
58
+ }
59
+ return this.searchPageInArray(id, pages);
60
+ }
61
+
62
+ /**
63
+ * 在页面数组中递归查找页面
64
+ */
65
+ searchPageInArray(id, pages) {
66
+ for (var page of pages) {
67
+ if (page.id === id) {
68
+ return page;
69
+ }
70
+ if (page.children) {
71
+ var found = this.searchPageInArray(id, page.children);
72
+ if (found) return found;
73
+ }
74
+ }
75
+ return null;
76
+ }
77
+ /**
78
+ * 打开文档
79
+ */
80
+ openDocument(id) {
81
+ // 检查是否已经打开
82
+ if (this.openedDocuments.some(doc => doc.id === id)) {
83
+ return;
84
+ }
85
+ var isPage = this.focusInfo.pageId === id || !!this.findPageById(id);
86
+ var typeDesc = isPage ? '画布' : '组件';
87
+ var outlineInfo;
88
+ var targetComponentIds = [];
89
+ if (isPage) {
90
+ // 如果是页面,直接获取页面信息
91
+ outlineInfo = this.outlineInfoManager.getPageOutline(id);
92
+ targetComponentIds = [];
93
+ } else {
94
+ // 如果是组件,需要获取包含该组件的页面信息
95
+ outlineInfo = this.focusPageOutlineInfo;
96
+
97
+ // 获取所有已打开的组件ID(排除页面ID)
98
+ var openedComponentIds = this.openedDocuments.filter(doc => doc.type === '组件').map(doc => doc.id);
99
+
100
+ // 添加当前要打开的组件ID
101
+ targetComponentIds = [...openedComponentIds, id];
102
+ }
103
+ var componentsInfo = this.outlineInfoManager.generateJSXByOutline(outlineInfo, targetComponentIds);
104
+
105
+ // 将已经打开文档的组件配置文档拿出来
106
+ componentsInfo.namespaces.forEach(ns => this.openComponentDoc(ns));
107
+ if (isPage) {
108
+ // 页面类型:直接添加新文档
109
+ this.openedDocuments.push({
110
+ id,
111
+ type: typeDesc,
112
+ title: '',
113
+ desc: '',
114
+ content: componentsInfo.jsx
115
+ });
116
+ } else {
117
+ // 组件类型:检查是否需要更新现有文档或创建新文档
118
+ var existingComponentDocs = this.openedDocuments.filter(doc => doc.type === '组件');
119
+ if (existingComponentDocs.length > 0) {
120
+ // 如果已经有组件文档,更新第一个组件文档的内容
121
+ existingComponentDocs[0].content = componentsInfo.jsx;
122
+ existingComponentDocs[0].id = componentsInfo.id;
123
+ // 可以选择更新ID为组合ID,比如:
124
+ // existingComponentDocs[0].id = targetComponentIds.join(',');
125
+ } else {
126
+ // 如果没有组件文档,创建新的
127
+ this.openedDocuments.push({
128
+ id: componentsInfo.id,
129
+ type: typeDesc,
130
+ title: '',
131
+ desc: '',
132
+ content: componentsInfo.jsx
133
+ });
134
+ }
135
+ }
136
+ }
137
+
138
+ /**
139
+ * 关闭文档
140
+ */
141
+ closeDocument(id) {
142
+ this.openedDocuments = this.openedDocuments.filter(doc => doc.id !== id);
143
+ }
144
+
145
+ /**
146
+ * 检查文档状态
147
+ */
148
+ checkDocumentStatus(id) {
149
+ if (this.openedDocuments.some(doc => doc.id === id)) {
150
+ return true;
151
+ }
152
+ return false;
153
+ }
154
+
155
+ /**
156
+ * 获取项目结构描述
157
+ */
158
+ getProjectStruct() {
159
+ var pageTree = PageTreeGenerator.generate(this.getAllPageInfo(), {
160
+ pageId: this.focusInfo.pageId
161
+ });
162
+ var focusDescription = this.outlineInfoManager.generateFocusDescription();
163
+ var contentHierarchy = this.outlineInfoManager.generateFocusHierarchy();
164
+ var openedDocumentsList = this.generateOpenedDocumentsList();
165
+ return "# \u5DE5\u4F5C\u7A7A\u95F4(Workspace)\n\u5DE5\u4F5C\u7A7A\u95F4\u5305\u542B\u6574\u4E2A\u9879\u76EE\u7684\u300C\u753B\u5E03\u7D22\u5F15\u300D\u300C\u805A\u7126\u4FE1\u606F\u300D\u300C\u5DF2\u6253\u5F00\u7684\u6587\u6863\u300D\uFF0C\u63D0\u4F9B\u7684\u59CB\u7EC8\u90FD\u662F\u6700\u65B0\u7684\u9879\u76EE\u4FE1\u606F\u3002\n\nWARNING: \u5982\u679C\u300C\u5386\u53F2\u8BB0\u5F55\u300D\u7684\u4FE1\u606F\u548C\u5DE5\u4F5C\u7A7A\u95F4\u51B2\u7A81\uFF0C\u59CB\u7EC8\u4EE5\u5DE5\u4F5C\u7A7A\u95F4\u7684\u4FE1\u606F\u4E3A\u51C6\uFF0C\u56E0\u4E3A\u300C\u5386\u53F2\u8BB0\u5F55\u300D\u7684\u64CD\u4F5C\u5F88\u6709\u53EF\u80FD\u6CA1\u4FDD\u5B58\uFF0C\u4E14\u4E0D\u662F\u6700\u65B0\u7684\u3002\n\n## \u753B\u5E03\u7D22\u5F15\n".concat(pageTree, "\n\n## \u805A\u7126\u4FE1\u606F\n\u4EE5\u4E0B\u662F\u5F53\u524D\u805A\u7126\u7EC4\u4EF6\u7684\u7B80\u7565\u6811\u7ED3\u6784\uFF0C\u5C55\u793A\u4E86\u805A\u7126\u5143\u7D20\u7684\u7236\u7EA7\u3001\u5144\u5F1F\u3001\u5B50\u7EA7\u5143\u7D20\u7684\u5173\u7CFB\u3002\n\u6CE8\u610F\uFF1A\u6B64\u6811\u7ED3\u6784\u5E76\u4E0D\u5B8C\u6574\uFF0C\u6298\u53E0\u4E86\u65E0\u5173\u5143\u7D20\u4FE1\u606F\uFF0C\u5982\u9700\u8BE6\u7EC6\u4FE1\u606F\u8BF7\u6253\u5F00DSL\u6587\u6863\u83B7\u53D6\u3002\n\n").concat(contentHierarchy, "\n\n").concat(focusDescription, "\n\n## \u5DF2\u6253\u5F00\u7684\u6587\u6863\n").concat(openedDocumentsList, "\n");
166
+ }
167
+ openComponentDoc(namespace) {
168
+ // 校验,保证传入的是完整namespace
169
+ var fullNamespace = ComponentsManager.getFullNamespace(namespace);
170
+
171
+ // 检查是否已经打开
172
+ if (this.openedComponentDocs.some(ns => ns === fullNamespace)) {
173
+ return;
174
+ }
175
+ this.openedComponentDocs.push(fullNamespace);
176
+
177
+ // 加载依赖
178
+ var requires = ComponentsManager.getRequireComponents(fullNamespace);
179
+ if (Array.isArray(requires) && requires.length) {
180
+ requires.forEach(ns => this.openComponentDoc(ns));
181
+ }
182
+ }
183
+ closeComponentDoc(namespace) {
184
+ // 校验,保证传入的是完整namespace
185
+ var fullNamespace = ComponentsManager.getFullNamespace(namespace);
186
+ this.openedComponentDocs = this.openedComponentDocs.filter(ns => ns !== fullNamespace);
187
+ }
188
+ hasComponentsDocs() {
189
+ return this.openedComponentDocs.length > 0;
190
+ }
191
+
192
+ /**
193
+ * 获取组件文档
194
+ */
195
+ getComponentsDocs() {
196
+ var layoutComponentsNs = ComponentsManager.getLayoutComponentsAbbreviationNs();
197
+ return "# \u7EC4\u4EF6\u4F7F\u7528\u6587\u6863\n".concat(layoutComponentsNs.length ? "\u5728\u4EE5\u4E0B\u6240\u6709\u7EC4\u4EF6\u4E2D\uFF0C\u7279\u522B\u7684\uFF0C".concat(layoutComponentsNs.map(ns => ns).join('、'), " \u662F\u7528\u4E8E\u57FA\u7840\u5E03\u5C40\u7684\u7EC4\u4EF6\uFF0C\u8F85\u52A9\u6807\u8BB0\u4E5F\u4EC5\u53EF\u4EE5\u7528\u4E8E\u8FD9\u4E9B\u7EC4\u4EF6") : '', "\n\n").concat(this.openedComponentDocs.map(namespace => {
198
+ var _componentInfo$all, _componentAll$inputs, _componentAll$inputs$, _componentAll$slots, _componentAll$slots$r;
199
+ // 校验,保证传入的是完整namespace
200
+ var fullNamespace = ComponentsManager.getFullNamespace(namespace);
201
+ var abbreviationNs = ComponentsManager.getAbbreviation(fullNamespace);
202
+ var componentInfo = ComponentsManager.getAiComponent(fullNamespace);
203
+ var componentAll = (_componentInfo$all = componentInfo === null || componentInfo === void 0 ? void 0 : componentInfo.all) !== null && _componentInfo$all !== void 0 ? _componentInfo$all : {};
204
+ var inputs = componentAll === null || componentAll === void 0 || (_componentAll$inputs = componentAll.inputs) === null || _componentAll$inputs === void 0 || (_componentAll$inputs$ = _componentAll$inputs.reduce) === null || _componentAll$inputs$ === void 0 ? void 0 : _componentAll$inputs$.call(_componentAll$inputs, (pre, _ref) => {
205
+ var {
206
+ id,
207
+ title,
208
+ schema
209
+ } = _ref;
210
+ var schemaStr = "";
211
+ try {
212
+ schemaStr = " - schema: ".concat(JSON.stringify(schema), "\n");
213
+ } catch (_unused) {}
214
+ return pre + " - ".concat(title, " \u2192 inputId: `").concat(id, "`\n") + schemaStr;
215
+ }, "");
216
+ var isUI = !componentAll.rtType;
217
+ var slots = componentAll === null || componentAll === void 0 || (_componentAll$slots = componentAll.slots) === null || _componentAll$slots === void 0 || (_componentAll$slots$r = _componentAll$slots.reduce) === null || _componentAll$slots$r === void 0 ? void 0 : _componentAll$slots$r.call(_componentAll$slots, (pre, _ref2) => {
218
+ var {
219
+ id,
220
+ title,
221
+ type,
222
+ description,
223
+ inputs
224
+ } = _ref2;
225
+ var isScope = type === "scope" && (inputs === null || inputs === void 0 ? void 0 : inputs.length);
226
+ return pre + " - ".concat(id, "\uFF08").concat(title).concat(description ? " - ".concat(description) : "", "\uFF09").concat(type === "scope" ? "- 作用域插槽" : "", "\n") + (isScope ? inputs.reduce((pre, _ref3) => {
227
+ var {
228
+ id,
229
+ title,
230
+ desc
231
+ } = _ref3;
232
+ return pre + " - ".concat(id, "\uFF08").concat(title, "\uFF09").concat(desc ? " - ".concat(desc) : "", "\n");
233
+ }, "") : "");
234
+ }, "");
235
+ return this.api.getComponentDoc(fullNamespace).replace("</type>", '</type>' + (isUI ? "\n<slots>\n".concat(slots || "无\n", "</slots>\n\n") : "")).replace("</type>", '</type>' + (isUI ? "\n<inputs>\n".concat(inputs || "无\n", "</inputs>\n\n") : "")).replace('<component>', "<".concat(abbreviationNs, "\u6587\u6863>")).replace('</component>', "</".concat(abbreviationNs, "\u6587\u6863>")).replace(new RegExp("".concat(fullNamespace), 'g'), abbreviationNs);
236
+ }).join(''), "\n");
237
+ }
238
+
239
+ /**
240
+ * 生成已打开文档列表
241
+ */
242
+ generateOpenedDocumentsList() {
243
+ if (this.openedDocuments.length === 0) {
244
+ return '暂无打开的文档';
245
+ }
246
+ return this.openedDocuments.map(doc => "- ".concat(doc.title, "[id=").concat(doc.id, "](").concat(doc.type, ")\n \u63CF\u8FF0\uFF1A").concat(doc.desc, "\n \u5185\u5BB9\uFF1A").concat(doc.content)).join('\n\n');
247
+ }
248
+ }
249
+
250
+ export { WorkSpace };
251
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sources":["../../../src/agents/workspace/workspace.ts"],"sourcesContent":["import { OutlineNode } from './outline-info'\nimport { FocusOutlineInfoManager, FocusInfo } from './outline-focus'\nimport { ComponentsManager } from './components-manager'\nimport { PageTreeGenerator } from './page-tree-generator';\n\n// 类型定义\ninterface DocumentInfo {\n id: string;\n type: string;\n title: string;\n desc: string;\n content: string;\n}\n\ninterface PageInfo {\n id: string;\n title: string;\n type: string;\n componentType?: string;\n children?: PageInfo[];\n}\n\ninterface PagesData {\n pageAry: PageInfo[];\n}\n\ninterface WorkSpaceConfig {\n currentFocus: FocusInfo;\n}\n\ninterface WorkSpaceAPI {\n getAllPageInfo(): PagesData | PagesData[];\n getComponentDoc(ns: string): string\n}\n\nclass WorkSpace {\n private openedDocuments: DocumentInfo[] = [];\n\n private api: WorkSpaceAPI;\n private focusInfo: FocusInfo;\n private outlineInfoManager: FocusOutlineInfoManager;\n private openedComponentDocs: string[] = []\n\n /** 当前聚焦页面的大纲 */\n focusPageOutlineInfo: OutlineNode\n\n constructor(config: WorkSpaceConfig, api: WorkSpaceAPI, outlineInfo: FocusOutlineInfoManager) {\n this.api = api;\n this.focusInfo = { ...(config.currentFocus ?? {}) };\n this.outlineInfoManager = outlineInfo;\n\n this.focusPageOutlineInfo = this.outlineInfoManager.getFocusPageOutline();\n }\n\n\n /**\n * 获取所有页面信息\n */\n private getAllPageInfo(): PagesData | PagesData[] {\n return this.api.getAllPageInfo();\n }\n\n /**\n * 根据ID查找页面信息\n */\n private findPageById(id: string): PageInfo | null {\n const allPageInfo = this.getAllPageInfo();\n let pages: PageInfo[] = [];\n\n // 兼容两种返回类型\n if (Array.isArray(allPageInfo)) {\n // 如果是 PagesData[] 类型\n allPageInfo.forEach(pagesData => {\n if (pagesData.pageAry && Array.isArray(pagesData.pageAry)) { // 多画布\n pages.push(...pagesData.pageAry);\n } else {\n pages.push({ ...pagesData } as any as PageInfo) // 单画布\n }\n });\n } else {\n // 如果是 PagesData 类型\n pages = allPageInfo.pageAry || [];\n }\n\n return this.searchPageInArray(id, pages);\n }\n\n /**\n * 在页面数组中递归查找页面\n */\n private searchPageInArray(id: string, pages: PageInfo[]): PageInfo | null {\n for (const page of pages) {\n if (page.id === id) {\n return page;\n }\n if (page.children) {\n const found = this.searchPageInArray(id, page.children);\n if (found) return found;\n }\n }\n return null;\n }\n\n getJsxById = (id: string): string => {\n const isPage = this.focusInfo.pageId === id || !!this.findPageById(id);\n if (isPage) {\n return this.outlineInfoManager.generateJSXByPageId(id)?.jsx ?? '';\n } else {\n return this.outlineInfoManager.generateJSXByOutline(this.focusPageOutlineInfo, [id])?.jsx ?? '';\n }\n }\n\n /**\n * 打开文档\n */\n openDocument(id: string): void {\n\n // 检查是否已经打开\n if (this.openedDocuments.some(doc => doc.id === id)) {\n return;\n }\n\n const isPage = this.focusInfo.pageId === id || !!this.findPageById(id);\n const typeDesc = isPage ? '画布' : '组件'\n\n let outlineInfo: OutlineNode;\n let targetComponentIds: string[] = [];\n\n if (isPage) {\n // 如果是页面,直接获取页面信息\n outlineInfo = this.outlineInfoManager.getPageOutline(id);\n targetComponentIds = [];\n } else {\n // 如果是组件,需要获取包含该组件的页面信息\n outlineInfo = this.focusPageOutlineInfo;\n\n // 获取所有已打开的组件ID(排除页面ID)\n const openedComponentIds = this.openedDocuments\n .filter(doc => doc.type === '组件')\n .map(doc => doc.id);\n\n // 添加当前要打开的组件ID\n targetComponentIds = [...openedComponentIds, id];\n }\n\n const componentsInfo = this.outlineInfoManager.generateJSXByOutline(outlineInfo, targetComponentIds);\n\n // 将已经打开文档的组件配置文档拿出来\n componentsInfo.namespaces.forEach(ns => this.openComponentDoc(ns));\n\n if (isPage) {\n // 页面类型:直接添加新文档\n this.openedDocuments.push({\n id,\n type: typeDesc,\n title: '',\n desc: '',\n content: componentsInfo.jsx\n });\n } else {\n // 组件类型:检查是否需要更新现有文档或创建新文档\n const existingComponentDocs = this.openedDocuments.filter(doc => doc.type === '组件');\n\n if (existingComponentDocs.length > 0) {\n // 如果已经有组件文档,更新第一个组件文档的内容\n existingComponentDocs[0].content = componentsInfo.jsx;\n existingComponentDocs[0].id = componentsInfo.id;\n // 可以选择更新ID为组合ID,比如:\n // existingComponentDocs[0].id = targetComponentIds.join(',');\n } else {\n // 如果没有组件文档,创建新的\n this.openedDocuments.push({\n id: componentsInfo.id,\n type: typeDesc,\n title: '',\n desc: '',\n content: componentsInfo.jsx\n });\n }\n }\n }\n\n /**\n * 关闭文档\n */\n closeDocument(id: string): void {\n this.openedDocuments = this.openedDocuments.filter(doc => doc.id !== id);\n }\n\n /**\n * 检查文档状态\n */\n checkDocumentStatus(id: string) {\n if (this.openedDocuments.some(doc => doc.id === id)) {\n return true;\n }\n return false;\n }\n\n /**\n * 获取项目结构描述\n */\n getProjectStruct(): string {\n const pageTree = PageTreeGenerator.generate(this.getAllPageInfo(), {\n pageId: this.focusInfo.pageId\n });\n\n const focusDescription = this.outlineInfoManager.generateFocusDescription();\n\n const contentHierarchy = this.outlineInfoManager.generateFocusHierarchy();\n\n const openedDocumentsList = this.generateOpenedDocumentsList();\n\n return `# 工作空间(Workspace)\n工作空间包含整个项目的「画布索引」「聚焦信息」「已打开的文档」,提供的始终都是最新的项目信息。\n\nWARNING: 如果「历史记录」的信息和工作空间冲突,始终以工作空间的信息为准,因为「历史记录」的操作很有可能没保存,且不是最新的。\n\n## 画布索引\n${pageTree}\n\n## 聚焦信息\n以下是当前聚焦组件的简略树结构,展示了聚焦元素的父级、兄弟、子级元素的关系。\n注意:此树结构并不完整,折叠了无关元素信息,如需详细信息请打开DSL文档获取。\n\n${contentHierarchy}\n\n${focusDescription}\n\n## 已打开的文档\n${openedDocumentsList}\n`;\n }\n\n openComponentDoc(namespace: string) {\n // 校验,保证传入的是完整namespace\n const fullNamespace = ComponentsManager.getFullNamespace(namespace)\n\n // 检查是否已经打开\n if (this.openedComponentDocs.some(ns => ns === fullNamespace)) {\n return;\n }\n\n this.openedComponentDocs.push(fullNamespace)\n\n // 加载依赖\n const requires = ComponentsManager.getRequireComponents(fullNamespace)\n if (Array.isArray(requires) && requires.length) {\n requires.forEach(ns => this.openComponentDoc(ns))\n }\n }\n\n closeComponentDoc(namespace: string) {\n // 校验,保证传入的是完整namespace\n const fullNamespace = ComponentsManager.getFullNamespace(namespace)\n this.openedComponentDocs = this.openedComponentDocs.filter(ns => ns !== fullNamespace)\n }\n\n hasComponentsDocs(): boolean {\n return this.openedComponentDocs.length > 0\n }\n\n /**\n * 获取组件文档\n */\n getComponentsDocs(): string {\n const layoutComponentsNs = ComponentsManager.getLayoutComponentsAbbreviationNs()\n return `# 组件使用文档\n${layoutComponentsNs.length ? `在以下所有组件中,特别的,${layoutComponentsNs.map(ns => ns).join('、')} 是用于基础布局的组件,辅助标记也仅可以用于这些组件` : ''}\n\n${this.openedComponentDocs.map(namespace => {\n // 校验,保证传入的是完整namespace\n const fullNamespace = ComponentsManager.getFullNamespace(namespace)\n\n const abbreviationNs = ComponentsManager.getAbbreviation(fullNamespace);\n const componentInfo = ComponentsManager.getAiComponent(fullNamespace)\n const componentAll = componentInfo?.all ?? {}\n const inputs = componentAll?.inputs?.reduce?.((pre: string, { id, title, schema }: any) => {\n let schemaStr = \"\";\n try {\n schemaStr = ` - schema: ${JSON.stringify(schema)}\\n`\n } catch {}\n return pre + ` - ${title} → inputId: \\`${id}\\`\\n` + \n schemaStr\n }, \"\")\n const isUI = !componentAll.rtType;\n const slots = componentAll?.slots?.reduce?.((pre: string, { id, title, type, description, inputs }: any) => {\n const isScope = type === \"scope\" && inputs?.length;\n return pre + ` - ${id}(${title}${description ? ` - ${description}` : \"\"})${type === \"scope\" ? \"- 作用域插槽\" : \"\"}\\n` + \n (isScope ? inputs.reduce((pre: string, { id, title, desc }: any) => {\n return pre + ` - ${id}(${title})${desc ? ` - ${desc}` : \"\"}\\n`\n }, \"\"): \"\")\n }, \"\")\n\n return this.api.getComponentDoc(fullNamespace)\n .replace(\"</type>\", '</type>' + (isUI ? `\\n<slots>\n${slots || \"无\\n\"}</slots>\\n\\n` : \"\"))\n .replace(\"</type>\", '</type>' + (isUI ? `\\n<inputs>\n${inputs || \"无\\n\"}</inputs>\\n\\n` : \"\"))\n .replace('<component>', `<${abbreviationNs}文档>`).replace('</component>', `</${abbreviationNs}文档>`).replace(new RegExp(`${fullNamespace}`, 'g'), abbreviationNs)\n}).join('')}\n`\n }\n\n /**\n * 生成已打开文档列表\n */\n private generateOpenedDocumentsList(): string {\n if (this.openedDocuments.length === 0) {\n return '暂无打开的文档';\n }\n\n return this.openedDocuments.map(doc =>\n `- ${doc.title}[id=${doc.id}](${doc.type})\\n 描述:${doc.desc}\\n 内容:${doc.content}`\n ).join('\\n\\n');\n }\n}\n\nexport { WorkSpace, type WorkSpaceConfig, type WorkSpaceAPI };\n"],"names":["WorkSpace","constructor","config","api","outlineInfo","_config$currentFocus","_defineProperty","id","isPage","focusInfo","pageId","findPageById","_this$outlineInfoMana","_this$outlineInfoMana2","outlineInfoManager","generateJSXByPageId","jsx","_this$outlineInfoMana3","_this$outlineInfoMana4","generateJSXByOutline","focusPageOutlineInfo","_objectSpread","currentFocus","getFocusPageOutline","getAllPageInfo","allPageInfo","pages","Array","isArray","forEach","pagesData","pageAry","push","searchPageInArray","page","children","found","openDocument","openedDocuments","some","doc","typeDesc","targetComponentIds","getPageOutline","openedComponentIds","filter","type","map","componentsInfo","namespaces","ns","openComponentDoc","title","desc","content","existingComponentDocs","length","closeDocument","checkDocumentStatus","getProjectStruct","pageTree","PageTreeGenerator","generate","focusDescription","generateFocusDescription","contentHierarchy","generateFocusHierarchy","openedDocumentsList","generateOpenedDocumentsList","concat","namespace","fullNamespace","ComponentsManager","getFullNamespace","openedComponentDocs","requires","getRequireComponents","closeComponentDoc","hasComponentsDocs","getComponentsDocs","layoutComponentsNs","getLayoutComponentsAbbreviationNs","join","_componentInfo$all","_componentAll$inputs","_componentAll$inputs$","_componentAll$slots","_componentAll$slots$r","abbreviationNs","getAbbreviation","componentInfo","getAiComponent","componentAll","all","inputs","reduce","call","pre","_ref","schema","schemaStr","JSON","stringify","_unused","isUI","rtType","slots","_ref2","description","isScope","_ref3","getComponentDoc","replace","RegExp"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { asyncToGenerator as _asyncToGenerator } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { DirectoryProvider, KnowledgeNodeType } from '../../knowledges/types.js';
3
+ import { ComponentsManager } from '../utils/components-manager.js';
4
+ import { context } from '../../../context/index.js';
5
+
6
+ /**
7
+ * 从 context 获取组件文档
8
+ */
9
+ function getComponentDoc(namespace) {
10
+ var _ref, _context$api, _context$api2;
11
+ return ((_ref = ((_context$api = context.api) === null || _context$api === void 0 || (_context$api = _context$api.global) === null || _context$api === void 0 || (_context$api = _context$api.api) === null || _context$api === void 0 ? void 0 : _context$api.getComEditorPrompts) || ((_context$api2 = context.api) === null || _context$api2 === void 0 || (_context$api2 = _context$api2.uiCom) === null || _context$api2 === void 0 || (_context$api2 = _context$api2.api) === null || _context$api2 === void 0 ? void 0 : _context$api2.getComEditorPrompts)) === null || _ref === void 0 ? void 0 : _ref(namespace)) || '';
12
+ }
13
+
14
+ /**
15
+ * 从 ComponentsManager 获取组件依赖
16
+ */
17
+ function getComponentRequires(namespace) {
18
+ return ComponentsManager.getRequireComponents(namespace) || [];
19
+ }
20
+
21
+ /**
22
+ * 获取所有组件列表(从 ComponentsManager 获取)
23
+ */
24
+ function getAllComponents() {
25
+ return ComponentsManager.getAllComponents();
26
+ }
27
+
28
+ /**
29
+ * 创建组件配置文档 Provider
30
+ * 提供一个隐藏的目录,包含所有组件的详细文档
31
+ */
32
+ function createComponentDocsProvider() {
33
+ var providerId = 'component-docs';
34
+ var providerName = '组件配置文档';
35
+ return new DirectoryProvider({
36
+ id: providerId,
37
+ name: providerName,
38
+ description: '所有组件的详细配置文档',
39
+ weight: 0,
40
+ // 小权重
41
+ hidden: true,
42
+ // 隐藏,不在目录树中显示
43
+
44
+ // 获取所有组件文档文件
45
+ getChildren: function () {
46
+ var _getChildren = _asyncToGenerator(function* (parentId) {
47
+ if (parentId !== providerId) {
48
+ return [];
49
+ }
50
+ var components = getAllComponents();
51
+ return components.map(comp => {
52
+ // 使用缩写作为文件名
53
+ var fileName = comp.abbreviation || comp.namespace;
54
+
55
+ // 获取依赖组件的文件ID列表,用于关联打开
56
+ var requires = getComponentRequires(comp.namespace);
57
+ var requireFileIds = requires.map(ns => "component-doc-".concat(ns));
58
+ return {
59
+ id: "component-doc-".concat(comp.namespace),
60
+ name: fileName,
61
+ type: KnowledgeNodeType.FILE,
62
+ extname: '.md',
63
+ hidden: true,
64
+ // 文件也是隐藏的
65
+ description: comp.description || comp.name,
66
+ metadata: {
67
+ providerId,
68
+ namespace: comp.namespace,
69
+ abbreviation: comp.abbreviation,
70
+ fullName: comp.name,
71
+ requires: requireFileIds // 添加依赖文件ID,用于关联打开
72
+ }
73
+ };
74
+ });
75
+ });
76
+ function getChildren(_x) {
77
+ return _getChildren.apply(this, arguments);
78
+ }
79
+ return getChildren;
80
+ }(),
81
+ // 读取组件文档内容
82
+ readFile: function () {
83
+ var _readFile = _asyncToGenerator(function* (fileId) {
84
+ var match = fileId.match(/^component-doc-(.+)$/);
85
+ if (!match) {
86
+ throw new Error("Invalid file ID: ".concat(fileId));
87
+ }
88
+ var namespace = match[1];
89
+ return getComponentDoc(namespace);
90
+ });
91
+ function readFile(_x2) {
92
+ return _readFile.apply(this, arguments);
93
+ }
94
+ return readFile;
95
+ }()
96
+ });
97
+ }
98
+
99
+ export { createComponentDocsProvider };
100
+ //# sourceMappingURL=component-docs-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-docs-provider.js","sources":["../../../../src/agents/workspace-by-knowledges/providers/component-docs-provider.ts"],"sourcesContent":["/**\n * 组件配置文档 Provider\n * 提供所有组件的详细配置文档(隐藏目录)\n */\n\nimport { DirectoryProvider, IKnowledgeNode, KnowledgeNodeType } from '../../knowledges/types';\nimport { ComponentsManager } from '../utils/components-manager';\nimport { context } from '../../../context';\n\n/**\n * 从 context 获取组件文档\n */\nfunction getComponentDoc(namespace: string): string {\n return (context.api?.global?.api?.getComEditorPrompts || \n context.api?.uiCom?.api?.getComEditorPrompts)?.(namespace) || '';\n}\n\n/**\n * 从 ComponentsManager 获取组件依赖\n */\nfunction getComponentRequires(namespace: string): string[] {\n return ComponentsManager.getRequireComponents(namespace) || [];\n}\n\n/**\n * 获取所有组件列表(从 ComponentsManager 获取)\n */\nfunction getAllComponents(): Array<{ namespace: string; name: string; abbreviation: string; description: string }> {\n return ComponentsManager.getAllComponents();\n}\n\n/**\n * 创建组件配置文档 Provider\n * 提供一个隐藏的目录,包含所有组件的详细文档\n */\nexport function createComponentDocsProvider(): DirectoryProvider {\n const providerId = 'component-docs';\n const providerName = '组件配置文档';\n \n return new DirectoryProvider({\n id: providerId,\n name: providerName,\n description: '所有组件的详细配置文档',\n weight: 0, // 小权重\n hidden: true, // 隐藏,不在目录树中显示\n \n // 获取所有组件文档文件\n getChildren: async (parentId: string) => {\n if (parentId !== providerId) {\n return [];\n }\n\n const components = getAllComponents();\n\n return components.map(comp => {\n // 使用缩写作为文件名\n const fileName = comp.abbreviation || comp.namespace;\n \n // 获取依赖组件的文件ID列表,用于关联打开\n const requires = getComponentRequires(comp.namespace);\n const requireFileIds = requires.map(ns => `component-doc-${ns}`);\n \n return {\n id: `component-doc-${comp.namespace}`,\n name: fileName,\n type: KnowledgeNodeType.FILE,\n extname: '.md',\n hidden: true, // 文件也是隐藏的\n description: comp.description || comp.name,\n metadata: {\n providerId,\n namespace: comp.namespace,\n abbreviation: comp.abbreviation,\n fullName: comp.name,\n requires: requireFileIds // 添加依赖文件ID,用于关联打开\n }\n };\n });\n },\n \n // 读取组件文档内容\n readFile: async (fileId: string) => {\n const match = fileId.match(/^component-doc-(.+)$/);\n if (!match) {\n throw new Error(`Invalid file ID: ${fileId}`);\n }\n\n const namespace = match[1];\n return getComponentDoc(namespace);\n }\n });\n}\n"],"names":["getComponentDoc","namespace","_ref","_context$api","_context$api2","context","api","global","getComEditorPrompts","uiCom","getComponentRequires","ComponentsManager","getRequireComponents","getAllComponents","createComponentDocsProvider","providerId","providerName","DirectoryProvider","id","name","description","weight","hidden","getChildren","_getChildren","_asyncToGenerator","parentId","components","map","comp","fileName","abbreviation","requires","requireFileIds","ns","concat","type","KnowledgeNodeType","FILE","extname","metadata","fullName","_x","apply","arguments","readFile","_readFile","fileId","match","Error","_x2"],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { asyncToGenerator as _asyncToGenerator } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { DirectoryProvider, KnowledgeNodeType } from '../../knowledges/types.js';
3
+ import { context } from '../../../context/index.js';
4
+ import '../utils/components-manager.js';
5
+ import '../utils/outline-info.js';
6
+ import { FocusOutlineInfoManager } from '../utils/outline-focus.js';
7
+
8
+ /**
9
+ * 聚焦信息
10
+ */
11
+
12
+ /**
13
+ * 获取聚焦信息
14
+ */
15
+ function getFocusInfo() {
16
+ return context.currentFocus || {};
17
+ }
18
+
19
+ /**
20
+ * 创建聚焦信息 Provider
21
+ * 将当前聚焦的页面和组件信息作为单个文件呈现
22
+ */
23
+ function createFocusInfoProvider() {
24
+ var providerId = 'focus-info';
25
+ var providerName = '聚焦信息';
26
+ var outlineInfoManager = null;
27
+
28
+ /**
29
+ * 初始化 outline info manager
30
+ */
31
+ function initializeManager() {
32
+ if (outlineInfoManager) {
33
+ return;
34
+ }
35
+ var focusInfo = getFocusInfo();
36
+ if (focusInfo !== null && focusInfo !== void 0 && focusInfo.pageId) {
37
+ outlineInfoManager = new FocusOutlineInfoManager({
38
+ api: context.api,
39
+ focusInfo
40
+ });
41
+ }
42
+ }
43
+
44
+ /**
45
+ * 获取聚焦描述
46
+ */
47
+ function getFocusDescription() {
48
+ initializeManager();
49
+ if (!outlineInfoManager) {
50
+ return '当前没有聚焦到任何页面或组件。';
51
+ }
52
+ return outlineInfoManager.generateFocusDescription();
53
+ }
54
+
55
+ /**
56
+ * 获取聚焦层级结构
57
+ */
58
+ function getFocusHierarchy() {
59
+ initializeManager();
60
+ if (!outlineInfoManager) {
61
+ return '';
62
+ }
63
+ return outlineInfoManager.generateFocusHierarchy();
64
+ }
65
+ return new DirectoryProvider({
66
+ id: providerId,
67
+ name: providerName,
68
+ description: '当前聚焦组件的树结构和描述',
69
+ weight: 90,
70
+ // 高权重,排在项目信息之后
71
+
72
+ // 自定义根节点为文件而不是目录
73
+ customRootNode: {
74
+ id: providerId,
75
+ name: providerName,
76
+ type: KnowledgeNodeType.FILE,
77
+ extname: '.md',
78
+ description: '当前聚焦组件的树结构和描述',
79
+ metadata: {
80
+ providerId
81
+ }
82
+ },
83
+ // 因为根节点是文件,所以没有子节点
84
+ getChildren: function () {
85
+ var _getChildren = _asyncToGenerator(function* (parentId) {
86
+ return [];
87
+ });
88
+ function getChildren(_x) {
89
+ return _getChildren.apply(this, arguments);
90
+ }
91
+ return getChildren;
92
+ }(),
93
+ // 读取文件内容
94
+ readFile: function () {
95
+ var _readFile = _asyncToGenerator(function* (fileId) {
96
+ if (fileId !== providerId) {
97
+ throw new Error("Invalid file ID: ".concat(fileId));
98
+ }
99
+ var focusInfo = getFocusInfo();
100
+
101
+ // 如果没有聚焦信息
102
+ if (!focusInfo.pageId && !focusInfo.comId) {
103
+ return '当前未聚焦任何页面或组件';
104
+ }
105
+
106
+ // 获取聚焦的层级结构和描述
107
+ var contentHierarchy = getFocusHierarchy();
108
+ var focusDescription = getFocusDescription();
109
+ return "## \u805A\u7126\u4FE1\u606F\n\u4EE5\u4E0B\u662F\u5F53\u524D\u805A\u7126\u7EC4\u4EF6\u7684\u7B80\u7565\u6811\u7ED3\u6784\uFF0C\u5C55\u793A\u4E86\u805A\u7126\u5143\u7D20\u7684\u7236\u7EA7\u3001\u5144\u5F1F\u3001\u5B50\u7EA7\u5143\u7D20\u7684\u5173\u7CFB\u3002\n\u6CE8\u610F\uFF1A\u6B64\u6811\u7ED3\u6784\u5E76\u4E0D\u5B8C\u6574\uFF0C\u6298\u53E0\u4E86\u65E0\u5173\u5143\u7D20\u4FE1\u606F\uFF0C\u5982\u9700\u8BE6\u7EC6\u4FE1\u606F\u8BF7\u6253\u5F00DSL\u6587\u6863\u83B7\u53D6\u3002\n\n".concat(contentHierarchy, "\n\n").concat(focusDescription);
110
+ });
111
+ function readFile(_x2) {
112
+ return _readFile.apply(this, arguments);
113
+ }
114
+ return readFile;
115
+ }()
116
+ });
117
+ }
118
+
119
+ export { createFocusInfoProvider };
120
+ //# sourceMappingURL=focus-info-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-info-provider.js","sources":["../../../../src/agents/workspace-by-knowledges/providers/focus-info-provider.ts"],"sourcesContent":["/**\n * 聚焦信息 Provider\n * 提供当前聚焦组件的树结构和描述信息\n */\n\nimport { DirectoryProvider, IKnowledgeNode, KnowledgeNodeType } from '../../knowledges/types';\nimport { context } from '../../../context';\nimport { FocusOutlineInfoManager } from '../utils';\n\n/**\n * 聚焦信息\n */\ninterface FocusInfo {\n pageId?: string;\n comId?: string;\n title?: string;\n type?: 'page' | 'uiCom' | 'section' | 'logicCom';\n focusArea?: {\n selector: string;\n title: string;\n };\n diagramId?: string;\n}\n\n/**\n * 获取聚焦信息\n */\nfunction getFocusInfo(): FocusInfo {\n return (context.currentFocus || {}) as FocusInfo;\n}\n\n/**\n * 创建聚焦信息 Provider\n * 将当前聚焦的页面和组件信息作为单个文件呈现\n */\nexport function createFocusInfoProvider(): DirectoryProvider {\n const providerId = 'focus-info';\n const providerName = '聚焦信息';\n let outlineInfoManager: FocusOutlineInfoManager | null = null;\n\n /**\n * 初始化 outline info manager\n */\n function initializeManager(): void {\n if (outlineInfoManager) {\n return;\n }\n\n const focusInfo = getFocusInfo();\n if (focusInfo?.pageId) {\n outlineInfoManager = new FocusOutlineInfoManager({ \n api: context.api, \n focusInfo \n });\n }\n }\n\n /**\n * 获取聚焦描述\n */\n function getFocusDescription(): string {\n initializeManager();\n \n if (!outlineInfoManager) {\n return '当前没有聚焦到任何页面或组件。';\n }\n \n return outlineInfoManager.generateFocusDescription();\n }\n\n /**\n * 获取聚焦层级结构\n */\n function getFocusHierarchy(): string {\n initializeManager();\n \n if (!outlineInfoManager) {\n return '';\n }\n \n return outlineInfoManager.generateFocusHierarchy();\n }\n\n return new DirectoryProvider({\n id: providerId,\n name: providerName,\n description: '当前聚焦组件的树结构和描述',\n weight: 90, // 高权重,排在项目信息之后\n \n // 自定义根节点为文件而不是目录\n customRootNode: {\n id: providerId,\n name: providerName,\n type: KnowledgeNodeType.FILE,\n extname: '.md',\n description: '当前聚焦组件的树结构和描述',\n metadata: { providerId }\n },\n \n // 因为根节点是文件,所以没有子节点\n getChildren: async (parentId: string) => {\n return [];\n },\n \n // 读取文件内容\n readFile: async (fileId: string) => {\n if (fileId !== providerId) {\n throw new Error(`Invalid file ID: ${fileId}`);\n }\n\n const focusInfo = getFocusInfo();\n \n // 如果没有聚焦信息\n if (!focusInfo.pageId && !focusInfo.comId) {\n return '当前未聚焦任何页面或组件';\n }\n\n // 获取聚焦的层级结构和描述\n const contentHierarchy = getFocusHierarchy();\n const focusDescription = getFocusDescription();\n\n return `## 聚焦信息\n以下是当前聚焦组件的简略树结构,展示了聚焦元素的父级、兄弟、子级元素的关系。\n注意:此树结构并不完整,折叠了无关元素信息,如需详细信息请打开DSL文档获取。\n\n${contentHierarchy}\n\n${focusDescription}`;\n }\n });\n}\n"],"names":["getFocusInfo","context","currentFocus","createFocusInfoProvider","providerId","providerName","outlineInfoManager","initializeManager","focusInfo","pageId","FocusOutlineInfoManager","api","getFocusDescription","generateFocusDescription","getFocusHierarchy","generateFocusHierarchy","DirectoryProvider","id","name","description","weight","customRootNode","type","KnowledgeNodeType","FILE","extname","metadata","getChildren","_getChildren","_asyncToGenerator","parentId","_x","apply","arguments","readFile","_readFile","fileId","Error","concat","comId","contentHierarchy","focusDescription","_x2"],"mappings":"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"}