@lobehub/lobehub 2.0.0-next.48 → 2.0.0-next.49

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 (90) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +1 -1
  3. package/README.zh-CN.md +1 -1
  4. package/changelog/v1.json +12 -0
  5. package/locales/ar/chat.json +1 -0
  6. package/locales/ar/topic.json +1 -0
  7. package/locales/bg-BG/chat.json +1 -0
  8. package/locales/bg-BG/topic.json +1 -0
  9. package/locales/de-DE/chat.json +1 -0
  10. package/locales/de-DE/topic.json +1 -0
  11. package/locales/en-US/chat.json +1 -0
  12. package/locales/en-US/topic.json +1 -0
  13. package/locales/es-ES/chat.json +1 -0
  14. package/locales/es-ES/topic.json +1 -0
  15. package/locales/fa-IR/chat.json +1 -0
  16. package/locales/fa-IR/topic.json +1 -0
  17. package/locales/fr-FR/chat.json +1 -0
  18. package/locales/fr-FR/topic.json +1 -0
  19. package/locales/it-IT/chat.json +1 -0
  20. package/locales/it-IT/topic.json +1 -0
  21. package/locales/ja-JP/chat.json +1 -0
  22. package/locales/ja-JP/topic.json +1 -0
  23. package/locales/ko-KR/chat.json +1 -0
  24. package/locales/ko-KR/topic.json +1 -0
  25. package/locales/nl-NL/chat.json +1 -0
  26. package/locales/nl-NL/topic.json +1 -0
  27. package/locales/pl-PL/chat.json +1 -0
  28. package/locales/pl-PL/topic.json +1 -0
  29. package/locales/pt-BR/chat.json +1 -0
  30. package/locales/pt-BR/topic.json +1 -0
  31. package/locales/ru-RU/chat.json +1 -0
  32. package/locales/ru-RU/topic.json +1 -0
  33. package/locales/tr-TR/chat.json +1 -0
  34. package/locales/tr-TR/topic.json +1 -0
  35. package/locales/vi-VN/chat.json +1 -0
  36. package/locales/vi-VN/topic.json +1 -0
  37. package/locales/zh-CN/chat.json +1 -0
  38. package/locales/zh-CN/discover.json +1 -1
  39. package/locales/zh-CN/topic.json +1 -0
  40. package/locales/zh-TW/chat.json +1 -0
  41. package/locales/zh-TW/topic.json +1 -0
  42. package/package.json +9 -3
  43. package/packages/agent-runtime/src/core/InterventionChecker.ts +5 -16
  44. package/packages/agent-runtime/src/core/__tests__/InterventionChecker.test.ts +27 -80
  45. package/packages/agent-runtime/src/core/__tests__/runtime.test.ts +32 -13
  46. package/packages/agent-runtime/src/core/runtime.ts +7 -3
  47. package/packages/agent-runtime/src/types/event.ts +2 -1
  48. package/packages/agent-runtime/src/types/generalAgent.ts +1 -0
  49. package/packages/agent-runtime/src/types/instruction.ts +3 -2
  50. package/packages/agent-runtime/src/types/state.ts +3 -1
  51. package/packages/conversation-flow/src/transformation/FlatListBuilder.ts +4 -1
  52. package/packages/database/src/models/message.ts +3 -0
  53. package/packages/obervability-otel/src/node.ts +15 -1
  54. package/packages/types/src/message/common/base.ts +2 -2
  55. package/packages/types/src/message/common/tools.ts +16 -10
  56. package/packages/types/src/message/ui/chat.ts +7 -1
  57. package/packages/types/src/tool/intervention.ts +2 -3
  58. package/packages/types/src/user/settings/tool.ts +15 -28
  59. package/renovate.json +28 -11
  60. package/src/app/[variants]/(main)/chat/components/topic/features/Topic/TopicListContent/TopicItem/TopicContent.tsx +1 -1
  61. package/src/app/[variants]/(main)/chat/session/features/SessionListContent/List/Item/Actions.tsx +1 -1
  62. package/src/features/Conversation/Messages/Group/GroupChildren.tsx +20 -15
  63. package/src/features/Conversation/Messages/Group/GroupContext.tsx +15 -0
  64. package/src/features/Conversation/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +2 -4
  65. package/src/features/Conversation/Messages/Group/Tool/Inspector/ToolTitle.tsx +3 -5
  66. package/src/features/Conversation/Messages/Group/Tool/Inspector/index.tsx +19 -7
  67. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/index.tsx +14 -12
  68. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/ApprovalActions.tsx +143 -0
  69. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/KeyValueEditor.tsx +213 -0
  70. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/ModeSelector.tsx +134 -0
  71. package/src/features/Conversation/Messages/Group/Tool/Render/Intervention/index.tsx +99 -0
  72. package/src/features/Conversation/Messages/Group/Tool/Render/RejectedResponse.tsx +45 -0
  73. package/src/features/Conversation/Messages/Group/Tool/Render/index.tsx +23 -1
  74. package/src/features/Conversation/Messages/Group/Tool/index.tsx +42 -18
  75. package/src/features/Conversation/Messages/Group/Tools.tsx +3 -1
  76. package/src/locales/default/chat.ts +22 -0
  77. package/src/locales/default/common.ts +1 -0
  78. package/src/locales/default/topic.ts +1 -0
  79. package/src/server/routers/lambda/message.ts +4 -1
  80. package/src/server/services/message/index.ts +13 -0
  81. package/src/services/message/index.ts +17 -2
  82. package/src/store/chat/agents/GeneralChatAgent.ts +141 -24
  83. package/src/store/chat/agents/__tests__/GeneralChatAgent.test.ts +605 -0
  84. package/src/store/chat/agents/createAgentExecutors.ts +144 -26
  85. package/src/store/chat/agents/createToolEngine.ts +22 -0
  86. package/src/store/chat/slices/aiChat/actions/conversationControl.ts +106 -0
  87. package/src/store/chat/slices/aiChat/actions/streamingExecutor.ts +54 -26
  88. package/src/store/chat/slices/message/reducer.ts +2 -1
  89. package/src/store/chat/slices/plugin/actions/optimisticUpdate.ts +26 -1
  90. package/src/store/user/slices/settings/action.ts +15 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.49](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.48...v2.0.0-next.49)
6
+
7
+ <sup>Released on **2025-11-13**</sup>
8
+
9
+ #### ✨ Features
10
+
11
+ - **misc**: Support tool invention.
12
+
13
+ #### 🐛 Bug Fixes
14
+
15
+ - **misc**: Update lost i18n files.
16
+
17
+ <br/>
18
+
19
+ <details>
20
+ <summary><kbd>Improvements and Fixes</kbd></summary>
21
+
22
+ #### What's improved
23
+
24
+ - **misc**: Support tool invention, closes [#10182](https://github.com/lobehub/lobe-chat/issues/10182) ([4dca708](https://github.com/lobehub/lobe-chat/commit/4dca708))
25
+
26
+ #### What's fixed
27
+
28
+ - **misc**: Update lost i18n files, closes [#10179](https://github.com/lobehub/lobe-chat/issues/10179) ([b69c7ff](https://github.com/lobehub/lobe-chat/commit/b69c7ff))
29
+
30
+ </details>
31
+
32
+ <div align="right">
33
+
34
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
35
+
36
+ </div>
37
+
5
38
  ## [Version 2.0.0-next.48](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.47...v2.0.0-next.48)
6
39
 
7
40
  <sup>Released on **2025-11-12**</sup>
package/README.md CHANGED
@@ -352,7 +352,7 @@ In addition, these plugins are not limited to news aggregation, but can also ext
352
352
  | [Web](https://lobechat.com/discover/plugin/web)<br/><sup>By **Proghit** on **2025-01-24**</sup> | Smart web search that reads and analyzes pages to deliver comprehensive answers from Google results.<br/>`web` `search` |
353
353
  | [Bing_websearch](https://lobechat.com/discover/plugin/Bingsearch-identifier)<br/><sup>By **FineHow** on **2024-12-22**</sup> | Search for information from the internet base BingApi<br/>`bingsearch` |
354
354
 
355
- > 📊 Total plugins: [<kbd>**42**</kbd>](https://lobechat.com/discover/plugins)
355
+ > 📊 Total plugins: [<kbd>**41**</kbd>](https://lobechat.com/discover/plugins)
356
356
 
357
357
  <!-- PLUGIN LIST -->
358
358
 
package/README.zh-CN.md CHANGED
@@ -345,7 +345,7 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
345
345
  | [网页](https://lobechat.com/discover/plugin/web)<br/><sup>By **Proghit** on **2025-01-24**</sup> | 智能网页搜索,读取和分析页面,以提供来自 Google 结果的全面答案。<br/>`网页` `搜索` |
346
346
  | [必应网页搜索](https://lobechat.com/discover/plugin/Bingsearch-identifier)<br/><sup>By **FineHow** on **2024-12-22**</sup> | 通过 BingApi 搜索互联网上的信息<br/>`bingsearch` |
347
347
 
348
- > 📊 Total plugins: [<kbd>**42**</kbd>](https://lobechat.com/discover/plugins)
348
+ > 📊 Total plugins: [<kbd>**41**</kbd>](https://lobechat.com/discover/plugins)
349
349
 
350
350
  <!-- PLUGIN LIST -->
351
351
 
package/changelog/v1.json CHANGED
@@ -1,4 +1,16 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "features": [
5
+ "Support tool invention."
6
+ ],
7
+ "fixes": [
8
+ "Update lost i18n files."
9
+ ]
10
+ },
11
+ "date": "2025-11-13",
12
+ "version": "2.0.0-next.49"
13
+ },
2
14
  {
3
15
  "children": {},
4
16
  "date": "2025-11-12",
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "لا يوجد أعضاء مطابقون",
241
241
  "noMembersYet": "لا يوجد أعضاء في هذه المجموعة بعد. انقر على زر + لدعوة المساعدين.",
242
242
  "noSelectedAgents": "لم يتم اختيار أي أعضاء بعد",
243
+ "openInNewWindow": "افتح الصفحة في نافذة جديدة",
243
244
  "owner": "مالك المجموعة",
244
245
  "pin": "تثبيت",
245
246
  "pinOff": "إلغاء التثبيت",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "سيتم حذف المواضيع غير المفضلة، ولن يمكن استعادتها بعد الحذف، يرجى توخي الحذر.",
7
7
  "duplicate": "إنشاء نسخة",
8
8
  "export": "تصدير الموضوع",
9
+ "openInNewWindow": "افتح الصفحة في نافذة جديدة",
9
10
  "removeAll": "حذف جميع المواضيع",
10
11
  "removeUnstarred": "حذف المواضيع غير المفضلة"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Няма съвпадащи членове",
241
241
  "noMembersYet": "В тази група все още няма членове. Щракнете върху бутона +, за да поканите асистенти.",
242
242
  "noSelectedAgents": "Все още не са избрани членове",
243
+ "openInNewWindow": "Отвори в нов прозорец",
243
244
  "owner": "Собственик на групата",
244
245
  "pin": "Закачи",
245
246
  "pinOff": "Откачи",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Ще бъдат изтрити темите, които не са запазени. След изтриването им не може да се възстановят. Моля, действайте внимателно.",
7
7
  "duplicate": "Създаване на копие",
8
8
  "export": "Експортиране на темата",
9
+ "openInNewWindow": "Отвори страницата в нов прозорец",
9
10
  "removeAll": "Изтриване на всички теми",
10
11
  "removeUnstarred": "Изтриване на незапазените теми"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Keine passenden Mitglieder gefunden",
241
241
  "noMembersYet": "Diese Gruppe hat noch keine Mitglieder. Klicken Sie auf die +-Schaltfläche, um Assistenten einzuladen.",
242
242
  "noSelectedAgents": "Noch keine Mitglieder ausgewählt",
243
+ "openInNewWindow": "In neuem Fenster öffnen",
243
244
  "owner": "Gruppeninhaber",
244
245
  "pin": "Anheften",
245
246
  "pinOff": "Anheften aufheben",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Nicht markierte Themen werden gelöscht. Nach dem Löschen können sie nicht wiederhergestellt werden. Bitte vorsichtig handeln.",
7
7
  "duplicate": "Kopie erstellen",
8
8
  "export": "Thema exportieren",
9
+ "openInNewWindow": "Seite in einem neuen Fenster öffnen",
9
10
  "removeAll": "Alle Themen löschen",
10
11
  "removeUnstarred": "Nicht markierte Themen löschen"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "No matching members found",
241
241
  "noMembersYet": "This group doesn't have any members yet. Click the + button to invite assistants.",
242
242
  "noSelectedAgents": "No members selected yet",
243
+ "openInNewWindow": "Open in a new window",
243
244
  "owner": "Group Owner",
244
245
  "pin": "Pin",
245
246
  "pinOff": "Unpin",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "You are about to delete unstarred topics. This action cannot be undone, please proceed with caution.",
7
7
  "duplicate": "Create Copy",
8
8
  "export": "Export Topics",
9
+ "openInNewWindow": "Open in a new window",
9
10
  "removeAll": "Delete All Topics",
10
11
  "removeUnstarred": "Delete Unstarred Topics"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "No se encontraron miembros coincidentes",
241
241
  "noMembersYet": "Este grupo aún no tiene miembros. Haz clic en el botón + para invitar asistentes.",
242
242
  "noSelectedAgents": "Aún no se han seleccionado miembros",
243
+ "openInNewWindow": "Abrir en una nueva ventana",
243
244
  "owner": "Propietario del grupo",
244
245
  "pin": "Fijar",
245
246
  "pinOff": "Desfijar",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Se eliminarán los temas no favoritos. Una vez eliminados, no se podrán recuperar. Por favor, actúe con precaución.",
7
7
  "duplicate": "Crear copia",
8
8
  "export": "Exportar tema",
9
+ "openInNewWindow": "Abrir en una nueva ventana",
9
10
  "removeAll": "Eliminar todos los temas",
10
11
  "removeUnstarred": "Eliminar temas no favoritos"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "عضوی مطابق با جستجو یافت نشد",
241
241
  "noMembersYet": "این گروه هنوز عضوی ندارد. برای دعوت دستیاران، روی دکمهٔ + کلیک کنید.",
242
242
  "noSelectedAgents": "هنوز هیچ عضوی انتخاب نشده است",
243
+ "openInNewWindow": "باز کردن در یک پنجره جدید",
243
244
  "owner": "صاحب گروه",
244
245
  "pin": "سنجاق کردن",
245
246
  "pinOff": "لغو سنجاق",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "در حال حذف موضوعات بدون علامت، پس از حذف قابل بازیابی نخواهد بود، لطفاً با احتیاط عمل کنید.",
7
7
  "duplicate": "ایجاد نسخه",
8
8
  "export": "صادرات موضوع",
9
+ "openInNewWindow": "باز کردن صفحه در پنجره‌ای جدید",
9
10
  "removeAll": "حذف تمام موضوعات",
10
11
  "removeUnstarred": "حذف موضوعات بدون علامت"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Aucun membre correspondant trouvé",
241
241
  "noMembersYet": "Ce groupe n'a pas encore de membres. Cliquez sur le bouton + pour inviter des assistants.",
242
242
  "noSelectedAgents": "Aucun membre sélectionné",
243
+ "openInNewWindow": "Ouvrir dans une nouvelle fenêtre",
243
244
  "owner": "Propriétaire du groupe",
244
245
  "pin": "Épingler",
245
246
  "pinOff": "Désépingler",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Vous allez supprimer les sujets non favoris. Cette action est irréversible, veuillez agir avec prudence.",
7
7
  "duplicate": "Créer une copie",
8
8
  "export": "Exporter le sujet",
9
+ "openInNewWindow": "Ouvrir dans une nouvelle fenêtre",
9
10
  "removeAll": "Supprimer tous les sujets",
10
11
  "removeUnstarred": "Supprimer les sujets non favoris"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Nessun membro corrispondente trovato",
241
241
  "noMembersYet": "Questo gruppo non ha ancora membri. Clicca sul pulsante + per invitare assistenti.",
242
242
  "noSelectedAgents": "Nessun membro selezionato",
243
+ "openInNewWindow": "Apri in una nuova finestra",
243
244
  "owner": "Proprietario del gruppo",
244
245
  "pin": "Fissa in alto",
245
246
  "pinOff": "Annulla fissaggio in alto",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Stai per eliminare i temi non contrassegnati. Dopo l'eliminazione, non sarà possibile recuperarli. Procedi con cautela.",
7
7
  "duplicate": "Crea una copia",
8
8
  "export": "Esporta il tema",
9
+ "openInNewWindow": "Apri in una nuova finestra",
9
10
  "removeAll": "Elimina tutti i temi",
10
11
  "removeUnstarred": "Elimina i temi non contrassegnati"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "一致するメンバーが見つかりません",
241
241
  "noMembersYet": "このグループにはまだメンバーがいません。「+」ボタンをクリックしてアシスタントを招待してください。",
242
242
  "noSelectedAgents": "メンバーがまだ選択されていません",
243
+ "openInNewWindow": "新しいウィンドウで開く",
243
244
  "owner": "グループ管理者",
244
245
  "pin": "ピン留め",
245
246
  "pinOff": "ピン留め解除",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "未お気に入りのトピックを削除しようとしています。削除後は復元できませんので、慎重に操作してください。",
7
7
  "duplicate": "コピーを作成",
8
8
  "export": "トピックをエクスポート",
9
+ "openInNewWindow": "新しいウィンドウで開く",
9
10
  "removeAll": "すべてのトピックを削除",
10
11
  "removeUnstarred": "未お気に入りのトピックを削除"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "일치하는 멤버가 없습니다",
241
241
  "noMembersYet": "이 그룹에는 아직 구성원이 없습니다. + 버튼을 눌러 어시스턴트를 초대하세요.",
242
242
  "noSelectedAgents": "아직 멤버를 선택하지 않았습니다",
243
+ "openInNewWindow": "새 창에서 열기",
243
244
  "owner": "그룹 소유자",
244
245
  "pin": "고정",
245
246
  "pinOff": "고정 해제",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "즐겨찾기하지 않은 주제를 삭제하려고 합니다. 삭제 후에는 복구할 수 없으니 신중하게 진행해 주세요.",
7
7
  "duplicate": "복사본 만들기",
8
8
  "export": "주제 내보내기",
9
+ "openInNewWindow": "새 창에서 열기",
9
10
  "removeAll": "모든 주제 삭제",
10
11
  "removeUnstarred": "즐겨찾기하지 않은 주제 삭제"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Geen overeenkomende leden gevonden",
241
241
  "noMembersYet": "Deze groep heeft nog geen leden. Klik op de + knop om assistenten uit te nodigen.",
242
242
  "noSelectedAgents": "Nog geen leden geselecteerd",
243
+ "openInNewWindow": "In een nieuw venster openen",
243
244
  "owner": "Groepseigenaar",
244
245
  "pin": "Vastzetten",
245
246
  "pinOff": "Vastzetten uitschakelen",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "U staat op het punt om niet-gemarkeerde onderwerpen te verwijderen. Na verwijdering kunnen ze niet worden hersteld, wees voorzichtig.",
7
7
  "duplicate": "Maak een kopie",
8
8
  "export": "Exporteer onderwerp",
9
+ "openInNewWindow": "Pagina in een nieuw venster openen",
9
10
  "removeAll": "Verwijder alle onderwerpen",
10
11
  "removeUnstarred": "Verwijder niet-gemarkeerde onderwerpen"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Brak pasujących członków",
241
241
  "noMembersYet": "W tej grupie nie ma jeszcze żadnych członków. Kliknij przycisk +, aby zaprosić asystentów.",
242
242
  "noSelectedAgents": "Nie wybrano jeszcze członków",
243
+ "openInNewWindow": "Otwórz na osobnej stronie",
243
244
  "owner": "Właściciel grupy",
244
245
  "pin": "Przypnij",
245
246
  "pinOff": "Odepnij",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Zaraz usuniesz tematy, które nie są ulubione. Po usunięciu nie będzie możliwości ich przywrócenia, proszę działać ostrożnie.",
7
7
  "duplicate": "Utwórz kopię",
8
8
  "export": "Eksportuj temat",
9
+ "openInNewWindow": "Otwórz stronę w nowym oknie",
9
10
  "removeAll": "Usuń wszystkie tematy",
10
11
  "removeUnstarred": "Usuń tematy, które nie są ulubione"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Nenhum membro correspondente encontrado",
241
241
  "noMembersYet": "Este grupo ainda não tem membros. Clique no botão + para convidar assistentes.",
242
242
  "noSelectedAgents": "Nenhum membro selecionado ainda",
243
+ "openInNewWindow": "Abrir em uma nova janela",
243
244
  "owner": "Proprietário do grupo",
244
245
  "pin": "Fixar",
245
246
  "pinOff": "Desafixar",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Você está prestes a remover tópicos não favoritos. Após a exclusão, não será possível recuperar. Por favor, proceda com cautela.",
7
7
  "duplicate": "Criar cópia",
8
8
  "export": "Exportar tópicos",
9
+ "openInNewWindow": "Abrir em uma nova janela",
9
10
  "removeAll": "Remover todos os tópicos",
10
11
  "removeUnstarred": "Remover tópicos não favoritos"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Нет подходящих участников",
241
241
  "noMembersYet": "В этой группе ещё нет участников. Нажмите кнопку «+», чтобы пригласить помощников.",
242
242
  "noSelectedAgents": "Участники ещё не выбраны",
243
+ "openInNewWindow": "Открыть в новом окне",
243
244
  "owner": "Владелец группы",
244
245
  "pin": "Закрепить",
245
246
  "pinOff": "Открепить",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Вы собираетесь удалить неотмеченные темы. После удаления их нельзя будет восстановить, пожалуйста, будьте осторожны.",
7
7
  "duplicate": "Создать копию",
8
8
  "export": "Экспортировать тему",
9
+ "openInNewWindow": "Открыть страницу в новом окне",
9
10
  "removeAll": "Удалить все темы",
10
11
  "removeUnstarred": "Удалить неотмеченные темы"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Eşleşen üye bulunamadı",
241
241
  "noMembersYet": "Bu grupta henüz üye yok. Asistanı davet etmek için + düğmesine tıklayın.",
242
242
  "noSelectedAgents": "Henüz üye seçilmedi",
243
+ "openInNewWindow": "Sayfayı yeni pencerede aç",
243
244
  "owner": "Grup sahibi",
244
245
  "pin": "Pin",
245
246
  "pinOff": "Unpin",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Favori olmayan konular silinecek, silindikten sonra geri alınamaz, lütfen dikkatli olun.",
7
7
  "duplicate": "Kopya Oluştur",
8
8
  "export": "Konuları Dışa Aktar",
9
+ "openInNewWindow": "Sayfayı yeni pencerede aç",
9
10
  "removeAll": "Tüm Konuları Sil",
10
11
  "removeUnstarred": "Favori Olmayan Konuları Sil"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "Không tìm thấy thành viên phù hợp",
241
241
  "noMembersYet": "Nhóm này chưa có thành viên nào. Nhấp vào nút + để mời trợ lý.",
242
242
  "noSelectedAgents": "Chưa chọn thành viên nào",
243
+ "openInNewWindow": "Mở trong cửa sổ mới",
243
244
  "owner": "Chủ nhóm",
244
245
  "pin": "Ghim",
245
246
  "pinOff": "Bỏ ghim",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "Sắp xóa các chủ đề chưa được đánh dấu, sau khi xóa sẽ không thể khôi phục, xin hãy cẩn thận.",
7
7
  "duplicate": "Tạo bản sao",
8
8
  "export": "Xuất chủ đề",
9
+ "openInNewWindow": "Mở trang trong cửa sổ mới",
9
10
  "removeAll": "Xóa tất cả các chủ đề",
10
11
  "removeUnstarred": "Xóa các chủ đề chưa được đánh dấu"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "没有匹配的成员",
241
241
  "noMembersYet": "此群组还没有成员。点击 + 按钮邀请助手。",
242
242
  "noSelectedAgents": "还未选择成员",
243
+ "openInNewWindow": "单独打开页面",
243
244
  "owner": "群主",
244
245
  "pin": "置顶",
245
246
  "pinOff": "取消置顶",
@@ -76,7 +76,6 @@
76
76
  "title": "助手名称",
77
77
  "tokenUsage": "Token 使用量"
78
78
  },
79
- "suggestions": "相关推荐",
80
79
  "status": {
81
80
  "archived": {
82
81
  "reasons": {
@@ -101,6 +100,7 @@
101
100
  "title": "助手正在审核中"
102
101
  }
103
102
  },
103
+ "suggestions": "相关推荐",
104
104
  "systemRole": "助手设定",
105
105
  "tokenUsage": "助手提示词 Token 使用量",
106
106
  "try": "试一下",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "即将删除未收藏话题,删除后将不可恢复,请谨慎操作。",
7
7
  "duplicate": "创建副本",
8
8
  "export": "导出话题",
9
+ "openInNewWindow": "单独打开页面",
9
10
  "removeAll": "删除全部话题",
10
11
  "removeUnstarred": "删除未收藏话题"
11
12
  },
@@ -240,6 +240,7 @@
240
240
  "noMatchingAgents": "沒有符合的成員",
241
241
  "noMembersYet": "此群組尚未有成員。請點選 + 按鈕邀請助理。",
242
242
  "noSelectedAgents": "尚未選擇成員",
243
+ "openInNewWindow": "在新視窗中開啟",
243
244
  "owner": "群組擁有者",
244
245
  "pin": "置頂",
245
246
  "pinOff": "取消置頂",
@@ -6,6 +6,7 @@
6
6
  "confirmRemoveUnstarred": "即將刪除未收藏話題,刪除後將不可恢復,請謹慎操作。",
7
7
  "duplicate": "創建副本",
8
8
  "export": "匯出話題",
9
+ "openInNewWindow": "在新視窗中開啟頁面",
9
10
  "removeAll": "刪除全部話題",
10
11
  "removeUnstarred": "刪除未收藏話題"
11
12
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.48",
3
+ "version": "2.0.0-next.49",
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",
@@ -123,6 +123,9 @@
123
123
  "eslint --fix"
124
124
  ]
125
125
  },
126
+ "overrides": {
127
+ "eta": "4.0.1"
128
+ },
126
129
  "dependencies": {
127
130
  "@ant-design/icons": "^5.6.1",
128
131
  "@ant-design/pro-components": "^2.8.10",
@@ -168,7 +171,7 @@
168
171
  "@lobehub/chat-plugins-gateway": "^1.9.0",
169
172
  "@lobehub/editor": "^1.22.0",
170
173
  "@lobehub/icons": "^2.43.1",
171
- "@lobehub/market-sdk": "beta",
174
+ "@lobehub/market-sdk": "^0.23.0",
172
175
  "@lobehub/tts": "^2.0.1",
173
176
  "@lobehub/ui": "^2.13.8",
174
177
  "@modelcontextprotocol/sdk": "^1.21.1",
@@ -397,6 +400,9 @@
397
400
  "pnpm": {
398
401
  "onlyBuiltDependencies": [
399
402
  "@vercel/speed-insights"
400
- ]
403
+ ],
404
+ "overrides": {
405
+ "eta": "4.0.1"
406
+ }
401
407
  }
402
408
  }
@@ -17,36 +17,25 @@ export class InterventionChecker {
17
17
  * @returns Policy to apply
18
18
  */
19
19
  static shouldIntervene(params: ShouldInterveneParams): HumanInterventionPolicy {
20
- const { config, toolArgs = {}, confirmedHistory = [], toolKey } = params;
20
+ const { config, toolArgs = {} } = params;
21
21
 
22
22
  // No config means never intervene (auto-execute)
23
23
  if (!config) return 'never';
24
24
 
25
25
  // Simple policy string
26
26
  if (typeof config === 'string') {
27
- // For 'first' policy, check if already confirmed
28
- if (config === 'first' && toolKey && confirmedHistory.includes(toolKey)) {
29
- return 'never';
30
- }
31
27
  return config;
32
28
  }
33
29
 
34
30
  // Array of rules - find first matching rule
35
31
  for (const rule of config) {
36
32
  if (this.matchesRule(rule, toolArgs)) {
37
- const policy = rule.policy;
38
-
39
- // For 'first' policy, check if already confirmed
40
- if (policy === 'first' && toolKey && confirmedHistory.includes(toolKey)) {
41
- return 'never';
42
- }
43
-
44
- return policy;
33
+ return rule.policy;
45
34
  }
46
35
  }
47
36
 
48
- // No rule matched - default to always for safety
49
- return 'always';
37
+ // No rule matched - default to require for safety
38
+ return 'require';
50
39
  }
51
40
 
52
41
  /**
@@ -151,7 +140,7 @@ export class InterventionChecker {
151
140
  }
152
141
 
153
142
  /**
154
- * Generate simple hash of arguments for 'once' policy
143
+ * Generate simple hash of arguments for tool tracking
155
144
  *
156
145
  * @param args - Tool call arguments
157
146
  * @returns Hash string