@mybricks/plugin-ai 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +164 -0
  2. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  3. package/dist/agents/app.js +335 -0
  4. package/dist/agents/app.js.map +1 -0
  5. package/dist/agents/common.js +483 -0
  6. package/dist/agents/common.js.map +1 -0
  7. package/dist/agents/custom.js +16 -0
  8. package/dist/agents/custom.js.map +1 -0
  9. package/dist/agents/index.js +38 -0
  10. package/dist/agents/index.js.map +1 -0
  11. package/dist/agents/knowledges/knowledge-base.js +579 -0
  12. package/dist/agents/knowledges/knowledge-base.js.map +1 -0
  13. package/dist/agents/knowledges/knowledge-node.js +228 -0
  14. package/dist/agents/knowledges/knowledge-node.js.map +1 -0
  15. package/dist/agents/knowledges/types.js +105 -0
  16. package/dist/agents/knowledges/types.js.map +1 -0
  17. package/dist/agents/utils/config.js +229 -0
  18. package/dist/agents/utils/config.js.map +1 -0
  19. package/dist/agents/workspace/coding-manager.js +20 -0
  20. package/dist/agents/workspace/coding-manager.js.map +1 -0
  21. package/dist/agents/workspace/components-manager.js +113 -0
  22. package/dist/agents/workspace/components-manager.js.map +1 -0
  23. package/dist/agents/workspace/outline-focus.js +167 -0
  24. package/dist/agents/workspace/outline-focus.js.map +1 -0
  25. package/dist/agents/workspace/outline-info.js +430 -0
  26. package/dist/agents/workspace/outline-info.js.map +1 -0
  27. package/dist/agents/workspace/page-tree-generator.js +70 -0
  28. package/dist/agents/workspace/page-tree-generator.js.map +1 -0
  29. package/dist/agents/workspace/workspace.js +251 -0
  30. package/dist/agents/workspace/workspace.js.map +1 -0
  31. package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js +100 -0
  32. package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js.map +1 -0
  33. package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js +120 -0
  34. package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js.map +1 -0
  35. package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js +146 -0
  36. package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js.map +1 -0
  37. package/dist/agents/workspace-by-knowledges/test.js +242 -0
  38. package/dist/agents/workspace-by-knowledges/test.js.map +1 -0
  39. package/dist/agents/workspace-by-knowledges/utils/components-manager.js +132 -0
  40. package/dist/agents/workspace-by-knowledges/utils/components-manager.js.map +1 -0
  41. package/dist/agents/workspace-by-knowledges/utils/outline-focus.js +167 -0
  42. package/dist/agents/workspace-by-knowledges/utils/outline-focus.js.map +1 -0
  43. package/dist/agents/workspace-by-knowledges/utils/outline-info.js +430 -0
  44. package/dist/agents/workspace-by-knowledges/utils/outline-info.js.map +1 -0
  45. package/dist/agents/workspace-by-knowledges/workspace.js +169 -0
  46. package/dist/agents/workspace-by-knowledges/workspace.js.map +1 -0
  47. package/dist/api/cloud-components.js +85 -0
  48. package/dist/api/cloud-components.js.map +1 -0
  49. package/dist/api-record-replay/manager.js +168 -0
  50. package/dist/api-record-replay/manager.js.map +1 -0
  51. package/{src/api-record-replay/recorder.ts → dist/api-record-replay/recorder.js} +22 -32
  52. package/dist/api-record-replay/recorder.js.map +1 -0
  53. package/dist/api-record-replay/replayer.js +136 -0
  54. package/dist/api-record-replay/replayer.js.map +1 -0
  55. package/dist/components/attachments/index.js +124 -0
  56. package/dist/components/attachments/index.js.map +1 -0
  57. package/dist/components/attachments/index.less.js +8 -0
  58. package/dist/components/attachments/index.less.js.map +1 -0
  59. package/dist/components/icons/index.js +112 -0
  60. package/dist/components/icons/index.js.map +1 -0
  61. package/dist/components/icons/index.less.js +8 -0
  62. package/dist/components/icons/index.less.js.map +1 -0
  63. package/dist/components/mention/index.js +19 -0
  64. package/dist/components/mention/index.js.map +1 -0
  65. package/dist/components/mention/index.less.js +8 -0
  66. package/dist/components/mention/index.less.js.map +1 -0
  67. package/dist/components/messages/index.js +429 -0
  68. package/dist/components/messages/index.js.map +1 -0
  69. package/dist/components/messages/index.less.js +8 -0
  70. package/dist/components/messages/index.less.js.map +1 -0
  71. package/dist/components/sender/index.js +244 -0
  72. package/dist/components/sender/index.js.map +1 -0
  73. package/dist/components/sender/index.less.js +8 -0
  74. package/dist/components/sender/index.less.js.map +1 -0
  75. package/dist/context/RequestStatusTracker.js +44 -0
  76. package/dist/context/RequestStatusTracker.js.map +1 -0
  77. package/dist/context/index.js +45 -0
  78. package/dist/context/index.js.map +1 -0
  79. package/dist/data.js +4 -0
  80. package/dist/data.js.map +1 -0
  81. package/dist/index.js +306 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js +27 -0
  84. package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  85. package/dist/plugin-ai/package.json.js +8 -0
  86. package/dist/plugin-ai/package.json.js.map +1 -0
  87. package/dist/plugin-ai/test/index.js +206 -0
  88. package/dist/plugin-ai/test/index.js.map +1 -0
  89. package/dist/preset/createTemplates.js +29 -0
  90. package/dist/preset/createTemplates.js.map +1 -0
  91. package/dist/preset/index.js +13 -0
  92. package/dist/preset/index.js.map +1 -0
  93. package/dist/preset/prompts.js +34 -0
  94. package/dist/preset/prompts.js.map +1 -0
  95. package/{src/preset/user.ts → dist/preset/user.js} +4 -3
  96. package/dist/preset/user.js.map +1 -0
  97. package/dist/requestAsStream.js +269 -0
  98. package/dist/requestAsStream.js.map +1 -0
  99. package/dist/rxai/node_modules/idb/build/index.js +277 -0
  100. package/dist/rxai/node_modules/idb/build/index.js.map +1 -0
  101. package/dist/rxai/src/agent/base.js +16 -0
  102. package/dist/rxai/src/agent/base.js.map +1 -0
  103. package/dist/rxai/src/agent/planning.js +1076 -0
  104. package/dist/rxai/src/agent/planning.js.map +1 -0
  105. package/dist/rxai/src/agent/rxai.js +254 -0
  106. package/dist/rxai/src/agent/rxai.js.map +1 -0
  107. package/dist/rxai/src/error/base.js +39 -0
  108. package/dist/rxai/src/error/base.js.map +1 -0
  109. package/dist/rxai/src/prompt/base.js +11 -0
  110. package/dist/rxai/src/prompt/base.js.map +1 -0
  111. package/dist/rxai/src/prompt/planning.js +23 -0
  112. package/dist/rxai/src/prompt/planning.js.map +1 -0
  113. package/dist/rxai/src/prompt/tool.js +14 -0
  114. package/dist/rxai/src/prompt/tool.js.map +1 -0
  115. package/dist/rxai/src/request/request.js +123 -0
  116. package/dist/rxai/src/request/request.js.map +1 -0
  117. package/dist/rxai/src/tool/getHistoryRecords.js +65 -0
  118. package/dist/rxai/src/tool/getHistoryRecords.js.map +1 -0
  119. package/dist/rxai/src/tool/util.js +424 -0
  120. package/dist/rxai/src/tool/util.js.map +1 -0
  121. package/dist/rxai/src/utils/events.js +43 -0
  122. package/dist/rxai/src/utils/events.js.map +1 -0
  123. package/dist/rxai/src/utils/idb.js +240 -0
  124. package/dist/rxai/src/utils/idb.js.map +1 -0
  125. package/dist/rxai/src/utils/retry.js +32 -0
  126. package/dist/rxai/src/utils/retry.js.map +1 -0
  127. package/dist/rxai/src/utils/uuid.js +7 -0
  128. package/dist/rxai/src/utils/uuid.js.map +1 -0
  129. package/dist/startView/components/header/header.js +12 -0
  130. package/dist/startView/components/header/header.js.map +1 -0
  131. package/dist/startView/components/header/header.less.js +8 -0
  132. package/dist/startView/components/header/header.less.js.map +1 -0
  133. package/dist/startView/index.js +62 -0
  134. package/dist/startView/index.js.map +1 -0
  135. package/dist/startView/index.less.js +8 -0
  136. package/dist/startView/index.less.js.map +1 -0
  137. package/dist/tools/analyze-and-expand-prd.js +116 -0
  138. package/dist/tools/analyze-and-expand-prd.js.map +1 -0
  139. package/dist/tools/analyze-requirement-and-components.js +208 -0
  140. package/dist/tools/analyze-requirement-and-components.js.map +1 -0
  141. package/dist/tools/answer.js +33 -0
  142. package/dist/tools/answer.js.map +1 -0
  143. package/dist/tools/build-process.js +550 -0
  144. package/dist/tools/build-process.js.map +1 -0
  145. package/dist/tools/coding-subagent-as-tool.js +101 -0
  146. package/dist/tools/coding-subagent-as-tool.js.map +1 -0
  147. package/dist/tools/generate-ui-content.js +528 -0
  148. package/dist/tools/generate-ui-content.js.map +1 -0
  149. package/dist/tools/index.js +31 -0
  150. package/dist/tools/index.js.map +1 -0
  151. package/dist/tools/open-dsl.js +49 -0
  152. package/dist/tools/open-dsl.js.map +1 -0
  153. package/dist/tools/refactor-ui-content.js +292 -0
  154. package/dist/tools/refactor-ui-content.js.map +1 -0
  155. package/dist/tools/utils.js +832 -0
  156. package/dist/tools/utils.js.map +1 -0
  157. package/dist/types/index.js +8 -0
  158. package/dist/types/index.js.map +1 -0
  159. package/dist/view/components/header/header.js +59 -0
  160. package/dist/view/components/header/header.js.map +1 -0
  161. package/dist/view/components/header/header.less.js +8 -0
  162. package/dist/view/components/header/header.less.js.map +1 -0
  163. package/dist/view/index.js +184 -0
  164. package/dist/view/index.js.map +1 -0
  165. package/dist/view/index.less.js +8 -0
  166. package/dist/view/index.less.js.map +1 -0
  167. package/package.json +28 -6
  168. package/src/agents/app.ts +0 -301
  169. package/src/agents/common.ts +0 -471
  170. package/src/agents/custom.ts +0 -14
  171. package/src/agents/index.ts +0 -37
  172. package/src/agents/knowledges/README.md +0 -614
  173. package/src/agents/knowledges/SUMMARY.md +0 -527
  174. package/src/agents/knowledges/index.ts +0 -8
  175. package/src/agents/knowledges/knowledge-base.ts +0 -565
  176. package/src/agents/knowledges/knowledge-node.ts +0 -266
  177. package/src/agents/knowledges/types.ts +0 -208
  178. package/src/agents/utils/config.ts +0 -427
  179. package/src/agents/workspace/coding-manager.ts +0 -31
  180. package/src/agents/workspace/components-manager.ts +0 -124
  181. package/src/agents/workspace/outline-focus.ts +0 -188
  182. package/src/agents/workspace/outline-info.ts +0 -520
  183. package/src/agents/workspace/page-tree-generator.ts +0 -83
  184. package/src/agents/workspace/workspace.ts +0 -319
  185. package/src/agents/workspace-by-knowledges/MIGRATION.md +0 -568
  186. package/src/agents/workspace-by-knowledges/README.md +0 -521
  187. package/src/agents/workspace-by-knowledges/index.ts +0 -11
  188. package/src/agents/workspace-by-knowledges/providers/component-docs-provider.ts +0 -92
  189. package/src/agents/workspace-by-knowledges/providers/focus-info-provider.ts +0 -131
  190. package/src/agents/workspace-by-knowledges/providers/index.ts +0 -8
  191. package/src/agents/workspace-by-knowledges/providers/project-info-provider.ts +0 -151
  192. package/src/agents/workspace-by-knowledges/test.ts +0 -240
  193. package/src/agents/workspace-by-knowledges/types.ts +0 -56
  194. package/src/agents/workspace-by-knowledges/utils/components-manager.ts +0 -145
  195. package/src/agents/workspace-by-knowledges/utils/index.ts +0 -8
  196. package/src/agents/workspace-by-knowledges/utils/outline-focus.ts +0 -178
  197. package/src/agents/workspace-by-knowledges/utils/outline-info.ts +0 -521
  198. package/src/agents/workspace-by-knowledges/workspace.ts +0 -166
  199. package/src/api/cloud-components.ts +0 -129
  200. package/src/api-record-replay/README.md +0 -187
  201. package/src/api-record-replay/index.ts +0 -11
  202. package/src/api-record-replay/manager.ts +0 -168
  203. package/src/api-record-replay/replayer.ts +0 -148
  204. package/src/components/attachments/index.less +0 -117
  205. package/src/components/attachments/index.tsx +0 -136
  206. package/src/components/icons/index.less +0 -8
  207. package/src/components/icons/index.tsx +0 -44
  208. package/src/components/index.less +0 -34
  209. package/src/components/mention/index.less +0 -23
  210. package/src/components/mention/index.tsx +0 -19
  211. package/src/components/messages/index.less +0 -1013
  212. package/src/components/messages/index.tsx +0 -519
  213. package/src/components/sender/index.less +0 -203
  214. package/src/components/sender/index.tsx +0 -298
  215. package/src/components/types.ts +0 -31
  216. package/src/constants/index.ts +0 -8
  217. package/src/context/RequestStatusTracker.ts +0 -50
  218. package/src/context/index.ts +0 -83
  219. package/src/data.ts +0 -5
  220. package/src/global.d.ts +0 -100
  221. package/src/index.tsx +0 -264
  222. package/src/mock.ts +0 -1267
  223. package/src/preset/agents.ts +0 -380
  224. package/src/preset/createTemplates.ts +0 -25
  225. package/src/preset/index.ts +0 -12
  226. package/src/preset/prompts.ts +0 -235
  227. package/src/preset/requestAsStream.ts +0 -246
  228. package/src/startView/components/header/header.less +0 -17
  229. package/src/startView/components/header/header.tsx +0 -15
  230. package/src/startView/components/index.ts +0 -1
  231. package/src/startView/index.less +0 -34
  232. package/src/startView/index.tsx +0 -61
  233. package/src/tools/analyze-and-expand-prd.ts +0 -272
  234. package/src/tools/analyze-requirement-and-components.ts +0 -589
  235. package/src/tools/answer.ts +0 -59
  236. package/src/tools/build-process.ts +0 -1174
  237. package/src/tools/coding-subagent-as-tool.ts +0 -119
  238. package/src/tools/generate-ui-content.ts +0 -1083
  239. package/src/tools/index.ts +0 -28
  240. package/src/tools/open-dsl.ts +0 -69
  241. package/src/tools/refactor-ui-content.ts +0 -801
  242. package/src/tools/type.d.ts +0 -12
  243. package/src/tools/utils.ts +0 -914
  244. package/src/types/index.ts +0 -4
  245. package/src/view/components/header/header.less +0 -51
  246. package/src/view/components/header/header.tsx +0 -60
  247. package/src/view/components/index.ts +0 -1
  248. package/src/view/index.less +0 -5
  249. package/src/view/index.tsx +0 -168
@@ -0,0 +1,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
@@ -0,0 +1,4 @@
1
+ var data = {};
2
+
3
+ export { data as default };
4
+ //# sourceMappingURL=data.js.map
@@ -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;;;;"}