@lobehub/lobehub 2.0.0-next.2 → 2.0.0-next.21

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 (603) hide show
  1. package/.env.desktop +1 -2
  2. package/.env.example +0 -3
  3. package/.env.example.development +0 -2
  4. package/.github/workflows/claude-auto-testing.yml +73 -0
  5. package/.github/workflows/claude-translate-comments.yml +67 -0
  6. package/.github/workflows/desktop-pr-build.yml +18 -16
  7. package/.github/workflows/docker.yml +25 -20
  8. package/.github/workflows/e2e.yml +17 -3
  9. package/.github/workflows/release-desktop-beta.yml +12 -12
  10. package/.github/workflows/release.yml +3 -5
  11. package/.github/workflows/test.yml +47 -12
  12. package/.nvmrc +1 -1
  13. package/CHANGELOG.md +484 -0
  14. package/Dockerfile +1 -3
  15. package/README.md +2 -45
  16. package/README.zh-CN.md +2 -45
  17. package/apps/desktop/src/main/controllers/AuthCtr.ts +53 -39
  18. package/apps/desktop/src/main/controllers/__tests__/AuthCtr.test.ts +706 -0
  19. package/apps/desktop/src/main/utils/next-electron-rsc.ts +7 -5
  20. package/apps/desktop/tsconfig.json +0 -1
  21. package/changelog/v1.json +159 -0
  22. package/docs/development/database-schema.dbml +11 -1
  23. package/docs/self-hosting/advanced/auth/next-auth/auth0.mdx +2 -2
  24. package/docs/self-hosting/advanced/auth/next-auth/auth0.zh-CN.mdx +2 -2
  25. package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +2 -2
  26. package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +2 -2
  27. package/docs/self-hosting/advanced/auth/next-auth/authentik.mdx +2 -2
  28. package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +2 -2
  29. package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +2 -2
  30. package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +2 -2
  31. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.mdx +2 -2
  32. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.zh-CN.mdx +2 -2
  33. package/docs/self-hosting/advanced/auth/next-auth/github.mdx +2 -2
  34. package/docs/self-hosting/advanced/auth/next-auth/github.zh-CN.mdx +2 -2
  35. package/docs/self-hosting/advanced/auth/next-auth/google.mdx +32 -29
  36. package/docs/self-hosting/advanced/auth/next-auth/keycloak.mdx +2 -2
  37. package/docs/self-hosting/advanced/auth/next-auth/keycloak.zh-CN.mdx +2 -2
  38. package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +5 -3
  39. package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +5 -3
  40. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.mdx +2 -2
  41. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.zh-CN.mdx +2 -2
  42. package/docs/self-hosting/advanced/auth/next-auth/okta.mdx +2 -2
  43. package/docs/self-hosting/advanced/auth/next-auth/okta.zh-CN.mdx +2 -2
  44. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +2 -2
  45. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +2 -2
  46. package/docs/self-hosting/advanced/auth/next-auth/zitadel.mdx +2 -2
  47. package/docs/self-hosting/advanced/auth/next-auth/zitadel.zh-CN.mdx +2 -2
  48. package/docs/self-hosting/advanced/auth.mdx +32 -21
  49. package/docs/self-hosting/advanced/auth.zh-CN.mdx +30 -19
  50. package/docs/self-hosting/advanced/feature-flags.mdx +0 -1
  51. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +0 -1
  52. package/docs/self-hosting/advanced/online-search.mdx +30 -25
  53. package/docs/self-hosting/advanced/online-search.zh-CN.mdx +25 -23
  54. package/e2e/src/features/discover/smoke.feature +34 -1
  55. package/e2e/src/steps/discover/smoke.steps.ts +116 -4
  56. package/e2e/tsconfig.json +0 -1
  57. package/locales/ar/models.json +15 -6
  58. package/locales/ar/oauth.json +1 -0
  59. package/locales/bg-BG/models.json +15 -6
  60. package/locales/bg-BG/oauth.json +1 -0
  61. package/locales/de-DE/models.json +15 -6
  62. package/locales/de-DE/oauth.json +1 -0
  63. package/locales/en-US/models.json +15 -6
  64. package/locales/en-US/oauth.json +1 -0
  65. package/locales/es-ES/models.json +15 -6
  66. package/locales/es-ES/oauth.json +1 -0
  67. package/locales/fa-IR/models.json +15 -6
  68. package/locales/fa-IR/oauth.json +1 -0
  69. package/locales/fr-FR/models.json +15 -6
  70. package/locales/fr-FR/oauth.json +1 -0
  71. package/locales/it-IT/models.json +15 -6
  72. package/locales/it-IT/oauth.json +1 -0
  73. package/locales/ja-JP/models.json +15 -6
  74. package/locales/ja-JP/oauth.json +1 -0
  75. package/locales/ko-KR/models.json +21 -12
  76. package/locales/ko-KR/oauth.json +1 -0
  77. package/locales/nl-NL/models.json +15 -6
  78. package/locales/nl-NL/oauth.json +1 -0
  79. package/locales/pl-PL/models.json +15 -6
  80. package/locales/pl-PL/oauth.json +1 -0
  81. package/locales/pt-BR/models.json +15 -6
  82. package/locales/pt-BR/oauth.json +1 -0
  83. package/locales/ru-RU/models.json +15 -6
  84. package/locales/ru-RU/oauth.json +1 -0
  85. package/locales/tr-TR/models.json +15 -6
  86. package/locales/tr-TR/oauth.json +1 -0
  87. package/locales/vi-VN/models.json +15 -6
  88. package/locales/vi-VN/oauth.json +1 -0
  89. package/locales/zh-CN/models.json +15 -6
  90. package/locales/zh-CN/oauth.json +1 -0
  91. package/locales/zh-TW/models.json +15 -6
  92. package/locales/zh-TW/oauth.json +1 -0
  93. package/next.config.ts +2 -3
  94. package/package.json +74 -80
  95. package/packages/const/src/index.ts +0 -1
  96. package/packages/const/src/models.ts +13 -0
  97. package/packages/const/src/url.ts +1 -4
  98. package/packages/const/src/version.ts +3 -3
  99. package/packages/context-engine/src/index.ts +1 -6
  100. package/packages/context-engine/src/processors/GroupMessageFlatten.ts +12 -2
  101. package/packages/context-engine/src/processors/__tests__/GroupMessageFlatten.test.ts +73 -9
  102. package/packages/context-engine/src/providers/index.ts +0 -2
  103. package/packages/database/migrations/0041_improve_index.sql +10 -0
  104. package/packages/database/migrations/meta/0041_snapshot.json +7784 -0
  105. package/packages/database/migrations/meta/_journal.json +7 -0
  106. package/packages/database/package.json +1 -1
  107. package/packages/database/src/core/migrations.json +17 -0
  108. package/packages/database/src/core/web-server.ts +2 -1
  109. package/packages/database/src/models/__tests__/message.grouping.test.ts +812 -0
  110. package/packages/database/src/models/__tests__/message.test.ts +322 -170
  111. package/packages/database/src/models/message.ts +62 -24
  112. package/packages/database/src/models/session.ts +60 -19
  113. package/packages/database/src/repositories/dataImporter/deprecated/__tests__/index.test.ts +2 -1
  114. package/packages/database/src/repositories/dataImporter/deprecated/index.ts +7 -1
  115. package/packages/database/src/schemas/agent.ts +10 -11
  116. package/packages/database/src/schemas/message.ts +5 -1
  117. package/packages/database/src/schemas/relations.ts +6 -4
  118. package/packages/database/src/schemas/session.ts +2 -0
  119. package/packages/database/src/schemas/topic.ts +6 -1
  120. package/packages/database/src/utils/__tests__/groupMessages.test.ts +145 -2
  121. package/packages/database/src/utils/groupMessages.ts +7 -5
  122. package/packages/electron-client-ipc/package.json +4 -1
  123. package/packages/file-loaders/package.json +1 -0
  124. package/packages/memory-extract/package.json +1 -1
  125. package/packages/model-bank/src/aiModels/anthropic.ts +0 -63
  126. package/packages/model-bank/src/aiModels/azure.ts +155 -0
  127. package/packages/model-bank/src/aiModels/bedrock.ts +44 -0
  128. package/packages/model-bank/src/aiModels/higress.ts +0 -55
  129. package/packages/model-bank/src/aiModels/infiniai.ts +21 -0
  130. package/packages/model-bank/src/aiModels/ollamacloud.ts +13 -0
  131. package/packages/model-bank/src/aiModels/siliconcloud.ts +19 -0
  132. package/packages/model-runtime/src/core/parameterResolver.ts +3 -0
  133. package/packages/model-runtime/src/core/streams/openai/__snapshots__/responsesStream.test.ts.snap +0 -38
  134. package/packages/model-runtime/src/providers/azureOpenai/index.ts +2 -1
  135. package/packages/model-runtime/src/providers/minimax/index.ts +5 -5
  136. package/packages/model-runtime/src/providers/search1api/index.test.ts +2 -2
  137. package/packages/model-runtime/src/utils/googleErrorParser.test.ts +125 -0
  138. package/packages/model-runtime/src/utils/googleErrorParser.ts +103 -77
  139. package/packages/types/src/message/common/base.ts +13 -0
  140. package/packages/types/src/message/common/image.ts +8 -0
  141. package/packages/types/src/message/common/metadata.ts +39 -0
  142. package/packages/types/src/message/common/tools.ts +10 -0
  143. package/packages/types/src/message/db/params.ts +47 -1
  144. package/packages/types/src/message/ui/chat.ts +4 -1
  145. package/packages/types/src/message/ui/params.ts +98 -4
  146. package/packages/types/src/search.ts +16 -0
  147. package/packages/types/src/serverConfig.ts +2 -6
  148. package/packages/types/src/user/index.ts +13 -1
  149. package/packages/types/src/user/settings/index.ts +22 -0
  150. package/packages/utils/src/apiKey.test.ts +139 -0
  151. package/packages/utils/src/client/clipboard.ts +2 -2
  152. package/packages/utils/src/client/exportFile.ts +10 -10
  153. package/packages/utils/src/client/parserPlaceholder.ts +18 -18
  154. package/packages/utils/src/client/topic.ts +10 -10
  155. package/packages/utils/src/client/xor-obfuscation.ts +11 -11
  156. package/packages/web-crawler/src/crawImpl/firecrawl.ts +39 -12
  157. package/packages/web-crawler/tsconfig.json +0 -1
  158. package/renovate.json +20 -3
  159. package/scripts/migrateServerDB/errorHint.js +1 -7
  160. package/scripts/migrateServerDB/index.ts +2 -1
  161. package/src/app/(backend)/webapi/revalidate/route.ts +1 -1
  162. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -8
  163. package/src/app/[variants]/(main)/(mobile)/me/(home)/__tests__/useCategory.test.tsx +9 -0
  164. package/src/app/[variants]/(main)/(mobile)/me/(home)/features/UserBanner.tsx +3 -6
  165. package/src/app/[variants]/(main)/(mobile)/me/(home)/layout.tsx +0 -2
  166. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +1 -4
  167. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/index.tsx +2 -2
  168. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/useSend.ts +6 -4
  169. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/useSend.ts +15 -10
  170. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/Actions.tsx +3 -28
  171. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/index.tsx +4 -2
  172. package/src/app/[variants]/(main)/chat/_layout/Desktop/index.tsx +0 -2
  173. package/src/app/[variants]/(main)/chat/_layout/Mobile.tsx +1 -5
  174. package/src/app/[variants]/(main)/chat/settings/features/HeaderContent.tsx +2 -62
  175. package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +1 -0
  176. package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +1 -1
  177. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +1 -0
  178. package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +1 -0
  179. package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +1 -0
  180. package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +9 -1
  181. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +1 -0
  182. package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +1 -1
  183. package/src/app/[variants]/(main)/image/page.tsx +0 -2
  184. package/src/app/[variants]/(main)/labs/components/LabCard.tsx +3 -1
  185. package/src/app/[variants]/(main)/profile/_layout/Desktop/index.tsx +23 -24
  186. package/src/app/[variants]/(main)/profile/_layout/Mobile/index.tsx +5 -9
  187. package/src/app/[variants]/(main)/settings/_layout/Desktop/index.tsx +0 -2
  188. package/src/app/[variants]/(main)/settings/_layout/Mobile/index.tsx +0 -2
  189. package/src/app/[variants]/(main)/settings/_layout/SettingsContent.tsx +0 -3
  190. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +1 -1
  191. package/src/app/[variants]/(main)/settings/provider/detail/azure/index.tsx +5 -7
  192. package/src/app/[variants]/layout.tsx +1 -0
  193. package/src/app/[variants]/loading/index.tsx +1 -10
  194. package/src/app/[variants]/oauth/ResultLayout.tsx +47 -0
  195. package/src/app/[variants]/oauth/callback/error/page.tsx +20 -33
  196. package/src/app/[variants]/oauth/callback/layout.tsx +1 -0
  197. package/src/app/[variants]/oauth/callback/success/page.tsx +8 -22
  198. package/src/app/[variants]/oauth/consent/[uid]/Consent/BuiltinConsent.tsx +47 -0
  199. package/src/app/[variants]/oauth/consent/[uid]/{Consent.tsx → Consent/index.tsx} +12 -1
  200. package/src/app/[variants]/oauth/consent/[uid]/Login.tsx +19 -2
  201. package/src/app/sitemap.tsx +7 -1
  202. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +8 -13
  203. package/src/components/Link.tsx +12 -0
  204. package/src/components/Thinking/index.tsx +4 -3
  205. package/src/config/db.ts +0 -5
  206. package/src/config/featureFlags/schema.test.ts +0 -2
  207. package/src/config/featureFlags/schema.ts +0 -6
  208. package/src/config/modelProviders/ai21.ts +1 -16
  209. package/src/config/modelProviders/ai302.ts +1 -128
  210. package/src/config/modelProviders/ai360.ts +1 -32
  211. package/src/config/modelProviders/anthropic.ts +1 -94
  212. package/src/config/modelProviders/azure.ts +1 -51
  213. package/src/config/modelProviders/baichuan.ts +1 -57
  214. package/src/config/modelProviders/bedrock.ts +1 -276
  215. package/src/config/modelProviders/cloudflare.ts +1 -64
  216. package/src/config/modelProviders/deepseek.ts +1 -19
  217. package/src/config/modelProviders/fireworksai.ts +1 -174
  218. package/src/config/modelProviders/giteeai.ts +1 -135
  219. package/src/config/modelProviders/github.ts +1 -254
  220. package/src/config/modelProviders/google.ts +1 -130
  221. package/src/config/modelProviders/groq.ts +1 -119
  222. package/src/config/modelProviders/higress.ts +1 -1736
  223. package/src/config/modelProviders/huggingface.ts +1 -54
  224. package/src/config/modelProviders/hunyuan.ts +1 -83
  225. package/src/config/modelProviders/infiniai.ts +1 -74
  226. package/src/config/modelProviders/internlm.ts +1 -20
  227. package/src/config/modelProviders/minimax.ts +1 -1
  228. package/src/config/modelProviders/mistral.ts +1 -95
  229. package/src/config/modelProviders/modelscope.ts +1 -27
  230. package/src/config/modelProviders/moonshot.ts +1 -29
  231. package/src/config/modelProviders/novita.ts +1 -105
  232. package/src/config/modelProviders/ollama.ts +1 -325
  233. package/src/config/modelProviders/openai.ts +1 -242
  234. package/src/config/modelProviders/openrouter.ts +1 -240
  235. package/src/config/modelProviders/perplexity.ts +1 -45
  236. package/src/config/modelProviders/ppio.ts +1 -152
  237. package/src/config/modelProviders/qiniu.ts +2 -19
  238. package/src/config/modelProviders/qwen.ts +1 -245
  239. package/src/config/modelProviders/search1api.ts +1 -34
  240. package/src/config/modelProviders/sensenova.ts +1 -69
  241. package/src/config/modelProviders/siliconcloud.ts +1 -417
  242. package/src/config/modelProviders/spark.ts +1 -59
  243. package/src/config/modelProviders/stepfun.ts +1 -98
  244. package/src/config/modelProviders/taichu.ts +1 -18
  245. package/src/config/modelProviders/togetherai.ts +1 -274
  246. package/src/config/modelProviders/upstage.ts +1 -28
  247. package/src/config/modelProviders/wenxin.ts +1 -140
  248. package/src/config/modelProviders/xai.ts +1 -38
  249. package/src/config/modelProviders/zeroone.ts +1 -81
  250. package/src/config/modelProviders/zhipu.ts +1 -108
  251. package/src/envs/app.ts +5 -8
  252. package/src/envs/auth.ts +0 -179
  253. package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
  254. package/src/features/ChatInput/ActionBar/STT/browser.tsx +2 -2
  255. package/src/features/ChatInput/ActionBar/STT/openai.tsx +2 -2
  256. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +1 -3
  257. package/src/features/Conversation/Error/ErrorJsonViewer.tsx +4 -3
  258. package/src/features/Conversation/Error/OllamaBizError/index.tsx +7 -2
  259. package/src/features/Conversation/Error/index.tsx +15 -5
  260. package/src/features/Conversation/MarkdownElements/LobeArtifact/Render/index.tsx +2 -2
  261. package/src/features/Conversation/Messages/Assistant/Extra/index.tsx +2 -2
  262. package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +5 -3
  263. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/BuiltinPluginTitle.tsx +2 -2
  264. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/ToolTitle.tsx +4 -2
  265. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +2 -2
  266. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +2 -2
  267. package/src/features/Conversation/Messages/Assistant/Tool/index.tsx +2 -2
  268. package/src/features/Conversation/Messages/Assistant/index.tsx +4 -4
  269. package/src/features/Conversation/Messages/Default.tsx +2 -2
  270. package/src/features/Conversation/Messages/User/Extra.tsx +2 -2
  271. package/src/features/Conversation/Messages/User/index.tsx +4 -4
  272. package/src/features/Conversation/Messages/index.tsx +3 -3
  273. package/src/features/Conversation/components/AutoScroll.tsx +2 -2
  274. package/src/features/Conversation/components/Extras/Usage/UsageDetail/index.tsx +9 -6
  275. package/src/features/DataImporter/index.tsx +15 -60
  276. package/src/features/DevPanel/PostgresViewer/usePgTable.ts +3 -2
  277. package/src/features/PluginTag/index.tsx +1 -3
  278. package/src/features/PluginsUI/Render/BuiltinType/index.test.tsx +37 -28
  279. package/src/features/Portal/Artifacts/Body/index.tsx +2 -2
  280. package/src/helpers/isCanUseFC.ts +0 -8
  281. package/src/hooks/useEnabledChatModels.ts +0 -8
  282. package/src/hooks/useInterceptingRoutes.test.ts +21 -3
  283. package/src/hooks/useModelContextWindowTokens.ts +0 -8
  284. package/src/hooks/useModelHasContextWindowToken.ts +1 -10
  285. package/src/hooks/useModelSupportFiles.ts +1 -11
  286. package/src/hooks/useModelSupportReasoning.ts +1 -11
  287. package/src/hooks/useModelSupportToolUse.ts +1 -11
  288. package/src/hooks/useModelSupportVision.ts +1 -11
  289. package/src/layout/AuthProvider/Clerk/index.tsx +2 -16
  290. package/src/libs/next-auth/auth.config.ts +3 -6
  291. package/src/libs/next-auth/sso-providers/auth0.ts +0 -7
  292. package/src/libs/next-auth/sso-providers/authelia.ts +3 -5
  293. package/src/libs/next-auth/sso-providers/authentik.ts +0 -7
  294. package/src/libs/next-auth/sso-providers/cloudflare-zero-trust.ts +3 -6
  295. package/src/libs/next-auth/sso-providers/cognito.ts +1 -5
  296. package/src/libs/next-auth/sso-providers/generic-oidc.ts +3 -5
  297. package/src/libs/next-auth/sso-providers/github.ts +0 -6
  298. package/src/libs/next-auth/sso-providers/google.ts +0 -2
  299. package/src/libs/next-auth/sso-providers/index.ts +0 -2
  300. package/src/libs/next-auth/sso-providers/keycloak.ts +0 -3
  301. package/src/libs/next-auth/sso-providers/logto.ts +3 -5
  302. package/src/libs/next-auth/sso-providers/okta.ts +0 -4
  303. package/src/libs/next-auth/sso-providers/zitadel.ts +0 -7
  304. package/src/libs/oidc-provider/provider.ts +1 -1
  305. package/src/libs/trpc/client/index.ts +0 -1
  306. package/src/libs/trpc/client/lambda.ts +8 -5
  307. package/src/libs/trpc/lambda/context.ts +4 -1
  308. package/src/locales/default/oauth.ts +1 -0
  309. package/src/server/globalConfig/index.ts +0 -23
  310. package/src/server/modules/AssistantStore/index.ts +1 -1
  311. package/src/server/modules/ModelRuntime/trace.ts +11 -4
  312. package/src/server/routers/desktop/mcp.ts +1 -3
  313. package/src/server/routers/lambda/__tests__/integration/message.integration.test.ts +0 -41
  314. package/src/server/routers/lambda/config/__snapshots__/index.test.ts.snap +175 -12
  315. package/src/server/routers/lambda/config/index.test.ts +38 -30
  316. package/src/server/routers/lambda/message.ts +17 -13
  317. package/src/server/routers/lambda/session.ts +8 -5
  318. package/src/server/routers/lambda/user.ts +24 -25
  319. package/src/server/routers/tools/mcp.ts +2 -3
  320. package/src/server/routers/tools/search.test.ts +1 -7
  321. package/src/server/routers/tools/search.ts +1 -4
  322. package/src/server/services/search/impls/firecrawl/index.ts +51 -11
  323. package/src/server/services/search/impls/firecrawl/type.ts +60 -9
  324. package/src/services/__tests__/tool.test.ts +0 -3
  325. package/src/services/aiModel/index.test.ts +0 -3
  326. package/src/services/aiModel/index.ts +1 -7
  327. package/src/services/aiProvider/index.test.ts +0 -3
  328. package/src/services/aiProvider/index.ts +1 -7
  329. package/src/services/chat/chat.test.ts +13 -40
  330. package/src/services/chat/contextEngineering.test.ts +0 -30
  331. package/src/services/chat/contextEngineering.ts +1 -12
  332. package/src/services/chat/helper.ts +7 -31
  333. package/src/services/chat/index.ts +5 -10
  334. package/src/services/chat/types.ts +1 -1
  335. package/src/services/chatGroup/index.ts +1 -10
  336. package/src/services/config.ts +1 -65
  337. package/src/services/export/index.ts +1 -4
  338. package/src/services/file/index.ts +1 -11
  339. package/src/services/import/index.ts +1 -7
  340. package/src/services/mcp.test.ts +777 -0
  341. package/src/services/message/index.ts +1 -11
  342. package/src/services/message/server.ts +7 -6
  343. package/src/services/message/type.ts +6 -3
  344. package/src/services/models.ts +2 -11
  345. package/src/services/plugin/index.ts +1 -11
  346. package/src/services/session/index.ts +1 -11
  347. package/src/services/tableViewer/client.ts +12 -15
  348. package/src/services/thread/index.ts +1 -7
  349. package/src/services/topic/index.ts +1 -11
  350. package/src/services/user/index.ts +1 -13
  351. package/src/store/chat/helpers.test.ts +99 -0
  352. package/src/store/chat/helpers.ts +21 -2
  353. package/src/store/chat/selectors.ts +1 -1
  354. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChat.test.ts +0 -241
  355. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +26 -1
  356. package/src/store/chat/slices/aiChat/actions/__tests__/helpers.ts +3 -1
  357. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +45 -155
  358. package/src/store/chat/slices/builtinTool/actions/index.ts +1 -4
  359. package/src/store/chat/slices/message/action.test.ts +5 -1
  360. package/src/store/chat/slices/message/action.ts +102 -14
  361. package/src/store/chat/slices/message/reducer.test.ts +363 -5
  362. package/src/store/chat/slices/message/reducer.ts +87 -3
  363. package/src/store/chat/slices/message/{selectors.test.ts → selectors/chat.test.ts} +266 -30
  364. package/src/store/chat/slices/message/{selectors.ts → selectors/chat.ts} +29 -79
  365. package/src/store/chat/slices/message/selectors/index.ts +2 -0
  366. package/src/store/chat/slices/message/selectors/messageState.test.ts +36 -0
  367. package/src/store/chat/slices/message/selectors/messageState.ts +80 -0
  368. package/src/store/chat/slices/plugin/action.test.ts +34 -132
  369. package/src/store/chat/slices/plugin/action.ts +1 -44
  370. package/src/store/global/store.ts +1 -7
  371. package/src/store/tool/selectors/tool.test.ts +1 -1
  372. package/src/store/tool/selectors/tool.ts +6 -8
  373. package/src/store/tool/slices/builtin/action.test.ts +83 -35
  374. package/src/store/tool/slices/builtin/action.ts +0 -9
  375. package/src/store/tool/slices/builtin/selectors.test.ts +4 -30
  376. package/src/store/tool/slices/builtin/selectors.ts +15 -21
  377. package/src/store/user/initialState.ts +1 -7
  378. package/src/store/user/selectors.ts +1 -5
  379. package/src/store/user/slices/common/action.test.ts +1 -4
  380. package/src/store/user/slices/common/action.ts +5 -4
  381. package/src/store/user/slices/settings/selectors/index.ts +1 -0
  382. package/src/store/user/slices/settings/selectors/keyVaults.ts +21 -0
  383. package/src/store/user/store.ts +0 -3
  384. package/src/tools/index.ts +0 -6
  385. package/src/tools/renders.ts +0 -3
  386. package/src/tools/web-browsing/Portal/Search/Footer.tsx +2 -2
  387. package/src/tools/web-browsing/Render/Search/ConfigForm/Form.tsx +1 -1
  388. package/tsconfig.json +9 -3
  389. package/packages/const/src/guide.ts +0 -89
  390. package/packages/context-engine/src/providers/InboxGuide.ts +0 -102
  391. package/packages/context-engine/src/providers/__tests__/InboxGuideProvider.test.ts +0 -121
  392. package/packages/utils/src/_deprecated/__snapshots__/parseModels.test.ts.snap +0 -104
  393. package/packages/utils/src/_deprecated/parseModels.test.ts +0 -287
  394. package/packages/utils/src/_deprecated/parseModels.ts +0 -165
  395. package/src/app/(backend)/trpc/edge/[trpc]/route.ts +0 -26
  396. package/src/app/[variants]/(main)/(mobile)/me/data/features/Category.tsx +0 -48
  397. package/src/app/[variants]/(main)/(mobile)/me/data/features/Header.tsx +0 -33
  398. package/src/app/[variants]/(main)/(mobile)/me/data/layout.tsx +0 -13
  399. package/src/app/[variants]/(main)/(mobile)/me/data/loading.tsx +0 -5
  400. package/src/app/[variants]/(main)/(mobile)/me/data/page.tsx +0 -29
  401. package/src/app/[variants]/(main)/chat/features/Migration/DBReader.ts +0 -290
  402. package/src/app/[variants]/(main)/chat/features/Migration/ExportConfigButton.tsx +0 -35
  403. package/src/app/[variants]/(main)/chat/features/Migration/Failed.tsx +0 -120
  404. package/src/app/[variants]/(main)/chat/features/Migration/Modal.tsx +0 -81
  405. package/src/app/[variants]/(main)/chat/features/Migration/Start.tsx +0 -108
  406. package/src/app/[variants]/(main)/chat/features/Migration/UpgradeButton.tsx +0 -71
  407. package/src/app/[variants]/(main)/chat/features/Migration/const.ts +0 -15
  408. package/src/app/[variants]/(main)/chat/features/Migration/index.tsx +0 -50
  409. package/src/app/[variants]/(main)/settings/llm/ProviderList/Azure/index.tsx +0 -93
  410. package/src/app/[variants]/(main)/settings/llm/ProviderList/Bedrock/index.tsx +0 -70
  411. package/src/app/[variants]/(main)/settings/llm/ProviderList/Cloudflare/index.tsx +0 -39
  412. package/src/app/[variants]/(main)/settings/llm/ProviderList/Github/index.tsx +0 -52
  413. package/src/app/[variants]/(main)/settings/llm/ProviderList/HuggingFace/index.tsx +0 -52
  414. package/src/app/[variants]/(main)/settings/llm/ProviderList/Ollama/index.tsx +0 -20
  415. package/src/app/[variants]/(main)/settings/llm/ProviderList/OpenAI/index.tsx +0 -17
  416. package/src/app/[variants]/(main)/settings/llm/ProviderList/providers.tsx +0 -132
  417. package/src/app/[variants]/(main)/settings/llm/components/Checker.tsx +0 -118
  418. package/src/app/[variants]/(main)/settings/llm/components/ProviderConfig/index.tsx +0 -303
  419. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/CustomModelOption.tsx +0 -98
  420. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelConfigModal/Form.tsx +0 -104
  421. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelConfigModal/index.tsx +0 -77
  422. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelFetcher.tsx +0 -105
  423. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/Option.tsx +0 -68
  424. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/index.tsx +0 -146
  425. package/src/app/[variants]/(main)/settings/llm/const.ts +0 -20
  426. package/src/app/[variants]/(main)/settings/llm/features/Footer.tsx +0 -35
  427. package/src/app/[variants]/(main)/settings/llm/index.tsx +0 -30
  428. package/src/app/[variants]/(main)/settings/llm/type.ts +0 -5
  429. package/src/app/[variants]/loading/Client/Content.tsx +0 -48
  430. package/src/app/[variants]/loading/Client/Error.tsx +0 -27
  431. package/src/app/[variants]/loading/Client/Redirect.tsx +0 -47
  432. package/src/app/[variants]/loading/Client/index.tsx +0 -22
  433. package/src/components/InnerLink.tsx +0 -20
  434. package/src/database/_deprecated/core/__tests__/db-upgrade.test.ts +0 -42
  435. package/src/database/_deprecated/core/__tests__/db.test.ts +0 -79
  436. package/src/database/_deprecated/core/__tests__/model.test.ts +0 -55
  437. package/src/database/_deprecated/core/db.ts +0 -246
  438. package/src/database/_deprecated/core/index.ts +0 -2
  439. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/input.json +0 -55
  440. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/output.json +0 -60
  441. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.test.ts +0 -14
  442. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.ts +0 -22
  443. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/type.ts +0 -105
  444. package/src/database/_deprecated/core/model.ts +0 -218
  445. package/src/database/_deprecated/core/schemas.ts +0 -88
  446. package/src/database/_deprecated/core/types/db.ts +0 -15
  447. package/src/database/_deprecated/models/__DEBUG.ts +0 -124
  448. package/src/database/_deprecated/models/__tests__/file.test.ts +0 -83
  449. package/src/database/_deprecated/models/__tests__/message.test.ts +0 -426
  450. package/src/database/_deprecated/models/__tests__/plugin.test.ts +0 -81
  451. package/src/database/_deprecated/models/__tests__/session.test.ts +0 -253
  452. package/src/database/_deprecated/models/__tests__/sessionGroup.test.ts +0 -220
  453. package/src/database/_deprecated/models/__tests__/topic.test.ts +0 -523
  454. package/src/database/_deprecated/models/__tests__/user.test.ts +0 -82
  455. package/src/database/_deprecated/models/file.ts +0 -51
  456. package/src/database/_deprecated/models/message.ts +0 -277
  457. package/src/database/_deprecated/models/plugin.ts +0 -62
  458. package/src/database/_deprecated/models/session.ts +0 -271
  459. package/src/database/_deprecated/models/sessionGroup.ts +0 -93
  460. package/src/database/_deprecated/models/topic.ts +0 -250
  461. package/src/database/_deprecated/models/user.ts +0 -69
  462. package/src/database/_deprecated/schemas/files.ts +0 -39
  463. package/src/database/_deprecated/schemas/message.ts +0 -50
  464. package/src/database/_deprecated/schemas/plugin.ts +0 -12
  465. package/src/database/_deprecated/schemas/session.ts +0 -54
  466. package/src/database/_deprecated/schemas/sessionGroup.ts +0 -8
  467. package/src/database/_deprecated/schemas/topic.ts +0 -12
  468. package/src/database/_deprecated/schemas/user.ts +0 -40
  469. package/src/envs/__tests__/auth.test.ts +0 -200
  470. package/src/features/DataImporter/_deprecated.ts +0 -43
  471. package/src/features/InitClientDB/EnableModal.tsx +0 -118
  472. package/src/features/InitClientDB/ErrorResult.tsx +0 -143
  473. package/src/features/InitClientDB/InitIndicator.tsx +0 -124
  474. package/src/features/InitClientDB/PGliteIcon.tsx +0 -28
  475. package/src/features/InitClientDB/features/DatabaseRepair/Backup.tsx +0 -75
  476. package/src/features/InitClientDB/features/DatabaseRepair/Diagnosis.tsx +0 -98
  477. package/src/features/InitClientDB/features/DatabaseRepair/Repair.tsx +0 -218
  478. package/src/features/InitClientDB/features/DatabaseRepair/index.tsx +0 -91
  479. package/src/features/InitClientDB/index.tsx +0 -37
  480. package/src/hooks/_header.ts +0 -23
  481. package/src/libs/next-auth/sso-providers/azure-ad.ts +0 -33
  482. package/src/libs/trpc/client/edge.ts +0 -26
  483. package/src/libs/trpc/edge/context.ts +0 -71
  484. package/src/libs/trpc/edge/index.ts +0 -45
  485. package/src/libs/trpc/edge/init.ts +0 -26
  486. package/src/libs/trpc/edge/middleware/jwtPayload.test.ts +0 -75
  487. package/src/libs/trpc/edge/middleware/jwtPayload.ts +0 -14
  488. package/src/migrations/FromV0ToV1.ts +0 -10
  489. package/src/migrations/FromV1ToV2/fixtures/input-v1-session.json +0 -191
  490. package/src/migrations/FromV1ToV2/fixtures/output-v2.json +0 -202
  491. package/src/migrations/FromV1ToV2/index.ts +0 -82
  492. package/src/migrations/FromV1ToV2/migrations.test.ts +0 -224
  493. package/src/migrations/FromV1ToV2/types/v1.ts +0 -78
  494. package/src/migrations/FromV1ToV2/types/v2.ts +0 -52
  495. package/src/migrations/FromV2ToV3/fixtures/input-v2-session.json +0 -72
  496. package/src/migrations/FromV2ToV3/fixtures/output-v3-from-v1.json +0 -203
  497. package/src/migrations/FromV2ToV3/fixtures/output-v3.json +0 -74
  498. package/src/migrations/FromV2ToV3/index.ts +0 -30
  499. package/src/migrations/FromV2ToV3/migrations.test.ts +0 -42
  500. package/src/migrations/FromV2ToV3/types/v3.ts +0 -27
  501. package/src/migrations/FromV3ToV4/fixtures/azure-input-v3.json +0 -79
  502. package/src/migrations/FromV3ToV4/fixtures/azure-output-v4.json +0 -75
  503. package/src/migrations/FromV3ToV4/fixtures/ollama-input-v3.json +0 -85
  504. package/src/migrations/FromV3ToV4/fixtures/ollama-output-v4.json +0 -86
  505. package/src/migrations/FromV3ToV4/fixtures/openai-input-v3.json +0 -77
  506. package/src/migrations/FromV3ToV4/fixtures/openai-output-v4.json +0 -77
  507. package/src/migrations/FromV3ToV4/fixtures/openrouter-input-v3.json +0 -82
  508. package/src/migrations/FromV3ToV4/fixtures/openrouter-output-v4.json +0 -85
  509. package/src/migrations/FromV3ToV4/fixtures/output-v4-from-v1.json +0 -203
  510. package/src/migrations/FromV3ToV4/index.ts +0 -102
  511. package/src/migrations/FromV3ToV4/migrations.test.ts +0 -195
  512. package/src/migrations/FromV3ToV4/types/v3.ts +0 -52
  513. package/src/migrations/FromV3ToV4/types/v4.ts +0 -37
  514. package/src/migrations/FromV4ToV5/fixtures/from-v1-to-v5-output.json +0 -245
  515. package/src/migrations/FromV4ToV5/fixtures/function-input-v4.json +0 -96
  516. package/src/migrations/FromV4ToV5/fixtures/function-output-v5.json +0 -120
  517. package/src/migrations/FromV4ToV5/index.ts +0 -58
  518. package/src/migrations/FromV4ToV5/migrations.test.ts +0 -49
  519. package/src/migrations/FromV4ToV5/types/v4.ts +0 -21
  520. package/src/migrations/FromV4ToV5/types/v5.ts +0 -27
  521. package/src/migrations/FromV5ToV6/fixtures/from-v1-to-v6-output.json +0 -247
  522. package/src/migrations/FromV5ToV6/fixtures/session-input-v5.json +0 -81
  523. package/src/migrations/FromV5ToV6/fixtures/session-output-v6.json +0 -85
  524. package/src/migrations/FromV5ToV6/index.ts +0 -61
  525. package/src/migrations/FromV5ToV6/migrations.test.ts +0 -50
  526. package/src/migrations/FromV5ToV6/types/v5.ts +0 -48
  527. package/src/migrations/FromV5ToV6/types/v6.ts +0 -63
  528. package/src/migrations/FromV6ToV7/fixtures/output-v7-from-v1.json +0 -203
  529. package/src/migrations/FromV6ToV7/fixtures/provider-input-v6.json +0 -103
  530. package/src/migrations/FromV6ToV7/fixtures/provider-output-v7.json +0 -118
  531. package/src/migrations/FromV6ToV7/index.ts +0 -101
  532. package/src/migrations/FromV6ToV7/migrations.test.ts +0 -64
  533. package/src/migrations/FromV6ToV7/types/v6.ts +0 -61
  534. package/src/migrations/FromV6ToV7/types/v7.ts +0 -69
  535. package/src/migrations/VersionController.test.ts +0 -88
  536. package/src/migrations/VersionController.ts +0 -67
  537. package/src/migrations/index.ts +0 -61
  538. package/src/server/globalConfig/_deprecated.test.ts +0 -92
  539. package/src/server/globalConfig/_deprecated.ts +0 -41
  540. package/src/server/routers/edge/appStatus.ts +0 -3
  541. package/src/server/routers/edge/index.ts +0 -14
  542. package/src/server/routers/edge/upload.ts +0 -16
  543. package/src/services/aiModel/client.ts +0 -70
  544. package/src/services/aiProvider/client.ts +0 -58
  545. package/src/services/baseClientService/index.ts +0 -9
  546. package/src/services/chat/__snapshots__/chat.test.ts.snap +0 -110
  547. package/src/services/chatGroup/client.ts +0 -63
  548. package/src/services/export/_deprecated.ts +0 -155
  549. package/src/services/export/client.ts +0 -15
  550. package/src/services/file/_deprecated.test.ts +0 -119
  551. package/src/services/file/_deprecated.ts +0 -80
  552. package/src/services/file/client.test.ts +0 -199
  553. package/src/services/file/client.ts +0 -85
  554. package/src/services/import/_deprecated.ts +0 -115
  555. package/src/services/import/client.test.ts +0 -1015
  556. package/src/services/import/client.ts +0 -64
  557. package/src/services/message/_deprecated.test.ts +0 -398
  558. package/src/services/message/_deprecated.ts +0 -168
  559. package/src/services/message/client.test.ts +0 -410
  560. package/src/services/message/client.ts +0 -186
  561. package/src/services/plugin/_deprecated.test.ts +0 -162
  562. package/src/services/plugin/_deprecated.ts +0 -42
  563. package/src/services/plugin/client.test.ts +0 -177
  564. package/src/services/plugin/client.ts +0 -46
  565. package/src/services/session/_deprecated.test.ts +0 -440
  566. package/src/services/session/_deprecated.ts +0 -190
  567. package/src/services/session/client.test.ts +0 -413
  568. package/src/services/session/client.ts +0 -193
  569. package/src/services/thread/client.ts +0 -51
  570. package/src/services/topic/_deprecated.test.ts +0 -245
  571. package/src/services/topic/_deprecated.ts +0 -75
  572. package/src/services/topic/client.ts +0 -89
  573. package/src/services/topic/pglite.test.ts +0 -212
  574. package/src/services/user/_deprecated.test.ts +0 -101
  575. package/src/services/user/_deprecated.ts +0 -70
  576. package/src/services/user/client.test.ts +0 -108
  577. package/src/services/user/client.ts +0 -104
  578. package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +0 -121
  579. package/src/store/chat/slices/builtinTool/actions/dalle.ts +0 -124
  580. package/src/store/global/actions/clientDb.ts +0 -67
  581. package/src/store/user/slices/modelList/__snapshots__/action.test.ts.snap +0 -12
  582. package/src/store/user/slices/modelList/action.test.ts +0 -359
  583. package/src/store/user/slices/modelList/action.ts +0 -223
  584. package/src/store/user/slices/modelList/initialState.ts +0 -15
  585. package/src/store/user/slices/modelList/reducers/customModelCard.test.ts +0 -204
  586. package/src/store/user/slices/modelList/reducers/customModelCard.ts +0 -64
  587. package/src/store/user/slices/modelList/selectors/index.ts +0 -3
  588. package/src/store/user/slices/modelList/selectors/keyVaults.test.ts +0 -201
  589. package/src/store/user/slices/modelList/selectors/keyVaults.ts +0 -50
  590. package/src/store/user/slices/modelList/selectors/modelConfig.test.ts +0 -219
  591. package/src/store/user/slices/modelList/selectors/modelConfig.ts +0 -95
  592. package/src/store/user/slices/modelList/selectors/modelProvider.test.ts +0 -138
  593. package/src/store/user/slices/modelList/selectors/modelProvider.ts +0 -170
  594. package/src/tools/dalle/Render/GalleyGrid.tsx +0 -60
  595. package/src/tools/dalle/Render/Item/EditMode.tsx +0 -66
  596. package/src/tools/dalle/Render/Item/Error.tsx +0 -49
  597. package/src/tools/dalle/Render/Item/Image.tsx +0 -44
  598. package/src/tools/dalle/Render/Item/ImageFileItem.tsx +0 -57
  599. package/src/tools/dalle/Render/Item/index.tsx +0 -88
  600. package/src/tools/dalle/Render/ToolBar.tsx +0 -56
  601. package/src/tools/dalle/Render/index.tsx +0 -52
  602. package/src/tools/dalle/index.ts +0 -92
  603. /package/src/{middleware.ts → proxy.ts} +0 -0
@@ -1,45 +0,0 @@
1
- /**
2
- * This is your entry point to setup the root configuration for tRPC on the server.
3
- * - `initTRPC` should only be used once per app.
4
- * - We export only the functionality that we use so we can enforce which base procedures should be used
5
- *
6
- * Learn how to create protected base procedures and other things below:
7
- * @link https://trpc.io/docs/v11/router
8
- * @link https://trpc.io/docs/v11/procedures
9
- */
10
- import { DESKTOP_USER_ID } from '@/const/desktop';
11
- import { isDesktop } from '@/const/version';
12
-
13
- import { edgeTrpc } from './init';
14
- import { jwtPayloadChecker } from './middleware/jwtPayload';
15
-
16
- /**
17
- * Create a router
18
- * @link https://trpc.io/docs/v11/router
19
- */
20
- export const router = edgeTrpc.router;
21
-
22
- /**
23
- * Create an unprotected procedure
24
- * @link https://trpc.io/docs/v11/procedures
25
- **/
26
- export const publicProcedure = edgeTrpc.procedure.use(({ next, ctx }) => {
27
- return next({
28
- ctx: { userId: isDesktop ? DESKTOP_USER_ID : ctx.userId },
29
- });
30
- });
31
-
32
- // procedure that asserts that the user add the password
33
- export const passwordProcedure = edgeTrpc.procedure.use(jwtPayloadChecker);
34
-
35
- /**
36
- * Merge multiple routers together
37
- * @link https://trpc.io/docs/v11/merging-routers
38
- */
39
- export const mergeRouters = edgeTrpc.mergeRouters;
40
-
41
- /**
42
- * Create a server-side caller
43
- * @link https://trpc.io/docs/v11/server/server-side-calls
44
- */
45
- export const createCallerFactory = edgeTrpc.createCallerFactory;
@@ -1,26 +0,0 @@
1
- /**
2
- * This is your entry point to setup the root configuration for tRPC on the server.
3
- * - `initTRPC` should only be used once per app.
4
- * - We export only the functionality that we use so we can enforce which base procedures should be used
5
- *
6
- * Learn how to create protected base procedures and other things below:
7
- * @link https://trpc.io/docs/v11/router
8
- * @link https://trpc.io/docs/v11/procedures
9
- */
10
- import { initTRPC } from '@trpc/server';
11
- import superjson from 'superjson';
12
-
13
- import type { EdgeContext } from './context';
14
-
15
- export const edgeTrpc = initTRPC.context<EdgeContext>().create({
16
- /**
17
- * @link https://trpc.io/docs/v11/error-formatting
18
- */
19
- errorFormatter({ shape }) {
20
- return shape;
21
- },
22
- /**
23
- * @link https://trpc.io/docs/v11/data-transformers
24
- */
25
- transformer: superjson,
26
- });
@@ -1,75 +0,0 @@
1
- // @vitest-environment node
2
- import * as utils from '@lobechat/utils/server';
3
- import { TRPCError } from '@trpc/server';
4
- import { beforeEach, describe, expect, it, vi } from 'vitest';
5
-
6
- import { createCallerFactory } from '@/libs/trpc/edge';
7
- import { AuthContext, createContextInner } from '@/libs/trpc/edge/context';
8
- import { edgeTrpc as trpc } from '@/libs/trpc/edge/init';
9
-
10
- import { jwtPayloadChecker } from './jwtPayload';
11
-
12
- const appRouter = trpc.router({
13
- protectedQuery: trpc.procedure.use(jwtPayloadChecker).query(async ({ ctx }) => {
14
- return ctx.jwtPayload;
15
- }),
16
- });
17
-
18
- const createCaller = createCallerFactory(appRouter);
19
- let ctx: AuthContext;
20
- let router: ReturnType<typeof createCaller>;
21
-
22
- vi.mock('@/libs/next-auth/edge', () => {
23
- return {
24
- auth: vi.fn().mockResolvedValue(undefined),
25
- };
26
- });
27
-
28
- beforeEach(() => {
29
- vi.resetAllMocks();
30
- });
31
-
32
- describe('passwordChecker middleware', () => {
33
- it('should throw UNAUTHORIZED error if authorizationHeader is not present in context', async () => {
34
- ctx = await createContextInner();
35
- router = createCaller(ctx);
36
-
37
- await expect(router.protectedQuery()).rejects.toThrow(new TRPCError({ code: 'UNAUTHORIZED' }));
38
- });
39
-
40
- it('should call next with jwtPayload in context if access code is correct', async () => {
41
- const jwtPayload = { accessCode: '123' };
42
-
43
- vi.spyOn(utils, 'getXorPayload').mockResolvedValue(jwtPayload);
44
-
45
- ctx = await createContextInner({ authorizationHeader: 'Bearer token' });
46
- router = createCaller(ctx);
47
-
48
- const data = await router.protectedQuery();
49
-
50
- expect(data).toEqual(jwtPayload);
51
- });
52
-
53
- it('should call next with jwtPayload in context if no access codes are set', async () => {
54
- const jwtPayload = {};
55
- vi.spyOn(utils, 'getXorPayload').mockResolvedValue(jwtPayload);
56
-
57
- ctx = await createContextInner({ authorizationHeader: 'Bearer token' });
58
- router = createCaller(ctx);
59
-
60
- const data = await router.protectedQuery();
61
-
62
- expect(data).toEqual(jwtPayload);
63
- });
64
- it('should call next with jwtPayload in context if access codes is undefined', async () => {
65
- const jwtPayload = {};
66
- vi.spyOn(utils, 'getXorPayload').mockResolvedValue(jwtPayload);
67
-
68
- ctx = await createContextInner({ authorizationHeader: 'Bearer token' });
69
- router = createCaller(ctx);
70
-
71
- const data = await router.protectedQuery();
72
-
73
- expect(data).toEqual(jwtPayload);
74
- });
75
- });
@@ -1,14 +0,0 @@
1
- import { getXorPayload } from '@lobechat/utils/server';
2
- import { TRPCError } from '@trpc/server';
3
-
4
- import { edgeTrpc } from '../init';
5
-
6
- export const jwtPayloadChecker = edgeTrpc.middleware(async (opts) => {
7
- const { ctx } = opts;
8
-
9
- if (!ctx.authorizationHeader) throw new TRPCError({ code: 'UNAUTHORIZED' });
10
-
11
- const jwtPayload = getXorPayload(ctx.authorizationHeader);
12
-
13
- return opts.next({ ctx: { jwtPayload } });
14
- });
@@ -1,10 +0,0 @@
1
- import type { Migration, MigrationData } from './VersionController';
2
-
3
- export class MigrationV0ToV1 implements Migration {
4
- // from this version to start migration
5
- version = 0;
6
-
7
- migrate(data: MigrationData): MigrationData {
8
- return data;
9
- }
10
- }
@@ -1,191 +0,0 @@
1
- {
2
- "exportType": "sessions",
3
- "state": {
4
- "sessions": {
5
- "06cc3e20-e870-4099-a619-c07a849d742d": {
6
- "chats": {
7
- "n2Tsl3Dm": {
8
- "content": "是的,你可以使用 Prisma 来自定义生成 `id` 的逻辑,例如使用 `nanoid` 库来生成唯一标识符。\n\n首先,你需要在项目中安装 `nanoid` 库:\n\n```\nnpm install nanoid\n```\n\n然后,你可以在 Prisma 的模型定义中使用 `@default` 指令,并提供一个自定义的默认值函数来生成 `id`。\n\n```prisma\nmodel Message {\n id String @id @default(dbgenerated(\"nanoid(10)\"))\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n```\n\n在上述模型定义中,我们使用 `dbgenerated` 指令来定义一个自定义的默认值函数。函数 `nanoid(10)` 会生成一个长度为 10 的唯一标识符。\n\n请注意,使用自定义的 `id` 生成逻辑可能会对数据库性能产生一些影响,因为每次创建新记录时都需要执行自定义函数。因此,请确保你的自定义逻辑是高效的,并在实际使用中进行测试和评估性能。",
9
- "createAt": 1698463981313,
10
- "id": "n2Tsl3Dm",
11
- "meta": {},
12
- "parentId": "JSZaJOGj",
13
- "role": "assistant",
14
- "updateAt": 1698464004494,
15
- "topicId": "CZg3IEdy",
16
- "extra": { "fromModel": "gpt-3.5-turbo" }
17
- },
18
- "xPft8Msa": {
19
- "content": "如何指定 自定义函数的引入位置?",
20
- "createAt": 1698464173224,
21
- "id": "xPft8Msa",
22
- "meta": {},
23
- "role": "user",
24
- "updateAt": 1698464173226,
25
- "topicId": "CZg3IEdy"
26
- },
27
- "jZc2KKRs": {
28
- "content": "在 Prisma 中,你可以通过在 `schema.prisma` 文件的顶部使用 `generator` 块来指定自定义函数的引入位置。\n\n例如,假设你想使用 `nanoid` 库来生成自定义的 `id`,你可以按照以下方式配置:\n\n```prisma\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"./node_modules/@prisma/client\"\n}\n\ngenerator dbgenerated {\n provider = \"prisma-dbgenerator\"\n output = \"./node_modules/@prisma/client\"\n binaryTargets = [\"native\"]\n previewFeatures = [\"nativeTypes\"]\n config = {\n \"generator\": {\n \"dbgenerated\": {\n \"output\": \"./src/db/generated\",\n \"provider\": \"./src/db/generated/provider.js\"\n }\n }\n }\n}\n```\n\n在上述配置中,我们定义了两个生成器。`client` 生成器用于生成 Prisma 客户端代码,而 `dbgenerated` 生成器用于生成数据库相关的代码。\n\n注意到 `dbgenerated` 生成器的 `config` 部分中有一个 `provider` 字段,它指定了自定义函数的引入位置。在这个示例中,我们将自定义函数放在 `./src/db/generated/provider.js` 文件中。\n\n你可以根据你的项目结构和需要来调整路径和文件名,确保指定的 `provider` 路径正确引入了自定义函数。",
29
- "createAt": 1698464173228,
30
- "id": "jZc2KKRs",
31
- "meta": {},
32
- "parentId": "xPft8Msa",
33
- "role": "assistant",
34
- "updateAt": 1698464181896,
35
- "topicId": "CZg3IEdy",
36
- "extra": { "fromModel": "gpt-3.5-turbo" }
37
- },
38
- "LjG9XSuq": {
39
- "content": "如何启动一个 postgres Docker 镜像?",
40
- "createAt": 1698754460196,
41
- "id": "LjG9XSuq",
42
- "meta": {},
43
- "role": "user",
44
- "updateAt": 1698754463118,
45
- "topicId": "MNWhBEh5"
46
- },
47
- "CL7E1Mc5": {
48
- "content": "要启动一个 PostgreSQL Docker 镜像,你可以按照以下步骤操作:\n\n1. 首先,确保你已经安装了 Docker,可以在终端中运行 `docker --version` 来检查。\n\n2. 在终端中运行以下命令以下载并启动一个 PostgreSQL 镜像:\n\n ```shell\n docker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres\n ```\n\n 这将从 Docker Hub 下载 PostgreSQL 镜像",
49
- "createAt": 1698754479751,
50
- "id": "CL7E1Mc5",
51
- "meta": {},
52
- "parentId": "LjG9XSuq",
53
- "role": "assistant",
54
- "updateAt": 1698754507690,
55
- "topicId": "MNWhBEh5",
56
- "extra": { "fromModel": "gpt-3.5-turbo" }
57
- },
58
- "UIvHZr7m": {
59
- "content": "如何指定本地存储的目录到 /www/database/postgres",
60
- "createAt": 1698754591763,
61
- "id": "UIvHZr7m",
62
- "meta": {},
63
- "role": "user",
64
- "updateAt": 1698754591764,
65
- "topicId": "MNWhBEh5"
66
- },
67
- "XLJOK44r": {
68
- "content": "要将本地存储的目录映射到容器内的 `/var/lib/postgresql/data` 目录,你可以使用 Docker 的 `-v` 参数。\n\n以下是示例命令:\n\n```shell\ndocker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -v /www/database/postgres:/var/lib/postgresql/data -d postgres\n```\n\n在这个命令中,我们使用了 `-v` 参数来指定本地目录 `/www/database/postgres` 映射到容器内的 `/var/lib/postgresql/data` 目录。这样,所有的 PostgreSQL 数据将会保存在本地指定的目录中。",
69
- "createAt": 1698754591765,
70
- "id": "XLJOK44r",
71
- "meta": {},
72
- "parentId": "UIvHZr7m",
73
- "role": "assistant",
74
- "updateAt": 1698754609275,
75
- "topicId": "MNWhBEh5",
76
- "extra": { "fromModel": "gpt-3.5-turbo" }
77
- },
78
- "W3J6jQjm": {
79
- "content": "docker run --name postgres -e POSTGRES_PASSWORD=DSLapHYdzNrai5j6 -p 33300:5432 -v /www/database/postgres:/var/lib/postgresql/data -d postgres",
80
- "createAt": 1698754700529,
81
- "id": "W3J6jQjm",
82
- "meta": {},
83
- "role": "user",
84
- "updateAt": 1698754700530,
85
- "topicId": "MNWhBEh5"
86
- },
87
- "L7mq0ehV": {
88
- "content": "如何启动 pgadmin",
89
- "createAt": 1698755749886,
90
- "id": "L7mq0ehV",
91
- "meta": {},
92
- "role": "user",
93
- "updateAt": 1698755749888,
94
- "topicId": "MNWhBEh5"
95
- },
96
- "d5XTX9EQ": {
97
- "content": "要启动 pgAdmin,你可以按照以下步骤操作:\n\n1. 首先,确保你已经安装了 Docker,并且已经成功启动了 PostgreSQL Docker 容器。\n\n2. 在终端中运行以下命令以启动 pgAdmin Docker 容器:\n\n ```shell\n docker run --name my-pgadmin -p 5050:80 -e PGADMIN_DEFAULT_EMAIL=myemail@example.com -e PGADMIN_DEFAULT_PASSWORD=mypassword -d dpage/pgadmin4\n ```\n\n 在这个命令中,我们使用了 `-p` 参数来将容器的端口 80 映射到本地的端口 5050。你可以根据需要修改这个端口映射。\n\n 我们还使用了 `-e` 参数来设置 pgAdmin 的默认登录邮箱和密码。你可以根据需要修改这些值。\n\n3. 在浏览器中访问 `http://localhost:5050`,你将看到 pgAdmin 的登录界面。\n\n4. 使用在上一步中设置的邮箱和密码进行登录。\n\n5. 在 pgAdmin 中,你可以添加一个新的服务器连接,以连接到运行在 Docker 容器中的 PostgreSQL 数据库。要添加一个新的服务器连接,你需要提供以下信息:\n\n - 主机名/地址:使用 Docker 容器的 IP 地址或者 `localhost`。\n - 端口:使用 Docker 容器中 PostgreSQL 的映射端口,例如 33300。\n - 用户名和密码:使用在启动 PostgreSQL 容器时设置的用户名和密码。\n\n 完成上述信息的填写后,点击保存并连接到 PostgreSQL 服务器。\n\n现在,你已经成功启动了 pgAdmin 并连接到了你的 PostgreSQL 数据库。你可以使用 pgAdmin 来管理和操作你的数据库。",
98
- "createAt": 1698755749889,
99
- "id": "d5XTX9EQ",
100
- "meta": {},
101
- "parentId": "L7mq0ehV",
102
- "role": "assistant",
103
- "updateAt": 1698755786183,
104
- "topicId": "MNWhBEh5",
105
- "extra": { "fromModel": "gpt-3.5-turbo" }
106
- },
107
- "KPPDiRyW": {
108
- "content": "abcabc",
109
- "createAt": 1690650544852,
110
- "id": "KPPDiRyW",
111
- "meta": {},
112
- "parentId": "42k72jMi",
113
- "role": "function",
114
- "updateAt": 1690650572399,
115
- "extra": {
116
- "fromModel": "gpt-3.5-turbo-16k"
117
- },
118
- "function_call": {
119
- "name": "websiteCrawler",
120
- "arguments": "{\n \"url\": \"https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651264337&idx=1&sn=d7d9126578c74c912e1f0d42cb5629da&chksm=bd48ccd58a3f45c3f2cbc7d7b732c820b9e7cd6b547c06acc8170b233710b5fb5ed62f5fd94d&mpshare=1&scene=1&srcid=07294Mpw7C6JCLgtagL1cBDR&sharer_sharetime=1690622712877&sharer_shareid=0358058a42fc25387d28337fc3d22c3c#rd\"\n}"
121
- },
122
- "name": "websiteCrawler"
123
- },
124
- "9cRjevRQ": {
125
- "content": "bbbbb",
126
- "createAt": 1700065743405,
127
- "id": "9cRjevRQ",
128
- "meta": {},
129
- "parentId": "3nDXtEKv",
130
- "role": "function",
131
- "updateAt": 1700065751861,
132
- "extra": {
133
- "fromModel": "gpt-3.5-turbo-16k"
134
- },
135
- "plugin": {
136
- "apiName": "getWebsiteContent",
137
- "arguments": "{\n \"url\": \"https://nodejs.org/api/packages.html#dual-package-hazard\"\n}",
138
- "identifier": "website-crawler",
139
- "type": "default"
140
- },
141
- "name": "website-crawler"
142
- }
143
- },
144
- "config": {
145
- "displayMode": "chat",
146
- "historyCount": 1,
147
- "model": "gpt-3.5-turbo",
148
- "params": {
149
- "frequency_penalty": 0,
150
- "presence_penalty": 0,
151
- "temperature": 0.6,
152
- "top_p": 1,
153
- "max_tokens": 2200
154
- },
155
- "plugins": [],
156
- "systemRole": "你是一名 Postgresql 的数据库专家。用户是一名数据库小白,你需要使用简单直白的方式告诉用户如何使用 ostgresql 和它相应的 orm 工具 primsa",
157
- "enableCompressThreshold": false,
158
- "enableMaxTokens": false,
159
- "inputTemplate": ""
160
- },
161
- "createAt": 1698463356269,
162
- "id": "06cc3e20-e870-4099-a619-c07a849d742d",
163
- "meta": {
164
- "avatar": "🐘",
165
- "backgroundColor": "rgba(0,0,0,0)",
166
- "title": "Postgresql 指南",
167
- "description": "PostgreSQL 数据库和 Prisma ORM 工具的简单使用指南",
168
- "tags": ["数据库", "PostgreSQL", "教程", "ORM", "Prisma"]
169
- },
170
- "type": "agent",
171
- "updateAt": 1698463356269,
172
- "pinned": true,
173
- "topics": {
174
- "CZg3IEdy": {
175
- "createAt": 1698463911747,
176
- "id": "CZg3IEdy",
177
- "title": "Prisma中的cuid函数作用是什么",
178
- "updateAt": 1698463915716
179
- },
180
- "MNWhBEh5": {
181
- "createAt": 1698754463117,
182
- "id": "MNWhBEh5",
183
- "title": "启动 PostgreSQL Docker 镜像方法",
184
- "updateAt": 1698754464867
185
- }
186
- }
187
- }
188
- }
189
- },
190
- "version": 1
191
- }
@@ -1,202 +0,0 @@
1
- {
2
- "exportType": "sessions",
3
- "state": {
4
- "sessions": [
5
- {
6
- "config": {
7
- "displayMode": "chat",
8
- "historyCount": 1,
9
- "model": "gpt-3.5-turbo",
10
- "params": {
11
- "frequency_penalty": 0,
12
- "presence_penalty": 0,
13
- "temperature": 0.6,
14
- "top_p": 1,
15
- "max_tokens": 2200
16
- },
17
- "plugins": [],
18
- "systemRole": "你是一名 Postgresql 的数据库专家。用户是一名数据库小白,你需要使用简单直白的方式告诉用户如何使用 ostgresql 和它相应的 orm 工具 primsa",
19
- "enableCompressThreshold": false,
20
- "enableMaxTokens": false,
21
- "inputTemplate": ""
22
- },
23
- "createdAt": 1698463356269,
24
- "id": "06cc3e20-e870-4099-a619-c07a849d742d",
25
- "meta": {
26
- "avatar": "🐘",
27
- "backgroundColor": "rgba(0,0,0,0)",
28
- "title": "Postgresql 指南",
29
- "description": "PostgreSQL 数据库和 Prisma ORM 工具的简单使用指南",
30
- "tags": ["数据库", "PostgreSQL", "教程", "ORM", "Prisma"]
31
- },
32
- "type": "agent",
33
- "updatedAt": 1698463356269,
34
- "group": "pinned"
35
- }
36
- ],
37
- "topics": [
38
- {
39
- "createdAt": 1698463911747,
40
- "id": "CZg3IEdy",
41
- "title": "Prisma中的cuid函数作用是什么",
42
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
43
- "updatedAt": 1698463915716
44
- },
45
- {
46
- "createdAt": 1698754463117,
47
- "id": "MNWhBEh5",
48
- "title": "启动 PostgreSQL Docker 镜像方法",
49
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
50
- "updatedAt": 1698754464867
51
- }
52
- ],
53
- "messages": [
54
- {
55
- "content": "是的,你可以使用 Prisma 来自定义生成 `id` 的逻辑,例如使用 `nanoid` 库来生成唯一标识符。\n\n首先,你需要在项目中安装 `nanoid` 库:\n\n```\nnpm install nanoid\n```\n\n然后,你可以在 Prisma 的模型定义中使用 `@default` 指令,并提供一个自定义的默认值函数来生成 `id`。\n\n```prisma\nmodel Message {\n id String @id @default(dbgenerated(\"nanoid(10)\"))\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n```\n\n在上述模型定义中,我们使用 `dbgenerated` 指令来定义一个自定义的默认值函数。函数 `nanoid(10)` 会生成一个长度为 10 的唯一标识符。\n\n请注意,使用自定义的 `id` 生成逻辑可能会对数据库性能产生一些影响,因为每次创建新记录时都需要执行自定义函数。因此,请确保你的自定义逻辑是高效的,并在实际使用中进行测试和评估性能。",
56
- "createdAt": 1698463981313,
57
- "id": "n2Tsl3Dm",
58
- "meta": {},
59
- "parentId": "JSZaJOGj",
60
- "role": "assistant",
61
- "updatedAt": 1698464004494,
62
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
63
- "topicId": "CZg3IEdy",
64
- "fromModel": "gpt-3.5-turbo"
65
- },
66
- {
67
- "content": "如何指定 自定义函数的引入位置?",
68
- "createdAt": 1698464173224,
69
- "id": "xPft8Msa",
70
- "meta": {},
71
- "role": "user",
72
- "updatedAt": 1698464173226,
73
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
74
- "topicId": "CZg3IEdy"
75
- },
76
- {
77
- "content": "在 Prisma 中,你可以通过在 `schema.prisma` 文件的顶部使用 `generator` 块来指定自定义函数的引入位置。\n\n例如,假设你想使用 `nanoid` 库来生成自定义的 `id`,你可以按照以下方式配置:\n\n```prisma\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"./node_modules/@prisma/client\"\n}\n\ngenerator dbgenerated {\n provider = \"prisma-dbgenerator\"\n output = \"./node_modules/@prisma/client\"\n binaryTargets = [\"native\"]\n previewFeatures = [\"nativeTypes\"]\n config = {\n \"generator\": {\n \"dbgenerated\": {\n \"output\": \"./src/db/generated\",\n \"provider\": \"./src/db/generated/provider.js\"\n }\n }\n }\n}\n```\n\n在上述配置中,我们定义了两个生成器。`client` 生成器用于生成 Prisma 客户端代码,而 `dbgenerated` 生成器用于生成数据库相关的代码。\n\n注意到 `dbgenerated` 生成器的 `config` 部分中有一个 `provider` 字段,它指定了自定义函数的引入位置。在这个示例中,我们将自定义函数放在 `./src/db/generated/provider.js` 文件中。\n\n你可以根据你的项目结构和需要来调整路径和文件名,确保指定的 `provider` 路径正确引入了自定义函数。",
78
- "createdAt": 1698464173228,
79
- "id": "jZc2KKRs",
80
- "meta": {},
81
- "parentId": "xPft8Msa",
82
- "role": "assistant",
83
- "updatedAt": 1698464181896,
84
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
85
- "topicId": "CZg3IEdy",
86
- "fromModel": "gpt-3.5-turbo"
87
- },
88
- {
89
- "content": "如何启动一个 postgres Docker 镜像?",
90
- "createdAt": 1698754460196,
91
- "id": "LjG9XSuq",
92
- "meta": {},
93
- "role": "user",
94
- "updatedAt": 1698754463118,
95
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
96
- "topicId": "MNWhBEh5"
97
- },
98
- {
99
- "content": "要启动一个 PostgreSQL Docker 镜像,你可以按照以下步骤操作:\n\n1. 首先,确保你已经安装了 Docker,可以在终端中运行 `docker --version` 来检查。\n\n2. 在终端中运行以下命令以下载并启动一个 PostgreSQL 镜像:\n\n ```shell\n docker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres\n ```\n\n 这将从 Docker Hub 下载 PostgreSQL 镜像",
100
- "createdAt": 1698754479751,
101
- "id": "CL7E1Mc5",
102
- "meta": {},
103
- "parentId": "LjG9XSuq",
104
- "role": "assistant",
105
- "updatedAt": 1698754507690,
106
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
107
- "topicId": "MNWhBEh5",
108
- "fromModel": "gpt-3.5-turbo"
109
- },
110
- {
111
- "content": "如何指定本地存储的目录到 /www/database/postgres",
112
- "createdAt": 1698754591763,
113
- "id": "UIvHZr7m",
114
- "meta": {},
115
- "role": "user",
116
- "updatedAt": 1698754591764,
117
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
118
- "topicId": "MNWhBEh5"
119
- },
120
- {
121
- "content": "要将本地存储的目录映射到容器内的 `/var/lib/postgresql/data` 目录,你可以使用 Docker 的 `-v` 参数。\n\n以下是示例命令:\n\n```shell\ndocker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -v /www/database/postgres:/var/lib/postgresql/data -d postgres\n```\n\n在这个命令中,我们使用了 `-v` 参数来指定本地目录 `/www/database/postgres` 映射到容器内的 `/var/lib/postgresql/data` 目录。这样,所有的 PostgreSQL 数据将会保存在本地指定的目录中。",
122
- "createdAt": 1698754591765,
123
- "id": "XLJOK44r",
124
- "meta": {},
125
- "parentId": "UIvHZr7m",
126
- "role": "assistant",
127
- "updatedAt": 1698754609275,
128
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
129
- "topicId": "MNWhBEh5",
130
- "fromModel": "gpt-3.5-turbo"
131
- },
132
- {
133
- "content": "docker run --name postgres -e POSTGRES_PASSWORD=DSLapHYdzNrai5j6 -p 33300:5432 -v /www/database/postgres:/var/lib/postgresql/data -d postgres",
134
- "createdAt": 1698754700529,
135
- "id": "W3J6jQjm",
136
- "meta": {},
137
- "role": "user",
138
- "updatedAt": 1698754700530,
139
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
140
- "topicId": "MNWhBEh5"
141
- },
142
- {
143
- "content": "如何启动 pgadmin",
144
- "createdAt": 1698755749886,
145
- "id": "L7mq0ehV",
146
- "meta": {},
147
- "role": "user",
148
- "updatedAt": 1698755749888,
149
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
150
- "topicId": "MNWhBEh5"
151
- },
152
- {
153
- "content": "要启动 pgAdmin,你可以按照以下步骤操作:\n\n1. 首先,确保你已经安装了 Docker,并且已经成功启动了 PostgreSQL Docker 容器。\n\n2. 在终端中运行以下命令以启动 pgAdmin Docker 容器:\n\n ```shell\n docker run --name my-pgadmin -p 5050:80 -e PGADMIN_DEFAULT_EMAIL=myemail@example.com -e PGADMIN_DEFAULT_PASSWORD=mypassword -d dpage/pgadmin4\n ```\n\n 在这个命令中,我们使用了 `-p` 参数来将容器的端口 80 映射到本地的端口 5050。你可以根据需要修改这个端口映射。\n\n 我们还使用了 `-e` 参数来设置 pgAdmin 的默认登录邮箱和密码。你可以根据需要修改这些值。\n\n3. 在浏览器中访问 `http://localhost:5050`,你将看到 pgAdmin 的登录界面。\n\n4. 使用在上一步中设置的邮箱和密码进行登录。\n\n5. 在 pgAdmin 中,你可以添加一个新的服务器连接,以连接到运行在 Docker 容器中的 PostgreSQL 数据库。要添加一个新的服务器连接,你需要提供以下信息:\n\n - 主机名/地址:使用 Docker 容器的 IP 地址或者 `localhost`。\n - 端口:使用 Docker 容器中 PostgreSQL 的映射端口,例如 33300。\n - 用户名和密码:使用在启动 PostgreSQL 容器时设置的用户名和密码。\n\n 完成上述信息的填写后,点击保存并连接到 PostgreSQL 服务器。\n\n现在,你已经成功启动了 pgAdmin 并连接到了你的 PostgreSQL 数据库。你可以使用 pgAdmin 来管理和操作你的数据库。",
154
- "createdAt": 1698755749889,
155
- "id": "d5XTX9EQ",
156
- "meta": {},
157
- "parentId": "L7mq0ehV",
158
- "role": "assistant",
159
- "updatedAt": 1698755786183,
160
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
161
- "topicId": "MNWhBEh5",
162
- "fromModel": "gpt-3.5-turbo"
163
- },
164
- {
165
- "content": "abcabc",
166
- "createdAt": 1690650544852,
167
- "id": "KPPDiRyW",
168
- "meta": {},
169
- "parentId": "42k72jMi",
170
- "role": "function",
171
- "updatedAt": 1690650572399,
172
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
173
-
174
- "fromModel": "gpt-3.5-turbo-16k",
175
- "plugin": {
176
- "apiName": "websiteCrawler",
177
- "arguments": "{\n \"url\": \"https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651264337&idx=1&sn=d7d9126578c74c912e1f0d42cb5629da&chksm=bd48ccd58a3f45c3f2cbc7d7b732c820b9e7cd6b547c06acc8170b233710b5fb5ed62f5fd94d&mpshare=1&scene=1&srcid=07294Mpw7C6JCLgtagL1cBDR&sharer_sharetime=1690622712877&sharer_shareid=0358058a42fc25387d28337fc3d22c3c#rd\"\n}",
178
- "identifier": "websiteCrawler",
179
- "type": "default"
180
- }
181
- },
182
- {
183
- "content": "bbbbb",
184
- "createdAt": 1700065743405,
185
- "id": "9cRjevRQ",
186
- "meta": {},
187
- "parentId": "3nDXtEKv",
188
- "role": "function",
189
- "sessionId": "06cc3e20-e870-4099-a619-c07a849d742d",
190
- "updatedAt": 1700065751861,
191
- "fromModel": "gpt-3.5-turbo-16k",
192
- "plugin": {
193
- "apiName": "getWebsiteContent",
194
- "arguments": "{\n \"url\": \"https://nodejs.org/api/packages.html#dual-package-hazard\"\n}",
195
- "identifier": "website-crawler",
196
- "type": "default"
197
- }
198
- }
199
- ]
200
- },
201
- "version": 2
202
- }
@@ -1,82 +0,0 @@
1
- import { INBOX_SESSION_ID } from '@/const/session';
2
- import type { Migration, MigrationData } from '@/migrations/VersionController';
3
-
4
- import { V1Chat, V1ConfigState, V1Session, V1Topic } from './types/v1';
5
- import { V2ConfigState, V2Message, V2Session, V2Topic } from './types/v2';
6
-
7
- export class MigrationV1ToV2 implements Migration {
8
- // from this version to start migration
9
- version = 1;
10
-
11
- migrateSession = (
12
- session: V1Session,
13
- finalMessages: V2Message[],
14
- finalTopics: V2Topic[],
15
- ): V2Session => {
16
- const { chats, topics, createAt, updateAt, pinned, ...i } = session;
17
-
18
- if (chats) {
19
- for (const chat of Object.values(chats)) {
20
- finalMessages.push(this.migrationMessage(chat, i.id));
21
- }
22
- }
23
-
24
- if (topics) {
25
- for (const chat of Object.values(topics)) {
26
- finalTopics.push(this.migrationTopic(i.id, chat));
27
- }
28
- }
29
-
30
- return { ...i, createdAt: createAt, group: pinned ? 'pinned' : 'default', updatedAt: updateAt };
31
- };
32
-
33
- migrate(data: MigrationData<V1ConfigState>): MigrationData<V2ConfigState> {
34
- const { sessions: v1Session = {}, inbox } = data.state;
35
- const v2Messages: V2Message[] = [];
36
- const v2Topics: V2Topic[] = [];
37
-
38
- const sessions: V2Session[] = Object.values(v1Session).map((s) =>
39
- this.migrateSession(s, v2Messages, v2Topics),
40
- );
41
-
42
- if (inbox) {
43
- this.migrateSession({ ...inbox, id: INBOX_SESSION_ID }, v2Messages, v2Topics);
44
- }
45
-
46
- return {
47
- ...data,
48
- state: {
49
- ...data.state,
50
- messages: v2Messages,
51
- sessions,
52
- topics: v2Topics,
53
- },
54
- };
55
- }
56
-
57
- migrationMessage = (
58
- { createAt, extra, updateAt, name, function_call, ...chat }: V1Chat,
59
- sessionId: string,
60
- ): V2Message => ({
61
- ...chat,
62
- createdAt: createAt,
63
- plugin: function_call
64
- ? {
65
- apiName: function_call.name,
66
- arguments: function_call.arguments,
67
- identifier: name!,
68
- type: 'default',
69
- }
70
- : chat.plugin,
71
- sessionId,
72
- updatedAt: updateAt,
73
- ...extra,
74
- });
75
-
76
- migrationTopic = (sessionId: string, { createAt, updateAt, ...topic }: V1Topic): V2Topic => ({
77
- ...topic,
78
- createdAt: createAt,
79
- sessionId,
80
- updatedAt: updateAt,
81
- });
82
- }