@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../src/tools/utils.ts"],"sourcesContent":["import { jsonrepair } from 'jsonrepair'\nimport { ComponentsManager } from './../agents/workspace/components-manager'\n\nexport function getFiles(files: RxFiles, {\n extName\n}: {\n extName?: string\n}): RxFile | undefined {\n let result: RxFile | undefined\n Object.keys(files).forEach((fileName) => {\n const file = files[fileName] as RxFile;\n if (file.extension === extName) {\n result = file\n }\n })\n return result\n}\n\nexport function getComponentOperationSummary(operations = [], componentIdToTitleMap = new Map()) {\n const componentActions: any = {};\n const results: any = [];\n\n // 收集组件title信息(补充传入映射中没有的新组件)\n operations.forEach(operation => {\n if (operation.type === 'addChild' && operation.params.title) {\n componentIdToTitleMap.set(operation.params.comId, operation.params.title)\n }\n });\n\n operations.forEach(operation => {\n const { comId, type, target, params } = operation;\n\n switch (type) {\n case 'doConfig':\n const configTitle = componentIdToTitleMap.get(comId) || comId;\n if (!componentActions[configTitle]) {\n componentActions[configTitle] = { configs: [] };\n }\n const simplifiedPath = params.path?.split?.('/')?.pop?.();\n componentActions[configTitle].configs.push(simplifiedPath);\n break;\n\n case 'addChild':\n const parentTitle = componentIdToTitleMap.get(comId) || comId;\n\n // 1. 先记录添加组件的操作\n results.push(`• 在【${parentTitle}】的 ${target} 插槽中新增了「${params.title}」`);\n\n // 2. 如果新组件有配置,单独记录配置操作\n if (params.configs && params.configs.length > 0) {\n const childConfigs = params.configs.map(config => config.path?.split?.('/')?.pop?.());\n results.push(`• 配置【${params.title}】:设置了 ${childConfigs.join('、')} 等属性`);\n }\n break;\n\n case 'move':\n const moveTitle = componentIdToTitleMap.get(comId);\n const targetTitle = componentIdToTitleMap.get(params.to?.comId);\n const slotId = params.to?.slotId;\n\n if (moveTitle && targetTitle) {\n results.push(`• 将【${moveTitle}】移动至【${targetTitle}】的 ${slotId} 插槽中`);\n }\n break;\n\n case 'delete':\n const deleteTitle = componentIdToTitleMap.get(comId);\n if (deleteTitle) {\n results.push(`• 删除了【${deleteTitle}】组件`);\n } else {\n // 如果没有title,可能是删除了一个没有被记录的组件\n results.push(`• 删除了组件 ${comId}`);\n }\n break;\n }\n });\n\n // 处理独立的配置操作(doConfig类型)\n Object.keys(componentActions).forEach(title => {\n const actions = componentActions[title];\n if (actions.configs.length > 0) {\n results.push(`• 配置【${title}】:调整了 ${actions.configs.join('、')} 等属性`);\n }\n });\n\n return results.join('\\n');\n}\n\ninterface Config {\n path: string;\n value: any;\n style: any;\n}\n\ninterface AddChildActionParams {\n namespace?: string;\n ns?: string;\n layout?: any;\n configs: Config[];\n ignore?: boolean;\n enhance?: boolean;\n}\n\ninterface DoConfigActionParams {\n path: string;\n value: any;\n}\n\ntype ActionParams = AddChildActionParams | DoConfigActionParams;\n\ninterface Action {\n comId: string;\n type: string;\n target: string;\n params: ActionParams;\n}\n\n// 第二个参数用于透传当前解析器实例内的 comId -> params 映射,方便后续 O(1) 快查\nconst formatAction = (\n _action: string,\n comIdToParamsMap?: Map<string, AddChildActionParams>,\n options?: { enabledActionTags?: boolean }\n) => {\n const { enabledActionTags } = options ?? {};\n let action;\n try {\n // TODO,后面要提示词处理的,这样replace不合理\n const fixActionString = _action.replaceAll('{\":parent/', '{\"path\":\":parent/')\n action = JSON.parse(fixActionString);\n } catch (error) {\n try {\n const repairedAction = jsonrepair(_action)\n action = JSON.parse(repairedAction)\n } catch (error) {\n console.error(\"repair action error\", error);\n }\n }\n\n if (!Array.isArray(action)) {\n return action;\n }\n\n const [comId, target, type, params] = action;\n const newAct: Action = {\n comId,\n type,\n target,\n params,\n };\n\n if (newAct.type === \"delete\") {\n if (!newAct.params) {\n return {\n ...newAct,\n params: {}\n }\n }\n }\n\n if (newAct.type === 'move') {\n if (newAct.params) {\n return {\n ...newAct,\n params: {\n to: newAct.params\n }\n }\n }\n }\n\n // ns => namespace\n if (newAct.type === \"addChild\") {\n if (newAct.params?.ns) {\n newAct.params.namespace = ComponentsManager.getFullNamespace(newAct.params.ns);\n delete newAct.params.ns;\n }\n }\n\n // 标记使用\n if (newAct.type === 'addChild') {\n if (enabledActionTags) {\n \n if (newAct.params?.ignore) {\n // TODO:标记的兼容,对于配置了ignore,但是有padding的组件,直接替换成enhance,因为直接去掉,底层的100%组件宽高会失效。\n if (newAct?.params?.configs?.some(config => Object.keys(config?.style ?? {}).some(key => key.startsWith('padding')))) {\n newAct.params.enhance = true;\n delete newAct.params.ignore;\n }\n\n // TODO:标记的兼容,如果配置了enhance或者ignore的不是布局组件,需要删除该标记\n if (!ComponentsManager.isLayoutComponent(newAct.params.namespace)) {\n delete newAct.params.enhance;\n delete newAct.params.ignore;\n }\n\n // TODO:标记的兼容,关注配置了ignore的父级元素是否为布局组件,如果不是,需要改成enhance而不是ignore,因为其他组件没有setLayout函数\n if (comIdToParamsMap) {\n const parentParams = comIdToParamsMap.get(newAct.comId);\n if (!parentParams) { // 没有父级组件,直接删除标记\n delete newAct.params.enhance;\n delete newAct.params.ignore;\n } else {\n // 有父级组件,判断父级组件是否为布局组件\n const parentNamespace = parentParams?.namespace;\n if (parentNamespace && !ComponentsManager.isLayoutComponent(parentNamespace)) {\n newAct.params.enhance = true;\n delete newAct.params.ignore;\n }\n }\n }\n }\n } else {\n if (newAct.params.enhance || newAct.params.ignore) {\n delete newAct.params.enhance;\n delete newAct.params.ignore;\n }\n }\n }\n\n // absolute 布局的转化\n if (newAct.params?.value?.display === \"absolute\") {\n newAct.params.value.position = \"smart\";\n delete newAct.params.value.display;\n }\n\n // flexDirection 的兼容\n if (newAct.params?.value && newAct.params.value.display === \"flex\" && !newAct.params.value.flexDirection) {\n newAct.params.value.flexDirection = \"row\";\n }\n\n // addChild兼容\n if (newAct.type === \"addChild\" && Array.isArray(newAct.params?.configs)) {\n newAct.params.configs.forEach((config) => {\n\n // path value幻觉,直接用key value的情况\n if (!config?.path && Object.keys(config).length === 1) {\n const firstKey = Object.keys(config)[0];\n const value = config[firstKey]\n delete config[firstKey];\n config.path = firstKey\n config.value = value\n }\n\n if (config.parent) {\n config.path = `:parent/${config.path}`;\n delete config.parent;\n }\n \n // absolute 布局的转化\n if (config?.value?.display === \"absolute\") {\n config.value.position = \"smart\";\n delete config.value.display;\n }\n\n // flexDirection 的兼容\n if (config.value && config.value?.display === \"flex\" && !config.value?.flexDirection) {\n config.value.flexDirection = \"row\";\n }\n\n if (config?.style) {\n // 兼容background\n transformToValidBackground(config?.style);\n }\n });\n }\n\n // flex布局幻觉的兼容\n if (newAct.type === \"doConfig\") {\n if (newAct.params?.display === 'flex' && !newAct.params?.flexDirection) {\n newAct.params.flexDirection = 'column';\n }\n if (newAct.params?.flexDirection && !newAct.params?.display) {\n newAct.params.display = 'flex';\n }\n }\n\n // 对样式幻觉的兼容\n if (newAct.type === \"doConfig\" && newAct.params?.style) {\n // 兼容background\n transformToValidBackground(newAct.params?.style);\n }\n if (newAct.type === \"addChild\" && newAct.params?.layout) {\n // 兼容margin\n transformToValidMargins(newAct.params?.layout);\n\n // 支持width=auto\n if (newAct.params?.layout?.width === 'auto') {\n newAct.params.layout.width = '100%';\n }\n }\n\n // 在所有兼容性处理之后,再记录 addChild 的配置,保证 namespace / layout 等信息已经就绪\n if (comIdToParamsMap && newAct.type === \"addChild\") {\n comIdToParamsMap.set(newAct.params.comId, JSON.parse(JSON.stringify(newAct.params)) as AddChildActionParams);\n }\n\n return newAct;\n};\n\n/**\n * 将background转换为有效的backgroundColor和backgroundImage\n * @param styles 需要转换的样式对象\n */\nfunction transformToValidBackground(styles: any): void {\n // 兼容下把渐变色配置到backgroundColor的情况\n if (\n styles?.backgroundColor &&\n styles?.backgroundColor?.indexOf(\"gradient\") > -1\n ) {\n const imageRegex =\n /(url\\([^)]+\\)|linear-gradient\\([^)]+\\)|radial-gradient\\([^)]+\\)|conic-gradient\\([^)]+\\))/;\n const imageMatch = styles.backgroundColor.match(imageRegex);\n\n if (imageMatch && !styles.backgroundImage) {\n styles.backgroundImage = imageMatch[0];\n }\n\n delete styles.backgroundColor;\n }\n\n // 兼容,配置backgroundColor的话记得去除渐变色\n if (styles.backgroundColor && !styles.backgroundImage) {\n styles.backgroundColor = styles.backgroundColor\n styles.backgroundImage = 'none'\n }\n\n // 如果没有background属性,直接返回\n if (!styles.background) {\n return;\n }\n\n const background = styles.background.toString().trim();\n\n // 删除原有的background属性\n delete styles.background;\n\n // 处理特殊值\n if (background === 'transparent' || background === 'none') {\n styles.backgroundColor = 'transparent';\n styles.backgroundImage = 'none';\n return;\n }\n\n // 解析复合背景\n const parsedBackground = parseComplexBackground(background);\n \n if (parsedBackground.hasImages && !styles.backgroundImage) {\n styles.backgroundColor = 'transparent';\n styles.backgroundImage = parsedBackground.images.join(', ');\n \n // 设置背景位置和尺寸\n if (parsedBackground.position && !styles.backgroundPosition) {\n styles.backgroundPosition = parsedBackground.position;\n }\n if (parsedBackground.size && !styles.backgroundSize) {\n styles.backgroundSize = parsedBackground.size;\n }\n\n return;\n }\n\n // 如果只有颜色\n if (parsedBackground.color && !styles.backgroundColor) {\n styles.backgroundColor = parsedBackground.color;\n if (!styles.backgroundImage) {\n styles.backgroundImage = 'none';\n }\n return;\n }\n\n // 如果没有找到颜色,但有backgroundImage,设置透明背景色\n if (styles.backgroundImage && !styles.backgroundColor) {\n styles.backgroundColor = 'transparent';\n }\n}\n\n/**\n * 解析复杂的background值\n * @param background 原始background字符串\n * @returns 解析后的对象\n */\nfunction parseComplexBackground(background: string) {\n const result = {\n images: [] as string[],\n color: '',\n position: '',\n size: '',\n hasImages: false\n };\n\n // 使用更精确的方法来提取图片和渐变\n const images = extractBackgroundImages(background);\n \n if (images.length > 0) {\n result.hasImages = true;\n result.images = images;\n \n // 提取位置和尺寸信息\n const positionSizeInfo = extractPositionAndSize(background, images);\n result.position = positionSizeInfo.position;\n result.size = positionSizeInfo.size;\n }\n\n // 提取颜色值\n const color = extractBackgroundColor(background, images);\n if (color) {\n result.color = color;\n }\n\n return result;\n}\n\n/**\n * 提取背景图片和渐变\n */\nfunction extractBackgroundImages(background: string): string[] {\n const images: string[] = [];\n let remaining = background;\n \n while (remaining.length > 0) {\n // 查找下一个函数的开始\n const urlMatch = remaining.match(/url\\s*\\(/);\n const gradientMatch = remaining.match(/(linear-gradient|radial-gradient|conic-gradient)\\s*\\(/);\n \n let nextMatch = null;\n let matchType = '';\n \n if (urlMatch && gradientMatch) {\n // 选择更早出现的匹配\n if (urlMatch.index! < gradientMatch.index!) {\n nextMatch = urlMatch;\n matchType = 'url';\n } else {\n nextMatch = gradientMatch;\n matchType = 'gradient';\n }\n } else if (urlMatch) {\n nextMatch = urlMatch;\n matchType = 'url';\n } else if (gradientMatch) {\n nextMatch = gradientMatch;\n matchType = 'gradient';\n }\n \n if (!nextMatch) {\n break;\n }\n \n const startIndex = nextMatch.index!;\n const functionStart = remaining.indexOf('(', startIndex) + 1;\n \n // 找到匹配的右括号\n let parenCount = 1;\n let endIndex = functionStart;\n \n while (endIndex < remaining.length && parenCount > 0) {\n if (remaining[endIndex] === '(') {\n parenCount++;\n } else if (remaining[endIndex] === ')') {\n parenCount--;\n }\n endIndex++;\n }\n \n if (parenCount === 0) {\n // 提取完整的函数\n const fullFunction = remaining.substring(startIndex, endIndex);\n images.push(fullFunction);\n \n // 移除已处理的部分\n remaining = remaining.substring(endIndex);\n } else {\n // 如果括号不匹配,跳过这个匹配\n remaining = remaining.substring(startIndex + 1);\n }\n }\n \n return images;\n}\n\n/**\n * 提取位置和尺寸信息\n */\nfunction extractPositionAndSize(background: string, images: string[]): { position: string; size: string } {\n let cleanBackground = background;\n \n // 移除所有图片和渐变\n images.forEach(image => {\n cleanBackground = cleanBackground.replace(image, '');\n });\n \n // 清理多余的逗号和空格\n cleanBackground = cleanBackground.replace(/,\\s*,/g, ',').replace(/^\\s*,\\s*|\\s*,\\s*$/g, '').trim();\n \n // 匹配位置/尺寸模式 (如: center/cover, top left/contain)\n const positionSizeMatch = cleanBackground.match(/([^\\/,]*?)\\/([^\\/,]*)/);\n \n let position = '';\n let size = '';\n \n if (positionSizeMatch) {\n const positionPart = positionSizeMatch[1]?.trim();\n const sizePart = positionSizeMatch[2]?.trim();\n \n if (positionPart && isValidBackgroundPosition(positionPart)) {\n position = positionPart;\n }\n \n if (sizePart && isValidBackgroundSize(sizePart)) {\n size = sizePart;\n }\n } else {\n // 如果没有找到 / 分隔符,尝试单独匹配位置或尺寸\n const parts = cleanBackground.split(/\\s+/).filter(part => part.length > 0);\n \n for (const part of parts) {\n if (!position && isValidBackgroundPosition(part)) {\n position = part;\n } else if (!size && isValidBackgroundSize(part)) {\n size = part;\n }\n }\n }\n \n return { position, size };\n}\n\n/**\n * 提取背景颜色\n */\nfunction extractBackgroundColor(background: string, images: string[]): string {\n let cleanBackground = background;\n \n // 移除所有图片和渐变\n images.forEach(image => {\n cleanBackground = cleanBackground.replace(image, '');\n });\n \n // 移除位置和尺寸信息\n cleanBackground = cleanBackground.replace(/\\s*(center|top|bottom|left|right|\\d+%|\\d+px)\\s*/g, ' ');\n cleanBackground = cleanBackground.replace(/\\s*\\/\\s*(cover|contain|auto|\\d+%|\\d+px)\\s*/g, ' ');\n cleanBackground = cleanBackground.replace(/,\\s*,/g, ',').replace(/^\\s*,\\s*|\\s*,\\s*$/g, '').trim();\n\n // 匹配颜色格式\n const colorRegex = /(#[0-9A-Fa-f]{3,6}|rgb\\([^)]+\\)|rgba\\([^)]+\\)|hsl\\([^)]+\\)|hsla\\([^)]+\\)|[a-zA-Z]+)/;\n const colorMatch = cleanBackground.match(colorRegex);\n \n return colorMatch ? colorMatch[0] : '';\n}\n\n/**\n * 检查是否是有效的背景位置值\n */\nfunction isValidBackgroundPosition(value: string): boolean {\n const positionKeywords = ['center', 'top', 'bottom', 'left', 'right'];\n const parts = value.split(/\\s+/);\n \n return parts.every(part => \n positionKeywords.includes(part) || \n /^\\d+%$/.test(part) || \n /^\\d+px$/.test(part) ||\n /^-?\\d+(\\.\\d+)?(px|em|rem|%)$/.test(part)\n );\n}\n\n/**\n * 检查是否是有效的背景尺寸值\n */\nfunction isValidBackgroundSize(value: string): boolean {\n const sizeKeywords = ['cover', 'contain', 'auto'];\n \n if (sizeKeywords.includes(value)) {\n return true;\n }\n \n const parts = value.split(/\\s+/);\n return parts.every(part => \n part === 'auto' ||\n /^\\d+%$/.test(part) || \n /^\\d+px$/.test(part) ||\n /^-?\\d+(\\.\\d+)?(px|em|rem|%)$/.test(part)\n );\n}\n\n/**\n * 将margin简写转换为marginTop/Right/Bottom/Left\n * @param styles 需要转换的样式对象\n */\nfunction transformToValidMargins(styles: any): void {\n // 如果没有margin属性,直接返回\n if (!styles.margin) {\n return;\n }\n\n const margin = styles.margin.toString().trim();\n const values = margin.split(/\\s+/); // 按空格分割\n\n // 根据值的数量设置不同方向的margin\n switch (values.length) {\n case 1: // margin: 10px;\n styles.marginTop = values[0];\n styles.marginRight = values[0];\n styles.marginBottom = values[0];\n styles.marginLeft = values[0];\n break;\n case 2: // margin: 10px 20px;\n styles.marginTop = values[0];\n styles.marginRight = values[1];\n styles.marginBottom = values[0];\n styles.marginLeft = values[1];\n break;\n case 3: // margin: 10px 20px 30px;\n styles.marginTop = values[0];\n styles.marginRight = values[1];\n styles.marginBottom = values[2];\n styles.marginLeft = values[1];\n break;\n case 4: // margin: 10px 20px 30px 40px;\n styles.marginTop = values[0];\n styles.marginRight = values[1];\n styles.marginBottom = values[2];\n styles.marginLeft = values[3];\n break;\n }\n\n // 删除原有的margin属性\n delete styles.margin;\n}\n\n/**\n * 将解析出的一条 action 推入列表,若为 addChild 且带 index 则追加对应 move\n */\nfunction pushParsedAction(\n newActions: any[],\n parsedAction: any,\n processedLines: Set<string>,\n trimmedLine: string\n) {\n if (!parsedAction.comId) return;\n newActions.push(parsedAction);\n if (parsedAction.type === 'addChild' && parsedAction.params.index !== undefined) {\n newActions.push({\n comId: parsedAction.params.comId,\n target: ':root',\n type: 'move',\n params: {\n to: {\n comId: parsedAction.comId,\n slotId: parsedAction.target,\n index: parsedAction.params.index,\n },\n }\n });\n }\n processedLines.add(trimmedLine);\n}\n\n/**\n * 创建actions解析器\n * @param options.enabledActionTags 是否启用 action tags\n * @returns 解析函数 parseActions(text, isEnd?)\n * - text: 待解析的 actions 文本(可流式追加)\n * - isEnd: 是否为结束标记;为 true 时最后一行即使没有回车符也会被当作完整行解析\n */\nexport function createActionsParser({ enabledActionTags }: { enabledActionTags?: boolean }) {\n const processedLines = new Set<string>();\n const comIdToParamsMap = new Map<string, AddChildActionParams>();\n\n return function parseActions(text: string, isEnd?: boolean) {\n const newActions: any[] = [];\n const lines = text.split(\"\\n\").filter(line => line.trim() !== '');\n\n const linesToProcess = lines.slice(0, -1);\n const lastLine = lines[lines.length - 1];\n const lastLineComplete = lines.length === 0 || text.endsWith(\"\\n\") || isEnd === true;\n\n for (const line of linesToProcess) {\n const trimmedLine = line.trim();\n if (!trimmedLine || processedLines.has(trimmedLine)) continue;\n try {\n const parsedAction = formatAction(trimmedLine, comIdToParamsMap, { enabledActionTags });\n pushParsedAction(newActions, parsedAction, processedLines, trimmedLine);\n } catch {\n processedLines.add(trimmedLine);\n }\n }\n\n if (lastLine && lastLine.trim() && lastLineComplete && !processedLines.has(lastLine.trim())) {\n const trimmedLastLine = lastLine.trim();\n try {\n const parsedAction = formatAction(trimmedLastLine, comIdToParamsMap, { enabledActionTags });\n pushParsedAction(newActions, parsedAction, processedLines, trimmedLastLine);\n } catch {\n processedLines.add(trimmedLastLine);\n }\n }\n\n return newActions;\n };\n}\n\nexport function stripFileBlocks(raw: string) {\n if (typeof raw !== \"string\") {\n return \"\"\n }\n const fileBlockRegex = /```[^\\n]*title\\s*=\\s*\"[^\"\\n]*\"?[\\s\\S]*?```/g;\n let cleaned = raw.replace(fileBlockRegex, '');\n\n // 去掉多余空行:连续空白行压缩为单个换行,再首尾 trim\n cleaned = cleaned\n .replace(/\\n{2,}/g, '\\n') // 多个换行压缩为一个\n .trim();\n\n return cleaned;\n}\n\nexport function jsonSafeParse(input: string): any {\n let finalError\n try {\n return JSON.parse(input);\n } catch (error) {\n finalError = error\n try {\n const repairedJson = jsonrepair(input);\n return JSON.parse(repairedJson);\n } catch (repairError) {\n // 修复也失败了,抛出错误\n throw finalError\n }\n }\n}\n\n/** PC */\ntype PageInfoSPA = {\n id: string;\n title: string;\n inputs: {id: string; title: string}[];\n outputs: {id: string; title: string}[];\n}[]\n\n/** 鸿蒙 */\ntype PageInfoMPA = {\n pageAry: PageInfoSPA;\n}[]\n\n/** 获取pages,兼容spa和mpa */\nexport const transformPageInfo = (pageInfo: PageInfoSPA | PageInfoMPA) => {\n const pages: PageInfoSPA[number][] = [];\n pageInfo?.forEach((page) => {\n if (\"pageAry\" in page) {\n pages.push(...page.pageAry);\n } else {\n pages.push(page)\n }\n })\n return pages;\n}\n\nconst formatVarAction = (\n _action: string,\n) => {\n let action;\n try {\n // TODO,后面要提示词处理的,这样replace不合理\n const fixActionString = _action.replaceAll('{\":parent/', '{\"path\":\":parent/')\n action = JSON.parse(fixActionString);\n } catch (error) {\n try {\n const repairedAction = jsonrepair(_action)\n action = JSON.parse(repairedAction)\n console.log(\"[action]\", action)\n } catch (error) {\n console.error(\"repair action error\", error);\n }\n }\n\n if (!Array.isArray(action)) {\n return action;\n }\n\n return action;\n};\n\nexport function createVarActionsParser() {\n const processedLines = new Set<string>();\n\n return function parseActions(text: string) {\n const newActions = [];\n const lines = text.split(\"\\n\").filter(line => line.trim() !== '');\n\n // 只处理除了最后一行之外的所有行(最后一行可能不完整)\n const linesToProcess = lines.slice(0, -1);\n const lastLine = lines[lines.length - 1];\n\n // 处理完整的行\n for (const line of linesToProcess) {\n const trimmedLine = line.trim();\n\n // 跳过空行和已处理的行\n if (!trimmedLine || processedLines.has(trimmedLine)) {\n continue;\n }\n\n try {\n const parsedAction = formatVarAction(trimmedLine);\n newActions.push(parsedAction);\n processedLines.add(trimmedLine);\n } catch (error) {\n // 这是真正的解析错误(完整的行但格式错误)\n processedLines.add(trimmedLine); // 标记为已处理,避免重复尝试\n }\n }\n\n // 处理最后一行\n if (lastLine && lastLine.trim()) {\n const trimmedLastLine = lastLine.trim();\n\n // 如果文本以换行符结尾,说明最后一行是完整的\n if ((text.endsWith(\"\\n\")) && !processedLines.has(trimmedLastLine)) {\n try {\n const parsedAction = formatVarAction(trimmedLastLine);\n newActions.push(parsedAction);\n processedLines.add(trimmedLastLine);\n } catch (error) {\n processedLines.add(trimmedLastLine);\n }\n }\n }\n\n // processedLines.clear();\n\n return newActions;\n };\n}\n\nconst UUID_SEED = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nexport const uuid = (len = 5) => {\n\tconst maxPos = UUID_SEED.length;\n\tlet rtn = '';\n\tfor (let i = 0; i < len; i++) {\n\t\trtn += UUID_SEED.charAt(Math.floor(Math.random() * maxPos));\n\t}\n\treturn 'u_' + rtn;\n}\n\nexport class ComIdTransform {\n comIdMap: Record<string, string[]> = {};\n\n constructor(comIds: string[]) {\n const { comIdMap } = this;\n comIds.forEach((comId) => {\n comIdMap[comId] = [comId];\n })\n }\n \n getComId(comId: string) {\n if (!this.comIdMap[comId] || this.comIdMap[comId].length === 0) {\n const newComId = uuid();\n this.comIdMap[comId] = [newComId];\n return newComId;\n }\n\n // 返回最近添加的comId(数组的最后一个)\n return this.comIdMap[comId][this.comIdMap[comId].length - 1];\n }\n\n // 添加新的comId映射,用于addChild操作\n addComId(comId: string): string {\n const newComId = uuid();\n if (!this.comIdMap[comId]) {\n this.comIdMap[comId] = [];\n }\n this.comIdMap[comId].push(newComId);\n return newComId;\n }\n}\n\nexport class PromiseStack {\n stack: any[] = [];\n currentPromise: any = null;\n\n add(promiseFn: any) {\n this.stack.push(promiseFn);\n this.run();\n }\n\n async run() {\n let catchNext = false;\n try {\n if (this.currentPromise) {\n return;\n }\n const promiseFn = this.stack.shift();\n if (promiseFn) {\n const promise = promiseFn();\n if (Object.prototype.toString.call(promise) === \"[object Promise]\") {\n this.currentPromise = promise;\n catchNext = true;\n await promise;\n this.currentPromise = null;\n this.run();\n } else {\n this.run();\n }\n }\n } catch (e) {\n console.error(e)\n if (catchNext) {\n this.currentPromise = null;\n this.run();\n }\n }\n }\n}"],"names":["getFiles","files","_ref","extName","result","Object","keys","forEach","fileName","file","extension","getComponentOperationSummary","operations","arguments","length","undefined","componentIdToTitleMap","Map","componentActions","results","operation","type","params","title","set","comId","_params$path","_params$path$split","_params$path$split$po","_params$to","_params$to2","target","configTitle","get","configs","simplifiedPath","path","split","call","pop","push","parentTitle","concat","childConfigs","map","config","_config$path","_config$path$split","_config$path$split$po","join","moveTitle","targetTitle","to","slotId","deleteTitle","actions","formatAction","_action","comIdToParamsMap","options","_newAct$params4","_newAct$params5","_newAct$params6","_newAct$params1","_newAct$params11","enabledActionTags","action","fixActionString","replaceAll","JSON","parse","error","repairedAction","jsonrepair","console","Array","isArray","newAct","_objectSpread","_newAct$params","ns","namespace","ComponentsManager","getFullNamespace","_newAct$params2","ignore","_newAct$params3","some","_config$style","style","key","startsWith","enhance","isLayoutComponent","parentParams","parentNamespace","value","display","position","flexDirection","_config$value","_config$value2","_config$value3","firstKey","parent","transformToValidBackground","_newAct$params7","_newAct$params8","_newAct$params9","_newAct$params0","_newAct$params10","layout","_newAct$params12","_newAct$params13","transformToValidMargins","width","stringify","styles","_styles$backgroundCol","backgroundColor","indexOf","imageRegex","imageMatch","match","backgroundImage","background","toString","trim","parsedBackground","parseComplexBackground","hasImages","images","backgroundPosition","size","backgroundSize","color","extractBackgroundImages","positionSizeInfo","extractPositionAndSize","extractBackgroundColor","remaining","urlMatch","gradientMatch","nextMatch","index","startIndex","functionStart","parenCount","endIndex","fullFunction","substring","cleanBackground","image","replace","positionSizeMatch","_positionSizeMatch$","_positionSizeMatch$2","positionPart","sizePart","isValidBackgroundPosition","isValidBackgroundSize","parts","filter","part","colorRegex","colorMatch","positionKeywords","every","includes","test","sizeKeywords","margin","values","marginTop","marginRight","marginBottom","marginLeft","pushParsedAction","newActions","parsedAction","processedLines","trimmedLine","add","createActionsParser","_ref2","Set","parseActions","text","isEnd","lines","line","linesToProcess","slice","lastLine","lastLineComplete","endsWith","has","_unused","trimmedLastLine","_unused2","stripFileBlocks","raw","fileBlockRegex","cleaned","jsonSafeParse","input","finalError","repairedJson","repairError","transformPageInfo","pageInfo","pages","page","pageAry","formatVarAction","log","createVarActionsParser","UUID_SEED","uuid","len","maxPos","rtn","i","charAt","Math","floor","random","ComIdTransform","constructor","comIds","_defineProperty","comIdMap","getComId","newComId","addComId","PromiseStack","promiseFn","stack","run","_this","_asyncToGenerator","catchNext","currentPromise","shift","promise","prototype","e"],"mappings":";;;;AAGO,SAASA,QAAQA,CAACC,KAAc,EAAAC,IAAA,EAIhB;EAAA,IAJkB;AACvCC,IAAAA;AAGF,GAAC,GAAAD,IAAA;AACC,EAAA,IAAIE,MAA0B;EAC9BC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CAACM,OAAO,CAAEC,QAAQ,IAAK;AACvC,IAAA,IAAMC,IAAI,GAAGR,KAAK,CAACO,QAAQ,CAAW;AACtC,IAAA,IAAIC,IAAI,CAACC,SAAS,KAAKP,OAAO,EAAE;AAC9BC,MAAAA,MAAM,GAAGK,IAAI;AACf,IAAA;AACF,EAAA,CAAC,CAAC;AACF,EAAA,OAAOL,MAAM;AACf;AAEO,SAASO,4BAA4BA,GAAqD;AAAA,EAAA,IAApDC,UAAU,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,EAAA,IAAEG,qBAAqB,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAII,GAAG,EAAE;EAC7F,IAAMC,gBAAqB,GAAG,EAAE;EAChC,IAAMC,OAAY,GAAG,EAAE;;AAEvB;AACAP,EAAAA,UAAU,CAACL,OAAO,CAACa,SAAS,IAAI;IAC9B,IAAIA,SAAS,CAACC,IAAI,KAAK,UAAU,IAAID,SAAS,CAACE,MAAM,CAACC,KAAK,EAAE;AAC3DP,MAAAA,qBAAqB,CAACQ,GAAG,CAACJ,SAAS,CAACE,MAAM,CAACG,KAAK,EAAEL,SAAS,CAACE,MAAM,CAACC,KAAK,CAAC;AAC3E,IAAA;AACF,EAAA,CAAC,CAAC;AAEFX,EAAAA,UAAU,CAACL,OAAO,CAACa,SAAS,IAAI;IAAA,IAAAM,YAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,WAAA;IAC9B,IAAM;MAAEL,KAAK;MAAEJ,IAAI;MAAEU,MAAM;AAAET,MAAAA;AAAO,KAAC,GAAGF,SAAS;AAEjD,IAAA,QAAQC,IAAI;AACV,MAAA,KAAK,UAAU;QACb,IAAMW,WAAW,GAAGhB,qBAAqB,CAACiB,GAAG,CAACR,KAAK,CAAC,IAAIA,KAAK;AAC7D,QAAA,IAAI,CAACP,gBAAgB,CAACc,WAAW,CAAC,EAAE;UAClCd,gBAAgB,CAACc,WAAW,CAAC,GAAG;AAAEE,YAAAA,OAAO,EAAE;WAAI;AACjD,QAAA;QACA,IAAMC,cAAc,IAAAT,YAAA,GAAGJ,MAAM,CAACc,IAAI,cAAAV,YAAA,KAAA,MAAA,IAAA,CAAAC,kBAAA,GAAXD,YAAA,CAAaW,KAAK,MAAA,IAAA,IAAAV,kBAAA,KAAA,MAAA,IAAA,CAAAA,kBAAA,GAAlBA,kBAAA,CAAAW,IAAA,CAAAZ,YAAA,EAAqB,GAAG,CAAC,cAAAC,kBAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAzBD,kBAAA,CAA2BY,GAAG,MAAA,IAAA,IAAAX,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA9BA,qBAAA,CAAAU,IAAA,CAAAX,kBAAiC,CAAC;QACzDT,gBAAgB,CAACc,WAAW,CAAC,CAACE,OAAO,CAACM,IAAI,CAACL,cAAc,CAAC;AAC1D,QAAA;AAEF,MAAA,KAAK,UAAU;QACb,IAAMM,WAAW,GAAGzB,qBAAqB,CAACiB,GAAG,CAACR,KAAK,CAAC,IAAIA,KAAK;;AAE7D;AACAN,QAAAA,OAAO,CAACqB,IAAI,CAAA,qBAAA,CAAAE,MAAA,CAAQD,WAAW,EAAA,eAAA,CAAA,CAAAC,MAAA,CAAMX,MAAM,iDAAAW,MAAA,CAAWpB,MAAM,CAACC,KAAK,WAAG,CAAC;;AAEtE;QACA,IAAID,MAAM,CAACY,OAAO,IAAIZ,MAAM,CAACY,OAAO,CAACpB,MAAM,GAAG,CAAC,EAAE;UAC/C,IAAM6B,YAAY,GAAGrB,MAAM,CAACY,OAAO,CAACU,GAAG,CAACC,MAAM,IAAA;AAAA,YAAA,IAAAC,YAAA,EAAAC,kBAAA,EAAAC,qBAAA;AAAA,YAAA,OAAA,CAAAF,YAAA,GAAID,MAAM,CAACT,IAAI,MAAA,IAAA,IAAAU,YAAA,KAAA,MAAA,IAAA,CAAAC,kBAAA,GAAXD,YAAA,CAAaT,KAAK,MAAA,IAAA,IAAAU,kBAAA,gBAAAA,kBAAA,GAAlBA,kBAAA,CAAAT,IAAA,CAAAQ,YAAA,EAAqB,GAAG,CAAC,cAAAC,kBAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAzBD,kBAAA,CAA2BR,GAAG,MAAA,IAAA,IAAAS,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA9BA,qBAAA,CAAAV,IAAA,CAAAS,kBAAiC,CAAC;UAAA,CAAA,CAAC;AACrF5B,UAAAA,OAAO,CAACqB,IAAI,CAAA,2BAAA,CAAAE,MAAA,CAASpB,MAAM,CAACC,KAAK,EAAA,iCAAA,CAAA,CAAAmB,MAAA,CAASC,YAAY,CAACM,IAAI,CAAC,GAAG,CAAC,wBAAM,CAAC;AACzE,QAAA;AACA,QAAA;AAEF,MAAA,KAAK,MAAM;AACT,QAAA,IAAMC,SAAS,GAAGlC,qBAAqB,CAACiB,GAAG,CAACR,KAAK,CAAC;AAClD,QAAA,IAAM0B,WAAW,GAAGnC,qBAAqB,CAACiB,GAAG,EAAAJ,UAAA,GAACP,MAAM,CAAC8B,EAAE,MAAA,IAAA,IAAAvB,UAAA,uBAATA,UAAA,CAAWJ,KAAK,CAAC;AAC/D,QAAA,IAAM4B,MAAM,GAAA,CAAAvB,WAAA,GAAGR,MAAM,CAAC8B,EAAE,MAAA,IAAA,IAAAtB,WAAA,KAAA,MAAA,GAAA,MAAA,GAATA,WAAA,CAAWuB,MAAM;QAEhC,IAAIH,SAAS,IAAIC,WAAW,EAAE;AAC5BhC,UAAAA,OAAO,CAACqB,IAAI,CAAA,qBAAA,CAAAE,MAAA,CAAQQ,SAAS,EAAA,gCAAA,CAAA,CAAAR,MAAA,CAAQS,WAAW,EAAA,eAAA,CAAA,CAAAT,MAAA,CAAMW,MAAM,wBAAM,CAAC;AACrE,QAAA;AACA,QAAA;AAEF,MAAA,KAAK,QAAQ;AACX,QAAA,IAAMC,WAAW,GAAGtC,qBAAqB,CAACiB,GAAG,CAACR,KAAK,CAAC;AACpD,QAAA,IAAI6B,WAAW,EAAE;AACfnC,UAAAA,OAAO,CAACqB,IAAI,CAAA,iCAAA,CAAAE,MAAA,CAAUY,WAAW,uBAAK,CAAC;AACzC,QAAA,CAAC,MAAM;AACL;AACAnC,UAAAA,OAAO,CAACqB,IAAI,CAAA,wCAAA,CAAAE,MAAA,CAAYjB,KAAK,CAAE,CAAC;AAClC,QAAA;AACA,QAAA;AACJ;AACF,EAAA,CAAC,CAAC;;AAEF;EACApB,MAAM,CAACC,IAAI,CAACY,gBAAgB,CAAC,CAACX,OAAO,CAACgB,KAAK,IAAI;AAC7C,IAAA,IAAMgC,OAAO,GAAGrC,gBAAgB,CAACK,KAAK,CAAC;AACvC,IAAA,IAAIgC,OAAO,CAACrB,OAAO,CAACpB,MAAM,GAAG,CAAC,EAAE;AAC9BK,MAAAA,OAAO,CAACqB,IAAI,CAAA,2BAAA,CAAAE,MAAA,CAASnB,KAAK,qCAAAmB,MAAA,CAASa,OAAO,CAACrB,OAAO,CAACe,IAAI,CAAC,GAAG,CAAC,wBAAM,CAAC;AACrE,IAAA;AACF,EAAA,CAAC,CAAC;AAEF,EAAA,OAAO9B,OAAO,CAAC8B,IAAI,CAAC,IAAI,CAAC;AAC3B;AA+BA;AACA,IAAMO,YAAY,GAAGA,CACnBC,OAAe,EACfC,gBAAoD,EACpDC,OAAyC,KACtC;EAAA,IAAAC,eAAA,EAAAC,eAAA,EAAAC,eAAA,EAAAC,eAAA,EAAAC,gBAAA;EACH,IAAM;AAAEC,IAAAA;GAAmB,GAAGN,OAAO,KAAA,IAAA,IAAPA,OAAO,cAAPA,OAAO,GAAI,EAAE;AAC3C,EAAA,IAAIO,MAAM;EACV,IAAI;AACF;IACA,IAAMC,eAAe,GAAGV,OAAO,CAACW,UAAU,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAC7EF,IAAAA,MAAM,GAAGG,IAAI,CAACC,KAAK,CAACH,eAAe,CAAC;EACtC,CAAC,CAAC,OAAOI,KAAK,EAAE;IACd,IAAI;AACF,MAAA,IAAMC,cAAc,GAAGC,UAAU,CAAChB,OAAO,CAAC;AAC1CS,MAAAA,MAAM,GAAGG,IAAI,CAACC,KAAK,CAACE,cAAc,CAAC;IACrC,CAAC,CAAC,OAAOD,KAAK,EAAE;AACdG,MAAAA,OAAO,CAACH,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;AAC7C,IAAA;AACF,EAAA;AAEA,EAAA,IAAI,CAACI,KAAK,CAACC,OAAO,CAACV,MAAM,CAAC,EAAE;AAC1B,IAAA,OAAOA,MAAM;AACf,EAAA;EAEA,IAAM,CAACzC,KAAK,EAAEM,MAAM,EAAEV,IAAI,EAAEC,MAAM,CAAC,GAAG4C,MAAM;AAC5C,EAAA,IAAMW,MAAc,GAAG;IACrBpD,KAAK;IACLJ,IAAI;IACJU,MAAM;AACNT,IAAAA;GACD;AAED,EAAA,IAAIuD,MAAM,CAACxD,IAAI,KAAK,QAAQ,EAAE;AAC5B,IAAA,IAAI,CAACwD,MAAM,CAACvD,MAAM,EAAE;AAClB,MAAA,OAAAwD,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKD,MAAM,CAAA,EAAA,EAAA,EAAA;AACTvD,QAAAA,MAAM,EAAE;AAAE,OAAA,CAAA;AAEd,IAAA;AACF,EAAA;AAEA,EAAA,IAAIuD,MAAM,CAACxD,IAAI,KAAK,MAAM,EAAE;IAC1B,IAAIwD,MAAM,CAACvD,MAAM,EAAE;AACjB,MAAA,OAAAwD,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKD,MAAM,CAAA,EAAA,EAAA,EAAA;AACTvD,QAAAA,MAAM,EAAE;UACN8B,EAAE,EAAEyB,MAAM,CAACvD;AACb;AAAC,OAAA,CAAA;AAEL,IAAA;AACF,EAAA;;AAEA;AACA,EAAA,IAAIuD,MAAM,CAACxD,IAAI,KAAK,UAAU,EAAE;AAAA,IAAA,IAAA0D,cAAA;IAC9B,IAAA,CAAAA,cAAA,GAAIF,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAyD,cAAA,KAAA,MAAA,IAAbA,cAAA,CAAeC,EAAE,EAAE;AACrBH,MAAAA,MAAM,CAACvD,MAAM,CAAC2D,SAAS,GAAGC,iBAAiB,CAACC,gBAAgB,CAACN,MAAM,CAACvD,MAAM,CAAC0D,EAAE,CAAC;AAC9E,MAAA,OAAOH,MAAM,CAACvD,MAAM,CAAC0D,EAAE;AACzB,IAAA;AACF,EAAA;;AAEA;AACA,EAAA,IAAIH,MAAM,CAACxD,IAAI,KAAK,UAAU,EAAE;AAC9B,IAAA,IAAI4C,iBAAiB,EAAE;AAAA,MAAA,IAAAmB,eAAA;MAErB,IAAA,CAAAA,eAAA,GAAIP,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAA8D,eAAA,KAAA,MAAA,IAAbA,eAAA,CAAeC,MAAM,EAAE;AAAA,QAAA,IAAAC,eAAA;AACzB;QACA,IAAIT,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAS,eAAA,GAANT,MAAM,CAAEvD,MAAM,MAAA,IAAA,IAAAgE,eAAA,KAAA,MAAA,IAAA,CAAAA,eAAA,GAAdA,eAAA,CAAgBpD,OAAO,MAAA,IAAA,IAAAoD,eAAA,eAAvBA,eAAA,CAAyBC,IAAI,CAAC1C,MAAM,IAAA;AAAA,UAAA,IAAA2C,aAAA;AAAA,UAAA,OAAInF,MAAM,CAACC,IAAI,CAAA,CAAAkF,aAAA,GAAC3C,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE4C,KAAK,cAAAD,aAAA,KAAA,MAAA,GAAAA,aAAA,GAAI,EAAE,CAAC,CAACD,IAAI,CAACG,GAAG,IAAIA,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,CAAC;AAAA,QAAA,CAAA,CAAC,EAAE;AACpHd,UAAAA,MAAM,CAACvD,MAAM,CAACsE,OAAO,GAAG,IAAI;AAC5B,UAAA,OAAOf,MAAM,CAACvD,MAAM,CAAC+D,MAAM;AAC7B,QAAA;;AAEA;QACA,IAAI,CAACH,iBAAiB,CAACW,iBAAiB,CAAChB,MAAM,CAACvD,MAAM,CAAC2D,SAAS,CAAC,EAAE;AACjE,UAAA,OAAOJ,MAAM,CAACvD,MAAM,CAACsE,OAAO;AAC5B,UAAA,OAAOf,MAAM,CAACvD,MAAM,CAAC+D,MAAM;AAC7B,QAAA;;AAEA;AACA,QAAA,IAAI3B,gBAAgB,EAAE;UACpB,IAAMoC,YAAY,GAAGpC,gBAAgB,CAACzB,GAAG,CAAC4C,MAAM,CAACpD,KAAK,CAAC;UACvD,IAAI,CAACqE,YAAY,EAAE;AAAE;AACnB,YAAA,OAAOjB,MAAM,CAACvD,MAAM,CAACsE,OAAO;AAC5B,YAAA,OAAOf,MAAM,CAACvD,MAAM,CAAC+D,MAAM;AAC7B,UAAA,CAAC,MAAM;AACL;YACA,IAAMU,eAAe,GAAGD,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAY,CAAEb,SAAS;YAC/C,IAAIc,eAAe,IAAI,CAACb,iBAAiB,CAACW,iBAAiB,CAACE,eAAe,CAAC,EAAE;AAC5ElB,cAAAA,MAAM,CAACvD,MAAM,CAACsE,OAAO,GAAG,IAAI;AAC5B,cAAA,OAAOf,MAAM,CAACvD,MAAM,CAAC+D,MAAM;AAC7B,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA,CAAC,MAAM;MACL,IAAIR,MAAM,CAACvD,MAAM,CAACsE,OAAO,IAAIf,MAAM,CAACvD,MAAM,CAAC+D,MAAM,EAAE;AACjD,QAAA,OAAOR,MAAM,CAACvD,MAAM,CAACsE,OAAO;AAC5B,QAAA,OAAOf,MAAM,CAACvD,MAAM,CAAC+D,MAAM;AAC7B,MAAA;AACF,IAAA;AACF,EAAA;;AAEA;EACA,IAAI,CAAA,CAAAzB,eAAA,GAAAiB,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAsC,eAAA,KAAA,MAAA,IAAA,CAAAA,eAAA,GAAbA,eAAA,CAAeoC,KAAK,cAAApC,eAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,eAAA,CAAsBqC,OAAO,MAAK,UAAU,EAAE;AAChDpB,IAAAA,MAAM,CAACvD,MAAM,CAAC0E,KAAK,CAACE,QAAQ,GAAG,OAAO;AACtC,IAAA,OAAOrB,MAAM,CAACvD,MAAM,CAAC0E,KAAK,CAACC,OAAO;AACpC,EAAA;;AAEA;AACA,EAAA,IAAI,CAAApC,eAAA,GAAAgB,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAuC,eAAA,KAAA,MAAA,IAAbA,eAAA,CAAemC,KAAK,IAAInB,MAAM,CAACvD,MAAM,CAAC0E,KAAK,CAACC,OAAO,KAAK,MAAM,IAAI,CAACpB,MAAM,CAACvD,MAAM,CAAC0E,KAAK,CAACG,aAAa,EAAE;AACxGtB,IAAAA,MAAM,CAACvD,MAAM,CAAC0E,KAAK,CAACG,aAAa,GAAG,KAAK;AAC3C,EAAA;;AAEA;EACA,IAAItB,MAAM,CAACxD,IAAI,KAAK,UAAU,IAAIsD,KAAK,CAACC,OAAO,CAAA,CAAAd,eAAA,GAACe,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAwC,eAAA,uBAAbA,eAAA,CAAe5B,OAAO,CAAC,EAAE;IACvE2C,MAAM,CAACvD,MAAM,CAACY,OAAO,CAAC3B,OAAO,CAAEsC,MAAM,IAAK;AAAA,MAAA,IAAAuD,aAAA,EAAAC,cAAA,EAAAC,cAAA;AAExC;AACA,MAAA,IAAI,EAACzD,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAET,IAAI,CAAA,IAAI/B,MAAM,CAACC,IAAI,CAACuC,MAAM,CAAC,CAAC/B,MAAM,KAAK,CAAC,EAAE;QACrD,IAAMyF,QAAQ,GAAGlG,MAAM,CAACC,IAAI,CAACuC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,IAAMmD,KAAK,GAAGnD,MAAM,CAAC0D,QAAQ,CAAC;QAC9B,OAAO1D,MAAM,CAAC0D,QAAQ,CAAC;QACvB1D,MAAM,CAACT,IAAI,GAAGmE,QAAQ;QACtB1D,MAAM,CAACmD,KAAK,GAAGA,KAAK;AACtB,MAAA;MAEA,IAAInD,MAAM,CAAC2D,MAAM,EAAE;QACjB3D,MAAM,CAACT,IAAI,GAAA,UAAA,CAAAM,MAAA,CAAcG,MAAM,CAACT,IAAI,CAAE;QACtC,OAAOS,MAAM,CAAC2D,MAAM;AACtB,MAAA;;AAEA;AACA,MAAA,IAAI,CAAA3D,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAuD,aAAA,GAANvD,MAAM,CAAEmD,KAAK,MAAA,IAAA,IAAAI,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAeH,OAAO,MAAK,UAAU,EAAE;AACzCpD,QAAAA,MAAM,CAACmD,KAAK,CAACE,QAAQ,GAAG,OAAO;AAC/B,QAAA,OAAOrD,MAAM,CAACmD,KAAK,CAACC,OAAO;AAC7B,MAAA;;AAEA;AACA,MAAA,IAAIpD,MAAM,CAACmD,KAAK,IAAI,CAAA,CAAAK,cAAA,GAAAxD,MAAM,CAACmD,KAAK,MAAA,IAAA,IAAAK,cAAA,uBAAZA,cAAA,CAAcJ,OAAO,MAAK,MAAM,IAAI,EAAA,CAAAK,cAAA,GAACzD,MAAM,CAACmD,KAAK,MAAA,IAAA,IAAAM,cAAA,KAAA,MAAA,IAAZA,cAAA,CAAcH,aAAa,CAAA,EAAE;AACpFtD,QAAAA,MAAM,CAACmD,KAAK,CAACG,aAAa,GAAG,KAAK;AACpC,MAAA;AAEA,MAAA,IAAItD,MAAM,KAAA,IAAA,IAANA,MAAM,eAANA,MAAM,CAAE4C,KAAK,EAAE;AACjB;QACAgB,0BAA0B,CAAC5D,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAE4C,KAAK,CAAC;AAC3C,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;;AAEA;AACA,EAAA,IAAIZ,MAAM,CAACxD,IAAI,KAAK,UAAU,EAAE;AAAA,IAAA,IAAAqF,eAAA,EAAAC,eAAA,EAAAC,eAAA,EAAAC,eAAA;IAC9B,IAAI,CAAA,CAAAH,eAAA,GAAA7B,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAoF,eAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,eAAA,CAAeT,OAAO,MAAK,MAAM,IAAI,EAAA,CAAAU,eAAA,GAAC9B,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAqF,eAAA,KAAA,MAAA,IAAbA,eAAA,CAAeR,aAAa,CAAA,EAAE;AACtEtB,MAAAA,MAAM,CAACvD,MAAM,CAAC6E,aAAa,GAAG,QAAQ;AACxC,IAAA;IACA,IAAI,CAAAS,eAAA,GAAA/B,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAsF,eAAA,KAAA,MAAA,IAAbA,eAAA,CAAeT,aAAa,IAAI,EAAA,CAAAU,eAAA,GAAChC,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAuF,eAAA,KAAA,MAAA,IAAbA,eAAA,CAAeZ,OAAO,CAAA,EAAE;AAC3DpB,MAAAA,MAAM,CAACvD,MAAM,CAAC2E,OAAO,GAAG,MAAM;AAChC,IAAA;AACF,EAAA;;AAEA;AACA,EAAA,IAAIpB,MAAM,CAACxD,IAAI,KAAK,UAAU,KAAA0C,eAAA,GAAIc,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAyC,eAAA,eAAbA,eAAA,CAAe0B,KAAK,EAAE;AAAA,IAAA,IAAAqB,gBAAA;AACtD;AACAL,IAAAA,0BAA0B,CAAA,CAAAK,gBAAA,GAACjC,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAAwF,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,gBAAA,CAAerB,KAAK,CAAC;AAClD,EAAA;AACA,EAAA,IAAIZ,MAAM,CAACxD,IAAI,KAAK,UAAU,KAAA2C,gBAAA,GAAIa,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAA0C,gBAAA,eAAbA,gBAAA,CAAe+C,MAAM,EAAE;IAAA,IAAAC,gBAAA,EAAAC,gBAAA;AACvD;AACAC,IAAAA,uBAAuB,CAAA,CAAAF,gBAAA,GAACnC,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAA0F,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,gBAAA,CAAeD,MAAM,CAAC;;AAE9C;IACA,IAAI,CAAA,CAAAE,gBAAA,GAAApC,MAAM,CAACvD,MAAM,MAAA,IAAA,IAAA2F,gBAAA,KAAA,MAAA,IAAA,CAAAA,gBAAA,GAAbA,gBAAA,CAAeF,MAAM,cAAAE,gBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,gBAAA,CAAuBE,KAAK,MAAK,MAAM,EAAE;AAC3CtC,MAAAA,MAAM,CAACvD,MAAM,CAACyF,MAAM,CAACI,KAAK,GAAG,MAAM;AACrC,IAAA;AACF,EAAA;;AAEA;AACA,EAAA,IAAIzD,gBAAgB,IAAImB,MAAM,CAACxD,IAAI,KAAK,UAAU,EAAE;IAClDqC,gBAAgB,CAAClC,GAAG,CAACqD,MAAM,CAACvD,MAAM,CAACG,KAAK,EAAE4C,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC+C,SAAS,CAACvC,MAAM,CAACvD,MAAM,CAAC,CAAyB,CAAC;AAC9G,EAAA;AAEA,EAAA,OAAOuD,MAAM;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA,SAAS4B,0BAA0BA,CAACY,MAAW,EAAQ;AAAA,EAAA,IAAAC,qBAAA;AACrD;AACA,EAAA,IACED,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAEE,eAAe,IACvB,CAAAF,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAC,qBAAA,GAAND,MAAM,CAAEE,eAAe,MAAA,IAAA,IAAAD,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAvBA,qBAAA,CAAyBE,OAAO,CAAC,UAAU,CAAC,IAAG,EAAE,EACjD;IACA,IAAMC,UAAU,GACd,0FAA0F;IAC5F,IAAMC,UAAU,GAAGL,MAAM,CAACE,eAAe,CAACI,KAAK,CAACF,UAAU,CAAC;AAE3D,IAAA,IAAIC,UAAU,IAAI,CAACL,MAAM,CAACO,eAAe,EAAE;AACzCP,MAAAA,MAAM,CAACO,eAAe,GAAGF,UAAU,CAAC,CAAC,CAAC;AACxC,IAAA;IAEA,OAAOL,MAAM,CAACE,eAAe;AAC/B,EAAA;;AAEA;EACA,IAAIF,MAAM,CAACE,eAAe,IAAI,CAACF,MAAM,CAACO,eAAe,EAAE;AACrDP,IAAAA,MAAM,CAACE,eAAe,GAAGF,MAAM,CAACE,eAAe;IAC/CF,MAAM,CAACO,eAAe,GAAG,MAAM;AACjC,EAAA;;AAEA;AACA,EAAA,IAAI,CAACP,MAAM,CAACQ,UAAU,EAAE;AACtB,IAAA;AACF,EAAA;AAEA,EAAA,IAAMA,UAAU,GAAGR,MAAM,CAACQ,UAAU,CAACC,QAAQ,EAAE,CAACC,IAAI,EAAE;;AAEtD;EACA,OAAOV,MAAM,CAACQ,UAAU;;AAExB;AACA,EAAA,IAAIA,UAAU,KAAK,aAAa,IAAIA,UAAU,KAAK,MAAM,EAAE;IACzDR,MAAM,CAACE,eAAe,GAAG,aAAa;IACtCF,MAAM,CAACO,eAAe,GAAG,MAAM;AAC/B,IAAA;AACF,EAAA;;AAEA;AACA,EAAA,IAAMI,gBAAgB,GAAGC,sBAAsB,CAACJ,UAAU,CAAC;EAE3D,IAAIG,gBAAgB,CAACE,SAAS,IAAI,CAACb,MAAM,CAACO,eAAe,EAAE;IACzDP,MAAM,CAACE,eAAe,GAAG,aAAa;IACtCF,MAAM,CAACO,eAAe,GAAGI,gBAAgB,CAACG,MAAM,CAAClF,IAAI,CAAC,IAAI,CAAC;;AAE3D;IACA,IAAI+E,gBAAgB,CAAC9B,QAAQ,IAAI,CAACmB,MAAM,CAACe,kBAAkB,EAAE;AAC3Df,MAAAA,MAAM,CAACe,kBAAkB,GAAGJ,gBAAgB,CAAC9B,QAAQ;AACvD,IAAA;IACA,IAAI8B,gBAAgB,CAACK,IAAI,IAAI,CAAChB,MAAM,CAACiB,cAAc,EAAE;AACnDjB,MAAAA,MAAM,CAACiB,cAAc,GAAGN,gBAAgB,CAACK,IAAI;AAC/C,IAAA;AAEA,IAAA;AACF,EAAA;;AAEA;EACA,IAAIL,gBAAgB,CAACO,KAAK,IAAI,CAAClB,MAAM,CAACE,eAAe,EAAE;AACrDF,IAAAA,MAAM,CAACE,eAAe,GAAGS,gBAAgB,CAACO,KAAK;AAC/C,IAAA,IAAI,CAAClB,MAAM,CAACO,eAAe,EAAE;MAC3BP,MAAM,CAACO,eAAe,GAAG,MAAM;AACjC,IAAA;AACA,IAAA;AACF,EAAA;;AAEA;EACA,IAAIP,MAAM,CAACO,eAAe,IAAI,CAACP,MAAM,CAACE,eAAe,EAAE;IACrDF,MAAM,CAACE,eAAe,GAAG,aAAa;AACxC,EAAA;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASU,sBAAsBA,CAACJ,UAAkB,EAAE;AAClD,EAAA,IAAMzH,MAAM,GAAG;AACb+H,IAAAA,MAAM,EAAE,EAAc;AACtBI,IAAAA,KAAK,EAAE,EAAE;AACTrC,IAAAA,QAAQ,EAAE,EAAE;AACZmC,IAAAA,IAAI,EAAE,EAAE;AACRH,IAAAA,SAAS,EAAE;GACZ;;AAED;AACA,EAAA,IAAMC,MAAM,GAAGK,uBAAuB,CAACX,UAAU,CAAC;AAElD,EAAA,IAAIM,MAAM,CAACrH,MAAM,GAAG,CAAC,EAAE;IACrBV,MAAM,CAAC8H,SAAS,GAAG,IAAI;IACvB9H,MAAM,CAAC+H,MAAM,GAAGA,MAAM;;AAEtB;AACA,IAAA,IAAMM,gBAAgB,GAAGC,sBAAsB,CAACb,UAAU,EAAEM,MAAM,CAAC;AACnE/H,IAAAA,MAAM,CAAC8F,QAAQ,GAAGuC,gBAAgB,CAACvC,QAAQ;AAC3C9F,IAAAA,MAAM,CAACiI,IAAI,GAAGI,gBAAgB,CAACJ,IAAI;AACrC,EAAA;;AAEA;AACA,EAAA,IAAME,KAAK,GAAGI,sBAAsB,CAACd,UAAU,EAAEM,MAAM,CAAC;AACxD,EAAA,IAAII,KAAK,EAAE;IACTnI,MAAM,CAACmI,KAAK,GAAGA,KAAK;AACtB,EAAA;AAEA,EAAA,OAAOnI,MAAM;AACf;;AAEA;AACA;AACA;AACA,SAASoI,uBAAuBA,CAACX,UAAkB,EAAY;EAC7D,IAAMM,MAAgB,GAAG,EAAE;EAC3B,IAAIS,SAAS,GAAGf,UAAU;AAE1B,EAAA,OAAOe,SAAS,CAAC9H,MAAM,GAAG,CAAC,EAAE;AAC3B;AACA,IAAA,IAAM+H,QAAQ,GAAGD,SAAS,CAACjB,KAAK,CAAC,UAAU,CAAC;AAC5C,IAAA,IAAMmB,aAAa,GAAGF,SAAS,CAACjB,KAAK,CAAC,uDAAuD,CAAC;IAE9F,IAAIoB,SAAS,GAAG,IAAI;IAGpB,IAAIF,QAAQ,IAAIC,aAAa,EAAE;AAC7B;AACA,MAAA,IAAID,QAAQ,CAACG,KAAK,GAAIF,aAAa,CAACE,KAAM,EAAE;AAC1CD,QAAAA,SAAS,GAAGF,QAAQ;AAEtB,MAAA,CAAC,MAAM;AACLE,QAAAA,SAAS,GAAGD,aAAa;AAE3B,MAAA;IACF,CAAC,MAAM,IAAID,QAAQ,EAAE;AACnBE,MAAAA,SAAS,GAAGF,QAAQ;IAEtB,CAAC,MAAM,IAAIC,aAAa,EAAE;AACxBC,MAAAA,SAAS,GAAGD,aAAa;AAE3B,IAAA;IAEA,IAAI,CAACC,SAAS,EAAE;AACd,MAAA;AACF,IAAA;AAEA,IAAA,IAAME,UAAU,GAAGF,SAAS,CAACC,KAAM;IACnC,IAAME,aAAa,GAAGN,SAAS,CAACpB,OAAO,CAAC,GAAG,EAAEyB,UAAU,CAAC,GAAG,CAAC;;AAE5D;IACA,IAAIE,UAAU,GAAG,CAAC;IAClB,IAAIC,QAAQ,GAAGF,aAAa;IAE5B,OAAOE,QAAQ,GAAGR,SAAS,CAAC9H,MAAM,IAAIqI,UAAU,GAAG,CAAC,EAAE;AACpD,MAAA,IAAIP,SAAS,CAACQ,QAAQ,CAAC,KAAK,GAAG,EAAE;AAC/BD,QAAAA,UAAU,EAAE;MACd,CAAC,MAAM,IAAIP,SAAS,CAACQ,QAAQ,CAAC,KAAK,GAAG,EAAE;AACtCD,QAAAA,UAAU,EAAE;AACd,MAAA;AACAC,MAAAA,QAAQ,EAAE;AACZ,IAAA;IAEA,IAAID,UAAU,KAAK,CAAC,EAAE;AACpB;MACA,IAAME,YAAY,GAAGT,SAAS,CAACU,SAAS,CAACL,UAAU,EAAEG,QAAQ,CAAC;AAC9DjB,MAAAA,MAAM,CAAC3F,IAAI,CAAC6G,YAAY,CAAC;;AAEzB;AACAT,MAAAA,SAAS,GAAGA,SAAS,CAACU,SAAS,CAACF,QAAQ,CAAC;AAC3C,IAAA,CAAC,MAAM;AACL;MACAR,SAAS,GAAGA,SAAS,CAACU,SAAS,CAACL,UAAU,GAAG,CAAC,CAAC;AACjD,IAAA;AACF,EAAA;AAEA,EAAA,OAAOd,MAAM;AACf;;AAEA;AACA;AACA;AACA,SAASO,sBAAsBA,CAACb,UAAkB,EAAEM,MAAgB,EAAsC;EACxG,IAAIoB,eAAe,GAAG1B,UAAU;;AAEhC;AACAM,EAAAA,MAAM,CAAC5H,OAAO,CAACiJ,KAAK,IAAI;IACtBD,eAAe,GAAGA,eAAe,CAACE,OAAO,CAACD,KAAK,EAAE,EAAE,CAAC;AACtD,EAAA,CAAC,CAAC;;AAEF;AACAD,EAAAA,eAAe,GAAGA,eAAe,CAACE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC1B,IAAI,EAAE;;AAEjG;AACA,EAAA,IAAM2B,iBAAiB,GAAGH,eAAe,CAAC5B,KAAK,CAAC,uBAAuB,CAAC;EAExE,IAAIzB,QAAQ,GAAG,EAAE;EACjB,IAAImC,IAAI,GAAG,EAAE;AAEb,EAAA,IAAIqB,iBAAiB,EAAE;IAAA,IAAAC,mBAAA,EAAAC,oBAAA;AACrB,IAAA,IAAMC,YAAY,GAAA,CAAAF,mBAAA,GAAGD,iBAAiB,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAC,mBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,mBAAA,CAAsB5B,IAAI,EAAE;AACjD,IAAA,IAAM+B,QAAQ,GAAA,CAAAF,oBAAA,GAAGF,iBAAiB,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAE,oBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,oBAAA,CAAsB7B,IAAI,EAAE;AAE7C,IAAA,IAAI8B,YAAY,IAAIE,yBAAyB,CAACF,YAAY,CAAC,EAAE;AAC3D3D,MAAAA,QAAQ,GAAG2D,YAAY;AACzB,IAAA;AAEA,IAAA,IAAIC,QAAQ,IAAIE,qBAAqB,CAACF,QAAQ,CAAC,EAAE;AAC/CzB,MAAAA,IAAI,GAAGyB,QAAQ;AACjB,IAAA;AACF,EAAA,CAAC,MAAM;AACL;AACA,IAAA,IAAMG,KAAK,GAAGV,eAAe,CAAClH,KAAK,CAAC,KAAK,CAAC,CAAC6H,MAAM,CAACC,IAAI,IAAIA,IAAI,CAACrJ,MAAM,GAAG,CAAC,CAAC;AAE1E,IAAA,KAAK,IAAMqJ,IAAI,IAAIF,KAAK,EAAE;AACxB,MAAA,IAAI,CAAC/D,QAAQ,IAAI6D,yBAAyB,CAACI,IAAI,CAAC,EAAE;AAChDjE,QAAAA,QAAQ,GAAGiE,IAAI;MACjB,CAAC,MAAM,IAAI,CAAC9B,IAAI,IAAI2B,qBAAqB,CAACG,IAAI,CAAC,EAAE;AAC/C9B,QAAAA,IAAI,GAAG8B,IAAI;AACb,MAAA;AACF,IAAA;AACF,EAAA;EAEA,OAAO;IAAEjE,QAAQ;AAAEmC,IAAAA;GAAM;AAC3B;;AAEA;AACA;AACA;AACA,SAASM,sBAAsBA,CAACd,UAAkB,EAAEM,MAAgB,EAAU;EAC5E,IAAIoB,eAAe,GAAG1B,UAAU;;AAEhC;AACAM,EAAAA,MAAM,CAAC5H,OAAO,CAACiJ,KAAK,IAAI;IACtBD,eAAe,GAAGA,eAAe,CAACE,OAAO,CAACD,KAAK,EAAE,EAAE,CAAC;AACtD,EAAA,CAAC,CAAC;;AAEF;EACAD,eAAe,GAAGA,eAAe,CAACE,OAAO,CAAC,kDAAkD,EAAE,GAAG,CAAC;EAClGF,eAAe,GAAGA,eAAe,CAACE,OAAO,CAAC,6CAA6C,EAAE,GAAG,CAAC;AAC7FF,EAAAA,eAAe,GAAGA,eAAe,CAACE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC1B,IAAI,EAAE;;AAEjG;EACA,IAAMqC,UAAU,GAAG,qFAAqF;AACxG,EAAA,IAAMC,UAAU,GAAGd,eAAe,CAAC5B,KAAK,CAACyC,UAAU,CAAC;AAEpD,EAAA,OAAOC,UAAU,GAAGA,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE;AACxC;;AAEA;AACA;AACA;AACA,SAASN,yBAAyBA,CAAC/D,KAAa,EAAW;AACzD,EAAA,IAAMsE,gBAAgB,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;AACrE,EAAA,IAAML,KAAK,GAAGjE,KAAK,CAAC3D,KAAK,CAAC,KAAK,CAAC;AAEhC,EAAA,OAAO4H,KAAK,CAACM,KAAK,CAACJ,IAAI,IACrBG,gBAAgB,CAACE,QAAQ,CAACL,IAAI,CAAC,IAC/B,QAAQ,CAACM,IAAI,CAACN,IAAI,CAAC,IACnB,SAAS,CAACM,IAAI,CAACN,IAAI,CAAC,IACpB,8BAA8B,CAACM,IAAI,CAACN,IAAI,CAC1C,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASH,qBAAqBA,CAAChE,KAAa,EAAW;EACrD,IAAM0E,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;AAEjD,EAAA,IAAIA,YAAY,CAACF,QAAQ,CAACxE,KAAK,CAAC,EAAE;AAChC,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,IAAMiE,KAAK,GAAGjE,KAAK,CAAC3D,KAAK,CAAC,KAAK,CAAC;AAChC,EAAA,OAAO4H,KAAK,CAACM,KAAK,CAACJ,IAAI,IACrBA,IAAI,KAAK,MAAM,IACf,QAAQ,CAACM,IAAI,CAACN,IAAI,CAAC,IACnB,SAAS,CAACM,IAAI,CAACN,IAAI,CAAC,IACpB,8BAA8B,CAACM,IAAI,CAACN,IAAI,CAC1C,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASjD,uBAAuBA,CAACG,MAAW,EAAQ;AAClD;AACA,EAAA,IAAI,CAACA,MAAM,CAACsD,MAAM,EAAE;AAClB,IAAA;AACF,EAAA;AAEA,EAAA,IAAMA,MAAM,GAAGtD,MAAM,CAACsD,MAAM,CAAC7C,QAAQ,EAAE,CAACC,IAAI,EAAE;EAC9C,IAAM6C,MAAM,GAAGD,MAAM,CAACtI,KAAK,CAAC,KAAK,CAAC,CAAC;;AAEnC;EACA,QAAQuI,MAAM,CAAC9J,MAAM;AACnB,IAAA,KAAK,CAAC;AAAE;AACNuG,MAAAA,MAAM,CAACwD,SAAS,GAAGD,MAAM,CAAC,CAAC,CAAC;AAC5BvD,MAAAA,MAAM,CAACyD,WAAW,GAAGF,MAAM,CAAC,CAAC,CAAC;AAC9BvD,MAAAA,MAAM,CAAC0D,YAAY,GAAGH,MAAM,CAAC,CAAC,CAAC;AAC/BvD,MAAAA,MAAM,CAAC2D,UAAU,GAAGJ,MAAM,CAAC,CAAC,CAAC;AAC7B,MAAA;AACF,IAAA,KAAK,CAAC;AAAE;AACNvD,MAAAA,MAAM,CAACwD,SAAS,GAAGD,MAAM,CAAC,CAAC,CAAC;AAC5BvD,MAAAA,MAAM,CAACyD,WAAW,GAAGF,MAAM,CAAC,CAAC,CAAC;AAC9BvD,MAAAA,MAAM,CAAC0D,YAAY,GAAGH,MAAM,CAAC,CAAC,CAAC;AAC/BvD,MAAAA,MAAM,CAAC2D,UAAU,GAAGJ,MAAM,CAAC,CAAC,CAAC;AAC7B,MAAA;AACF,IAAA,KAAK,CAAC;AAAE;AACNvD,MAAAA,MAAM,CAACwD,SAAS,GAAGD,MAAM,CAAC,CAAC,CAAC;AAC5BvD,MAAAA,MAAM,CAACyD,WAAW,GAAGF,MAAM,CAAC,CAAC,CAAC;AAC9BvD,MAAAA,MAAM,CAAC0D,YAAY,GAAGH,MAAM,CAAC,CAAC,CAAC;AAC/BvD,MAAAA,MAAM,CAAC2D,UAAU,GAAGJ,MAAM,CAAC,CAAC,CAAC;AAC7B,MAAA;AACF,IAAA,KAAK,CAAC;AAAE;AACNvD,MAAAA,MAAM,CAACwD,SAAS,GAAGD,MAAM,CAAC,CAAC,CAAC;AAC5BvD,MAAAA,MAAM,CAACyD,WAAW,GAAGF,MAAM,CAAC,CAAC,CAAC;AAC9BvD,MAAAA,MAAM,CAAC0D,YAAY,GAAGH,MAAM,CAAC,CAAC,CAAC;AAC/BvD,MAAAA,MAAM,CAAC2D,UAAU,GAAGJ,MAAM,CAAC,CAAC,CAAC;AAC7B,MAAA;AACJ;;AAEA;EACA,OAAOvD,MAAM,CAACsD,MAAM;AACtB;;AAEA;AACA;AACA;AACA,SAASM,gBAAgBA,CACvBC,UAAiB,EACjBC,YAAiB,EACjBC,cAA2B,EAC3BC,WAAmB,EACnB;AACA,EAAA,IAAI,CAACF,YAAY,CAAC1J,KAAK,EAAE;AACzByJ,EAAAA,UAAU,CAAC1I,IAAI,CAAC2I,YAAY,CAAC;AAC7B,EAAA,IAAIA,YAAY,CAAC9J,IAAI,KAAK,UAAU,IAAI8J,YAAY,CAAC7J,MAAM,CAAC0H,KAAK,KAAKjI,SAAS,EAAE;IAC/EmK,UAAU,CAAC1I,IAAI,CAAC;AACdf,MAAAA,KAAK,EAAE0J,YAAY,CAAC7J,MAAM,CAACG,KAAK;AAChCM,MAAAA,MAAM,EAAE,OAAO;AACfV,MAAAA,IAAI,EAAE,MAAM;AACZC,MAAAA,MAAM,EAAE;AACN8B,QAAAA,EAAE,EAAE;UACF3B,KAAK,EAAE0J,YAAY,CAAC1J,KAAK;UACzB4B,MAAM,EAAE8H,YAAY,CAACpJ,MAAM;AAC3BiH,UAAAA,KAAK,EAAEmC,YAAY,CAAC7J,MAAM,CAAC0H;AAC7B;AACF;AACF,KAAC,CAAC;AACJ,EAAA;AACAoC,EAAAA,cAAc,CAACE,GAAG,CAACD,WAAW,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,mBAAmBA,CAAAC,KAAA,EAAyD;EAAA,IAAxD;AAAEvH,IAAAA;AAAmD,GAAC,GAAAuH,KAAA;AACxF,EAAA,IAAMJ,cAAc,GAAG,IAAIK,GAAG,EAAU;AACxC,EAAA,IAAM/H,gBAAgB,GAAG,IAAIzC,GAAG,EAAgC;AAEhE,EAAA,OAAO,SAASyK,YAAYA,CAACC,IAAY,EAAEC,KAAe,EAAE;IAC1D,IAAMV,UAAiB,GAAG,EAAE;IAC5B,IAAMW,KAAK,GAAGF,IAAI,CAACtJ,KAAK,CAAC,IAAI,CAAC,CAAC6H,MAAM,CAAC4B,IAAI,IAAIA,IAAI,CAAC/D,IAAI,EAAE,KAAK,EAAE,CAAC;IAEjE,IAAMgE,cAAc,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACzC,IAAMC,QAAQ,GAAGJ,KAAK,CAACA,KAAK,CAAC/K,MAAM,GAAG,CAAC,CAAC;AACxC,IAAA,IAAMoL,gBAAgB,GAAGL,KAAK,CAAC/K,MAAM,KAAK,CAAC,IAAI6K,IAAI,CAACQ,QAAQ,CAAC,IAAI,CAAC,IAAIP,KAAK,KAAK,IAAI;AAEpF,IAAA,KAAK,IAAME,IAAI,IAAIC,cAAc,EAAE;AACjC,MAAA,IAAMV,WAAW,GAAGS,IAAI,CAAC/D,IAAI,EAAE;MAC/B,IAAI,CAACsD,WAAW,IAAID,cAAc,CAACgB,GAAG,CAACf,WAAW,CAAC,EAAE;MACrD,IAAI;AACF,QAAA,IAAMF,YAAY,GAAG3H,YAAY,CAAC6H,WAAW,EAAE3H,gBAAgB,EAAE;AAAEO,UAAAA;AAAkB,SAAC,CAAC;QACvFgH,gBAAgB,CAACC,UAAU,EAAEC,YAAY,EAAEC,cAAc,EAAEC,WAAW,CAAC;MACzE,CAAC,CAAC,OAAAgB,OAAA,EAAM;AACNjB,QAAAA,cAAc,CAACE,GAAG,CAACD,WAAW,CAAC;AACjC,MAAA;AACF,IAAA;IAEA,IAAIY,QAAQ,IAAIA,QAAQ,CAAClE,IAAI,EAAE,IAAImE,gBAAgB,IAAI,CAACd,cAAc,CAACgB,GAAG,CAACH,QAAQ,CAAClE,IAAI,EAAE,CAAC,EAAE;AAC3F,MAAA,IAAMuE,eAAe,GAAGL,QAAQ,CAAClE,IAAI,EAAE;MACvC,IAAI;AACF,QAAA,IAAMoD,aAAY,GAAG3H,YAAY,CAAC8I,eAAe,EAAE5I,gBAAgB,EAAE;AAAEO,UAAAA;AAAkB,SAAC,CAAC;QAC3FgH,gBAAgB,CAACC,UAAU,EAAEC,aAAY,EAAEC,cAAc,EAAEkB,eAAe,CAAC;MAC7E,CAAC,CAAC,OAAAC,QAAA,EAAM;AACNnB,QAAAA,cAAc,CAACE,GAAG,CAACgB,eAAe,CAAC;AACrC,MAAA;AACF,IAAA;AAEA,IAAA,OAAOpB,UAAU;EACnB,CAAC;AACH;AAEO,SAASsB,eAAeA,CAACC,GAAW,EAAE;AAC3C,EAAA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;AAC3B,IAAA,OAAO,EAAE;AACX,EAAA;EACA,IAAMC,cAAc,GAAG,6CAA6C;EACpE,IAAIC,OAAO,GAAGF,GAAG,CAAChD,OAAO,CAACiD,cAAc,EAAE,EAAE,CAAC;;AAE7C;EACAC,OAAO,GAAGA,OAAO,CACdlD,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;GACxB1B,IAAI,EAAE;AAET,EAAA,OAAO4E,OAAO;AAChB;AAEO,SAASC,aAAaA,CAACC,KAAa,EAAO;AAChD,EAAA,IAAIC,UAAU;EACd,IAAI;AACF,IAAA,OAAOzI,IAAI,CAACC,KAAK,CAACuI,KAAK,CAAC;EAC1B,CAAC,CAAC,OAAOtI,KAAK,EAAE;AACduI,IAAAA,UAAU,GAAGvI,KAAK;IAClB,IAAI;AACF,MAAA,IAAMwI,YAAY,GAAGtI,UAAU,CAACoI,KAAK,CAAC;AACtC,MAAA,OAAOxI,IAAI,CAACC,KAAK,CAACyI,YAAY,CAAC;IACjC,CAAC,CAAC,OAAOC,WAAW,EAAE;AACpB;AACA,MAAA,MAAMF,UAAU;AAClB,IAAA;AACF,EAAA;AACF;;AAEA;;AAQA;;AAKA;AACO,IAAMG,iBAAiB,GAAIC,QAAmC,IAAK;EACxE,IAAMC,KAA4B,GAAG,EAAE;EACvCD,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAE3M,OAAO,CAAE6M,IAAI,IAAK;IAC1B,IAAI,SAAS,IAAIA,IAAI,EAAE;AACrBD,MAAAA,KAAK,CAAC3K,IAAI,CAAC,GAAG4K,IAAI,CAACC,OAAO,CAAC;AAC7B,IAAA,CAAC,MAAM;AACLF,MAAAA,KAAK,CAAC3K,IAAI,CAAC4K,IAAI,CAAC;AAClB,IAAA;AACF,EAAA,CAAC,CAAC;AACF,EAAA,OAAOD,KAAK;AACd;AAEA,IAAMG,eAAe,GACnB7J,OAAe,IACZ;AACH,EAAA,IAAIS,MAAM;EACV,IAAI;AACF;IACA,IAAMC,eAAe,GAAGV,OAAO,CAACW,UAAU,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAC7EF,IAAAA,MAAM,GAAGG,IAAI,CAACC,KAAK,CAACH,eAAe,CAAC;EACtC,CAAC,CAAC,OAAOI,KAAK,EAAE;IACd,IAAI;AACF,MAAA,IAAMC,cAAc,GAAGC,UAAU,CAAChB,OAAO,CAAC;AAC1CS,MAAAA,MAAM,GAAGG,IAAI,CAACC,KAAK,CAACE,cAAc,CAAC;AACnCE,MAAAA,OAAO,CAAC6I,GAAG,CAAC,UAAU,EAAErJ,MAAM,CAAC;IACjC,CAAC,CAAC,OAAOK,KAAK,EAAE;AACdG,MAAAA,OAAO,CAACH,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;AAC7C,IAAA;AACF,EAAA;AAEA,EAAA,IAAI,CAACI,KAAK,CAACC,OAAO,CAACV,MAAM,CAAC,EAAE;AAC1B,IAAA,OAAOA,MAAM;AACf,EAAA;AAEA,EAAA,OAAOA,MAAM;AACf,CAAC;AAEM,SAASsJ,sBAAsBA,GAAG;AACvC,EAAA,IAAMpC,cAAc,GAAG,IAAIK,GAAG,EAAU;AAExC,EAAA,OAAO,SAASC,YAAYA,CAACC,IAAY,EAAE;IACzC,IAAMT,UAAU,GAAG,EAAE;IACrB,IAAMW,KAAK,GAAGF,IAAI,CAACtJ,KAAK,CAAC,IAAI,CAAC,CAAC6H,MAAM,CAAC4B,IAAI,IAAIA,IAAI,CAAC/D,IAAI,EAAE,KAAK,EAAE,CAAC;;AAEjE;IACA,IAAMgE,cAAc,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACzC,IAAMC,QAAQ,GAAGJ,KAAK,CAACA,KAAK,CAAC/K,MAAM,GAAG,CAAC,CAAC;;AAExC;AACA,IAAA,KAAK,IAAMgL,IAAI,IAAIC,cAAc,EAAE;AACjC,MAAA,IAAMV,WAAW,GAAGS,IAAI,CAAC/D,IAAI,EAAE;;AAE/B;MACA,IAAI,CAACsD,WAAW,IAAID,cAAc,CAACgB,GAAG,CAACf,WAAW,CAAC,EAAE;AACnD,QAAA;AACF,MAAA;MAEA,IAAI;AACF,QAAA,IAAMF,YAAY,GAAGmC,eAAe,CAACjC,WAAW,CAAC;AACjDH,QAAAA,UAAU,CAAC1I,IAAI,CAAC2I,YAAY,CAAC;AAC7BC,QAAAA,cAAc,CAACE,GAAG,CAACD,WAAW,CAAC;MACjC,CAAC,CAAC,OAAO9G,KAAK,EAAE;AACd;AACA6G,QAAAA,cAAc,CAACE,GAAG,CAACD,WAAW,CAAC,CAAC;AAClC,MAAA;AACF,IAAA;;AAEA;AACA,IAAA,IAAIY,QAAQ,IAAIA,QAAQ,CAAClE,IAAI,EAAE,EAAE;AAC/B,MAAA,IAAMuE,eAAe,GAAGL,QAAQ,CAAClE,IAAI,EAAE;;AAEvC;AACA,MAAA,IAAK4D,IAAI,CAACQ,QAAQ,CAAC,IAAI,CAAC,IAAK,CAACf,cAAc,CAACgB,GAAG,CAACE,eAAe,CAAC,EAAE;QACjE,IAAI;AACF,UAAA,IAAMnB,cAAY,GAAGmC,eAAe,CAAChB,eAAe,CAAC;AACrDpB,UAAAA,UAAU,CAAC1I,IAAI,CAAC2I,cAAY,CAAC;AAC7BC,UAAAA,cAAc,CAACE,GAAG,CAACgB,eAAe,CAAC;QACrC,CAAC,CAAC,OAAO/H,KAAK,EAAE;AACd6G,UAAAA,cAAc,CAACE,GAAG,CAACgB,eAAe,CAAC;AACrC,QAAA;AACF,MAAA;AACF,IAAA;;AAEA;;AAEA,IAAA,OAAOpB,UAAU;EACnB,CAAC;AACH;AAEA,IAAMuC,SAAS,GAAG,gEAAgE;IACrEC,IAAI,GAAG,SAAPA,IAAIA,GAAgB;AAAA,EAAA,IAAZC,GAAG,GAAA9M,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAC3B,EAAA,IAAM+M,MAAM,GAAGH,SAAS,CAAC3M,MAAM;EAC/B,IAAI+M,GAAG,GAAG,EAAE;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,GAAG,EAAEG,CAAC,EAAE,EAAE;AAC7BD,IAAAA,GAAG,IAAIJ,SAAS,CAACM,MAAM,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAGN,MAAM,CAAC,CAAC;AAC5D,EAAA;EACA,OAAO,IAAI,GAAGC,GAAG;AAClB;AAEO,MAAMM,cAAc,CAAC;EAG1BC,WAAWA,CAACC,MAAgB,EAAE;IAAAC,eAAA,CAAA,IAAA,EAAA,UAAA,EAFO,EAAE,CAAA;IAGrC,IAAM;AAAEC,MAAAA;AAAS,KAAC,GAAG,IAAI;AACzBF,IAAAA,MAAM,CAAC9N,OAAO,CAAEkB,KAAK,IAAK;AACxB8M,MAAAA,QAAQ,CAAC9M,KAAK,CAAC,GAAG,CAACA,KAAK,CAAC;AAC3B,IAAA,CAAC,CAAC;AACJ,EAAA;EAEA+M,QAAQA,CAAC/M,KAAa,EAAE;AACtB,IAAA,IAAI,CAAC,IAAI,CAAC8M,QAAQ,CAAC9M,KAAK,CAAC,IAAI,IAAI,CAAC8M,QAAQ,CAAC9M,KAAK,CAAC,CAACX,MAAM,KAAK,CAAC,EAAE;AAC9D,MAAA,IAAM2N,QAAQ,GAAGf,IAAI,EAAE;MACvB,IAAI,CAACa,QAAQ,CAAC9M,KAAK,CAAC,GAAG,CAACgN,QAAQ,CAAC;AACjC,MAAA,OAAOA,QAAQ;AACjB,IAAA;;AAEA;AACA,IAAA,OAAO,IAAI,CAACF,QAAQ,CAAC9M,KAAK,CAAC,CAAC,IAAI,CAAC8M,QAAQ,CAAC9M,KAAK,CAAC,CAACX,MAAM,GAAG,CAAC,CAAC;AAC9D,EAAA;;AAEA;EACA4N,QAAQA,CAACjN,KAAa,EAAU;AAC9B,IAAA,IAAMgN,QAAQ,GAAGf,IAAI,EAAE;AACvB,IAAA,IAAI,CAAC,IAAI,CAACa,QAAQ,CAAC9M,KAAK,CAAC,EAAE;AACzB,MAAA,IAAI,CAAC8M,QAAQ,CAAC9M,KAAK,CAAC,GAAG,EAAE;AAC3B,IAAA;IACA,IAAI,CAAC8M,QAAQ,CAAC9M,KAAK,CAAC,CAACe,IAAI,CAACiM,QAAQ,CAAC;AACnC,IAAA,OAAOA,QAAQ;AACjB,EAAA;AACF;AAEO,MAAME,YAAY,CAAC;EAAAP,WAAAA,GAAA;AAAAE,IAAAA,eAAA,gBACT,EAAE,CAAA;AAAAA,IAAAA,eAAA,yBACK,IAAI,CAAA;AAAA,EAAA;EAE1BhD,GAAGA,CAACsD,SAAc,EAAE;AAClB,IAAA,IAAI,CAACC,KAAK,CAACrM,IAAI,CAACoM,SAAS,CAAC;IAC1B,IAAI,CAACE,GAAG,EAAE;AACZ,EAAA;AAEMA,EAAAA,GAAGA,GAAG;AAAA,IAAA,IAAAC,KAAA,GAAA,IAAA;AAAA,IAAA,OAAAC,iBAAA,CAAA,aAAA;MACV,IAAIC,SAAS,GAAG,KAAK;MACrB,IAAI;QACF,IAAIF,KAAI,CAACG,cAAc,EAAE;AACvB,UAAA;AACF,QAAA;QACA,IAAMN,SAAS,GAAGG,KAAI,CAACF,KAAK,CAACM,KAAK,EAAE;AACpC,QAAA,IAAIP,SAAS,EAAE;AACb,UAAA,IAAMQ,OAAO,GAAGR,SAAS,EAAE;AAC3B,UAAA,IAAIvO,MAAM,CAACgP,SAAS,CAACvH,QAAQ,CAACxF,IAAI,CAAC8M,OAAO,CAAC,KAAK,kBAAkB,EAAE;YAClEL,KAAI,CAACG,cAAc,GAAGE,OAAO;AAC7BH,YAAAA,SAAS,GAAG,IAAI;AAChB,YAAA,MAAMG,OAAO;YACbL,KAAI,CAACG,cAAc,GAAG,IAAI;YAC1BH,KAAI,CAACD,GAAG,EAAE;AACZ,UAAA,CAAC,MAAM;YACLC,KAAI,CAACD,GAAG,EAAE;AACZ,UAAA;AACF,QAAA;MACF,CAAC,CAAC,OAAOQ,CAAC,EAAE;AACV5K,QAAAA,OAAO,CAACH,KAAK,CAAC+K,CAAC,CAAC;AAChB,QAAA,IAAIL,SAAS,EAAE;UACbF,KAAI,CAACG,cAAc,GAAG,IAAI;UAC1BH,KAAI,CAACD,GAAG,EAAE;AACZ,QAAA;AACF,MAAA;AAAC,IAAA,CAAA,CAAA,EAAA;AACH,EAAA;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ var DeviceType = /*#__PURE__*/function (DeviceType) {
2
+ DeviceType["Desktop"] = "desktop";
3
+ DeviceType["Mobile"] = "mobile";
4
+ return DeviceType;
5
+ }({});
6
+
7
+ export { DeviceType };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/types/index.ts"],"sourcesContent":["export enum DeviceType {\n Desktop = 'desktop',\n Mobile = 'mobile'\n}"],"names":["DeviceType"],"mappings":"AAAA,IAAYA,UAAU,0BAAVA,UAAU,EAAA;EAAVA,UAAU,CAAA,SAAA,CAAA,GAAA,SAAA;EAAVA,UAAU,CAAA,QAAA,CAAA,GAAA,QAAA;AAAA,EAAA,OAAVA,UAAU;AAAA,CAAA,CAAA,EAAA;;;;"}
@@ -0,0 +1,59 @@
1
+ import { asyncToGenerator as _asyncToGenerator } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import classNames from 'classnames';
4
+ import { Delete, Export } from '../../../components/icons/index.js';
5
+ import css from './header.less.js';
6
+
7
+ var Header = params => {
8
+ var clear = () => {
9
+ params.rxai.clear();
10
+ };
11
+ var exportRxai = /*#__PURE__*/function () {
12
+ var _ref = _asyncToGenerator(function* () {
13
+ try {
14
+ var content = yield params.rxai.export();
15
+ downloadToFile({
16
+ content: content,
17
+ name: "rxai-".concat(new Date().getTime(), ".json")
18
+ });
19
+ } catch (e) {
20
+ console.error("[@mybricks/plugin-ai - exportRxai - error]", e);
21
+ }
22
+ });
23
+ return function exportRxai() {
24
+ return _ref.apply(this, arguments);
25
+ };
26
+ }();
27
+ return /*#__PURE__*/React.createElement("div", {
28
+ className: classNames(css.header)
29
+ }, /*#__PURE__*/React.createElement("span", {
30
+ className: classNames(css.title)
31
+ }, "\u667A\u80FD\u52A9\u624B"), /*#__PURE__*/React.createElement("div", {
32
+ className: css['actions']
33
+ }, /*#__PURE__*/React.createElement("div", {
34
+ className: css['action'],
35
+ "data-mybricks-tip": "清空对话记录",
36
+ onClick: clear
37
+ }, /*#__PURE__*/React.createElement(Delete, null)), /*#__PURE__*/React.createElement("div", {
38
+ className: classNames(css['action'], css['export']),
39
+ "data-mybricks-tip": "导出对话记录",
40
+ onClick: exportRxai
41
+ }, /*#__PURE__*/React.createElement(Export, null))));
42
+ };
43
+ function downloadToFile(_ref2) {
44
+ var {
45
+ content,
46
+ name
47
+ } = _ref2;
48
+ var eleLink = document.createElement('a');
49
+ eleLink.download = name;
50
+ eleLink.style.display = 'none';
51
+ var blob = new Blob([JSON.stringify(content)]);
52
+ eleLink.href = URL.createObjectURL(blob);
53
+ document.body.appendChild(eleLink);
54
+ eleLink.click();
55
+ document.body.removeChild(eleLink);
56
+ }
57
+
58
+ export { Header };
59
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sources":["../../../../src/view/components/header/header.tsx"],"sourcesContent":["import React from \"react\"\nimport classNames from \"classnames\"\nimport { Rxai } from \"@mybricks/rxai\";\nimport { Delete, Export } from \"../../../components/icons\"\nimport { context } from \"../../../context\";\nimport css from \"./header.less\"\n\ninterface HeaderParams {\n rxai: Rxai;\n}\n\nconst Header = (params: HeaderParams) => {\n const clear = () => {\n params.rxai.clear();\n }\n\n const exportRxai = async () => {\n try {\n const content = await params.rxai.export();\n downloadToFile({\n content: content,\n name: `rxai-${new Date().getTime()}.json`\n })\n } catch (e) {\n console.error(\"[@mybricks/plugin-ai - exportRxai - error]\", e);\n }\n }\n\n return (\n <div className={classNames(css.header)}>\n <span className={classNames(css.title)}>\n {/* MyBricks.ai */}\n 智能助手\n </span>\n <div className={css['actions']}>\n <div className={css['action']} data-mybricks-tip={\"清空对话记录\"} onClick={clear}>\n <Delete />\n </div>\n <div className={classNames(css['action'], css['export'])} data-mybricks-tip={\"导出对话记录\"} onClick={exportRxai}>\n <Export />\n </div>\n </div>\n </div>\n )\n}\n\nexport { Header }\n\nfunction downloadToFile ({ content, name }: { content: any, name: string }) {\n const eleLink = document.createElement('a')\n eleLink.download = name\n eleLink.style.display = 'none'\n\n const blob = new Blob([JSON.stringify(content)])\n\n eleLink.href = URL.createObjectURL(blob)\n document.body.appendChild(eleLink)\n eleLink.click()\n document.body.removeChild(eleLink)\n}\n"],"names":["Header","params","clear","rxai","exportRxai","_ref","_asyncToGenerator","content","export","downloadToFile","name","concat","Date","getTime","e","console","error","apply","arguments","React","createElement","className","classNames","css","header","title","onClick","Delete","Export","_ref2","eleLink","document","download","style","display","blob","Blob","JSON","stringify","href","URL","createObjectURL","body","appendChild","click","removeChild"],"mappings":";;;;;;AAWA,IAAMA,MAAM,GAAIC,MAAoB,IAAK;EACvC,IAAMC,KAAK,GAAGA,MAAM;AAClBD,IAAAA,MAAM,CAACE,IAAI,CAACD,KAAK,EAAE;EACrB,CAAC;AAED,EAAA,IAAME,UAAU,gBAAA,YAAA;AAAA,IAAA,IAAAC,IAAA,GAAAC,iBAAA,CAAG,aAAY;MAC7B,IAAI;QACF,IAAMC,OAAO,SAASN,MAAM,CAACE,IAAI,CAACK,MAAM,EAAE;AAC1CC,QAAAA,cAAc,CAAC;AACbF,UAAAA,OAAO,EAAEA,OAAO;UAChBG,IAAI,EAAA,OAAA,CAAAC,MAAA,CAAU,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE,EAAA,OAAA;AACpC,SAAC,CAAC;MACJ,CAAC,CAAC,OAAOC,CAAC,EAAE;AACVC,QAAAA,OAAO,CAACC,KAAK,CAAC,4CAA4C,EAAEF,CAAC,CAAC;AAChE,MAAA;IACF,CAAC,CAAA;AAAA,IAAA,OAAA,SAVKV,UAAUA,GAAA;AAAA,MAAA,OAAAC,IAAA,CAAAY,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAUf;EAED,oBACEC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,UAAU,CAACC,GAAG,CAACC,MAAM;GAAE,eACrCL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,SAAS,EAAEC,UAAU,CAACC,GAAG,CAACE,KAAK;AAAE,GAAA,EAClB,0BAEf,CAAC,eACPN,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKC,SAAS,EAAEE,GAAG,CAAC,SAAS;GAAE,eAC7BJ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEE,GAAG,CAAC,QAAQ,CAAE;AAAC,IAAA,mBAAA,EAAmB,QAAS;AAACG,IAAAA,OAAO,EAAExB;GAAM,eACzEiB,KAAA,CAAAC,aAAA,CAACO,MAAM,EAAA,IAAE,CACN,CAAC,eACNR,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,UAAU,CAACC,GAAG,CAAC,QAAQ,CAAC,EAAEA,GAAG,CAAC,QAAQ,CAAC,CAAE;AAAC,IAAA,mBAAA,EAAmB,QAAS;AAACG,IAAAA,OAAO,EAAEtB;GAAW,eACzGe,KAAA,CAAAC,aAAA,CAACQ,MAAM,EAAA,IAAE,CACN,CACF,CACF,CAAC;AAEV;AAIA,SAASnB,cAAcA,CAAAoB,KAAA,EAAqD;EAAA,IAAnD;IAAEtB,OAAO;AAAEG,IAAAA;AAAqC,GAAC,GAAAmB,KAAA;AACxE,EAAA,IAAMC,OAAO,GAAGC,QAAQ,CAACX,aAAa,CAAC,GAAG,CAAC;EAC3CU,OAAO,CAACE,QAAQ,GAAGtB,IAAI;AACvBoB,EAAAA,OAAO,CAACG,KAAK,CAACC,OAAO,GAAG,MAAM;AAE9B,EAAA,IAAMC,IAAI,GAAG,IAAIC,IAAI,CAAC,CAACC,IAAI,CAACC,SAAS,CAAC/B,OAAO,CAAC,CAAC,CAAC;EAEhDuB,OAAO,CAACS,IAAI,GAAGC,GAAG,CAACC,eAAe,CAACN,IAAI,CAAC;AACxCJ,EAAAA,QAAQ,CAACW,IAAI,CAACC,WAAW,CAACb,OAAO,CAAC;EAClCA,OAAO,CAACc,KAAK,EAAE;AACfb,EAAAA,QAAQ,CAACW,IAAI,CAACG,WAAW,CAACf,OAAO,CAAC;AACpC;;;;"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../../plugin-ai/node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".header_header__DAigM {\n width: 100%;\n height: 40px;\n min-height: 40px;\n display: flex;\n align-items: center;\n padding: 0 60px 0 13px;\n border-bottom: 1px solid #f3f3f3;\n background: rgba(255, 255, 255, 0.8);\n gap: 6px;\n}\n.header_header__DAigM .header_title__isy-8 {\n font-weight: 700;\n font-size: 12px;\n color: #191919;\n line-height: 18px;\n cursor: default;\n}\n.header_header__DAigM .header_actions__QcafI {\n display: flex;\n align-items: center;\n}\n.header_header__DAigM .header_actions__QcafI .header_action__GwD1M {\n display: flex;\n align-items: center;\n cursor: pointer;\n color: #AAA;\n width: 20px;\n height: 20px;\n justify-content: center;\n}\n.header_header__DAigM .header_actions__QcafI .header_action__GwD1M:hover {\n color: var(--mybricks-color-primary, #FA6400);\n}\n.header_header__DAigM .header_actions__QcafI .header_action__GwD1M svg {\n width: 12px;\n height: 12px;\n}\n.header_header__DAigM .header_actions__QcafI .header_action__GwD1M.header_export__Nf1OZ svg {\n width: 14px;\n height: 14px;\n}\n";
4
+ var css = {"header":"header_header__DAigM","title":"header_title__isy-8","actions":"header_actions__QcafI","action":"header_action__GwD1M","export":"header_export__Nf1OZ"};
5
+ styleInject(css_248z);
6
+
7
+ export { css as default };
8
+ //# sourceMappingURL=header.less.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.less.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,184 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React, { useRef, useState, useEffect } from 'react';
3
+ import classNames from 'classnames';
4
+ import { Header } from './components/header/header.js';
5
+ import { Messages } from '../components/messages/index.js';
6
+ import { Sender } from '../components/sender/index.js';
7
+ import { context } from '../context/index.js';
8
+ import { Agents } from '../agents/index.js';
9
+ import { AbstractAgent } from '../agents/utils/config.js';
10
+ import css from './index.less.js';
11
+
12
+ var _excluded = ["onProgress"],
13
+ _excluded2 = ["message", "attachments"],
14
+ _excluded3 = ["message", "attachments", "insertAfter"];
15
+ var View = _ref => {
16
+ var {
17
+ user,
18
+ copilot,
19
+ api
20
+ } = _ref;
21
+ var senderRef = useRef(null);
22
+ var [rxai, setRxai] = useState(context.rxai);
23
+ var [vibeCoding, setVibeCoding] = useState(false);
24
+ var PLACEHOLDER_MAP = {
25
+ normal: "\u60A8\u597D\uFF0C\u6211\u662F".concat(context.name, "\uFF0C\u8BF7\u8BE6\u7EC6\u63CF\u8FF0\u60A8\u7684\u9700\u6C42"),
26
+ disabled: "\u60A8\u597D\uFF0C\u6211\u662F".concat(context.name, "\uFF0C\u8BF7\u5148\u4ECE\u753B\u5E03\u4E2D\u9009\u62E9\u573A\u666F\u6216\u7EC4\u4EF6\uFF0C\u518D\u5F00\u59CB\u5BF9\u8BDD"),
27
+ loading: "处理中,请稍后..."
28
+ };
29
+ var [senderStateProps, setSenderStateProps] = useState(() => {
30
+ return {
31
+ loading: false,
32
+ disabled: true,
33
+ placeholder: PLACEHOLDER_MAP["disabled"]
34
+ };
35
+ });
36
+ var focusID = useRef(null);
37
+ useEffect(() => {
38
+ var statusChange = state => {
39
+ if (state === "disabled") {
40
+ setSenderStateProps({
41
+ disabled: true,
42
+ loading: false,
43
+ placeholder: PLACEHOLDER_MAP["disabled"]
44
+ });
45
+ } else {
46
+ var bool = state === "loading";
47
+ setSenderStateProps({
48
+ disabled: bool,
49
+ loading: bool,
50
+ placeholder: PLACEHOLDER_MAP[state]
51
+ });
52
+ }
53
+ };
54
+ var disconnectAiViewDisplay = context.events.on("aiViewDisplay", () => {
55
+ setTimeout(() => {
56
+ senderRef.current.focus();
57
+ });
58
+ }, true);
59
+ var disconnectFocus = context.events.on("focus", focus => {
60
+ if (!focus) {
61
+ senderRef.current.setMentions([]);
62
+ focusID.current = null;
63
+ statusChange("disabled");
64
+ setRxai(context.rxai);
65
+ } else {
66
+ var type = focus.type;
67
+ var id = ["page", "section"].includes(type) ? focus.pageId : focus.comId;
68
+ var {
69
+ onProgress
70
+ } = focus,
71
+ other = _objectWithoutProperties(focus, _excluded);
72
+ senderRef.current.setMentions([other]);
73
+ setVibeCoding(other.vibeCoding || false);
74
+ focusID.current = id;
75
+ var status = context.requestStatusTracker.getStatus(id);
76
+ statusChange(status.state === "pending" ? "loading" : "normal");
77
+ // setTimeout(() => {
78
+ // senderRef.current!.focus();
79
+ // })
80
+ if (focus.vibeCoding) {
81
+ setTimeout(() => {
82
+ // TODO: ai组件库里注册agents的时机不对
83
+ var agent = context.agents.find(agent => {
84
+ return agent instanceof AbstractAgent && agent.type === "vibeCoding";
85
+ });
86
+ if (agent) {
87
+ var _rxai = agent.getRxai({
88
+ key: "".concat(context.pluginParams.key, "_").concat(focus.pageId, "_").concat(focus.comId)
89
+ });
90
+ setRxai(_rxai);
91
+ } else {
92
+ setRxai(context.rxai);
93
+ }
94
+ });
95
+ } else {
96
+ setRxai(context.rxai);
97
+ }
98
+ }
99
+ }, true);
100
+ var disconnectPromiseStatusTracker = context.requestStatusTracker.events.on("promise", promise => {
101
+ if (promise.id === focusID.current) {
102
+ statusChange(promise.status.state === "pending" ? "loading" : "normal");
103
+ }
104
+ });
105
+ return () => {
106
+ disconnectAiViewDisplay();
107
+ disconnectFocus();
108
+ disconnectPromiseStatusTracker();
109
+ };
110
+ }, []);
111
+ var onSend = sendMessage => {
112
+ var _context$currentFocus;
113
+ var {
114
+ message,
115
+ attachments
116
+ } = sendMessage,
117
+ extension = _objectWithoutProperties(sendMessage, _excluded2);
118
+ if (!focusID.current) {
119
+ return;
120
+ }
121
+ context.requestStatusTracker.track(focusID.current, Agents.requestAgent({
122
+ message,
123
+ attachments,
124
+ extension,
125
+ onProgress: (_context$currentFocus = context.currentFocus) === null || _context$currentFocus === void 0 ? void 0 : _context$currentFocus.onProgress
126
+ }));
127
+ };
128
+ var onMentionClick = mention => {
129
+ var {
130
+ id,
131
+ type,
132
+ comId,
133
+ pageId
134
+ } = mention;
135
+ api[type === "page" ? "focusPage" : "focusCom"]((type === "page" ? pageId : comId) || id);
136
+ };
137
+ var onMessagesSend = sendMessage => {
138
+ var _context$currentFocus2;
139
+ var {
140
+ message,
141
+ attachments,
142
+ insertAfter
143
+ } = sendMessage,
144
+ extension = _objectWithoutProperties(sendMessage, _excluded3);
145
+ var {
146
+ mentions
147
+ } = extension;
148
+ var mention = sendMessage.mentions[0];
149
+ context.requestStatusTracker.track(mention.type === "page" ? mention.pageId : mention.comId, Agents.requestAgent({
150
+ message,
151
+ attachments,
152
+ insertAfter,
153
+ extension,
154
+ focus: mentions[0],
155
+ onProgress: (_context$currentFocus2 = context.currentFocus) === null || _context$currentFocus2 === void 0 ? void 0 : _context$currentFocus2.onProgress
156
+ }));
157
+ };
158
+ return /*#__PURE__*/React.createElement("div", {
159
+ className: classNames(css.view),
160
+ style: vibeCoding ? {
161
+ '--mybricks-color-primary': '#16A157'
162
+ } : undefined
163
+ }, /*#__PURE__*/React.createElement(Header, {
164
+ rxai: rxai
165
+ }), /*#__PURE__*/React.createElement(Messages, {
166
+ key: rxai.key,
167
+ user: user,
168
+ copilot: copilot,
169
+ rxai: rxai,
170
+ onSend: onMessagesSend,
171
+ onMentionClick: onMentionClick
172
+ }), /*#__PURE__*/React.createElement(Sender, {
173
+ ref: senderRef,
174
+ loading: senderStateProps.loading,
175
+ placeholder: senderStateProps.placeholder,
176
+ disabled: senderStateProps.disabled,
177
+ mode: "mention",
178
+ onSend: onSend,
179
+ onMentionClick: onMentionClick
180
+ }));
181
+ };
182
+
183
+ export { View };
184
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/view/index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport classNames from \"classnames\";\nimport { Header } from \"./components\";\nimport { Messages } from \"../components/messages\";\nimport { Sender, SenderRef, SenderProps } from \"../components/sender\";\nimport { context } from \"../context\";\nimport { Agents } from '../agents'\nimport { AbstractAgent } from \"../agents/utils/config\";\nimport css from \"./index.less\";\n\ninterface ViewProps {\n api: AiViewApi;\n user: any;\n copilot: any;\n}\n\nconst View = ({ user, copilot, api }: ViewProps) => {\n const senderRef = useRef<SenderRef>(null);\n const [rxai, setRxai] = useState(context.rxai);\n const [vibeCoding, setVibeCoding] = useState(false);\n\n const PLACEHOLDER_MAP = {\n normal: `您好,我是${context.name},请详细描述您的需求`,\n disabled: `您好,我是${context.name},请先从画布中选择场景或组件,再开始对话`,\n loading: \"处理中,请稍后...\"\n }\n\n const [senderStateProps, setSenderStateProps] = useState(() => {\n return {\n loading: false,\n disabled: true,\n placeholder: PLACEHOLDER_MAP[\"disabled\"]\n }\n })\n const focusID = useRef<string>(null);\n\n useEffect(() => {\n const statusChange = (state: \"loading\" | \"normal\" | \"disabled\") => {\n if (state === \"disabled\") {\n setSenderStateProps({\n disabled: true,\n loading: false,\n placeholder: PLACEHOLDER_MAP[\"disabled\"]\n })\n } else {\n const bool = state === \"loading\";\n setSenderStateProps({\n disabled: bool,\n loading: bool,\n placeholder: PLACEHOLDER_MAP[state]\n })\n }\n }\n\n const disconnectAiViewDisplay = context.events.on(\"aiViewDisplay\", () => {\n setTimeout(() => {\n senderRef.current!.focus();\n })\n }, true)\n const disconnectFocus = context.events.on(\"focus\", (focus) => {\n if (!focus) {\n senderRef.current!.setMentions([]);\n focusID.current = null;\n statusChange(\"disabled\");\n setRxai(context.rxai);\n } else {\n const type = focus.type;\n const id = [\"page\", \"section\"].includes(type) ? focus.pageId : focus.comId;\n const { onProgress, ...other } = focus;\n senderRef.current!.setMentions([other] as any);\n setVibeCoding(other.vibeCoding || false);\n focusID.current = id;\n const status = context.requestStatusTracker.getStatus(id);\n statusChange(status.state === \"pending\" ? \"loading\" : \"normal\");\n // setTimeout(() => {\n // senderRef.current!.focus();\n // })\n if (focus.vibeCoding) {\n setTimeout(() => {\n // TODO: ai组件库里注册agents的时机不对\n const agent = context.agents!.find((agent) => {\n return agent instanceof AbstractAgent && agent.type === \"vibeCoding\"\n });\n if (agent) {\n const rxai = (agent as AbstractAgent).getRxai({\n key: `${context.pluginParams.key}_${focus.pageId}_${focus.comId}`,\n })\n setRxai(rxai);\n } else {\n setRxai(context.rxai);\n }\n })\n } else {\n setRxai(context.rxai);\n }\n }\n }, true)\n const disconnectPromiseStatusTracker = context.requestStatusTracker.events.on(\"promise\", (promise) => {\n if (promise.id === focusID.current) {\n statusChange(promise.status.state === \"pending\" ? \"loading\" : \"normal\");\n }\n })\n return () => {\n disconnectAiViewDisplay()\n disconnectFocus()\n disconnectPromiseStatusTracker()\n }\n }, [])\n\n const onSend = (sendMessage: Parameters<SenderProps[\"onSend\"]>[0]) => {\n const { message, attachments, ...extension } = sendMessage;\n\n if (!focusID.current) {\n return;\n }\n\n context.requestStatusTracker.track(focusID.current, Agents.requestAgent({\n message,\n attachments,\n extension,\n onProgress: context.currentFocus?.onProgress\n }));\n }\n\n const onMentionClick: NonNullable<SenderProps[\"onMentionClick\"]> = (mention) => {\n const { id, type, comId, pageId } = mention;\n api[type === \"page\" ? \"focusPage\" : \"focusCom\"]((type === \"page\" ? pageId : comId) || id as string);\n }\n\n const onMessagesSend = (sendMessage: Parameters<SenderProps[\"onSend\"]>[0]) => {\n const { message, attachments, insertAfter, ...extension } = sendMessage;\n const { mentions } = extension\n const mention = sendMessage.mentions[0];\n context.requestStatusTracker.track(mention.type === \"page\" ? mention.pageId : mention.comId, Agents.requestAgent({\n message,\n attachments,\n insertAfter,\n extension,\n focus: mentions[0],\n onProgress: context.currentFocus?.onProgress\n }));\n }\n\n return (\n <div className={classNames(css.view)} style={vibeCoding ? ({ '--mybricks-color-primary': '#16A157' } as React.CSSProperties) : undefined}>\n <Header rxai={rxai}/>\n <Messages\n key={rxai.key}\n user={user}\n copilot={copilot}\n rxai={rxai}\n onSend={onMessagesSend}\n onMentionClick={onMentionClick}\n />\n <Sender\n ref={senderRef}\n loading={senderStateProps.loading}\n placeholder={senderStateProps.placeholder}\n disabled={senderStateProps.disabled}\n mode=\"mention\"\n onSend={onSend}\n onMentionClick={onMentionClick}\n />\n </div>\n )\n}\n\nexport { View }\n"],"names":["View","_ref","user","copilot","api","senderRef","useRef","rxai","setRxai","useState","context","vibeCoding","setVibeCoding","PLACEHOLDER_MAP","normal","concat","name","disabled","loading","senderStateProps","setSenderStateProps","placeholder","focusID","useEffect","statusChange","state","bool","disconnectAiViewDisplay","events","on","setTimeout","current","focus","disconnectFocus","setMentions","type","id","includes","pageId","comId","onProgress","other","_objectWithoutProperties","_excluded","status","requestStatusTracker","getStatus","agent","agents","find","AbstractAgent","getRxai","key","pluginParams","disconnectPromiseStatusTracker","promise","onSend","sendMessage","_context$currentFocus","message","attachments","extension","_excluded2","track","Agents","requestAgent","currentFocus","onMentionClick","mention","onMessagesSend","_context$currentFocus2","insertAfter","_excluded3","mentions","React","createElement","className","classNames","css","view","style","undefined","Header","Messages","Sender","ref","mode"],"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_view__jBry2 {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n";
4
+ var css = {"view":"index_view__jBry2"};
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":";;;;;;;;"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@mybricks/plugin-ai",
3
- "version": "0.0.1",
4
- "main": "src/index.tsx",
3
+ "version": "0.0.3",
4
+ "main": "dist/index.js",
5
+ "module": "dist/index.js",
5
6
  "files": [
6
- "src",
7
+ "dist",
7
8
  "package.json"
8
9
  ],
9
10
  "author": "MyBricks Team",
@@ -16,12 +17,38 @@
16
17
  "access": "public",
17
18
  "registry": "https://registry.npmjs.org/"
18
19
  },
19
- "scripts": {},
20
+ "scripts": {
21
+ "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && rollup -c",
22
+ "watch": "APP_ENV=development rollup -c -w",
23
+ "publish": "npm run build && npm publish"
24
+ },
20
25
  "dependencies": {
21
26
  "@ant-design/icons": "^6.1.0",
22
27
  "@mybricks/rxai": "0.0.2",
28
+ "antd": "^4.24.16",
23
29
  "classnames": "^2.5.1",
24
30
  "jsonrepair": "^3.13.1",
25
- "marked": "^17.0.0"
31
+ "markdown-it": "^14.1.0",
32
+ "node-forge": "^1.3.2"
33
+ },
34
+ "devDependencies": {
35
+ "@babel/core": "^7.26.0",
36
+ "@babel/preset-env": "^7.26.0",
37
+ "@babel/preset-react": "^7.26.0",
38
+ "@babel/preset-typescript": "^7.26.0",
39
+ "@rollup/plugin-alias": "^5.0.0",
40
+ "@rollup/plugin-babel": "^6.0.4",
41
+ "@rollup/plugin-commonjs": "^26.0.0",
42
+ "@rollup/plugin-json": "^6.1.0",
43
+ "@rollup/plugin-node-resolve": "^15.2.0",
44
+ "@rollup/plugin-replace": "^6.0.0",
45
+ "@rollup/plugin-terser": "^0.4.4",
46
+ "@types/markdown-it": "^14.1.2",
47
+ "less": "^4.2.0",
48
+ "postcss": "^8.4.0",
49
+ "postcss-less": "^6.0.0",
50
+ "rollup": "^4.28.0",
51
+ "rollup-plugin-postcss": "^4.0.2",
52
+ "typescript": "^5.0.0"
26
53
  }
27
- }
54
+ }