@lobehub/lobehub 2.0.0-next.5 → 2.0.0-next.51

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 (1468) hide show
  1. package/.env.desktop +1 -2
  2. package/.env.example +11 -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 +48 -12
  12. package/.nvmrc +1 -1
  13. package/CHANGELOG.md +1134 -0
  14. package/Dockerfile +1 -3
  15. package/README.md +3 -46
  16. package/README.zh-CN.md +3 -46
  17. package/apps/desktop/package.json +1 -1
  18. package/apps/desktop/src/main/controllers/AuthCtr.ts +78 -39
  19. package/apps/desktop/src/main/controllers/MenuCtr.ts +5 -5
  20. package/apps/desktop/src/main/controllers/NotificationCtr.ts +29 -29
  21. package/apps/desktop/src/main/controllers/RemoteServerConfigCtr.ts +16 -16
  22. package/apps/desktop/src/main/controllers/ShellCommandCtr.ts +242 -0
  23. package/apps/desktop/src/main/controllers/ShortcutCtr.ts +2 -2
  24. package/apps/desktop/src/main/controllers/TrayMenuCtr.ts +18 -18
  25. package/apps/desktop/src/main/controllers/UpdaterCtr.ts +4 -4
  26. package/apps/desktop/src/main/controllers/__tests__/AuthCtr.test.ts +706 -0
  27. package/apps/desktop/src/main/controllers/__tests__/ShellCommandCtr.test.ts +499 -0
  28. package/apps/desktop/src/main/controllers/__tests__/TrayMenuCtr.test.ts +5 -5
  29. package/apps/desktop/src/main/controllers/index.ts +4 -4
  30. package/apps/desktop/src/main/core/infrastructure/ProtocolManager.ts +9 -4
  31. package/apps/desktop/src/main/core/infrastructure/UpdaterManager.ts +23 -2
  32. package/apps/desktop/src/main/modules/networkProxy/__tests__/dispatcher.test.ts +401 -0
  33. package/apps/desktop/src/main/modules/networkProxy/__tests__/tester.test.ts +531 -0
  34. package/apps/desktop/src/main/modules/networkProxy/__tests__/urlBuilder.test.ts +349 -0
  35. package/apps/desktop/src/main/modules/networkProxy/__tests__/validator.test.ts +492 -0
  36. package/apps/desktop/src/main/utils/next-electron-rsc.ts +7 -5
  37. package/apps/desktop/tsconfig.json +0 -1
  38. package/changelog/v1.json +388 -0
  39. package/docker-compose/local/.env.example +3 -0
  40. package/docs/development/database-schema.dbml +5 -1
  41. package/docs/self-hosting/advanced/auth/next-auth/auth0.mdx +2 -2
  42. package/docs/self-hosting/advanced/auth/next-auth/auth0.zh-CN.mdx +2 -2
  43. package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +2 -2
  44. package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +2 -2
  45. package/docs/self-hosting/advanced/auth/next-auth/authentik.mdx +2 -2
  46. package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +2 -2
  47. package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +2 -2
  48. package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +2 -2
  49. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.mdx +2 -2
  50. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.zh-CN.mdx +2 -2
  51. package/docs/self-hosting/advanced/auth/next-auth/github.mdx +2 -2
  52. package/docs/self-hosting/advanced/auth/next-auth/github.zh-CN.mdx +2 -2
  53. package/docs/self-hosting/advanced/auth/next-auth/google.mdx +32 -29
  54. package/docs/self-hosting/advanced/auth/next-auth/keycloak.mdx +2 -2
  55. package/docs/self-hosting/advanced/auth/next-auth/keycloak.zh-CN.mdx +2 -2
  56. package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +5 -3
  57. package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +5 -3
  58. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.mdx +2 -2
  59. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.zh-CN.mdx +2 -2
  60. package/docs/self-hosting/advanced/auth/next-auth/okta.mdx +2 -2
  61. package/docs/self-hosting/advanced/auth/next-auth/okta.zh-CN.mdx +2 -2
  62. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +2 -2
  63. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +2 -2
  64. package/docs/self-hosting/advanced/auth/next-auth/zitadel.mdx +2 -2
  65. package/docs/self-hosting/advanced/auth/next-auth/zitadel.zh-CN.mdx +2 -2
  66. package/docs/self-hosting/advanced/auth.mdx +32 -21
  67. package/docs/self-hosting/advanced/auth.zh-CN.mdx +30 -19
  68. package/docs/self-hosting/advanced/feature-flags.mdx +0 -1
  69. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +0 -1
  70. package/docs/self-hosting/environment-variables/basic.mdx +49 -3
  71. package/docs/self-hosting/environment-variables/basic.zh-CN.mdx +49 -4
  72. package/docs/self-hosting/server-database/docker-compose.mdx +29 -0
  73. package/docs/self-hosting/server-database/docker-compose.zh-CN.mdx +29 -0
  74. package/e2e/src/features/discover/detail-pages.feature +95 -0
  75. package/e2e/src/features/discover/interactions.feature +113 -0
  76. package/e2e/src/features/discover/smoke.feature +34 -1
  77. package/e2e/src/steps/discover/detail-pages.steps.ts +295 -0
  78. package/e2e/src/steps/discover/interactions.steps.ts +451 -0
  79. package/e2e/src/steps/discover/smoke.steps.ts +116 -4
  80. package/e2e/tsconfig.json +0 -1
  81. package/locales/ar/auth.json +45 -1
  82. package/locales/ar/chat.json +22 -0
  83. package/locales/ar/common.json +1 -0
  84. package/locales/ar/components.json +6 -0
  85. package/locales/ar/discover.json +45 -0
  86. package/locales/ar/labs.json +4 -0
  87. package/locales/ar/marketAuth.json +42 -0
  88. package/locales/ar/modelProvider.json +13 -1
  89. package/locales/ar/models.json +6 -6
  90. package/locales/ar/oauth.json +1 -0
  91. package/locales/ar/plugin.json +1 -0
  92. package/locales/ar/setting.json +94 -1
  93. package/locales/ar/topic.json +1 -0
  94. package/locales/bg-BG/auth.json +45 -1
  95. package/locales/bg-BG/chat.json +22 -0
  96. package/locales/bg-BG/common.json +1 -0
  97. package/locales/bg-BG/components.json +6 -0
  98. package/locales/bg-BG/discover.json +45 -0
  99. package/locales/bg-BG/labs.json +4 -0
  100. package/locales/bg-BG/marketAuth.json +42 -0
  101. package/locales/bg-BG/modelProvider.json +13 -1
  102. package/locales/bg-BG/models.json +6 -6
  103. package/locales/bg-BG/oauth.json +1 -0
  104. package/locales/bg-BG/plugin.json +1 -0
  105. package/locales/bg-BG/setting.json +94 -1
  106. package/locales/bg-BG/topic.json +1 -0
  107. package/locales/de-DE/auth.json +45 -1
  108. package/locales/de-DE/chat.json +22 -0
  109. package/locales/de-DE/common.json +1 -0
  110. package/locales/de-DE/components.json +6 -0
  111. package/locales/de-DE/discover.json +45 -0
  112. package/locales/de-DE/labs.json +4 -0
  113. package/locales/de-DE/marketAuth.json +42 -0
  114. package/locales/de-DE/modelProvider.json +13 -1
  115. package/locales/de-DE/models.json +6 -6
  116. package/locales/de-DE/oauth.json +1 -0
  117. package/locales/de-DE/plugin.json +1 -0
  118. package/locales/de-DE/setting.json +94 -1
  119. package/locales/de-DE/topic.json +1 -0
  120. package/locales/en-US/auth.json +45 -1
  121. package/locales/en-US/chat.json +22 -0
  122. package/locales/en-US/common.json +1 -0
  123. package/locales/en-US/components.json +6 -0
  124. package/locales/en-US/discover.json +45 -0
  125. package/locales/en-US/labs.json +4 -0
  126. package/locales/en-US/marketAuth.json +42 -0
  127. package/locales/en-US/modelProvider.json +13 -1
  128. package/locales/en-US/models.json +6 -6
  129. package/locales/en-US/oauth.json +1 -0
  130. package/locales/en-US/plugin.json +1 -0
  131. package/locales/en-US/setting.json +94 -1
  132. package/locales/en-US/topic.json +1 -0
  133. package/locales/es-ES/auth.json +45 -1
  134. package/locales/es-ES/chat.json +22 -0
  135. package/locales/es-ES/common.json +1 -0
  136. package/locales/es-ES/components.json +6 -0
  137. package/locales/es-ES/discover.json +45 -0
  138. package/locales/es-ES/labs.json +4 -0
  139. package/locales/es-ES/marketAuth.json +42 -0
  140. package/locales/es-ES/modelProvider.json +13 -1
  141. package/locales/es-ES/models.json +6 -6
  142. package/locales/es-ES/oauth.json +1 -0
  143. package/locales/es-ES/plugin.json +1 -0
  144. package/locales/es-ES/setting.json +94 -1
  145. package/locales/es-ES/topic.json +1 -0
  146. package/locales/fa-IR/auth.json +45 -1
  147. package/locales/fa-IR/chat.json +22 -0
  148. package/locales/fa-IR/common.json +1 -0
  149. package/locales/fa-IR/components.json +6 -0
  150. package/locales/fa-IR/discover.json +45 -0
  151. package/locales/fa-IR/labs.json +4 -0
  152. package/locales/fa-IR/marketAuth.json +42 -0
  153. package/locales/fa-IR/modelProvider.json +13 -1
  154. package/locales/fa-IR/models.json +6 -6
  155. package/locales/fa-IR/oauth.json +1 -0
  156. package/locales/fa-IR/plugin.json +1 -0
  157. package/locales/fa-IR/setting.json +94 -1
  158. package/locales/fa-IR/topic.json +1 -0
  159. package/locales/fr-FR/auth.json +45 -1
  160. package/locales/fr-FR/chat.json +22 -0
  161. package/locales/fr-FR/common.json +1 -0
  162. package/locales/fr-FR/components.json +6 -0
  163. package/locales/fr-FR/discover.json +45 -0
  164. package/locales/fr-FR/labs.json +4 -0
  165. package/locales/fr-FR/marketAuth.json +42 -0
  166. package/locales/fr-FR/modelProvider.json +13 -1
  167. package/locales/fr-FR/models.json +6 -6
  168. package/locales/fr-FR/oauth.json +1 -0
  169. package/locales/fr-FR/plugin.json +1 -0
  170. package/locales/fr-FR/setting.json +94 -1
  171. package/locales/fr-FR/topic.json +1 -0
  172. package/locales/it-IT/auth.json +45 -1
  173. package/locales/it-IT/chat.json +22 -0
  174. package/locales/it-IT/common.json +1 -0
  175. package/locales/it-IT/components.json +6 -0
  176. package/locales/it-IT/discover.json +45 -0
  177. package/locales/it-IT/labs.json +4 -0
  178. package/locales/it-IT/marketAuth.json +42 -0
  179. package/locales/it-IT/modelProvider.json +13 -1
  180. package/locales/it-IT/models.json +6 -6
  181. package/locales/it-IT/oauth.json +1 -0
  182. package/locales/it-IT/plugin.json +1 -0
  183. package/locales/it-IT/setting.json +94 -1
  184. package/locales/it-IT/topic.json +1 -0
  185. package/locales/ja-JP/auth.json +45 -1
  186. package/locales/ja-JP/chat.json +22 -0
  187. package/locales/ja-JP/common.json +1 -0
  188. package/locales/ja-JP/components.json +6 -0
  189. package/locales/ja-JP/discover.json +45 -0
  190. package/locales/ja-JP/labs.json +4 -0
  191. package/locales/ja-JP/marketAuth.json +42 -0
  192. package/locales/ja-JP/modelProvider.json +13 -1
  193. package/locales/ja-JP/models.json +6 -6
  194. package/locales/ja-JP/oauth.json +1 -0
  195. package/locales/ja-JP/plugin.json +1 -0
  196. package/locales/ja-JP/setting.json +94 -1
  197. package/locales/ja-JP/topic.json +1 -0
  198. package/locales/ko-KR/auth.json +45 -1
  199. package/locales/ko-KR/chat.json +22 -0
  200. package/locales/ko-KR/common.json +1 -0
  201. package/locales/ko-KR/components.json +6 -0
  202. package/locales/ko-KR/discover.json +45 -0
  203. package/locales/ko-KR/labs.json +4 -0
  204. package/locales/ko-KR/marketAuth.json +42 -0
  205. package/locales/ko-KR/modelProvider.json +13 -1
  206. package/locales/ko-KR/models.json +12 -12
  207. package/locales/ko-KR/oauth.json +1 -0
  208. package/locales/ko-KR/plugin.json +1 -0
  209. package/locales/ko-KR/setting.json +94 -1
  210. package/locales/ko-KR/topic.json +1 -0
  211. package/locales/nl-NL/auth.json +45 -1
  212. package/locales/nl-NL/chat.json +22 -0
  213. package/locales/nl-NL/common.json +1 -0
  214. package/locales/nl-NL/components.json +6 -0
  215. package/locales/nl-NL/discover.json +45 -0
  216. package/locales/nl-NL/labs.json +4 -0
  217. package/locales/nl-NL/marketAuth.json +42 -0
  218. package/locales/nl-NL/modelProvider.json +13 -1
  219. package/locales/nl-NL/models.json +6 -6
  220. package/locales/nl-NL/oauth.json +1 -0
  221. package/locales/nl-NL/plugin.json +1 -0
  222. package/locales/nl-NL/setting.json +94 -1
  223. package/locales/nl-NL/topic.json +1 -0
  224. package/locales/pl-PL/auth.json +45 -1
  225. package/locales/pl-PL/chat.json +22 -0
  226. package/locales/pl-PL/common.json +1 -0
  227. package/locales/pl-PL/components.json +6 -0
  228. package/locales/pl-PL/discover.json +45 -0
  229. package/locales/pl-PL/labs.json +4 -0
  230. package/locales/pl-PL/marketAuth.json +42 -0
  231. package/locales/pl-PL/modelProvider.json +13 -1
  232. package/locales/pl-PL/models.json +6 -6
  233. package/locales/pl-PL/oauth.json +1 -0
  234. package/locales/pl-PL/plugin.json +1 -0
  235. package/locales/pl-PL/setting.json +94 -1
  236. package/locales/pl-PL/topic.json +1 -0
  237. package/locales/pt-BR/auth.json +45 -1
  238. package/locales/pt-BR/chat.json +22 -0
  239. package/locales/pt-BR/common.json +1 -0
  240. package/locales/pt-BR/components.json +6 -0
  241. package/locales/pt-BR/discover.json +45 -0
  242. package/locales/pt-BR/labs.json +4 -0
  243. package/locales/pt-BR/marketAuth.json +42 -0
  244. package/locales/pt-BR/modelProvider.json +13 -1
  245. package/locales/pt-BR/models.json +6 -6
  246. package/locales/pt-BR/oauth.json +1 -0
  247. package/locales/pt-BR/plugin.json +1 -0
  248. package/locales/pt-BR/setting.json +94 -1
  249. package/locales/pt-BR/topic.json +1 -0
  250. package/locales/ru-RU/auth.json +45 -1
  251. package/locales/ru-RU/chat.json +22 -0
  252. package/locales/ru-RU/common.json +1 -0
  253. package/locales/ru-RU/components.json +6 -0
  254. package/locales/ru-RU/discover.json +45 -0
  255. package/locales/ru-RU/labs.json +4 -0
  256. package/locales/ru-RU/marketAuth.json +42 -0
  257. package/locales/ru-RU/modelProvider.json +13 -1
  258. package/locales/ru-RU/models.json +6 -6
  259. package/locales/ru-RU/oauth.json +1 -0
  260. package/locales/ru-RU/plugin.json +1 -0
  261. package/locales/ru-RU/setting.json +94 -1
  262. package/locales/ru-RU/topic.json +1 -0
  263. package/locales/tr-TR/auth.json +45 -1
  264. package/locales/tr-TR/chat.json +22 -0
  265. package/locales/tr-TR/common.json +1 -0
  266. package/locales/tr-TR/components.json +6 -0
  267. package/locales/tr-TR/discover.json +45 -0
  268. package/locales/tr-TR/labs.json +4 -0
  269. package/locales/tr-TR/marketAuth.json +42 -0
  270. package/locales/tr-TR/modelProvider.json +13 -1
  271. package/locales/tr-TR/models.json +6 -6
  272. package/locales/tr-TR/oauth.json +1 -0
  273. package/locales/tr-TR/plugin.json +1 -0
  274. package/locales/tr-TR/setting.json +94 -1
  275. package/locales/tr-TR/topic.json +1 -0
  276. package/locales/vi-VN/auth.json +45 -1
  277. package/locales/vi-VN/chat.json +22 -0
  278. package/locales/vi-VN/common.json +1 -0
  279. package/locales/vi-VN/components.json +6 -0
  280. package/locales/vi-VN/discover.json +45 -0
  281. package/locales/vi-VN/labs.json +4 -0
  282. package/locales/vi-VN/marketAuth.json +42 -0
  283. package/locales/vi-VN/modelProvider.json +13 -1
  284. package/locales/vi-VN/models.json +6 -6
  285. package/locales/vi-VN/oauth.json +1 -0
  286. package/locales/vi-VN/plugin.json +1 -0
  287. package/locales/vi-VN/setting.json +94 -1
  288. package/locales/vi-VN/topic.json +1 -0
  289. package/locales/zh-CN/auth.json +45 -1
  290. package/locales/zh-CN/chat.json +22 -0
  291. package/locales/zh-CN/common.json +1 -0
  292. package/locales/zh-CN/components.json +6 -0
  293. package/locales/zh-CN/discover.json +45 -0
  294. package/locales/zh-CN/labs.json +4 -0
  295. package/locales/zh-CN/marketAuth.json +42 -0
  296. package/locales/zh-CN/modelProvider.json +13 -1
  297. package/locales/zh-CN/models.json +6 -6
  298. package/locales/zh-CN/oauth.json +1 -0
  299. package/locales/zh-CN/plugin.json +1 -0
  300. package/locales/zh-CN/setting.json +94 -1
  301. package/locales/zh-CN/topic.json +1 -0
  302. package/locales/zh-TW/auth.json +45 -1
  303. package/locales/zh-TW/chat.json +22 -0
  304. package/locales/zh-TW/common.json +1 -0
  305. package/locales/zh-TW/components.json +6 -0
  306. package/locales/zh-TW/discover.json +45 -0
  307. package/locales/zh-TW/labs.json +4 -0
  308. package/locales/zh-TW/marketAuth.json +42 -0
  309. package/locales/zh-TW/modelProvider.json +13 -1
  310. package/locales/zh-TW/models.json +6 -6
  311. package/locales/zh-TW/oauth.json +1 -0
  312. package/locales/zh-TW/plugin.json +1 -0
  313. package/locales/zh-TW/setting.json +94 -1
  314. package/locales/zh-TW/topic.json +1 -0
  315. package/next.config.ts +7 -9
  316. package/package.json +84 -83
  317. package/packages/agent-runtime/src/core/InterventionChecker.ts +5 -16
  318. package/packages/agent-runtime/src/core/__tests__/InterventionChecker.test.ts +27 -80
  319. package/packages/agent-runtime/src/core/__tests__/runtime.test.ts +141 -87
  320. package/packages/agent-runtime/src/core/runtime.ts +68 -19
  321. package/packages/agent-runtime/src/types/event.ts +2 -1
  322. package/packages/agent-runtime/src/types/generalAgent.ts +56 -0
  323. package/packages/agent-runtime/src/types/index.ts +1 -0
  324. package/packages/agent-runtime/src/types/instruction.ts +13 -5
  325. package/packages/agent-runtime/src/types/state.ts +9 -1
  326. package/packages/const/src/hotkeys.ts +3 -3
  327. package/packages/const/src/index.ts +0 -1
  328. package/packages/const/src/models.ts +2 -2
  329. package/packages/const/src/settings/tool.ts +1 -5
  330. package/packages/const/src/url.ts +2 -4
  331. package/packages/const/src/user.ts +4 -2
  332. package/packages/const/src/utils/merge.ts +3 -3
  333. package/packages/const/src/version.ts +3 -3
  334. package/packages/context-engine/src/base/BaseProcessor.ts +13 -13
  335. package/packages/context-engine/src/base/BaseProvider.ts +2 -2
  336. package/packages/context-engine/src/base/__tests__/BaseProcessor.test.ts +5 -5
  337. package/packages/context-engine/src/index.ts +1 -6
  338. package/packages/context-engine/src/processors/GroupMessageFlatten.ts +20 -8
  339. package/packages/context-engine/src/processors/MessageCleanup.ts +7 -6
  340. package/packages/context-engine/src/processors/MessageContent.ts +17 -17
  341. package/packages/context-engine/src/processors/PlaceholderVariables.ts +4 -4
  342. package/packages/context-engine/src/processors/ToolCall.ts +18 -18
  343. package/packages/context-engine/src/processors/ToolMessageReorder.ts +10 -10
  344. package/packages/context-engine/src/processors/__tests__/GroupMessageFlatten.test.ts +83 -19
  345. package/packages/context-engine/src/processors/__tests__/MessageCleanup.test.ts +28 -0
  346. package/packages/context-engine/src/providers/HistorySummary.ts +6 -6
  347. package/packages/context-engine/src/providers/ToolSystemRole.ts +7 -7
  348. package/packages/context-engine/src/providers/index.ts +0 -2
  349. package/packages/context-engine/src/tools/ToolsEngine.ts +8 -8
  350. package/packages/context-engine/src/types.ts +35 -35
  351. package/packages/conversation-flow/package.json +13 -0
  352. package/packages/conversation-flow/src/__tests__/fixtures/index.ts +48 -0
  353. package/packages/conversation-flow/src/__tests__/fixtures/inputs/assistant-chain-with-followup.json +56 -0
  354. package/packages/conversation-flow/src/__tests__/fixtures/inputs/assistant-with-tools.json +144 -0
  355. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/active-index-1.json +131 -0
  356. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/assistant-branch.json +96 -0
  357. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/assistant-group-branches.json +249 -0
  358. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/assistant-user-branch.json +123 -0
  359. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/conversation.json +128 -0
  360. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/index.ts +18 -0
  361. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/multi-assistant-group.json +260 -0
  362. package/packages/conversation-flow/src/__tests__/fixtures/inputs/branch/nested.json +179 -0
  363. package/packages/conversation-flow/src/__tests__/fixtures/inputs/compare/index.ts +8 -0
  364. package/packages/conversation-flow/src/__tests__/fixtures/inputs/compare/simple.json +85 -0
  365. package/packages/conversation-flow/src/__tests__/fixtures/inputs/compare/with-tools.json +169 -0
  366. package/packages/conversation-flow/src/__tests__/fixtures/inputs/complex-scenario.json +107 -0
  367. package/packages/conversation-flow/src/__tests__/fixtures/inputs/index.ts +14 -0
  368. package/packages/conversation-flow/src/__tests__/fixtures/inputs/linear-conversation.json +59 -0
  369. package/packages/conversation-flow/src/__tests__/fixtures/outputs/assistant-chain-with-followup.json +135 -0
  370. package/packages/conversation-flow/src/__tests__/fixtures/outputs/assistant-with-tools.json +340 -0
  371. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/active-index-1.json +246 -0
  372. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/assistant-branch.json +208 -0
  373. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/assistant-group-branches.json +481 -0
  374. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/assistant-user-branch.json +254 -0
  375. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/conversation.json +264 -0
  376. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/index.ts +18 -0
  377. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/multi-assistant-group.json +407 -0
  378. package/packages/conversation-flow/src/__tests__/fixtures/outputs/branch/nested.json +405 -0
  379. package/packages/conversation-flow/src/__tests__/fixtures/outputs/compare/index.ts +8 -0
  380. package/packages/conversation-flow/src/__tests__/fixtures/outputs/compare/simple.json +224 -0
  381. package/packages/conversation-flow/src/__tests__/fixtures/outputs/compare/with-tools.json +418 -0
  382. package/packages/conversation-flow/src/__tests__/fixtures/outputs/complex-scenario.json +261 -0
  383. package/packages/conversation-flow/src/__tests__/fixtures/outputs/linear-conversation.json +138 -0
  384. package/packages/conversation-flow/src/__tests__/parse.test.ts +132 -0
  385. package/packages/conversation-flow/src/index.ts +17 -0
  386. package/packages/conversation-flow/src/indexing.ts +58 -0
  387. package/packages/conversation-flow/src/parse.ts +53 -0
  388. package/packages/conversation-flow/src/structuring.ts +38 -0
  389. package/packages/conversation-flow/src/transformation/BranchResolver.ts +66 -0
  390. package/packages/conversation-flow/src/transformation/ContextTreeBuilder.ts +292 -0
  391. package/packages/conversation-flow/src/transformation/FlatListBuilder.ts +502 -0
  392. package/packages/conversation-flow/src/transformation/MessageCollector.ts +166 -0
  393. package/packages/conversation-flow/src/transformation/MessageTransformer.ts +177 -0
  394. package/packages/conversation-flow/src/transformation/__tests__/BranchResolver.test.ts +151 -0
  395. package/packages/conversation-flow/src/transformation/__tests__/ContextTreeBuilder.test.ts +385 -0
  396. package/packages/conversation-flow/src/transformation/__tests__/FlatListBuilder.test.ts +511 -0
  397. package/packages/conversation-flow/src/transformation/__tests__/MessageCollector.test.ts +220 -0
  398. package/packages/conversation-flow/src/transformation/__tests__/MessageTransformer.test.ts +287 -0
  399. package/packages/conversation-flow/src/transformation/index.ts +78 -0
  400. package/packages/conversation-flow/src/types/contextTree.ts +65 -0
  401. package/packages/conversation-flow/src/types/flatMessageList.ts +54 -0
  402. package/packages/conversation-flow/src/types/index.ts +25 -0
  403. package/packages/conversation-flow/src/types/shared.ts +63 -0
  404. package/packages/conversation-flow/vitest.config.mts +10 -0
  405. package/packages/database/migrations/0042_improve_agent_index.sql +1 -0
  406. package/packages/database/migrations/0043_add_ai_model_settings.sql +1 -0
  407. package/packages/database/migrations/0044_add_tool_intervention.sql +1 -0
  408. package/packages/database/migrations/0044_high_toxin.sql +1 -0
  409. package/packages/database/migrations/0045_add_tool_intervention.sql +1 -0
  410. package/packages/database/migrations/meta/0039_snapshot.json +1 -1
  411. package/packages/database/migrations/meta/0042_snapshot.json +7800 -0
  412. package/packages/database/migrations/meta/0043_snapshot.json +8419 -0
  413. package/packages/database/migrations/meta/0044_snapshot.json +7813 -0
  414. package/packages/database/migrations/meta/0045_snapshot.json +8431 -0
  415. package/packages/database/migrations/meta/_journal.json +28 -0
  416. package/packages/database/package.json +2 -2
  417. package/packages/database/src/core/migrations.json +52 -7
  418. package/packages/database/src/core/web-server.ts +2 -1
  419. package/packages/database/src/models/__tests__/apiKey.test.ts +444 -0
  420. package/packages/database/src/models/__tests__/messages/message.create.test.ts +549 -0
  421. package/packages/database/src/models/__tests__/messages/message.delete.test.ts +481 -0
  422. package/packages/database/src/models/__tests__/messages/message.query.test.ts +1187 -0
  423. package/packages/database/src/models/__tests__/messages/message.stats.test.ts +633 -0
  424. package/packages/database/src/models/__tests__/messages/message.update.test.ts +757 -0
  425. package/packages/database/src/models/agent.ts +16 -13
  426. package/packages/database/src/models/file.ts +15 -1
  427. package/packages/database/src/models/message.ts +47 -81
  428. package/packages/database/src/models/session.ts +62 -10
  429. package/packages/database/src/models/user.ts +2 -1
  430. package/packages/database/src/repositories/aiInfra/index.test.ts +199 -1
  431. package/packages/database/src/repositories/aiInfra/index.ts +2 -1
  432. package/packages/database/src/repositories/dataExporter/index.test.ts +1 -1
  433. package/packages/database/src/repositories/dataImporter/deprecated/__tests__/index.test.ts +2 -1
  434. package/packages/database/src/repositories/dataImporter/deprecated/index.ts +7 -1
  435. package/packages/database/src/repositories/tableViewer/index.test.ts +1 -1
  436. package/packages/database/src/schemas/agent.ts +5 -1
  437. package/packages/database/src/schemas/aiInfra.ts +2 -0
  438. package/packages/database/src/schemas/message.ts +5 -8
  439. package/packages/electron-client-ipc/package.json +4 -1
  440. package/packages/electron-client-ipc/src/events/index.ts +6 -1
  441. package/packages/electron-client-ipc/src/events/remoteServer.ts +8 -0
  442. package/packages/fetch-sse/package.json +29 -0
  443. package/packages/{utils/src/fetch → fetch-sse/src}/__tests__/fetchSSE.test.ts +4 -4
  444. package/packages/{utils/src/fetch → fetch-sse/src}/__tests__/parseError.test.ts +7 -4
  445. package/packages/{utils/src/fetch → fetch-sse/src}/fetchSSE.ts +17 -17
  446. package/packages/{utils/src/fetch → fetch-sse/src}/headers.ts +3 -3
  447. package/packages/{utils/src/fetch → fetch-sse/src}/parseError.ts +3 -3
  448. package/packages/{utils/src/fetch → fetch-sse/src}/request.ts +5 -5
  449. package/packages/file-loaders/package.json +1 -0
  450. package/packages/file-loaders/src/loaders/docx/index.ts +1 -1
  451. package/packages/memory-extract/package.json +2 -2
  452. package/packages/model-bank/src/aiModels/google.ts +1 -1
  453. package/packages/model-bank/src/aiModels/mistral.ts +2 -1
  454. package/packages/model-bank/src/aiModels/wenxin.ts +1348 -291
  455. package/packages/model-runtime/src/core/contextBuilders/anthropic.test.ts +17 -11
  456. package/packages/model-runtime/src/core/contextBuilders/anthropic.ts +1 -1
  457. package/packages/model-runtime/src/core/contextBuilders/google.test.ts +1 -1
  458. package/packages/model-runtime/src/core/contextBuilders/google.ts +3 -6
  459. package/packages/model-runtime/src/core/contextBuilders/openai.test.ts +33 -7
  460. package/packages/model-runtime/src/core/contextBuilders/openai.ts +18 -4
  461. package/packages/model-runtime/src/core/openaiCompatibleFactory/createImage.test.ts +1 -1
  462. package/packages/model-runtime/src/core/openaiCompatibleFactory/createImage.ts +1 -1
  463. package/packages/model-runtime/src/core/openaiCompatibleFactory/index.test.ts +3 -6
  464. package/packages/model-runtime/src/core/streams/openai/responsesStream.test.ts +1 -1
  465. package/packages/model-runtime/src/helpers/mergeChatMethodOptions.ts +2 -1
  466. package/packages/model-runtime/src/providers/aihubmix/index.test.ts +1 -1
  467. package/packages/model-runtime/src/providers/anthropic/generateObject.test.ts +1 -1
  468. package/packages/model-runtime/src/providers/anthropic/index.test.ts +1 -1
  469. package/packages/model-runtime/src/providers/azureai/index.ts +34 -2
  470. package/packages/model-runtime/src/providers/baichuan/index.test.ts +1 -1
  471. package/packages/model-runtime/src/providers/bedrock/index.test.ts +1 -1
  472. package/packages/model-runtime/src/providers/bfl/createImage.test.ts +4 -4
  473. package/packages/model-runtime/src/providers/bfl/createImage.ts +1 -1
  474. package/packages/model-runtime/src/providers/cloudflare/index.test.ts +1 -1
  475. package/packages/model-runtime/src/providers/cohere/index.test.ts +1 -1
  476. package/packages/model-runtime/src/providers/google/createImage.test.ts +2 -2
  477. package/packages/model-runtime/src/providers/google/createImage.ts +1 -1
  478. package/packages/model-runtime/src/providers/google/generateObject.test.ts +1 -1
  479. package/packages/model-runtime/src/providers/google/index.test.ts +1 -4
  480. package/packages/model-runtime/src/providers/groq/index.test.ts +1 -1
  481. package/packages/model-runtime/src/providers/hunyuan/index.test.ts +1 -1
  482. package/packages/model-runtime/src/providers/minimax/createImage.test.ts +1 -1
  483. package/packages/model-runtime/src/providers/mistral/index.test.ts +1 -1
  484. package/packages/model-runtime/src/providers/moonshot/index.test.ts +1 -1
  485. package/packages/model-runtime/src/providers/novita/index.test.ts +1 -1
  486. package/packages/model-runtime/src/providers/ollama/index.test.ts +43 -32
  487. package/packages/model-runtime/src/providers/ollama/index.ts +31 -7
  488. package/packages/model-runtime/src/providers/openrouter/index.test.ts +1 -1
  489. package/packages/model-runtime/src/providers/perplexity/index.test.ts +1 -1
  490. package/packages/model-runtime/src/providers/ppio/index.test.ts +1 -1
  491. package/packages/model-runtime/src/providers/qwen/createImage.test.ts +1 -1
  492. package/packages/model-runtime/src/providers/search1api/index.test.ts +1 -1
  493. package/packages/model-runtime/src/providers/siliconcloud/createImage.ts +1 -1
  494. package/packages/model-runtime/src/providers/taichu/index.test.ts +1 -1
  495. package/packages/model-runtime/src/providers/wenxin/index.test.ts +1 -1
  496. package/packages/model-runtime/src/providers/wenxin/index.ts +22 -1
  497. package/packages/model-runtime/src/providers/zhipu/index.test.ts +1 -1
  498. package/packages/model-runtime/src/types/chat.ts +4 -0
  499. package/packages/model-runtime/src/utils/errorResponse.test.ts +1 -1
  500. package/packages/model-runtime/src/utils/googleErrorParser.test.ts +125 -0
  501. package/packages/model-runtime/src/utils/googleErrorParser.ts +103 -77
  502. package/packages/model-runtime/src/utils/modelParse.ts +6 -0
  503. package/packages/obervability-otel/package.json +4 -4
  504. package/packages/obervability-otel/src/api.ts +2 -0
  505. package/packages/obervability-otel/src/node.ts +17 -7
  506. package/packages/obervability-otel/src/trpc/convention.ts +16 -0
  507. package/packages/obervability-otel/src/trpc/index.test.ts +38 -0
  508. package/packages/obervability-otel/src/trpc/index.ts +62 -0
  509. package/packages/obervability-otel/src/trpc/metrics.ts +31 -0
  510. package/packages/ssrf-safe-fetch/index.browser.ts +14 -0
  511. package/packages/ssrf-safe-fetch/package.json +8 -1
  512. package/packages/types/src/aiChat.ts +2 -0
  513. package/packages/types/src/aiProvider.ts +1 -1
  514. package/packages/types/src/discover/assistants.ts +16 -0
  515. package/packages/types/src/discover/mcp.ts +6 -0
  516. package/packages/types/src/document/index.ts +38 -38
  517. package/packages/types/src/exportConfig.ts +15 -15
  518. package/packages/types/src/generation/index.ts +5 -5
  519. package/packages/types/src/importer.ts +2 -2
  520. package/packages/types/src/index.ts +1 -1
  521. package/packages/types/src/message/common/base.ts +14 -1
  522. package/packages/types/src/message/common/image.ts +8 -0
  523. package/packages/types/src/message/common/metadata.ts +44 -1
  524. package/packages/types/src/message/common/tools.ts +26 -0
  525. package/packages/types/src/message/db/item.ts +15 -1
  526. package/packages/types/src/message/db/params.ts +47 -1
  527. package/packages/types/src/message/ui/chat.ts +28 -3
  528. package/packages/types/src/message/ui/extra.ts +2 -2
  529. package/packages/types/src/message/ui/params.ts +66 -7
  530. package/packages/types/src/meta.ts +4 -0
  531. package/packages/types/src/openai/chat.ts +15 -15
  532. package/packages/types/src/plugins/mcp.ts +33 -30
  533. package/packages/types/src/plugins/protocol.ts +43 -43
  534. package/packages/types/src/search.ts +20 -4
  535. package/packages/types/src/serverConfig.ts +2 -6
  536. package/packages/types/src/session/agentSession.ts +2 -0
  537. package/packages/types/src/tool/builtin.ts +9 -0
  538. package/packages/types/src/tool/intervention.ts +32 -3
  539. package/packages/types/src/tool/plugin.ts +3 -3
  540. package/packages/types/src/topic/topic.ts +14 -0
  541. package/packages/types/src/usage/usageRecord.ts +54 -0
  542. package/packages/types/src/user/index.ts +2 -76
  543. package/packages/types/src/user/preference.ts +101 -0
  544. package/packages/types/src/user/settings/index.ts +22 -0
  545. package/packages/types/src/user/settings/tool.ts +2 -39
  546. package/packages/utils/src/apiKey.test.ts +139 -0
  547. package/packages/utils/src/client/clipboard.ts +2 -2
  548. package/packages/utils/src/client/exportFile.ts +10 -10
  549. package/packages/utils/src/client/parserPlaceholder.ts +18 -18
  550. package/packages/utils/src/client/topic.ts +10 -10
  551. package/packages/utils/src/client/xor-obfuscation.ts +11 -11
  552. package/packages/utils/src/clientIP.ts +6 -6
  553. package/packages/utils/src/compass.ts +11 -11
  554. package/packages/utils/src/compressImage.ts +3 -3
  555. package/packages/utils/src/format.ts +2 -2
  556. package/packages/utils/src/imageToBase64.ts +17 -10
  557. package/packages/utils/src/index.ts +1 -1
  558. package/packages/utils/src/merge.ts +3 -3
  559. package/packages/utils/src/object.ts +3 -3
  560. package/packages/utils/src/sanitizeUTF8.ts +4 -4
  561. package/packages/utils/src/server/__tests__/response.test.ts +79 -0
  562. package/packages/utils/src/server/auth.ts +6 -6
  563. package/packages/utils/src/server/geo.ts +9 -9
  564. package/packages/utils/src/server/index.ts +1 -0
  565. package/packages/utils/src/server/response.ts +110 -0
  566. package/packages/utils/src/server/validateRedirectHost.test.ts +352 -0
  567. package/packages/utils/src/server/xor.ts +7 -7
  568. package/packages/utils/src/tokenizer/index.ts +3 -11
  569. package/packages/utils/src/toolManifest.ts +4 -4
  570. package/packages/utils/src/trace.test.ts +359 -0
  571. package/packages/utils/src/uriParser.ts +4 -4
  572. package/packages/web-crawler/src/crawImpl/browserless.ts +1 -1
  573. package/packages/web-crawler/src/crawImpl/naive.ts +9 -9
  574. package/packages/web-crawler/src/crawler.ts +5 -5
  575. package/packages/web-crawler/src/urlRules.ts +13 -13
  576. package/packages/web-crawler/src/utils/appUrlRules.ts +5 -5
  577. package/packages/web-crawler/tsconfig.json +0 -1
  578. package/renovate.json +40 -1
  579. package/scripts/migrateServerDB/errorHint.js +1 -7
  580. package/src/app/(backend)/f/[id]/route.ts +55 -0
  581. package/src/app/(backend)/market/agent/[[...segments]]/route.ts +153 -0
  582. package/src/app/(backend)/market/oidc/[[...segments]]/route.ts +207 -0
  583. package/src/app/(backend)/webapi/revalidate/route.ts +1 -1
  584. package/src/app/(backend)/webapi/stt/openai/route.ts +0 -2
  585. package/src/app/(backend)/webapi/tts/edge/route.ts +8 -2
  586. package/src/app/(backend)/webapi/tts/microsoft/route.ts +8 -2
  587. package/src/app/(backend)/webapi/tts/openai/route.ts +15 -3
  588. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -8
  589. package/src/app/[variants]/(main)/(mobile)/me/(home)/__tests__/useCategory.test.tsx +9 -0
  590. package/src/app/[variants]/(main)/(mobile)/me/(home)/features/UserBanner.tsx +3 -6
  591. package/src/app/[variants]/(main)/(mobile)/me/(home)/layout.tsx +0 -2
  592. package/src/app/[variants]/(main)/(mobile)/me/settings/features/useCategory.tsx +1 -0
  593. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/PinList/index.tsx +4 -2
  594. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +1 -4
  595. package/src/app/[variants]/(main)/chat/ChatRouter.tsx +83 -0
  596. package/src/app/[variants]/(main)/chat/_layout/ChatLayout.tsx +22 -0
  597. package/src/app/[variants]/(main)/chat/_layout/Desktop/SessionPanel.tsx +12 -7
  598. package/src/app/[variants]/(main)/chat/_layout/Desktop/index.tsx +2 -4
  599. package/src/app/[variants]/(main)/chat/_layout/FeatureFlagsProvider.tsx +24 -0
  600. package/src/app/[variants]/(main)/chat/_layout/Mobile.tsx +4 -7
  601. package/src/app/[variants]/(main)/chat/_layout/type.ts +0 -1
  602. package/src/app/[variants]/(main)/chat/components/ConversationArea.tsx +29 -0
  603. package/src/app/[variants]/(main)/chat/components/MainChatPage.tsx +25 -0
  604. package/src/app/[variants]/(main)/chat/components/PortalPanel.tsx +28 -0
  605. package/src/app/[variants]/(main)/chat/components/SessionPanel.tsx +33 -0
  606. package/src/app/[variants]/(main)/chat/{settings/page.tsx → components/SettingsPage.tsx} +35 -3
  607. package/src/app/[variants]/(main)/chat/components/TopicSidebar.tsx +30 -0
  608. package/src/app/[variants]/(main)/chat/components/WorkspaceLayout.tsx +73 -0
  609. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Desktop/MessageFromUrl.tsx +3 -3
  610. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/V1Mobile/index.tsx +3 -3
  611. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/V1Mobile/useSend.ts +9 -7
  612. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/useSend.ts +21 -16
  613. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/ChatItem/Thread.tsx +1 -1
  614. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/ChatItem/index.tsx +9 -16
  615. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/Content.tsx +5 -3
  616. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/WelcomeChatItem/AgentWelcome/OpeningQuestions.tsx +2 -2
  617. package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/WelcomeChatItem/GroupWelcome/GroupUsageSuggest.tsx +2 -2
  618. package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/TopicItem/TopicContent.tsx +1 -1
  619. package/src/app/[variants]/(main)/chat/{layout.ts → layout.tsx} +0 -1
  620. package/src/app/[variants]/(main)/chat/page.tsx +12 -0
  621. package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/List/Item/Actions.tsx +4 -29
  622. package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/List/Item/index.tsx +7 -6
  623. package/src/app/[variants]/(main)/chat/settings/features/AgentInfoDescription/index.tsx +349 -0
  624. package/src/app/[variants]/(main)/chat/settings/features/HeaderContent.tsx +3 -63
  625. package/src/app/[variants]/(main)/chat/settings/features/PublishResultModal/index.tsx +64 -0
  626. package/src/app/[variants]/(main)/chat/settings/features/SmartAgentActionButton/MarketPublishButton.tsx +196 -0
  627. package/src/app/[variants]/(main)/chat/settings/features/SmartAgentActionButton/MarketPublishModal.tsx +358 -0
  628. package/src/app/[variants]/(main)/chat/settings/features/SmartAgentActionButton/index.tsx +75 -0
  629. package/src/app/[variants]/(main)/discover/(detail)/assistant/AssistantDetailPage.tsx +11 -2
  630. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/Client.tsx +12 -1
  631. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Nav.tsx +19 -12
  632. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/TagList.tsx +14 -5
  633. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/index.tsx +2 -0
  634. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Related/index.tsx +14 -5
  635. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/TagList.tsx +14 -5
  636. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/index.tsx +43 -29
  637. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Versions/index.tsx +137 -0
  638. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/index.tsx +2 -0
  639. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Header.tsx +9 -10
  640. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/ActionButton/AddAgent.tsx +105 -14
  641. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Related/index.tsx +20 -6
  642. package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/StatusPage/index.tsx +113 -0
  643. package/src/app/[variants]/(main)/discover/(detail)/features/Breadcrumb.tsx +4 -3
  644. package/src/app/[variants]/(main)/discover/(list)/_layout/Desktop/Nav.tsx +3 -1
  645. package/src/app/[variants]/(main)/discover/(list)/assistant/AssistantPage.tsx +4 -1
  646. package/src/app/[variants]/(main)/discover/(list)/assistant/Client.tsx +6 -2
  647. package/src/app/[variants]/(main)/discover/(list)/assistant/features/Category/index.tsx +7 -3
  648. package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/Item.tsx +13 -2
  649. package/src/app/[variants]/(main)/discover/(list)/assistant/features/MarketSourceSwitch.tsx +64 -0
  650. package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +1 -0
  651. package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +27 -8
  652. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +1 -0
  653. package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +1 -0
  654. package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +1 -0
  655. package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +9 -1
  656. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +1 -0
  657. package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +1 -1
  658. package/src/app/[variants]/(main)/image/page.tsx +0 -2
  659. package/src/app/[variants]/(main)/labs/components/LabCard.tsx +8 -6
  660. package/src/app/[variants]/(main)/labs/page.tsx +10 -22
  661. package/src/app/[variants]/(main)/profile/_layout/Desktop/index.tsx +18 -19
  662. package/src/app/[variants]/(main)/profile/_layout/Mobile/index.tsx +5 -9
  663. package/src/app/[variants]/(main)/profile/hooks/useCategory.tsx +10 -1
  664. package/src/app/[variants]/(main)/profile/usage/Client.tsx +114 -0
  665. package/src/app/[variants]/(main)/profile/usage/features/UsageCards/ActiveModels/ModelTable.tsx +175 -0
  666. package/src/app/[variants]/(main)/profile/usage/features/UsageCards/ActiveModels/index.tsx +126 -0
  667. package/src/app/[variants]/(main)/profile/usage/features/UsageCards/MonthSpend.tsx +53 -0
  668. package/src/app/[variants]/(main)/profile/usage/features/UsageCards/TodaySpend.tsx +67 -0
  669. package/src/app/[variants]/(main)/profile/usage/features/UsageCards/index.tsx +19 -0
  670. package/src/app/[variants]/(main)/profile/usage/features/UsageTable.tsx +145 -0
  671. package/src/app/[variants]/(main)/profile/usage/features/UsageTrends.tsx +107 -0
  672. package/src/app/[variants]/(main)/profile/usage/features/components/UsageBarChart.tsx +48 -0
  673. package/src/app/[variants]/(main)/{(mobile)/me/data → profile/usage}/page.tsx +6 -12
  674. package/src/app/[variants]/(main)/settings/_layout/Desktop/index.tsx +0 -2
  675. package/src/app/[variants]/(main)/settings/_layout/Mobile/index.tsx +0 -2
  676. package/src/app/[variants]/(main)/settings/_layout/type.ts +1 -1
  677. package/src/app/[variants]/(main)/settings/agent/index.tsx +11 -10
  678. package/src/app/[variants]/(main)/settings/common/index.tsx +1 -1
  679. package/src/app/[variants]/(main)/settings/page.tsx +13 -10
  680. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +1 -1
  681. package/src/app/[variants]/(main)/settings/provider/ProviderMenu/Item.tsx +35 -36
  682. package/src/app/[variants]/(main)/settings/provider/ProviderMenu/List.tsx +97 -7
  683. package/src/app/[variants]/(main)/settings/provider/ProviderMenu/SearchResult.tsx +5 -5
  684. package/src/app/[variants]/(main)/settings/provider/_layout/Desktop/Container.tsx +10 -4
  685. package/src/app/[variants]/(main)/settings/provider/detail/azure/index.tsx +6 -8
  686. package/src/app/[variants]/(main)/settings/provider/detail/azureai/index.tsx +1 -1
  687. package/src/app/[variants]/(main)/settings/provider/detail/bedrock/index.tsx +1 -1
  688. package/src/app/[variants]/(main)/settings/provider/detail/cloudflare/index.tsx +1 -1
  689. package/src/app/[variants]/(main)/settings/provider/detail/comfyui/index.tsx +1 -1
  690. package/src/app/[variants]/(main)/settings/provider/detail/github/index.tsx +1 -1
  691. package/src/app/[variants]/(main)/settings/provider/detail/vertexai/index.tsx +1 -1
  692. package/src/app/[variants]/(main)/settings/provider/features/ModelList/DisabledModels.tsx +144 -8
  693. package/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/index.tsx +2 -4
  694. package/src/app/[variants]/layout.tsx +1 -0
  695. package/src/app/[variants]/loading/index.tsx +1 -10
  696. package/src/app/[variants]/oauth/ResultLayout.tsx +47 -0
  697. package/src/app/[variants]/oauth/callback/error/page.tsx +20 -33
  698. package/src/app/[variants]/oauth/callback/layout.tsx +1 -0
  699. package/src/app/[variants]/oauth/callback/success/page.tsx +8 -22
  700. package/src/app/[variants]/oauth/consent/[uid]/Consent/BuiltinConsent.tsx +47 -0
  701. package/src/app/[variants]/oauth/consent/[uid]/{Consent.tsx → Consent/index.tsx} +12 -3
  702. package/src/app/[variants]/oauth/consent/[uid]/Login.tsx +19 -4
  703. package/src/app/market-auth-callback/layout.tsx +15 -0
  704. package/src/app/market-auth-callback/page.tsx +196 -0
  705. package/src/app/sitemap.tsx +7 -1
  706. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +8 -13
  707. package/src/components/Link.tsx +12 -0
  708. package/src/components/Skeleton/SkeletonSwitch.tsx +13 -0
  709. package/src/components/Skeleton/index.ts +2 -0
  710. package/src/components/Thinking/index.tsx +4 -3
  711. package/src/config/db.ts +0 -5
  712. package/src/config/featureFlags/schema.test.ts +0 -2
  713. package/src/config/featureFlags/schema.ts +0 -6
  714. package/src/config/modelProviders/ai21.ts +1 -16
  715. package/src/config/modelProviders/ai302.ts +1 -128
  716. package/src/config/modelProviders/ai360.ts +1 -32
  717. package/src/config/modelProviders/anthropic.ts +1 -71
  718. package/src/config/modelProviders/azure.ts +1 -51
  719. package/src/config/modelProviders/baichuan.ts +1 -57
  720. package/src/config/modelProviders/bedrock.ts +1 -276
  721. package/src/config/modelProviders/cloudflare.ts +1 -64
  722. package/src/config/modelProviders/deepseek.ts +1 -19
  723. package/src/config/modelProviders/fireworksai.ts +1 -174
  724. package/src/config/modelProviders/giteeai.ts +1 -135
  725. package/src/config/modelProviders/github.ts +1 -254
  726. package/src/config/modelProviders/google.ts +1 -130
  727. package/src/config/modelProviders/groq.ts +1 -119
  728. package/src/config/modelProviders/higress.ts +1 -1713
  729. package/src/config/modelProviders/huggingface.ts +1 -54
  730. package/src/config/modelProviders/hunyuan.ts +1 -83
  731. package/src/config/modelProviders/infiniai.ts +1 -74
  732. package/src/config/modelProviders/internlm.ts +1 -20
  733. package/src/config/modelProviders/mistral.ts +1 -95
  734. package/src/config/modelProviders/modelscope.ts +1 -27
  735. package/src/config/modelProviders/moonshot.ts +1 -29
  736. package/src/config/modelProviders/novita.ts +1 -105
  737. package/src/config/modelProviders/ollama.ts +1 -325
  738. package/src/config/modelProviders/openai.ts +1 -242
  739. package/src/config/modelProviders/openrouter.ts +1 -240
  740. package/src/config/modelProviders/perplexity.ts +1 -45
  741. package/src/config/modelProviders/ppio.ts +1 -152
  742. package/src/config/modelProviders/qiniu.ts +1 -18
  743. package/src/config/modelProviders/qwen.ts +1 -245
  744. package/src/config/modelProviders/search1api.ts +1 -34
  745. package/src/config/modelProviders/sensenova.ts +1 -69
  746. package/src/config/modelProviders/siliconcloud.ts +1 -417
  747. package/src/config/modelProviders/spark.ts +1 -59
  748. package/src/config/modelProviders/stepfun.ts +1 -98
  749. package/src/config/modelProviders/taichu.ts +1 -18
  750. package/src/config/modelProviders/togetherai.ts +1 -274
  751. package/src/config/modelProviders/upstage.ts +1 -28
  752. package/src/config/modelProviders/wenxin.ts +3 -143
  753. package/src/config/modelProviders/xai.ts +1 -38
  754. package/src/config/modelProviders/zeroone.ts +1 -81
  755. package/src/config/modelProviders/zhipu.ts +1 -108
  756. package/src/envs/__tests__/app.test.ts +47 -13
  757. package/src/envs/app.ts +13 -9
  758. package/src/envs/auth.ts +0 -179
  759. package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
  760. package/src/features/AgentSetting/AgentPrompt/TokenTag.tsx +3 -2
  761. package/src/features/AgentSetting/AgentTTS/SelectWithTTSPreview.tsx +1 -1
  762. package/src/features/AgentSetting/store/action.ts +1 -1
  763. package/src/features/ChatInput/ActionBar/STT/browser.tsx +6 -6
  764. package/src/features/ChatInput/ActionBar/STT/openai.tsx +6 -6
  765. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +1 -3
  766. package/src/features/ChatInput/ActionBar/index.tsx +2 -2
  767. package/src/features/ChatInput/InputEditor/index.tsx +2 -2
  768. package/src/features/ChatItem/components/Title.tsx +20 -16
  769. package/src/features/Conversation/Error/AccessCodeForm.tsx +1 -1
  770. package/src/features/Conversation/Error/ChatInvalidApiKey.tsx +1 -1
  771. package/src/features/Conversation/Error/ClerkLogin/index.tsx +1 -1
  772. package/src/features/Conversation/Error/ErrorJsonViewer.tsx +4 -3
  773. package/src/features/Conversation/Error/OAuthForm.tsx +1 -1
  774. package/src/features/Conversation/Error/OllamaBizError/index.tsx +7 -2
  775. package/src/features/Conversation/Error/index.tsx +15 -10
  776. package/src/features/Conversation/MarkdownElements/LobeArtifact/Render/index.tsx +2 -2
  777. package/src/features/Conversation/MarkdownElements/remarkPlugins/__snapshots__/createRemarkSelfClosingTagPlugin.test.ts.snap +133 -0
  778. package/src/features/Conversation/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.test.ts +48 -0
  779. package/src/features/Conversation/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.ts +2 -1
  780. package/src/features/Conversation/Messages/Assistant/Actions/index.tsx +8 -7
  781. package/src/features/Conversation/Messages/Assistant/Extra/index.test.tsx +4 -9
  782. package/src/features/Conversation/Messages/Assistant/Extra/index.tsx +10 -11
  783. package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +12 -12
  784. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/BuiltinPluginTitle.tsx +2 -2
  785. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/PluginResult.tsx +2 -2
  786. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/PluginState.tsx +2 -2
  787. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/ToolTitle.tsx +4 -2
  788. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +5 -5
  789. package/src/features/Conversation/Messages/Assistant/Tool/Render/PluginSettings.tsx +4 -1
  790. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +3 -4
  791. package/src/features/Conversation/Messages/Assistant/Tool/index.tsx +2 -2
  792. package/src/features/Conversation/Messages/Assistant/index.tsx +89 -77
  793. package/src/features/Conversation/Messages/Default.tsx +3 -2
  794. package/src/features/Conversation/Messages/Group/Actions/WithContentId.tsx +178 -0
  795. package/src/features/Conversation/Messages/Group/Actions/WithoutContentId.tsx +93 -0
  796. package/src/features/Conversation/Messages/Group/Actions/index.tsx +21 -0
  797. package/src/features/Conversation/Messages/Group/ContentBlock.tsx +89 -0
  798. package/src/features/Conversation/Messages/Group/EditState.tsx +51 -0
  799. package/src/features/Conversation/Messages/Group/Error/index.tsx +53 -0
  800. package/src/features/Conversation/Messages/Group/GroupChildren.tsx +56 -0
  801. package/src/features/Conversation/Messages/Group/GroupContext.tsx +15 -0
  802. package/src/features/Conversation/Messages/Group/GroupItem.tsx +43 -0
  803. package/src/features/Conversation/Messages/Group/MessageContent.tsx +45 -0
  804. package/src/features/Conversation/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +47 -0
  805. package/src/features/Conversation/Messages/Group/Tool/Inspector/Debug.tsx +70 -0
  806. package/src/features/Conversation/Messages/Group/Tool/Inspector/PluginResult.tsx +34 -0
  807. package/src/features/Conversation/Messages/Group/Tool/Inspector/PluginState.tsx +18 -0
  808. package/src/features/Conversation/Messages/Group/Tool/Inspector/Settings.tsx +40 -0
  809. package/src/features/Conversation/Messages/Group/Tool/Inspector/ToolTitle.tsx +90 -0
  810. package/src/features/Conversation/Messages/Group/Tool/Inspector/index.tsx +187 -0
  811. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/ObjectEntity.tsx +81 -0
  812. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/ValueCell.tsx +43 -0
  813. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/index.tsx +136 -0
  814. package/src/features/Conversation/Messages/Group/Tool/Render/CustomRender.tsx +88 -0
  815. package/src/features/Conversation/Messages/Group/Tool/Render/ErrorResponse.tsx +35 -0
  816. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/ApprovalActions.tsx +143 -0
  817. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/Fallback.tsx +98 -0
  818. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/KeyValueEditor.tsx +213 -0
  819. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/ModeSelector.tsx +133 -0
  820. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/index.tsx +103 -0
  821. package/src/features/Conversation/Messages/Group/Tool/Render/LoadingPlaceholder/index.tsx +29 -0
  822. package/src/features/Conversation/Messages/Group/Tool/Render/PluginSettings.tsx +66 -0
  823. package/src/features/Conversation/Messages/Group/Tool/Render/RejectedResponse.tsx +45 -0
  824. package/src/features/Conversation/Messages/Group/Tool/Render/index.tsx +134 -0
  825. package/src/features/Conversation/Messages/Group/Tool/index.tsx +97 -0
  826. package/src/features/Conversation/Messages/Group/Tools.tsx +48 -0
  827. package/src/features/Conversation/Messages/Group/index.tsx +145 -0
  828. package/src/features/Conversation/Messages/Supervisor/index.tsx +14 -5
  829. package/src/features/Conversation/Messages/User/{Actions.tsx → Actions/ActionsBar.tsx} +26 -25
  830. package/src/features/Conversation/Messages/User/Actions/MessageBranch.tsx +107 -0
  831. package/src/features/Conversation/Messages/User/Actions/index.tsx +42 -0
  832. package/src/features/Conversation/Messages/User/Extra.tsx +2 -2
  833. package/src/features/Conversation/Messages/User/index.tsx +59 -54
  834. package/src/features/Conversation/Messages/index.tsx +22 -20
  835. package/src/features/Conversation/components/AutoScroll.tsx +4 -4
  836. package/src/features/Conversation/components/Extras/TTS/InitPlayer.tsx +1 -1
  837. package/src/features/Conversation/components/Extras/Usage/UsageDetail/AnimatedNumber.tsx +55 -0
  838. package/src/features/Conversation/components/Extras/Usage/UsageDetail/index.tsx +50 -14
  839. package/src/features/Conversation/components/Extras/Usage/UsageDetail/tokens.ts +2 -5
  840. package/src/features/Conversation/components/Extras/Usage/index.tsx +13 -6
  841. package/src/features/Conversation/components/ShareMessageModal/ShareImage/Preview.tsx +2 -2
  842. package/src/features/Conversation/components/VirtualizedList/index.tsx +31 -21
  843. package/src/features/Conversation/hooks/useChatListActionsBar.tsx +26 -14
  844. package/src/features/DataImporter/index.tsx +15 -60
  845. package/src/features/DevPanel/PostgresViewer/usePgTable.ts +3 -2
  846. package/src/features/LocalFile/LocalFile.tsx +55 -5
  847. package/src/features/MCP/utils.test.ts +91 -0
  848. package/src/features/MCP/utils.ts +20 -2
  849. package/src/features/PluginStore/Content.tsx +2 -3
  850. package/src/features/PluginStore/McpList/index.tsx +6 -2
  851. package/src/features/PluginTag/PluginStatus.tsx +1 -1
  852. package/src/features/PluginTag/index.tsx +1 -3
  853. package/src/features/PluginsUI/Render/BuiltinType/index.test.tsx +37 -28
  854. package/src/features/PluginsUI/Render/BuiltinType/index.tsx +1 -1
  855. package/src/features/PluginsUI/Render/MCPType/index.tsx +72 -0
  856. package/src/features/PluginsUI/Render/StandaloneType/Iframe.tsx +2 -2
  857. package/src/features/PluginsUI/Render/index.tsx +17 -0
  858. package/src/features/Portal/Artifacts/Body/index.tsx +2 -2
  859. package/src/features/Portal/GroupThread/Body/index.tsx +1 -1
  860. package/src/features/Portal/Thread/Chat/ChatInput/useSend.ts +3 -3
  861. package/src/helpers/isCanUseFC.ts +0 -8
  862. package/src/hooks/useAgentOwnershipCheck.ts +143 -0
  863. package/src/hooks/useEnabledChatModels.ts +0 -8
  864. package/src/hooks/useHotkeys/chatScope.ts +16 -8
  865. package/src/hooks/useInterceptingRoutes.test.ts +21 -3
  866. package/src/hooks/useModelContextWindowTokens.ts +0 -8
  867. package/src/hooks/useModelHasContextWindowToken.ts +1 -10
  868. package/src/hooks/useModelSupportFiles.ts +1 -11
  869. package/src/hooks/useModelSupportReasoning.ts +1 -11
  870. package/src/hooks/useModelSupportToolUse.ts +1 -11
  871. package/src/hooks/useModelSupportVision.ts +1 -11
  872. package/src/instrumentation.node.ts +3 -2
  873. package/src/layout/AuthProvider/Clerk/index.tsx +2 -16
  874. package/src/layout/AuthProvider/MarketAuth/MarketAuthProvider.tsx +364 -0
  875. package/src/layout/AuthProvider/MarketAuth/errors.ts +75 -0
  876. package/src/layout/AuthProvider/MarketAuth/index.ts +2 -0
  877. package/src/layout/AuthProvider/MarketAuth/oidc.ts +382 -0
  878. package/src/layout/AuthProvider/MarketAuth/types.ts +64 -0
  879. package/src/layout/AuthProvider/index.tsx +17 -4
  880. package/src/libs/mcp/client.ts +3 -2
  881. package/src/libs/mcp/types.ts +71 -0
  882. package/src/libs/next-auth/auth.config.ts +3 -6
  883. package/src/libs/next-auth/sso-providers/auth0.ts +0 -7
  884. package/src/libs/next-auth/sso-providers/authelia.ts +3 -5
  885. package/src/libs/next-auth/sso-providers/authentik.ts +0 -7
  886. package/src/libs/next-auth/sso-providers/cloudflare-zero-trust.ts +3 -6
  887. package/src/libs/next-auth/sso-providers/cognito.ts +1 -5
  888. package/src/libs/next-auth/sso-providers/generic-oidc.ts +3 -5
  889. package/src/libs/next-auth/sso-providers/github.ts +0 -6
  890. package/src/libs/next-auth/sso-providers/google.ts +0 -2
  891. package/src/libs/next-auth/sso-providers/keycloak.ts +0 -3
  892. package/src/libs/next-auth/sso-providers/logto.ts +3 -5
  893. package/src/libs/next-auth/sso-providers/okta.ts +0 -4
  894. package/src/libs/next-auth/sso-providers/zitadel.ts +0 -7
  895. package/src/libs/trpc/client/index.ts +0 -1
  896. package/src/libs/trpc/client/lambda.ts +12 -8
  897. package/src/libs/trpc/lambda/context.ts +4 -1
  898. package/src/libs/trpc/lambda/index.ts +5 -2
  899. package/src/libs/trpc/middleware/openTelemetry.ts +141 -0
  900. package/src/locales/default/auth.ts +44 -0
  901. package/src/locales/default/chat.ts +23 -0
  902. package/src/locales/default/common.ts +1 -0
  903. package/src/locales/default/components.ts +6 -0
  904. package/src/locales/default/discover.ts +46 -0
  905. package/src/locales/default/index.ts +2 -0
  906. package/src/locales/default/labs.ts +4 -0
  907. package/src/locales/default/marketAuth.ts +42 -0
  908. package/src/locales/default/modelProvider.ts +15 -1
  909. package/src/locales/default/oauth.ts +1 -0
  910. package/src/locales/default/plugin.ts +1 -0
  911. package/src/locales/default/setting.ts +94 -1
  912. package/src/locales/default/topic.ts +1 -0
  913. package/src/server/globalConfig/genServerAiProviderConfig.test.ts +5 -5
  914. package/src/server/globalConfig/genServerAiProviderConfig.ts +1 -1
  915. package/src/server/globalConfig/index.ts +0 -23
  916. package/src/server/modules/AssistantStore/index.ts +1 -1
  917. package/src/server/modules/ContentChunk/index.test.ts +372 -0
  918. package/src/server/modules/ModelRuntime/trace.ts +11 -4
  919. package/src/server/modules/S3/index.test.ts +379 -0
  920. package/src/server/routers/async/__tests__/caller.test.ts +333 -0
  921. package/src/server/routers/async/caller.ts +2 -1
  922. package/src/server/routers/desktop/mcp.ts +22 -11
  923. package/src/server/routers/lambda/__tests__/aiChat.test.ts +1 -1
  924. package/src/server/routers/lambda/__tests__/integration/message.integration.test.ts +771 -57
  925. package/src/server/routers/lambda/aiChat.ts +3 -2
  926. package/src/server/routers/lambda/config/__snapshots__/index.test.ts.snap +175 -12
  927. package/src/server/routers/lambda/config/index.test.ts +38 -30
  928. package/src/server/routers/lambda/index.ts +2 -0
  929. package/src/server/routers/lambda/market/index.ts +38 -14
  930. package/src/server/routers/lambda/message.ts +59 -56
  931. package/src/server/routers/lambda/topic.ts +7 -1
  932. package/src/server/routers/lambda/usage.ts +36 -0
  933. package/src/server/routers/lambda/user.ts +32 -31
  934. package/src/server/routers/mobile/index.ts +14 -2
  935. package/src/server/routers/tools/mcp.ts +24 -7
  936. package/src/server/routers/tools/search.test.ts +1 -7
  937. package/src/server/routers/tools/search.ts +1 -4
  938. package/src/server/services/discover/index.test.ts +153 -11
  939. package/src/server/services/discover/index.ts +339 -40
  940. package/src/server/services/file/impls/local.ts +4 -1
  941. package/src/server/services/file/index.ts +96 -1
  942. package/src/server/services/mcp/contentProcessor.ts +101 -0
  943. package/src/server/services/mcp/deps/MCPSystemDepsCheckService.test.ts +541 -0
  944. package/src/server/services/mcp/deps/checkers/ManualInstallationChecker.test.ts +162 -0
  945. package/src/server/services/mcp/deps/checkers/NpmInstallationChecker.test.ts +374 -0
  946. package/src/server/services/mcp/deps/checkers/PythonInstallationChecker.test.ts +368 -0
  947. package/src/server/services/mcp/index.test.ts +80 -25
  948. package/src/server/services/mcp/index.ts +37 -23
  949. package/src/server/services/message/__tests__/index.test.ts +338 -0
  950. package/src/server/services/message/index.ts +187 -0
  951. package/src/server/services/oidc/index.test.ts +232 -0
  952. package/src/server/services/oidc/index.ts +24 -0
  953. package/src/server/services/usage/index.test.ts +310 -0
  954. package/src/server/services/usage/index.ts +164 -0
  955. package/src/server/sitemap.ts +49 -35
  956. package/src/server/utils/createSpeechResponse.ts +55 -0
  957. package/src/services/__tests__/tool.test.ts +0 -3
  958. package/src/services/_url.ts +15 -1
  959. package/src/services/aiModel/index.test.ts +3 -6
  960. package/src/services/aiModel/index.ts +55 -7
  961. package/src/services/aiProvider/index.test.ts +2 -5
  962. package/src/services/aiProvider/index.ts +47 -7
  963. package/src/services/chat/chat.test.ts +18 -45
  964. package/src/services/chat/clientModelRuntime.test.ts +1 -1
  965. package/src/services/chat/contextEngineering.test.ts +4 -30
  966. package/src/services/chat/contextEngineering.ts +7 -17
  967. package/src/services/chat/helper.ts +7 -31
  968. package/src/services/chat/index.ts +11 -16
  969. package/src/services/chat/types.ts +1 -2
  970. package/src/services/chatGroup/index.ts +64 -9
  971. package/src/services/config.ts +1 -65
  972. package/src/services/discover.ts +28 -17
  973. package/src/services/electron/desktopNotification.ts +6 -6
  974. package/src/services/electron/file.ts +6 -6
  975. package/src/services/electron/localFileService.ts +4 -0
  976. package/src/services/electron/remoteServer.ts +8 -1
  977. package/src/services/export/index.ts +9 -4
  978. package/src/services/file/ClientS3/index.ts +8 -8
  979. package/src/services/file/index.ts +59 -10
  980. package/src/services/import/index.ts +132 -7
  981. package/src/services/marketApi.ts +124 -0
  982. package/src/services/mcp.test.ts +783 -0
  983. package/src/services/mcp.ts +39 -4
  984. package/src/services/message/__tests__/metadata-race-condition.test.ts +157 -0
  985. package/src/services/message/index.ts +226 -10
  986. package/src/services/message/{__tests__/server.test.ts → server.test.ts} +3 -3
  987. package/src/services/models.ts +4 -12
  988. package/src/services/plugin/index.test.ts +8 -0
  989. package/src/services/plugin/index.ts +51 -10
  990. package/src/services/session/index.test.ts +8 -0
  991. package/src/services/session/index.ts +129 -10
  992. package/src/services/tableViewer/client.ts +12 -15
  993. package/src/services/thread/index.test.ts +8 -0
  994. package/src/services/thread/index.ts +37 -7
  995. package/src/services/topic/index.test.ts +8 -0
  996. package/src/services/topic/index.ts +74 -10
  997. package/src/services/upload.ts +11 -11
  998. package/src/services/usage.ts +13 -0
  999. package/src/services/user/index.test.ts +8 -0
  1000. package/src/services/user/index.ts +50 -11
  1001. package/src/services/utils/abortableRequest.test.ts +161 -0
  1002. package/src/services/utils/abortableRequest.ts +67 -0
  1003. package/src/store/aiInfra/slices/aiModel/action.test.ts +17 -9
  1004. package/src/store/chat/agents/GeneralChatAgent.ts +279 -0
  1005. package/src/store/chat/agents/__tests__/GeneralChatAgent.test.ts +778 -0
  1006. package/src/store/chat/agents/createAgentExecutors.ts +513 -0
  1007. package/src/store/chat/agents/createToolEngine.ts +22 -0
  1008. package/src/store/chat/helpers.ts +10 -2
  1009. package/src/store/chat/selectors.ts +1 -1
  1010. package/src/store/chat/slices/aiChat/actions/__tests__/conversationControl.test.ts +332 -0
  1011. package/src/store/chat/slices/aiChat/actions/__tests__/conversationLifecycle.test.ts +257 -0
  1012. package/src/store/chat/slices/aiChat/actions/__tests__/helpers.ts +19 -6
  1013. package/src/store/chat/slices/aiChat/actions/__tests__/rag.test.ts +6 -6
  1014. package/src/store/chat/slices/aiChat/actions/__tests__/streamingExecutor.test.ts +391 -0
  1015. package/src/store/chat/slices/aiChat/actions/__tests__/streamingStates.test.ts +179 -0
  1016. package/src/store/chat/slices/aiChat/actions/conversationControl.ts +231 -0
  1017. package/src/store/chat/slices/aiChat/actions/conversationLifecycle.ts +374 -0
  1018. package/src/store/chat/slices/aiChat/actions/generateAIGroupChat.ts +19 -14
  1019. package/src/store/chat/slices/aiChat/actions/index.ts +12 -6
  1020. package/src/store/chat/slices/aiChat/actions/rag.ts +9 -6
  1021. package/src/store/chat/slices/aiChat/actions/streamingExecutor.ts +694 -0
  1022. package/src/store/chat/slices/aiChat/actions/streamingStates.ts +84 -0
  1023. package/src/store/chat/slices/builtinTool/actions/__tests__/localSystem.test.ts +7 -7
  1024. package/src/store/chat/slices/builtinTool/actions/__tests__/search.test.ts +17 -17
  1025. package/src/store/chat/slices/builtinTool/actions/index.ts +1 -4
  1026. package/src/store/chat/slices/builtinTool/actions/interpreter.ts +10 -10
  1027. package/src/store/chat/slices/builtinTool/actions/localSystem.ts +4 -4
  1028. package/src/store/chat/slices/builtinTool/actions/search.ts +16 -16
  1029. package/src/store/chat/slices/message/action.test.ts +199 -47
  1030. package/src/store/chat/slices/message/actions/index.ts +39 -0
  1031. package/src/store/chat/slices/message/actions/internals.ts +77 -0
  1032. package/src/store/chat/slices/message/actions/optimisticUpdate.ts +260 -0
  1033. package/src/store/chat/slices/message/actions/publicApi.ts +242 -0
  1034. package/src/store/chat/slices/message/actions/query.ts +120 -0
  1035. package/src/store/chat/slices/message/actions/runtimeState.ts +108 -0
  1036. package/src/store/chat/slices/message/initialState.ts +18 -0
  1037. package/src/store/chat/slices/message/reducer.test.ts +48 -12
  1038. package/src/store/chat/slices/message/reducer.ts +25 -4
  1039. package/src/store/chat/slices/message/selectors/chat.test.ts +92 -0
  1040. package/src/store/chat/slices/message/selectors/chat.ts +106 -0
  1041. package/src/store/chat/slices/message/selectors/dbMessage.test.ts +51 -0
  1042. package/src/store/chat/slices/message/selectors/dbMessage.ts +140 -0
  1043. package/src/store/chat/slices/message/selectors/displayMessage.test.ts +818 -0
  1044. package/src/store/chat/slices/message/selectors/displayMessage.ts +352 -0
  1045. package/src/store/chat/slices/message/selectors/index.ts +2 -0
  1046. package/src/store/chat/slices/message/selectors/messageState.test.ts +36 -0
  1047. package/src/store/chat/slices/message/selectors/messageState.ts +85 -0
  1048. package/src/store/chat/slices/plugin/action.test.ts +169 -210
  1049. package/src/store/chat/slices/plugin/actions/index.ts +39 -0
  1050. package/src/store/chat/slices/plugin/actions/internals.ts +83 -0
  1051. package/src/store/chat/slices/plugin/actions/optimisticUpdate.ts +213 -0
  1052. package/src/store/chat/slices/plugin/actions/pluginTypes.ts +213 -0
  1053. package/src/store/chat/slices/plugin/actions/publicApi.ts +115 -0
  1054. package/src/store/chat/slices/plugin/actions/workflow.ts +121 -0
  1055. package/src/store/chat/slices/portal/selectors.test.ts +7 -7
  1056. package/src/store/chat/slices/portal/selectors.ts +2 -2
  1057. package/src/store/chat/slices/thread/action.test.ts +38 -32
  1058. package/src/store/chat/slices/thread/action.ts +15 -10
  1059. package/src/store/chat/slices/thread/selectors/index.ts +8 -6
  1060. package/src/store/chat/slices/topic/action.test.ts +1 -1
  1061. package/src/store/chat/slices/topic/action.ts +1 -2
  1062. package/src/store/chat/slices/topic/reducer.ts +12 -5
  1063. package/src/store/chat/store.ts +2 -2
  1064. package/src/store/discover/slices/assistant/action.ts +20 -7
  1065. package/src/store/file/slices/chat/action.ts +1 -4
  1066. package/src/store/file/slices/fileManager/action.ts +2 -3
  1067. package/src/store/global/initialState.ts +10 -0
  1068. package/src/store/global/selectors/systemStatus.ts +9 -0
  1069. package/src/store/global/store.ts +1 -7
  1070. package/src/store/session/slices/sessionGroup/action.test.ts +5 -5
  1071. package/src/store/tool/selectors/tool.test.ts +1 -1
  1072. package/src/store/tool/selectors/tool.ts +6 -8
  1073. package/src/store/tool/slices/builtin/action.test.ts +83 -35
  1074. package/src/store/tool/slices/builtin/action.ts +0 -9
  1075. package/src/store/tool/slices/builtin/selectors.test.ts +4 -30
  1076. package/src/store/tool/slices/builtin/selectors.ts +15 -21
  1077. package/src/store/tool/slices/mcpStore/action.test.ts +95 -3
  1078. package/src/store/tool/slices/mcpStore/action.ts +177 -53
  1079. package/src/store/tool/slices/oldStore/initialState.ts +1 -2
  1080. package/src/store/user/initialState.ts +1 -7
  1081. package/src/store/user/selectors.ts +2 -5
  1082. package/src/store/user/slices/common/action.test.ts +1 -4
  1083. package/src/store/user/slices/common/action.ts +5 -4
  1084. package/src/store/user/slices/preference/action.ts +8 -1
  1085. package/src/store/user/slices/preference/selectors/index.ts +2 -0
  1086. package/src/store/user/slices/preference/selectors/labPrefer.ts +10 -0
  1087. package/src/store/user/slices/preference/{selectors.ts → selectors/preference.ts} +0 -2
  1088. package/src/store/user/slices/settings/action.ts +27 -0
  1089. package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +0 -7
  1090. package/src/store/user/slices/settings/selectors/index.ts +2 -0
  1091. package/src/store/user/slices/settings/selectors/keyVaults.ts +21 -0
  1092. package/src/store/user/slices/settings/selectors/settings.test.ts +0 -37
  1093. package/src/store/user/slices/settings/selectors/settings.ts +0 -5
  1094. package/src/store/user/slices/settings/selectors/toolIntervention.ts +17 -0
  1095. package/src/store/user/store.ts +0 -3
  1096. package/src/tools/index.ts +0 -6
  1097. package/src/tools/interventions.ts +8 -0
  1098. package/src/tools/local-system/Intervention/RunCommand/index.tsx +56 -0
  1099. package/src/tools/local-system/Intervention/index.tsx +17 -0
  1100. package/src/tools/local-system/Render/RunCommand/index.tsx +100 -21
  1101. package/src/tools/local-system/Render/index.tsx +2 -0
  1102. package/src/tools/local-system/index.ts +180 -0
  1103. package/src/tools/local-system/systemRole.ts +61 -7
  1104. package/src/tools/renders.ts +0 -3
  1105. package/src/tools/web-browsing/Portal/Search/Footer.tsx +2 -2
  1106. package/src/tools/web-browsing/Render/Search/ConfigForm/Form.tsx +1 -1
  1107. package/{packages/utils/src → src/utils}/electron/desktopRemoteRPCFetch.ts +1 -1
  1108. package/{packages/utils/src → src/utils/server}/parseModels.ts +4 -5
  1109. package/src/utils/server/routeVariants.test.ts +340 -0
  1110. package/src/utils/server/routeVariants.ts +10 -10
  1111. package/tsconfig.json +9 -3
  1112. package/vitest.config.mts +2 -0
  1113. package/packages/const/src/guide.ts +0 -89
  1114. package/packages/context-engine/ARCHITECTURE.md +0 -425
  1115. package/packages/context-engine/src/providers/InboxGuide.ts +0 -102
  1116. package/packages/context-engine/src/providers/__tests__/InboxGuideProvider.test.ts +0 -121
  1117. package/packages/database/src/models/__tests__/message.test.ts +0 -2552
  1118. package/packages/database/src/utils/__tests__/groupMessages.test.ts +0 -989
  1119. package/packages/database/src/utils/groupMessages.ts +0 -359
  1120. package/packages/model-runtime/src/utils/imageToBase64.test.ts +0 -91
  1121. package/packages/model-runtime/src/utils/imageToBase64.ts +0 -62
  1122. package/packages/utils/src/_deprecated/__snapshots__/parseModels.test.ts.snap +0 -104
  1123. package/packages/utils/src/_deprecated/parseModels.test.ts +0 -287
  1124. package/packages/utils/src/_deprecated/parseModels.ts +0 -165
  1125. package/packages/utils/src/tokenizer/client.ts +0 -35
  1126. package/packages/utils/src/tokenizer/estimated.ts +0 -4
  1127. package/packages/utils/src/tokenizer/server.ts +0 -11
  1128. package/packages/utils/src/tokenizer/tokenizer.worker.ts +0 -12
  1129. package/src/app/(backend)/trpc/edge/[trpc]/route.ts +0 -26
  1130. package/src/app/(backend)/webapi/chat/azureai/route.test.ts +0 -25
  1131. package/src/app/(backend)/webapi/chat/azureai/route.ts +0 -6
  1132. package/src/app/(backend)/webapi/tokenizer/index.test.ts +0 -32
  1133. package/src/app/(backend)/webapi/tokenizer/route.ts +0 -8
  1134. package/src/app/[variants]/(main)/(mobile)/me/data/features/Category.tsx +0 -48
  1135. package/src/app/[variants]/(main)/(mobile)/me/data/features/Header.tsx +0 -33
  1136. package/src/app/[variants]/(main)/(mobile)/me/data/layout.tsx +0 -13
  1137. package/src/app/[variants]/(main)/(mobile)/me/data/loading.tsx +0 -5
  1138. package/src/app/[variants]/(main)/chat/(workspace)/layout.ts +0 -11
  1139. package/src/app/[variants]/(main)/chat/(workspace)/page.tsx +0 -53
  1140. package/src/app/[variants]/(main)/chat/@session/default.tsx +0 -31
  1141. package/src/app/[variants]/(main)/chat/features/Migration/DBReader.ts +0 -290
  1142. package/src/app/[variants]/(main)/chat/features/Migration/ExportConfigButton.tsx +0 -35
  1143. package/src/app/[variants]/(main)/chat/features/Migration/Failed.tsx +0 -120
  1144. package/src/app/[variants]/(main)/chat/features/Migration/Modal.tsx +0 -81
  1145. package/src/app/[variants]/(main)/chat/features/Migration/Start.tsx +0 -108
  1146. package/src/app/[variants]/(main)/chat/features/Migration/UpgradeButton.tsx +0 -71
  1147. package/src/app/[variants]/(main)/chat/features/Migration/const.ts +0 -15
  1148. package/src/app/[variants]/(main)/chat/features/Migration/index.tsx +0 -50
  1149. package/src/app/[variants]/(main)/chat/settings/features/SubmitAgentButton/SubmitAgentModal.tsx +0 -98
  1150. package/src/app/[variants]/(main)/chat/settings/features/SubmitAgentButton/index.tsx +0 -35
  1151. package/src/app/[variants]/(main)/chat/settings/features/SubmitAgentButton/style.ts +0 -47
  1152. package/src/app/[variants]/(main)/chat/settings/layout.tsx +0 -21
  1153. package/src/app/[variants]/loading/Client/Content.tsx +0 -48
  1154. package/src/app/[variants]/loading/Client/Error.tsx +0 -27
  1155. package/src/app/[variants]/loading/Client/Redirect.tsx +0 -47
  1156. package/src/app/[variants]/loading/Client/index.tsx +0 -22
  1157. package/src/components/InnerLink.tsx +0 -20
  1158. package/src/database/_deprecated/core/__tests__/db-upgrade.test.ts +0 -42
  1159. package/src/database/_deprecated/core/__tests__/db.test.ts +0 -79
  1160. package/src/database/_deprecated/core/__tests__/model.test.ts +0 -55
  1161. package/src/database/_deprecated/core/db.ts +0 -246
  1162. package/src/database/_deprecated/core/index.ts +0 -2
  1163. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/input.json +0 -55
  1164. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/output.json +0 -60
  1165. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.test.ts +0 -14
  1166. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.ts +0 -22
  1167. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/type.ts +0 -105
  1168. package/src/database/_deprecated/core/model.ts +0 -218
  1169. package/src/database/_deprecated/core/schemas.ts +0 -88
  1170. package/src/database/_deprecated/core/types/db.ts +0 -15
  1171. package/src/database/_deprecated/models/__DEBUG.ts +0 -124
  1172. package/src/database/_deprecated/models/__tests__/file.test.ts +0 -83
  1173. package/src/database/_deprecated/models/__tests__/message.test.ts +0 -426
  1174. package/src/database/_deprecated/models/__tests__/plugin.test.ts +0 -81
  1175. package/src/database/_deprecated/models/__tests__/session.test.ts +0 -253
  1176. package/src/database/_deprecated/models/__tests__/sessionGroup.test.ts +0 -220
  1177. package/src/database/_deprecated/models/__tests__/topic.test.ts +0 -523
  1178. package/src/database/_deprecated/models/__tests__/user.test.ts +0 -82
  1179. package/src/database/_deprecated/models/file.ts +0 -51
  1180. package/src/database/_deprecated/models/message.ts +0 -277
  1181. package/src/database/_deprecated/models/plugin.ts +0 -62
  1182. package/src/database/_deprecated/models/session.ts +0 -271
  1183. package/src/database/_deprecated/models/sessionGroup.ts +0 -93
  1184. package/src/database/_deprecated/models/topic.ts +0 -250
  1185. package/src/database/_deprecated/models/user.ts +0 -69
  1186. package/src/database/_deprecated/schemas/files.ts +0 -39
  1187. package/src/database/_deprecated/schemas/message.ts +0 -50
  1188. package/src/database/_deprecated/schemas/plugin.ts +0 -12
  1189. package/src/database/_deprecated/schemas/session.ts +0 -54
  1190. package/src/database/_deprecated/schemas/sessionGroup.ts +0 -8
  1191. package/src/database/_deprecated/schemas/topic.ts +0 -12
  1192. package/src/database/_deprecated/schemas/user.ts +0 -40
  1193. package/src/envs/__tests__/auth.test.ts +0 -200
  1194. package/src/features/Conversation/Error/InvalidAccessCode.tsx +0 -79
  1195. package/src/features/DataImporter/_deprecated.ts +0 -43
  1196. package/src/features/InitClientDB/EnableModal.tsx +0 -118
  1197. package/src/features/InitClientDB/ErrorResult.tsx +0 -143
  1198. package/src/features/InitClientDB/InitIndicator.tsx +0 -124
  1199. package/src/features/InitClientDB/PGliteIcon.tsx +0 -28
  1200. package/src/features/InitClientDB/features/DatabaseRepair/Backup.tsx +0 -75
  1201. package/src/features/InitClientDB/features/DatabaseRepair/Diagnosis.tsx +0 -98
  1202. package/src/features/InitClientDB/features/DatabaseRepair/Repair.tsx +0 -218
  1203. package/src/features/InitClientDB/features/DatabaseRepair/index.tsx +0 -91
  1204. package/src/features/InitClientDB/index.tsx +0 -37
  1205. package/src/hooks/_header.ts +0 -23
  1206. package/src/libs/trpc/client/edge.ts +0 -26
  1207. package/src/libs/trpc/edge/context.ts +0 -71
  1208. package/src/libs/trpc/edge/index.ts +0 -45
  1209. package/src/libs/trpc/edge/init.ts +0 -26
  1210. package/src/libs/trpc/edge/middleware/jwtPayload.test.ts +0 -75
  1211. package/src/libs/trpc/edge/middleware/jwtPayload.ts +0 -14
  1212. package/src/migrations/FromV0ToV1.ts +0 -10
  1213. package/src/migrations/FromV1ToV2/fixtures/input-v1-session.json +0 -191
  1214. package/src/migrations/FromV1ToV2/fixtures/output-v2.json +0 -202
  1215. package/src/migrations/FromV1ToV2/index.ts +0 -82
  1216. package/src/migrations/FromV1ToV2/migrations.test.ts +0 -224
  1217. package/src/migrations/FromV1ToV2/types/v1.ts +0 -78
  1218. package/src/migrations/FromV1ToV2/types/v2.ts +0 -52
  1219. package/src/migrations/FromV2ToV3/fixtures/input-v2-session.json +0 -72
  1220. package/src/migrations/FromV2ToV3/fixtures/output-v3-from-v1.json +0 -203
  1221. package/src/migrations/FromV2ToV3/fixtures/output-v3.json +0 -74
  1222. package/src/migrations/FromV2ToV3/index.ts +0 -30
  1223. package/src/migrations/FromV2ToV3/migrations.test.ts +0 -42
  1224. package/src/migrations/FromV2ToV3/types/v3.ts +0 -27
  1225. package/src/migrations/FromV3ToV4/fixtures/azure-input-v3.json +0 -79
  1226. package/src/migrations/FromV3ToV4/fixtures/azure-output-v4.json +0 -75
  1227. package/src/migrations/FromV3ToV4/fixtures/ollama-input-v3.json +0 -85
  1228. package/src/migrations/FromV3ToV4/fixtures/ollama-output-v4.json +0 -86
  1229. package/src/migrations/FromV3ToV4/fixtures/openai-input-v3.json +0 -77
  1230. package/src/migrations/FromV3ToV4/fixtures/openai-output-v4.json +0 -77
  1231. package/src/migrations/FromV3ToV4/fixtures/openrouter-input-v3.json +0 -82
  1232. package/src/migrations/FromV3ToV4/fixtures/openrouter-output-v4.json +0 -85
  1233. package/src/migrations/FromV3ToV4/fixtures/output-v4-from-v1.json +0 -203
  1234. package/src/migrations/FromV3ToV4/index.ts +0 -102
  1235. package/src/migrations/FromV3ToV4/migrations.test.ts +0 -195
  1236. package/src/migrations/FromV3ToV4/types/v3.ts +0 -52
  1237. package/src/migrations/FromV3ToV4/types/v4.ts +0 -37
  1238. package/src/migrations/FromV4ToV5/fixtures/from-v1-to-v5-output.json +0 -245
  1239. package/src/migrations/FromV4ToV5/fixtures/function-input-v4.json +0 -96
  1240. package/src/migrations/FromV4ToV5/fixtures/function-output-v5.json +0 -120
  1241. package/src/migrations/FromV4ToV5/index.ts +0 -58
  1242. package/src/migrations/FromV4ToV5/migrations.test.ts +0 -49
  1243. package/src/migrations/FromV4ToV5/types/v4.ts +0 -21
  1244. package/src/migrations/FromV4ToV5/types/v5.ts +0 -27
  1245. package/src/migrations/FromV5ToV6/fixtures/from-v1-to-v6-output.json +0 -247
  1246. package/src/migrations/FromV5ToV6/fixtures/session-input-v5.json +0 -81
  1247. package/src/migrations/FromV5ToV6/fixtures/session-output-v6.json +0 -85
  1248. package/src/migrations/FromV5ToV6/index.ts +0 -61
  1249. package/src/migrations/FromV5ToV6/migrations.test.ts +0 -50
  1250. package/src/migrations/FromV5ToV6/types/v5.ts +0 -48
  1251. package/src/migrations/FromV5ToV6/types/v6.ts +0 -63
  1252. package/src/migrations/FromV6ToV7/fixtures/output-v7-from-v1.json +0 -203
  1253. package/src/migrations/FromV6ToV7/fixtures/provider-input-v6.json +0 -103
  1254. package/src/migrations/FromV6ToV7/fixtures/provider-output-v7.json +0 -118
  1255. package/src/migrations/FromV6ToV7/index.ts +0 -101
  1256. package/src/migrations/FromV6ToV7/migrations.test.ts +0 -64
  1257. package/src/migrations/FromV6ToV7/types/v6.ts +0 -61
  1258. package/src/migrations/FromV6ToV7/types/v7.ts +0 -69
  1259. package/src/migrations/VersionController.test.ts +0 -88
  1260. package/src/migrations/VersionController.ts +0 -67
  1261. package/src/migrations/index.ts +0 -61
  1262. package/src/server/globalConfig/_deprecated.test.ts +0 -92
  1263. package/src/server/globalConfig/_deprecated.ts +0 -41
  1264. package/src/server/routers/edge/appStatus.ts +0 -3
  1265. package/src/server/routers/edge/index.ts +0 -14
  1266. package/src/server/routers/edge/upload.ts +0 -16
  1267. package/src/services/aiModel/client.ts +0 -70
  1268. package/src/services/aiModel/server.test.ts +0 -122
  1269. package/src/services/aiModel/server.ts +0 -51
  1270. package/src/services/aiModel/type.ts +0 -32
  1271. package/src/services/aiProvider/client.ts +0 -58
  1272. package/src/services/aiProvider/server.ts +0 -43
  1273. package/src/services/aiProvider/type.ts +0 -27
  1274. package/src/services/baseClientService/index.ts +0 -9
  1275. package/src/services/chat/__snapshots__/chat.test.ts.snap +0 -110
  1276. package/src/services/chatGroup/client.ts +0 -63
  1277. package/src/services/chatGroup/server.ts +0 -67
  1278. package/src/services/chatGroup/type.ts +0 -22
  1279. package/src/services/export/_deprecated.ts +0 -155
  1280. package/src/services/export/client.ts +0 -15
  1281. package/src/services/export/server.ts +0 -9
  1282. package/src/services/export/type.ts +0 -5
  1283. package/src/services/file/_deprecated.test.ts +0 -119
  1284. package/src/services/file/_deprecated.ts +0 -80
  1285. package/src/services/file/client.test.ts +0 -199
  1286. package/src/services/file/client.ts +0 -85
  1287. package/src/services/file/server.ts +0 -53
  1288. package/src/services/file/type.ts +0 -13
  1289. package/src/services/import/_deprecated.ts +0 -115
  1290. package/src/services/import/client.test.ts +0 -1015
  1291. package/src/services/import/client.ts +0 -64
  1292. package/src/services/import/server.ts +0 -133
  1293. package/src/services/import/type.ts +0 -17
  1294. package/src/services/message/_deprecated.test.ts +0 -398
  1295. package/src/services/message/_deprecated.ts +0 -168
  1296. package/src/services/message/client.test.ts +0 -410
  1297. package/src/services/message/client.ts +0 -186
  1298. package/src/services/message/server.ts +0 -150
  1299. package/src/services/message/type.ts +0 -54
  1300. package/src/services/plugin/_deprecated.test.ts +0 -162
  1301. package/src/services/plugin/_deprecated.ts +0 -42
  1302. package/src/services/plugin/client.test.ts +0 -177
  1303. package/src/services/plugin/client.ts +0 -46
  1304. package/src/services/plugin/server.ts +0 -42
  1305. package/src/services/plugin/type.ts +0 -23
  1306. package/src/services/session/_deprecated.test.ts +0 -440
  1307. package/src/services/session/_deprecated.ts +0 -190
  1308. package/src/services/session/client.test.ts +0 -413
  1309. package/src/services/session/client.ts +0 -193
  1310. package/src/services/session/server.test.ts +0 -260
  1311. package/src/services/session/server.ts +0 -125
  1312. package/src/services/session/type.ts +0 -82
  1313. package/src/services/thread/client.ts +0 -51
  1314. package/src/services/thread/server.ts +0 -32
  1315. package/src/services/thread/type.ts +0 -21
  1316. package/src/services/topic/_deprecated.test.ts +0 -245
  1317. package/src/services/topic/_deprecated.ts +0 -75
  1318. package/src/services/topic/client.ts +0 -89
  1319. package/src/services/topic/pglite.test.ts +0 -212
  1320. package/src/services/topic/server.ts +0 -57
  1321. package/src/services/topic/type.ts +0 -40
  1322. package/src/services/user/_deprecated.test.ts +0 -101
  1323. package/src/services/user/_deprecated.ts +0 -70
  1324. package/src/services/user/client.test.ts +0 -111
  1325. package/src/services/user/client.ts +0 -104
  1326. package/src/services/user/server.test.ts +0 -149
  1327. package/src/services/user/server.ts +0 -47
  1328. package/src/services/user/type.ts +0 -21
  1329. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChat.test.ts +0 -1209
  1330. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +0 -718
  1331. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +0 -849
  1332. package/src/store/chat/slices/aiChat/actions/generateAIChatV2.ts +0 -591
  1333. package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +0 -121
  1334. package/src/store/chat/slices/builtinTool/actions/dalle.ts +0 -124
  1335. package/src/store/chat/slices/message/action.ts +0 -553
  1336. package/src/store/chat/slices/message/selectors.test.ts +0 -473
  1337. package/src/store/chat/slices/message/selectors.ts +0 -322
  1338. package/src/store/chat/slices/plugin/action.ts +0 -548
  1339. package/src/store/global/actions/clientDb.ts +0 -67
  1340. package/src/store/user/slices/modelList/__snapshots__/action.test.ts.snap +0 -12
  1341. package/src/store/user/slices/modelList/action.test.ts +0 -359
  1342. package/src/store/user/slices/modelList/action.ts +0 -223
  1343. package/src/store/user/slices/modelList/initialState.ts +0 -15
  1344. package/src/store/user/slices/modelList/reducers/customModelCard.test.ts +0 -204
  1345. package/src/store/user/slices/modelList/reducers/customModelCard.ts +0 -64
  1346. package/src/store/user/slices/modelList/selectors/index.ts +0 -3
  1347. package/src/store/user/slices/modelList/selectors/keyVaults.test.ts +0 -201
  1348. package/src/store/user/slices/modelList/selectors/keyVaults.ts +0 -50
  1349. package/src/store/user/slices/modelList/selectors/modelConfig.test.ts +0 -219
  1350. package/src/store/user/slices/modelList/selectors/modelConfig.ts +0 -95
  1351. package/src/store/user/slices/modelList/selectors/modelProvider.test.ts +0 -138
  1352. package/src/store/user/slices/modelList/selectors/modelProvider.ts +0 -170
  1353. package/src/tools/dalle/Render/GalleyGrid.tsx +0 -60
  1354. package/src/tools/dalle/Render/Item/EditMode.tsx +0 -66
  1355. package/src/tools/dalle/Render/Item/Error.tsx +0 -49
  1356. package/src/tools/dalle/Render/Item/Image.tsx +0 -44
  1357. package/src/tools/dalle/Render/Item/ImageFileItem.tsx +0 -57
  1358. package/src/tools/dalle/Render/Item/index.tsx +0 -88
  1359. package/src/tools/dalle/Render/ToolBar.tsx +0 -56
  1360. package/src/tools/dalle/Render/index.tsx +0 -52
  1361. package/src/tools/dalle/index.ts +0 -92
  1362. /package/packages/{utils/src/fetch → fetch-sse/src}/index.ts +0 -0
  1363. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/default.tsx +0 -0
  1364. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatHydration/index.tsx +0 -0
  1365. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Desktop/ClassicChat.tsx +0 -0
  1366. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Desktop/GroupChat.tsx +0 -0
  1367. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Desktop/index.tsx +0 -0
  1368. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Desktop/useSendMenuItems.tsx +0 -0
  1369. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Mobile/MentionedUsers/MentionedUserItem.tsx +0 -0
  1370. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Mobile/MentionedUsers/index.tsx +0 -0
  1371. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/Mobile/index.tsx +0 -0
  1372. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/V1Mobile/ActionBar.tsx +0 -0
  1373. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/V1Mobile/Files/index.tsx +0 -0
  1374. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/V1Mobile/InputArea/Container.tsx +0 -0
  1375. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/V1Mobile/InputArea/index.tsx +0 -0
  1376. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/V1Mobile/Send.tsx +0 -0
  1377. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatInput/index.tsx +0 -0
  1378. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/ChatItem/OrchestratorThinking.tsx +0 -0
  1379. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/ChatItem/ThreadItem.tsx +0 -0
  1380. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/WelcomeChatItem/AgentWelcome/AddButton.tsx +0 -0
  1381. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/WelcomeChatItem/AgentWelcome/index.tsx +0 -0
  1382. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/WelcomeChatItem/GroupWelcome/index.tsx +0 -0
  1383. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/WelcomeChatItem/GroupWelcome/useTemplateMatching.ts +0 -0
  1384. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/WelcomeChatItem/index.tsx +0 -0
  1385. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatList/index.tsx +0 -0
  1386. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ChatMinimap/index.tsx +0 -0
  1387. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ThreadHydration.tsx +0 -0
  1388. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ZenModeToast/Toast.tsx +0 -0
  1389. /package/src/app/[variants]/(main)/chat/{(workspace)/@conversation → components/conversation}/features/ZenModeToast/index.tsx +0 -0
  1390. /package/src/app/[variants]/(main)/chat/{(workspace) → components}/features/AgentSettings/index.tsx +0 -0
  1391. /package/src/app/[variants]/(main)/chat/{(workspace) → components}/features/AgentTeamSettings/index.tsx +0 -0
  1392. /package/src/app/[variants]/(main)/chat/{(workspace) → components}/features/ChangelogModal.tsx +0 -0
  1393. /package/src/app/[variants]/(main)/chat/{(workspace) → components}/features/SettingButton.tsx +0 -0
  1394. /package/src/app/[variants]/(main)/chat/{(workspace) → components}/features/ShareButton/index.tsx +0 -0
  1395. /package/src/app/[variants]/(main)/chat/{(workspace) → components}/features/TelemetryNotification.tsx +0 -0
  1396. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/HeaderAction.tsx +0 -0
  1397. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/Main.tsx +0 -0
  1398. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/Tags/HistoryLimitTags.tsx +0 -0
  1399. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/Tags/KnowledgeTag.tsx +0 -0
  1400. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/Tags/MemberCountTag.tsx +0 -0
  1401. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/Tags/SearchTags.tsx +0 -0
  1402. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/Tags/index.tsx +0 -0
  1403. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/ChatHeader/index.tsx +0 -0
  1404. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/Portal.tsx +0 -0
  1405. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/TopicPanel.tsx +0 -0
  1406. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Desktop/index.tsx +0 -0
  1407. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Mobile/ChatHeader/ChatHeaderTitle.tsx +0 -0
  1408. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Mobile/ChatHeader/index.tsx +0 -0
  1409. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Mobile/TopicModal.tsx +0 -0
  1410. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/Mobile/index.tsx +0 -0
  1411. /package/src/app/[variants]/(main)/chat/{(workspace)/_layout → components/layout}/type.ts +0 -0
  1412. /package/src/app/[variants]/(main)/chat/{(workspace)/@portal → components/portal}/_layout/Desktop.tsx +0 -0
  1413. /package/src/app/[variants]/(main)/chat/{(workspace)/@portal → components/portal}/_layout/Mobile.tsx +0 -0
  1414. /package/src/app/[variants]/(main)/chat/{(workspace)/@portal → components/portal}/default.tsx +0 -0
  1415. /package/src/app/[variants]/(main)/chat/{(workspace)/@portal → components/portal}/error.tsx +0 -0
  1416. /package/src/app/[variants]/(main)/chat/{(workspace)/@portal → components/portal}/features/Body.tsx +0 -0
  1417. /package/src/app/[variants]/(main)/chat/{(workspace)/@portal → components/portal}/loading.tsx +0 -0
  1418. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/_layout/Desktop.tsx +0 -0
  1419. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/_layout/Mobile.tsx +0 -0
  1420. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/default.tsx +0 -0
  1421. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/AgentConfig/SystemRole.tsx +0 -0
  1422. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/AgentConfig/index.tsx +0 -0
  1423. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/ConfigLayout.tsx +0 -0
  1424. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/ConfigSwitcher.tsx +0 -0
  1425. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/GroupConfig/GroupMember.tsx +0 -0
  1426. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/GroupConfig/GroupMemberItem.tsx +0 -0
  1427. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/GroupConfig/GroupRole.tsx +0 -0
  1428. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/GroupConfig/index.tsx +0 -0
  1429. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/GroupConfig/style.ts +0 -0
  1430. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/SkeletonList.tsx +0 -0
  1431. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/Header.tsx +0 -0
  1432. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/ByTimeMode/GroupItem.tsx +0 -0
  1433. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/ByTimeMode/index.tsx +0 -0
  1434. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/FlatMode/index.tsx +0 -0
  1435. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/SearchResult/index.tsx +0 -0
  1436. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/ThreadItem/Content.tsx +0 -0
  1437. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/ThreadItem/index.tsx +0 -0
  1438. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/ThreadList/index.tsx +0 -0
  1439. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/TopicItem/DefaultContent.tsx +0 -0
  1440. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/TopicItem/index.tsx +0 -0
  1441. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicListContent/index.tsx +0 -0
  1442. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/TopicSearchBar/index.tsx +0 -0
  1443. /package/src/app/[variants]/(main)/chat/{(workspace)/@topic → components/topic}/features/Topic/index.tsx +0 -0
  1444. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionHydration.tsx +0 -0
  1445. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/CollapseGroup/Actions.tsx +0 -0
  1446. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/CollapseGroup/index.tsx +0 -0
  1447. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/DefaultMode.tsx +0 -0
  1448. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/Inbox/index.tsx +0 -0
  1449. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/List/AddButton.tsx +0 -0
  1450. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/List/index.tsx +0 -0
  1451. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/ListItem/index.tsx +0 -0
  1452. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/Modals/ConfigGroupModal/GroupItem.tsx +0 -0
  1453. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/Modals/ConfigGroupModal/index.tsx +0 -0
  1454. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/Modals/CreateGroupModal.tsx +0 -0
  1455. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/Modals/RenameGroupModal.tsx +0 -0
  1456. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/SearchMode.tsx +0 -0
  1457. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionListContent/index.tsx +0 -0
  1458. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SessionSearchBar.tsx +0 -0
  1459. /package/src/app/[variants]/(main)/chat/{@session → session}/features/SkeletonList.tsx +0 -0
  1460. /package/src/app/[variants]/(main)/chat/{@session/_layout → session/layout}/Desktop/PanelBody.tsx +0 -0
  1461. /package/src/app/[variants]/(main)/chat/{@session/_layout → session/layout}/Desktop/SessionHeader.tsx +0 -0
  1462. /package/src/app/[variants]/(main)/chat/{@session/_layout → session/layout}/Desktop/index.tsx +0 -0
  1463. /package/src/app/[variants]/(main)/chat/{@session/_layout → session/layout}/Mobile/SessionHeader.tsx +0 -0
  1464. /package/src/app/[variants]/(main)/chat/{@session/_layout → session/layout}/Mobile/index.tsx +0 -0
  1465. /package/src/{app/[variants]/(main)/settings/provider/features/ProviderConfig → components/Skeleton}/SkeletonInput.tsx +0 -0
  1466. /package/src/{middleware.ts → proxy.ts} +0 -0
  1467. /package/{packages/utils/src → src/utils/server}/__snapshots__/parseModels.test.ts.snap +0 -0
  1468. /package/{packages/utils/src → src/utils/server}/parseModels.test.ts +0 -0
@@ -7,9 +7,9 @@ const log = debug('context-engine:processor:GroupMessageFlattenProcessor');
7
7
 
8
8
  /**
9
9
  * Group Message Flatten Processor
10
- * Responsible for flattening role=group messages into standard assistant + tool message sequences
10
+ * Responsible for flattening role=assistantGroup messages into standard assistant + tool message sequences
11
11
  *
12
- * Group messages are created when assistant messages with tools are merged with their tool results.
12
+ * AssistantGroup messages are created when assistant messages with tools are merged with their tool results.
13
13
  * This processor converts them back to a flat structure that AI models can understand.
14
14
  */
15
15
  export class GroupMessageFlattenProcessor extends BaseProcessor {
@@ -31,8 +31,8 @@ export class GroupMessageFlattenProcessor extends BaseProcessor {
31
31
 
32
32
  // Process each message
33
33
  for (const message of clonedContext.messages) {
34
- // Check if this is a group message with children field
35
- if (message.role === 'group' && message.children) {
34
+ // Check if this is an assistantGroup message with children field
35
+ if (message.role === 'assistantGroup' && message.children) {
36
36
  // If children array is empty, skip this message entirely (no content to flatten)
37
37
  if (message.children.length === 0) {
38
38
  continue;
@@ -41,7 +41,9 @@ export class GroupMessageFlattenProcessor extends BaseProcessor {
41
41
  processedCount++;
42
42
  groupMessagesFlattened++;
43
43
 
44
- log(`Flattening group message ${message.id} with ${message.children.length} children`);
44
+ log(
45
+ `Flattening assistantGroup message ${message.id} with ${message.children.length} children`,
46
+ );
45
47
 
46
48
  // Flatten each child
47
49
  for (const child of message.children) {
@@ -67,8 +69,18 @@ export class GroupMessageFlattenProcessor extends BaseProcessor {
67
69
  }
68
70
 
69
71
  // Add reasoning if present (for models that support reasoning)
70
- if (message.reasoning) {
71
- assistantMsg.reasoning = message.reasoning;
72
+ if (child.reasoning) {
73
+ assistantMsg.reasoning = child.reasoning;
74
+ }
75
+
76
+ // Add error if present
77
+ if (child.error) {
78
+ assistantMsg.error = child.error;
79
+ }
80
+
81
+ // Add imageList if present
82
+ if (child.imageList && child.imageList.length > 0) {
83
+ assistantMsg.imageList = child.imageList;
72
84
  }
73
85
 
74
86
  // Preserve other fields that might be needed
@@ -136,7 +148,7 @@ export class GroupMessageFlattenProcessor extends BaseProcessor {
136
148
  clonedContext.metadata.toolMessagesCreated = toolMessagesCreated;
137
149
 
138
150
  log(
139
- `Group message flatten processing completed: ${groupMessagesFlattened} groups flattened, ${assistantMessagesCreated} assistant messages created, ${toolMessagesCreated} tool messages created`,
151
+ `AssistantGroup message flatten processing completed: ${groupMessagesFlattened} groups flattened, ${assistantMessagesCreated} assistant messages created, ${toolMessagesCreated} tool messages created`,
140
152
  );
141
153
 
142
154
  return this.markAsExecuted(clonedContext);
@@ -6,8 +6,8 @@ import type { PipelineContext, ProcessorOptions } from '../types';
6
6
  const log = debug('context-engine:processor:MessageCleanupProcessor');
7
7
 
8
8
  /**
9
- * 消息清理处理器
10
- * 负责清理消息中的多余字段,只保留 OpenAI 格式所需的必要字段
9
+ * Message Cleanup Processor
10
+ * Responsible for cleaning up redundant fields in messages, keeping only necessary fields required by OpenAI format
11
11
  */
12
12
  export class MessageCleanupProcessor extends BaseProcessor {
13
13
  readonly name = 'MessageCleanupProcessor';
@@ -21,7 +21,7 @@ export class MessageCleanupProcessor extends BaseProcessor {
21
21
 
22
22
  let cleanedCount = 0;
23
23
 
24
- // 清理每条消息,只保留必要字段
24
+ // Clean each message, keeping only necessary fields
25
25
  for (let i = 0; i < clonedContext.messages.length; i++) {
26
26
  const message = clonedContext.messages[i];
27
27
  const cleanedMessage = this.cleanMessage(message);
@@ -32,7 +32,7 @@ export class MessageCleanupProcessor extends BaseProcessor {
32
32
  }
33
33
  }
34
34
 
35
- // 更新元数据
35
+ // Update metadata
36
36
  clonedContext.metadata.messageCleanup = {
37
37
  cleanedCount,
38
38
  totalMessages: clonedContext.messages.length,
@@ -43,7 +43,7 @@ export class MessageCleanupProcessor extends BaseProcessor {
43
43
  }
44
44
 
45
45
  /**
46
- * 清理单条消息,只保留必要字段
46
+ * Clean a single message, keeping only necessary fields
47
47
  */
48
48
  private cleanMessage(message: any): any {
49
49
  switch (message.role) {
@@ -66,6 +66,7 @@ export class MessageCleanupProcessor extends BaseProcessor {
66
66
  content: message.content,
67
67
  role: message.role,
68
68
  ...(message.tool_calls && { tool_calls: message.tool_calls }),
69
+ ...(message.reasoning && { reasoning: message.reasoning }),
69
70
  };
70
71
  }
71
72
 
@@ -79,7 +80,7 @@ export class MessageCleanupProcessor extends BaseProcessor {
79
80
  }
80
81
 
81
82
  default: {
82
- // 对于未知角色,保持原样
83
+ // For unknown roles, keep as is
83
84
  return message;
84
85
  }
85
86
  }
@@ -64,7 +64,7 @@ export class MessageContentProcessor extends BaseProcessor {
64
64
  let userMessagesProcessed = 0;
65
65
  let assistantMessagesProcessed = 0;
66
66
 
67
- // 处理每条消息的内容
67
+ // Process the content of each message
68
68
  for (let i = 0; i < clonedContext.messages.length; i++) {
69
69
  const message = clonedContext.messages[i];
70
70
 
@@ -91,11 +91,11 @@ export class MessageContentProcessor extends BaseProcessor {
91
91
  }
92
92
  } catch (error) {
93
93
  log.extend('error')(`Error processing message ${message.id} content: ${error}`);
94
- // 继续处理其他消息
94
+ // Continue processing other messages
95
95
  }
96
96
  }
97
97
 
98
- // 更新元数据
98
+ // Update metadata
99
99
  clonedContext.metadata.messageContentProcessed = processedCount;
100
100
  clonedContext.metadata.userMessagesProcessed = userMessagesProcessed;
101
101
  clonedContext.metadata.assistantMessagesProcessed = assistantMessagesProcessed;
@@ -163,14 +163,14 @@ export class MessageContentProcessor extends BaseProcessor {
163
163
  contentParts.push(...videoContentParts);
164
164
  }
165
165
 
166
- // 明确返回的字段,只保留必要的消息字段
166
+ // Explicitly return fields, keeping only necessary message fields
167
167
  const hasFileContext = (hasFiles || hasImages || hasVideos) && this.config.fileContext?.enabled;
168
168
  const hasVisionContent =
169
169
  hasImages && this.config.isCanUseVision?.(this.config.model, this.config.provider);
170
170
  const hasVideoContent =
171
171
  hasVideos && this.config.isCanUseVideo?.(this.config.model, this.config.provider);
172
172
 
173
- // 如果只有文本内容且没有添加文件上下文也没有视觉/视频内容,返回纯文本
173
+ // If only text content and no file context added and no vision/video content, return plain text
174
174
  if (
175
175
  contentParts.length === 1 &&
176
176
  contentParts[0].type === 'text' &&
@@ -185,7 +185,7 @@ export class MessageContentProcessor extends BaseProcessor {
185
185
  meta: message.meta,
186
186
  role: message.role,
187
187
  updatedAt: message.updatedAt,
188
- // 保留其他可能需要的字段,但移除已处理的文件相关字段
188
+ // Keep other potentially needed fields, but remove processed file-related fields
189
189
  ...(message.tools && { tools: message.tools }),
190
190
  ...(message.tool_calls && { tool_calls: message.tool_calls }),
191
191
  ...(message.tool_call_id && { tool_call_id: message.tool_call_id }),
@@ -193,7 +193,7 @@ export class MessageContentProcessor extends BaseProcessor {
193
193
  };
194
194
  }
195
195
 
196
- // 返回结构化内容
196
+ // Return structured content
197
197
  return {
198
198
  content: contentParts,
199
199
  createdAt: message.createdAt,
@@ -201,7 +201,7 @@ export class MessageContentProcessor extends BaseProcessor {
201
201
  meta: message.meta,
202
202
  role: message.role,
203
203
  updatedAt: message.updatedAt,
204
- // 保留其他可能需要的字段,但移除已处理的文件相关字段
204
+ // Keep other potentially needed fields, but remove processed file-related fields
205
205
  ...(message.tools && { tools: message.tools }),
206
206
  ...(message.tool_calls && { tool_calls: message.tool_calls }),
207
207
  ...(message.tool_call_id && { tool_call_id: message.tool_call_id }),
@@ -210,10 +210,10 @@ export class MessageContentProcessor extends BaseProcessor {
210
210
  }
211
211
 
212
212
  /**
213
- * 处理助手消息内容
213
+ * Process assistant message content
214
214
  */
215
215
  private async processAssistantMessage(message: any): Promise<any> {
216
- // 检查是否有推理内容(thinking mode
216
+ // Check if there is reasoning content (thinking mode)
217
217
  const shouldIncludeThinking = message.reasoning && !!message.reasoning?.signature;
218
218
 
219
219
  if (shouldIncludeThinking) {
@@ -235,11 +235,11 @@ export class MessageContentProcessor extends BaseProcessor {
235
235
  };
236
236
  }
237
237
 
238
- // 检查是否有图片(助手消息也可能包含图片)
238
+ // Check if there are images (assistant messages may also contain images)
239
239
  const hasImages = message.imageList && message.imageList.length > 0;
240
240
 
241
241
  if (hasImages && this.config.isCanUseVision?.(this.config.model, this.config.provider)) {
242
- // 创建结构化内容
242
+ // Create structured content
243
243
  const contentParts: UserMessageContentPart[] = [];
244
244
 
245
245
  if (message.content) {
@@ -249,7 +249,7 @@ export class MessageContentProcessor extends BaseProcessor {
249
249
  });
250
250
  }
251
251
 
252
- // 处理图片内容
252
+ // Process image content
253
253
  const imageContentParts = await this.processImageList(message.imageList || []);
254
254
  contentParts.push(...imageContentParts);
255
255
 
@@ -259,7 +259,7 @@ export class MessageContentProcessor extends BaseProcessor {
259
259
  };
260
260
  }
261
261
 
262
- // 普通助手消息,返回纯文本内容
262
+ // Regular assistant message, return plain text content
263
263
  return {
264
264
  ...message,
265
265
  content: message.content,
@@ -267,7 +267,7 @@ export class MessageContentProcessor extends BaseProcessor {
267
267
  }
268
268
 
269
269
  /**
270
- * 处理图片列表
270
+ * Process image list
271
271
  */
272
272
  private async processImageList(imageList: any[]): Promise<UserMessageContentPart[]> {
273
273
  if (!imageList || imageList.length === 0) {
@@ -293,7 +293,7 @@ export class MessageContentProcessor extends BaseProcessor {
293
293
  }
294
294
 
295
295
  /**
296
- * 处理视频列表
296
+ * Process video list
297
297
  */
298
298
  private async processVideoList(videoList: any[]): Promise<UserMessageContentPart[]> {
299
299
  if (!videoList || videoList.length === 0) {
@@ -309,7 +309,7 @@ export class MessageContentProcessor extends BaseProcessor {
309
309
  }
310
310
 
311
311
  /**
312
- * 验证内容部分格式
312
+ * Validate content part format
313
313
  */
314
314
  private validateContentPart(part: UserMessageContentPart): boolean {
315
315
  if (!part || !part.type) return false;
@@ -133,7 +133,7 @@ export class PlaceholderVariablesProcessor extends BaseProcessor {
133
133
  `Starting placeholder variables processing with ${Object.keys(this.config.variableGenerators).length} generators`,
134
134
  );
135
135
 
136
- // 处理每条消息的占位符变量
136
+ // Process placeholder variables for each message
137
137
  for (let i = 0; i < clonedContext.messages.length; i++) {
138
138
  const message = clonedContext.messages[i];
139
139
 
@@ -148,11 +148,11 @@ export class PlaceholderVariablesProcessor extends BaseProcessor {
148
148
  }
149
149
  } catch (error) {
150
150
  log.extend('error')(`Error processing placeholders in message ${message.id}: ${error}`);
151
- // 继续处理其他消息
151
+ // Continue processing other messages
152
152
  }
153
153
  }
154
154
 
155
- // 更新元数据
155
+ // Update metadata
156
156
  clonedContext.metadata.placeholderVariablesProcessed = processedCount;
157
157
 
158
158
  log(`Placeholder variables processing completed, processed ${processedCount} messages`);
@@ -161,7 +161,7 @@ export class PlaceholderVariablesProcessor extends BaseProcessor {
161
161
  }
162
162
 
163
163
  /**
164
- * 处理单个消息的占位符变量
164
+ * Process placeholder variables for a single message
165
165
  */
166
166
  private processMessagePlaceholders(message: any, depth: number): any {
167
167
  if (!message?.content) return message;
@@ -41,7 +41,7 @@ export class ToolCallProcessor extends BaseProcessor {
41
41
  let toolCallsConverted = 0;
42
42
  let toolMessagesConverted = 0;
43
43
 
44
- // 处理每条消息的工具调用
44
+ // Process tool calls for each message
45
45
  for (let i = 0; i < clonedContext.messages.length; i++) {
46
46
  const message = clonedContext.messages[i];
47
47
 
@@ -52,7 +52,7 @@ export class ToolCallProcessor extends BaseProcessor {
52
52
  processedCount++;
53
53
  clonedContext.messages[i] = updatedMessage;
54
54
 
55
- // 统计转换的工具调用和工具消息数量
55
+ // Count converted tool calls and tool messages
56
56
  if (message.role === 'assistant' && message.tools) {
57
57
  toolCallsConverted += message.tools.length;
58
58
  }
@@ -60,15 +60,15 @@ export class ToolCallProcessor extends BaseProcessor {
60
60
  toolMessagesConverted++;
61
61
  }
62
62
 
63
- log(`处理消息 ${message.id},角色: ${message.role}`);
63
+ log(`Processed message ${message.id}, role: ${message.role}`);
64
64
  }
65
65
  } catch (error) {
66
- log.extend('error')(`处理消息 ${message.id} 工具调用时出错: ${error}`);
67
- // 继续处理其他消息
66
+ log.extend('error')(`Error processing tool call in message ${message.id}: ${error}`);
67
+ // Continue processing other messages
68
68
  }
69
69
  }
70
70
 
71
- // 更新元数据
71
+ // Update metadata
72
72
  clonedContext.metadata.toolCallProcessed = processedCount;
73
73
  clonedContext.metadata.toolCallsConverted = toolCallsConverted;
74
74
  clonedContext.metadata.toolMessagesConverted = toolMessagesConverted;
@@ -82,7 +82,7 @@ export class ToolCallProcessor extends BaseProcessor {
82
82
  }
83
83
 
84
84
  /**
85
- * 处理单条消息的工具调用
85
+ * Process tool calls for a single message
86
86
  */
87
87
  private async processMessage(message: any, supportTools: boolean): Promise<any> {
88
88
  switch (message.role) {
@@ -101,26 +101,26 @@ export class ToolCallProcessor extends BaseProcessor {
101
101
  }
102
102
 
103
103
  /**
104
- * 处理助手消息的工具调用
104
+ * Process tool calls in assistant message
105
105
  */
106
106
  private processAssistantMessage(message: any, supportTools: boolean): any {
107
- // 检查是否有工具调用
107
+ // Check if there are tool calls
108
108
  const hasTools = message.tools && message.tools.length > 0;
109
109
  const hasEmptyToolCalls = message.tool_calls && message.tool_calls.length === 0;
110
110
 
111
111
  if (!supportTools || (!hasTools && hasEmptyToolCalls)) {
112
- // 如果不支持工具或只有空的工具调用,返回普通消息(移除工具相关属性)
112
+ // If tools not supported or only has empty tool calls, return regular message (remove tool-related properties)
113
113
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
114
114
  const { tools, tool_calls, ...messageWithoutTools } = message;
115
115
  return messageWithoutTools;
116
116
  }
117
117
 
118
118
  if (!hasTools) {
119
- // 如果没有 tools 但有其他工具调用属性,只移除 tools
119
+ // If no tools but has other tool call properties, only remove tools
120
120
  return message;
121
121
  }
122
122
 
123
- // tools 转换为 tool_calls 格式
123
+ // Convert tools to tool_calls format
124
124
  const tool_calls = message.tools.map(
125
125
  (tool: any): MessageToolCall => ({
126
126
  function: {
@@ -138,11 +138,11 @@ export class ToolCallProcessor extends BaseProcessor {
138
138
  }
139
139
 
140
140
  /**
141
- * 处理工具消息
141
+ * Process tool message
142
142
  */
143
143
  private processToolMessage(message: any, supportTools: boolean): any {
144
144
  if (!supportTools) {
145
- // 如果不支持工具,将工具消息转换为用户消息
145
+ // If tools not supported, convert tool message to user message
146
146
  return {
147
147
  ...message,
148
148
  name: undefined,
@@ -152,7 +152,7 @@ export class ToolCallProcessor extends BaseProcessor {
152
152
  };
153
153
  }
154
154
 
155
- // 生成工具名称
155
+ // Generate tool name
156
156
  const toolName = message.plugin
157
157
  ? this.config.genToolCallingName
158
158
  ? this.config.genToolCallingName(
@@ -166,19 +166,19 @@ export class ToolCallProcessor extends BaseProcessor {
166
166
  return {
167
167
  ...message,
168
168
  name: toolName,
169
- // 保留 tool_call_id 用于关联
169
+ // Keep tool_call_id for association
170
170
  };
171
171
  }
172
172
 
173
173
  /**
174
- * 验证工具调用格式
174
+ * Validate tool call format
175
175
  */
176
176
  private validateToolCall(tool: any): boolean {
177
177
  return !!(tool && tool.id && tool.identifier && tool.apiName && tool.arguments);
178
178
  }
179
179
 
180
180
  /**
181
- * 验证工具消息格式
181
+ * Validate tool message format
182
182
  */
183
183
  private validateToolMessage(message: any): boolean {
184
184
  return !!(message && message.tool_call_id && message.content !== undefined);
@@ -19,7 +19,7 @@ export class ToolMessageReorder extends BaseProcessor {
19
19
  protected async doProcess(context: PipelineContext): Promise<PipelineContext> {
20
20
  const clonedContext = this.cloneContext(context);
21
21
 
22
- // 重新排序消息
22
+ // Reorder messages
23
23
  const reorderedMessages = this.reorderToolMessages(clonedContext.messages);
24
24
 
25
25
  const originalCount = clonedContext.messages.length;
@@ -27,7 +27,7 @@ export class ToolMessageReorder extends BaseProcessor {
27
27
 
28
28
  clonedContext.messages = reorderedMessages;
29
29
 
30
- // 更新元数据
30
+ // Update metadata
31
31
  clonedContext.metadata.toolMessageReorder = {
32
32
  originalCount,
33
33
  removedInvalidTools: originalCount - reorderedCount,
@@ -48,10 +48,10 @@ export class ToolMessageReorder extends BaseProcessor {
48
48
  }
49
49
 
50
50
  /**
51
- * 重新排序工具消息
51
+ * Reorder tool messages
52
52
  */
53
53
  private reorderToolMessages(messages: any[]): any[] {
54
- // 1. 先收集所有 assistant 消息中的有效 tool_call_id
54
+ // 1. First collect all valid tool_call_ids from assistant messages
55
55
  const validToolCallIds = new Set<string>();
56
56
  messages.forEach((message) => {
57
57
  if (message.role === 'assistant' && message.tool_calls) {
@@ -61,7 +61,7 @@ export class ToolMessageReorder extends BaseProcessor {
61
61
  }
62
62
  });
63
63
 
64
- // 2. 收集所有有效的 tool 消息
64
+ // 2. Collect all valid tool messages
65
65
  const toolMessages: Record<string, any> = {};
66
66
  messages.forEach((message) => {
67
67
  if (
@@ -73,10 +73,10 @@ export class ToolMessageReorder extends BaseProcessor {
73
73
  }
74
74
  });
75
75
 
76
- // 3. 重新排序消息
76
+ // 3. Reorder messages
77
77
  const reorderedMessages: any[] = [];
78
78
  messages.forEach((message) => {
79
- // 跳过无效的 tool 消息
79
+ // Skip invalid tool messages
80
80
  if (
81
81
  message.role === 'tool' &&
82
82
  (!message.tool_call_id || !validToolCallIds.has(message.tool_call_id))
@@ -85,7 +85,7 @@ export class ToolMessageReorder extends BaseProcessor {
85
85
  return;
86
86
  }
87
87
 
88
- // 检查是否已经添加过该 tool 消息
88
+ // Check if this tool message has already been added
89
89
  const hasPushed = reorderedMessages.some(
90
90
  (m) => !!message.tool_call_id && m.tool_call_id === message.tool_call_id,
91
91
  );
@@ -94,7 +94,7 @@ export class ToolMessageReorder extends BaseProcessor {
94
94
 
95
95
  reorderedMessages.push(message);
96
96
 
97
- // 如果是 assistant 消息且有 tool_calls,添加对应的 tool 消息
97
+ // If assistant message with tool_calls, add corresponding tool messages
98
98
  if (message.role === 'assistant' && message.tool_calls) {
99
99
  message.tool_calls.forEach((toolCall: any) => {
100
100
  const correspondingToolMessage = toolMessages[toolCall.id];
@@ -109,5 +109,5 @@ export class ToolMessageReorder extends BaseProcessor {
109
109
  return reorderedMessages;
110
110
  }
111
111
 
112
- // 简化:移除验证/统计等辅助方法
112
+ // Simplified: removed validation/statistics helper methods
113
113
  }
@@ -18,7 +18,7 @@ describe('GroupMessageFlattenProcessor', () => {
18
18
  const input: any[] = [
19
19
  {
20
20
  id: 'msg-group-1',
21
- role: 'group',
21
+ role: 'assistantGroup',
22
22
  content: '',
23
23
  createdAt: '2025-10-27T10:00:00.000Z',
24
24
  updatedAt: '2025-10-27T10:00:10.000Z',
@@ -98,7 +98,7 @@ describe('GroupMessageFlattenProcessor', () => {
98
98
  const input: any[] = [
99
99
  {
100
100
  id: 'msg-group-1',
101
- role: 'group',
101
+ role: 'assistantGroup',
102
102
  content: '',
103
103
  children: [
104
104
  {
@@ -168,7 +168,7 @@ describe('GroupMessageFlattenProcessor', () => {
168
168
  const input: any[] = [
169
169
  {
170
170
  id: 'msg-group-1',
171
- role: 'group',
171
+ role: 'assistantGroup',
172
172
  content: '',
173
173
  children: [
174
174
  {
@@ -207,7 +207,7 @@ describe('GroupMessageFlattenProcessor', () => {
207
207
  const input: any[] = [
208
208
  {
209
209
  id: 'msg-group-1',
210
- role: 'group',
210
+ role: 'assistantGroup',
211
211
  content: '',
212
212
  children: [
213
213
  {
@@ -255,7 +255,7 @@ describe('GroupMessageFlattenProcessor', () => {
255
255
  },
256
256
  {
257
257
  id: 'msg-group-1',
258
- role: 'group',
258
+ role: 'assistantGroup',
259
259
  content: '',
260
260
  children: [
261
261
  {
@@ -307,7 +307,7 @@ describe('GroupMessageFlattenProcessor', () => {
307
307
  const input: any[] = [
308
308
  {
309
309
  id: 'msg-group-1',
310
- role: 'group',
310
+ role: 'assistantGroup',
311
311
  content: '',
312
312
  children: [],
313
313
  },
@@ -326,7 +326,7 @@ describe('GroupMessageFlattenProcessor', () => {
326
326
  const input: any[] = [
327
327
  {
328
328
  id: 'msg-group-1',
329
- role: 'group',
329
+ role: 'assistantGroup',
330
330
  content: '',
331
331
  // No children field
332
332
  },
@@ -340,22 +340,22 @@ describe('GroupMessageFlattenProcessor', () => {
340
340
  expect(result.messages[0].id).toBe('msg-group-1');
341
341
  });
342
342
 
343
- it('should preserve reasoning field from group message', async () => {
343
+ it('should preserve reasoning field from child block', async () => {
344
344
  const processor = new GroupMessageFlattenProcessor();
345
345
 
346
346
  const input: any[] = [
347
347
  {
348
348
  id: 'msg-group-1',
349
- role: 'group',
349
+ role: 'assistantGroup',
350
350
  content: '',
351
- reasoning: {
352
- content: 'Thinking about the query...',
353
- signature: 'sig-123',
354
- },
355
351
  children: [
356
352
  {
357
353
  id: 'msg-1',
358
354
  content: 'Result',
355
+ reasoning: {
356
+ content: 'Thinking about the query...',
357
+ signature: 'sig-123',
358
+ },
359
359
  tools: [],
360
360
  },
361
361
  ],
@@ -372,13 +372,77 @@ describe('GroupMessageFlattenProcessor', () => {
372
372
  });
373
373
  });
374
374
 
375
+ it('should preserve error field from child block', async () => {
376
+ const processor = new GroupMessageFlattenProcessor();
377
+
378
+ const input: any[] = [
379
+ {
380
+ id: 'msg-group-1',
381
+ role: 'assistantGroup',
382
+ content: '',
383
+ children: [
384
+ {
385
+ id: 'msg-1',
386
+ content: 'Error occurred',
387
+ error: {
388
+ type: 'InvalidAPIKey',
389
+ message: 'API key is invalid',
390
+ },
391
+ tools: [],
392
+ },
393
+ ],
394
+ },
395
+ ];
396
+
397
+ const context = createContext(input);
398
+ const result = await processor.process(context);
399
+
400
+ expect(result.messages).toHaveLength(1);
401
+ expect(result.messages[0].error).toEqual({
402
+ type: 'InvalidAPIKey',
403
+ message: 'API key is invalid',
404
+ });
405
+ });
406
+
407
+ it('should preserve imageList field from child block', async () => {
408
+ const processor = new GroupMessageFlattenProcessor();
409
+
410
+ const input: any[] = [
411
+ {
412
+ id: 'msg-group-1',
413
+ role: 'assistantGroup',
414
+ content: '',
415
+ children: [
416
+ {
417
+ id: 'msg-1',
418
+ content: 'Here are the images',
419
+ imageList: [
420
+ { id: 'img-1', url: 'https://example.com/img1.jpg', alt: 'Image 1' },
421
+ { id: 'img-2', url: 'https://example.com/img2.jpg', alt: 'Image 2' },
422
+ ],
423
+ tools: [],
424
+ },
425
+ ],
426
+ },
427
+ ];
428
+
429
+ const context = createContext(input);
430
+ const result = await processor.process(context);
431
+
432
+ expect(result.messages).toHaveLength(1);
433
+ expect(result.messages[0].imageList).toEqual([
434
+ { id: 'img-1', url: 'https://example.com/img1.jpg', alt: 'Image 1' },
435
+ { id: 'img-2', url: 'https://example.com/img2.jpg', alt: 'Image 2' },
436
+ ]);
437
+ });
438
+
375
439
  it('should preserve parent/thread/group/topic IDs', async () => {
376
440
  const processor = new GroupMessageFlattenProcessor();
377
441
 
378
442
  const input: any[] = [
379
443
  {
380
444
  id: 'msg-group-1',
381
- role: 'group',
445
+ role: 'assistantGroup',
382
446
  content: '',
383
447
  parentId: 'parent-1',
384
448
  threadId: 'thread-1',
@@ -433,12 +497,8 @@ describe('GroupMessageFlattenProcessor', () => {
433
497
  const input: any[] = [
434
498
  {
435
499
  id: 'msg_LnIlOyMUnX1ylf',
436
- role: 'group',
500
+ role: 'assistantGroup',
437
501
  content: '',
438
- reasoning: {
439
- content:
440
- '**Checking Hangzhou weather**\n\nIt seems the user is asking to check the weather in Hangzhou...',
441
- },
442
502
  createdAt: '2025-10-27T10:47:59.475Z',
443
503
  updatedAt: '2025-10-27T10:48:10.768Z',
444
504
  topicId: 'tpc_WQ1wRvxdDpLw',
@@ -451,6 +511,10 @@ describe('GroupMessageFlattenProcessor', () => {
451
511
  {
452
512
  content: '',
453
513
  id: 'msg_LnIlOyMUnX1ylf',
514
+ reasoning: {
515
+ content:
516
+ '**Checking Hangzhou weather**\n\nIt seems the user is asking to check the weather in Hangzhou...',
517
+ },
454
518
  performance: {
455
519
  tps: 29.336734693877553,
456
520
  ttft: 3844,