@lobehub/chat 1.51.2 → 1.51.4

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 (643) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/Dockerfile +1 -1
  3. package/Dockerfile.database +1 -1
  4. package/changelog/v1.json +17 -0
  5. package/docs/usage/providers/wenxin.mdx +16 -13
  6. package/docs/usage/providers/wenxin.zh-CN.mdx +11 -8
  7. package/next.config.ts +5 -0
  8. package/package.json +2 -3
  9. package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/page.tsx +7 -4
  10. package/src/app/{(main) → [variants]/(main)}/(mobile)/me/profile/features/Category.tsx +1 -1
  11. package/src/app/{(main) → [variants]/(main)}/(mobile)/me/profile/page.tsx +7 -4
  12. package/src/app/{(main) → [variants]/(main)}/(mobile)/me/settings/page.tsx +7 -4
  13. package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/SideBar/index.tsx +11 -6
  14. package/src/app/{(main) → [variants]/(main)}/_layout/Mobile/index.tsx +3 -4
  15. package/src/app/{(main) → [variants]/(main)}/changelog/modal/page.tsx +3 -2
  16. package/src/app/{(main) → [variants]/(main)}/changelog/page.tsx +7 -6
  17. package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/default.tsx +6 -5
  18. package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@portal/default.tsx +5 -4
  19. package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/default.tsx +6 -5
  20. package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Mobile/ChatHeader/index.tsx +1 -1
  21. package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/page.tsx +4 -3
  22. package/src/app/{(main) → [variants]/(main)}/chat/@session/default.tsx +3 -2
  23. package/src/app/{(main) → [variants]/(main)}/chat/layout.ts +2 -0
  24. package/src/app/{(main) → [variants]/(main)}/chat/settings/layout.tsx +2 -2
  25. package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/InfoSidebar/SuggestionItem.tsx +2 -2
  26. package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/page.tsx +2 -2
  27. package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/page.tsx +3 -3
  28. package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/page.tsx +2 -2
  29. package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/page.tsx +2 -2
  30. package/src/app/{(main) → [variants]/(main)}/discover/(list)/(home)/page.tsx +10 -3
  31. package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/[slug]/page.tsx +2 -2
  32. package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/page.tsx +10 -4
  33. package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/[slug]/page.tsx +2 -2
  34. package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/page.tsx +11 -5
  35. package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/[slug]/page.tsx +2 -2
  36. package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/page.tsx +11 -5
  37. package/src/app/{(main) → [variants]/(main)}/discover/(list)/providers/page.tsx +11 -5
  38. package/src/app/{(main) → [variants]/(main)}/discover/layout.tsx +2 -0
  39. package/src/app/{(main) → [variants]/(main)}/discover/search/page.tsx +3 -3
  40. package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/features/FileMenu/index.tsx +1 -1
  41. package/src/app/{(main) → [variants]/(main)}/files/(content)/@modal/(.)[id]/FullscreenModal.tsx +1 -1
  42. package/src/app/{(main) → [variants]/(main)}/files/(content)/page.tsx +1 -1
  43. package/src/app/{(main) → [variants]/(main)}/files/hooks/useFileCategory.ts +1 -4
  44. package/src/app/{(main) → [variants]/(main)}/files/layout.tsx +2 -0
  45. package/src/app/{(main) → [variants]/(main)}/profile/(home)/[[...slugs]]/page.tsx +4 -3
  46. package/src/app/{(main) → [variants]/(main)}/profile/features/ClerkProfile.tsx +3 -1
  47. package/src/app/{(main) → [variants]/(main)}/profile/security/page.tsx +4 -3
  48. package/src/app/{(main) → [variants]/(main)}/profile/stats/page.tsx +4 -3
  49. package/src/app/{(main) → [variants]/(main)}/settings/@category/features/CategoryContent.tsx +2 -1
  50. package/src/app/{(main) → [variants]/(main)}/settings/common/features/Common.tsx +1 -1
  51. package/src/app/{(main) → [variants]/(main)}/settings/common/features/Theme/index.tsx +1 -1
  52. package/src/app/{(main) → [variants]/(main)}/settings/layout.ts +2 -0
  53. package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/providers.tsx +2 -4
  54. package/src/app/{(main) → [variants]/(main)}/settings/llm/components/ProviderConfig/index.tsx +2 -2
  55. package/src/app/{(main) → [variants]/(main)}/settings/provider/layout.tsx +2 -2
  56. package/src/app/{(main) → [variants]/(main)}/settings/sync/features/WebRTC/index.tsx +1 -1
  57. package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/page.tsx +5 -6
  58. package/src/app/{@modal → [variants]/@modal}/_layout/SettingModalLayout.tsx +2 -2
  59. package/src/app/{@modal → [variants]/@modal}/chat/(.)settings/modal/features/CategoryContent.tsx +1 -1
  60. package/src/app/{@modal → [variants]/@modal}/chat/(.)settings/modal/layout.tsx +1 -1
  61. package/src/app/[variants]/layout.tsx +94 -0
  62. package/src/app/{page.tsx → [variants]/page.tsx} +3 -1
  63. package/src/components/server/ServerLayout.tsx +19 -5
  64. package/src/config/aiModels/wenxin.ts +125 -19
  65. package/src/config/llm.ts +3 -5
  66. package/src/config/modelProviders/wenxin.ts +100 -23
  67. package/src/const/auth.ts +0 -3
  68. package/src/features/Conversation/Error/APIKeyForm/index.tsx +0 -3
  69. package/src/features/Conversation/components/ChatItem/utils.test.ts +284 -0
  70. package/src/features/Conversation/components/ChatItem/utils.ts +39 -8
  71. package/src/features/Conversation/components/MarkdownElements/LobeArtifact/rehypePlugin.test.ts +125 -0
  72. package/src/features/DevPanel/CacheViewer/DataTable/index.tsx +33 -0
  73. package/src/features/DevPanel/CacheViewer/cacheProvider.tsx +64 -0
  74. package/src/features/DevPanel/CacheViewer/getCacheEntries.ts +52 -0
  75. package/src/features/DevPanel/CacheViewer/index.tsx +25 -0
  76. package/src/features/DevPanel/CacheViewer/schema.ts +49 -0
  77. package/src/features/DevPanel/FeatureFlagViewer/Form.tsx +93 -0
  78. package/src/features/DevPanel/FeatureFlagViewer/index.tsx +11 -0
  79. package/src/features/DevPanel/MetadataViewer/Ld.tsx +25 -0
  80. package/src/features/DevPanel/MetadataViewer/MetaData.tsx +30 -0
  81. package/src/features/DevPanel/MetadataViewer/Og.tsx +75 -0
  82. package/src/features/DevPanel/MetadataViewer/index.tsx +80 -0
  83. package/src/features/DevPanel/MetadataViewer/useHead.ts +16 -0
  84. package/src/features/DevPanel/PostgresViewer/DataTable/index.tsx +39 -49
  85. package/src/features/DevPanel/PostgresViewer/{TableColumns.tsx → SchemaSidebar/Columns.tsx} +6 -4
  86. package/src/features/DevPanel/PostgresViewer/{Schema.tsx → SchemaSidebar/index.tsx} +49 -55
  87. package/src/features/DevPanel/PostgresViewer/index.tsx +4 -2
  88. package/src/features/DevPanel/features/FloatPanel.tsx +218 -0
  89. package/src/features/DevPanel/features/Header.tsx +50 -0
  90. package/src/features/DevPanel/features/Table/TableCell.tsx +73 -0
  91. package/src/features/DevPanel/features/Table/TooltipContent.tsx +39 -0
  92. package/src/features/DevPanel/{PostgresViewer/DataTable/Table.tsx → features/Table/index.tsx} +12 -14
  93. package/src/features/DevPanel/index.tsx +29 -5
  94. package/src/hooks/useActiveTabKey.ts +0 -7
  95. package/src/layout/AuthProvider/Clerk/index.tsx +0 -1
  96. package/src/layout/GlobalProvider/ReactScan.tsx +2 -4
  97. package/src/layout/GlobalProvider/StoreInitialization.tsx +7 -2
  98. package/src/layout/GlobalProvider/index.tsx +21 -29
  99. package/src/libs/agent-runtime/AgentRuntime.test.ts +0 -1
  100. package/src/libs/agent-runtime/AgentRuntime.ts +7 -0
  101. package/src/libs/agent-runtime/wenxin/index.ts +10 -107
  102. package/src/locales/create.ts +15 -16
  103. package/src/locales/default/modelProvider.ts +0 -20
  104. package/src/middleware.ts +96 -23
  105. package/src/server/modules/AgentRuntime/index.test.ts +0 -21
  106. package/src/server/translation.test.ts +0 -7
  107. package/src/server/translation.ts +2 -5
  108. package/src/services/_auth.ts +0 -14
  109. package/src/store/chat/slices/portal/selectors.test.ts +169 -3
  110. package/src/store/chat/slices/portal/selectors.ts +6 -1
  111. package/src/store/user/slices/modelList/selectors/keyVaults.ts +0 -2
  112. package/src/types/aiProvider.ts +0 -1
  113. package/src/types/discover.ts +4 -1
  114. package/src/types/next.ts +4 -0
  115. package/src/types/user/settings/keyVaults.ts +1 -6
  116. package/src/utils/locale.ts +20 -4
  117. package/src/utils/server/routeVariants.ts +80 -0
  118. package/src/app/(backend)/webapi/chat/wenxin/route.test.ts +0 -27
  119. package/src/app/(backend)/webapi/chat/wenxin/route.ts +0 -30
  120. package/src/app/(main)/settings/llm/ProviderList/Wenxin/index.tsx +0 -44
  121. package/src/app/(main)/settings/provider/(detail)/wenxin/page.tsx +0 -61
  122. package/src/app/layout.tsx +0 -67
  123. package/src/features/Conversation/Error/APIKeyForm/Wenxin.tsx +0 -49
  124. package/src/features/DevPanel/FloatPanel.tsx +0 -136
  125. package/src/features/DevPanel/PostgresViewer/DataTable/TableCell.tsx +0 -34
  126. package/src/hooks/useSettingsTab.ts +0 -12
  127. package/src/libs/agent-runtime/utils/streams/wenxin.test.ts +0 -153
  128. package/src/libs/agent-runtime/utils/streams/wenxin.ts +0 -38
  129. package/src/libs/agent-runtime/wenxin/type.ts +0 -84
  130. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/__tests__/UserBanner.test.tsx +0 -0
  131. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/__tests__/useCategory.test.tsx +0 -0
  132. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/features/Category.tsx +0 -0
  133. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/features/Header.tsx +0 -0
  134. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/features/UserBanner.tsx +0 -0
  135. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/features/useCategory.tsx +0 -0
  136. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/layout.tsx +0 -0
  137. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/(home)/loading.tsx +0 -0
  138. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/data/features/Category.tsx +0 -0
  139. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/data/features/Header.tsx +0 -0
  140. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/data/layout.tsx +0 -0
  141. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/data/loading.tsx +0 -0
  142. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/data/page.tsx +0 -0
  143. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/profile/features/Header.tsx +0 -0
  144. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/profile/layout.tsx +0 -0
  145. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/profile/loading.tsx +0 -0
  146. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/settings/features/Category.tsx +0 -0
  147. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/settings/features/Header.tsx +0 -0
  148. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/settings/features/useCategory.tsx +0 -0
  149. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/settings/layout.tsx +0 -0
  150. /package/src/app/{(main) → [variants]/(main)}/(mobile)/me/settings/loading.tsx +0 -0
  151. /package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/SideBar/Avatar.test.tsx +0 -0
  152. /package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/SideBar/Avatar.tsx +0 -0
  153. /package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/SideBar/BottomActions.tsx +0 -0
  154. /package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/SideBar/PinList/index.tsx +0 -0
  155. /package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/SideBar/TopActions.test.tsx +0 -0
  156. /package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/SideBar/TopActions.tsx +0 -0
  157. /package/src/app/{(main) → [variants]/(main)}/_layout/Desktop/index.tsx +0 -0
  158. /package/src/app/{(main) → [variants]/(main)}/_layout/Mobile/NavBar.tsx +0 -0
  159. /package/src/app/{(main) → [variants]/(main)}/changelog/_layout/Desktop.tsx +0 -0
  160. /package/src/app/{(main) → [variants]/(main)}/changelog/_layout/Mobile/Header.tsx +0 -0
  161. /package/src/app/{(main) → [variants]/(main)}/changelog/_layout/Mobile/index.tsx +0 -0
  162. /package/src/app/{(main) → [variants]/(main)}/changelog/error.tsx +0 -0
  163. /package/src/app/{(main) → [variants]/(main)}/changelog/features/GridLayout.tsx +0 -0
  164. /package/src/app/{(main) → [variants]/(main)}/changelog/features/Hero.tsx +0 -0
  165. /package/src/app/{(main) → [variants]/(main)}/changelog/features/Post.tsx +0 -0
  166. /package/src/app/{(main) → [variants]/(main)}/changelog/features/PublishedTime.tsx +0 -0
  167. /package/src/app/{(main) → [variants]/(main)}/changelog/features/VersionTag.tsx +0 -0
  168. /package/src/app/{(main) → [variants]/(main)}/changelog/layout.tsx +0 -0
  169. /package/src/app/{(main) → [variants]/(main)}/changelog/loading.tsx +0 -0
  170. /package/src/app/{(main) → [variants]/(main)}/changelog/not-found.tsx +0 -0
  171. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatHydration/index.tsx +0 -0
  172. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/SendMore.tsx +0 -0
  173. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/ShortcutHint.tsx +0 -0
  174. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx +0 -0
  175. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatInput/Desktop/TextArea.test.tsx +0 -0
  176. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatInput/Desktop/TextArea.tsx +0 -0
  177. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx +0 -0
  178. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatInput/index.tsx +0 -0
  179. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/ChatItem/Thread.tsx +0 -0
  180. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/ChatItem/ThreadItem.tsx +0 -0
  181. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/ChatItem/index.tsx +0 -0
  182. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/Content.tsx +0 -0
  183. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/InboxWelcome/AgentsSuggest.tsx +0 -0
  184. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/InboxWelcome/QuestionSuggest.tsx +0 -0
  185. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/InboxWelcome/index.tsx +0 -0
  186. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/WelcomeMessage.tsx +0 -0
  187. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/index.tsx +0 -0
  188. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ChatList/index.tsx +0 -0
  189. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ThreadHydration.tsx +0 -0
  190. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ZenModeToast/Toast.tsx +0 -0
  191. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@conversation/features/ZenModeToast/index.tsx +0 -0
  192. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@portal/_layout/Desktop.tsx +0 -0
  193. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@portal/_layout/Mobile.tsx +0 -0
  194. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@portal/error.tsx +0 -0
  195. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@portal/features/Body.tsx +0 -0
  196. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@portal/loading.tsx +0 -0
  197. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/_layout/Desktop.tsx +0 -0
  198. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/_layout/Mobile.tsx +0 -0
  199. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/Header.tsx +0 -0
  200. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/SkeletonList.tsx +0 -0
  201. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/SystemRole/SystemRoleContent.tsx +0 -0
  202. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/SystemRole/index.tsx +0 -0
  203. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/SystemRole/style.ts +0 -0
  204. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/ByTimeMode/GroupItem.tsx +0 -0
  205. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/ByTimeMode/index.tsx +0 -0
  206. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/FlatMode/index.tsx +0 -0
  207. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/ThreadItem/Content.tsx +0 -0
  208. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/ThreadItem/index.tsx +0 -0
  209. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/TopicItem/DefaultContent.tsx +0 -0
  210. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/TopicItem/TopicContent.tsx +0 -0
  211. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/TopicItem/index.tsx +0 -0
  212. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicListContent/index.tsx +0 -0
  213. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/@topic/features/TopicSearchBar/index.tsx +0 -0
  214. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/ChatHeader/HeaderAction.tsx +0 -0
  215. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/ChatHeader/KnowledgeTag.tsx +0 -0
  216. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/ChatHeader/Main.tsx +0 -0
  217. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/ChatHeader/Tags.tsx +0 -0
  218. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/ChatHeader/index.tsx +0 -0
  219. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/HotKeys.tsx +0 -0
  220. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/Portal.tsx +0 -0
  221. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/TopicPanel.tsx +0 -0
  222. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Desktop/index.tsx +0 -0
  223. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Mobile/ChatHeader/ChatHeaderTitle.tsx +0 -0
  224. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Mobile/TopicModal.tsx +0 -0
  225. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/Mobile/index.tsx +0 -0
  226. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/type.ts +0 -0
  227. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/_layout/useInitAgentConfig.ts +0 -0
  228. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/features/ChangelogModal.tsx +0 -0
  229. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/features/SettingButton.tsx +0 -0
  230. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/features/ShareButton/index.tsx +0 -0
  231. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/features/TelemetryNotification.tsx +0 -0
  232. /package/src/app/{(main) → [variants]/(main)}/chat/(workspace)/layout.ts +0 -0
  233. /package/src/app/{(main) → [variants]/(main)}/chat/@session/_layout/Desktop/PanelBody.tsx +0 -0
  234. /package/src/app/{(main) → [variants]/(main)}/chat/@session/_layout/Desktop/SessionHeader.tsx +0 -0
  235. /package/src/app/{(main) → [variants]/(main)}/chat/@session/_layout/Desktop/index.tsx +0 -0
  236. /package/src/app/{(main) → [variants]/(main)}/chat/@session/_layout/Mobile/SessionHeader.tsx +0 -0
  237. /package/src/app/{(main) → [variants]/(main)}/chat/@session/_layout/Mobile/index.tsx +0 -0
  238. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionHydration.tsx +0 -0
  239. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/CollapseGroup/Actions.tsx +0 -0
  240. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/CollapseGroup/index.tsx +0 -0
  241. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/DefaultMode.tsx +0 -0
  242. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/Inbox/index.tsx +0 -0
  243. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/List/AddButton.tsx +0 -0
  244. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/List/Item/Actions.tsx +0 -0
  245. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/List/Item/index.tsx +0 -0
  246. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/List/index.tsx +0 -0
  247. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/ListItem/index.tsx +0 -0
  248. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/Modals/ConfigGroupModal/GroupItem.tsx +0 -0
  249. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/Modals/ConfigGroupModal/index.tsx +0 -0
  250. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/Modals/CreateGroupModal.tsx +0 -0
  251. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/Modals/RenameGroupModal.tsx +0 -0
  252. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/SearchMode.tsx +0 -0
  253. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionListContent/index.tsx +0 -0
  254. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SessionSearchBar.tsx +0 -0
  255. /package/src/app/{(main) → [variants]/(main)}/chat/@session/features/SkeletonList.tsx +0 -0
  256. /package/src/app/{(main) → [variants]/(main)}/chat/_layout/Desktop/SessionPanel.tsx +0 -0
  257. /package/src/app/{(main) → [variants]/(main)}/chat/_layout/Desktop/index.tsx +0 -0
  258. /package/src/app/{(main) → [variants]/(main)}/chat/_layout/Mobile.tsx +0 -0
  259. /package/src/app/{(main) → [variants]/(main)}/chat/_layout/type.ts +0 -0
  260. /package/src/app/{(main) → [variants]/(main)}/chat/error.tsx +0 -0
  261. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/DBReader.ts +0 -0
  262. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/ExportConfigButton.tsx +0 -0
  263. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/Failed.tsx +0 -0
  264. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/Modal.tsx +0 -0
  265. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/Start.tsx +0 -0
  266. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/UpgradeButton.tsx +0 -0
  267. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/const.ts +0 -0
  268. /package/src/app/{(main) → [variants]/(main)}/chat/features/Migration/index.tsx +0 -0
  269. /package/src/app/{(main) → [variants]/(main)}/chat/features/PageTitle/index.tsx +0 -0
  270. /package/src/app/{(main) → [variants]/(main)}/chat/loading.tsx +0 -0
  271. /package/src/app/{(main) → [variants]/(main)}/chat/not-found.tsx +0 -0
  272. /package/src/app/{(main) → [variants]/(main)}/chat/settings/_layout/Desktop/Header.tsx +0 -0
  273. /package/src/app/{(main) → [variants]/(main)}/chat/settings/_layout/Desktop/index.tsx +0 -0
  274. /package/src/app/{(main) → [variants]/(main)}/chat/settings/_layout/Mobile/Header.tsx +0 -0
  275. /package/src/app/{(main) → [variants]/(main)}/chat/settings/_layout/Mobile/index.tsx +0 -0
  276. /package/src/app/{(main) → [variants]/(main)}/chat/settings/error.tsx +0 -0
  277. /package/src/app/{(main) → [variants]/(main)}/chat/settings/features/EditPage.tsx +0 -0
  278. /package/src/app/{(main) → [variants]/(main)}/chat/settings/features/HeaderContent.tsx +0 -0
  279. /package/src/app/{(main) → [variants]/(main)}/chat/settings/features/SubmitAgentButton/SubmitAgentModal.tsx +0 -0
  280. /package/src/app/{(main) → [variants]/(main)}/chat/settings/features/SubmitAgentButton/index.tsx +0 -0
  281. /package/src/app/{(main) → [variants]/(main)}/chat/settings/features/SubmitAgentButton/style.ts +0 -0
  282. /package/src/app/{(main) → [variants]/(main)}/chat/settings/loading.tsx +0 -0
  283. /package/src/app/{(main) → [variants]/(main)}/chat/settings/modal/page.tsx +0 -0
  284. /package/src/app/{(main) → [variants]/(main)}/chat/settings/not-found.tsx +0 -0
  285. /package/src/app/{(main) → [variants]/(main)}/chat/settings/page.tsx +0 -0
  286. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/_layout/Desktop.tsx +0 -0
  287. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/_layout/Mobile/Header.tsx +0 -0
  288. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/_layout/Mobile/index.tsx +0 -0
  289. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/Actions.tsx +0 -0
  290. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/AddAgent.tsx +0 -0
  291. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/ConversationExample/TopicList.tsx +0 -0
  292. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/ConversationExample/index.tsx +0 -0
  293. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/Header.tsx +0 -0
  294. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/InfoSidebar/ToolItem.tsx +0 -0
  295. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/InfoSidebar/index.tsx +0 -0
  296. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/SystemRole.tsx +0 -0
  297. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/assistant/[slug]/features/Temp.tsx +0 -0
  298. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/error.tsx +0 -0
  299. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/features/Back.tsx +0 -0
  300. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/features/Block.tsx +0 -0
  301. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/features/DetailLayout.tsx +0 -0
  302. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/features/HighlightBlock.tsx +0 -0
  303. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/features/ShareButton.tsx +0 -0
  304. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/features/SidebarContainer.tsx +0 -0
  305. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/layout.tsx +0 -0
  306. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/loading.tsx +0 -0
  307. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/Actions.tsx +0 -0
  308. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/ChatWithModel.tsx +0 -0
  309. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/Header.tsx +0 -0
  310. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/InfoSidebar/SuggestionItem.tsx +0 -0
  311. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/InfoSidebar/index.tsx +0 -0
  312. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/ParameterList/ParameterItem.tsx +0 -0
  313. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/ParameterList/index.tsx +0 -0
  314. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/ProviderList/ProviderItem.tsx +0 -0
  315. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/model/[...slugs]/features/ProviderList/index.tsx +0 -0
  316. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/not-found.tsx +0 -0
  317. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/features/Actions.tsx +0 -0
  318. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/features/Header.tsx +0 -0
  319. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -0
  320. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/features/InfoSidebar/index.tsx +0 -0
  321. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/features/InstallPlugin.tsx +0 -0
  322. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/features/ParameterList.tsx +0 -0
  323. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/plugin/[slug]/features/Schema.tsx +0 -0
  324. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/features/Actions.tsx +0 -0
  325. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/features/Header.tsx +0 -0
  326. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -0
  327. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/features/InfoSidebar/index.tsx +0 -0
  328. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/features/ModelList/ModelItem.tsx +0 -0
  329. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/features/ModelList/index.tsx +0 -0
  330. /package/src/app/{(main) → [variants]/(main)}/discover/(detail)/provider/[slug]/features/ProviderConfig.tsx +0 -0
  331. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/(home)/Client.tsx +0 -0
  332. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/(home)/features/AssistantList.tsx +0 -0
  333. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/(home)/features/ModelList.tsx +0 -0
  334. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/(home)/features/PluginList.tsx +0 -0
  335. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/(home)/loading.tsx +0 -0
  336. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/_layout/Desktop/Nav.tsx +0 -0
  337. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/_layout/Desktop/index.tsx +0 -0
  338. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/_layout/Desktop/useScroll.ts +0 -0
  339. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/_layout/Mobile/Header.tsx +0 -0
  340. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/_layout/Mobile/Nav.tsx +0 -0
  341. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/_layout/Mobile/index.tsx +0 -0
  342. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/_layout/Desktop.tsx +0 -0
  343. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/_layout/Mobile.tsx +0 -0
  344. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/features/Card.tsx +0 -0
  345. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/features/Category.tsx +0 -0
  346. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/features/List.tsx +0 -0
  347. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/features/useCategory.tsx +0 -0
  348. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/layout.tsx +0 -0
  349. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/assistants/loading.tsx +0 -0
  350. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/error.tsx +0 -0
  351. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/layout.tsx +0 -0
  352. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/loading.tsx +0 -0
  353. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/_layout/Desktop.tsx +0 -0
  354. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/_layout/Mobile.tsx +0 -0
  355. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/features/Card.tsx +0 -0
  356. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/features/Category.tsx +0 -0
  357. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/features/List.tsx +0 -0
  358. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/features/const.ts +0 -0
  359. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/layout.tsx +0 -0
  360. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/models/loading.tsx +0 -0
  361. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/not-found.tsx +0 -0
  362. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/_layout/Desktop.tsx +0 -0
  363. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/_layout/Mobile.tsx +0 -0
  364. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/features/Card.tsx +0 -0
  365. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/features/Category.tsx +0 -0
  366. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/features/List.tsx +0 -0
  367. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/features/useCategory.tsx +0 -0
  368. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/layout.tsx +0 -0
  369. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/plugins/loading.tsx +0 -0
  370. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/providers/features/Card.tsx +0 -0
  371. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/providers/features/List.tsx +0 -0
  372. /package/src/app/{(main) → [variants]/(main)}/discover/(list)/providers/loading.tsx +0 -0
  373. /package/src/app/{(main) → [variants]/(main)}/discover/_layout/Desktop/Header.tsx +0 -0
  374. /package/src/app/{(main) → [variants]/(main)}/discover/_layout/Desktop/index.tsx +0 -0
  375. /package/src/app/{(main) → [variants]/(main)}/discover/_layout/Mobile/index.tsx +0 -0
  376. /package/src/app/{(main) → [variants]/(main)}/discover/components/CardBanner.tsx +0 -0
  377. /package/src/app/{(main) → [variants]/(main)}/discover/components/CategoryContainer.tsx +0 -0
  378. /package/src/app/{(main) → [variants]/(main)}/discover/components/CategoryMenu.tsx +0 -0
  379. /package/src/app/{(main) → [variants]/(main)}/discover/components/GitHubAvatar.tsx +0 -0
  380. /package/src/app/{(main) → [variants]/(main)}/discover/components/GridLoadingCard.tsx +0 -0
  381. /package/src/app/{(main) → [variants]/(main)}/discover/components/ListLoading.tsx +0 -0
  382. /package/src/app/{(main) → [variants]/(main)}/discover/components/Loading.tsx +0 -0
  383. /package/src/app/{(main) → [variants]/(main)}/discover/components/SearchResultCount.tsx +0 -0
  384. /package/src/app/{(main) → [variants]/(main)}/discover/components/Statistic.tsx +0 -0
  385. /package/src/app/{(main) → [variants]/(main)}/discover/components/Title.tsx +0 -0
  386. /package/src/app/{(main) → [variants]/(main)}/discover/components/VirtuosoGridList/index.tsx +0 -0
  387. /package/src/app/{(main) → [variants]/(main)}/discover/components/VirtuosoGridList/useScrollParent.ts +0 -0
  388. /package/src/app/{(main) → [variants]/(main)}/discover/error.tsx +0 -0
  389. /package/src/app/{(main) → [variants]/(main)}/discover/features/CreateButton/Inner.tsx +0 -0
  390. /package/src/app/{(main) → [variants]/(main)}/discover/features/CreateButton/index.tsx +0 -0
  391. /package/src/app/{(main) → [variants]/(main)}/discover/features/LikeButton.tsx +0 -0
  392. /package/src/app/{(main) → [variants]/(main)}/discover/features/ModelFeatureTags.tsx +0 -0
  393. /package/src/app/{(main) → [variants]/(main)}/discover/features/StoreSearchBar.tsx +0 -0
  394. /package/src/app/{(main) → [variants]/(main)}/discover/features/const.ts +0 -0
  395. /package/src/app/{(main) → [variants]/(main)}/discover/features/useNav.tsx +0 -0
  396. /package/src/app/{(main) → [variants]/(main)}/discover/loading.tsx +0 -0
  397. /package/src/app/{(main) → [variants]/(main)}/discover/not-found.tsx +0 -0
  398. /package/src/app/{(main) → [variants]/(main)}/discover/search/_layout/Desktop.tsx +0 -0
  399. /package/src/app/{(main) → [variants]/(main)}/discover/search/_layout/Mobile/Header.tsx +0 -0
  400. /package/src/app/{(main) → [variants]/(main)}/discover/search/_layout/Mobile/Nav.tsx +0 -0
  401. /package/src/app/{(main) → [variants]/(main)}/discover/search/_layout/Mobile/index.tsx +0 -0
  402. /package/src/app/{(main) → [variants]/(main)}/discover/search/features/AssistantsResult.tsx +0 -0
  403. /package/src/app/{(main) → [variants]/(main)}/discover/search/features/Category.tsx +0 -0
  404. /package/src/app/{(main) → [variants]/(main)}/discover/search/features/ModelsResult.tsx +0 -0
  405. /package/src/app/{(main) → [variants]/(main)}/discover/search/features/PluginsResult.tsx +0 -0
  406. /package/src/app/{(main) → [variants]/(main)}/discover/search/features/ProvidersResult.tsx +0 -0
  407. /package/src/app/{(main) → [variants]/(main)}/discover/search/layout.tsx +0 -0
  408. /package/src/app/{(main) → [variants]/(main)}/discover/search/loading.tsx +0 -0
  409. /package/src/app/{(main) → [variants]/(main)}/error.tsx +0 -0
  410. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/default.tsx +0 -0
  411. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/features/KnowledgeBase/EmptyStatus.tsx +0 -0
  412. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/features/KnowledgeBase/Item/Content.tsx +0 -0
  413. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/features/KnowledgeBase/Item/index.tsx +0 -0
  414. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/features/KnowledgeBase/KnowledgeBaseList.tsx +0 -0
  415. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/features/KnowledgeBase/SkeletonList.tsx +0 -0
  416. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@menu/features/KnowledgeBase/index.tsx +0 -0
  417. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@modal/(.)[id]/FileDetail.tsx +0 -0
  418. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@modal/(.)[id]/FilePreview.tsx +0 -0
  419. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@modal/(.)[id]/page.tsx +0 -0
  420. /package/src/app/{(main) → [variants]/(main)}/files/(content)/@modal/default.tsx +0 -0
  421. /package/src/app/{(main) → [variants]/(main)}/files/(content)/NotSupportClient.tsx +0 -0
  422. /package/src/app/{(main) → [variants]/(main)}/files/(content)/_layout/Desktop/index.tsx +0 -0
  423. /package/src/app/{(main) → [variants]/(main)}/files/(content)/_layout/Mobile.tsx +0 -0
  424. /package/src/app/{(main) → [variants]/(main)}/files/(content)/_layout/type.ts +0 -0
  425. /package/src/app/{(main) → [variants]/(main)}/files/(content)/layout.tsx +0 -0
  426. /package/src/app/{(main) → [variants]/(main)}/files/[id]/Header.tsx +0 -0
  427. /package/src/app/{(main) → [variants]/(main)}/files/[id]/page.tsx +0 -0
  428. /package/src/app/{(main) → [variants]/(main)}/files/features/FileDetail.tsx +0 -0
  429. /package/src/app/{(main) → [variants]/(main)}/files/loading.tsx +0 -0
  430. /package/src/app/{(main) → [variants]/(main)}/layout.tsx +0 -0
  431. /package/src/app/{(main) → [variants]/(main)}/not-found.tsx +0 -0
  432. /package/src/app/{(main) → [variants]/(main)}/profile/(home)/Client.tsx +0 -0
  433. /package/src/app/{(main) → [variants]/(main)}/profile/@category/default.tsx +0 -0
  434. /package/src/app/{(main) → [variants]/(main)}/profile/@category/features/CategoryContent.tsx +0 -0
  435. /package/src/app/{(main) → [variants]/(main)}/profile/_layout/Desktop/Header.tsx +0 -0
  436. /package/src/app/{(main) → [variants]/(main)}/profile/_layout/Desktop/SideBar.tsx +0 -0
  437. /package/src/app/{(main) → [variants]/(main)}/profile/_layout/Desktop/index.tsx +0 -0
  438. /package/src/app/{(main) → [variants]/(main)}/profile/_layout/Mobile/Header.tsx +0 -0
  439. /package/src/app/{(main) → [variants]/(main)}/profile/_layout/Mobile/index.tsx +0 -0
  440. /package/src/app/{(main) → [variants]/(main)}/profile/_layout/type.ts +0 -0
  441. /package/src/app/{(main) → [variants]/(main)}/profile/error.tsx +0 -0
  442. /package/src/app/{(main) → [variants]/(main)}/profile/hooks/useCategory.tsx +0 -0
  443. /package/src/app/{(main) → [variants]/(main)}/profile/layout.tsx +0 -0
  444. /package/src/app/{(main) → [variants]/(main)}/profile/loading.tsx +0 -0
  445. /package/src/app/{(main) → [variants]/(main)}/profile/not-found.tsx +0 -0
  446. /package/src/app/{(main) → [variants]/(main)}/profile/stats/Client.tsx +0 -0
  447. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/AiHeatmaps.tsx +0 -0
  448. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/AssistantsRank.tsx +0 -0
  449. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/ModelsRank.tsx +0 -0
  450. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/ShareButton/Preview.tsx +0 -0
  451. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/ShareButton/ShareModal.tsx +0 -0
  452. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/ShareButton/TotalCard.tsx +0 -0
  453. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/ShareButton/index.tsx +0 -0
  454. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/TimeLabel.tsx +0 -0
  455. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/TopicsRank.tsx +0 -0
  456. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/TotalAssistants.tsx +0 -0
  457. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/TotalMessages.tsx +0 -0
  458. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/TotalTopics.tsx +0 -0
  459. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/TotalWords.tsx +0 -0
  460. /package/src/app/{(main) → [variants]/(main)}/profile/stats/features/Welcome.tsx +0 -0
  461. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/@menu/Head/index.tsx +0 -0
  462. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/@menu/Menu/index.tsx +0 -0
  463. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/@menu/default.tsx +0 -0
  464. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/_layout/Desktop/index.tsx +0 -0
  465. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/_layout/Mobile.tsx +0 -0
  466. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/_layout/type.ts +0 -0
  467. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/components/Container.tsx +0 -0
  468. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/components/Tabs.tsx +0 -0
  469. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/dataset/CreateDataset/CreateForm.tsx +0 -0
  470. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/dataset/CreateDataset/index.tsx +0 -0
  471. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/dataset/DatasetDetail/index.tsx +0 -0
  472. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/dataset/DatasetList/Item.tsx +0 -0
  473. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/dataset/DatasetList/index.tsx +0 -0
  474. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/dataset/EmptyGuide/index.tsx +0 -0
  475. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/dataset/page.tsx +0 -0
  476. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/evaluation/CreateEvaluation/CreateForm.tsx +0 -0
  477. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/evaluation/CreateEvaluation/index.tsx +0 -0
  478. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/evaluation/CreateEvaluation/useModal.tsx +0 -0
  479. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/evaluation/EmptyGuide/index.tsx +0 -0
  480. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/evaluation/EvaluationList/index.tsx +0 -0
  481. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/evaluation/page.tsx +0 -0
  482. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/layout.tsx +0 -0
  483. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/evals/page.tsx +0 -0
  484. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/hooks/useKnowledgeItem.ts +0 -0
  485. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/layout.tsx +0 -0
  486. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/not-found.tsx +0 -0
  487. /package/src/app/{(main) → [variants]/(main)}/repos/[id]/page.tsx +0 -0
  488. /package/src/app/{(main) → [variants]/(main)}/repos/layout.tsx +0 -0
  489. /package/src/app/{(main) → [variants]/(main)}/settings/@category/default.tsx +0 -0
  490. /package/src/app/{(main) → [variants]/(main)}/settings/@category/features/UpgradeAlert.tsx +0 -0
  491. /package/src/app/{(main) → [variants]/(main)}/settings/_layout/Desktop/Header.tsx +0 -0
  492. /package/src/app/{(main) → [variants]/(main)}/settings/_layout/Desktop/SideBar.tsx +0 -0
  493. /package/src/app/{(main) → [variants]/(main)}/settings/_layout/Desktop/index.tsx +0 -0
  494. /package/src/app/{(main) → [variants]/(main)}/settings/_layout/Mobile/Header.tsx +0 -0
  495. /package/src/app/{(main) → [variants]/(main)}/settings/_layout/Mobile/index.tsx +0 -0
  496. /package/src/app/{(main) → [variants]/(main)}/settings/_layout/type.ts +0 -0
  497. /package/src/app/{(main) → [variants]/(main)}/settings/about/features/AboutList.tsx +0 -0
  498. /package/src/app/{(main) → [variants]/(main)}/settings/about/features/Analytics.tsx +0 -0
  499. /package/src/app/{(main) → [variants]/(main)}/settings/about/features/ItemCard.tsx +0 -0
  500. /package/src/app/{(main) → [variants]/(main)}/settings/about/features/ItemLink.tsx +0 -0
  501. /package/src/app/{(main) → [variants]/(main)}/settings/about/features/Version.tsx +0 -0
  502. /package/src/app/{(main) → [variants]/(main)}/settings/about/index.tsx +0 -0
  503. /package/src/app/{(main) → [variants]/(main)}/settings/about/page.tsx +0 -0
  504. /package/src/app/{(main) → [variants]/(main)}/settings/agent/index.tsx +0 -0
  505. /package/src/app/{(main) → [variants]/(main)}/settings/agent/page.tsx +0 -0
  506. /package/src/app/{(main) → [variants]/(main)}/settings/common/features/Theme/ThemeSwatches/ThemeSwatchesNeutral.tsx +0 -0
  507. /package/src/app/{(main) → [variants]/(main)}/settings/common/features/Theme/ThemeSwatches/ThemeSwatchesPrimary.tsx +0 -0
  508. /package/src/app/{(main) → [variants]/(main)}/settings/common/features/Theme/ThemeSwatches/index.ts +0 -0
  509. /package/src/app/{(main) → [variants]/(main)}/settings/common/index.tsx +0 -0
  510. /package/src/app/{(main) → [variants]/(main)}/settings/common/page.tsx +0 -0
  511. /package/src/app/{(main) → [variants]/(main)}/settings/error.tsx +0 -0
  512. /package/src/app/{(main) → [variants]/(main)}/settings/features/UpgradeAlert.tsx +0 -0
  513. /package/src/app/{(main) → [variants]/(main)}/settings/hooks/useCategory.tsx +0 -0
  514. /package/src/app/{(main) → [variants]/(main)}/settings/hooks/useSyncSettings.ts +0 -0
  515. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/Azure/index.tsx +0 -0
  516. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/Bedrock/index.tsx +0 -0
  517. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/Cloudflare/index.tsx +0 -0
  518. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/Github/index.tsx +0 -0
  519. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/HuggingFace/index.tsx +0 -0
  520. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/Ollama/Checker.tsx +0 -0
  521. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/Ollama/index.tsx +0 -0
  522. /package/src/app/{(main) → [variants]/(main)}/settings/llm/ProviderList/OpenAI/index.tsx +0 -0
  523. /package/src/app/{(main) → [variants]/(main)}/settings/llm/components/Checker.tsx +0 -0
  524. /package/src/app/{(main) → [variants]/(main)}/settings/llm/components/ProviderModelList/CustomModelOption.tsx +0 -0
  525. /package/src/app/{(main) → [variants]/(main)}/settings/llm/components/ProviderModelList/ModelConfigModal/Form.tsx +0 -0
  526. /package/src/app/{(main) → [variants]/(main)}/settings/llm/components/ProviderModelList/ModelConfigModal/index.tsx +0 -0
  527. /package/src/app/{(main) → [variants]/(main)}/settings/llm/components/ProviderModelList/ModelFetcher.tsx +0 -0
  528. /package/src/app/{(main) → [variants]/(main)}/settings/llm/components/ProviderModelList/Option.tsx +0 -0
  529. /package/src/app/{(main) → [variants]/(main)}/settings/llm/components/ProviderModelList/index.tsx +0 -0
  530. /package/src/app/{(main) → [variants]/(main)}/settings/llm/const.ts +0 -0
  531. /package/src/app/{(main) → [variants]/(main)}/settings/llm/features/Footer.tsx +0 -0
  532. /package/src/app/{(main) → [variants]/(main)}/settings/llm/index.tsx +0 -0
  533. /package/src/app/{(main) → [variants]/(main)}/settings/llm/page.tsx +0 -0
  534. /package/src/app/{(main) → [variants]/(main)}/settings/llm/type.ts +0 -0
  535. /package/src/app/{(main) → [variants]/(main)}/settings/loading.tsx +0 -0
  536. /package/src/app/{(main) → [variants]/(main)}/settings/not-found.tsx +0 -0
  537. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/[id]/ClientMode.tsx +0 -0
  538. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/[id]/index.tsx +0 -0
  539. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/[id]/page.tsx +0 -0
  540. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/azure/page.tsx +0 -0
  541. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/bedrock/page.tsx +0 -0
  542. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/cloudflare/page.tsx +0 -0
  543. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/doubao/page.tsx +0 -0
  544. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/github/page.tsx +0 -0
  545. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/huggingface/page.tsx +0 -0
  546. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/ollama/CheckError.tsx +0 -0
  547. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/ollama/Container.tsx +0 -0
  548. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/ollama/OllamaModelDownloader/index.tsx +0 -0
  549. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/ollama/OllamaModelDownloader/useDownloadMonitor.ts +0 -0
  550. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/ollama/page.tsx +0 -0
  551. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(detail)/openai/page.tsx +0 -0
  552. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(list)/Footer.tsx +0 -0
  553. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(list)/ProviderGrid/Card.tsx +0 -0
  554. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(list)/ProviderGrid/EnableSwitch.tsx +0 -0
  555. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(list)/ProviderGrid/index.tsx +0 -0
  556. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(list)/ProviderGrid/style.ts +0 -0
  557. /package/src/app/{(main) → [variants]/(main)}/settings/provider/(list)/index.tsx +0 -0
  558. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/AddNew.tsx +0 -0
  559. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/All.tsx +0 -0
  560. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/Item.tsx +0 -0
  561. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/List.tsx +0 -0
  562. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/SearchResult.tsx +0 -0
  563. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/SkeletonList.tsx +0 -0
  564. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/SortProviderModal/GroupItem.tsx +0 -0
  565. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/SortProviderModal/index.tsx +0 -0
  566. /package/src/app/{(main) → [variants]/(main)}/settings/provider/ProviderMenu/index.tsx +0 -0
  567. /package/src/app/{(main) → [variants]/(main)}/settings/provider/_layout/Desktop.tsx +0 -0
  568. /package/src/app/{(main) → [variants]/(main)}/settings/provider/_layout/Mobile.tsx +0 -0
  569. /package/src/app/{(main) → [variants]/(main)}/settings/provider/const.ts +0 -0
  570. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/CreateNewProvider/index.tsx +0 -0
  571. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/CreateNewModelModal/Form.tsx +0 -0
  572. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/CreateNewModelModal/index.tsx +0 -0
  573. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/DisabledModels.tsx +0 -0
  574. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/EmptyModels.tsx +0 -0
  575. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/EnabledModelList/index.tsx +0 -0
  576. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/ModelConfigModal/index.tsx +0 -0
  577. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/ModelItem.tsx +0 -0
  578. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/ModelTitle/Search.tsx +0 -0
  579. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/ModelTitle/index.tsx +0 -0
  580. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/SearchResult.tsx +0 -0
  581. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/SkeletonList.tsx +0 -0
  582. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/SortModelModal/ListItem.tsx +0 -0
  583. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/SortModelModal/index.tsx +0 -0
  584. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ModelList/index.tsx +0 -0
  585. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ProviderConfig/Checker.tsx +0 -0
  586. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ProviderConfig/EnableSwitch.tsx +0 -0
  587. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ProviderConfig/SkeletonInput.tsx +0 -0
  588. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ProviderConfig/UpdateProviderInfo/SettingModal.tsx +0 -0
  589. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ProviderConfig/UpdateProviderInfo/index.tsx +0 -0
  590. /package/src/app/{(main) → [variants]/(main)}/settings/provider/features/ProviderConfig/index.tsx +0 -0
  591. /package/src/app/{(main) → [variants]/(main)}/settings/provider/page.tsx +0 -0
  592. /package/src/app/{(main) → [variants]/(main)}/settings/provider/type.ts +0 -0
  593. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/Alert.tsx +0 -0
  594. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/DeviceInfo/Card.tsx +0 -0
  595. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/DeviceInfo/DeviceName.tsx +0 -0
  596. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/DeviceInfo/SystemIcon.tsx +0 -0
  597. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/DeviceInfo/index.tsx +0 -0
  598. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/WebRTC/ChannelNameInput.tsx +0 -0
  599. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/WebRTC/SyncSwitch/index.css +0 -0
  600. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/WebRTC/SyncSwitch/index.tsx +0 -0
  601. /package/src/app/{(main) → [variants]/(main)}/settings/sync/features/WebRTC/generateRandomRoomName.ts +0 -0
  602. /package/src/app/{(main) → [variants]/(main)}/settings/sync/index.tsx +0 -0
  603. /package/src/app/{(main) → [variants]/(main)}/settings/sync/page.tsx +0 -0
  604. /package/src/app/{(main) → [variants]/(main)}/settings/system-agent/features/createForm.tsx +0 -0
  605. /package/src/app/{(main) → [variants]/(main)}/settings/system-agent/features/useSync.ts +0 -0
  606. /package/src/app/{(main) → [variants]/(main)}/settings/system-agent/index.tsx +0 -0
  607. /package/src/app/{(main) → [variants]/(main)}/settings/system-agent/page.tsx +0 -0
  608. /package/src/app/{(main) → [variants]/(main)}/settings/tts/features/OpenAI.tsx +0 -0
  609. /package/src/app/{(main) → [variants]/(main)}/settings/tts/features/STT.tsx +0 -0
  610. /package/src/app/{(main) → [variants]/(main)}/settings/tts/features/const.tsx +0 -0
  611. /package/src/app/{(main) → [variants]/(main)}/settings/tts/index.tsx +0 -0
  612. /package/src/app/{(main) → [variants]/(main)}/settings/tts/page.tsx +0 -0
  613. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/Cover.tsx +0 -0
  614. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/Hero.tsx +0 -0
  615. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/Pagination.tsx +0 -0
  616. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/Post.tsx +0 -0
  617. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/PublishedTime.tsx +0 -0
  618. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/ReadDetail.tsx +0 -0
  619. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/UpdateChangelogStatus.tsx +0 -0
  620. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/features/VersionTag.tsx +0 -0
  621. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/layout.tsx +0 -0
  622. /package/src/app/{@modal → [variants]/@modal}/(.)changelog/modal/loading.tsx +0 -0
  623. /package/src/app/{@modal → [variants]/@modal}/_layout/ModalLayout.tsx +0 -0
  624. /package/src/app/{@modal → [variants]/@modal}/chat/(.)settings/modal/features/useCategory.tsx +0 -0
  625. /package/src/app/{@modal → [variants]/@modal}/chat/(.)settings/modal/loading.tsx +0 -0
  626. /package/src/app/{@modal → [variants]/@modal}/chat/(.)settings/modal/page.tsx +0 -0
  627. /package/src/app/{@modal → [variants]/@modal}/default.tsx +0 -0
  628. /package/src/app/{@modal → [variants]/@modal}/error.tsx +0 -0
  629. /package/src/app/{@modal → [variants]/@modal}/layout.tsx +0 -0
  630. /package/src/app/{@modal → [variants]/@modal}/loading.tsx +0 -0
  631. /package/src/app/{error.tsx → [variants]/error.tsx} +0 -0
  632. /package/src/app/{global-error.tsx → [variants]/global-error.tsx} +0 -0
  633. /package/src/app/{loading → [variants]/loading}/Client/Content.tsx +0 -0
  634. /package/src/app/{loading → [variants]/loading}/Client/Error.tsx +0 -0
  635. /package/src/app/{loading → [variants]/loading}/Client/Redirect.tsx +0 -0
  636. /package/src/app/{loading → [variants]/loading}/Client/index.tsx +0 -0
  637. /package/src/app/{loading → [variants]/loading}/Server/Content.tsx +0 -0
  638. /package/src/app/{loading → [variants]/loading}/Server/Redirect.tsx +0 -0
  639. /package/src/app/{loading → [variants]/loading}/Server/index.tsx +0 -0
  640. /package/src/app/{loading → [variants]/loading}/index.tsx +0 -0
  641. /package/src/app/{loading → [variants]/loading}/stage.ts +0 -0
  642. /package/src/app/{metadata.ts → [variants]/metadata.ts} +0 -0
  643. /package/src/app/{not-found.tsx → [variants]/not-found.tsx} +0 -0
@@ -1,42 +1,19 @@
1
- import { ActionIcon, Icon } from '@lobehub/ui';
2
- import { Button } from 'antd';
1
+ import { Empty } from 'antd';
3
2
  import { createStyles } from 'antd-style';
4
3
  import { Download, Filter, RefreshCw } from 'lucide-react';
5
4
  import React from 'react';
5
+ import { Center, Flexbox } from 'react-layout-kit';
6
6
  import { mutate } from 'swr';
7
7
 
8
- import { FETCH_TABLE_DATA_KEY } from '../usePgTable';
9
- import Table from './Table';
8
+ import Header from '../../features/Header';
9
+ import Table from '../../features/Table';
10
+ import { FETCH_TABLE_DATA_KEY, usePgTable, useTableColumns } from '../usePgTable';
10
11
 
11
12
  const useStyles = createStyles(({ token, css }) => ({
12
13
  dataPanel: css`
13
14
  overflow: hidden;
14
- display: flex;
15
- flex: 1;
16
- flex-direction: column;
17
-
18
- height: 100%;
19
-
20
15
  background: ${token.colorBgContainer};
21
16
  `,
22
- toolbar: css`
23
- display: flex;
24
- align-items: center;
25
- justify-content: space-between;
26
-
27
- padding-block: 12px;
28
- padding-inline: 16px;
29
- border-block-end: 1px solid ${token.colorBorderSecondary};
30
- `,
31
- toolbarButtons: css`
32
- display: flex;
33
- gap: 4px;
34
- `,
35
- toolbarTitle: css`
36
- font-size: ${token.fontSizeLG}px;
37
- font-weight: ${token.fontWeightStrong};
38
- color: ${token.colorText};
39
- `,
40
17
  }));
41
18
 
42
19
  interface DataTableProps {
@@ -46,29 +23,42 @@ interface DataTableProps {
46
23
  const DataTable = ({ tableName }: DataTableProps) => {
47
24
  const { styles } = useStyles();
48
25
 
26
+ const tableColumns = useTableColumns(tableName);
27
+ const tableData = usePgTable(tableName);
28
+ const columns = tableColumns.data?.map((t) => t.name) || [];
29
+ const isLoading = tableColumns.isLoading || tableData.isLoading;
30
+ const dataSource = tableData.data?.data || [];
31
+
49
32
  return (
50
- <div className={styles.dataPanel}>
51
- {/* Toolbar */}
52
- <div className={styles.toolbar}>
53
- <div className={styles.toolbarTitle}>{tableName || 'Select a table'}</div>
54
- <div className={styles.toolbarButtons}>
55
- <Button color={'default'} icon={<Icon icon={Filter} />} variant={'filled'}>
56
- Filter
57
- </Button>
58
- <ActionIcon icon={Download} title={'Export'} />
59
- <ActionIcon
60
- icon={RefreshCw}
61
- onClick={async () => {
33
+ <Flexbox className={styles.dataPanel} flex={1} height={'100%'}>
34
+ <Header
35
+ actions={[
36
+ {
37
+ icon: Filter,
38
+ title: 'Filter',
39
+ },
40
+ {
41
+ icon: Download,
42
+ title: 'Export',
43
+ },
44
+ {
45
+ icon: RefreshCw,
46
+ onClick: async () => {
62
47
  await mutate(FETCH_TABLE_DATA_KEY(tableName));
63
- }}
64
- title={'Refresh'}
65
- />
66
- </div>
67
- </div>
68
-
69
- {/* Table */}
70
- <Table tableName={tableName} />
71
- </div>
48
+ },
49
+ title: 'Refresh',
50
+ },
51
+ ]}
52
+ title={tableName || 'Select a table'}
53
+ />
54
+ {tableName ? (
55
+ <Table columns={columns} dataSource={dataSource} loading={isLoading} />
56
+ ) : (
57
+ <Center height={'80%'}>
58
+ <Empty description={'Select a table to view data'} image={Empty.PRESENTED_IMAGE_SIMPLE} />
59
+ </Center>
60
+ )}
61
+ </Flexbox>
72
62
  );
73
63
  };
74
64
 
@@ -3,7 +3,7 @@ import { createStyles } from 'antd-style';
3
3
  import React from 'react';
4
4
  import { Flexbox } from 'react-layout-kit';
5
5
 
6
- import { useTableColumns } from './usePgTable';
6
+ import { useTableColumns } from '../usePgTable';
7
7
 
8
8
  const useStyles = createStyles(({ token, css }) => ({
9
9
  container: css`
@@ -26,7 +26,7 @@ interface TableColumnsProps {
26
26
  tableName: string;
27
27
  }
28
28
 
29
- const TableColumns = ({ tableName }: TableColumnsProps) => {
29
+ const Columns = ({ tableName }: TableColumnsProps) => {
30
30
  const { styles } = useStyles();
31
31
 
32
32
  const { data, isLoading } = useTableColumns(tableName);
@@ -34,7 +34,9 @@ const TableColumns = ({ tableName }: TableColumnsProps) => {
34
34
  return (
35
35
  <div className={styles.container}>
36
36
  {isLoading ? (
37
- <div>Loading...</div>
37
+ ` <Center width={'100%'}>
38
+ <Icon icon={Loader2Icon} spin />
39
+ </Center>`
38
40
  ) : (
39
41
  <Flexbox>
40
42
  {data?.map((column) => (
@@ -64,4 +66,4 @@ const TableColumns = ({ tableName }: TableColumnsProps) => {
64
66
  );
65
67
  };
66
68
 
67
- export default TableColumns;
69
+ export default Columns;
@@ -1,11 +1,11 @@
1
- import { Icon } from '@lobehub/ui';
1
+ import { DraggablePanel, DraggablePanelBody, Icon } from '@lobehub/ui';
2
2
  import { createStyles } from 'antd-style';
3
- import { ChevronDown, ChevronRight, Database, Table as TableIcon } from 'lucide-react';
3
+ import { ChevronDown, ChevronRight, Database, Loader2Icon, Table as TableIcon } from 'lucide-react';
4
4
  import React, { useState } from 'react';
5
- import { Flexbox } from 'react-layout-kit';
5
+ import { Center, Flexbox } from 'react-layout-kit';
6
6
 
7
- import TableColumns from './TableColumns';
8
- import { useFetchTables } from './usePgTable';
7
+ import { useFetchTables } from '../usePgTable';
8
+ import Columns from './Columns';
9
9
 
10
10
  const useStyles = createStyles(({ token, css }) => ({
11
11
  button: css`
@@ -51,24 +51,7 @@ const useStyles = createStyles(({ token, css }) => ({
51
51
  color: ${token.colorTextTertiary};
52
52
  `,
53
53
  schemaHeader: css`
54
- display: flex;
55
- gap: 8px;
56
- align-items: center;
57
-
58
- padding-block: 12px;
59
- padding-inline: 16px;
60
-
61
54
  font-weight: ${token.fontWeightStrong};
62
- color: ${token.colorText};
63
- `,
64
- schemaPanel: css`
65
- overflow: scroll;
66
-
67
- width: 280px;
68
- height: 100%;
69
- border-inline-end: 1px solid ${token.colorBorderSecondary};
70
-
71
- background: ${token.colorBgContainer};
72
55
  `,
73
56
  selected: css`
74
57
  background: ${token.colorFillSecondary};
@@ -146,41 +129,52 @@ const SchemaPanel = ({ onTableSelect, selectedTable }: SchemaPanelProps) => {
146
129
  };
147
130
 
148
131
  return (
149
- <div className={styles.schemaPanel}>
150
- <div className={styles.schemaHeader}>
151
- <Database size={16} />
152
- <Flexbox align={'center'} horizontal justify={'space-between'}>
153
- <span>Tables {data?.length}</span>
154
- <span className={styles.schema}>public</span>
132
+ <DraggablePanel placement={'left'}>
133
+ <Flexbox height={'100%'} style={{ overflow: 'hidden', position: 'relative' }}>
134
+ <Flexbox
135
+ align={'center'}
136
+ className={styles.schemaHeader}
137
+ gap={8}
138
+ horizontal
139
+ paddingBlock={12}
140
+ paddingInline={16}
141
+ >
142
+ <Database size={16} />
143
+ <Flexbox align={'center'} horizontal justify={'space-between'}>
144
+ <span>Tables {data?.length}</span>
145
+ <span className={styles.schema}>public</span>
146
+ </Flexbox>
155
147
  </Flexbox>
156
- </div>
157
- {isLoading ? (
158
- <div>Loading...</div>
159
- ) : (
160
- <Flexbox>
161
- {data?.map((table) => (
162
- <div key={table.name}>
163
- <Flexbox
164
- className={cx(styles.tableItem, selectedTable === table.name && styles.selected)}
165
- horizontal
166
- onClick={() => {
167
- toggleTable(table.name);
168
- onTableSelect(table.name);
169
- }}
170
- >
171
- <Icon icon={expandedTables.has(table.name) ? ChevronDown : ChevronRight} />
172
- <TableIcon size={16} />
173
- <Flexbox align={'center'} horizontal justify={'space-between'}>
174
- <span>{table.name}</span>
175
- <span className={styles.count}>{table.count}</span>
148
+ <DraggablePanelBody style={{ padding: 0 }}>
149
+ {isLoading ? (
150
+ <Center height={'100%'} width={'100%'}>
151
+ <Icon icon={Loader2Icon} spin />
152
+ </Center>
153
+ ) : (
154
+ data?.map((table) => (
155
+ <div key={table.name}>
156
+ <Flexbox
157
+ className={cx(styles.tableItem, selectedTable === table.name && styles.selected)}
158
+ horizontal
159
+ onClick={() => {
160
+ toggleTable(table.name);
161
+ onTableSelect(table.name);
162
+ }}
163
+ >
164
+ <Icon icon={expandedTables.has(table.name) ? ChevronDown : ChevronRight} />
165
+ <TableIcon size={16} />
166
+ <Flexbox align={'center'} horizontal justify={'space-between'}>
167
+ <span>{table.name}</span>
168
+ <span className={styles.count}>{table.count}</span>
169
+ </Flexbox>
176
170
  </Flexbox>
177
- </Flexbox>
178
- {expandedTables.has(table.name) && <TableColumns tableName={table.name} />}
179
- </div>
180
- ))}
181
- </Flexbox>
182
- )}
183
- </div>
171
+ {expandedTables.has(table.name) && <Columns tableName={table.name} />}
172
+ </div>
173
+ ))
174
+ )}
175
+ </DraggablePanelBody>
176
+ </Flexbox>
177
+ </DraggablePanel>
184
178
  );
185
179
  };
186
180
 
@@ -1,8 +1,10 @@
1
+ 'use client';
2
+
1
3
  import React, { useState } from 'react';
2
4
  import { Flexbox } from 'react-layout-kit';
3
5
 
4
6
  import DataTable from './DataTable';
5
- import SchemaPanel from './Schema';
7
+ import SchemaSidebar from './SchemaSidebar';
6
8
 
7
9
  // Main Database Panel Component
8
10
  const DatabasePanel = () => {
@@ -10,7 +12,7 @@ const DatabasePanel = () => {
10
12
 
11
13
  return (
12
14
  <Flexbox height={'100%'} horizontal>
13
- <SchemaPanel onTableSelect={setSelectedTable} selectedTable={selectedTable} />
15
+ <SchemaSidebar onTableSelect={setSelectedTable} selectedTable={selectedTable} />
14
16
  <DataTable tableName={selectedTable} />
15
17
  </Flexbox>
16
18
  );
@@ -0,0 +1,218 @@
1
+ 'use client';
2
+
3
+ import { ActionIcon, FluentEmoji, Icon, SideNav } from '@lobehub/ui';
4
+ import { Dropdown, FloatButton } from 'antd';
5
+ import { createStyles } from 'antd-style';
6
+ import { BugIcon, BugOff, XIcon } from 'lucide-react';
7
+ import { ReactNode, memo, useEffect, useState } from 'react';
8
+ import { Flexbox } from 'react-layout-kit';
9
+ import { Rnd } from 'react-rnd';
10
+
11
+ import { BRANDING_NAME } from '@/const/branding';
12
+
13
+ // 定义样式
14
+ const useStyles = createStyles(({ token, css, prefixCls }) => {
15
+ return {
16
+ collapsed: css`
17
+ pointer-events: none;
18
+ transform: scale(0.8);
19
+ opacity: 0;
20
+ `,
21
+ expanded: css`
22
+ pointer-events: auto;
23
+ transform: scale(1);
24
+ opacity: 1;
25
+ `,
26
+ floatButton: css`
27
+ inset-block-end: 16px;
28
+ inset-inline-end: 16px;
29
+
30
+ width: 36px;
31
+ height: 36px;
32
+ border: 1px solid ${token.colorBorderSecondary};
33
+
34
+ font-size: 20px;
35
+ .${prefixCls}-float-btn-body {
36
+ background: ${token.colorBgLayout};
37
+
38
+ &:hover {
39
+ width: auto;
40
+ background: ${token.colorBgElevated};
41
+ }
42
+ }
43
+ `,
44
+ header: css`
45
+ cursor: move;
46
+ user-select: none;
47
+
48
+ padding-block: 8px;
49
+ padding-inline: 16px;
50
+ border-block-end: 1px solid ${token.colorBorderSecondary};
51
+
52
+ color: ${token.colorText};
53
+
54
+ background: ${token.colorFillAlter};
55
+ `,
56
+ panel: css`
57
+ position: fixed;
58
+ z-index: 1000;
59
+
60
+ overflow: hidden;
61
+ display: flex;
62
+
63
+ border: 1px solid ${token.colorBorderSecondary};
64
+ border-radius: 12px;
65
+
66
+ background: ${token.colorBgContainer};
67
+ box-shadow: ${token.boxShadow};
68
+
69
+ transition: opacity ${token.motionDurationMid} ${token.motionEaseInOut};
70
+ `,
71
+ };
72
+ });
73
+
74
+ const minWidth = 800;
75
+ const minHeight = 600;
76
+
77
+ interface CollapsibleFloatPanelProps {
78
+ items: { children: ReactNode; icon: ReactNode; key: string }[];
79
+ }
80
+
81
+ const CollapsibleFloatPanel = memo<CollapsibleFloatPanelProps>(({ items }) => {
82
+ const { styles, theme } = useStyles();
83
+ const [tab, setTab] = useState<string>(items[0].key);
84
+ const [isHide, setIsHide] = useState(false);
85
+ const [isExpanded, setIsExpanded] = useState(false);
86
+ const [position, setPosition] = useState({ x: 100, y: 100 });
87
+ const [size, setSize] = useState({ height: minHeight, width: minWidth });
88
+
89
+ useEffect(() => {
90
+ try {
91
+ const localStoragePosition = localStorage.getItem('debug-panel-position');
92
+ if (localStoragePosition && JSON.parse(localStoragePosition)) {
93
+ setPosition(JSON.parse(localStoragePosition));
94
+ }
95
+ } catch {
96
+ /* empty */
97
+ }
98
+
99
+ try {
100
+ const localStorageSize = localStorage.getItem('debug-panel-size');
101
+ if (localStorageSize && JSON.parse(localStorageSize)) {
102
+ setSize(JSON.parse(localStorageSize));
103
+ }
104
+ } catch {
105
+ /* empty */
106
+ }
107
+ }, []);
108
+
109
+ return (
110
+ <>
111
+ {!isHide && (
112
+ <Dropdown
113
+ menu={{
114
+ items: [
115
+ {
116
+ icon: (
117
+ <Icon color={theme.colorTextSecondary} icon={BugOff} size={{ fontSize: 16 }} />
118
+ ),
119
+ key: 'hide',
120
+ label: 'Hide Toolbar',
121
+ onClick: () => setIsHide(true),
122
+ },
123
+ ],
124
+ }}
125
+ trigger={['hover']}
126
+ >
127
+ <FloatButton
128
+ className={styles.floatButton}
129
+ icon={<Icon icon={isExpanded ? BugOff : BugIcon} />}
130
+ onClick={() => setIsExpanded(!isExpanded)}
131
+ />
132
+ </Dropdown>
133
+ )}
134
+ {isExpanded && (
135
+ <Rnd
136
+ bounds="window"
137
+ className={`${styles.panel} ${isExpanded ? styles.expanded : styles.collapsed}`}
138
+ dragHandleClassName="panel-drag-handle"
139
+ minHeight={minHeight}
140
+ minWidth={minWidth}
141
+ onDragStop={(e, d) => {
142
+ setPosition({ x: d.x, y: d.y });
143
+ }}
144
+ onResizeStop={(e, direction, ref, delta, position) => {
145
+ setSize({
146
+ height: Number(ref.style.height),
147
+ width: Number(ref.style.width),
148
+ });
149
+ setPosition(position);
150
+ }}
151
+ position={position}
152
+ size={size}
153
+ >
154
+ <Flexbox
155
+ height={'100%'}
156
+ horizontal
157
+ style={{ overflow: 'hidden', position: 'relative' }}
158
+ width={'100%'}
159
+ >
160
+ <SideNav
161
+ avatar={<FluentEmoji emoji={'🧰'} size={24} />}
162
+ bottomActions={[]}
163
+ style={{
164
+ paddingBlock: 12,
165
+ width: 48,
166
+ }}
167
+ topActions={items.map((item) => (
168
+ <ActionIcon
169
+ active={tab === item.key}
170
+ key={item.key}
171
+ onClick={() => setTab(item.key)}
172
+ placement={'right'}
173
+ title={item.key}
174
+ >
175
+ {item.icon}
176
+ </ActionIcon>
177
+ ))}
178
+ />
179
+ <Flexbox
180
+ height={'100%'}
181
+ style={{ overflow: 'hidden', position: 'relative' }}
182
+ width={'100%'}
183
+ >
184
+ <Flexbox
185
+ align={'center'}
186
+ className={`panel-drag-handle ${styles.header}`}
187
+ horizontal
188
+ justify={'space-between'}
189
+ >
190
+ <Flexbox align={'baseline'} gap={6} horizontal>
191
+ <b>{BRANDING_NAME} Dev Tools</b>
192
+ <span style={{ color: theme.colorTextDescription }}>/</span>
193
+ <span style={{ color: theme.colorTextDescription }}>{tab}</span>
194
+ </Flexbox>
195
+ <ActionIcon icon={XIcon} onClick={() => setIsExpanded(false)} />
196
+ </Flexbox>
197
+ {items.map((item) => (
198
+ <Flexbox
199
+ flex={1}
200
+ height={'100%'}
201
+ key={item.key}
202
+ style={{
203
+ display: tab === item.key ? 'flex' : 'none',
204
+ overflow: 'hidden',
205
+ }}
206
+ >
207
+ {item.children}
208
+ </Flexbox>
209
+ ))}
210
+ </Flexbox>
211
+ </Flexbox>
212
+ </Rnd>
213
+ )}
214
+ </>
215
+ );
216
+ });
217
+
218
+ export default CollapsibleFloatPanel;
@@ -0,0 +1,50 @@
1
+ import { ActionIcon, type ActionIconProps } from '@lobehub/ui';
2
+ import { createStyles } from 'antd-style';
3
+ import React, { ReactNode } from 'react';
4
+ import { Flexbox, FlexboxProps } from 'react-layout-kit';
5
+
6
+ const useStyles = createStyles(({ token, css }) => ({
7
+ header: css`
8
+ border-block-end: 1px solid ${token.colorBorderSecondary};
9
+ `,
10
+ title: css`
11
+ font-weight: 550;
12
+ `,
13
+ }));
14
+
15
+ interface HeaderProps extends Omit<FlexboxProps, 'title' | 'children'> {
16
+ actions?: ActionIconProps[];
17
+ extra?: ReactNode;
18
+ title?: ReactNode;
19
+ }
20
+
21
+ const Header = ({ title, actions = [], extra, ...rest }: HeaderProps) => {
22
+ const { styles } = useStyles();
23
+
24
+ return (
25
+ <Flexbox
26
+ align={'center'}
27
+ className={styles.header}
28
+ flex={'none'}
29
+ height={46}
30
+ horizontal
31
+ justify={'space-between'}
32
+ paddingInline={16}
33
+ {...rest}
34
+ >
35
+ <div className={styles.title}>{title}</div>
36
+ <Flexbox align={'center'} gap={4} horizontal>
37
+ {extra}
38
+ {actions.map((action, index) => (
39
+ <ActionIcon
40
+ {...action}
41
+ key={action.title || index}
42
+ size={{ blockSize: 28, fontSize: 16 }}
43
+ />
44
+ ))}
45
+ </Flexbox>
46
+ </Flexbox>
47
+ );
48
+ };
49
+
50
+ export default Header;
@@ -0,0 +1,73 @@
1
+ import { Typography } from 'antd';
2
+ import { createStyles } from 'antd-style';
3
+ import dayjs from 'dayjs';
4
+ import { get, isDate } from 'lodash-es';
5
+ import React, { useMemo } from 'react';
6
+
7
+ import TooltipContent from './TooltipContent';
8
+
9
+ const { Text } = Typography;
10
+
11
+ const useStyles = createStyles(({ token, css }) => ({
12
+ cell: css`
13
+ font-family: ${token.fontFamilyCode};
14
+ font-size: ${token.fontSizeSM}px;
15
+ `,
16
+ tooltip: css`
17
+ border: 1px solid ${token.colorBorder};
18
+
19
+ font-family: ${token.fontFamilyCode};
20
+ font-size: ${token.fontSizeSM}px;
21
+ color: ${token.colorText} !important;
22
+ word-break: break-all;
23
+
24
+ background: ${token.colorBgElevated} !important;
25
+ `,
26
+ }));
27
+
28
+ interface TableCellProps {
29
+ column: string;
30
+ dataItem: any;
31
+ rowIndex: number;
32
+ }
33
+
34
+ const TableCell = ({ dataItem, column, rowIndex }: TableCellProps) => {
35
+ const { styles } = useStyles();
36
+ const data = get(dataItem, column);
37
+ const content = useMemo(() => {
38
+ if (isDate(data)) return dayjs(data).format('YYYY-MM-DD HH:mm:ss');
39
+
40
+ switch (typeof data) {
41
+ case 'object': {
42
+ return JSON.stringify(data);
43
+ }
44
+
45
+ case 'boolean': {
46
+ return data ? 'True' : 'False';
47
+ }
48
+
49
+ default: {
50
+ return data;
51
+ }
52
+ }
53
+ }, [data]);
54
+
55
+ return (
56
+ <td key={column} onDoubleClick={() => console.log('Edit cell:', rowIndex, column)}>
57
+ <Text
58
+ className={styles.cell}
59
+ ellipsis={{
60
+ tooltip: {
61
+ arrow: false,
62
+ classNames: { body: styles.tooltip },
63
+ title: <TooltipContent>{content}</TooltipContent>,
64
+ },
65
+ }}
66
+ >
67
+ {content}
68
+ </Text>
69
+ </td>
70
+ );
71
+ };
72
+
73
+ export default TableCell;
@@ -0,0 +1,39 @@
1
+ import { Highlighter } from '@lobehub/ui';
2
+ import Link from 'next/link';
3
+ import { ReactNode, memo } from 'react';
4
+ import { Flexbox } from 'react-layout-kit';
5
+
6
+ const TooltipContent = memo<{ children: ReactNode }>(({ children }) => {
7
+ if (typeof children !== 'string') return children;
8
+
9
+ if (children.startsWith('data:image')) {
10
+ return <img src={children} style={{ height: 'auto', maxWidth: '100%' }} />;
11
+ }
12
+
13
+ if (children.startsWith('http'))
14
+ return (
15
+ <Link href={children} target={'_blank'}>
16
+ {children}
17
+ </Link>
18
+ );
19
+
20
+ const code = children.trim().trimEnd();
21
+
22
+ if ((code.startsWith('{') && code.endsWith('}')) || (code.startsWith('[') && code.endsWith(']')))
23
+ return (
24
+ <Highlighter
25
+ language={'json'}
26
+ style={{
27
+ maxHeight: 400,
28
+ overflow: 'auto',
29
+ }}
30
+ type={'pure'}
31
+ >
32
+ {JSON.stringify(JSON.parse(code), null, 2)}
33
+ </Highlighter>
34
+ );
35
+
36
+ return <Flexbox>{children}</Flexbox>;
37
+ });
38
+
39
+ export default TooltipContent;