@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,240 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { openDB } from '../../node_modules/idb/build/index.js';
|
|
3
|
+
|
|
4
|
+
class IDB {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.dbPromise = this.init(options.dbName);
|
|
7
|
+
this.key = options.key;
|
|
8
|
+
}
|
|
9
|
+
getDB() {
|
|
10
|
+
return this.dbPromise;
|
|
11
|
+
}
|
|
12
|
+
init(dbName) {
|
|
13
|
+
return _asyncToGenerator(function* () {
|
|
14
|
+
return openDB(dbName, 1, {
|
|
15
|
+
upgrade(db) {
|
|
16
|
+
if (!db.objectStoreNames.contains("plan")) {
|
|
17
|
+
var planStore = db.createObjectStore("plan", {
|
|
18
|
+
autoIncrement: true
|
|
19
|
+
});
|
|
20
|
+
planStore.createIndex("key", "key", {
|
|
21
|
+
unique: false
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (!db.objectStoreNames.contains("content")) {
|
|
25
|
+
var contentStore = db.createObjectStore("content", {
|
|
26
|
+
autoIncrement: true
|
|
27
|
+
});
|
|
28
|
+
contentStore.createIndex("planId", "planId", {
|
|
29
|
+
unique: false
|
|
30
|
+
});
|
|
31
|
+
contentStore.createIndex("planId-type", ["planId", "type"], {
|
|
32
|
+
unique: true
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
})();
|
|
38
|
+
}
|
|
39
|
+
addPlan(plan) {
|
|
40
|
+
var _this = this;
|
|
41
|
+
return _asyncToGenerator(function* () {
|
|
42
|
+
try {
|
|
43
|
+
var db = yield _this.dbPromise;
|
|
44
|
+
var tx = db.transaction("plan", "readwrite");
|
|
45
|
+
var store = tx.objectStore("plan");
|
|
46
|
+
store.add({
|
|
47
|
+
key: _this.key,
|
|
48
|
+
content: yield plan.getDBContent()
|
|
49
|
+
});
|
|
50
|
+
} catch (e) {
|
|
51
|
+
console.error(e, plan);
|
|
52
|
+
}
|
|
53
|
+
})();
|
|
54
|
+
}
|
|
55
|
+
getPlans() {
|
|
56
|
+
var _this2 = this;
|
|
57
|
+
return _asyncToGenerator(function* () {
|
|
58
|
+
try {
|
|
59
|
+
var db = yield _this2.dbPromise;
|
|
60
|
+
var tx = db.transaction("plan", "readonly");
|
|
61
|
+
var store = tx.objectStore("plan");
|
|
62
|
+
var index = store.index("key");
|
|
63
|
+
var plans = yield index.getAll(_this2.key);
|
|
64
|
+
var contentTx = db.transaction("content", "readwrite");
|
|
65
|
+
var contentStore = contentTx.objectStore("content");
|
|
66
|
+
var id = "".concat(_this2.key, "-order");
|
|
67
|
+
var type = "order";
|
|
68
|
+
var order = yield contentStore.index("planId-type").get([id, type]);
|
|
69
|
+
var result = yield Promise.all(plans.map(/*#__PURE__*/function () {
|
|
70
|
+
var _ref = _asyncToGenerator(function* (plan) {
|
|
71
|
+
var {
|
|
72
|
+
content: {
|
|
73
|
+
uuid
|
|
74
|
+
}
|
|
75
|
+
} = plan;
|
|
76
|
+
var tx = db.transaction("content", "readwrite");
|
|
77
|
+
var store = tx.objectStore("content");
|
|
78
|
+
var content = yield store.index("planId").getAll(uuid);
|
|
79
|
+
return {
|
|
80
|
+
plan,
|
|
81
|
+
content
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
return function (_x) {
|
|
85
|
+
return _ref.apply(this, arguments);
|
|
86
|
+
};
|
|
87
|
+
}()));
|
|
88
|
+
if (order) {
|
|
89
|
+
return sortPlansByOrder(result, order.content);
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
} catch (e) {
|
|
93
|
+
console.error(e);
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
})();
|
|
97
|
+
}
|
|
98
|
+
putContent(content) {
|
|
99
|
+
var _this3 = this;
|
|
100
|
+
return _asyncToGenerator(function* () {
|
|
101
|
+
try {
|
|
102
|
+
var db = yield _this3.dbPromise;
|
|
103
|
+
var tx = db.transaction("content", "readwrite");
|
|
104
|
+
var store = tx.objectStore("content");
|
|
105
|
+
var {
|
|
106
|
+
id,
|
|
107
|
+
type,
|
|
108
|
+
content: putContent
|
|
109
|
+
} = content;
|
|
110
|
+
var res = yield store.index("planId-type").get([id, type]);
|
|
111
|
+
var newRecord = {
|
|
112
|
+
planId: id,
|
|
113
|
+
type,
|
|
114
|
+
content: putContent
|
|
115
|
+
};
|
|
116
|
+
if (res) {
|
|
117
|
+
var _key = yield store.index("planId-type").getKey([id, type]);
|
|
118
|
+
store.put(newRecord, _key);
|
|
119
|
+
} else {
|
|
120
|
+
store.add(newRecord);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// 等待事务完成
|
|
124
|
+
yield tx.done;
|
|
125
|
+
} catch (e) {
|
|
126
|
+
console.error(e, content);
|
|
127
|
+
}
|
|
128
|
+
})();
|
|
129
|
+
}
|
|
130
|
+
clear(planningAgents) {
|
|
131
|
+
var _this4 = this;
|
|
132
|
+
return _asyncToGenerator(function* () {
|
|
133
|
+
// 清空所有对应当前key的plan数据,plan再根据uuid去匹配清空content
|
|
134
|
+
var db = yield _this4.dbPromise;
|
|
135
|
+
|
|
136
|
+
// 同一个事务中同时操作 plan 与 content,确保数据一致性
|
|
137
|
+
var tx = db.transaction(["plan", "content"], "readwrite");
|
|
138
|
+
var planStore = tx.objectStore("plan");
|
|
139
|
+
var contentStore = tx.objectStore("content");
|
|
140
|
+
var planIndex = planStore.index("key");
|
|
141
|
+
|
|
142
|
+
// 先拿到当前 key 下所有 plan 记录以及对应的主键
|
|
143
|
+
var [plans, planPrimaryKeys] = yield Promise.all([planIndex.getAll(_this4.key), planIndex.getAllKeys(_this4.key)]);
|
|
144
|
+
if (planningAgents) {
|
|
145
|
+
var uuids = new Set(planningAgents.map(agent => agent.id));
|
|
146
|
+
var contentIndex = contentStore.index("planId");
|
|
147
|
+
var index = 0;
|
|
148
|
+
while (index < plans.length && uuids.size) {
|
|
149
|
+
var {
|
|
150
|
+
content: {
|
|
151
|
+
uuid
|
|
152
|
+
}
|
|
153
|
+
} = plans[index];
|
|
154
|
+
if (uuids.has(uuid)) {
|
|
155
|
+
yield planStore.delete(planPrimaryKeys[index]);
|
|
156
|
+
var contentKeys = yield contentIndex.getAllKeys(uuid);
|
|
157
|
+
for (var _key2 of contentKeys) {
|
|
158
|
+
yield contentStore.delete(_key2);
|
|
159
|
+
}
|
|
160
|
+
uuids.delete(uuid);
|
|
161
|
+
}
|
|
162
|
+
index++;
|
|
163
|
+
}
|
|
164
|
+
yield tx.done;
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// 删除 plan 记录
|
|
169
|
+
for (var primaryKey of planPrimaryKeys) {
|
|
170
|
+
yield planStore.delete(primaryKey);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// 根据每个 plan 的 uuid,删除 content 中的关联记录
|
|
174
|
+
for (var plan of plans) {
|
|
175
|
+
var {
|
|
176
|
+
content: {
|
|
177
|
+
uuid: _uuid
|
|
178
|
+
}
|
|
179
|
+
} = plan;
|
|
180
|
+
var _contentIndex = contentStore.index("planId");
|
|
181
|
+
var _contentKeys = yield _contentIndex.getAllKeys(_uuid);
|
|
182
|
+
for (var _key3 of _contentKeys) {
|
|
183
|
+
yield contentStore.delete(_key3);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
yield tx.done;
|
|
187
|
+
})();
|
|
188
|
+
}
|
|
189
|
+
updateOrder(ids) {
|
|
190
|
+
var _this5 = this;
|
|
191
|
+
return _asyncToGenerator(function* () {
|
|
192
|
+
try {
|
|
193
|
+
var db = yield _this5.dbPromise;
|
|
194
|
+
var tx = db.transaction("content", "readwrite");
|
|
195
|
+
var store = tx.objectStore("content");
|
|
196
|
+
var id = "".concat(_this5.key, "-order");
|
|
197
|
+
var type = "order";
|
|
198
|
+
if (ids.length) {
|
|
199
|
+
var res = yield store.index("planId-type").get([id, type]);
|
|
200
|
+
var newRecord = {
|
|
201
|
+
planId: id,
|
|
202
|
+
type,
|
|
203
|
+
content: ids
|
|
204
|
+
};
|
|
205
|
+
if (res) {
|
|
206
|
+
var _key4 = yield store.index("planId-type").getKey([id, type]);
|
|
207
|
+
store.put(newRecord, _key4);
|
|
208
|
+
} else {
|
|
209
|
+
store.add(newRecord);
|
|
210
|
+
}
|
|
211
|
+
} else {
|
|
212
|
+
var contentIndex = store.index("planId");
|
|
213
|
+
var contentKeys = yield contentIndex.getAllKeys(id);
|
|
214
|
+
for (var _key5 of contentKeys) {
|
|
215
|
+
yield store.delete(_key5);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// 等待事务完成
|
|
220
|
+
yield tx.done;
|
|
221
|
+
} catch (e) {
|
|
222
|
+
console.error(e, ids);
|
|
223
|
+
}
|
|
224
|
+
})();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function sortPlansByOrder(plans, orderArray) {
|
|
228
|
+
var orderMap = {};
|
|
229
|
+
orderArray.forEach((uuid, index) => {
|
|
230
|
+
orderMap[uuid] = index;
|
|
231
|
+
});
|
|
232
|
+
return plans.sort((a, b) => {
|
|
233
|
+
var indexA = orderMap[a.plan.content.uuid];
|
|
234
|
+
var indexB = orderMap[b.plan.content.uuid];
|
|
235
|
+
return indexA - indexB;
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export { IDB };
|
|
240
|
+
//# sourceMappingURL=idb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idb.js","sources":["../../../../../rxai/src/utils/idb.ts"],"sourcesContent":["import { openDB, type DBSchema, type IDBPDatabase } from \"idb\";\nimport { PlanningAgent } from \"../agent/planning\";\n\ninterface PlanRecord {\n key: string | number;\n content: {\n uuid: string;\n [key: string]: unknown;\n };\n}\n\ninterface ContentRecord {\n planId: string;\n [key: string]: unknown;\n}\n\ninterface MessagesDBSchema extends DBSchema {\n plan: {\n key: number;\n value: PlanRecord;\n indexes: {\n key: number;\n };\n };\n content: {\n key: number;\n value: ContentRecord;\n indexes: {\n planId: string;\n [\"planId-type\"]: [string, string];\n };\n };\n}\n\ninterface IDBOptions {\n dbName: string;\n key: number;\n}\n\nclass IDB {\n private key: number;\n private dbPromise: Promise<IDBPDatabase<MessagesDBSchema>>;\n\n constructor(options: IDBOptions) {\n this.dbPromise = this.init(options.dbName);\n this.key = options.key;\n }\n\n getDB() {\n return this.dbPromise;\n }\n\n private async init(dbName: string) {\n return openDB<MessagesDBSchema>(dbName, 1, {\n upgrade(db) {\n if (!db.objectStoreNames.contains(\"plan\")) {\n const planStore = db.createObjectStore(\"plan\", {\n autoIncrement: true,\n });\n planStore.createIndex(\"key\", \"key\", { unique: false });\n }\n\n if (!db.objectStoreNames.contains(\"content\")) {\n const contentStore = db.createObjectStore(\"content\", {\n autoIncrement: true,\n });\n contentStore.createIndex(\"planId\", \"planId\", {\n unique: false,\n });\n contentStore.createIndex(\"planId-type\", [\"planId\", \"type\"], {\n unique: true,\n });\n }\n },\n });\n }\n\n async addPlan(plan: PlanningAgent) {\n try {\n const db = await this.dbPromise;\n const tx = db.transaction(\"plan\", \"readwrite\");\n const store = tx.objectStore(\"plan\");\n store.add({\n key: this.key,\n content: await plan.getDBContent(),\n });\n } catch (e) {\n console.error(e, plan);\n }\n }\n\n async getPlans() {\n try {\n const db = await this.dbPromise;\n const tx = db.transaction(\"plan\", \"readonly\");\n const store = tx.objectStore(\"plan\");\n const index = store.index(\"key\");\n const plans = await index.getAll(this.key);\n\n const contentTx = db.transaction(\"content\", \"readwrite\");\n const contentStore = contentTx.objectStore(\"content\");\n const id = `${this.key}-order`;\n const type = \"order\";\n const order = await contentStore.index(\"planId-type\").get([id, type]);\n\n const result = await Promise.all(\n plans.map(async (plan) => {\n const {\n content: { uuid },\n } = plan;\n const tx = db.transaction(\"content\", \"readwrite\");\n const store = tx.objectStore(\"content\");\n const content = await store.index(\"planId\").getAll(uuid);\n\n return { plan, content };\n }),\n );\n\n if (order) {\n return sortPlansByOrder(result, order.content as string[]);\n }\n\n return result;\n } catch (e) {\n console.error(e);\n return [];\n }\n }\n\n async putContent(content: { id: string; type: string; content: unknown }) {\n try {\n const db = await this.dbPromise;\n const tx = db.transaction(\"content\", \"readwrite\");\n const store = tx.objectStore(\"content\");\n const { id, type, content: putContent } = content;\n const res = await store.index(\"planId-type\").get([id, type]);\n const newRecord = {\n planId: id,\n type,\n content: putContent,\n };\n\n if (res) {\n const key = await store.index(\"planId-type\").getKey([id, type])!;\n store.put(newRecord, key);\n } else {\n store.add(newRecord);\n }\n\n // 等待事务完成\n await tx.done;\n } catch (e) {\n console.error(e, content);\n }\n }\n\n async clear(planningAgents?: PlanningAgent[]) {\n // 清空所有对应当前key的plan数据,plan再根据uuid去匹配清空content\n const db = await this.dbPromise;\n\n // 同一个事务中同时操作 plan 与 content,确保数据一致性\n const tx = db.transaction([\"plan\", \"content\"], \"readwrite\");\n const planStore = tx.objectStore(\"plan\");\n const contentStore = tx.objectStore(\"content\");\n\n const planIndex = planStore.index(\"key\");\n\n // 先拿到当前 key 下所有 plan 记录以及对应的主键\n const [plans, planPrimaryKeys] = await Promise.all([\n planIndex.getAll(this.key),\n planIndex.getAllKeys(this.key),\n ]);\n\n if (planningAgents) {\n const uuids = new Set(planningAgents.map((agent) => agent.id));\n const contentIndex = contentStore.index(\"planId\");\n\n let index = 0;\n while (index < plans.length && uuids.size) {\n const {\n content: { uuid },\n } = plans[index];\n\n if (uuids.has(uuid)) {\n await planStore.delete(planPrimaryKeys[index]);\n const contentKeys = await contentIndex.getAllKeys(uuid);\n for (const key of contentKeys) {\n await contentStore.delete(key as number);\n }\n uuids.delete(uuid);\n }\n\n index++;\n }\n\n await tx.done;\n return;\n }\n\n // 删除 plan 记录\n for (const primaryKey of planPrimaryKeys) {\n await planStore.delete(primaryKey as number);\n }\n\n // 根据每个 plan 的 uuid,删除 content 中的关联记录\n for (const plan of plans) {\n const {\n content: { uuid },\n } = plan;\n\n const contentIndex = contentStore.index(\"planId\");\n const contentKeys = await contentIndex.getAllKeys(uuid);\n\n for (const key of contentKeys) {\n await contentStore.delete(key as number);\n }\n }\n\n await tx.done;\n }\n\n async updateOrder(ids: string[]) {\n try {\n const db = await this.dbPromise;\n const tx = db.transaction(\"content\", \"readwrite\");\n const store = tx.objectStore(\"content\");\n const id = `${this.key}-order`;\n const type = \"order\";\n\n if (ids.length) {\n const res = await store.index(\"planId-type\").get([id, type]);\n const newRecord = {\n planId: id,\n type,\n content: ids,\n };\n\n if (res) {\n const key = await store.index(\"planId-type\").getKey([id, type])!;\n store.put(newRecord, key);\n } else {\n store.add(newRecord);\n }\n } else {\n const contentIndex = store.index(\"planId\");\n const contentKeys = await contentIndex.getAllKeys(id);\n\n for (const key of contentKeys) {\n await store.delete(key as number);\n }\n }\n\n // 等待事务完成\n await tx.done;\n } catch (e) {\n console.error(e, ids);\n }\n }\n}\n\nexport { IDB };\n\nfunction sortPlansByOrder(\n plans: {\n plan: PlanRecord;\n content: ContentRecord[];\n }[],\n orderArray: string[],\n) {\n const orderMap: Record<string, number> = {};\n orderArray.forEach((uuid, index) => {\n orderMap[uuid] = index;\n });\n\n return plans.sort((a, b) => {\n const indexA = orderMap[a.plan.content.uuid];\n const indexB = orderMap[b.plan.content.uuid];\n\n return indexA - indexB;\n });\n}\n"],"names":["IDB","constructor","options","dbPromise","init","dbName","key","getDB","_asyncToGenerator","openDB","upgrade","db","objectStoreNames","contains","planStore","createObjectStore","autoIncrement","createIndex","unique","contentStore","addPlan","plan","_this","tx","transaction","store","objectStore","add","content","getDBContent","e","console","error","getPlans","_this2","index","plans","getAll","contentTx","id","concat","type","order","get","result","Promise","all","map","_ref","uuid","_x","apply","arguments","sortPlansByOrder","putContent","_this3","res","newRecord","planId","getKey","put","done","clear","planningAgents","_this4","planIndex","planPrimaryKeys","getAllKeys","uuids","Set","agent","contentIndex","length","size","has","delete","contentKeys","primaryKey","updateOrder","ids","_this5","orderArray","orderMap","forEach","sort","a","b","indexA","indexB"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var retry = (execute, count, check) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var attempt = currentCount => {
|
|
4
|
+
try {
|
|
5
|
+
var result = execute();
|
|
6
|
+
if (result instanceof Promise) {
|
|
7
|
+
result.then(resolve).catch(error => {
|
|
8
|
+
if (currentCount > 1 && (check ? check(error) : true)) {
|
|
9
|
+
console.error("\u91CD\u8BD5\u4E2D... \u5269\u4F59\u6B21\u6570: ".concat(currentCount - 2), error);
|
|
10
|
+
attempt(currentCount - 1);
|
|
11
|
+
} else {
|
|
12
|
+
reject(error);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
} else {
|
|
16
|
+
resolve(result);
|
|
17
|
+
}
|
|
18
|
+
} catch (error) {
|
|
19
|
+
if (currentCount > 1 && (check ? check(error) : true)) {
|
|
20
|
+
console.error("\u91CD\u8BD5\u4E2D... \u5269\u4F59\u6B21\u6570: ".concat(currentCount - 2), error);
|
|
21
|
+
attempt(currentCount - 1);
|
|
22
|
+
} else {
|
|
23
|
+
reject(error);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
attempt(count + 1);
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { retry };
|
|
32
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sources":["../../../../../rxai/src/utils/retry.ts"],"sourcesContent":["const retry = <T>(\n execute: () => T,\n count: number,\n check?: (error: unknown) => boolean,\n): Promise<T> => {\n return new Promise((resolve, reject) => {\n const attempt = (currentCount: number) => {\n try {\n const result = execute();\n\n if (result instanceof Promise) {\n result.then(resolve).catch((error) => {\n if (currentCount > 1 && (check ? check(error) : true)) {\n console.error(`重试中... 剩余次数: ${currentCount - 2}`, error);\n attempt(currentCount - 1);\n } else {\n reject(error);\n }\n });\n } else {\n resolve(result);\n }\n } catch (error) {\n if (currentCount > 1 && (check ? check(error) : true)) {\n console.error(`重试中... 剩余次数: ${currentCount - 2}`, error);\n attempt(currentCount - 1);\n } else {\n reject(error);\n }\n }\n };\n\n attempt(count + 1);\n });\n};\n\nexport { retry };\n"],"names":["retry","execute","count","check","Promise","resolve","reject","attempt","currentCount","result","then","catch","error","console","concat"],"mappings":"AAAA,IAAMA,KAAK,GAAGA,CACZC,OAAgB,EAChBC,KAAa,EACbC,KAAmC,KACpB;AACf,EAAA,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,IAAMC,OAAO,GAAIC,YAAoB,IAAK;MACxC,IAAI;AACF,QAAA,IAAMC,MAAM,GAAGR,OAAO,EAAE;QAExB,IAAIQ,MAAM,YAAYL,OAAO,EAAE;UAC7BK,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACM,KAAK,CAAEC,KAAK,IAAK;AACpC,YAAA,IAAIJ,YAAY,GAAG,CAAC,KAAKL,KAAK,GAAGA,KAAK,CAACS,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE;cACrDC,OAAO,CAACD,KAAK,CAAA,kDAAA,CAAAE,MAAA,CAAiBN,YAAY,GAAG,CAAC,CAAA,EAAII,KAAK,CAAC;AACxDL,cAAAA,OAAO,CAACC,YAAY,GAAG,CAAC,CAAC;AAC3B,YAAA,CAAC,MAAM;cACLF,MAAM,CAACM,KAAK,CAAC;AACf,YAAA;AACF,UAAA,CAAC,CAAC;AACJ,QAAA,CAAC,MAAM;UACLP,OAAO,CAACI,MAAM,CAAC;AACjB,QAAA;MACF,CAAC,CAAC,OAAOG,KAAK,EAAE;AACd,QAAA,IAAIJ,YAAY,GAAG,CAAC,KAAKL,KAAK,GAAGA,KAAK,CAACS,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE;UACrDC,OAAO,CAACD,KAAK,CAAA,kDAAA,CAAAE,MAAA,CAAiBN,YAAY,GAAG,CAAC,CAAA,EAAII,KAAK,CAAC;AACxDL,UAAAA,OAAO,CAACC,YAAY,GAAG,CAAC,CAAC;AAC3B,QAAA,CAAC,MAAM;UACLF,MAAM,CAACM,KAAK,CAAC;AACf,QAAA;AACF,MAAA;IACF,CAAC;AAEDL,IAAAA,OAAO,CAACL,KAAK,GAAG,CAAC,CAAC;AACpB,EAAA,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
var uuid = () => {
|
|
2
|
+
var _crypto, _crypto$randomUUID;
|
|
3
|
+
return ((_crypto = crypto) === null || _crypto === void 0 || (_crypto$randomUUID = _crypto.randomUUID) === null || _crypto$randomUUID === void 0 ? void 0 : _crypto$randomUUID.call(_crypto)) || "".concat(new Date().getTime(), "-").concat(Math.random()).replace("0.", "");
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
export { uuid };
|
|
7
|
+
//# sourceMappingURL=uuid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.js","sources":["../../../../../rxai/src/utils/uuid.ts"],"sourcesContent":["const uuid = () => {\n return (\n crypto?.randomUUID?.() ||\n `${new Date().getTime()}-${Math.random()}`.replace(\"0.\", \"\")\n );\n};\n\nexport { uuid };\n"],"names":["uuid","_crypto","_crypto$randomUUID","crypto","randomUUID","call","concat","Date","getTime","Math","random","replace"],"mappings":"AAAA,IAAMA,IAAI,GAAGA,MAAM;EAAA,IAAAC,OAAA,EAAAC,kBAAA;EACjB,OACE,CAAA,CAAAD,OAAA,GAAAE,MAAM,cAAAF,OAAA,KAAA,MAAA,IAAA,CAAAC,kBAAA,GAAND,OAAA,CAAQG,UAAU,MAAA,IAAA,IAAAF,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAA,CAAAG,IAAA,CAAAJ,OAAqB,CAAC,KACtB,EAAA,CAAAK,MAAA,CAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE,EAAA,GAAA,CAAA,CAAAF,MAAA,CAAIG,IAAI,CAACC,MAAM,EAAE,CAAA,CAAGC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAEhE;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import css from './header.less.js';
|
|
4
|
+
|
|
5
|
+
var Header = () => {
|
|
6
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
7
|
+
className: classNames(css.header)
|
|
8
|
+
}, "\u6B22\u8FCE\u4F7F\u7528");
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { Header };
|
|
12
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sources":["../../../../src/startView/components/header/header.tsx"],"sourcesContent":["import React from \"react\"\nimport classNames from \"classnames\"\nimport css from \"./header.less\"\n\nconst Header = () => {\n return (\n <div className={classNames(css.header)}>\n 欢迎使用\n {/* <img src=\"https://my.mybricks.world/image/icon.png\"/>\n MyBricks.ai */}\n </div>\n )\n}\n\nexport { Header }\n"],"names":["Header","React","createElement","className","classNames","css","header"],"mappings":";;;;AAIA,IAAMA,MAAM,GAAGA,MAAM;EACnB,oBACEC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,UAAU,CAACC,GAAG,CAACC,MAAM;AAAE,GAAA,EAAC,0BAInC,CAAC;AAEV;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import styleInject from '../../../plugin-ai/node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".header_header__Ctl-8 {\n color: var(--mybricks-color-primary);\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n margin-bottom: 8px;\n font-size: 24px;\n font-weight: 600;\n line-height: 32px;\n display: flex;\n}\n.header_header__Ctl-8 img {\n width: 40px;\n height: 40px;\n object-fit: cover;\n}\n";
|
|
4
|
+
var css = {"header":"header_header__Ctl-8"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { css as default };
|
|
8
|
+
//# sourceMappingURL=header.less.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.less.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React, { useRef, useState, useEffect } from 'react';
|
|
3
|
+
import { Agents } from '../agents/index.js';
|
|
4
|
+
import { Messages } from '../components/messages/index.js';
|
|
5
|
+
import { Sender } from '../components/sender/index.js';
|
|
6
|
+
import css from './index.less.js';
|
|
7
|
+
import { context } from '../context/index.js';
|
|
8
|
+
import classNames from 'classnames';
|
|
9
|
+
import { Header } from './components/header/header.js';
|
|
10
|
+
|
|
11
|
+
var StartView = _ref => {
|
|
12
|
+
var {
|
|
13
|
+
api,
|
|
14
|
+
user,
|
|
15
|
+
copilot
|
|
16
|
+
} = _ref;
|
|
17
|
+
var senderRef = useRef(null);
|
|
18
|
+
var [loading, setLoading] = useState(false);
|
|
19
|
+
var [empty, setEmpty] = useState(true);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!loading) {
|
|
22
|
+
senderRef.current.focus();
|
|
23
|
+
}
|
|
24
|
+
}, [loading]);
|
|
25
|
+
var onSend = params => {
|
|
26
|
+
setEmpty(false);
|
|
27
|
+
if (!loading) {
|
|
28
|
+
setLoading(true);
|
|
29
|
+
Agents.requestGenerateCanvasAgent(_objectSpread2(_objectSpread2({}, params), {}, {
|
|
30
|
+
onProgress: status => {
|
|
31
|
+
if (status === "ing") {
|
|
32
|
+
var _api$onProgress;
|
|
33
|
+
(_api$onProgress = api.onProgress) === null || _api$onProgress === void 0 || _api$onProgress.call(api, status);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
rxai: context.globalRxai
|
|
37
|
+
})).then(() => {}).catch(e => {
|
|
38
|
+
console.error("[pluginAI - startView - onSend]", e);
|
|
39
|
+
}).finally(() => {
|
|
40
|
+
setLoading(false);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: classNames(css['view'], {
|
|
46
|
+
[css['empty']]: empty
|
|
47
|
+
})
|
|
48
|
+
}, empty && /*#__PURE__*/React.createElement(Header, null), /*#__PURE__*/React.createElement(Messages, {
|
|
49
|
+
user: user,
|
|
50
|
+
rxai: context.globalRxai,
|
|
51
|
+
copilot: copilot
|
|
52
|
+
}), /*#__PURE__*/React.createElement(Sender, {
|
|
53
|
+
ref: senderRef,
|
|
54
|
+
loading: loading,
|
|
55
|
+
onSend: onSend,
|
|
56
|
+
placeholder: "\u60A8\u597D\uFF0C\u6211\u662F".concat(context.name, "\uFF0C\u8BF7\u8BE6\u7EC6\u63CF\u8FF0\u60A8\u8981\u642D\u5EFA\u7684\u5E94\u7528\u5185\u5BB9"),
|
|
57
|
+
attachmentsPrompt: "根据附件中的图片内容进行设计开发,要求尽可能还原其中的各类设计细节以及功能,在此基础上可做调整优化创新"
|
|
58
|
+
}));
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export { StartView };
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/startView/index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport { Agents } from \"../agents\";\nimport { Messages } from \"../components/messages\";\nimport { Sender, SenderRef, SenderProps } from \"../components/sender\";\nimport css from \"./index.less\"\nimport { context } from \"../context\";\nimport classNames from \"classnames\";\nimport { Header } from \"./components\";\n\nconst StartView = ({ api, user, copilot }: any) => {\n const senderRef = useRef<SenderRef>(null);\n const [loading, setLoading] = useState(false);\n const [empty, setEmpty] = useState(true);\n\n useEffect(() => {\n if (!loading) {\n senderRef.current!.focus();\n }\n }, [loading])\n\n const onSend = (params: Parameters<SenderProps['onSend']>[0]) => {\n setEmpty(false);\n if (!loading) {\n setLoading(true);\n Agents.requestGenerateCanvasAgent({\n ...params,\n onProgress: (status: string) => {\n if (status === \"ing\") {\n api.onProgress?.(status);\n }\n },\n rxai: context.globalRxai\n }).then(() => {\n\n }).catch((e) => {\n console.error(\"[pluginAI - startView - onSend]\", e);\n }).finally(() => {\n setLoading(false);\n });\n }\n }\n\n return (\n <div className={classNames(css['view'], {\n [css['empty']]: empty\n })}\n >\n {empty && <Header />}\n <Messages user={user} rxai={context.globalRxai} copilot={copilot} />\n <Sender\n ref={senderRef}\n loading={loading}\n onSend={onSend}\n placeholder={`您好,我是${context.name},请详细描述您要搭建的应用内容`}\n attachmentsPrompt={\"根据附件中的图片内容进行设计开发,要求尽可能还原其中的各类设计细节以及功能,在此基础上可做调整优化创新\"}\n />\n </div>\n )\n}\n\nexport { StartView }\n"],"names":["StartView","_ref","api","user","copilot","senderRef","useRef","loading","setLoading","useState","empty","setEmpty","useEffect","current","focus","onSend","params","Agents","requestGenerateCanvasAgent","_objectSpread","onProgress","status","_api$onProgress","call","rxai","context","globalRxai","then","catch","e","console","error","finally","React","createElement","className","classNames","css","Header","Messages","Sender","ref","placeholder","concat","name","attachmentsPrompt"],"mappings":";;;;;;;;;;AASA,IAAMA,SAAS,GAAGC,IAAA,IAAiC;EAAA,IAAhC;IAAEC,GAAG;IAAEC,IAAI;AAAEC,IAAAA;AAAa,GAAC,GAAAH,IAAA;AAC5C,EAAA,IAAMI,SAAS,GAAGC,MAAM,CAAY,IAAI,CAAC;EACzC,IAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EAC7C,IAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGF,QAAQ,CAAC,IAAI,CAAC;AAExCG,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAACL,OAAO,EAAE;AACZF,MAAAA,SAAS,CAACQ,OAAO,CAAEC,KAAK,EAAE;AAC5B,IAAA;AACF,EAAA,CAAC,EAAE,CAACP,OAAO,CAAC,CAAC;EAEb,IAAMQ,MAAM,GAAIC,MAA4C,IAAK;IAC/DL,QAAQ,CAAC,KAAK,CAAC;IACf,IAAI,CAACJ,OAAO,EAAE;MACZC,UAAU,CAAC,IAAI,CAAC;AAChBS,MAAAA,MAAM,CAACC,0BAA0B,CAAAC,cAAA,CAAAA,cAAA,KAC5BH,MAAM,CAAA,EAAA,EAAA,EAAA;QACTI,UAAU,EAAGC,MAAc,IAAK;UAC9B,IAAIA,MAAM,KAAK,KAAK,EAAE;AAAA,YAAA,IAAAC,eAAA;AACpB,YAAA,CAAAA,eAAA,GAAApB,GAAG,CAACkB,UAAU,MAAA,IAAA,IAAAE,eAAA,KAAA,MAAA,IAAdA,eAAA,CAAAC,IAAA,CAAArB,GAAG,EAAcmB,MAAM,CAAC;AAC1B,UAAA;QACF,CAAC;QACDG,IAAI,EAAEC,OAAO,CAACC;AAAU,OAAA,CACzB,CAAC,CAACC,IAAI,CAAC,MAAM,CAEd,CAAC,CAAC,CAACC,KAAK,CAAEC,CAAC,IAAK;AACdC,QAAAA,OAAO,CAACC,KAAK,CAAC,iCAAiC,EAAEF,CAAC,CAAC;AACrD,MAAA,CAAC,CAAC,CAACG,OAAO,CAAC,MAAM;QACfxB,UAAU,CAAC,KAAK,CAAC;AACnB,MAAA,CAAC,CAAC;AACJ,IAAA;EACF,CAAC;EAED,oBACEyB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,UAAU,CAACC,GAAG,CAAC,MAAM,CAAC,EAAE;AACtC,MAAA,CAACA,GAAG,CAAC,OAAO,CAAC,GAAG3B;KACjB;AAAE,GAAA,EAEAA,KAAK,iBAAIuB,KAAA,CAAAC,aAAA,CAACI,MAAM,EAAA,IAAE,CAAC,eACpBL,KAAA,CAAAC,aAAA,CAACK,QAAQ,EAAA;AAACpC,IAAAA,IAAI,EAAEA,IAAK;IAACqB,IAAI,EAAEC,OAAO,CAACC,UAAW;AAACtB,IAAAA,OAAO,EAAEA;AAAQ,GAAE,CAAC,eACpE6B,KAAA,CAAAC,aAAA,CAACM,MAAM,EAAA;AACLC,IAAAA,GAAG,EAAEpC,SAAU;AACfE,IAAAA,OAAO,EAAEA,OAAQ;AACjBQ,IAAAA,MAAM,EAAEA,MAAO;AACf2B,IAAAA,WAAW,mCAAAC,MAAA,CAAUlB,OAAO,CAACmB,IAAI,EAAA,4FAAA,CAAkB;AACnDC,IAAAA,iBAAiB,EAAE;AAAsD,GAC1E,CACE,CAAC;AAEV;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import styleInject from '../plugin-ai/node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".index_start-view__ZJ3ZM {\n width: 80%;\n max-width: 768px;\n}\n.index_start-view__ZJ3ZM .index_editor__QXYIY {\n width: 100%;\n}\n.index_view__3gbKK {\n width: 80%;\n max-width: 768px;\n background-color: transparent;\n border: solid 1px rgba(0, 0, 0, 0.13);\n border-radius: 20px;\n box-shadow: 0 5px 16px -4px #00000012;\n color: rgba(0, 0, 0, 0.9);\n cursor: default;\n height: 80%;\n display: flex;\n flex-direction: column;\n}\n.index_view__3gbKK.index_empty__t2cx1 {\n display: flex;\n flex-direction: column;\n border: none;\n height: fit-content;\n box-shadow: none;\n}\n";
|
|
4
|
+
var css = {"view":"index_view__3gbKK","empty":"index_empty__t2cx1"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { css as default };
|
|
8
|
+
//# sourceMappingURL=index.less.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.less.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { RxaiError } from '../rxai/src/error/base.js';
|
|
3
|
+
import '../rxai/node_modules/idb/build/index.js';
|
|
4
|
+
import 'node-forge';
|
|
5
|
+
import { fileFormat } from '../rxai/src/prompt/base.js';
|
|
6
|
+
import { getFiles } from './utils.js';
|
|
7
|
+
import { DeviceType } from '../types/index.js';
|
|
8
|
+
|
|
9
|
+
var NAME = 'analyze-and-expand-prd';
|
|
10
|
+
analyzeAndExpandPrd.toolName = NAME;
|
|
11
|
+
function analyzeAndExpandPrd(config) {
|
|
12
|
+
return {
|
|
13
|
+
name: NAME,
|
|
14
|
+
displayName: "对原始产品需求文档分析并扩写",
|
|
15
|
+
description: "\u5BF9\u7528\u6237\u63D0\u4F9B\u7684\u539F\u59CB\u4EA7\u54C1\u9700\u6C42\u6587\u6863\u8FDB\u884C\u9700\u6C42\u5206\u6790\u4E0E\u6269\u5199\uFF0C\u6700\u540E\u62C6\u5206\u6210\u4E0D\u540C\u7684\u9875\u9762\uFF0C\u8F93\u51FA\u7ED3\u6784\u5316\u7684\u7ED3\u679C\u3002\n\u53C2\u6570\uFF1A\u539F\u59CB\u9700\u6C42\u6587\u6863\uFF08\u53EF\u80FD\u662F\u4E00\u53E5\u8BDD\u3001\u4E00\u4E2A\u56FE\u7247\u3001\u751A\u81F3\u5404\u79CD\u7C7B\u578B\u9644\u4EF6\uFF09\n\u4F5C\u7528\uFF1A\u5C06\u6A21\u7CCA\u3001\u7B80\u7565\u7684\u9700\u6C42\u8F6C\u5316\u4E3A\u6E05\u6670\u3001\u5177\u4F53\u5230\u6BCF\u4E2A\u9875\u9762\u3001\u4EE5\u53CA\u6BCF\u4E2A\u9875\u9762\u81EA\u4E0A\u800C\u4E0B\u90FD\u6709\u54EA\u4E9B\u5177\u4F53\u7684\u529F\u80FD\u7684\u8BE6\u7EC6\u63CF\u8FF0\uFF0C\u7528\u4E8E\u6307\u5BFC\u540E\u7EED\u4F4E\u4EE3\u7801\u642D\u5EFA\uFF1B\n\u8FD4\u56DE\u503C\uFF1A\u6269\u5199\u540E\u7684\u7ED3\u6784\u5316\u6587\u6863\uFF1B",
|
|
16
|
+
getPrompts: () => {
|
|
17
|
+
return "<\u5DE5\u5177\u603B\u89C8>\n\u4F60\u662FMyBricks\u4F4E\u4EE3\u7801\u5E73\u53F0\uFF08\u4EE5\u4E0B\u7B80\u79F0MyBricks\u5E73\u53F0\u6216MyBricks\uFF09\u7684\u8D44\u6DF1\u642D\u5EFA\u52A9\u624B\uFF0C\u7ECF\u9A8C\u4E30\u5BCC\u3001\u5B9E\u4E8B\u6C42\u662F\u3001\u903B\u8F91\u4E25\u8C28\u3002\n \n \u4F60\u9700\u8981\u6839\u636E\u7528\u6237\u63D0\u51FA\u7684\u95EE\u9898\u6216\u9700\u6C42\uFF0C\u5207\u6362\u4E0D\u540C\u7684\u8EAB\u4EFD\uFF0C\u5B8C\u6210\u4EE5\u4E0B\u4EFB\u52A1\n\n \u4EFB\u52A1\u4E00\uFF1A\u6839\u636E\u3010\u7528\u6237\u9700\u6C42\u3011\uFF0C\u4F5C\u4E3A\u4EA7\u54C1\u7ECF\u7406\uFF0C\u4E3A\u7528\u6237\u5408\u7406\u6574\u7406\u6216\u8005\u62D3\u5C55\u9700\u6C42\uFF0C\u8FD4\u56DE\u6574\u7406\u597D\u7684\u9700\u6C42\uFF1B\n \u4EFB\u52A1\u4E8C\uFF1A\u6839\u636E\u3010\u7528\u6237\u9700\u6C42\u3011\uFF0C\u4F5C\u4E3A\u4EA7\u54C1\u7ECF\u7406\uFF0C\u4E3A\u7528\u6237\u63D0\u4F9B\u4E00\u4E2A\u5E94\u7528\u7684\u6807\u9898\uFF0C\u8A00\u7B80\u610F\u8D45\uFF0C\u4E0D\u591A\u4E8E10\u4E2A\u5B57\uFF1B\n \u4EFB\u52A1\u4E09\uFF1A\u6839\u636E\u3010\u7528\u6237\u9700\u6C42\u3011\u548C\u3010\u62D3\u5C55\u9700\u6C42\u3011\uFF0C\u4F5C\u4E3A\u8BBE\u8BA1\u5E08\uFF0C\u4E3A\u7528\u6237\u63D0\u4F9B\u6837\u5F0F\u8BBE\u8BA1\u53C2\u8003\uFF1B\n</\u5DE5\u5177\u603B\u89C8>\n\n<\u7279\u522B\u6CE8\u610F>\n - \u5BF9\u8BDD\u53EF\u80FD\u7531\u591A\u8F6E\u6784\u6210\uFF0C\u6BCF\u8F6E\u5BF9\u8BDD\u4E2D\uFF0C\u7528\u6237\u4F1A\u63D0\u51FA\u4E0D\u540C\u7684\u95EE\u9898\u6216\u7ED9\u4E0E\u4FE1\u606F\u8865\u5145\uFF0C\u4F60\u9700\u8981\u6839\u636E\u7528\u6237\u7684\u95EE\u9898\u3001\u9010\u6B65\u5206\u6790\u5904\u7406\u3002\n - \u4F60\u6240\u9762\u5411\u7684\u7528\u6237\u662FMyBricks\u5E73\u53F0\u4E0A\u7684\u7528\u6237\uFF0C\u8FD9\u4E9B\u7528\u6237\u4E0D\u662F\u4E13\u4E1A\u7684\u5F00\u53D1\u4EBA\u5458\uFF0C\u56E0\u6B64\u4F60\u9700\u8981\u4EE5\u7B80\u6D01\u3001\u6613\u61C2\u7684\u65B9\u5F0F\uFF0C\u56DE\u7B54\u7528\u6237\u7684\u95EE\u9898\u3002\n - \u5982\u679C\u9644\u4EF6\u4E2D\u6709\u56FE\u7247\uFF0C\u8BF7\u5728\u8BBE\u8BA1\u5F00\u53D1\u4E2D\u4F5C\u4E3A\u91CD\u8981\u53C2\u8003\uFF0C\u8FDB\u884C\u8BE6\u7EC6\u7684\u9700\u6C42\u53CA\u8BBE\u8BA1\u5206\u6790\uFF0C\u5F53\u4F5C\u7528\u6237\u7684\u9700\u6C42\u3002\n - \u4F60\u7684\u56DE\u7B54\u9762\u5411\u7684\u662F\u975E\u4E13\u4E1A\u5F00\u53D1\u4EBA\u5458\uFF0C\u8BF7\u52A1\u5FC5\u4F7F\u7528**\u7B80\u6D01\u3001\u6613\u61C2\u3001\u53E3\u8BED\u5316**\u7684\u8BED\u8A00\u3002\n</\u7279\u522B\u6CE8\u610F>\n\n<\u9075\u5FAA\u539F\u5219>\n\u4F60\u8981\u5207\u6362\u4E0D\u540C\u7684\u89D2\u8272\u6765\u5B8C\u6210\u4E00\u4E2A\u9700\u6C42\u7684\u8BBE\u8BA1\u548C\u5F00\u53D1\uFF0C\u540C\u65F6\u7279\u522B\u6CE8\u610F\uFF0C\u751F\u6210\u7684\u9875\u9762\u6570\u91CF\u4E0D\u5F97\u8D85\u8FC73\u4E2A\u3002\n</\u9075\u5FAA\u539F\u5219>\n\n<\u5904\u7406\u6D41\u7A0B>\n \u6839\u636E\u4F60\u7684\u89D2\u8272\u5B9A\u4E49\u6765\u5B8C\u6210\u4EE5\u4E0B\u4EFB\u52A1\uFF0C\u6C47\u603B\u7ED9\u51FA\u4E00\u4E2AJson\n <\u4EFB\u52A1\u4E00>\n \u89D2\u8272\uFF1A\u4EA7\u54C1\u7ECF\u7406\n \u5DE5\u4F5C\u4EFB\u52A1\uFF1A\u68B3\u7406\u9700\u6C42\uFF0C\u5E76\u4E14\u5206\u6790\u603B\u5171\u9700\u8981\u51E0\u4E2A\u9875\u9762\u6765\u627F\u63A5\u8FD9\u4E2A\u7CFB\u7EDF\n \u8FD4\u56DE\u5185\u5BB9\uFF1A\u6BCF\u4E2A\u9875\u9762\u7684\u540D\u79F0\u4EE5\u53CA\u9700\u6C42\n \u5BF9\u5E94\u5B57\u6BB5\uFF1A\u9875\u9762\u5B57\u6BB5\u4E2D\u7684title\u4EE5\u53CAprd\n \u8FD4\u56DE\u89C4\u5219\uFF1A\n - \u5982\u679C\u662F\u4E00\u53E5\u8BDD\u9700\u6C42\uFF0C\u4ECE\u4E0A\u5230\u4E0B\u68B3\u7406\u5E76\u62D3\u5C55\u9700\u6C42\uFF0C\u5E76\u6574\u7406\u6210\u9875\u9762\u7EF4\u5EA6\u7684\u9700\u6C42\n - \u5982\u4F55\u5B9A\u4E49\u4E00\u53E5\u8BDD\u9700\u6C42\uFF1F\u4F8B\u5982 \"\u4E00\u4E2A\u7B80\u5386\u9875\u9762\" \"\u5B9E\u73B0\u7528\u6237\u7BA1\u7406\u7CFB\u7EDF\" \"\u4E00\u4E2A\u9996\u9875\"\n - \u5982\u4F55\u62D3\u5C55\uFF1F\u62D3\u5C55\u662F\u4EC5\u5206\u6790\u529F\u80FD\u6A21\u5757\u5C31\u884C\uFF0C\u4E0D\u8981\u5177\u4F53\u5230\u7EC6\u8282\uFF0C\u540C\u65F6\u8865\u5145\u4E00\u4E0B\u201C\u4E0D\u6B62\u4E8E\u8FD9\u4E9B\u6A21\u5757\u201D\u7684\u63CF\u8FF0\u6027\u8BCD\u6C47\uFF0C\u544A\u77E5\u8FD9\u53EA\u662F\u7B80\u7565\u7684\u9700\u6C42\uFF0C\u53EF\u4EE5\u8865\u5145\u66F4\u591A\u5185\u5BB9\n - \"\u4E00\u4E2A\u7B80\u5386\u9875\u9762\" -> \"\u4E00\u4E2A\u4E2A\u4EBA\u7B80\u5386\u9875\u9762\uFF0C\u5305\u542B\u4E2A\u4EBA\u4ECB\u7ECD\u3001\u6280\u80FD\u7279\u957F\u3001\u9879\u76EE\u7ECF\u5386\u3001\u8054\u7CFB\u6211\u7B49\u6A21\u5757\u7684\u9875\u9762\"\n - \"\u5B9E\u73B0\u7528\u6237\u7BA1\u7406\u7CFB\u7EDF\" -> \"\n \u4E00\u4E2A\u7528\u6237\u7BA1\u7406\u7CFB\u7EDF\uFF0C\u5305\u542B\u4EE5\u4E0B\u9875\u9762\uFF1A\n - \u767B\u5F55\u9875\u9762\n - \u7528\u6237\u5217\u8868\u9875\u9762\n - \u65B0\u589E\u7528\u6237\u9875\u9762\n - \u5220\u9664\u7528\u6237\u9875\u9762\"\n - \u5982\u679C\u9700\u6C42\u8F83\u4E3A\u8BE6\u5B9E\uFF0C\u6BD4\u5982\u9644\u4EF6\u4E2D\u56FE\u7247\u548C\u6587\u6863\u53EF\u4EE5\u63D0\u53D6\u51FA\u5B8C\u6574\u7684\u9700\u6C42\uFF0C\u5219\u6574\u7406\u4E4B\u540E\uFF0C\u5728\u6EE1\u8DB3\u7528\u6237\u9700\u6C42\u7684\u57FA\u7840\u4E0A\uFF0C\u9002\u5F53\u8865\u5145\u7EC6\u8282\u5E76\u6574\u7406\u6210\u9875\u9762\u7EF4\u5EA6\u7684\u9700\u6C42\n - \u5982\u4F55\u5B9A\u4E49\u9700\u6C42\u8F83\u4E3A\u8BE6\u5B9E\uFF1F\u4F8B\u5982 \"\u4E00\u4E2A\u5305\u542B\u5BFC\u822A\u3001\u516C\u53F8\u4ECB\u7ECD\u3001\u516C\u53F8\u4F18\u52BF\u3001\u9875\u811A\u7684\u516C\u53F8\u5B98\u7F51\"\uFF0C\u8FD9\u79CD\u5BF9\u5185\u5BB9\u6709\u5B9A\u4E49\u7684\u9700\u6C42\u5C31\u65E0\u9700\u62D3\u5C55\n \u6CE8\u610F\uFF1A\n - \u7531\u4E8E\u6211\u4EEC\u4E0D\u80FD\u5B9E\u73B0\u592A\u590D\u6742\u7684\u9700\u6C42\uFF0C\u9700\u8981\u63A7\u5236\u62D3\u5C55\u9700\u6C42\u7684\u89C4\u6A21\uFF0C\u62D3\u5C55\u4E0D\u8981\u8D85\u8FC73\u4E2A\u9875\u9762\n - \u9700\u6C42\u5FC5\u987B\u662F\u6A21\u7CCA\u7684\u529F\u80FD\u70B9\uFF0C\u4EC5\u5141\u8BB8\u8BF4\u660E\u6709\u8FD9\u4E2A\u6A21\u5757\uFF1A\n \u5BF9\u7684\u529F\u80FD\u70B9\uFF1A\u201C\u5305\u542B\u5546\u54C1\u5C55\u793A\u6A21\u5757\u3001\u89C4\u683C\u9009\u62E9\u3001\u8BC4\u4EF7\u548C\u63A8\u8350\u7B49\u6A21\u5757\uFF0C\u5176\u4ED6\u6A21\u5757\u53EF\u4EE5\u81EA\u884C\u62D3\u5C55\u201D\uFF0C\u8FD9\u91CC\u6CA1\u6709\u5177\u4F53\u5230UI\u7684\u5B9E\u73B0\uFF0C\u662F\u5408\u7406\u7684\u3002\n \u9519\u8BEF\u7684\u529F\u80FD\u70B9\uFF1A\u201C\u5C55\u793A\u4E00\u4E2A\u641C\u7D22\u6846\u548C\u6309\u94AE\uFF0C\u4E0B\u65B9\u63D0\u4F9B\u63A8\u8350\u5546\u54C1\u5217\u8868\uFF0C\u5546\u54C1\u9700\u8981\u5305\u542B\u6807\u9898\u201D\uFF0CUI\u8FC7\u4E8E\u5177\u4F53\uFF0C\u4E0D\u5408\u7406\uFF0C\u5E76\u4E14\u6CA1\u6709\u544A\u77E5\u7528\u6237\u53EF\u4EE5\u8865\u5145\u66F4\u591A\u5185\u5BB9\u3002\n - \u9700\u6C42\u4EC5\u56F4\u7ED5UI\u7684\u5B9E\u73B0\u6765\u62D3\u5C55\uFF0C\u4E0D\u8981\u6D89\u53CA\u591A\u8BED\u8A00\u3001\u670D\u52A1\u7AEF\u3001\u903B\u8F91\u3001SEO\u3001\u6253\u5370\u3001\u622A\u56FE\u3001\u52A8\u753B\uFF0C\u4EE5\u53CA\u4E00\u4E9B\u590D\u6742\u4EA4\u4E92\u7684\u5468\u8FB9\u80FD\u529B\uFF0C\u6211\u4EEC\u4EC5\u5173\u6CE8UI\u90E8\u5206\n </\u4EFB\u52A1\u4E00>\n\n <\u4EFB\u52A1\u4E8C>\n \u89D2\u8272\uFF1A\u4EA7\u54C1\u7ECF\u7406\n \u8FD4\u56DE\u5185\u5BB9\uFF1A\u603B\u7ED3\u7684\u5E94\u7528\u6807\u9898\uFF0C\u8A00\u7B80\u610F\u8D45\uFF0C\u4E0D\u8D85\u8FC710\u4E2A\u5B57\n \u5BF9\u5E94\u5B57\u6BB5\uFF1Atitle\n </\u4EFB\u52A1\u4E8C>\n\n <\u4EFB\u52A1\u4E09>\n \u89D2\u8272\uFF1A\u8BBE\u8BA1\u5E08\n \u8FD4\u56DE\u5185\u5BB9\uFF1A\u7ED9\u51FA\u8BBE\u8BA1\u89C4\u8303\u7684\u5EFA\u8BAE\uFF0C\u8303\u56F4\u5C40\u9650\u4E8E\u989C\u8272\u548C\u6837\u5F0F\uFF0C\u548C\u53C2\u8003\u5EFA\u8BAE\u3002\u4E0D\u63D0\u4F9B\u4EFB\u4F55\u9700\u6C42\u548C\u5E03\u5C40\u65B9\u9762\u7684\u4FE1\u606F\uFF0C\u98CE\u683C\u5316\u4FE1\u606F\u662F\u7ED9\u5230\u4E0B\u4E00\u8F6E\u5927\u6A21\u578B\u7684\u63D0\u793A\u8BCD\uFF0C\u63D0\u4F9B\u5EFA\u8BAE\u5373\u53EF\u3002\n \u5BF9\u5E94\u5B57\u6BB5\uFF1Astyle\n \u8FD4\u56DE\u89C4\u5219\uFF1A\n - \u989C\u8272\u7CFB\u7EDF\u5F88\u91CD\u8981\uFF0C\u9700\u8981\u7ED9\u51FA\u4E3B\u8272\u3001\u80CC\u666F\u8272\u3001\u6587\u672C\u989C\u8272\u3001\u4E8C\u7EA7\u989C\u8272\u7684\u5EFA\u8BAE\uFF0C\u5E76\u7ED9\u51FA\u5177\u4F53\u7684\u989C\u8272\u503C\u3002\u7981\u6B62\u4F7F\u7528\u592A\u9C9C\u8273\u6216\u8005\u592A\u6D45\u7684\u989C\u8272\u503C\u3002\u4E0D\u8981\u628A\u70B9\u7F00\u8272\u6216\u8005\u64CD\u4F5C\u8272\u7528\u4E8E\u5927\u9762\u79EF\u7684\u5143\u7D20\uFF0C\u4F8B\u5982\u6309\u94AE\u3001\u5361\u7247\u80CC\u666F\u7B49\u3002\n - \u6837\u5F0F\u7CFB\u7EDF\u5F88\u91CD\u8981\uFF0C\u9700\u8981\u7ED9\u51FA\u5706\u89D2\u3001\u95F4\u8DDD\u7684\u5EFA\u8BAE\uFF0C\u5E76\u7ED9\u51FA\u5177\u4F53\u7684\u6570\u503C\n - \u53C2\u8003\u5EFA\u8BAE\u5F88\u91CD\u8981\uFF0C\u53EF\u4EE5\u7ED9\u51FA\u4E00\u4E9B\u98CE\u683C\u5316\u53C2\u8003\uFF0C\u501F\u9274\u5E02\u9762\u4E0A\u6210\u719F\u9879\u76EE\u7684\u8BBE\u8BA1\u98CE\u683C\n - \u8303\u56F4\uFF1A\u76EE\u524D\u9650\u5236\u5728\u989C\u8272\u3001\u5B57\u4F53\u6837\u5F0F\uFF08\u4E0D\u5305\u542B\u5B57\u4F53\uFF09\u3001\u9634\u5F71\u548C\u5706\u89D2\u8FD9\u4E9B\u57FA\u7840UI\u7EC6\u8282\uFF0C\u4E0D\u8981\u8003\u8651\u89C6\u5DEE\u6EDA\u52A8\u8FD9\u7C7B\u590D\u6742\u6837\u5F0F\n - \u4E0D\u8981\u63D0\u4F9B\u9488\u5BF9\u7EC4\u4EF6\u7EF4\u5EA6\u7684\u6837\u5F0F\u5EFA\u8BAE\uFF0C\u8981\u4ECE\u9700\u6C42\u7EF4\u5EA6\u53BB\u5EFA\u8BAE\n - \u5982\u679C\u7528\u6237\u81EA\u5DF1\u63D0\u4E86\u98CE\u683C\u5316\u4E3B\u9898\u76F8\u5173\u9700\u6C42\uFF0C\u6574\u7406\u6269\u5C55\u5373\u53EF\n </\u4EFB\u52A1\u4E09>\n</\u5904\u7406\u6D41\u7A0B>\n\n<\u56DE\u7B54\u3001\u8F93\u51FA\u6D41\u7A0B>\n**\u7B2C\u4E00\u6B65\uFF1A\u6DF1\u5EA6\u601D\u8003\u4E0E\u9700\u6C42\u5206\u6790\uFF08\u4EE5Markdown\u683C\u5F0F\u5448\u73B0\uFF09**\n\u5728\u7ED9\u51FA\u6B63\u5F0F\u65B9\u6848\u524D\uFF0C\u4F60\u5FC5\u987B\u5148\u8F93\u51FA\u4E00\u4E2A\u8BE6\u7EC6\u7684\u201C**\u601D\u8003\u8FC7\u7A0B**\u201D\u90E8\u5206\u3002\u8FD9\u90E8\u5206\u7684\u76EE\u6807\u662F\u8BA9\u7528\u6237\u5B8C\u5168\u7406\u89E3\u4F60\u7684\u8BBE\u8BA1\u601D\u8DEF\u3002\u8BF7\u6309\u7167\u4EE5\u4E0B\u7ED3\u6784\u7EC4\u7EC7\uFF1A\n1. **\u9700\u6C42\u89E3\u8BFB**\uFF1A\u7528\u4E00\u4E24\u53E5\u8BDD\u590D\u8FF0\u5E76\u7406\u89E3\u7528\u6237\u7684\u6838\u5FC3\u610F\u56FE\u3002\n2. **\u9875\u9762\u89C4\u5212\u903B\u8F91**\uFF1A\n * \u8BF4\u660E\u4F60\u8BA1\u5212\u8BBE\u8BA1\u54EA\u51E0\u4E2A\u9875\u9762\uFF08\u5982\u9996\u9875\u3001\u8BE6\u60C5\u9875\u3001\u4E2A\u4EBA\u4E2D\u5FC3\uFF09\u3002\n * **\u4E3A\u6BCF\u4E2A\u9875\u9762\u89E3\u91CA\u201C\u4E3A\u4EC0\u4E48\u201D**\uFF1A\u4F8B\u5982\uFF0C\u201C\u56E0\u4E3A\u7535\u5546\u9879\u76EE\u7684\u6838\u5FC3\u6D41\u7A0B\u662F\u2018\u6D4F\u89C8->\u67E5\u770B->\u8D2D\u4E70\u2019\uFF0C\u6240\u4EE5\u6211\u4EEC\u9700\u8981\u9996\u9875\uFF08\u7528\u4E8E\u6D4F\u89C8\u53D1\u73B0\uFF09\u3001\u5546\u54C1\u8BE6\u60C5\u9875\uFF08\u7528\u4E8E\u51B3\u7B56\uFF09\u3001\u4E2A\u4EBA\u4E2D\u5FC3\u9875\uFF08\u7528\u4E8E\u7BA1\u7406\u8BA2\u5355\u548C\u8D2D\u7269\u8F66\uFF09\u201D\uFF0C\u6700\u597D\u80FD\u4E0E\u6700\u7EC8\u7684json\u7ED3\u6784\u4FDD\u6301\u4E00\u81F4\u3002\n * \u53EF\u4EE5\u5236\u4F5C\u4E00\u4E2A\u7B80\u5355\u7684\u8868\u683C\u6765\u5BF9\u6BD4\u5404\u9875\u9762\u7684\u6838\u5FC3\u76EE\u6807\u548C\u4E3B\u8981\u529F\u80FD\u3002\n3. **\u8BBE\u8BA1\u98CE\u683C\u6784\u601D**\uFF1A\n * \u7B80\u8981\u8BF4\u660E\u4F60\u4E3A\u8FD9\u4E2A\u5E94\u7528\u8BBE\u5B9A\u4E86\u600E\u6837\u7684\u89C6\u89C9\u98CE\u683C\uFF08\u5982\u201C\u73B0\u4EE3\u7B80\u7EA6\u7684\u79D1\u6280\u611F\u201D\u3001\u201C\u6E29\u6696\u4EB2\u548C\u7684\u793E\u533A\u611F\u201D\uFF09\u3002\n * \u89E3\u91CA\u989C\u8272\u9009\u62E9\u7684\u539F\u56E0\uFF08\u5982\u201C\u4E3B\u8272\u9009\u7528\u84DD\u8272\uFF0C\u4F20\u9012\u4FE1\u4EFB\u4E0E\u4E13\u4E1A\u611F\u201D\uFF09\u3002\n * \u5185\u5BB9\u5C3D\u91CF\u4E30\u5BCC\n\n**\u7B2C\u4E8C\u6B65\uFF1A\u8F93\u51FA\u7ED3\u6784\u5316\u65B9\u6848\uFF08\u4EE5JSON\u683C\u5F0F\u5448\u73B0\uFF09**\n\u5728\u201C\u601D\u8003\u8FC7\u7A0B\u201D\u4E4B\u540E\uFF0C\u8F93\u51FA\u4E00\u4E2A\u540D\u4E3A`\u201C\u3010\u5E94\u7528\u6807\u9898\u3011\u9879\u76EE\u9700\u6C42\u6587\u6863.json\u201D`\u7684JSON\u4EE3\u7801\u5757\u3002json\u683C\u5F0F\u53C2\u8003<examples>\u63D0\u4F9B\u7684\u683C\u5F0F\u3002\n\n**\u6CE8\u610F**\uFF1A\n - \u201C\u601D\u8003\u8FC7\u7A0B\u201D\u76F4\u63A5\u8F93\u51FA\u5373\u53EF\uFF0C\u4E0D\u8981\u4EE5\u4E00\u4E2A\u6807\u9898\u7684\u5F62\u5F0F\u5C55\u73B0\u51FA\u6765\uFF0C\u5426\u5219\u5BF9\u8BDD\u6BD4\u8F83\u5272\u88C2\uFF0C\u4E0D\u81EA\u7136\u3002\n</\u56DE\u7B54\u3001\u8F93\u51FA\u6D41\u7A0B>\n\n<examples>\n ".concat(getExampleByDeviceType(config.deviceType), "\n</examples>");
|
|
18
|
+
},
|
|
19
|
+
aiRole: 'architect',
|
|
20
|
+
// aiRole: "expert",
|
|
21
|
+
stream(params) {
|
|
22
|
+
var {
|
|
23
|
+
files,
|
|
24
|
+
replaceContent
|
|
25
|
+
} = params;
|
|
26
|
+
var file = files[0];
|
|
27
|
+
if (file) {
|
|
28
|
+
return replaceContent.replace(file.fileName, "正在编写需求文档...");
|
|
29
|
+
}
|
|
30
|
+
return replaceContent;
|
|
31
|
+
},
|
|
32
|
+
execute(params) {
|
|
33
|
+
var _errorContent;
|
|
34
|
+
var {
|
|
35
|
+
files,
|
|
36
|
+
content,
|
|
37
|
+
replaceContent
|
|
38
|
+
} = params;
|
|
39
|
+
var errorContent;
|
|
40
|
+
try {
|
|
41
|
+
errorContent = JSON.parse(content);
|
|
42
|
+
} catch (error) {}
|
|
43
|
+
if (errorContent && (_errorContent = errorContent) !== null && _errorContent !== void 0 && _errorContent.message) {
|
|
44
|
+
var _errorContent2;
|
|
45
|
+
throw new RxaiError("\u7F51\u7EDC\u9519\u8BEF\uFF0C".concat((_errorContent2 = errorContent) === null || _errorContent2 === void 0 ? void 0 : _errorContent2.message), "request");
|
|
46
|
+
}
|
|
47
|
+
var projectFile = getFiles(files, {
|
|
48
|
+
extName: 'json'
|
|
49
|
+
});
|
|
50
|
+
var projectJson = {};
|
|
51
|
+
try {
|
|
52
|
+
var _projectJson;
|
|
53
|
+
projectJson = JSON.parse(projectFile === null || projectFile === void 0 ? void 0 : projectFile.content);
|
|
54
|
+
if ((_projectJson = projectJson) !== null && _projectJson !== void 0 && (_projectJson = _projectJson.pages) !== null && _projectJson !== void 0 && _projectJson.length) {
|
|
55
|
+
projectJson.pages = projectJson.pages.map(page => {
|
|
56
|
+
return _objectSpread2(_objectSpread2({}, page), {}, {
|
|
57
|
+
prd: page.prd + '\n' + "\u6CE8\u610F\uFF1A\u5F53\u524D\u6B63\u5728\u642D\u5EFA\u4E00\u4E2A".concat(config.deviceType === DeviceType.Desktop ? 'PC桌面端项目' : '移动端项目', "\uFF0C\u529F\u80FD\u70B9\u4EC5\u4E3A\u6982\u8FF0\uFF0C\u5206\u6790\u548C\u5B9E\u73B0\u65F6\u8BF7\u52A1\u5FC5\u591A\u8865\u5145\u5185\u5BB9\u548C\u7EC6\u8282\u3002")
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
} catch (error) {}
|
|
62
|
+
config.onProjectCreate(projectJson);
|
|
63
|
+
if (!projectFile) {
|
|
64
|
+
return content;
|
|
65
|
+
} else if (!projectJson.title) {
|
|
66
|
+
return replaceContent + "\n\u672A\u751F\u6210\u5408\u6CD5\u9879\u76EE\u6587\u4EF6\u3002";
|
|
67
|
+
}
|
|
68
|
+
return replaceContent.replace(projectFile.fileName, "");
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function getExampleByDeviceType(deviceType) {
|
|
73
|
+
if (deviceType === DeviceType.Mobile) {
|
|
74
|
+
return "\n <example>\n <user_query>\u4E00\u4E2A\u672C\u5730\u751F\u6D3BAPP</user_query>\n <assistant_response>\n \u597D\u7684\uFF0C\u5373\u5C06\u4E3A\u4F60\u751F\u6210\u4E00\u4E2A\u5173\u4E8E\u4E00\u4E2A\u672C\u5730\u751F\u6D3BAPP\u7684\u9879\u76EE\u9700\u6C42\u6587\u6863\u3002\n\n \u8FD9\u662F\u6211\u7684\u601D\u8003\u7ED3\u679C\uFF1A\n \u7531\u4E8E\u5F53\u524D\u4FE1\u606F\u8F83\u5C11\uFF0C\u6211\u4EEC\u6765\u5206\u6790\u4E0B\u9700\u6C42\uFF0C\u4E00\u4E2A\u672C\u5730\u751F\u6D3BAPP\uFF0C\u4E00\u822C\u5305\u542B\u300C\u9996\u9875\u300D\u3001\u300C\u7CBE\u9009\u6D3B\u52A8\u300D\u3001\u300C\u5546\u54C1\u8BE6\u60C5\u300D\u3001\u300C\u6211\u7684\u300D\u7B49\u754C\u9762\u3002\n\n \u4ECE\u9700\u6C42\u6765\u770B\uFF0C\u6211\u89C9\u5F97\u53EF\u4EE5\u7ED9\u5E94\u7528\u8D77\u300C\u672C\u5730\u751F\u6D3BAPP\u300D\u8FD9\u4E2A\u6807\u9898\u3002\n\n \u540C\u65F6\u4F5C\u4E3A\u6211\u4E5F\u4F1A\u7ED9\u51FA\u8BBE\u8BA1\u89C4\u8303\u3002\n\n \u6700\u7EC8\u6211\u4EEC\u5E94\u8BE5\u8FD4\u56DE\u8FD9\u6837\u7684\u7ED3\u6784\n ".concat(fileFormat({
|
|
75
|
+
content: JSON.stringify({
|
|
76
|
+
title: '本地生活APP',
|
|
77
|
+
pages: [{
|
|
78
|
+
title: '首页',
|
|
79
|
+
prd: "\u76EE\u7684\uFF1A\u8BF1\u5BFC\u7528\u6237\u8FDB\u884C\u70B9\u51FB\uFF0C\u5B8C\u6210\u5546\u54C1\u8F6C\u5316\n \u529F\u80FD\u70B9\uFF1A\u5305\u542B\u641C\u7D22\u529F\u80FD\u3001\u5BFC\u822A\u5165\u53E3\u3001\u6D3B\u52A8\u8F6E\u64AD\u548C\u5546\u54C1\u63A8\u8350\u7B49\u57FA\u7840\u6A21\u5757\uFF0C\u5176\u4F59\u5185\u5BB9\u53EF\u81EA\u884C\u53D1\u6563"
|
|
80
|
+
}, {
|
|
81
|
+
title: '精选活动',
|
|
82
|
+
prd: "\u76EE\u7684\uFF1A\u5C55\u793A\u5E73\u53F0\u7684\u4F18\u60E0\u6D3B\u52A8\uFF0C\u5438\u5F15\u7528\u6237\u8FDB\u884C\u8D2D\u4E70\n \u529F\u80FD\u70B9\uFF1A\u5305\u542B\u4E00\u7EA7\u5206\u7C7B\u3001\u4F18\u60E0\u6D3B\u52A8\u3001\u9650\u65F6\u79D2\u6740\u548C\u5546\u54C1\u5217\u8868\u7B49\u6838\u5FC3\u5185\u5BB9\uFF0C\u53EF\u4EE5\u6309\u7167\u4F60\u7684\u60F3\u6CD5\u6765\u4E30\u5BCC\u66F4\u591A\u5185\u5BB9"
|
|
83
|
+
}, {
|
|
84
|
+
title: '商品详情',
|
|
85
|
+
prd: "\u76EE\u7684\uFF1A\u5C55\u793A\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF1\u5BFC\u7528\u6237\u8FDB\u884C\u4E0B\u5355\u8D2D\u4E70\n \u529F\u80FD\u70B9\uFF1A\u5305\u542B\u5546\u54C1\u5C55\u793A\u6A21\u5757\u3001\u89C4\u683C\u9009\u62E9\u3001\u8BC4\u4EF7\u548C\u63A8\u8350\u7B49\u6A21\u5757\uFF0C\u5176\u4ED6\u6A21\u5757\u53EF\u4EE5\u81EA\u884C\u62D3\u5C55"
|
|
86
|
+
}, {
|
|
87
|
+
title: '我的',
|
|
88
|
+
prd: "\u76EE\u7684\uFF1A\u63D0\u4F9B\u5BF9\u4E2A\u4EBA\u4FE1\u606F\u7684\u67E5\u770B\u4EE5\u53CA\u4FEE\u6539\u754C\u9762\n \u529F\u80FD\u70B9\uFF1A\u5305\u542B\u4E2A\u4EBA\u4FE1\u606F\u3001\u4F1A\u5458\u4FE1\u606F\u3001\u8BA2\u5355\u6A21\u5757\u3001\u5BFC\u822A\u5165\u53E3\u7B49\u6A21\u5757"
|
|
89
|
+
}],
|
|
90
|
+
style: "\u4F7F\u7528\u7F8E\u56E2\u6210\u719F\u7684\u989C\u8272\u7CFB\u7EDF\u662F\u4E00\u4E2A\u4E0D\u9519\u7684\u9009\u62E9\n - \u989C\u8272\n - \u4E3B\u989C\u8272\uFF1A\u7F8E\u56E2\u9EC4 #FFD100\n - \u80CC\u666F\u8272\uFF1A\u6D45\u7070\u8272 #F7F7F7\n - \u6587\u672C\u989C\u8272\uFF1A\u4E0D\u5168\u9ED1\u7684\u9ED1\u8272 #272727 \u53EF\u7528\u4E8E\u4E3B\u8981\u7684\u6587\u672C\uFF08\u7981\u6B62\u4F7F\u7528 #000000\uFF0C\u4F1A\u5BFC\u81F4\u65E0\u8BBE\u8BA1\u611F\uFF09\n - \u4E8C\u7EA7\u989C\u8272\uFF1A\u7070\u8272 #A6A6A6 \u53EF\u7528\u4E8E\u8FB9\u6846\u6216\u8005\u6D45\u8272\u6587\u672C\n - \u6837\u5F0F\n - \u5706\u89D2\uFF1A12px\uFF0C\u589E\u52A0\u67D4\u548C\u611F\n - \u95F4\u8DDD\uFF1A16px\n \u540C\u6837\u7684\uFF0C\u4F60\u4E5F\u53EF\u4EE5\u53C2\u8003\u4E00\u4E9B\u5E38\u89C1\u7684\u79FB\u52A8\u7AEFAPP\uFF0C\u6BD4\u5982\u7F8E\u56E2\u548C\u997F\u4E86\u4E48\u7684\u5143\u7D20\u8BBE\u8BA1\u3002\u6CE8\u610F\u989C\u8272\u4E0D\u8981\u592A\u6D45\uFF0C\u4E5F\u4E0D\u8981\u592A\u9C9C\u8273\uFF0C\u6309\u94AE\u7B49\u6BD4\u8F83\u5927\u5757\u7684\u5143\u7D20\u7981\u6B62\u4F7F\u7528\u70B9\u7F00\u8272"
|
|
91
|
+
}, null, 2),
|
|
92
|
+
fileName: '本地生活APP项目需求文档.json'
|
|
93
|
+
}), "\n </assistant_response>\n </example>");
|
|
94
|
+
} else if (deviceType === DeviceType.Desktop) {
|
|
95
|
+
return "\n <example>\n <user_query>\u4E00\u4E2A\u95EE\u7B54\u793E\u533A\u7F51\u7AD9</user_query>\n <assistant_response>\n \u597D\u7684\uFF0C\u5373\u5C06\u4E3A\u4F60\u751F\u6210\u4E00\u4E2A\u5173\u4E8E\u4E00\u4E2A\u95EE\u7B54\u793E\u533A\u7F51\u7AD9\u7684\u9879\u76EE\u9700\u6C42\u6587\u6863\u3002\n\n \u8FD9\u662F\u6211\u7684\u601D\u8003\u7ED3\u679C\uFF1A\n \u7531\u4E8E\u5F53\u524D\u4FE1\u606F\u8F83\u5C11\uFF0C\u6211\u4EEC\u6765\u5206\u6790\u4E0B\u9700\u6C42\uFF0C\u4E00\u4E2A\u95EE\u7B54\u793E\u533A\u7F51\u7AD9\uFF0C\u4E00\u822C\u5305\u542B\u300C\u9996\u9875\u300D\u3001\u300C\u95EE\u7B54\u8BE6\u60C5\u300D\u3001\u300C\u6211\u7684\u4E3B\u9875\u300D\u7B49\u754C\u9762\u3002\n\n \u4ECE\u9700\u6C42\u6765\u770B\uFF0C\u6211\u89C9\u5F97\u53EF\u4EE5\u7ED9\u5E94\u7528\u8D77\u300C\u95EE\u7B54\u793E\u533A\u7F51\u7AD9\u300D\u8FD9\u4E2A\u6807\u9898\u3002\n\n \u540C\u65F6\u4F5C\u4E3A\u6211\u4E5F\u4F1A\u7ED9\u51FA\u8BBE\u8BA1\u89C4\u8303\u3002\n\n \u6700\u7EC8\u6211\u4EEC\u5E94\u8BE5\u8FD4\u56DE\u8FD9\u6837\u7684\u7ED3\u6784\n ".concat(fileFormat({
|
|
96
|
+
content: JSON.stringify({
|
|
97
|
+
title: '问答社区网站',
|
|
98
|
+
pages: [{
|
|
99
|
+
title: '首页',
|
|
100
|
+
prd: "\u76EE\u7684\uFF1A\u5F15\u5BFC\u7528\u6237\u8FDB\u884C\u95EE\u7B54\u5185\u5BB9\u7684\u4E92\u52A8\uFF0C\u63A8\u8350\u7528\u6237\u559C\u6B22\u7684\u95EE\u7B54\u5185\u5BB9\n \u529F\u80FD\u70B9\uFF1A\u5305\u542B\u641C\u7D22\u3001\u5BFC\u822A\u3001\u70ED\u699C\u3001\u63A8\u8350\u7B49\u57FA\u7840\u5185\u5BB9\uFF0C\u5176\u4F59\u5185\u5BB9\u53EF\u81EA\u884C\u53D1\u6563"
|
|
101
|
+
}, {
|
|
102
|
+
title: '问答详情',
|
|
103
|
+
prd: "\u76EE\u7684\uFF1A\u5C55\u793A\u95EE\u7B54\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u5F15\u5BFC\u7528\u6237\u8FDB\u884C\u4E92\u52A8\uFF0C\u5E76\u4E14\u5BF9\u4E0D\u540C\u5BF9\u56DE\u7B54\u8FDB\u884C\u70B9\u8D5E\n \u529F\u80FD\u70B9\uFF1A\u5305\u542B\u95EE\u9898\u3001\u4E0D\u540C\u7528\u6237\u56DE\u7B54\u3001\u662F\u5426\u8D5E\u540C\u7B49\u6838\u5FC3\u6A21\u5757\uFF0C\u5176\u4F59\u53EF\u4EE5\u6309\u7167\u4F60\u7684\u60F3\u6CD5\u6765\u4E30\u5BCC\u66F4\u591A\u5185\u5BB9"
|
|
104
|
+
}, {
|
|
105
|
+
title: '我的主页',
|
|
106
|
+
prd: "\u76EE\u7684\uFF1A\u63D0\u4F9B\u5BF9\u4E2A\u4EBA\u4FE1\u606F\u7684\u67E5\u770B\u4EE5\u53CA\u4E92\u52A8\u754C\u9762\n \u529F\u80FD\u70B9\uFF1A\u5305\u542B\u4E2A\u4EBA\u4FE1\u606F\u3001\u4F1A\u5458\u4FE1\u606F\u3001\u6211\u7684\u56DE\u7B54\u3001\u70B9\u8D5E\u3001\u521B\u4F5C\u6570\u636E\u7B49\u6838\u5FC3\u529F\u80FD"
|
|
107
|
+
}],
|
|
108
|
+
style: "\u4F7F\u7528\u77E5\u4E4E\u6210\u719F\u7684\u989C\u8272\u7CFB\u7EDF\u662F\u4E00\u4E2A\u4E0D\u9519\u7684\u9009\u62E9\n - \u989C\u8272\n - \u4E3B\u989C\u8272\uFF1A\u77E5\u4E4E\u84DD #1772f6\n - \u80CC\u666F\u8272\uFF1A\u6D45\u7070\u84DD\u8272 #f4f6f9\n - \u6587\u672C\u989C\u8272\uFF1A\u4E0D\u5168\u9ED1\u7684\u9ED1\u8272 #272727 \u53EF\u7528\u4E8E\u4E3B\u8981\u7684\u6587\u672C\uFF08\u7981\u6B62\u4F7F\u7528 #000000\uFF0C\u4F1A\u5BFC\u81F4\u65E0\u8BBE\u8BA1\u611F\uFF09\n - \u4E8C\u7EA7\u989C\u8272\uFF1A\u7070\u8272 #A6A6A6 \u53EF\u7528\u4E8E\u8FB9\u6846\u6216\u8005\u6D45\u8272\u6587\u672C\n - \u6837\u5F0F\n - \u5706\u89D2\uFF1A2px\uFF0C\u4E25\u8C28\u53C8\u4E0D\u5931\u67D4\u5F31\n - \u95F4\u8DDD\uFF1A16px\n \u540C\u6837\u7684\uFF0C\u4F60\u4E5F\u53EF\u4EE5\u53C2\u8003\u4E00\u4E9B\u5176\u4ED6\u5E38\u89C1\u7684\u684C\u9762\u7AEF\u8F6F\u4EF6\u6216\u8005\u7F51\u7AD9\uFF0C\u6BD4\u5982\u77E5\u4E4E\u548C\u601D\u5426\u7684\u8BBE\u8BA1\u3002\u6CE8\u610F\u53D6\u8272\u548C\u8BBE\u8BA1\u5FC5\u987B\u6709\u8BBE\u8BA1\u611F"
|
|
109
|
+
}, null, 2),
|
|
110
|
+
fileName: '问答社区网站需求文档.json'
|
|
111
|
+
}), "\n </assistant_response>\n </example>");
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export { analyzeAndExpandPrd as default };
|
|
116
|
+
//# sourceMappingURL=analyze-and-expand-prd.js.map
|