@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.
Files changed (203) 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/dist/api-record-replay/recorder.js +107 -0
  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/dist/preset/user.js +7 -0
  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 +33 -6
  168. package/src/agents/app.ts +0 -173
  169. package/src/agents/common.ts +0 -111
  170. package/src/agents/index.ts +0 -7
  171. package/src/components/icons/index.less +0 -8
  172. package/src/components/icons/index.tsx +0 -24
  173. package/src/components/messages/index.less +0 -806
  174. package/src/components/messages/index.tsx +0 -236
  175. package/src/context/index.ts +0 -21
  176. package/src/data.ts +0 -5
  177. package/src/index.tsx +0 -84
  178. package/src/mock.ts +0 -1267
  179. package/src/startView/index.less +0 -216
  180. package/src/startView/index.tsx +0 -229
  181. package/src/tools/analyze-and-expand-prd.ts +0 -166
  182. package/src/tools/answer-user.ts +0 -35
  183. package/src/tools/focus-element.ts +0 -47
  184. package/src/tools/generate-page.ts +0 -750
  185. package/src/tools/get-component-info-by-ids.ts +0 -166
  186. package/src/tools/get-component-info.ts +0 -53
  187. package/src/tools/get-components-doc-and-prd.ts +0 -137
  188. package/src/tools/get-focus-mybricks-dsl.ts +0 -26
  189. package/src/tools/get-mybricks-dsl.ts +0 -73
  190. package/src/tools/index.ts +0 -25
  191. package/src/tools/modify-component.ts +0 -385
  192. package/src/tools/type.d.ts +0 -12
  193. package/src/tools/utils.ts +0 -62
  194. package/src/types.d.ts +0 -65
  195. package/src/view/components/header/header.less +0 -17
  196. package/src/view/components/header/header.tsx +0 -15
  197. package/src/view/components/index.ts +0 -3
  198. package/src/view/components/messages/messages.less +0 -228
  199. package/src/view/components/messages/messages.tsx +0 -172
  200. package/src/view/components/sender/sender.less +0 -44
  201. package/src/view/components/sender/sender.tsx +0 -62
  202. package/src/view/index.less +0 -5
  203. package/src/view/index.tsx +0 -18
package/dist/index.js ADDED
@@ -0,0 +1,306 @@
1
+ import { objectSpread2 as _objectSpread2, asyncToGenerator as _asyncToGenerator } from './_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import data from './data.js';
4
+ import './agents/workspace-by-knowledges/test.js';
5
+ import './plugin-ai/test/index.js';
6
+ import pkg from './plugin-ai/package.json.js';
7
+ import { Agents } from './agents/index.js';
8
+ import { View } from './view/index.js';
9
+ import { context } from './context/index.js';
10
+ import { StartView } from './startView/index.js';
11
+ import { DeviceType } from './types/index.js';
12
+ import { createGetAllComDefPrompts } from './api/cloud-components.js';
13
+ import { transformLegacyPromptsToAgents, getAgentConfigs, backStoryPrompts, CustomAgent } from './agents/utils/config.js';
14
+ export { AbstractAgent, Agent } from './agents/utils/config.js';
15
+ import preset from './preset/index.js';
16
+ import { createRequestAsStream } from './requestAsStream.js';
17
+ export { createMyBricksAIRequest } from './requestAsStream.js';
18
+ import { apiRecorder } from './api-record-replay/recorder.js';
19
+ export { replay, replayFromJSON } from './api-record-replay/replayer.js';
20
+ import './rxai/node_modules/idb/build/index.js';
21
+ import 'node-forge';
22
+ import { fileFormat } from './rxai/src/prompt/base.js';
23
+ export { MyBricksParamsTools as MyBricksTools } from './tools/index.js';
24
+
25
+ console.log("%c ".concat(pkg.name, " %c@").concat(pkg.version), "color:#FFF;background:#fa6400", "", "");
26
+ var transformParams = function transformParams() {
27
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28
+ var result = _objectSpread2({}, preset);
29
+ Object.entries(params).forEach(_ref => {
30
+ var [key, value] = _ref;
31
+ if (key === "agents") {
32
+ result[key] = preset.agents.concat(value);
33
+ } else {
34
+ result[key] = value;
35
+ }
36
+ });
37
+ return Object.assign(_objectSpread2({}, preset), params);
38
+ };
39
+ function pluginAI(params) {
40
+ var {
41
+ name = '智能助手',
42
+ user,
43
+ prompts,
44
+ mock,
45
+ key,
46
+ agents: rawAgents,
47
+ guidePrompt,
48
+ createTemplates,
49
+ isMutiCanvas,
50
+ deviceType,
51
+ config,
52
+ onRequest
53
+ } = transformParams(params);
54
+ var requestAsStream = onRequest !== null && onRequest !== void 0 ? onRequest : createRequestAsStream();
55
+ var copilot = {
56
+ // name: "MyBricks.ai",
57
+ name: "智能助手",
58
+ avatar: "https://my.mybricks.world/image/icon.png"
59
+ };
60
+
61
+ // 兼容历史配置:如果没有 agents 但有 prompts,则将 prompts 转换为 agents
62
+ var agents = rawAgents || (prompts ? transformLegacyPromptsToAgents(prompts) : undefined);
63
+ context.name = name;
64
+ context.agents = agents;
65
+ context.createTemplates = createTemplates !== null && createTemplates !== void 0 ? createTemplates : {};
66
+ context.isMutiCanvas = isMutiCanvas !== null && isMutiCanvas !== void 0 ? isMutiCanvas : true;
67
+ context.deviceType = deviceType !== null && deviceType !== void 0 ? deviceType : DeviceType.Mobile;
68
+ context.userConfig = config !== null && config !== void 0 ? config : {};
69
+ context.pluginParams = {
70
+ name,
71
+ user,
72
+ prompts,
73
+ requestAsStream,
74
+ mock,
75
+ key,
76
+ agents: rawAgents,
77
+ guidePrompt,
78
+ createTemplates,
79
+ isMutiCanvas,
80
+ deviceType,
81
+ config
82
+ };
83
+ return {
84
+ name: '@mybricks/plugins/ai',
85
+ title: name,
86
+ author: 'MyBricks',
87
+ ['author.zh']: 'MyBricks',
88
+ version: '1.0.0',
89
+ description: 'ai for MyBricks',
90
+ data,
91
+ contributes: {
92
+ aiService: {
93
+ init(api) {
94
+ var _api$global, _getAgentConfigs$syst, _getAgentConfigs;
95
+ context.api = api;
96
+
97
+ // 在 context.designer 上挂载新的 API(带记录功能)
98
+ context.designer = {
99
+ createPage: function () {
100
+ var _createPage = _asyncToGenerator(function* (id, title, config) {
101
+ var params = [id, title, config];
102
+ apiRecorder.record('createPage', params);
103
+ return api.page.api.createPage(id, title, config);
104
+ });
105
+ function createPage(_x, _x2, _x3) {
106
+ return _createPage.apply(this, arguments);
107
+ }
108
+ return createPage;
109
+ }(),
110
+ createCanvas: function () {
111
+ var _createCanvas = _asyncToGenerator(function* () {
112
+ var params = [];
113
+ apiRecorder.record('createCanvas', params);
114
+ return api.page.api.createCanvas();
115
+ });
116
+ function createCanvas() {
117
+ return _createCanvas.apply(this, arguments);
118
+ }
119
+ return createCanvas;
120
+ }(),
121
+ updatePage: function () {
122
+ var _updatePage = _asyncToGenerator(function* () {
123
+ for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
124
+ params[_key] = arguments[_key];
125
+ }
126
+ apiRecorder.record('updatePage', params);
127
+ return api.page.api.updatePage(...params);
128
+ });
129
+ function updatePage() {
130
+ return _updatePage.apply(this, arguments);
131
+ }
132
+ return updatePage;
133
+ }(),
134
+ updateUiCom: function () {
135
+ var _updateUiCom = _asyncToGenerator(function* () {
136
+ for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
137
+ params[_key2] = arguments[_key2];
138
+ }
139
+ apiRecorder.record('updateUiCom', params);
140
+ return api.uiCom.api.updateCom(...params);
141
+ });
142
+ function updateUiCom() {
143
+ return _updateUiCom.apply(this, arguments);
144
+ }
145
+ return updateUiCom;
146
+ }(),
147
+ updateLogicCom: function () {
148
+ var _updateLogicCom = _asyncToGenerator(function* () {
149
+ for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
150
+ params[_key3] = arguments[_key3];
151
+ }
152
+ apiRecorder.record('updateLogicCom', params);
153
+ return api.logicCom.api.updateCom(...params);
154
+ });
155
+ function updateLogicCom() {
156
+ return _updateLogicCom.apply(this, arguments);
157
+ }
158
+ return updateLogicCom;
159
+ }(),
160
+ createDiagram: function () {
161
+ var _createDiagram = _asyncToGenerator(function* () {
162
+ for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
163
+ params[_key4] = arguments[_key4];
164
+ }
165
+ apiRecorder.record('createDiagram', params);
166
+ return api.diagram.api.createDiagram(...params);
167
+ });
168
+ function createDiagram() {
169
+ return _createDiagram.apply(this, arguments);
170
+ }
171
+ return createDiagram;
172
+ }(),
173
+ updateDiagram: function () {
174
+ var _updateDiagram = _asyncToGenerator(function* () {
175
+ for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
176
+ params[_key5] = arguments[_key5];
177
+ }
178
+ apiRecorder.record('updateDiagram', params);
179
+ return api.diagram.api.updateDiagram(...params);
180
+ });
181
+ function updateDiagram() {
182
+ return _updateDiagram.apply(this, arguments);
183
+ }
184
+ return updateDiagram;
185
+ }(),
186
+ getDiagramInfo: function getDiagramInfo() {
187
+ return api.diagram.api.getDiagramInfo(...arguments);
188
+ },
189
+ getDiagramInfoByVarId: function getDiagramInfoByVarId() {
190
+ return api.diagram.api.getDiagramInfoByVarId(...arguments);
191
+ },
192
+ getDiagramInfoByListenerInfo: function getDiagramInfoByListenerInfo() {
193
+ return api.diagram.api.getDiagramInfoByListenerInfo(...arguments);
194
+ },
195
+ getAllComDefPrompts: createGetAllComDefPrompts(api === null || api === void 0 || (_api$global = api.global) === null || _api$global === void 0 || (_api$global = _api$global.api) === null || _api$global === void 0 ? void 0 : _api$global.getAllComDefPrompts)
196
+ };
197
+ var useMock = !!(mock !== null && mock !== void 0 && mock.length);
198
+ var mockRequestAsStream = () => {
199
+ var count = 0;
200
+ var length = mock.length;
201
+ return params => {
202
+ params.emits.write("");
203
+ params.emits.write(mock[count++]);
204
+ params.emits.complete("");
205
+ if (count === length) {
206
+ count = 0;
207
+ }
208
+ };
209
+ };
210
+ context.createRxai({
211
+ system: {
212
+ // title: 'MyBricks.ai',
213
+ title: '智能助手',
214
+ prompt: (_getAgentConfigs$syst = (_getAgentConfigs = getAgentConfigs(agents, 'page')) === null || _getAgentConfigs === void 0 ? void 0 : _getAgentConfigs.system) !== null && _getAgentConfigs$syst !== void 0 ? _getAgentConfigs$syst : backStoryPrompts()
215
+ },
216
+ request: {
217
+ maxRetries: 3,
218
+ requestAsStream: useMock ? mockRequestAsStream() : requestAsStream
219
+ },
220
+ key
221
+ });
222
+ console.log("[init - API]", api);
223
+ window._registerAgent_ = agentConfig => {
224
+ console.log('registerAgent', agentConfig);
225
+ context.agents.push(new CustomAgent(agentConfig));
226
+ };
227
+ return {
228
+ focus(params) {
229
+ var currentFocus = !params ? undefined : params;
230
+ context.currentFocus = currentFocus;
231
+ context.events.emit("focus", currentFocus);
232
+ console.log('focus', currentFocus);
233
+ },
234
+ request(requestParams) {
235
+ var _requestParams$attach;
236
+ if ((_requestParams$attach = requestParams.attachments) !== null && _requestParams$attach !== void 0 && _requestParams$attach.length) {
237
+ // TODO: attachments是Proxy代理,引擎不应该抛出此类代理
238
+ requestParams.attachments = requestParams.attachments.map(attachment => {
239
+ return _objectSpread2({}, attachment);
240
+ });
241
+ } else {
242
+ requestParams.attachments = [];
243
+ }
244
+ var focus = context.currentFocus;
245
+ var extension = {};
246
+ if (focus) {
247
+ var type = focus.type;
248
+ var id = type === "page" ? focus.pageId : focus.comId;
249
+ extension.mentions = [{
250
+ id,
251
+ type,
252
+ name: focus.title
253
+ }];
254
+ // TODO: 兼容引擎的onProgress问题
255
+ if (focus.onProgress) {
256
+ requestParams.onProgress = focus.onProgress;
257
+ } else if (requestParams.onProgress) {
258
+ focus.onProgress = requestParams.onProgress;
259
+ }
260
+ }
261
+
262
+ // 使用统一的 requestAgent 方法,自动处理自定义 agent 和默认 agent
263
+ var focusId = focus ? focus.type === "page" ? focus.pageId : focus.comId : "";
264
+ context.requestStatusTracker.track(focusId, Agents.requestAgent(_objectSpread2(_objectSpread2({}, requestParams), {}, {
265
+ extension,
266
+ agents,
267
+ guidePrompt
268
+ })));
269
+ },
270
+ registerAgent: window._registerAgent_,
271
+ fileFormat
272
+ };
273
+ }
274
+ },
275
+ aiView: {
276
+ render(api) {
277
+ context.aiViewAPI = api;
278
+ return /*#__PURE__*/React.createElement(View, {
279
+ user: user,
280
+ copilot: copilot,
281
+ api: api
282
+ });
283
+ },
284
+ display() {
285
+ context.events.emit("aiViewDisplay", true);
286
+ },
287
+ hide() {}
288
+ },
289
+ aiStartView: {
290
+ render(api) {
291
+ return /*#__PURE__*/React.createElement(StartView, {
292
+ user: user,
293
+ copilot: copilot,
294
+ api: api
295
+ });
296
+ }
297
+ }
298
+ }
299
+ };
300
+ }
301
+ function agentPlugin(props) {
302
+ return pluginAI(props);
303
+ }
304
+
305
+ export { agentPlugin, apiRecorder, pluginAI as default, fileFormat };
306
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport data from './data';\n\nimport './agents/workspace-by-knowledges/test';\nimport './../test'\n\nimport pkg from '../package.json';\n\nconsole.log(`%c ${pkg.name} %c@${pkg.version}`, `color:#FFF;background:#fa6400`, ``, ``);\n\nimport { Agents } from './agents'\nimport { View } from \"./view\";\nimport { context } from './context';\nimport { StartView } from \"./startView\";\nimport { DeviceType } from './types';\nimport { createGetAllComDefPrompts } from \"./api/cloud-components\";\nimport { AgentConfigParams, getAgentConfigs, backStoryPrompts, transformLegacyPromptsToAgents, AbstractAgent, CustomAgent } from './agents/utils/config';\n\nimport preset from \"./preset\";\nimport { createRequestAsStream, createMyBricksAIRequest, type RequestAsStreamParams, type RequestAsStreamFn } from \"./requestAsStream\";\nimport { apiRecorder } from './api-record-replay';\nimport { replay, replayFromJSON, ReplayAPI, ReplayOptions } from './api-record-replay';\nimport { RecordedAction } from './api-record-replay';\nimport { fileFormat } from '@mybricks/rxai';\n\n// 导出收集和回放相关的接口\nexport { apiRecorder, replay, replayFromJSON, fileFormat };\nexport type { RecordedAction, ReplayAPI, ReplayOptions };\n\nconst transformParams = (params: any = {}) => {\n const result: any = {...preset};\n Object.entries(params).forEach(([key, value]: any) => {\n if (key === \"agents\") {\n result[key] = preset.agents.concat(value);\n } else {\n result[key] = value;\n }\n })\n return Object.assign({...preset}, params);\n}\n\nexport default function pluginAI(params?: any): any {\n const {\n name = '智能助手',\n user,\n prompts,\n mock,\n key,\n agents: rawAgents,\n guidePrompt,\n createTemplates,\n isMutiCanvas,\n deviceType,\n config,\n onRequest,\n } = transformParams(params);\n\n const requestAsStream = onRequest ?? createRequestAsStream();\n\n const copilot = {\n // name: \"MyBricks.ai\",\n name: \"智能助手\",\n avatar: \"https://my.mybricks.world/image/icon.png\"\n }\n\n // 兼容历史配置:如果没有 agents 但有 prompts,则将 prompts 转换为 agents\n const agents = rawAgents || (prompts ? transformLegacyPromptsToAgents(prompts) : undefined);\n\n context.name = name;\n context.agents = agents;\n context.createTemplates = createTemplates ?? {};\n context.isMutiCanvas = isMutiCanvas ?? true;\n context.deviceType = deviceType ?? DeviceType.Mobile;\n context.userConfig = config ?? {}\n context.pluginParams = {\n name,\n user,\n prompts,\n requestAsStream,\n mock,\n key,\n agents: rawAgents,\n guidePrompt,\n createTemplates,\n isMutiCanvas,\n deviceType,\n config,\n }\n\n return {\n name: '@mybricks/plugins/ai',\n title: name,\n author: 'MyBricks',\n ['author.zh']: 'MyBricks',\n version: '1.0.0',\n description: 'ai for MyBricks',\n data,\n contributes: {\n aiService: {\n init(api: AiServiceAPI) {\n context.api = api;\n\n // 在 context.designer 上挂载新的 API(带记录功能)\n context.designer = {\n createPage: async (id: string, title: string, config?: any) => {\n const params = [id, title, config];\n apiRecorder.record('createPage', params);\n return api.page.api.createPage(id, title, config);\n },\n createCanvas: async () => {\n const params: any[] = [];\n apiRecorder.record('createCanvas', params);\n return api.page.api.createCanvas();\n },\n updatePage: async (...params: any[]) => {\n apiRecorder.record('updatePage', params);\n return api.page.api.updatePage(...params);\n },\n updateUiCom: async (...params: any[]) => {\n apiRecorder.record('updateUiCom', params);\n return api.uiCom.api.updateCom(...params);\n },\n updateLogicCom: async (...params: any[]) => {\n apiRecorder.record('updateLogicCom', params);\n return api.logicCom.api.updateCom(...params);\n },\n createDiagram: async (...params: any[]) => {\n apiRecorder.record('createDiagram', params);\n return api.diagram.api.createDiagram(...params);\n },\n updateDiagram: async (...params: any[]) => {\n apiRecorder.record('updateDiagram', params);\n return api.diagram.api.updateDiagram(...params);\n },\n getDiagramInfo: (...params: any[]) => {\n return api.diagram.api.getDiagramInfo(...params);\n },\n getDiagramInfoByVarId: (...params: any[]) => {\n return api.diagram.api.getDiagramInfoByVarId(...params);\n },\n getDiagramInfoByListenerInfo: (...params: any[]) => {\n return api.diagram.api.getDiagramInfoByListenerInfo(...params);\n },\n getAllComDefPrompts: createGetAllComDefPrompts(api?.global?.api?.getAllComDefPrompts)\n };\n\n const useMock = !!mock?.length;\n \n const mockRequestAsStream = () => {\n let count = 0;\n let length = mock.length;\n return (params: {\n messages: any;\n emits: any;\n aiRole?: any;\n }) => {\n params.emits.write(\"\");\n params.emits.write(mock[count++]);\n params.emits.complete(\"\");\n if (count === length) {\n count = 0;\n }\n }\n }\n\n context.createRxai({\n system: {\n // title: 'MyBricks.ai',\n title: '智能助手',\n prompt: getAgentConfigs(agents, 'page')?.system ?? backStoryPrompts()\n },\n request: {\n maxRetries: 3,\n requestAsStream: useMock ? mockRequestAsStream() : requestAsStream\n },\n key\n })\n\n console.log(\"[init - API]\", api)\n\n window._registerAgent_ = (agentConfig: any) => {\n console.log('registerAgent', agentConfig)\n context.agents.push(new CustomAgent(agentConfig));\n }\n\n return {\n focus(params: AiServiceFocusParams) {\n const currentFocus = !params ? undefined : params;\n context.currentFocus = currentFocus;\n context.events.emit(\"focus\", currentFocus);\n console.log('focus', currentFocus)\n },\n request(requestParams: AiServiceRequestParams) {\n if (requestParams.attachments?.length) {\n // TODO: attachments是Proxy代理,引擎不应该抛出此类代理\n requestParams.attachments = requestParams.attachments.map((attachment) => {\n return {\n ...attachment\n }\n })\n } else {\n requestParams.attachments = [];\n }\n\n const focus = context.currentFocus;\n const extension: any = {};\n\n if (focus) {\n const type = focus.type;\n const id = type === \"page\" ? focus.pageId : focus.comId;\n extension.mentions = [\n {\n id,\n type,\n name: focus.title,\n }\n ]\n // TODO: 兼容引擎的onProgress问题\n if (focus.onProgress) {\n requestParams.onProgress = focus.onProgress;\n } else if (requestParams.onProgress) {\n focus.onProgress = requestParams.onProgress;\n }\n }\n\n // 使用统一的 requestAgent 方法,自动处理自定义 agent 和默认 agent\n const focusId = focus ? (focus.type === \"page\" ? focus.pageId : focus.comId) : \"\";\n context.requestStatusTracker.track(focusId, Agents.requestAgent({ ...requestParams, extension, agents, guidePrompt }))\n },\n registerAgent: window._registerAgent_,\n fileFormat\n }\n }\n },\n aiView: {\n render(api: AiViewApi) {\n context.aiViewAPI = api;\n return <View user={user} copilot={copilot} api={api}/>\n },\n display() {\n context.events.emit(\"aiViewDisplay\", true);\n },\n hide() {}\n },\n aiStartView: {\n render(api: AiStartViewApi) {\n return <StartView user={user} copilot={copilot} api={api}/>\n }\n }\n }\n }\n}\n\nexport { MyBricksParamsTools as MyBricksTools, Agent } from './agents/utils/config';\nexport { createMyBricksAIRequest };\nexport type { RequestAsStreamParams, RequestAsStreamFn }; \ninterface AgentPluginProps {\n agents: AgentConfigParams[];\n [key: string]: any;\n}\n\nexport function agentPlugin(props: AgentPluginProps) {\n return pluginAI(props)\n}\n\nexport { AbstractAgent }"],"names":["console","log","concat","pkg","name","version","transformParams","params","arguments","length","undefined","result","_objectSpread","preset","Object","entries","forEach","_ref","key","value","agents","assign","pluginAI","user","prompts","mock","rawAgents","guidePrompt","createTemplates","isMutiCanvas","deviceType","config","onRequest","requestAsStream","createRequestAsStream","copilot","avatar","transformLegacyPromptsToAgents","context","DeviceType","Mobile","userConfig","pluginParams","title","author","description","data","contributes","aiService","init","api","_api$global","_getAgentConfigs$syst","_getAgentConfigs","designer","createPage","_createPage","_asyncToGenerator","id","apiRecorder","record","page","_x","_x2","_x3","apply","createCanvas","_createCanvas","updatePage","_updatePage","_len","Array","_key","updateUiCom","_updateUiCom","_len2","_key2","uiCom","updateCom","updateLogicCom","_updateLogicCom","_len3","_key3","logicCom","createDiagram","_createDiagram","_len4","_key4","diagram","updateDiagram","_updateDiagram","_len5","_key5","getDiagramInfo","getDiagramInfoByVarId","getDiagramInfoByListenerInfo","getAllComDefPrompts","createGetAllComDefPrompts","global","useMock","mockRequestAsStream","count","emits","write","complete","createRxai","system","prompt","getAgentConfigs","backStoryPrompts","request","maxRetries","window","_registerAgent_","agentConfig","push","CustomAgent","focus","currentFocus","events","emit","requestParams","_requestParams$attach","attachments","map","attachment","extension","type","pageId","comId","mentions","onProgress","focusId","requestStatusTracker","track","Agents","requestAgent","registerAgent","fileFormat","aiView","render","aiViewAPI","React","createElement","View","display","hide","aiStartView","StartView","agentPlugin","props"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ function styleInject(css, ref) {
2
+ if (ref === void 0) ref = {};
3
+ var insertAt = ref.insertAt;
4
+ if (!css || typeof document === 'undefined') {
5
+ return;
6
+ }
7
+ var head = document.head || document.getElementsByTagName('head')[0];
8
+ var style = document.createElement('style');
9
+ style.type = 'text/css';
10
+ if (insertAt === 'top') {
11
+ if (head.firstChild) {
12
+ head.insertBefore(style, head.firstChild);
13
+ } else {
14
+ head.appendChild(style);
15
+ }
16
+ } else {
17
+ head.appendChild(style);
18
+ }
19
+ if (style.styleSheet) {
20
+ style.styleSheet.cssText = css;
21
+ } else {
22
+ style.appendChild(document.createTextNode(css));
23
+ }
24
+ }
25
+
26
+ export { styleInject as default };
27
+ //# sourceMappingURL=style-inject.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-inject.es.js","sources":["../../../../../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode"],"mappings":"AAAA,SAASA,WAAWA,CAACC,GAAG,EAAEC,GAAG,EAAE;EAC7B,IAAKA,GAAG,KAAK,MAAM,EAAGA,GAAG,GAAG,EAAE;AAC9B,EAAA,IAAIC,QAAQ,GAAGD,GAAG,CAACC,QAAQ;AAE3B,EAAA,IAAI,CAACF,GAAG,IAAI,OAAOG,QAAQ,KAAK,WAAW,EAAE;AAAE,IAAA;AAAQ,EAAA;AAEvD,EAAA,IAAIC,IAAI,GAAGD,QAAQ,CAACC,IAAI,IAAID,QAAQ,CAACE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,EAAA,IAAIC,KAAK,GAAGH,QAAQ,CAACI,aAAa,CAAC,OAAO,CAAC;EAC3CD,KAAK,CAACE,IAAI,GAAG,UAAU;EAEvB,IAAIN,QAAQ,KAAK,KAAK,EAAE;IACtB,IAAIE,IAAI,CAACK,UAAU,EAAE;MACnBL,IAAI,CAACM,YAAY,CAACJ,KAAK,EAAEF,IAAI,CAACK,UAAU,CAAC;AAC3C,IAAA,CAAC,MAAM;AACLL,MAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB,IAAA;AACF,EAAA,CAAC,MAAM;AACLF,IAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB,EAAA;EAEA,IAAIA,KAAK,CAACM,UAAU,EAAE;AACpBN,IAAAA,KAAK,CAACM,UAAU,CAACC,OAAO,GAAGb,GAAG;AAChC,EAAA,CAAC,MAAM;IACLM,KAAK,CAACK,WAAW,CAACR,QAAQ,CAACW,cAAc,CAACd,GAAG,CAAC,CAAC;AACjD,EAAA;AACF;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,8 @@
1
+ var name = "@mybricks/plugin-ai";
2
+ var version = "0.0.3";
3
+ var pkg = {
4
+ name: name,
5
+ version: version};
6
+
7
+ export { pkg as default, name, version };
8
+ //# sourceMappingURL=package.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,206 @@
1
+ import { asyncToGenerator as _asyncToGenerator } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { context } from '../../context/index.js';
3
+ import { createActionsParser } from '../../tools/utils.js';
4
+ import '../../api-record-replay/recorder.js';
5
+ import { APIRecordReplayManager } from '../../api-record-replay/manager.js';
6
+
7
+ window.plugin_ai_context = context;
8
+
9
+ // ========== 默认配置变量 ==========
10
+ // 可以在这里修改默认值,方便测试时调整
11
+ var DEFAULT_TYPE = 'page'; // 'com' 或 'page'
12
+ var DEFAULT_COM_ID = 'u_bP96M'; // 默认组件ID
13
+ var DEFAULT_PAGE_ID = 'u_vLeVH'; // 默认页面ID
14
+ var DEFAULT_TEST_DELAY = 10; // testActions 默认延迟(毫秒)
15
+ var DEFAULT_GENERATE_DELAY = 200; // generateActionsFile 默认延迟(毫秒)
16
+ // ==================================
17
+
18
+ var mockActions = "\n[\"u_Z5zWg\",\":root\",\"delete\"]\n[\"u_5kRx4\",\":root\",\"delete\"]\n[\"u_NOklc\",\":root\",\"delete\"]\n[\"u_KSX7z\",\":root\",\"delete\"]\n[\"u_4mxma\",\":root\",\"delete\"]\n[\"u_T9tvz\",\"content\",\"addChild\",{\"title\":\"\u4E0B\u8F7D\u56FE\u7247\",\"comId\":\"u_img1\",\"ns\":\"pc.single-image\",\"layout\":{\"width\":20,\"height\":20,\"marginBottom\":2},\"configs\":[{\"path\":\"\u5E38\u89C4/\u56FE\u7247\u5730\u5740\",\"value\":\"https://placehold.co/20x20/666666/ffffff?text=DL\"},{\"path\":\"\u5E38\u89C4/\u586B\u5145\u6A21\u5F0F\",\"value\":\"cover\"}]}]\n[\"u_RA1Xs\",\"content\",\"addChild\",{\"title\":\"\u6D88\u606F\u56FE\u7247\",\"comId\":\"u_img2\",\"ns\":\"pc.single-image\",\"layout\":{\"width\":20,\"height\":20,\"marginBottom\":2},\"configs\":[{\"path\":\"\u5E38\u89C4/\u56FE\u7247\u5730\u5740\",\"value\":\"https://placehold.co/20x20/666666/ffffff?text=MSG\"},{\"path\":\"\u5E38\u89C4/\u586B\u5145\u6A21\u5F0F\",\"value\":\"cover\"}]}]\n[\"u_AxHmL\",\"content\",\"addChild\",{\"title\":\"\u5B66\u5802\u56FE\u7247\",\"comId\":\"u_img3\",\"ns\":\"pc.single-image\",\"layout\":{\"width\":20,\"height\":20,\"marginBottom\":2},\"configs\":[{\"path\":\"\u5E38\u89C4/\u56FE\u7247\u5730\u5740\",\"value\":\"https://placehold.co/20x20/666666/ffffff?text=EDU\"},{\"path\":\"\u5E38\u89C4/\u586B\u5145\u6A21\u5F0F\",\"value\":\"cover\"}]}]\n[\"u_XE3CM\",\"content\",\"addChild\",{\"title\":\"\u89C4\u5219\u56FE\u7247\",\"comId\":\"u_img4\",\"ns\":\"pc.single-image\",\"layout\":{\"width\":20,\"height\":20,\"marginBottom\":2},\"configs\":[{\"path\":\"\u5E38\u89C4/\u56FE\u7247\u5730\u5740\",\"value\":\"https://placehold.co/20x20/666666/ffffff?text=RULE\"},{\"path\":\"\u5E38\u89C4/\u586B\u5145\u6A21\u5F0F\",\"value\":\"cover\"}]}]\n[\"u_t5DDQ\",\"content\",\"addChild\",{\"title\":\"\u5E2E\u52A9\u56FE\u7247\",\"comId\":\"u_img5\",\"ns\":\"pc.single-image\",\"layout\":{\"width\":20,\"height\":20,\"marginBottom\":2},\"configs\":[{\"path\":\"\u5E38\u89C4/\u56FE\u7247\u5730\u5740\",\"value\":\"https://placehold.co/20x20/666666/ffffff?text=HELP\"},{\"path\":\"\u5E38\u89C4/\u586B\u5145\u6A21\u5F0F\",\"value\":\"cover\"}]}]\n[\"u_img1\",\":root\",\"move\",{\"comId\":\"u_T9tvz\",\"slotId\":\"content\",\"index\":0}]\n[\"u_img2\",\":root\",\"move\",{\"comId\":\"u_RA1Xs\",\"slotId\":\"content\",\"index\":0}]\n[\"u_img3\",\":root\",\"move\",{\"comId\":\"u_AxHmL\",\"slotId\":\"content\",\"index\":0}]\n[\"u_img4\",\":root\",\"move\",{\"comId\":\"u_XE3CM\",\"slotId\":\"content\",\"index\":0}]\n[\"u_img5\",\":root\",\"move\",{\"comId\":\"u_t5DDQ\",\"slotId\":\"content\",\"index\":0}]\n";
19
+ window.getActions = () => {
20
+ var parser = createActionsParser();
21
+ var actions = parser(mockActions);
22
+ console.log(actions);
23
+ return actions;
24
+ };
25
+
26
+ /**
27
+ * 测试执行actions,支持组件和页面两种模式
28
+ * @param type - 'com' 表示组件模式,'page' 表示页面模式
29
+ * @param id - 组件ID或页面ID
30
+ * @param delay - 每个action之间的延迟时间(毫秒),默认200ms
31
+ */
32
+ window.testActions = /*#__PURE__*/_asyncToGenerator(function* () {
33
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_TYPE;
34
+ var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : type === 'com' ? DEFAULT_COM_ID : DEFAULT_PAGE_ID;
35
+ var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_TEST_DELAY;
36
+ var api = window.plugin_ai_context.api;
37
+ var actionsToExecute = window.getActions();
38
+ if (type === 'com') {
39
+ var _api$uiCom;
40
+ // 组件模式
41
+ var updateApi = api === null || api === void 0 || (_api$uiCom = api.uiCom) === null || _api$uiCom === void 0 || (_api$uiCom = _api$uiCom.api) === null || _api$uiCom === void 0 ? void 0 : _api$uiCom.updateCom;
42
+ if (!updateApi) {
43
+ console.error('Component API not available');
44
+ return;
45
+ }
46
+
47
+ // 开始执行
48
+ yield updateApi(id, [], 'start');
49
+
50
+ // 遍历执行每个action
51
+ for (var i = 0; i < actionsToExecute.length; i++) {
52
+ // 添加延迟
53
+ yield new Promise(resolve => setTimeout(resolve, delay));
54
+
55
+ // 执行当前action
56
+ yield updateApi(id, [actionsToExecute[i]], 'ing');
57
+ }
58
+
59
+ // 最后调用空数组,参数为complete
60
+ yield new Promise(resolve => setTimeout(resolve, delay));
61
+ yield updateApi(id, [], 'complete');
62
+ } else {
63
+ var _api$page;
64
+ // 页面模式
65
+ var _updateApi = api === null || api === void 0 || (_api$page = api.page) === null || _api$page === void 0 || (_api$page = _api$page.api) === null || _api$page === void 0 ? void 0 : _api$page.updatePage;
66
+ if (!_updateApi) {
67
+ console.error('Page API not available');
68
+ return;
69
+ }
70
+
71
+ // 开始执行
72
+ yield _updateApi(id, [], 'start');
73
+
74
+ // 遍历执行每个action
75
+ for (var _i = 0; _i < actionsToExecute.length; _i++) {
76
+ // 添加延迟
77
+ yield new Promise(resolve => setTimeout(resolve, delay));
78
+
79
+ // 执行当前action
80
+ yield _updateApi(id, [actionsToExecute[_i]], 'ing');
81
+ }
82
+
83
+ // 最后调用空数组,参数为complete
84
+ yield new Promise(resolve => setTimeout(resolve, delay));
85
+ yield _updateApi(id, [], 'complete');
86
+ }
87
+ });
88
+
89
+ // Helper function to format a value as JavaScript code with proper indentation
90
+ function formatValue(value) {
91
+ var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
92
+ var indentStr = ' '.repeat(indent);
93
+ var nextIndentStr = ' '.repeat(indent + 1);
94
+ if (value === null) {
95
+ return 'null';
96
+ }
97
+ if (value === undefined) {
98
+ return 'undefined';
99
+ }
100
+ if (typeof value === 'string') {
101
+ return JSON.stringify(value);
102
+ }
103
+ if (typeof value === 'number' || typeof value === 'boolean') {
104
+ return String(value);
105
+ }
106
+ if (Array.isArray(value)) {
107
+ if (value.length === 0) {
108
+ return '[]';
109
+ }
110
+ var items = value.map(item => {
111
+ var itemStr = formatValue(item, indent + 1);
112
+ // Handle multi-line items
113
+ if (itemStr.includes('\n')) {
114
+ return "".concat(nextIndentStr).concat(itemStr);
115
+ }
116
+ return "".concat(nextIndentStr).concat(itemStr);
117
+ }).join(',\n');
118
+ return "[\n".concat(items, "\n").concat(indentStr, "]");
119
+ }
120
+ if (typeof value === 'object') {
121
+ var keys = Object.keys(value);
122
+ if (keys.length === 0) {
123
+ return '{}';
124
+ }
125
+ var _items = keys.map(key => {
126
+ var val = formatValue(value[key], indent + 1);
127
+ // If the value is multi-line, format it properly
128
+ if (val.includes('\n')) {
129
+ return "".concat(nextIndentStr, "\"").concat(key, "\": ").concat(val);
130
+ }
131
+ return "".concat(nextIndentStr, "\"").concat(key, "\": ").concat(val);
132
+ }).join(',\n');
133
+ return "{\n".concat(_items, "\n").concat(indentStr, "}");
134
+ }
135
+ return String(value);
136
+ }
137
+
138
+ // Helper function to format a single action object as JavaScript code
139
+ function formatAction(action) {
140
+ var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
141
+ var indentStr = ' '.repeat(indent);
142
+ var nextIndent = indent + 1;
143
+ var nextIndentStr = ' '.repeat(nextIndent);
144
+ var parts = [];
145
+ parts.push("".concat(indentStr, "{"));
146
+ if (action.comId !== undefined) {
147
+ parts.push("".concat(nextIndentStr, "\"comId\": ").concat(JSON.stringify(action.comId), ","));
148
+ }
149
+ if (action.type !== undefined) {
150
+ parts.push("".concat(nextIndentStr, "\"type\": ").concat(JSON.stringify(action.type), ","));
151
+ }
152
+ if (action.target !== undefined) {
153
+ parts.push("".concat(nextIndentStr, "\"target\": ").concat(JSON.stringify(action.target), ","));
154
+ }
155
+ if (action.params !== undefined) {
156
+ var paramsStr = formatValue(action.params, nextIndent);
157
+ // Remove trailing comma from params if it's an object/array
158
+ var cleanParams = paramsStr.replace(/,\s*$/, '');
159
+ parts.push("".concat(nextIndentStr, "\"params\": ").concat(cleanParams));
160
+ }
161
+ parts.push("".concat(indentStr, "}"));
162
+ return parts.join('\n');
163
+ }
164
+
165
+ // Function to format the entire actions array as mockActions variable declaration
166
+ function formatActionsArray(actions) {
167
+ if (actions.length === 0) {
168
+ return 'let mockActions = [];';
169
+ }
170
+ var formattedActions = actions.map((action, index) => {
171
+ var actionStr = formatAction(action, 1);
172
+ return index < actions.length - 1 ? "".concat(actionStr, ",") : actionStr;
173
+ }).join('\n');
174
+ return "let mockActions = [\n".concat(formattedActions, "\n];");
175
+ }
176
+
177
+ // Main function to generate the complete actions.ts file content
178
+ window.generateActionsFile = function (pageId) {
179
+ var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_GENERATE_DELAY;
180
+ var actionsToFormat = window.getActions();
181
+ var actionsArrayStr = formatActionsArray(actionsToFormat);
182
+ var executeFunctionStr = "async function executeActionsWithDelay(pageId, actions, delay, api) {\n// \u5F00\u59CB\u6267\u884C\nawait api.updatePage(pageId, [], \"start\");\n\n// \u904D\u5386\u6267\u884C\u6BCF\u4E2Aaction\nfor (let i = 0; i < actions.length; i++) {\n // \u6DFB\u52A0\u5EF6\u8FDF\n await new Promise((resolve) => setTimeout(resolve, delay));\n\n // \u6267\u884C\u5F53\u524Daction\n await api.updatePage(pageId, [actions[i]], \"ing\");\n}\n\n// \u6700\u540E\u8C03\u7528\u7A7A\u6570\u7EC4\uFF0C\u53C2\u6570\u4E3Acomplete\nawait new Promise((resolve) => setTimeout(resolve, delay));\nawait api.updatePage(pageId, [], \"complete\");\n}";
183
+ var defaultPageId = pageId || "'".concat(DEFAULT_PAGE_ID, "'");
184
+ var executeCallStr = "\nexecuteActionsWithDelay(".concat(defaultPageId, ", mockActions, ").concat(delay, ", window.plugin_ai_context.api?.page?.api)");
185
+ var fullContent = "".concat(actionsArrayStr, "\n\n").concat(executeFunctionStr).concat(executeCallStr, "\n");
186
+ console.log('Generated actions.ts content:');
187
+ console.log(fullContent);
188
+ return fullContent;
189
+ };
190
+
191
+ // ========== API 收集和回放功能 ==========
192
+
193
+ // 导出到 window 对象
194
+ window.APIRecordReplay = new APIRecordReplayManager();
195
+
196
+ // [].map(t => {
197
+ // if (t.type === 'updatePage' && t.params[0] === 'u_QIXGy') {
198
+ // t.params[0] = 'u_ail3e'
199
+ // return {
200
+ // ...t,
201
+ // delay: 1000,
202
+ // }
203
+ // }
204
+ // return null
205
+ // }).filter(t => t !== null)
206
+ //# sourceMappingURL=index.js.map