@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.
- package/dist/_virtual/_rollupPluginBabelHelpers.js +164 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/agents/app.js +335 -0
- package/dist/agents/app.js.map +1 -0
- package/dist/agents/common.js +483 -0
- package/dist/agents/common.js.map +1 -0
- package/dist/agents/custom.js +16 -0
- package/dist/agents/custom.js.map +1 -0
- package/dist/agents/index.js +38 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/knowledges/knowledge-base.js +579 -0
- package/dist/agents/knowledges/knowledge-base.js.map +1 -0
- package/dist/agents/knowledges/knowledge-node.js +228 -0
- package/dist/agents/knowledges/knowledge-node.js.map +1 -0
- package/dist/agents/knowledges/types.js +105 -0
- package/dist/agents/knowledges/types.js.map +1 -0
- package/dist/agents/utils/config.js +229 -0
- package/dist/agents/utils/config.js.map +1 -0
- package/dist/agents/workspace/coding-manager.js +20 -0
- package/dist/agents/workspace/coding-manager.js.map +1 -0
- package/dist/agents/workspace/components-manager.js +113 -0
- package/dist/agents/workspace/components-manager.js.map +1 -0
- package/dist/agents/workspace/outline-focus.js +167 -0
- package/dist/agents/workspace/outline-focus.js.map +1 -0
- package/dist/agents/workspace/outline-info.js +430 -0
- package/dist/agents/workspace/outline-info.js.map +1 -0
- package/dist/agents/workspace/page-tree-generator.js +70 -0
- package/dist/agents/workspace/page-tree-generator.js.map +1 -0
- package/dist/agents/workspace/workspace.js +251 -0
- package/dist/agents/workspace/workspace.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js +100 -0
- package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js +120 -0
- package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js +146 -0
- package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/test.js +242 -0
- package/dist/agents/workspace-by-knowledges/test.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/utils/components-manager.js +132 -0
- package/dist/agents/workspace-by-knowledges/utils/components-manager.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-focus.js +167 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-focus.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-info.js +430 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-info.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/workspace.js +169 -0
- package/dist/agents/workspace-by-knowledges/workspace.js.map +1 -0
- package/dist/api/cloud-components.js +85 -0
- package/dist/api/cloud-components.js.map +1 -0
- package/dist/api-record-replay/manager.js +168 -0
- package/dist/api-record-replay/manager.js.map +1 -0
- package/{src/api-record-replay/recorder.ts → dist/api-record-replay/recorder.js} +22 -32
- package/dist/api-record-replay/recorder.js.map +1 -0
- package/dist/api-record-replay/replayer.js +136 -0
- package/dist/api-record-replay/replayer.js.map +1 -0
- package/dist/components/attachments/index.js +124 -0
- package/dist/components/attachments/index.js.map +1 -0
- package/dist/components/attachments/index.less.js +8 -0
- package/dist/components/attachments/index.less.js.map +1 -0
- package/dist/components/icons/index.js +112 -0
- package/dist/components/icons/index.js.map +1 -0
- package/dist/components/icons/index.less.js +8 -0
- package/dist/components/icons/index.less.js.map +1 -0
- package/dist/components/mention/index.js +19 -0
- package/dist/components/mention/index.js.map +1 -0
- package/dist/components/mention/index.less.js +8 -0
- package/dist/components/mention/index.less.js.map +1 -0
- package/dist/components/messages/index.js +429 -0
- package/dist/components/messages/index.js.map +1 -0
- package/dist/components/messages/index.less.js +8 -0
- package/dist/components/messages/index.less.js.map +1 -0
- package/dist/components/sender/index.js +244 -0
- package/dist/components/sender/index.js.map +1 -0
- package/dist/components/sender/index.less.js +8 -0
- package/dist/components/sender/index.less.js.map +1 -0
- package/dist/context/RequestStatusTracker.js +44 -0
- package/dist/context/RequestStatusTracker.js.map +1 -0
- package/dist/context/index.js +45 -0
- package/dist/context/index.js.map +1 -0
- package/dist/data.js +4 -0
- package/dist/data.js.map +1 -0
- package/dist/index.js +306 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js +27 -0
- package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
- package/dist/plugin-ai/package.json.js +8 -0
- package/dist/plugin-ai/package.json.js.map +1 -0
- package/dist/plugin-ai/test/index.js +206 -0
- package/dist/plugin-ai/test/index.js.map +1 -0
- package/dist/preset/createTemplates.js +29 -0
- package/dist/preset/createTemplates.js.map +1 -0
- package/dist/preset/index.js +13 -0
- package/dist/preset/index.js.map +1 -0
- package/dist/preset/prompts.js +34 -0
- package/dist/preset/prompts.js.map +1 -0
- package/{src/preset/user.ts → dist/preset/user.js} +4 -3
- package/dist/preset/user.js.map +1 -0
- package/dist/requestAsStream.js +269 -0
- package/dist/requestAsStream.js.map +1 -0
- package/dist/rxai/node_modules/idb/build/index.js +277 -0
- package/dist/rxai/node_modules/idb/build/index.js.map +1 -0
- package/dist/rxai/src/agent/base.js +16 -0
- package/dist/rxai/src/agent/base.js.map +1 -0
- package/dist/rxai/src/agent/planning.js +1076 -0
- package/dist/rxai/src/agent/planning.js.map +1 -0
- package/dist/rxai/src/agent/rxai.js +254 -0
- package/dist/rxai/src/agent/rxai.js.map +1 -0
- package/dist/rxai/src/error/base.js +39 -0
- package/dist/rxai/src/error/base.js.map +1 -0
- package/dist/rxai/src/prompt/base.js +11 -0
- package/dist/rxai/src/prompt/base.js.map +1 -0
- package/dist/rxai/src/prompt/planning.js +23 -0
- package/dist/rxai/src/prompt/planning.js.map +1 -0
- package/dist/rxai/src/prompt/tool.js +14 -0
- package/dist/rxai/src/prompt/tool.js.map +1 -0
- package/dist/rxai/src/request/request.js +123 -0
- package/dist/rxai/src/request/request.js.map +1 -0
- package/dist/rxai/src/tool/getHistoryRecords.js +65 -0
- package/dist/rxai/src/tool/getHistoryRecords.js.map +1 -0
- package/dist/rxai/src/tool/util.js +424 -0
- package/dist/rxai/src/tool/util.js.map +1 -0
- package/dist/rxai/src/utils/events.js +43 -0
- package/dist/rxai/src/utils/events.js.map +1 -0
- package/dist/rxai/src/utils/idb.js +240 -0
- package/dist/rxai/src/utils/idb.js.map +1 -0
- package/dist/rxai/src/utils/retry.js +32 -0
- package/dist/rxai/src/utils/retry.js.map +1 -0
- package/dist/rxai/src/utils/uuid.js +7 -0
- package/dist/rxai/src/utils/uuid.js.map +1 -0
- package/dist/startView/components/header/header.js +12 -0
- package/dist/startView/components/header/header.js.map +1 -0
- package/dist/startView/components/header/header.less.js +8 -0
- package/dist/startView/components/header/header.less.js.map +1 -0
- package/dist/startView/index.js +62 -0
- package/dist/startView/index.js.map +1 -0
- package/dist/startView/index.less.js +8 -0
- package/dist/startView/index.less.js.map +1 -0
- package/dist/tools/analyze-and-expand-prd.js +116 -0
- package/dist/tools/analyze-and-expand-prd.js.map +1 -0
- package/dist/tools/analyze-requirement-and-components.js +208 -0
- package/dist/tools/analyze-requirement-and-components.js.map +1 -0
- package/dist/tools/answer.js +33 -0
- package/dist/tools/answer.js.map +1 -0
- package/dist/tools/build-process.js +550 -0
- package/dist/tools/build-process.js.map +1 -0
- package/dist/tools/coding-subagent-as-tool.js +101 -0
- package/dist/tools/coding-subagent-as-tool.js.map +1 -0
- package/dist/tools/generate-ui-content.js +528 -0
- package/dist/tools/generate-ui-content.js.map +1 -0
- package/dist/tools/index.js +31 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/open-dsl.js +49 -0
- package/dist/tools/open-dsl.js.map +1 -0
- package/dist/tools/refactor-ui-content.js +292 -0
- package/dist/tools/refactor-ui-content.js.map +1 -0
- package/dist/tools/utils.js +832 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/view/components/header/header.js +59 -0
- package/dist/view/components/header/header.js.map +1 -0
- package/dist/view/components/header/header.less.js +8 -0
- package/dist/view/components/header/header.less.js.map +1 -0
- package/dist/view/index.js +184 -0
- package/dist/view/index.js.map +1 -0
- package/dist/view/index.less.js +8 -0
- package/dist/view/index.less.js.map +1 -0
- package/package.json +28 -6
- package/src/agents/app.ts +0 -301
- package/src/agents/common.ts +0 -471
- package/src/agents/custom.ts +0 -14
- package/src/agents/index.ts +0 -37
- package/src/agents/knowledges/README.md +0 -614
- package/src/agents/knowledges/SUMMARY.md +0 -527
- package/src/agents/knowledges/index.ts +0 -8
- package/src/agents/knowledges/knowledge-base.ts +0 -565
- package/src/agents/knowledges/knowledge-node.ts +0 -266
- package/src/agents/knowledges/types.ts +0 -208
- package/src/agents/utils/config.ts +0 -427
- package/src/agents/workspace/coding-manager.ts +0 -31
- package/src/agents/workspace/components-manager.ts +0 -124
- package/src/agents/workspace/outline-focus.ts +0 -188
- package/src/agents/workspace/outline-info.ts +0 -520
- package/src/agents/workspace/page-tree-generator.ts +0 -83
- package/src/agents/workspace/workspace.ts +0 -319
- package/src/agents/workspace-by-knowledges/MIGRATION.md +0 -568
- package/src/agents/workspace-by-knowledges/README.md +0 -521
- package/src/agents/workspace-by-knowledges/index.ts +0 -11
- package/src/agents/workspace-by-knowledges/providers/component-docs-provider.ts +0 -92
- package/src/agents/workspace-by-knowledges/providers/focus-info-provider.ts +0 -131
- package/src/agents/workspace-by-knowledges/providers/index.ts +0 -8
- package/src/agents/workspace-by-knowledges/providers/project-info-provider.ts +0 -151
- package/src/agents/workspace-by-knowledges/test.ts +0 -240
- package/src/agents/workspace-by-knowledges/types.ts +0 -56
- package/src/agents/workspace-by-knowledges/utils/components-manager.ts +0 -145
- package/src/agents/workspace-by-knowledges/utils/index.ts +0 -8
- package/src/agents/workspace-by-knowledges/utils/outline-focus.ts +0 -178
- package/src/agents/workspace-by-knowledges/utils/outline-info.ts +0 -521
- package/src/agents/workspace-by-knowledges/workspace.ts +0 -166
- package/src/api/cloud-components.ts +0 -129
- package/src/api-record-replay/README.md +0 -187
- package/src/api-record-replay/index.ts +0 -11
- package/src/api-record-replay/manager.ts +0 -168
- package/src/api-record-replay/replayer.ts +0 -148
- package/src/components/attachments/index.less +0 -117
- package/src/components/attachments/index.tsx +0 -136
- package/src/components/icons/index.less +0 -8
- package/src/components/icons/index.tsx +0 -44
- package/src/components/index.less +0 -34
- package/src/components/mention/index.less +0 -23
- package/src/components/mention/index.tsx +0 -19
- package/src/components/messages/index.less +0 -1013
- package/src/components/messages/index.tsx +0 -519
- package/src/components/sender/index.less +0 -203
- package/src/components/sender/index.tsx +0 -298
- package/src/components/types.ts +0 -31
- package/src/constants/index.ts +0 -8
- package/src/context/RequestStatusTracker.ts +0 -50
- package/src/context/index.ts +0 -83
- package/src/data.ts +0 -5
- package/src/global.d.ts +0 -100
- package/src/index.tsx +0 -264
- package/src/mock.ts +0 -1267
- package/src/preset/agents.ts +0 -380
- package/src/preset/createTemplates.ts +0 -25
- package/src/preset/index.ts +0 -12
- package/src/preset/prompts.ts +0 -235
- package/src/preset/requestAsStream.ts +0 -246
- package/src/startView/components/header/header.less +0 -17
- package/src/startView/components/header/header.tsx +0 -15
- package/src/startView/components/index.ts +0 -1
- package/src/startView/index.less +0 -34
- package/src/startView/index.tsx +0 -61
- package/src/tools/analyze-and-expand-prd.ts +0 -272
- package/src/tools/analyze-requirement-and-components.ts +0 -589
- package/src/tools/answer.ts +0 -59
- package/src/tools/build-process.ts +0 -1174
- package/src/tools/coding-subagent-as-tool.ts +0 -119
- package/src/tools/generate-ui-content.ts +0 -1083
- package/src/tools/index.ts +0 -28
- package/src/tools/open-dsl.ts +0 -69
- package/src/tools/refactor-ui-content.ts +0 -801
- package/src/tools/type.d.ts +0 -12
- package/src/tools/utils.ts +0 -914
- package/src/types/index.ts +0 -4
- package/src/view/components/header/header.less +0 -51
- package/src/view/components/header/header.tsx +0 -60
- package/src/view/components/index.ts +0 -1
- package/src/view/index.less +0 -5
- 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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"}
|