@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
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import React, { forwardRef, useRef, useState, useImperativeHandle } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { message } from 'antd';
|
|
4
|
+
import { Attachment, Loading, Send } from '../icons/index.js';
|
|
5
|
+
import { MentionTag } from '../mention/index.js';
|
|
6
|
+
import { AttachmentsList } from '../attachments/index.js';
|
|
7
|
+
import css from './index.less.js';
|
|
8
|
+
|
|
9
|
+
var readFileToBase64 = file => {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
var reader = new FileReader();
|
|
12
|
+
reader.onload = function (event) {
|
|
13
|
+
if (event.target) {
|
|
14
|
+
var base64 = event.target.result;
|
|
15
|
+
resolve(base64);
|
|
16
|
+
} else {
|
|
17
|
+
reject(event);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
reader.onerror = function (event) {
|
|
21
|
+
reject(event);
|
|
22
|
+
};
|
|
23
|
+
reader.readAsDataURL(file);
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var Sender = /*#__PURE__*/forwardRef((props, ref) => {
|
|
27
|
+
var {
|
|
28
|
+
loading,
|
|
29
|
+
placeholder = "请输入",
|
|
30
|
+
disabled,
|
|
31
|
+
onMentionClick,
|
|
32
|
+
onBlur,
|
|
33
|
+
attachmentsPrompt,
|
|
34
|
+
mode
|
|
35
|
+
} = props;
|
|
36
|
+
var inputEditorRef = useRef(null);
|
|
37
|
+
var [isComposing, setIsComposing] = useState(false);
|
|
38
|
+
var [inputContent, setInputContent] = useState(null);
|
|
39
|
+
var [attachments, setAttachments] = useState([]);
|
|
40
|
+
var [mentions, _setMentions] = useState([]);
|
|
41
|
+
var [vibeCoding, setVibeCoding] = useState(false);
|
|
42
|
+
useImperativeHandle(ref, () => {
|
|
43
|
+
return {
|
|
44
|
+
focus: () => {
|
|
45
|
+
inputEditorRef.current.focus();
|
|
46
|
+
},
|
|
47
|
+
setMentions: mentions => {
|
|
48
|
+
var _mentions$;
|
|
49
|
+
_setMentions(mentions);
|
|
50
|
+
setVibeCoding(((_mentions$ = mentions[0]) === null || _mentions$ === void 0 ? void 0 : _mentions$.vibeCoding) || false);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
var send = () => {
|
|
55
|
+
var inputContent = inputEditorRef.current.textContent;
|
|
56
|
+
if (inputContent && !loading && !disabled) {
|
|
57
|
+
props.onSend({
|
|
58
|
+
message: inputContent,
|
|
59
|
+
attachments,
|
|
60
|
+
mentions
|
|
61
|
+
});
|
|
62
|
+
setAttachments([]);
|
|
63
|
+
setInputContent("");
|
|
64
|
+
inputEditorRef.current.textContent = "";
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var onInput = () => {
|
|
68
|
+
setInputContent(inputEditorRef.current.textContent);
|
|
69
|
+
};
|
|
70
|
+
var onKeyDown = event => {
|
|
71
|
+
if (event.key === "Enter") {
|
|
72
|
+
if (isComposing) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (event.shiftKey) ; else {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
send();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
var onCompositionStart = () => {
|
|
82
|
+
setIsComposing(true);
|
|
83
|
+
};
|
|
84
|
+
var onCompositionEnd = () => {
|
|
85
|
+
setIsComposing(false);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/** 检查附件数量是否超出限制,超出返回 true */
|
|
89
|
+
var checkAttachmentsLimit = () => {
|
|
90
|
+
if (attachments.length > 1) {
|
|
91
|
+
message.info("当前只能上传两张图片");
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
};
|
|
96
|
+
var updateAttachmentsByFile = file => {
|
|
97
|
+
if (file.size > 5000 * 1024) {
|
|
98
|
+
message.info("\u5F53\u524D\u6587\u4EF6\u5927\u5C0F ".concat((file.size / 1024).toFixed(2), "K\uFF0C\u8D85\u8FC7\u4E865000K\uFF0C\u5EFA\u8BAE\u60A8\u622A\u53D6\u9875\u9762\u4E2D\u7684\u67D0\u4E2A\u533A\u57DF\u4F5C\u4E3A\u9644\u4EF6"));
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
readFileToBase64(file).then(base64 => {
|
|
102
|
+
setAttachments(attachments => {
|
|
103
|
+
return [...attachments, {
|
|
104
|
+
type: "image",
|
|
105
|
+
content: base64
|
|
106
|
+
}];
|
|
107
|
+
});
|
|
108
|
+
if (!inputContent && attachmentsPrompt) {
|
|
109
|
+
setInputContent(attachmentsPrompt);
|
|
110
|
+
var selection = window.getSelection();
|
|
111
|
+
if (!(selection !== null && selection !== void 0 && selection.rangeCount)) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
var range = selection.getRangeAt(0);
|
|
115
|
+
var textNode = document.createTextNode(attachmentsPrompt);
|
|
116
|
+
range.insertNode(textNode);
|
|
117
|
+
range.setStartAfter(textNode);
|
|
118
|
+
range.setEndAfter(textNode);
|
|
119
|
+
}
|
|
120
|
+
}).catch(event => {
|
|
121
|
+
console.error("[@mybricks/plugin-ai - 上传附件失败]", event);
|
|
122
|
+
message.error("[@mybricks/plugin-ai - 上传附件失败]");
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
var uploadAttachment = () => {
|
|
126
|
+
if (loading || disabled) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (checkAttachmentsLimit()) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
var fileInput = document.createElement('input');
|
|
133
|
+
fileInput.type = 'file';
|
|
134
|
+
fileInput.accept = 'image/*';
|
|
135
|
+
fileInput.addEventListener('change', function (e) {
|
|
136
|
+
var _target$files;
|
|
137
|
+
var target = e.target;
|
|
138
|
+
if (!target) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
var file = (_target$files = target.files) === null || _target$files === void 0 ? void 0 : _target$files[0];
|
|
142
|
+
if (file) {
|
|
143
|
+
if (!file.type.startsWith('image/')) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
updateAttachmentsByFile(file);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
fileInput.click();
|
|
150
|
+
};
|
|
151
|
+
var onPaste = event => {
|
|
152
|
+
event.preventDefault();
|
|
153
|
+
if (loading || disabled) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
var file = event.clipboardData.files[0];
|
|
157
|
+
if (file !== null && file !== void 0 && file.type.startsWith('image/')) {
|
|
158
|
+
if (checkAttachmentsLimit()) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
updateAttachmentsByFile(file);
|
|
162
|
+
} else {
|
|
163
|
+
var content = event.clipboardData.getData('text/plain');
|
|
164
|
+
if (!content) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
var selection = window.getSelection();
|
|
168
|
+
if (!(selection !== null && selection !== void 0 && selection.rangeCount)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
var range = selection.getRangeAt(0);
|
|
172
|
+
range.deleteContents();
|
|
173
|
+
var textNode = document.createTextNode(content);
|
|
174
|
+
range.insertNode(textNode);
|
|
175
|
+
range.setStartAfter(textNode);
|
|
176
|
+
range.setEndAfter(textNode);
|
|
177
|
+
setInputContent(inputEditorRef.current.textContent);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
var onAttachmentsDelete = index => {
|
|
181
|
+
setAttachments(attachments => {
|
|
182
|
+
attachments.splice(index, 1);
|
|
183
|
+
return [...attachments];
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
187
|
+
className: css.container
|
|
188
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
189
|
+
className: classNames(css.editor, {
|
|
190
|
+
[css.noMentions]: mode === "mention" && !mentions.length
|
|
191
|
+
})
|
|
192
|
+
}, attachments.length ? /*#__PURE__*/React.createElement("div", {
|
|
193
|
+
className: css.topArea
|
|
194
|
+
}, /*#__PURE__*/React.createElement(AttachmentsList, {
|
|
195
|
+
attachments: attachments,
|
|
196
|
+
onDelete: onAttachmentsDelete
|
|
197
|
+
})) : null, mentions.length ? /*#__PURE__*/React.createElement("div", {
|
|
198
|
+
className: css.mentions
|
|
199
|
+
}, /*#__PURE__*/React.createElement("span", null, "\u5BF9\u4E8E"), /*#__PURE__*/React.createElement(MentionTag, {
|
|
200
|
+
mention: mentions[0],
|
|
201
|
+
onClick: onMentionClick
|
|
202
|
+
}), /*#__PURE__*/React.createElement("span", null, (mentions[0].type === "page" ? "页面" : "组件") + (mentions[0].focusArea ? "的" : "")), mentions[0].focusArea ? /*#__PURE__*/React.createElement("span", {
|
|
203
|
+
className: css.focusarea
|
|
204
|
+
}, mentions[0].focusArea.title || "区域") : null) : null, /*#__PURE__*/React.createElement("div", {
|
|
205
|
+
className: css.input
|
|
206
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
207
|
+
className: css.inputEditorContainer
|
|
208
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
209
|
+
ref: inputEditorRef,
|
|
210
|
+
className: css.inputEditor,
|
|
211
|
+
contentEditable: disabled ? false : true,
|
|
212
|
+
onKeyDown: onKeyDown,
|
|
213
|
+
onCompositionStart: onCompositionStart,
|
|
214
|
+
onCompositionEnd: onCompositionEnd,
|
|
215
|
+
onInput: onInput,
|
|
216
|
+
onPaste: onPaste,
|
|
217
|
+
onBlur: onBlur
|
|
218
|
+
}), !inputContent && /*#__PURE__*/React.createElement("div", {
|
|
219
|
+
className: css.inputPlaceholder
|
|
220
|
+
}, placeholder))), /*#__PURE__*/React.createElement("div", {
|
|
221
|
+
className: css.editorAction
|
|
222
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
223
|
+
className: classNames(css.leftArea, {
|
|
224
|
+
[css.disabled]: loading || disabled
|
|
225
|
+
})
|
|
226
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
227
|
+
className: css.attachmentButton,
|
|
228
|
+
onClick: uploadAttachment
|
|
229
|
+
}, /*#__PURE__*/React.createElement(Attachment, null))), /*#__PURE__*/React.createElement("div", {
|
|
230
|
+
className: css.rightArea
|
|
231
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
232
|
+
className: classNames(css.sendButtonContainer, {
|
|
233
|
+
[css.disabled]: !inputContent || loading || disabled
|
|
234
|
+
}),
|
|
235
|
+
onClick: send
|
|
236
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
237
|
+
className: classNames(css.sendButton, {
|
|
238
|
+
[css.loadingButton]: loading
|
|
239
|
+
})
|
|
240
|
+
}, loading ? /*#__PURE__*/React.createElement(Loading, null) : /*#__PURE__*/React.createElement(Send, null)))))));
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
export { Sender };
|
|
244
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/sender/index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState, useImperativeHandle, PropsWithoutRef, forwardRef } from \"react\"\nimport classNames from \"classnames\";\nimport { message } from \"antd\";\nimport { Attachment, Loading, Send, Code } from \"../icons\";\nimport { MentionTag } from \"../mention\";\nimport { AttachmentsList } from \"../attachments\";\nimport { Mention, Attachments } from \"../types\";\nimport css from \"./index.less\"\n\nconst readFileToBase64 = (file: File): Promise<string> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = function (event) {\n if (event.target) {\n const base64 = event.target.result as string;\n resolve(base64);\n } else {\n reject(event);\n }\n };\n reader.onerror = function (event) {\n reject(event);\n };\n reader.readAsDataURL(file);\n })\n}\n\ninterface SenderProps {\n onSend: (message: {\n message: string;\n attachments: Attachments;\n mentions: Mention[];\n [key: string]: any;\n }) => void;\n onMentionClick?: (mention: Mention) => void;\n loading?: boolean;\n placeholder?: string;\n attachmentsPrompt?: string;\n disabled?: boolean;\n onBlur?: () => void;\n mode?: \"mention\"\n}\n\ninterface SenderRef {\n focus: () => void;\n // TODO: 目前仅展示聚焦组件且单个比较简单直接set即可,后续可通过输入框@唤起选择多个\n setMentions: (mentions: Mention[]) => void;\n}\n\nconst Sender = forwardRef<SenderRef, SenderProps>((props, ref) => {\n const { loading, placeholder = \"请输入\", disabled, onMentionClick, onBlur, attachmentsPrompt, mode } = props;\n const inputEditorRef = useRef<HTMLDivElement>(null);\n const [isComposing, setIsComposing] = useState(false);\n const [inputContent, setInputContent] = useState<string | null>(null);\n const [attachments, setAttachments] = useState<Attachments>([]);\n const [mentions, setMentions] = useState<Mention[]>([]);\n const [vibeCoding, setVibeCoding] = useState(false);\n\n useImperativeHandle(ref, () => {\n return {\n focus: () => {\n inputEditorRef.current!.focus()\n },\n setMentions: (mentions) => {\n setMentions(mentions)\n setVibeCoding(mentions[0]?.vibeCoding || false);\n },\n };\n }, []);\n\n const send = () => {\n const inputContent = inputEditorRef.current!.textContent;\n if (inputContent && !loading && !disabled) {\n props.onSend({\n message: inputContent,\n attachments,\n mentions,\n })\n\n setAttachments([]);\n setInputContent(\"\");\n inputEditorRef.current!.textContent = \"\";\n }\n }\n\n const onInput = () => {\n setInputContent(inputEditorRef.current!.textContent)\n }\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Enter\") {\n if (isComposing) {\n return;\n }\n\n if (event.shiftKey) {\n\n } else {\n event.preventDefault();\n send();\n }\n }\n }\n\n const onCompositionStart = () => {\n setIsComposing(true);\n }\n\n const onCompositionEnd = () => {\n setIsComposing(false);\n }\n\n /** 检查附件数量是否超出限制,超出返回 true */\n const checkAttachmentsLimit = () => {\n if (attachments.length > 1) {\n message.info(\"当前只能上传两张图片\");\n return true;\n }\n return false;\n }\n\n const updateAttachmentsByFile = (file: File) => {\n if (file.size > 5000 * 1024) {\n message.info(`当前文件大小 ${(file.size / 1024).toFixed(2)}K,超过了5000K,建议您截取页面中的某个区域作为附件`)\n return;\n }\n readFileToBase64(file)\n .then((base64) => {\n setAttachments((attachments) => {\n return [...attachments, { type: \"image\", content: base64 }]\n })\n if (!inputContent && attachmentsPrompt) {\n setInputContent(attachmentsPrompt);\n const selection = window.getSelection();\n\n if (!selection?.rangeCount) {\n return;\n }\n\n const range = selection.getRangeAt(0);\n const textNode = document.createTextNode(attachmentsPrompt);\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n }\n })\n .catch((event) => {\n console.error(\"[@mybricks/plugin-ai - 上传附件失败]\", event);\n message.error(\"[@mybricks/plugin-ai - 上传附件失败]\");\n })\n }\n\n const uploadAttachment = () => {\n if (loading || disabled) {\n return;\n }\n if (checkAttachmentsLimit()) {\n return;\n }\n const fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = 'image/*';\n\n fileInput.addEventListener('change', function (e) {\n const target = e.target as HTMLInputElement;\n if (!target) {\n return;\n }\n const file = target.files?.[0];\n\n if (file) {\n if (!file.type.startsWith('image/')) {\n return;\n }\n\n updateAttachmentsByFile(file);\n }\n });\n\n fileInput.click();\n };\n\n const onPaste = (event: React.ClipboardEvent<HTMLDivElement>) => {\n event.preventDefault();\n if (loading || disabled) {\n return;\n }\n const file = event.clipboardData.files[0];\n if (file?.type.startsWith('image/')) {\n if (checkAttachmentsLimit()) {\n return;\n }\n updateAttachmentsByFile(file);\n } else {\n const content = event.clipboardData.getData('text/plain');\n\n if (!content) {\n return;\n }\n\n const selection = window.getSelection();\n\n if (!selection?.rangeCount) {\n return;\n }\n\n const range = selection.getRangeAt(0);\n range.deleteContents();\n const textNode = document.createTextNode(content);\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n\n setInputContent(inputEditorRef.current!.textContent)\n }\n }\n\n const onAttachmentsDelete = (index: number) => {\n setAttachments((attachments) => {\n attachments.splice(index, 1)\n return [...attachments]\n })\n }\n\n return (\n <div className={css.container}>\n <div className={classNames(css.editor, {\n [css.noMentions]: mode === \"mention\" && !mentions.length\n })}>\n {attachments.length ? (\n <div className={css.topArea}>\n <AttachmentsList attachments={attachments} onDelete={onAttachmentsDelete}/>\n </div>\n ) : null}\n {mentions.length ? (\n <div className={css.mentions}>\n <span>对于</span>\n <MentionTag mention={mentions[0]} onClick={onMentionClick} />\n <span>{(mentions[0].type === \"page\" ? \"页面\" : \"组件\") + (mentions[0].focusArea ? \"的\" : \"\")}</span>\n {mentions[0].focusArea ? (\n <span className={css.focusarea}>\n {mentions[0].focusArea.title || \"区域\"}\n </span>\n ) : null}\n {/* {vibeCoding ? <span className={css.vibeCoding}>(开发中)</span> : null} */}\n {/* {mentions.map((mention) => {\n return <MentionTag key={mention.id} mention={mention} onClick={onMentionClick} />\n })} */}\n </div>\n ) : null}\n <div className={css.input}>\n <div className={css.inputEditorContainer}>\n <div\n ref={inputEditorRef}\n className={css.inputEditor}\n contentEditable={disabled ? false : true}\n onKeyDown={onKeyDown}\n onCompositionStart={onCompositionStart}\n onCompositionEnd={onCompositionEnd}\n onInput={onInput}\n onPaste={onPaste}\n onBlur={onBlur}\n ></div>\n {!inputContent && <div className={css.inputPlaceholder}>\n {placeholder}\n </div>}\n </div>\n </div>\n <div className={css.editorAction}>\n <div className={classNames(css.leftArea, {\n [css.disabled]: loading || disabled\n })}>\n <div className={css.attachmentButton} onClick={uploadAttachment}>\n <Attachment />\n </div>\n {/* {attachments.length ? (\n <AttachmentsList attachments={attachments} onDelete={onAttachmentsDelete}/>\n ) : null} */}\n </div>\n <div className={css.rightArea}>\n <div className={classNames(css.sendButtonContainer, {\n [css.disabled]: !inputContent || loading || disabled\n })} onClick={send}>\n <div className={classNames(css.sendButton, {\n [css.loadingButton]: loading\n })}>\n {loading ? <Loading /> : <Send />}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n})\n\nexport { Sender }\nexport type { SenderRef, SenderProps }\n"],"names":["readFileToBase64","file","Promise","resolve","reject","reader","FileReader","onload","event","target","base64","result","onerror","readAsDataURL","Sender","forwardRef","props","ref","loading","placeholder","disabled","onMentionClick","onBlur","attachmentsPrompt","mode","inputEditorRef","useRef","isComposing","setIsComposing","useState","inputContent","setInputContent","attachments","setAttachments","mentions","setMentions","vibeCoding","setVibeCoding","useImperativeHandle","focus","current","_mentions$","send","textContent","onSend","message","onInput","onKeyDown","key","shiftKey","preventDefault","onCompositionStart","onCompositionEnd","checkAttachmentsLimit","length","info","updateAttachmentsByFile","size","concat","toFixed","then","type","content","selection","window","getSelection","rangeCount","range","getRangeAt","textNode","document","createTextNode","insertNode","setStartAfter","setEndAfter","catch","console","error","uploadAttachment","fileInput","createElement","accept","addEventListener","e","_target$files","files","startsWith","click","onPaste","clipboardData","getData","deleteContents","onAttachmentsDelete","index","splice","React","className","css","container","classNames","editor","noMentions","topArea","AttachmentsList","onDelete","MentionTag","mention","onClick","focusArea","focusarea","title","input","inputEditorContainer","inputEditor","contentEditable","inputPlaceholder","editorAction","leftArea","attachmentButton","Attachment","rightArea","sendButtonContainer","sendButton","loadingButton","Loading","Send"],"mappings":"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"}
|
|
@@ -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_loading-shimmer__r0Zvw {\n -webkit-text-fill-color: transparent;\n animation-duration: 3s;\n animation-iteration-count: infinite;\n animation-name: index_loading-shimmer__r0Zvw;\n background: #adadad linear-gradient(to right, #adadad 0, #1a1a1abf 40%, #1a1a1abf 60%, #adadad 100%);\n -webkit-background-clip: text;\n background-clip: text;\n background-repeat: no-repeat;\n background-size: 50% 200%;\n display: inline-block;\n}\n@keyframes index_loading-shimmer__r0Zvw {\n 0% {\n background-position: -100% 0;\n }\n 100% {\n background-position: 250% 0;\n }\n}\n.index_container__Ilpe- {\n padding: 8px;\n}\n.index_container__Ilpe- .index_editor__2w6iD {\n z-index: 13;\n position: relative;\n background-color: #ffffff;\n border: solid 1px rgba(0, 0, 0, 0.13);\n width: 100%;\n border-radius: 12px;\n box-shadow: 0 5px 16px -4px #00000012;\n color: rgba(0, 0, 0, 0.9);\n cursor: default;\n}\n.index_container__Ilpe- .index_editor__2w6iD.index_noMentions__-ajKN {\n background-color: #f7f7f7;\n}\n.index_container__Ilpe- .index_editor__2w6iD.index_noMentions__-ajKN .index_inputPlaceholder__WDhGe {\n color: rgba(0, 0, 0, 0.4) !important;\n}\n.index_container__Ilpe- .index_editor__2w6iD:focus-within {\n border-color: var(--mybricks-color-primary);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_mentions__Iwnzd {\n padding: 8px 8px 0 8px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_mentions__Iwnzd span {\n font-size: 12px;\n line-height: 20px;\n white-space: nowrap;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_mentions__Iwnzd .index_focusarea__aHRJ- {\n color: var(--mybricks-color-primary);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_mentions__Iwnzd .index_vibeCoding__0D98G {\n color: var(--mybricks-color-primary);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_topArea__-YN6S {\n padding: 8px;\n box-shadow: 0 0.5px 0 0 rgba(0, 0, 0, 0.13);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa {\n padding: 8px 8px 10px;\n line-height: 1.5;\n min-height: 60px;\n position: relative;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa .index_inputEditorContainer__EzHYu {\n font-size: 12px;\n max-height: 140px;\n position: relative;\n min-height: inherit;\n overflow: auto;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa .index_inputEditorContainer__EzHYu::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa .index_inputEditorContainer__EzHYu:hover {\n background: transparent;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa .index_inputEditorContainer__EzHYu:hover::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.3) !important;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa .index_inputEditorContainer__EzHYu .index_inputEditor__Fbzij {\n user-select: text;\n white-space: pre-wrap;\n word-break: break-word;\n width: 100%;\n max-height: fit-content;\n min-height: inherit;\n overflow: hidden;\n outline: none;\n cursor: text;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa .index_inputEditorContainer__EzHYu .index_inputEditor__Fbzij[contentEditable=\"false\"] {\n cursor: default;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_input__1nUGa .index_inputEditorContainer__EzHYu .index_inputPlaceholder__WDhGe {\n position: absolute;\n overflow: hidden;\n text-overflow: ellipsis;\n top: 0;\n left: 0;\n user-select: none;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.6);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n padding: 0 8px;\n margin-top: 2px;\n margin-bottom: 8px;\n position: relative;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI .index_attachmentButton__h6AqG {\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 25px;\n height: 25px;\n border-radius: 50%;\n cursor: pointer;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI .index_attachmentButton__h6AqG svg {\n width: 18px;\n height: 18px;\n color: rgba(0, 0, 0, 0.6);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI .index_attachmentButton__h6AqG:hover {\n background-color: rgba(0, 0, 0, 0.09);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI .index_attachmentButton__h6AqG input {\n display: none;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI.index_disabled__Tb3Zc {\n opacity: 0.5;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI.index_disabled__Tb3Zc .index_attachmentButton__h6AqG {\n cursor: default;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_leftArea__7xkbI.index_disabled__Tb3Zc .index_attachmentButton__h6AqG:hover {\n background-color: transparent;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_rightArea__3XedW {\n display: flex;\n align-items: center;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_rightArea__3XedW .index_sendButtonContainer__jRgc2 {\n cursor: pointer;\n background-color: var(--mybricks-color-primary);\n border-radius: 50%;\n display: flex;\n align-items: center;\n color: rgba(255, 255, 255, 0.9);\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_rightArea__3XedW .index_sendButtonContainer__jRgc2 .index_sendButton__VxH3x {\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 25px;\n height: 25px;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_rightArea__3XedW .index_sendButtonContainer__jRgc2 .index_sendButton__VxH3x svg {\n width: 11px;\n height: 11px;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_rightArea__3XedW .index_sendButtonContainer__jRgc2 .index_loadingButton__UbuFD svg {\n width: 11px;\n height: 11px;\n}\n.index_container__Ilpe- .index_editor__2w6iD .index_editorAction__E9Qsx .index_rightArea__3XedW .index_disabled__Tb3Zc {\n cursor: default;\n opacity: 0.5;\n}\n";
|
|
4
|
+
var css = {"container":"index_container__Ilpe-","editor":"index_editor__2w6iD","noMentions":"index_noMentions__-ajKN","inputPlaceholder":"index_inputPlaceholder__WDhGe","mentions":"index_mentions__Iwnzd","focusarea":"index_focusarea__aHRJ-","topArea":"index_topArea__-YN6S","input":"index_input__1nUGa","inputEditorContainer":"index_inputEditorContainer__EzHYu","inputEditor":"index_inputEditor__Fbzij","editorAction":"index_editorAction__E9Qsx","leftArea":"index_leftArea__7xkbI","attachmentButton":"index_attachmentButton__h6AqG","disabled":"index_disabled__Tb3Zc","rightArea":"index_rightArea__3XedW","sendButtonContainer":"index_sendButtonContainer__jRgc2","sendButton":"index_sendButton__VxH3x","loadingButton":"index_loadingButton__UbuFD"};
|
|
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,44 @@
|
|
|
1
|
+
import { defineProperty as _defineProperty } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { Events } from '../rxai/src/utils/events.js';
|
|
3
|
+
import '../rxai/node_modules/idb/build/index.js';
|
|
4
|
+
import 'node-forge';
|
|
5
|
+
|
|
6
|
+
class RequestStatusTracker {
|
|
7
|
+
constructor() {
|
|
8
|
+
_defineProperty(this, "requests", new Map());
|
|
9
|
+
_defineProperty(this, "events", new Events());
|
|
10
|
+
}
|
|
11
|
+
track(id, promise) {
|
|
12
|
+
var status = {
|
|
13
|
+
state: "pending",
|
|
14
|
+
result: null
|
|
15
|
+
};
|
|
16
|
+
this.events.emit("promise", {
|
|
17
|
+
id,
|
|
18
|
+
status
|
|
19
|
+
});
|
|
20
|
+
promise.then(result => {
|
|
21
|
+
status.state = "fulfilled";
|
|
22
|
+
status.result = result;
|
|
23
|
+
}).catch(error => {
|
|
24
|
+
status.state = "rejected";
|
|
25
|
+
status.result = error;
|
|
26
|
+
console.error(error);
|
|
27
|
+
}).finally(() => {
|
|
28
|
+
this.events.emit("promise", {
|
|
29
|
+
id,
|
|
30
|
+
status
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
this.requests.set(id, status);
|
|
34
|
+
}
|
|
35
|
+
getStatus(id) {
|
|
36
|
+
return this.requests.get(id) || {
|
|
37
|
+
state: "fulfilled",
|
|
38
|
+
result: null
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { RequestStatusTracker };
|
|
44
|
+
//# sourceMappingURL=RequestStatusTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestStatusTracker.js","sources":["../../src/context/RequestStatusTracker.ts"],"sourcesContent":["import { Events } from \"@mybricks/rxai\"\n\ninterface RequestStatus {\n state: \"pending\" | \"fulfilled\" | \"rejected\";\n result: any;\n}\nclass RequestStatusTracker {\n private requests = new Map<string, RequestStatus>();\n events = new Events<{promise: {\n id: string;\n status: RequestStatus\n }}>();\n constructor() {}\n\n track(id: string, promise: Promise<any>) {\n const status: RequestStatus = {\n state: \"pending\",\n result: null,\n }\n this.events.emit(\"promise\", {\n id,\n status,\n })\n\n promise.then((result) => {\n status.state = \"fulfilled\";\n status.result = result\n }).catch((error) => {\n status.state = \"rejected\";\n status.result = error\n console.error(error);\n }).finally(() => {\n this.events.emit(\"promise\", {\n id,\n status,\n })\n })\n\n this.requests.set(id, status);\n }\n\n getStatus(id: string) {\n return this.requests.get(id) || {\n state: \"fulfilled\",\n result: null\n };\n }\n}\n\nexport { RequestStatusTracker };\n"],"names":["RequestStatusTracker","constructor","_defineProperty","Map","Events","track","id","promise","status","state","result","events","emit","then","catch","error","console","finally","requests","set","getStatus","get"],"mappings":";;;;;AAMA,MAAMA,oBAAoB,CAAC;AAMzBC,EAAAA,WAAWA,GAAG;AAAAC,IAAAA,eAAA,CAAA,IAAA,EAAA,UAAA,EALK,IAAIC,GAAG,EAAyB,CAAA;AAAAD,IAAAA,eAAA,CAAA,IAAA,EAAA,QAAA,EAC1C,IAAIE,MAAM,EAGd,CAAA;AACU,EAAA;AAEfC,EAAAA,KAAKA,CAACC,EAAU,EAAEC,OAAqB,EAAE;AACvC,IAAA,IAAMC,MAAqB,GAAG;AAC5BC,MAAAA,KAAK,EAAE,SAAS;AAChBC,MAAAA,MAAM,EAAE;KACT;AACD,IAAA,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,SAAS,EAAE;MAC1BN,EAAE;AACFE,MAAAA;AACF,KAAC,CAAC;AAEFD,IAAAA,OAAO,CAACM,IAAI,CAAEH,MAAM,IAAK;MACvBF,MAAM,CAACC,KAAK,GAAG,WAAW;MAC1BD,MAAM,CAACE,MAAM,GAAGA,MAAM;AACxB,IAAA,CAAC,CAAC,CAACI,KAAK,CAAEC,KAAK,IAAK;MAClBP,MAAM,CAACC,KAAK,GAAG,UAAU;MACzBD,MAAM,CAACE,MAAM,GAAGK,KAAK;AACrBC,MAAAA,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;AACtB,IAAA,CAAC,CAAC,CAACE,OAAO,CAAC,MAAM;AACf,MAAA,IAAI,CAACN,MAAM,CAACC,IAAI,CAAC,SAAS,EAAE;QAC1BN,EAAE;AACFE,QAAAA;AACF,OAAC,CAAC;AACJ,IAAA,CAAC,CAAC;IAEF,IAAI,CAACU,QAAQ,CAACC,GAAG,CAACb,EAAE,EAAEE,MAAM,CAAC;AAC/B,EAAA;EAEAY,SAASA,CAACd,EAAU,EAAE;IACpB,OAAO,IAAI,CAACY,QAAQ,CAACG,GAAG,CAACf,EAAE,CAAC,IAAI;AAC9BG,MAAAA,KAAK,EAAE,WAAW;AAClBC,MAAAA,MAAM,EAAE;KACT;AACH,EAAA;AACF;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { defineProperty as _defineProperty, objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { Rxai } from '../rxai/src/agent/rxai.js';
|
|
3
|
+
import { Events } from '../rxai/src/utils/events.js';
|
|
4
|
+
import { IDB } from '../rxai/src/utils/idb.js';
|
|
5
|
+
import 'node-forge';
|
|
6
|
+
import { RequestStatusTracker } from './RequestStatusTracker.js';
|
|
7
|
+
import { DeviceType } from '../types/index.js';
|
|
8
|
+
|
|
9
|
+
class Context {
|
|
10
|
+
constructor() {
|
|
11
|
+
/** UI展示名称 */
|
|
12
|
+
/** 设计器 API(带记录功能) */
|
|
13
|
+
/** Agent 配置 */
|
|
14
|
+
_defineProperty(this, "agents", []);
|
|
15
|
+
/** 是否多画布 */
|
|
16
|
+
_defineProperty(this, "isMutiCanvas", true);
|
|
17
|
+
_defineProperty(this, "deviceType", DeviceType.Mobile);
|
|
18
|
+
_defineProperty(this, "events", new Events());
|
|
19
|
+
_defineProperty(this, "requestStatusTracker", new RequestStatusTracker());
|
|
20
|
+
_defineProperty(this, "pluginParams", {});
|
|
21
|
+
}
|
|
22
|
+
get useCloudComponents() {
|
|
23
|
+
var _this$userConfig$useC, _this$userConfig;
|
|
24
|
+
return (_this$userConfig$useC = (_this$userConfig = this.userConfig) === null || _this$userConfig === void 0 ? void 0 : _this$userConfig.useCloudComponents) !== null && _this$userConfig$useC !== void 0 ? _this$userConfig$useC : false;
|
|
25
|
+
}
|
|
26
|
+
get enabledActionTags() {
|
|
27
|
+
var _this$userConfig$enab, _this$userConfig2;
|
|
28
|
+
return (_this$userConfig$enab = (_this$userConfig2 = this.userConfig) === null || _this$userConfig2 === void 0 ? void 0 : _this$userConfig2.enabledActionTags) !== null && _this$userConfig$enab !== void 0 ? _this$userConfig$enab : true;
|
|
29
|
+
}
|
|
30
|
+
createRxai(options) {
|
|
31
|
+
if (!this.rxai) {
|
|
32
|
+
this.rxai = new Rxai(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
33
|
+
idb: options.key ? new IDB({
|
|
34
|
+
dbName: "@mybricks/plugin-ai/messages",
|
|
35
|
+
key: options.key
|
|
36
|
+
}) : undefined
|
|
37
|
+
}));
|
|
38
|
+
this.globalRxai = new Rxai(options);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
var context = new Context();
|
|
43
|
+
|
|
44
|
+
export { context };
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/context/index.ts"],"sourcesContent":["import { Rxai, Events, IDB } from \"@mybricks/rxai\"\nimport { RequestStatusTracker } from \"./RequestStatusTracker\";\nimport { DeviceType } from './../types';\nimport type { AgentConfigParams } from '../agents/utils/config';\n\nclass Context {\n\n /** UI展示名称 */\n name!: string\n\n rxai!: Rxai\n globalRxai!: Rxai\n currentFocus?: AiServiceFocusParams;\n api!: AiServiceAPI;\n aiViewAPI!: AiViewApi;\n\n /** 设计器 API(带记录功能) */\n designer?: {\n createPage?: (id: string, title: string, config?: any) => Promise<{ id: string; onProgress: Function; }>;\n createCanvas?: () => Promise<{ id: string; title: string; }>;\n updatePage?: (...params: any[]) => Promise<void>;\n updateUiCom?: (...params: any[]) => Promise<void>;\n updateLogicCom?: (...params: any[]) => Promise<void>;\n createDiagram?: (...params: any[]) => Promise<{ id: string; title: string }>;\n updateDiagram?: (...params: any[]) => Promise<void>;\n getDiagramInfo?: (...params: any[]) => any;\n getDiagramInfoByVarId?: (...params: any[]) => any;\n getDiagramInfoByListenerInfo?: (...params: any[]) => any;\n getAllComDefPrompts: () => string;\n };\n\n /** Agent 配置 */\n agents: AgentConfigParams[] = [];\n\n /** 是否多画布 */\n isMutiCanvas: boolean = true\n\n userConfig?: {\n useCloudComponents: boolean;\n enabledActionTags: boolean;\n }\n\n get useCloudComponents() {\n return this.userConfig?.useCloudComponents ?? false;\n }\n\n get enabledActionTags() {\n return this.userConfig?.enabledActionTags ?? true;\n }\n\n deviceType: DeviceType = DeviceType.Mobile\n\n /** 应用传入的创建页面模板 */\n createTemplates?: {\n page: any\n }\n\n events = new Events<{\n aiViewDisplay: boolean;\n focus: AiServiceFocusParams | undefined;\n }>();\n\n createRxai(options: ConstructorParameters<typeof Rxai>[0] & { key: number }) {\n if (!this.rxai) {\n this.rxai = new Rxai({\n ...options,\n idb: options.key ? new IDB({\n dbName: \"@mybricks/plugin-ai/messages\",\n key: options.key\n }) : undefined\n })\n this.globalRxai = new Rxai(options)\n }\n }\n\n requestStatusTracker = new RequestStatusTracker();\n\n pluginParams: any = {};\n}\n\nconst context = new Context();\n\nexport { context };\n"],"names":["Context","constructor","_defineProperty","DeviceType","Mobile","Events","RequestStatusTracker","useCloudComponents","_this$userConfig$useC","_this$userConfig","userConfig","enabledActionTags","_this$userConfig$enab","_this$userConfig2","createRxai","options","rxai","Rxai","_objectSpread","idb","key","IDB","dbName","undefined","globalRxai","context"],"mappings":";;;;;;;;AAKA,MAAMA,OAAO,CAAC;EAAAC,WAAAA,GAAA;AAEZ;AASA;AAeA;AAAAC,IAAAA,eAAA,iBAC8B,EAAE,CAAA;AAEhC;AAAAA,IAAAA,eAAA,uBACwB,IAAI,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,YAAA,EAeHC,UAAU,CAACC,MAAM,CAAA;AAAAF,IAAAA,eAAA,CAAA,IAAA,EAAA,QAAA,EAOjC,IAAIG,MAAM,EAGf,CAAA;AAAAH,IAAAA,eAAA,CAAA,IAAA,EAAA,sBAAA,EAemB,IAAII,oBAAoB,EAAE,CAAA;IAAAJ,eAAA,CAAA,IAAA,EAAA,cAAA,EAE7B,EAAE,CAAA;AAAA,EAAA;EAnCtB,IAAIK,kBAAkBA,GAAG;IAAA,IAAAC,qBAAA,EAAAC,gBAAA;AACvB,IAAA,OAAA,CAAAD,qBAAA,GAAA,CAAAC,gBAAA,GAAO,IAAI,CAACC,UAAU,MAAA,IAAA,IAAAD,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,gBAAA,CAAiBF,kBAAkB,MAAA,IAAA,IAAAC,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,KAAK;AACrD,EAAA;EAEA,IAAIG,iBAAiBA,GAAG;IAAA,IAAAC,qBAAA,EAAAC,iBAAA;AACtB,IAAA,OAAA,CAAAD,qBAAA,GAAA,CAAAC,iBAAA,GAAO,IAAI,CAACH,UAAU,MAAA,IAAA,IAAAG,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,iBAAA,CAAiBF,iBAAiB,MAAA,IAAA,IAAAC,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,IAAI;AACnD,EAAA;EAcAE,UAAUA,CAACC,OAAgE,EAAE;AAC3E,IAAA,IAAI,CAAC,IAAI,CAACC,IAAI,EAAE;MACd,IAAI,CAACA,IAAI,GAAG,IAAIC,IAAI,CAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EACfH,OAAO,CAAA,EAAA,EAAA,EAAA;AACVI,QAAAA,GAAG,EAAEJ,OAAO,CAACK,GAAG,GAAG,IAAIC,GAAG,CAAC;AACzBC,UAAAA,MAAM,EAAE,8BAA8B;UACtCF,GAAG,EAAEL,OAAO,CAACK;AACf,SAAC,CAAC,GAAGG;AAAS,OAAA,CACf,CAAC;AACF,MAAA,IAAI,CAACC,UAAU,GAAG,IAAIP,IAAI,CAACF,OAAO,CAAC;AACrC,IAAA;AACF,EAAA;AAKF;AAEA,IAAMU,OAAO,GAAG,IAAIzB,OAAO;;;;"}
|
package/dist/data.js
ADDED
package/dist/data.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sources":["../src/data.ts"],"sourcesContent":["const data = {\n\n}\n\nexport default data"],"names":["data"],"mappings":"AAAA,IAAMA,IAAI,GAAG;;;;"}
|