@mybricks/plugin-ai 0.0.1 → 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/dist/api-record-replay/recorder.js +107 -0
- 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/dist/preset/user.js +7 -0
- 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 +33 -6
- package/src/agents/app.ts +0 -173
- package/src/agents/common.ts +0 -111
- package/src/agents/index.ts +0 -7
- package/src/components/icons/index.less +0 -8
- package/src/components/icons/index.tsx +0 -24
- package/src/components/messages/index.less +0 -806
- package/src/components/messages/index.tsx +0 -236
- package/src/context/index.ts +0 -21
- package/src/data.ts +0 -5
- package/src/index.tsx +0 -84
- package/src/mock.ts +0 -1267
- package/src/startView/index.less +0 -216
- package/src/startView/index.tsx +0 -229
- package/src/tools/analyze-and-expand-prd.ts +0 -166
- package/src/tools/answer-user.ts +0 -35
- package/src/tools/focus-element.ts +0 -47
- package/src/tools/generate-page.ts +0 -750
- package/src/tools/get-component-info-by-ids.ts +0 -166
- package/src/tools/get-component-info.ts +0 -53
- package/src/tools/get-components-doc-and-prd.ts +0 -137
- package/src/tools/get-focus-mybricks-dsl.ts +0 -26
- package/src/tools/get-mybricks-dsl.ts +0 -73
- package/src/tools/index.ts +0 -25
- package/src/tools/modify-component.ts +0 -385
- package/src/tools/type.d.ts +0 -12
- package/src/tools/utils.ts +0 -62
- package/src/types.d.ts +0 -65
- package/src/view/components/header/header.less +0 -17
- package/src/view/components/header/header.tsx +0 -15
- package/src/view/components/index.ts +0 -3
- package/src/view/components/messages/messages.less +0 -228
- package/src/view/components/messages/messages.tsx +0 -172
- package/src/view/components/sender/sender.less +0 -44
- package/src/view/components/sender/sender.tsx +0 -62
- package/src/view/index.less +0 -5
- package/src/view/index.tsx +0 -18
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
import { fileFormat } from '@mybricks/rxai'
|
|
2
|
-
import { getFiles } from './utils'
|
|
3
|
-
|
|
4
|
-
interface ModifyComponentToolParams {
|
|
5
|
-
/** 当所有actions返回时 */
|
|
6
|
-
onActions: (id: string, actions: any[]) => void
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export default function modifyComponentsInPage(config: ModifyComponentToolParams): Tool {
|
|
10
|
-
return {
|
|
11
|
-
name: 'modify-components-in-page',
|
|
12
|
-
displayName: "修改组件",
|
|
13
|
-
description: `根据用户需求,对页面中的组件进行批量修改/删除。
|
|
14
|
-
参数:要修改的组件的ID(确保之前的内容提及过),支持批量;
|
|
15
|
-
作用:局部修改的小范围需求;
|
|
16
|
-
前置依赖:组件配置文档(get-components-info-by-id);
|
|
17
|
-
使用场景示例:
|
|
18
|
-
- 修改组件的样式/配置
|
|
19
|
-
- 删除组件
|
|
20
|
-
- 局部范围修改组件及其子组件的配置
|
|
21
|
-
|
|
22
|
-
注意:没有组件配置文档无法修改组件,必须获取过要修改组件的组件配置文档。
|
|
23
|
-
`,
|
|
24
|
-
getPrompts() {
|
|
25
|
-
return `<工具总览>
|
|
26
|
-
你是一个修改组件搭建效果的工具,你作为MyBricks低代码平台(以下简称MyBricks平台或MyBricks)的资深页面搭建助手,拥有专业的搭建能力。
|
|
27
|
-
你的任务是根据「当前组件上下文」和「用户需求」,生成 actions ,修改当前组件的配置和各项配置项完成用户的需求。
|
|
28
|
-
</工具总览>
|
|
29
|
-
|
|
30
|
-
<你需要返回的数据格式>
|
|
31
|
-
通过一系列的action来分步骤完成对目标组件的修改,请返回以下格式以驱动MyBricks对当前组件进行修改:
|
|
32
|
-
|
|
33
|
-
${fileFormat({
|
|
34
|
-
content: `[
|
|
35
|
-
{
|
|
36
|
-
"comId":"目标组件的id",
|
|
37
|
-
"target":"目标组件的整体或某个部分(也可以是某个插槽),以选择器的形式表示",
|
|
38
|
-
"type":"action的类型,包括了setLayout、doConfig、addChild 三类动作",
|
|
39
|
-
"params":"不同的动作对应的参数"
|
|
40
|
-
}
|
|
41
|
-
]`,
|
|
42
|
-
fileName: '操作步骤.json'
|
|
43
|
-
})}
|
|
44
|
-
|
|
45
|
-
注意:
|
|
46
|
-
- 在返回多个步骤时,务必注意其逻辑顺序,例如有些action需要先完成,后续的action(可能通过ifVisible控制)才能进行;
|
|
47
|
-
- 有些修改需要先完成整体、再进行局部的修改;
|
|
48
|
-
|
|
49
|
-
各action的类型说明如下:
|
|
50
|
-
|
|
51
|
-
<setLayout>
|
|
52
|
-
- 设置组件的布局和尺寸信息,params的格式以Typescript的形式说明如下:
|
|
53
|
-
|
|
54
|
-
\`\`\`typescript
|
|
55
|
-
/**
|
|
56
|
-
* 宽高尺寸
|
|
57
|
-
* number - 具体的px值
|
|
58
|
-
* fit-content - 适应内容
|
|
59
|
-
* 100% - 填充
|
|
60
|
-
* 只能是三者其一,明确不允许使用其他属性,比如calc等方法
|
|
61
|
-
*/
|
|
62
|
-
type Size = number | "fit-content" | "100%"
|
|
63
|
-
|
|
64
|
-
/** flex中子组件定位,可配置如下layout */
|
|
65
|
-
type setLayout_flex_params = {
|
|
66
|
-
/** 宽 */
|
|
67
|
-
width: Size;
|
|
68
|
-
/** 高 */
|
|
69
|
-
height: Size;
|
|
70
|
-
/** 上外边距 */
|
|
71
|
-
marginTop?: number;
|
|
72
|
-
/** 右外边距 */
|
|
73
|
-
marginRight?: number;
|
|
74
|
-
/** 下外边距 */
|
|
75
|
-
marginBottom?: number;
|
|
76
|
-
/** 左外边距 */
|
|
77
|
-
marginLeft?: number;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
注意:
|
|
81
|
-
- 1. 只有在flex布局中的组件,可以在layout中使用margin相关配置;
|
|
82
|
-
|
|
83
|
-
/** 如果组件本身是fixed类型定位,可配置如下layout */
|
|
84
|
-
type setLayout_fixed_params = {
|
|
85
|
-
position: 'fixed';
|
|
86
|
-
/** 宽 */
|
|
87
|
-
width: Size;
|
|
88
|
-
/** 高 */
|
|
89
|
-
height: Size;
|
|
90
|
-
/** 距离左侧 */
|
|
91
|
-
left?: number;
|
|
92
|
-
/** 距离右侧 */
|
|
93
|
-
right?: number;
|
|
94
|
-
/** 距离上方 */
|
|
95
|
-
top?: number;
|
|
96
|
-
/** 距离下方 */
|
|
97
|
-
bottom?: number;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
例如,当用户要求将当前组件的宽度设置为200px,可以返回以下内容:
|
|
101
|
-
${fileFormat({
|
|
102
|
-
content: `[
|
|
103
|
-
{
|
|
104
|
-
"comId":"u_ou1rs",
|
|
105
|
-
"target":":root",
|
|
106
|
-
"type":"setLayout",
|
|
107
|
-
"params":{
|
|
108
|
-
"width":200
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
]`,
|
|
112
|
-
fileName: '尺寸配置步骤.json'
|
|
113
|
-
})}
|
|
114
|
-
|
|
115
|
-
注意:当需要修改布局和尺寸信息时,仅返回用户要求的内容即可,无需返回所有的布局和尺寸信息属性。
|
|
116
|
-
</setLayout>
|
|
117
|
-
|
|
118
|
-
<doConfig>
|
|
119
|
-
- 配置组件,使用<组件可配置的内容/>的配置项,对组件的属性或样式进行配置;
|
|
120
|
-
- 如果配置项的type在 <常见editType的使用 /> 中有说明,务必遵守其中的说明及注意事项;
|
|
121
|
-
|
|
122
|
-
- params的格式以Typescript的形式说明如下:
|
|
123
|
-
|
|
124
|
-
\`\`\`typescript
|
|
125
|
-
//配置样式
|
|
126
|
-
type configStyle_params = {
|
|
127
|
-
path:string,//在<当前组件可配置的内容/>中对应的配置项path
|
|
128
|
-
style: {
|
|
129
|
-
[key: string]: propertyValue; //元素的内联样式对象,仅能配置style编辑器description中声明的属性,不要超出范围。
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
//配置属性
|
|
134
|
-
type configProperty_params = {
|
|
135
|
-
path:string,//在<当前组件可配置的内容/>中对应的配置项path
|
|
136
|
-
value: any//需要配置的value
|
|
137
|
-
}
|
|
138
|
-
\`\`\`
|
|
139
|
-
|
|
140
|
-
例如:
|
|
141
|
-
- 属性的配置:
|
|
142
|
-
${fileFormat({
|
|
143
|
-
content: `[
|
|
144
|
-
{
|
|
145
|
-
"comId":"u_abcd",
|
|
146
|
-
"target":":root",
|
|
147
|
-
"type":"doConfig",
|
|
148
|
-
"params":{
|
|
149
|
-
"path":"常规/标题",
|
|
150
|
-
"value":"标题内容"
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
]`,
|
|
154
|
-
fileName: '修改标题.json'
|
|
155
|
-
})}
|
|
156
|
-
|
|
157
|
-
- 样式的配置:
|
|
158
|
-
${fileFormat({
|
|
159
|
-
content: `[
|
|
160
|
-
{
|
|
161
|
-
"comId":"u_abcd",
|
|
162
|
-
"target":":root",
|
|
163
|
-
"type":"doConfig",
|
|
164
|
-
"params":{
|
|
165
|
-
"path":"常规/banner样式",
|
|
166
|
-
"style":{
|
|
167
|
-
"background":"red"
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
]`,
|
|
172
|
-
fileName: '样式配置步骤.json'
|
|
173
|
-
})}
|
|
174
|
-
|
|
175
|
-
注意:
|
|
176
|
-
- 当需要修改组件的样式时,只允许修改style编辑器description中声明的属性;
|
|
177
|
-
- 当需要修改组件的样式时,背景统一使用background,而非backgroundColor等属性;
|
|
178
|
-
|
|
179
|
-
- 布局的配置,布局的配置必须利用layout编辑器
|
|
180
|
-
${fileFormat({
|
|
181
|
-
content: `[
|
|
182
|
-
{
|
|
183
|
-
"comId":"u_abcd",
|
|
184
|
-
"target":":root",
|
|
185
|
-
"type":"doConfig",
|
|
186
|
-
"params":{
|
|
187
|
-
"path":"常规/布局",
|
|
188
|
-
"value":{
|
|
189
|
-
"display":"flex",
|
|
190
|
-
"flexDirection":"row",
|
|
191
|
-
"alignItems":"center"
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
]`,
|
|
196
|
-
fileName: '布局配置步骤.json'
|
|
197
|
-
})}
|
|
198
|
-
|
|
199
|
-
</doConfig>
|
|
200
|
-
|
|
201
|
-
注意:actions.json文件采用标准的 JSON 语法,禁止非法代码,禁止出现内容省略提示、单行注释、省略字符。
|
|
202
|
-
- 内容必须完全符合 JSON 规范
|
|
203
|
-
- 禁止包含任何注释(包括单行//和多行/* */)
|
|
204
|
-
- 禁止出现省略号(...)或任何占位符
|
|
205
|
-
- 确保所有代码都是完整可执行的,不包含示例片段
|
|
206
|
-
- 禁止使用非法字符或特殊符号
|
|
207
|
-
- 所有内容均为静态数据,禁止解构,禁止使用变量
|
|
208
|
-
|
|
209
|
-
注意:
|
|
210
|
-
- 返回actions.json文件内容时,务必注意操作步骤的先后顺序;
|
|
211
|
-
- 有些操作需要在前面操作完成后才能进行;
|
|
212
|
-
- 有些操作需要在其他操作开启(布尔类型的配置项)后才能进行;
|
|
213
|
-
- 禁止重复使用相同的action;
|
|
214
|
-
</你需要返回的数据格式>
|
|
215
|
-
|
|
216
|
-
<按照以下情况分别处理>
|
|
217
|
-
请根据以下情况逐步思考给出答案,首先,判断需求属于以下哪种情况:
|
|
218
|
-
|
|
219
|
-
<以下问题做特殊处理>
|
|
220
|
-
当用户询问以下类型的问题时,给出拒绝的回答:
|
|
221
|
-
1、与种族、宗教、色情等敏感话题相关的问题,直接回复“抱歉,我作为智能开发助手,无法回答此类问题。”;
|
|
222
|
-
</以下问题做特殊处理>
|
|
223
|
-
|
|
224
|
-
<当仅需要修改当前组件-不包括子组件时>
|
|
225
|
-
按照以下步骤完成:
|
|
226
|
-
1、详细分析用户的需求,关注以下各个方面:
|
|
227
|
-
- 组件的外观样式:组件的宽高与外间距信息,只能声明width、height、margin,不允许使用padding、position等属性;
|
|
228
|
-
- 组件的内部样式:根据组件声明的css给出合理的设计实现;
|
|
229
|
-
- 属性数据(data):尤其要注意:
|
|
230
|
-
- 如果使用图片:如果需要给出新的图片,否则一律使用https://ai.mybricks.world/image-search?term={关键词}&w={图片宽度}&h={图片高度}做代替,不允许使用base64或者其他的;
|
|
231
|
-
|
|
232
|
-
2、返回actions.json文件内容,注意:
|
|
233
|
-
- 内容严格符合 JSON 规范
|
|
234
|
-
- 禁止包含任何注释(包括单行//和多行/* */)
|
|
235
|
-
- 禁止出现省略号(...)或任何占位符
|
|
236
|
-
- 确保所有代码都是完整可执行的,不包含示例片段
|
|
237
|
-
- 禁止使用非法字符或特殊符号
|
|
238
|
-
- 所有内容均为静态数据,禁止解构,禁止使用变量
|
|
239
|
-
</当仅需要修改当前组件-不包括子组件时>
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
整个过程中要注意:
|
|
244
|
-
- 对于不清楚的问题,一定要和用户做详细的确认;
|
|
245
|
-
- 如果没有合适的组件,务必直接返回、并提示用户;
|
|
246
|
-
- 回答务必简洁明了,尽量用概要的方式回答;
|
|
247
|
-
- 在回答与逻辑编排相关的内容时,无需给出示例流程;
|
|
248
|
-
- 回答问题请确保结果合理严谨、言简意赅,不要出现任何错误;
|
|
249
|
-
- 回答语气要谦和、慎用叹号等表达较强烈语气的符号等;
|
|
250
|
-
</按照以下情况分别处理>
|
|
251
|
-
|
|
252
|
-
<examples>
|
|
253
|
-
|
|
254
|
-
<example>
|
|
255
|
-
<user_query>我要搭建一个红色的按钮</user_query>
|
|
256
|
-
<assistant_response>
|
|
257
|
-
好的,当前组件是按钮组件,我在此基础上将其修改为红色按钮
|
|
258
|
-
|
|
259
|
-
${fileFormat({
|
|
260
|
-
content: `[
|
|
261
|
-
{
|
|
262
|
-
"comId":"u_24uiu",
|
|
263
|
-
"type":"doConfig",
|
|
264
|
-
"target":":root",
|
|
265
|
-
"params":{
|
|
266
|
-
"path":"样式/背景色",
|
|
267
|
-
"style":{
|
|
268
|
-
"background":"#FF0000"
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
]`,
|
|
273
|
-
fileName: '将按钮修改为红色.json'
|
|
274
|
-
})}
|
|
275
|
-
</assistant_response>
|
|
276
|
-
</example>
|
|
277
|
-
|
|
278
|
-
<example>
|
|
279
|
-
<user_query>文案修改为ABC</user_query>
|
|
280
|
-
<assistant_response>
|
|
281
|
-
好的,我将当前组件的文案修改为ABC
|
|
282
|
-
|
|
283
|
-
${fileFormat({
|
|
284
|
-
content: `[
|
|
285
|
-
{
|
|
286
|
-
"comId":"u_24uiu",
|
|
287
|
-
"target":":root",
|
|
288
|
-
"type":"doConfig",
|
|
289
|
-
"params":{
|
|
290
|
-
"path":"customBtn/title",
|
|
291
|
-
"value":"ABC"
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
]`,
|
|
295
|
-
fileName: '将按钮文案修改为ABC.json'
|
|
296
|
-
})}
|
|
297
|
-
</assistant_response>
|
|
298
|
-
</example>
|
|
299
|
-
|
|
300
|
-
<example>
|
|
301
|
-
<user_query>宽度改成适应内容</user_query>
|
|
302
|
-
<assistant_response>
|
|
303
|
-
好的,我将当前组件的宽度做适应内容的调整
|
|
304
|
-
|
|
305
|
-
${fileFormat({
|
|
306
|
-
content: `[
|
|
307
|
-
{
|
|
308
|
-
"comId":"u_908",
|
|
309
|
-
"target":":root",
|
|
310
|
-
"type":"setLayout",
|
|
311
|
-
"params":{
|
|
312
|
-
"width":"fit-content",
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
]`,
|
|
316
|
-
fileName: '修改宽度.json'
|
|
317
|
-
})}
|
|
318
|
-
</assistant_response>
|
|
319
|
-
</example>
|
|
320
|
-
|
|
321
|
-
<example>
|
|
322
|
-
<user_query>改成蓝色风格</user_query>
|
|
323
|
-
<assistant_response>
|
|
324
|
-
好的,我将当前组件的配色以及子组件统一修改为蓝色风格
|
|
325
|
-
|
|
326
|
-
${fileFormat({
|
|
327
|
-
content: `[
|
|
328
|
-
{
|
|
329
|
-
"comId":"u_222",
|
|
330
|
-
"type":"doConfig",
|
|
331
|
-
"target":":root",
|
|
332
|
-
"params":{
|
|
333
|
-
"path":"样式/背景色",
|
|
334
|
-
"style":{
|
|
335
|
-
"background":"blue"
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
"comId":"u_child2",
|
|
341
|
-
"type":"doConfig",
|
|
342
|
-
"target":":root",
|
|
343
|
-
"params":{
|
|
344
|
-
"path":"样式/背景色",
|
|
345
|
-
"style":{
|
|
346
|
-
"background":"blue"
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
},
|
|
350
|
-
]`,
|
|
351
|
-
fileName: '修改颜色.json'
|
|
352
|
-
})}
|
|
353
|
-
</assistant_response>
|
|
354
|
-
</example>
|
|
355
|
-
</examples>`
|
|
356
|
-
},
|
|
357
|
-
execute({ files }) {
|
|
358
|
-
let actions: any = [];
|
|
359
|
-
|
|
360
|
-
const actionsFile = getFiles(files, { extName: 'json' });
|
|
361
|
-
if (actionsFile) {
|
|
362
|
-
try {
|
|
363
|
-
actions = JSON.parse(actionsFile.content ?? "[]");
|
|
364
|
-
} catch (error) {
|
|
365
|
-
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
const actionsGroupById = actions.reduce((acc, item) => {
|
|
370
|
-
const id = item.comId;
|
|
371
|
-
if (!acc[id]) {
|
|
372
|
-
acc[id] = [];
|
|
373
|
-
}
|
|
374
|
-
acc[id].push(item);
|
|
375
|
-
return acc;
|
|
376
|
-
}, {});
|
|
377
|
-
|
|
378
|
-
Object.keys(actionsGroupById).forEach(id => {
|
|
379
|
-
config.onActions(id, actionsGroupById[id])
|
|
380
|
-
})
|
|
381
|
-
|
|
382
|
-
return `modify-component 已完成,已根据需求修改以下组件: ${Object.keys(actionsGroupById).join('、')}。`
|
|
383
|
-
},
|
|
384
|
-
}
|
|
385
|
-
}
|
package/src/tools/type.d.ts
DELETED
package/src/tools/utils.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export function getFiles(files: RxFiles, {
|
|
2
|
-
extName
|
|
3
|
-
}: {
|
|
4
|
-
extName?: string
|
|
5
|
-
}): RxFile | undefined {
|
|
6
|
-
let result: RxFile | undefined
|
|
7
|
-
Object.keys(files).forEach((fileName) => {
|
|
8
|
-
const file = files[fileName] as RxFile;
|
|
9
|
-
if (file.extension === extName) {
|
|
10
|
-
result = file
|
|
11
|
-
}
|
|
12
|
-
})
|
|
13
|
-
return result
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function getTreeDescriptionByJson(data: any, level = 0) {
|
|
17
|
-
const indent = ' '.repeat(level);
|
|
18
|
-
let result = '';
|
|
19
|
-
|
|
20
|
-
if (!data || Object.keys(data).length === 0) {
|
|
21
|
-
return '无内容,代表内容为空';
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// 如果是数组,遍历每个元素
|
|
25
|
-
if (Array.isArray(data)) {
|
|
26
|
-
|
|
27
|
-
if (data.length === 0) {
|
|
28
|
-
return '无内容,代表内容为空';
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
data.forEach(item => {
|
|
32
|
-
result += getTreeDescriptionByJson(item, level);
|
|
33
|
-
});
|
|
34
|
-
return result;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// 处理当前节点
|
|
38
|
-
if (data.title) {
|
|
39
|
-
const namespace = data.def?.namespace ||
|
|
40
|
-
data.def?.namespace ||
|
|
41
|
-
'content';
|
|
42
|
-
result += `${indent}- ${data.title}[id=${data.id}](${namespace})\n`;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// 处理slots中的组件
|
|
46
|
-
if (data.slots && Array.isArray(data.slots)) {
|
|
47
|
-
data.slots.forEach((slot: any) => {
|
|
48
|
-
if (slot.components && Array.isArray(slot.components)) {
|
|
49
|
-
slot.components.forEach(component => {
|
|
50
|
-
result += getTreeDescriptionByJson(component, level + 1);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return result;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
export const MyBricksHelper = {
|
|
61
|
-
getTreeDescriptionByJson,
|
|
62
|
-
}
|
package/src/types.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
interface AiServiceAPI {
|
|
2
|
-
global: {
|
|
3
|
-
title: string;
|
|
4
|
-
api: {
|
|
5
|
-
getAllComDefPrompts: () => string;
|
|
6
|
-
}
|
|
7
|
-
};
|
|
8
|
-
page: {
|
|
9
|
-
title: string;
|
|
10
|
-
params: stirng[];
|
|
11
|
-
api: {
|
|
12
|
-
updatePage: (...params: any) => void;
|
|
13
|
-
getPageDSLPrompts: (...params: any) => string;
|
|
14
|
-
getPageContainerPrompts: (...params: any) => string;
|
|
15
|
-
clearPageContent: (pageId: string) => void
|
|
16
|
-
getOutlineInfo: (...params: any) => any
|
|
17
|
-
createCanvas: () => { id: string; title: string; }
|
|
18
|
-
createPage: (id: string, title: string, config?: any) => { id: string; onProgress: Function; }
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
uiCom: {
|
|
22
|
-
title: string;
|
|
23
|
-
api: {
|
|
24
|
-
updateCom: (...params: any) => void;
|
|
25
|
-
getComPrompts: (...params: any) => string;
|
|
26
|
-
getComDSLPrompts: (...params: any) => string;
|
|
27
|
-
getComEditorPrompts: (...params: any) => string;
|
|
28
|
-
getOutlineInfo: (...params: any) => any
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
type AiServiceFocusParams = {
|
|
34
|
-
type: "uiCom";
|
|
35
|
-
comId: string;
|
|
36
|
-
title: string;
|
|
37
|
-
} | {
|
|
38
|
-
type: "page";
|
|
39
|
-
pageId: string;
|
|
40
|
-
title: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
type AiServiceRequestParams = {
|
|
44
|
-
type: "uiCom";
|
|
45
|
-
message: string;
|
|
46
|
-
comId: string;
|
|
47
|
-
attachments: {
|
|
48
|
-
type: "image";
|
|
49
|
-
content: string;
|
|
50
|
-
title?: string;
|
|
51
|
-
size?: number;
|
|
52
|
-
}[];
|
|
53
|
-
onProgress: (status: string) => void;
|
|
54
|
-
} | {
|
|
55
|
-
type: "page";
|
|
56
|
-
message: string;
|
|
57
|
-
pageId: string;
|
|
58
|
-
attachments: {
|
|
59
|
-
type: "image";
|
|
60
|
-
content: string;
|
|
61
|
-
title?: string;
|
|
62
|
-
size?: number;
|
|
63
|
-
}[];
|
|
64
|
-
onProgress: (status: string) => void;
|
|
65
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
.header {
|
|
2
|
-
width: 100%;
|
|
3
|
-
height: 40px;
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
padding: 0 40px 0 8px;
|
|
7
|
-
justify-content: space-between;
|
|
8
|
-
border-bottom: 1px solid #f3f3f3;
|
|
9
|
-
|
|
10
|
-
.title {
|
|
11
|
-
font-weight: 700;
|
|
12
|
-
font-size: 12px;
|
|
13
|
-
color: rgb(25, 25, 25);
|
|
14
|
-
line-height: 18px;
|
|
15
|
-
cursor: default;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from "react"
|
|
2
|
-
import classNames from "classnames"
|
|
3
|
-
import css from "./header.less"
|
|
4
|
-
|
|
5
|
-
const Header = () => {
|
|
6
|
-
return (
|
|
7
|
-
<div className={classNames(css.header)}>
|
|
8
|
-
<span className={classNames(css.title)}>
|
|
9
|
-
MyBricks.ai
|
|
10
|
-
</span>
|
|
11
|
-
</div>
|
|
12
|
-
)
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export { Header }
|