@lobehub/lobehub 2.0.0-next.338 → 2.0.0-next.339

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 (257) hide show
  1. package/.gitattributes +35 -0
  2. package/CHANGELOG.md +44 -0
  3. package/changelog/v1.json +15 -0
  4. package/locales/ar/plugin.json +12 -2
  5. package/locales/ar/providers.json +1 -0
  6. package/locales/ar/setting.json +77 -1
  7. package/locales/bg-BG/models.json +5 -10
  8. package/locales/bg-BG/plugin.json +12 -2
  9. package/locales/bg-BG/providers.json +1 -0
  10. package/locales/bg-BG/setting.json +78 -2
  11. package/locales/de-DE/models.json +51 -9
  12. package/locales/de-DE/plugin.json +12 -2
  13. package/locales/de-DE/providers.json +1 -0
  14. package/locales/de-DE/setting.json +78 -2
  15. package/locales/en-US/models.json +11 -10
  16. package/locales/en-US/plugin.json +14 -4
  17. package/locales/en-US/providers.json +1 -0
  18. package/locales/en-US/setting.json +78 -2
  19. package/locales/es-ES/plugin.json +12 -2
  20. package/locales/es-ES/providers.json +1 -0
  21. package/locales/es-ES/setting.json +78 -2
  22. package/locales/fa-IR/plugin.json +12 -2
  23. package/locales/fa-IR/providers.json +1 -0
  24. package/locales/fa-IR/setting.json +78 -2
  25. package/locales/fr-FR/plugin.json +12 -2
  26. package/locales/fr-FR/providers.json +1 -0
  27. package/locales/fr-FR/setting.json +78 -2
  28. package/locales/it-IT/plugin.json +12 -2
  29. package/locales/it-IT/providers.json +1 -0
  30. package/locales/it-IT/setting.json +78 -2
  31. package/locales/ja-JP/plugin.json +12 -2
  32. package/locales/ja-JP/providers.json +1 -0
  33. package/locales/ja-JP/setting.json +78 -2
  34. package/locales/ko-KR/plugin.json +12 -2
  35. package/locales/ko-KR/providers.json +1 -0
  36. package/locales/ko-KR/setting.json +78 -2
  37. package/locales/nl-NL/models.json +4 -9
  38. package/locales/nl-NL/plugin.json +12 -2
  39. package/locales/nl-NL/providers.json +1 -0
  40. package/locales/nl-NL/setting.json +78 -2
  41. package/locales/pl-PL/plugin.json +12 -2
  42. package/locales/pl-PL/providers.json +1 -0
  43. package/locales/pl-PL/setting.json +78 -2
  44. package/locales/pt-BR/plugin.json +12 -2
  45. package/locales/pt-BR/providers.json +1 -0
  46. package/locales/pt-BR/setting.json +78 -2
  47. package/locales/ru-RU/plugin.json +12 -2
  48. package/locales/ru-RU/providers.json +1 -0
  49. package/locales/ru-RU/setting.json +78 -2
  50. package/locales/tr-TR/plugin.json +12 -2
  51. package/locales/tr-TR/providers.json +1 -0
  52. package/locales/tr-TR/setting.json +78 -2
  53. package/locales/vi-VN/plugin.json +12 -2
  54. package/locales/vi-VN/providers.json +1 -0
  55. package/locales/vi-VN/setting.json +77 -1
  56. package/locales/zh-CN/plugin.json +12 -2
  57. package/locales/zh-CN/providers.json +1 -0
  58. package/locales/zh-CN/setting.json +78 -2
  59. package/locales/zh-TW/plugin.json +12 -2
  60. package/locales/zh-TW/providers.json +1 -0
  61. package/locales/zh-TW/setting.json +78 -2
  62. package/package.json +1 -1
  63. package/packages/agent-runtime/src/groupOrchestration/GroupOrchestrationSupervisor.ts +2 -0
  64. package/packages/agent-runtime/src/groupOrchestration/__tests__/GroupOrchestrationSupervisor.test.ts +3 -1
  65. package/packages/agent-runtime/src/groupOrchestration/types.ts +5 -0
  66. package/packages/const/src/index.ts +1 -0
  67. package/packages/const/src/klavis.ts +144 -0
  68. package/packages/const/src/lobehubSkill.ts +34 -0
  69. package/packages/const/src/recommendedSkill.ts +17 -0
  70. package/packages/model-runtime/src/core/contextBuilders/anthropic.test.ts +38 -0
  71. package/packages/model-runtime/src/core/contextBuilders/anthropic.ts +20 -1
  72. package/packages/model-runtime/src/core/contextBuilders/google.test.ts +42 -0
  73. package/packages/model-runtime/src/core/contextBuilders/google.ts +17 -0
  74. package/scripts/electronWorkflow/modifiers/dynamicToStatic.mts +273 -0
  75. package/scripts/electronWorkflow/modifiers/index.mts +10 -0
  76. package/scripts/electronWorkflow/modifiers/nextConfig.mts +1 -0
  77. package/scripts/electronWorkflow/modifiers/nextDynamicToStatic.mts +233 -0
  78. package/scripts/electronWorkflow/modifiers/removeSuspense.mts +124 -0
  79. package/scripts/electronWorkflow/modifiers/routes.mts +14 -2
  80. package/scripts/electronWorkflow/modifiers/settingsContentToStatic.mts +148 -0
  81. package/scripts/electronWorkflow/modifiers/wrapChildrenWithClientOnly.mts +73 -0
  82. package/src/app/[variants]/(main)/home/features/InputArea/SkillInstallBanner.tsx +131 -0
  83. package/src/app/[variants]/(main)/home/features/InputArea/index.tsx +34 -27
  84. package/src/app/[variants]/(main)/settings/features/SettingHeader.tsx +8 -4
  85. package/src/app/[variants]/(main)/settings/features/SettingsContent.tsx +3 -0
  86. package/src/app/[variants]/(main)/settings/hooks/useCategory.tsx +6 -0
  87. package/src/{features/PluginStore/InstalledList/List/Item/Action.tsx → app/[variants]/(main)/settings/skill/features/Actions.tsx} +45 -40
  88. package/src/app/[variants]/(main)/settings/skill/features/KlavisSkillItem.tsx +353 -0
  89. package/src/app/[variants]/(main)/settings/skill/features/LobehubSkillItem.tsx +344 -0
  90. package/src/app/[variants]/(main)/settings/skill/features/McpSkillItem.tsx +116 -0
  91. package/src/app/[variants]/(main)/settings/skill/features/SkillList.tsx +244 -0
  92. package/src/app/[variants]/(main)/settings/skill/index.tsx +35 -0
  93. package/src/components/Plugins/PluginTag.tsx +23 -35
  94. package/src/components/client/ClientOnly.tsx +6 -2
  95. package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
  96. package/src/features/ChatInput/ActionBar/Tools/KlavisServerItem.tsx +8 -32
  97. package/src/features/ChatInput/ActionBar/Tools/LobehubSkillServerItem.tsx +8 -30
  98. package/src/features/ChatInput/ActionBar/Tools/PopoverContent.tsx +48 -59
  99. package/src/features/ChatInput/ActionBar/Tools/index.tsx +5 -23
  100. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +158 -56
  101. package/src/features/IntegrationDetailModal/index.tsx +293 -0
  102. package/src/features/{PluginStore/McpList/Detail → MCP/MCPDetail}/index.tsx +15 -6
  103. package/src/features/MCP/MCPSettings/McpSettingsModal.tsx +58 -0
  104. package/src/features/{PluginStore/McpList/Detail/Settings → MCP/MCPSettings}/index.tsx +39 -27
  105. package/src/features/PluginDetailModal/index.tsx +2 -2
  106. package/src/features/PluginDevModal/index.tsx +16 -40
  107. package/src/features/ProfileEditor/AgentTool.tsx +2 -2
  108. package/src/features/ProtocolUrlHandler/InstallPlugin/OfficialPluginInstallModal/index.tsx +1 -1
  109. package/src/features/{PluginStore/AddPluginButton.tsx → SkillStore/AddSkillButton.tsx} +3 -3
  110. package/src/features/SkillStore/CommunityList/Item.tsx +158 -0
  111. package/src/features/SkillStore/CommunityList/index.tsx +101 -0
  112. package/src/features/SkillStore/Content.tsx +59 -0
  113. package/src/features/{PluginStore/PluginEmpty.tsx → SkillStore/Empty.tsx} +8 -8
  114. package/src/features/SkillStore/LobeHubList/Item.tsx +118 -0
  115. package/src/features/SkillStore/LobeHubList/index.tsx +187 -0
  116. package/src/features/SkillStore/LobeHubList/useSkillConnect.ts +239 -0
  117. package/src/features/SkillStore/Search/index.tsx +43 -0
  118. package/src/features/{PluginStore → SkillStore}/index.tsx +14 -10
  119. package/src/features/SkillStore/style.ts +27 -0
  120. package/src/locales/default/plugin.ts +15 -4
  121. package/src/locales/default/setting.ts +185 -2
  122. package/src/services/chat/mecha/agentConfigResolver.test.ts +197 -0
  123. package/src/services/chat/mecha/agentConfigResolver.ts +44 -17
  124. package/src/store/chat/agents/GroupOrchestration/createGroupOrchestrationExecutors.ts +40 -37
  125. package/src/store/chat/slices/aiChat/actions/__tests__/streamingExecutor.test.ts +78 -0
  126. package/src/store/chat/slices/aiChat/actions/streamingExecutor.ts +50 -16
  127. package/src/store/global/initialState.ts +1 -0
  128. package/src/store/tool/slices/lobehubSkillStore/action.test.ts +914 -0
  129. package/src/store/tool/slices/lobehubSkillStore/selectors.test.ts +548 -0
  130. package/.cursor/skills/vercel-react-best-practices/AGENTS.md +0 -2410
  131. package/.cursor/skills/vercel-react-best-practices/SKILL.md +0 -125
  132. package/.cursor/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  133. package/.cursor/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -49
  134. package/.cursor/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  135. package/.cursor/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
  136. package/.cursor/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -36
  137. package/.cursor/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
  138. package/.cursor/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  139. package/.cursor/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
  140. package/.cursor/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  141. package/.cursor/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  142. package/.cursor/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  143. package/.cursor/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  144. package/.cursor/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  145. package/.cursor/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  146. package/.cursor/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  147. package/.cursor/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  148. package/.cursor/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -57
  149. package/.cursor/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  150. package/.cursor/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  151. package/.cursor/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  152. package/.cursor/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  153. package/.cursor/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  154. package/.cursor/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  155. package/.cursor/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  156. package/.cursor/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  157. package/.cursor/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  158. package/.cursor/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  159. package/.cursor/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  160. package/.cursor/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  161. package/.cursor/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  162. package/.cursor/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  163. package/.cursor/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  164. package/.cursor/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  165. package/.cursor/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  166. package/.cursor/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  167. package/.cursor/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  168. package/.cursor/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  169. package/.cursor/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  170. package/.cursor/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  171. package/.cursor/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  172. package/.cursor/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  173. package/.cursor/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  174. package/.cursor/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  175. package/.cursor/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  176. package/.cursor/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  177. package/.cursor/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  178. package/.cursor/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
  179. package/src/features/PluginStore/Content.tsx +0 -54
  180. package/src/features/PluginStore/InstalledList/Detail/CustomPluginEmptyState.tsx +0 -79
  181. package/src/features/PluginStore/InstalledList/Detail/index.tsx +0 -21
  182. package/src/features/PluginStore/InstalledList/List/Item/index.tsx +0 -61
  183. package/src/features/PluginStore/InstalledList/List/index.tsx +0 -72
  184. package/src/features/PluginStore/InstalledList/index.tsx +0 -90
  185. package/src/features/PluginStore/McpList/List/Action.tsx +0 -119
  186. package/src/features/PluginStore/McpList/List/Item.tsx +0 -83
  187. package/src/features/PluginStore/McpList/List/index.tsx +0 -93
  188. package/src/features/PluginStore/McpList/index.tsx +0 -58
  189. package/src/features/PluginStore/PluginList/Detail/DetailProvider.tsx +0 -19
  190. package/src/features/PluginStore/PluginList/Detail/EmptyState.tsx +0 -56
  191. package/src/features/PluginStore/PluginList/Detail/Header.tsx +0 -130
  192. package/src/features/PluginStore/PluginList/Detail/InstallDetail/Nav.tsx +0 -73
  193. package/src/features/PluginStore/PluginList/Detail/InstallDetail/Settings.tsx +0 -19
  194. package/src/features/PluginStore/PluginList/Detail/InstallDetail/Tools.tsx +0 -111
  195. package/src/features/PluginStore/PluginList/Detail/InstallDetail/index.tsx +0 -24
  196. package/src/features/PluginStore/PluginList/Detail/Loading.tsx +0 -42
  197. package/src/features/PluginStore/PluginList/Detail/TagList.tsx +0 -35
  198. package/src/features/PluginStore/PluginList/Detail/index.tsx +0 -39
  199. package/src/features/PluginStore/PluginList/Detail/useCategory.tsx +0 -76
  200. package/src/features/PluginStore/PluginList/List/Action.tsx +0 -78
  201. package/src/features/PluginStore/PluginList/List/Item.tsx +0 -92
  202. package/src/features/PluginStore/PluginList/List/index.tsx +0 -94
  203. package/src/features/PluginStore/PluginList/index.tsx +0 -46
  204. package/src/features/PluginStore/Search/index.tsx +0 -40
  205. /package/{.codex/skills → .agents}/vercel-react-best-practices/AGENTS.md +0 -0
  206. /package/{.codex/skills → .agents}/vercel-react-best-practices/SKILL.md +0 -0
  207. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -0
  208. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/advanced-use-latest.md +0 -0
  209. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/async-api-routes.md +0 -0
  210. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/async-defer-await.md +0 -0
  211. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/async-dependencies.md +0 -0
  212. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/async-parallel.md +0 -0
  213. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -0
  214. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -0
  215. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/bundle-conditional.md +0 -0
  216. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -0
  217. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -0
  218. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/bundle-preload.md +0 -0
  219. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/client-event-listeners.md +0 -0
  220. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -0
  221. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -0
  222. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/client-swr-dedup.md +0 -0
  223. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -0
  224. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-cache-function-results.md +0 -0
  225. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-cache-property-access.md +0 -0
  226. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-cache-storage.md +0 -0
  227. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-combine-iterations.md +0 -0
  228. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-early-exit.md +0 -0
  229. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -0
  230. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-index-maps.md +0 -0
  231. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-length-check-first.md +0 -0
  232. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-min-max-loop.md +0 -0
  233. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -0
  234. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -0
  235. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rendering-activity.md +0 -0
  236. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
  237. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -0
  238. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -0
  239. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -0
  240. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
  241. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -0
  242. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -0
  243. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rerender-dependencies.md +0 -0
  244. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rerender-derived-state.md +0 -0
  245. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -0
  246. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -0
  247. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rerender-memo.md +0 -0
  248. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/rerender-transitions.md +0 -0
  249. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -0
  250. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/server-cache-lru.md +0 -0
  251. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/server-cache-react.md +0 -0
  252. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -0
  253. /package/{.codex/skills → .agents}/vercel-react-best-practices/rules/server-serialization.md +0 -0
  254. /package/src/{features/PluginStore/InstalledList → app/[variants]/(main)/settings/skill/features}/EditCustomPlugin.tsx +0 -0
  255. /package/src/features/{PluginStore/McpList/Detail → MCP/MCPDetail}/Loading.tsx +0 -0
  256. /package/src/features/{PluginStore → SkillStore}/Loading.tsx +0 -0
  257. /package/src/features/{PluginStore → SkillStore}/VirtuosoLoading.tsx +0 -0
@@ -96,7 +96,7 @@
96
96
  "defaultAgent.model.desc": "建立新 Agent 時使用的預設模型",
97
97
  "defaultAgent.model.title": "模型",
98
98
  "defaultAgent.title": "預設助手設定",
99
- "group.aiConfig": "AI 設定",
99
+ "group.aiConfig": "智能代理",
100
100
  "group.common": "通用",
101
101
  "group.profile": "帳號",
102
102
  "group.subscription": "訂閱",
@@ -471,6 +471,14 @@
471
471
  "settingTTS.voice.desc": "為當前助手挑選一個聲音,不同 TTS 服務支持的聲源不同",
472
472
  "settingTTS.voice.preview": "試聽聲源",
473
473
  "settingTTS.voice.title": "語音合成聲源",
474
+ "skillStore.button": "技能商店",
475
+ "skillStore.empty": "瀏覽技能商店。安裝一個開始使用,之後可隨時新增更多。",
476
+ "skillStore.emptySearch": "沒有符合的技能",
477
+ "skillStore.networkError": "網路錯誤,請再試一次",
478
+ "skillStore.search": "以名稱或關鍵字搜尋技能,按 Enter 鍵開始搜尋…",
479
+ "skillStore.tabs.community": "社群",
480
+ "skillStore.tabs.lobehub": "LobeHub",
481
+ "skillStore.title": "技能商店",
474
482
  "startConversation": "開始對話",
475
483
  "storage.actions.export.button": "匯出",
476
484
  "storage.actions.export.exportType.agent": "匯出助手設定",
@@ -543,6 +551,7 @@
543
551
  "systemAgent.translation.modelDesc": "指定用於翻譯的模型",
544
552
  "systemAgent.translation.title": "訊息內容翻譯助手",
545
553
  "tab.about": "關於",
554
+ "tab.addCustomSkill": "新增自訂技能",
546
555
  "tab.agent": "默認助手",
547
556
  "tab.apikey": "API Key 管理",
548
557
  "tab.chatAppearance": "聊天外觀",
@@ -556,6 +565,12 @@
556
565
  "tab.provider": "AI 服務商",
557
566
  "tab.proxy": "網路代理",
558
567
  "tab.security": "安全",
568
+ "tab.skill": "技能管理",
569
+ "tab.skillDesc": "管理您已連接的技能與整合項目",
570
+ "tab.skillDetail": "技能詳情",
571
+ "tab.skillEmpty": "尚未連接任何技能",
572
+ "tab.skillInstalled": "已安裝技能",
573
+ "tab.skillIntegration": "整合",
559
574
  "tab.stats": "數據統計",
560
575
  "tab.storage": "資料儲存",
561
576
  "tab.sync": "雲端同步",
@@ -568,7 +583,10 @@
568
583
  "tools.klavis.authCompleted": "驗證完成",
569
584
  "tools.klavis.authFailed": "驗證失敗",
570
585
  "tools.klavis.authRequired": "需要驗證",
586
+ "tools.klavis.connect": "連線",
571
587
  "tools.klavis.connected": "已連線",
588
+ "tools.klavis.disconnect": "中斷連線",
589
+ "tools.klavis.disconnected": "已中斷連線",
572
590
  "tools.klavis.error": "錯誤",
573
591
  "tools.klavis.groupName": "Klavis 工具",
574
592
  "tools.klavis.manage": "管理 Klavis",
@@ -581,17 +599,75 @@
581
599
  "tools.klavis.serverCreatedFailed": "伺服器建立失敗",
582
600
  "tools.klavis.serverRemoved": "伺服器已刪除",
583
601
  "tools.klavis.servers": "個伺服器",
602
+ "tools.klavis.servers.airtable.description": "Airtable 是一個雲端資料庫與試算表平台,結合了試算表的彈性與資料庫的強大功能,讓團隊能以自訂視圖與自動化功能來組織、追蹤並協作專案。",
603
+ "tools.klavis.servers.airtable.introduction": "整合 Airtable 以管理您的資料庫與工作流程。查詢紀錄、新增項目、更新資料,並透過自訂視圖與強大的追蹤功能自動化操作。",
604
+ "tools.klavis.servers.cal-com.description": "Cal.com 是一個開源排程平台,協助您免去來回溝通的麻煩,輕鬆安排會議。可管理事件類型、預約、可用時間,並與行事曆整合以實現無縫排程。",
605
+ "tools.klavis.servers.cal-com.introduction": "連接 Cal.com 以管理您的排程與預約。查看可用時間、預約會議、管理事件類型,並透過自然語言對話自動化您的行事曆。",
606
+ "tools.klavis.servers.clickup.description": "ClickUp 是一個全方位的專案管理與生產力平台,協助團隊以自訂工作流程與強大追蹤功能來組織任務、管理專案並有效協作。",
607
+ "tools.klavis.servers.clickup.introduction": "連接 ClickUp 以管理任務、追蹤專案並組織工作。建立任務、更新狀態、管理自訂工作流程,並透過自然語言指令與團隊協作。",
608
+ "tools.klavis.servers.confluence.description": "Confluence 是一個結合知識與協作的團隊工作空間。",
609
+ "tools.klavis.servers.confluence.introduction": "連接 Confluence 以存取與管理團隊文件。搜尋頁面、建立內容、組織空間,並透過對話式 AI 建立您的知識庫。",
610
+ "tools.klavis.servers.dropbox.description": "Dropbox 雲端儲存的完整檔案管理解決方案。可上傳、下載、組織檔案與資料夾、管理分享與協作、處理檔案版本、建立檔案請求,並對檔案與資料夾進行批次操作。",
611
+ "tools.klavis.servers.dropbox.introduction": "整合 Dropbox 以存取與管理您的檔案。上傳、下載、分享檔案、管理資料夾、處理版本,並透過對話式 AI 組織您的雲端儲存空間。",
612
+ "tools.klavis.servers.figma.description": "Figma 是一款用於網頁與行動應用程式的協作式介面設計工具。",
613
+ "tools.klavis.servers.figma.introduction": "連接 Figma 以存取設計檔案並協作專案。瀏覽設計、匯出資產、查看元件,並透過自然對話管理設計流程。",
614
+ "tools.klavis.servers.github.description": "增強版 GitHub MCP 伺服器",
615
+ "tools.klavis.servers.github.introduction": "連接 GitHub 以管理儲存庫、議題、拉取請求與程式碼。搜尋程式碼、審查變更、建立分支,並透過對話式 AI 協作開發專案。",
616
+ "tools.klavis.servers.gmail.description": "Gmail 是 Google 提供的免費電子郵件服務",
617
+ "tools.klavis.servers.gmail.introduction": "將 Gmail 的強大功能帶入您的 AI 助理。閱讀、撰寫與傳送郵件、搜尋收件匣、管理標籤,並透過自然對話組織您的通訊。",
618
+ "tools.klavis.servers.google-calendar.description": "Google 日曆是一項時間管理與排程服務",
619
+ "tools.klavis.servers.google-calendar.introduction": "整合 Google 日曆以無縫查看、建立與管理事件。安排會議、設定提醒、查看可用時間,並透過自然語言指令協調您的時間。",
620
+ "tools.klavis.servers.google-docs.description": "Google 文件是 Google Docs 編輯器套件中的線上文書處理工具",
621
+ "tools.klavis.servers.google-docs.introduction": "整合 Google 文件以建立、編輯與管理文件。撰寫內容、格式化文字、即時協作,並透過自然對話存取您的文件。",
622
+ "tools.klavis.servers.google-drive.description": "Google 雲端硬碟是一項雲端儲存服務",
623
+ "tools.klavis.servers.google-drive.introduction": "連接 Google 雲端硬碟以存取、組織與管理您的檔案。搜尋文件、上傳檔案、分享內容,並透過 AI 協助高效瀏覽雲端儲存空間。",
624
+ "tools.klavis.servers.google-sheets.description": "Google 試算表是一款網頁版試算表應用程式,讓使用者可線上建立、編輯與協作試算表",
625
+ "tools.klavis.servers.google-sheets.introduction": "連接 Google 試算表以讀取、撰寫與分析試算表資料。執行計算、產生報表、建立圖表,並透過 AI 協助協作管理表格資料。",
626
+ "tools.klavis.servers.hubspot.description": "HubSpot 是一間開發行銷、自動化與客服軟體的公司",
627
+ "tools.klavis.servers.hubspot.introduction": "整合 HubSpot 以管理聯絡人、交易與行銷活動。存取 CRM 資料、追蹤銷售流程、自動化工作流程,並簡化您的銷售與行銷操作。",
628
+ "tools.klavis.servers.jira.description": "Jira 是 Atlassian 開發的專案管理與問題追蹤工具",
629
+ "tools.klavis.servers.jira.introduction": "整合 Jira 以管理問題、追蹤進度與組織衝刺。建立工單、更新狀態、查詢專案資料,並透過自然對話簡化開發流程。",
630
+ "tools.klavis.servers.notion.description": "Notion 是一款協作式生產力與筆記應用程式",
631
+ "tools.klavis.servers.notion.introduction": "連接 Notion 以存取與管理您的工作區。建立頁面、搜尋內容、更新資料庫,並透過 AI 助理的自然對話組織您的知識庫。",
632
+ "tools.klavis.servers.onedrive.description": "OneDrive 是由 Microsoft 提供的檔案託管與同步服務",
633
+ "tools.klavis.servers.onedrive.introduction": "連接 OneDrive 以存取與管理您的 Microsoft 雲端檔案。上傳、下載、分享檔案、組織資料夾,並透過 AI 協助協作處理文件。",
634
+ "tools.klavis.servers.outlook-mail.description": "Outlook Mail 是 Microsoft 提供的網頁郵件、聯絡人、任務與行事曆服務套件",
635
+ "tools.klavis.servers.outlook-mail.introduction": "整合 Outlook Mail 以閱讀、傳送與管理您的 Microsoft 郵件。搜尋訊息、撰寫郵件、管理資料夾,並透過自然對話組織您的收件匣。",
636
+ "tools.klavis.servers.salesforce.description": "Salesforce 是全球領先的客戶關係管理(CRM)平台,協助企業與客戶、合作夥伴及潛在客戶建立連結",
637
+ "tools.klavis.servers.salesforce.introduction": "連接 Salesforce 以管理客戶關係與銷售資料。查詢紀錄、更新商機、追蹤潛在客戶,並透過自然語言指令自動化您的 CRM 工作流程。",
638
+ "tools.klavis.servers.slack.description": "Slack 是一款商業通訊應用程式,讓人們能快速取得所需資訊",
639
+ "tools.klavis.servers.slack.introduction": "整合 Slack 以傳送訊息、搜尋對話並管理頻道。與團隊連結、自動化通訊流程,並透過自然語言存取工作區資訊。",
640
+ "tools.klavis.servers.supabase.description": "Supabase 官方 MCP 伺服器",
641
+ "tools.klavis.servers.supabase.introduction": "整合 Supabase 以管理您的資料庫與後端服務。查詢資料、管理驗證、處理儲存空間,並透過自然對話與應用程式後端互動。",
642
+ "tools.klavis.servers.whatsapp.description": "WhatsApp Business API 整合,支援傳送文字訊息、媒體與管理客戶對話。適用於客服、行銷活動與自動化訊息流程,透過官方 WhatsApp Business 平台實現。",
643
+ "tools.klavis.servers.whatsapp.introduction": "整合 WhatsApp Business 以傳送訊息、管理對話並與客戶互動。自動化訊息流程,並透過對話式 AI 處理通訊。",
644
+ "tools.klavis.servers.youtube.description": "YouTube 是一個影片分享平台,使用者可上傳、分享與探索內容。可程式化存取影片資訊、字幕與中繼資料。",
645
+ "tools.klavis.servers.youtube.introduction": "連接 YouTube 以搜尋影片、存取字幕與取得影片資訊。分析內容、擷取中繼資料,並透過自然對話探索影片。",
646
+ "tools.klavis.servers.zendesk.description": "Zendesk 是一間提供客服軟體的公司",
647
+ "tools.klavis.servers.zendesk.introduction": "整合 Zendesk 以管理支援工單與客戶互動。建立、更新與追蹤支援請求,存取客戶資料,並簡化您的客服流程。",
584
648
  "tools.klavis.tools": "個工具",
585
649
  "tools.klavis.verifyAuth": "我已完成驗證",
586
650
  "tools.lobehubSkill.authorize": "授權",
587
651
  "tools.lobehubSkill.connect": "連接",
652
+ "tools.lobehubSkill.connected": "已連線",
653
+ "tools.lobehubSkill.disconnect": "中斷連線",
654
+ "tools.lobehubSkill.disconnectConfirm.desc": "您仍可繼續先前與 {{name}} 內容相關的對話,但助理將無法存取新內容或執行新任務。",
655
+ "tools.lobehubSkill.disconnectConfirm.title": "要中斷與 {{name}} 的連線嗎?",
656
+ "tools.lobehubSkill.disconnected": "已中斷連線",
588
657
  "tools.lobehubSkill.error": "錯誤",
658
+ "tools.lobehubSkill.providers.linear.description": "Linear 是一款現代化的問題追蹤與專案管理工具,專為高效能團隊打造,協助更快速地開發優質軟體",
659
+ "tools.lobehubSkill.providers.linear.introduction": "將 Linear 的強大功能帶入您的 AI 助理。建立與更新問題、管理衝刺、追蹤專案進度,並透過自然對話簡化開發流程。",
660
+ "tools.lobehubSkill.providers.microsoft.description": "Outlook 行事曆是 Microsoft Outlook 中的整合排程工具,讓使用者能建立約會、安排會議並有效管理時間與事件。",
661
+ "tools.lobehubSkill.providers.microsoft.introduction": "整合 Outlook 行事曆以無縫查看、建立與管理事件。安排會議、查看可用時間、設定提醒,並透過自然語言指令協調您的時間。",
662
+ "tools.lobehubSkill.providers.twitter.description": "X(原 Twitter)是一個社群媒體平台,透過貼文、回覆與私訊即時分享更新、新聞並與觀眾互動。",
663
+ "tools.lobehubSkill.providers.twitter.introduction": "連接 X(Twitter)以發佈貼文、管理時間軸並與觀眾互動。建立內容、排程貼文、監控提及,並透過對話式 AI 建立您的社群媒體影響力。",
589
664
  "tools.notInstalled": "尚未安裝",
590
665
  "tools.notInstalledWarning": "目前外掛尚未安裝,可能會影響助手使用",
591
666
  "tools.plugins.enabled": "已啟用 {{num}}",
592
667
  "tools.plugins.groupName": "插件",
668
+ "tools.plugins.management": "技能管理",
593
669
  "tools.plugins.noEnabled": "暫無啟用插件",
594
- "tools.plugins.store": "插件商店",
670
+ "tools.plugins.store": "新增技能",
595
671
  "tools.tabs.all": "全部",
596
672
  "tools.tabs.installed": "已啟用",
597
673
  "tools.title": "擴展工具"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.338",
3
+ "version": "2.0.0-next.339",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -76,6 +76,8 @@ export class GroupOrchestrationSupervisor implements IGroupOrchestrationSupervis
76
76
  return {
77
77
  payload: {
78
78
  agentIds: params.agentIds as string[],
79
+ // Broadcast agents should not call tools by default
80
+ disableTools: true,
79
81
  instruction: params.instruction as string | undefined,
80
82
  toolMessageId: params.toolMessageId as string,
81
83
  },
@@ -96,7 +96,7 @@ describe('GroupOrchestrationSupervisor', () => {
96
96
  });
97
97
  });
98
98
 
99
- it('should return parallel_call_agents instruction for broadcast decision', async () => {
99
+ it('should return parallel_call_agents instruction for broadcast decision with disableTools: true', async () => {
100
100
  const supervisor = new GroupOrchestrationSupervisor(defaultConfig);
101
101
  const state = createMockState();
102
102
 
@@ -119,6 +119,8 @@ describe('GroupOrchestrationSupervisor', () => {
119
119
  type: 'parallel_call_agents',
120
120
  payload: {
121
121
  agentIds: ['agent-1', 'agent-2'],
122
+ // Broadcast agents should have tools disabled by default
123
+ disableTools: true,
122
124
  instruction: 'Discuss',
123
125
  toolMessageId: 'tool-msg-1',
124
126
  },
@@ -32,6 +32,11 @@ export interface SupervisorInstructionCallAgent {
32
32
  export interface SupervisorInstructionParallelCallAgents {
33
33
  payload: {
34
34
  agentIds: string[];
35
+ /**
36
+ * Whether to disable tools for broadcast agents
37
+ * When true, agents will respond without calling any tools
38
+ */
39
+ disableTools?: boolean;
35
40
  instruction?: string;
36
41
  /**
37
42
  * The tool message ID that triggered the broadcast
@@ -8,6 +8,7 @@ export * from './lobehubSkill';
8
8
  export * from './message';
9
9
  export * from './meta';
10
10
  export * from './plugin';
11
+ export * from './recommendedSkill';
11
12
  export * from './session';
12
13
  export * from './settings';
13
14
  export * from './theme';
@@ -2,12 +2,22 @@ import { IconType, SiCaldotcom, SiGithub } from '@icons-pack/react-simple-icons'
2
2
  import { Klavis } from 'klavis';
3
3
 
4
4
  export interface KlavisServerType {
5
+ /**
6
+ * Author/Developer of the integration
7
+ */
8
+ author: string;
9
+ /**
10
+ * Author's website URL
11
+ */
12
+ authorUrl?: string;
13
+ description: string;
5
14
  icon: string | IconType;
6
15
  /**
7
16
  * Identifier used for storage in database (e.g., 'google-calendar')
8
17
  * Format: lowercase, spaces replaced with hyphens
9
18
  */
10
19
  identifier: string;
20
+ introduction: string;
11
21
  label: string;
12
22
  /**
13
23
  * Server name used to call Klavis API (e.g., 'Google Calendar')
@@ -17,141 +27,275 @@ export interface KlavisServerType {
17
27
 
18
28
  export const KLAVIS_SERVER_TYPES: KlavisServerType[] = [
19
29
  {
30
+ author: 'Klavis',
31
+ authorUrl: 'https://klavis.io',
32
+ description: 'Gmail is a free email service provided by Google',
20
33
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/gmail.svg',
21
34
  identifier: 'gmail',
35
+ introduction:
36
+ 'Bring the power of Gmail directly into your AI assistant. Read, compose, and send emails, search your inbox, manage labels, and organize your communications—all through natural conversation.',
22
37
  label: 'Gmail',
23
38
  serverName: Klavis.McpServerName.Gmail,
24
39
  },
25
40
  {
41
+ author: 'Klavis',
42
+ authorUrl: 'https://klavis.io',
43
+ description: 'Google Calendar is a time-management and scheduling calendar service',
26
44
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/googlecalendar.svg',
27
45
  identifier: 'google-calendar',
46
+ introduction:
47
+ 'Integrate Google Calendar to view, create, and manage your events seamlessly. Schedule meetings, set reminders, check availability, and coordinate your time—all through natural language commands.',
28
48
  label: 'Google Calendar',
29
49
  serverName: Klavis.McpServerName.GoogleCalendar,
30
50
  },
31
51
  {
52
+ author: 'Klavis',
53
+ authorUrl: 'https://klavis.io',
54
+ description: 'Notion is a collaborative productivity and note-taking application',
32
55
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/notion.svg',
33
56
  identifier: 'notion',
57
+ introduction:
58
+ 'Connect to Notion to access and manage your workspace. Create pages, search content, update databases, and organize your knowledge base—all through natural conversation with your AI assistant.',
34
59
  label: 'Notion',
35
60
  serverName: Klavis.McpServerName.Notion,
36
61
  },
37
62
  {
63
+ author: 'Klavis',
64
+ authorUrl: 'https://klavis.io',
65
+ description:
66
+ 'Airtable is a cloud-based database and spreadsheet platform that combines the flexibility of a spreadsheet with the power of a database, enabling teams to organize, track, and collaborate on projects with customizable views and powerful automation features',
38
67
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/airtable.svg',
39
68
  identifier: 'airtable',
69
+ introduction:
70
+ 'Integrate with Airtable to manage your databases and workflows. Query records, create entries, update data, and automate operations with customizable views and powerful tracking features.',
40
71
  label: 'Airtable',
41
72
  serverName: Klavis.McpServerName.Airtable,
42
73
  },
43
74
  {
75
+ author: 'Klavis',
76
+ authorUrl: 'https://klavis.io',
77
+ description:
78
+ 'Google Sheets is a web-based spreadsheet application that allows users to create, edit, and collaborate on spreadsheets online',
44
79
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/googlesheets.svg',
45
80
  identifier: 'google-sheets',
81
+ introduction:
82
+ 'Connect to Google Sheets to read, write, and analyze spreadsheet data. Perform calculations, generate reports, create charts, and manage tabular data collaboratively with AI assistance.',
46
83
  label: 'Google Sheets',
47
84
  serverName: Klavis.McpServerName.GoogleSheets,
48
85
  },
49
86
  {
87
+ author: 'Klavis',
88
+ authorUrl: 'https://klavis.io',
89
+ description:
90
+ 'Google Docs is a word processor included as part of the free, web-based Google Docs Editors suite',
50
91
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/googledocs.svg',
51
92
  identifier: 'google-docs',
93
+ introduction:
94
+ 'Integrate with Google Docs to create, edit, and manage documents. Write content, format text, collaborate in real-time, and access your documents through natural conversation.',
52
95
  label: 'Google Docs',
53
96
  serverName: Klavis.McpServerName.GoogleDocs,
54
97
  },
55
98
  {
99
+ author: 'Klavis',
100
+ authorUrl: 'https://klavis.io',
101
+ description: 'Enhanced GitHub MCP Server',
56
102
  icon: SiGithub,
57
103
  identifier: 'github',
104
+ introduction:
105
+ 'Connect to GitHub to manage repositories, issues, pull requests, and code. Search code, review changes, create branches, and collaborate on software development projects through conversational AI.',
58
106
  label: 'GitHub',
59
107
  serverName: Klavis.McpServerName.Github,
60
108
  },
61
109
  {
110
+ author: 'Klavis',
111
+ authorUrl: 'https://klavis.io',
112
+ description: 'Supabase official MCP Server',
62
113
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/supabase.svg',
63
114
  identifier: 'supabase',
115
+ introduction:
116
+ 'Integrate with Supabase to manage your database and backend services. Query data, manage authentication, handle storage, and interact with your application backend through natural conversation.',
64
117
  label: 'Supabase',
65
118
  serverName: Klavis.McpServerName.Supabase,
66
119
  },
67
120
  {
121
+ author: 'Klavis',
122
+ authorUrl: 'https://klavis.io',
123
+ description: 'Google Drive is a cloud storage service',
68
124
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/googledrive.svg',
69
125
  identifier: 'google-drive',
126
+ introduction:
127
+ 'Connect to Google Drive to access, organize, and manage your files. Search documents, upload files, share content, and navigate your cloud storage efficiently through AI assistance.',
70
128
  label: 'Google Drive',
71
129
  serverName: Klavis.McpServerName.GoogleDrive,
72
130
  },
73
131
  {
132
+ author: 'Klavis',
133
+ authorUrl: 'https://klavis.io',
134
+ description:
135
+ 'Slack is a messaging app for business that connects people to the information they need',
74
136
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/slack.svg',
75
137
  identifier: 'slack',
138
+ introduction:
139
+ 'Integrate with Slack to send messages, search conversations, and manage channels. Connect with your team, automate communication workflows, and access workspace information through natural language.',
76
140
  label: 'Slack',
77
141
  serverName: Klavis.McpServerName.Slack,
78
142
  },
79
143
  {
144
+ author: 'Klavis',
145
+ authorUrl: 'https://klavis.io',
146
+ description: 'Confluence is a team workspace where knowledge and collaboration meet',
80
147
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/confluence.svg',
81
148
  identifier: 'confluence',
149
+ introduction:
150
+ 'Connect to Confluence to access and manage team documentation. Search pages, create content, organize spaces, and build your knowledge base through conversational AI assistance.',
82
151
  label: 'Confluence',
83
152
  serverName: Klavis.McpServerName.Confluence,
84
153
  },
85
154
  {
155
+ author: 'Klavis',
156
+ authorUrl: 'https://klavis.io',
157
+ description: 'Jira is a project management and issue tracking tool developed by Atlassian',
86
158
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/jira.svg',
87
159
  identifier: 'jira',
160
+ introduction:
161
+ 'Integrate with Jira to manage issues, track progress, and organize sprints. Create tickets, update statuses, query project data, and streamline your development workflow through natural conversation.',
88
162
  label: 'Jira',
89
163
  serverName: Klavis.McpServerName.Jira,
90
164
  },
91
165
  {
166
+ author: 'Klavis',
167
+ authorUrl: 'https://klavis.io',
168
+ description:
169
+ 'ClickUp is a comprehensive project management and productivity platform that helps teams organize tasks, manage projects, and collaborate effectively with customizable workflows and powerful tracking features',
92
170
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/clickup.svg',
93
171
  identifier: 'clickup',
172
+ introduction:
173
+ 'Connect to ClickUp to manage tasks, track projects, and organize your work. Create tasks, update statuses, manage custom workflows, and collaborate with your team through natural language commands.',
94
174
  label: 'ClickUp',
95
175
  serverName: Klavis.McpServerName.Clickup,
96
176
  },
97
177
  {
178
+ author: 'Klavis',
179
+ authorUrl: 'https://klavis.io',
180
+ description:
181
+ 'Complete file management solution for Dropbox cloud storage. Upload, download, organize files and folders, manage sharing and collaboration, handle file versions, create file requests, and perform batch operations on your Dropbox files and folders',
98
182
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/dropbox.svg',
99
183
  identifier: 'dropbox',
184
+ introduction:
185
+ 'Integrate with Dropbox to access and manage your files. Upload, download, share files, manage folders, handle file versions, and organize your cloud storage through conversational AI.',
100
186
  label: 'Dropbox',
101
187
  serverName: Klavis.McpServerName.Dropbox,
102
188
  },
103
189
  {
190
+ author: 'Klavis',
191
+ authorUrl: 'https://klavis.io',
192
+ description: 'Figma is a collaborative interface design tool for web and mobile applications.',
104
193
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/figma.svg',
105
194
  identifier: 'figma',
195
+ introduction:
196
+ 'Connect to Figma to access design files and collaborate on projects. View designs, export assets, browse components, and manage your design workflow through natural conversation.',
106
197
  label: 'Figma',
107
198
  serverName: Klavis.McpServerName.Figma,
108
199
  },
109
200
  {
201
+ author: 'Klavis',
202
+ authorUrl: 'https://klavis.io',
203
+ description:
204
+ 'HubSpot is a developer and marketer of software products for inbound marketing, sales, and customer service',
110
205
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/hubspot.svg',
111
206
  identifier: 'hubspot',
207
+ introduction:
208
+ 'Integrate with HubSpot to manage contacts, deals, and marketing campaigns. Access CRM data, track pipelines, automate workflows, and streamline your sales and marketing operations.',
112
209
  label: 'HubSpot',
113
210
  serverName: Klavis.McpServerName.Hubspot,
114
211
  },
115
212
  {
213
+ author: 'Klavis',
214
+ authorUrl: 'https://klavis.io',
215
+ description:
216
+ 'OneDrive is a file hosting service and synchronization service operated by Microsoft',
116
217
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/onedrive.svg',
117
218
  identifier: 'onedrive',
219
+ introduction:
220
+ 'Connect to OneDrive to access and manage your Microsoft cloud files. Upload, download, share files, organize folders, and collaborate on documents through AI-powered assistance.',
118
221
  label: 'OneDrive',
119
222
  serverName: Klavis.McpServerName.Onedrive,
120
223
  },
121
224
  {
225
+ author: 'Klavis',
226
+ authorUrl: 'https://klavis.io',
227
+ description:
228
+ 'Outlook Mail is a web-based suite of webmail, contacts, tasks, and calendaring services from Microsoft.',
122
229
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/outlook.svg',
123
230
  identifier: 'outlook-mail',
231
+ introduction:
232
+ 'Integrate with Outlook Mail to read, send, and manage your Microsoft emails. Search messages, compose emails, manage folders, and organize your inbox through natural conversation.',
124
233
  label: 'Outlook Mail',
125
234
  serverName: Klavis.McpServerName.OutlookMail,
126
235
  },
127
236
  {
237
+ author: 'Klavis',
238
+ authorUrl: 'https://klavis.io',
239
+ description:
240
+ "Salesforce is the world's leading customer relationship management (CRM) platform that helps businesses connect with customers, partners, and potential customers",
128
241
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/salesforce.svg',
129
242
  identifier: 'salesforce',
243
+ introduction:
244
+ 'Connect to Salesforce to manage customer relationships and sales data. Query records, update opportunities, track leads, and automate your CRM workflows through natural language commands.',
130
245
  label: 'Salesforce',
131
246
  serverName: Klavis.McpServerName.Salesforce,
132
247
  },
133
248
  {
249
+ author: 'Klavis',
250
+ authorUrl: 'https://klavis.io',
251
+ description:
252
+ 'WhatsApp Business API integration that enables sending text messages, media, and managing conversations with customers. Perfect for customer support, marketing campaigns, and automated messaging workflows through the official WhatsApp Business platform.',
134
253
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/whatsapp.svg',
135
254
  identifier: 'whatsapp',
255
+ introduction:
256
+ 'Integrate with WhatsApp Business to send messages, manage conversations, and engage with customers. Automate messaging workflows and handle communications through conversational AI.',
136
257
  label: 'WhatsApp',
137
258
  serverName: Klavis.McpServerName.Whatsapp,
138
259
  },
139
260
  {
261
+ author: 'Klavis',
262
+ authorUrl: 'https://klavis.io',
263
+ description:
264
+ 'YouTube is a video-sharing platform where users can upload, share, and discover content. Access video information, transcripts, and metadata programmatically.',
140
265
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/youtube.svg',
141
266
  identifier: 'youtube',
267
+ introduction:
268
+ 'Connect to YouTube to search videos, access transcripts, and retrieve video information. Analyze content, extract metadata, and discover videos through natural conversation.',
142
269
  label: 'YouTube',
143
270
  serverName: Klavis.McpServerName.Youtube,
144
271
  },
145
272
  {
273
+ author: 'Klavis',
274
+ authorUrl: 'https://klavis.io',
275
+ description: 'Zendesk is a customer service software company',
146
276
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/zendesk.svg',
147
277
  identifier: 'zendesk',
278
+ introduction:
279
+ 'Integrate with Zendesk to manage support tickets and customer interactions. Create, update, and track support requests, access customer data, and streamline your support operations.',
148
280
  label: 'Zendesk',
149
281
  serverName: Klavis.McpServerName.Zendesk,
150
282
  },
151
283
  {
284
+ author: 'Klavis',
285
+ authorUrl: 'https://klavis.io',
286
+ description:
287
+ 'Cal.com is an open-source scheduling platform that helps you schedule meetings without the back-and-forth emails. Manage event types, bookings, availability, and integrate with calendars for seamless appointment scheduling',
152
288
  icon: SiCaldotcom,
153
289
  identifier: 'cal-com',
290
+ introduction:
291
+ 'Connect to Cal.com to manage your scheduling and appointments. View availability, book meetings, manage event types, and automate your calendar through natural conversation.',
154
292
  label: 'Cal.com',
155
293
  serverName: Klavis.McpServerName.CalCom,
156
294
  },
157
295
  ];
296
+
297
+ /**
298
+ * Get server config by identifier
299
+ */
300
+ export const getKlavisServerByServerIdentifier = (identifier: string) =>
301
+ KLAVIS_SERVER_TYPES.find((s) => s.identifier === identifier);
@@ -1,10 +1,22 @@
1
1
  import { type IconType, SiLinear, SiX } from '@icons-pack/react-simple-icons';
2
2
 
3
3
  export interface LobehubSkillProviderType {
4
+ /**
5
+ * Author/Developer of the integration
6
+ */
7
+ author: string;
8
+ /**
9
+ * Author's website URL
10
+ */
11
+ authorUrl?: string;
4
12
  /**
5
13
  * Whether this provider is visible by default in the UI
6
14
  */
7
15
  defaultVisible?: boolean;
16
+ /**
17
+ * Short description of the skill
18
+ */
19
+ description: string;
8
20
  /**
9
21
  * Icon - can be a URL string or a React icon component
10
22
  */
@@ -13,6 +25,10 @@ export interface LobehubSkillProviderType {
13
25
  * Provider ID (matches Market API, e.g., 'linear', 'microsoft')
14
26
  */
15
27
  id: string;
28
+ /**
29
+ * Detailed introduction of the skill
30
+ */
31
+ introduction: string;
16
32
  /**
17
33
  * Display label for the provider
18
34
  */
@@ -29,21 +45,39 @@ export interface LobehubSkillProviderType {
29
45
  */
30
46
  export const LOBEHUB_SKILL_PROVIDERS: LobehubSkillProviderType[] = [
31
47
  {
48
+ author: 'LobeHub',
49
+ authorUrl: 'https://lobehub.com',
32
50
  defaultVisible: true,
51
+ description:
52
+ 'Linear is a modern issue tracking and project management tool designed for high-performance teams to build better software faster',
33
53
  icon: SiLinear,
34
54
  id: 'linear',
55
+ introduction:
56
+ 'Bring the power of Linear directly into your AI assistant. Create and update issues, manage sprints, track project progress, and streamline your development workflow—all through natural conversation.',
35
57
  label: 'Linear',
36
58
  },
37
59
  {
60
+ author: 'LobeHub',
61
+ authorUrl: 'https://lobehub.com',
38
62
  defaultVisible: true,
63
+ description:
64
+ 'Outlook Calendar is an integrated scheduling tool within Microsoft Outlook that enables users to create appointments, organize meetings with others, and manage their time and events effectively.',
39
65
  icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/outlook.svg',
40
66
  id: 'microsoft',
67
+ introduction:
68
+ 'Integrate with Outlook Calendar to view, create, and manage your events seamlessly. Schedule meetings, check availability, set reminders, and coordinate your time—all through natural language commands.',
41
69
  label: 'Outlook Calendar',
42
70
  },
43
71
  {
72
+ author: 'LobeHub',
73
+ authorUrl: 'https://lobehub.com',
44
74
  defaultVisible: true,
75
+ description:
76
+ 'X (Twitter) is a social media platform for sharing real-time updates, news, and engaging with your audience through posts, replies, and direct messages.',
45
77
  icon: SiX,
46
78
  id: 'twitter',
79
+ introduction:
80
+ 'Connect to X (Twitter) to post tweets, manage your timeline, and engage with your audience. Create content, schedule posts, monitor mentions, and build your social media presence through conversational AI.',
47
81
  label: 'X (Twitter)',
48
82
  },
49
83
  ];
@@ -0,0 +1,17 @@
1
+ export enum RecommendedSkillType {
2
+ Klavis = 'klavis',
3
+ Lobehub = 'lobehub',
4
+ }
5
+
6
+ export interface RecommendedSkillItem {
7
+ id: string;
8
+ type: RecommendedSkillType;
9
+ }
10
+
11
+ export const RECOMMENDED_SKILLS: RecommendedSkillItem[] = [
12
+ { id: 'gmail', type: RecommendedSkillType.Klavis },
13
+ { id: 'notion', type: RecommendedSkillType.Klavis },
14
+ { id: 'google-drive', type: RecommendedSkillType.Klavis },
15
+ { id: 'google-calendar', type: RecommendedSkillType.Klavis },
16
+ { id: 'slack', type: RecommendedSkillType.Klavis },
17
+ ];
@@ -125,6 +125,44 @@ describe('anthropicHelpers', () => {
125
125
 
126
126
  await expect(buildAnthropicBlock(content)).rejects.toThrow('Invalid image URL: invalid-url');
127
127
  });
128
+
129
+ it('should return undefined for unsupported SVG image (base64)', async () => {
130
+ vi.mocked(parseDataUri).mockReturnValueOnce({
131
+ mimeType: 'image/svg+xml',
132
+ base64: 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==',
133
+ type: 'base64',
134
+ });
135
+
136
+ const content = {
137
+ type: 'image_url',
138
+ image_url: {
139
+ url: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==',
140
+ },
141
+ } as const;
142
+
143
+ const result = await buildAnthropicBlock(content);
144
+ expect(result).toBeUndefined();
145
+ });
146
+
147
+ it('should return undefined for unsupported SVG image (URL)', async () => {
148
+ vi.mocked(parseDataUri).mockReturnValueOnce({
149
+ mimeType: null,
150
+ base64: null,
151
+ type: 'url',
152
+ });
153
+ vi.mocked(imageUrlToBase64).mockResolvedValueOnce({
154
+ base64: 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==',
155
+ mimeType: 'image/svg+xml',
156
+ });
157
+
158
+ const content = {
159
+ type: 'image_url',
160
+ image_url: { url: 'https://example.com/image.svg' },
161
+ } as const;
162
+
163
+ const result = await buildAnthropicBlock(content);
164
+ expect(result).toBeUndefined();
165
+ });
128
166
  });
129
167
 
130
168
  describe('buildAnthropicMessage', () => {