Junyan Qin
b53750fde4
feat: add KnowledgeRetriever supports in plugin market
2025-11-28 16:47:55 +08:00
Junyan Qin
52e6135ae8
chore: i18n for knowledge retriever component name
2025-11-28 15:48:27 +08:00
Junyan Qin (Chin)
d09b823c49
refactor: switch webchat from sse to websocket ( #1808 )
...
* refactor: switch webchat from sse to websocket
* perf: image preview dialog
* chore: remove console.log
2025-11-28 14:54:01 +08:00
Copilot
a8481e43f0
feat: external knowledge bases ( #1783 )
...
* Initial plan
* Add backend support for external knowledge bases
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add frontend support for external knowledge bases with tabs UI
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add i18n translations for all languages (Traditional Chinese and Japanese)
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Update knowledge base tab list styling to match plugins page
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: margin-top for kb page
* refactor: switch RetrievalResultEntry to langbot_plugin pkg ones
* feat: knowledge retriever listing and creating
* stash
* refactor: unify sync mechanism for polymorphic components
* feat: use unified retireval result struct in retrieval test page
* chore: remove unused methods
* feat: retriever icon displaying
* feat: localagent retrieval with external kbs
* chore: bump version of langbot-plugin to 0.2.0b1
* fix: i18n
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-27 23:19:43 +08:00
Copilot
3c04eeaff9
perf: API integration dialog height and enable table scrolling ( #1805 )
...
* Initial plan
* Fix API integration dialog height and make tables scrollable
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Update API integration dialog height for improved layout
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-27 11:59:46 +08:00
Junyan Qin (Chin)
87131cf03b
Feat/pipeline enable all extensions ( #1807 )
...
* feat: 添加流水线扩展集成"启用所有"选项
为流水线的扩展集成配置添加独立的"启用所有插件"和"启用所有MCP服务器"选项。
主要变更:
- 数据模型:在 extensions_preferences 中添加 enable_all_plugins 和 enable_all_mcp_servers 字段
- 后端逻辑:修改 RuntimePipeline 以支持独立的启用所有选项,当启用时设置为 None 表示使用所有可用资源
- API 接口:更新 GET/PUT /api/v1/pipelines/{uuid}/extensions 以支持新字段
- 前端 UI:为插件和 MCP 服务器分别添加独立的开关控件
- 国际化:添加对应的中文翻译文本
- 默认行为:新创建的流水线默认启用所有插件和 MCP 服务器
🤖 Generated with [Claude Code](https://claude.com/claude-code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
* fix(i18n): add missing translations for pipeline extensions
Added translations for enable all plugins/MCP servers feature:
- en-US: English translations
- ja-JP: Japanese translations
- zh-Hant: Traditional Chinese translations
Generated with [Claude Code](https://claude.ai/code )
via [Happy](https://happy.engineering )
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: Happy <yesreply@happy.engineering >
* chore: add migration for enable all extensions config
* fix: bad renaming
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Happy <yesreply@happy.engineering >
2025-11-27 11:52:15 +08:00
Junyan Qin
7d51293594
chore: adjust star component style
2025-11-25 10:08:11 +08:00
Junyan Qin
b78b0e50bb
perf: plugin list padding bottom
2025-11-25 09:50:51 +08:00
Copilot
6b4c1a7dee
fix: plugin card source badge blocked by hover overlay ( #1802 )
...
* Initial plan
* Add View Source menu item and remove clickable source badges
- Add "viewSource" translation key to all language files
- Add View Source menu item to plugin card dropdown (only for GitHub/marketplace plugins)
- Remove onClick handlers and ExternalLink icons from source badges
- Keep the badges themselves for visual indication of plugin source
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Fix prettier formatting issue in PluginCardComponent
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-25 09:46:37 +08:00
Xiaoyu Su
2e1f16d7b4
feat: improvements for installed plugin card
...
* feat:Add README display to installed plugins
* chore: Increase the timeout of call_tool
* perf: smaller animation
* fix: add endpiont for readme
* feat: supports for multilingual READMEs
* feat: supports for getting readme img
* chore: bump langbot-plugin to 0.1.13b1
* perf: plugin card layout
* fix: import useTranslation linter error
---------
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-25 00:12:03 +08:00
Copilot
ace6d62d76
perf: Sort installed plugins: debug plugins first, then by installation time ( #1798 )
...
* Initial plan
* Implement plugin list sorting: debug plugins first, then by installation time
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Apply ruff formatting
* Add unit tests for plugin list sorting functionality
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Optimize database query to avoid N+1 problem and update tests
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Remove redundant assertion in test
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: plugin list sorting
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-23 13:46:45 +08:00
Junyan Qin
37296be67e
feat: refactor plugin market interaction and migrate to LangBot Space
...
- Replace plugin detail dialog with hover buttons interaction
- Add "Install" and "View Details" hover buttons on plugin cards
- Remove PluginDetailDialog component
- Update plugin marketplace URL format to /market/{author}/{plugin}
- Redirect all plugin detail views to LangBot Space
- Add i18n support for 4 languages (zh-Hans, en-US, zh-Hant, ja-JP)
- Optimize hover overlay styles for light/dark theme
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-21 14:23:22 +08:00
Junyan Qin
6c03a1dd31
perf: add supports for showing multilingual plugin README
2025-11-21 12:14:04 +08:00
Junyan Qin
9802a42a9e
perf: add request plugin button to marketplace
2025-11-20 23:41:45 +08:00
Junyan Qin
3182214663
fix: linter errors
2025-11-20 19:48:34 +08:00
Junyan Qin
20614b20b7
feat: add component filter to marketplace page
2025-11-20 19:46:33 +08:00
Junyan Qin
da323817f7
feat: add plugin components displaying in marketplace page
2025-11-20 18:50:00 +08:00
Junyan Qin
763c1a885c
perf: url display in webhook dialog
2025-11-20 16:48:06 +08:00
Junyan Qin
dbc09f46f4
perf: provider icon rounded in hovercard
2025-11-20 10:25:29 +08:00
Junyan Qin
cf43f09aff
perf: auto refresh logic in market
2025-11-20 10:18:28 +08:00
Copilot
c3c51b0fbf
perf: Add "Select All" checkbox to Plugin and MCP Server selection dialogs ( #1790 )
...
* Initial plan
* Add "Select All" checkbox to Plugin and MCP Server selection dialogs
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Make "Select All" text clickable by adding onClick handler to container
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-18 17:00:05 +08:00
Copilot
2e82f2b2d1
fix: plugin pages scroll entire viewport instead of content area only ( #1788 )
...
* Initial plan
* Fix scroll behavior in plugin pages - only content areas scroll now
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-18 11:16:41 +08:00
Copilot
c27ccb8475
feat(web): Add centered empty state messages to pipeline extension dialogs ( #1784 )
...
* Initial plan
* feat: add empty state messages in pipeline extension dialogs
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* fix: center empty state messages in dialog content area
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-16 23:37:40 +08:00
Copilot
abb2f7ae05
feat(web): Move Get Help button to account menu ( #1782 )
...
* Initial plan
* feat: Move Get Help button to account options menu
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-16 22:44:46 +08:00
Copilot
58369480e2
fix: add scrollbar to pipeline extensions tab when content overflows ( #1781 )
...
* Initial plan
* feat: add scrollbar to pipeline extensions tab
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-16 12:38:45 +08:00
Junyan Qin
cef24d8c4b
fix: linter errors
2025-11-11 18:24:06 +08:00
Junyan Qin
02892e57bb
fix: default is able to be deleted
2025-11-11 18:10:31 +08:00
Copilot
524c56a12b
feat(web): add hover card to embedding model selector in knowledge base form ( #1772 )
...
* Initial plan
* feat: Add hover card with model details to embedding model selector in KB form
- Updated KBForm.tsx to fetch full EmbeddingModel objects instead of simplified entities
- Added HoverCard component to show model details (icon, description, base URL, extra args) when hovering over embedding model options
- Removed unused IEmbeddingModelEntity import and embeddingModelNameList state
- Made the embedding model selector consistent with LLM model selector behavior
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
2025-11-11 17:52:30 +08:00
Copilot
1f877e2b8e
Optimize model provider selection with category grouping ( #1770 )
...
* Initial plan
* Add provider category field to requesters and implement grouped dropdown
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Fix TypeScript type and prettier formatting issues
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Rename provider categories: aggregator→maas, self_deployed→self-hosted
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Move provider_category from metadata to spec section
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: adjust category
* perf: adjust data structure
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-11 12:49:43 +08:00
Copilot
42421d171e
feat: Add webhook push functionality for bot message events ( #1768 )
...
* Initial plan
* Backend: Add webhook persistence model, service, API endpoints and message push functionality
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Frontend: Rename API Keys to API Integration, add webhook management UI with tabs
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Fix frontend linting issues and formatting
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* chore: perf ui in api integration dialog
* perf: webhook data pack structure
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-10 22:41:25 +08:00
Junyan Qin
b59bf62da5
perf: add rounded style for card icons
2025-11-10 11:07:37 +08:00
Junyan Qin
70147fcf5e
perf: i18n for pipeline extensions
2025-11-09 12:40:19 +08:00
Copilot
8d7976190d
Add pipeline copy button to duplicate existing configurations ( #1767 )
...
* Initial plan
* Add copy button to pipeline configuration page
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add i18n support for copy suffix and address code review feedback
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Show new pipeline name in copy toast and close dialog after copy
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: tool list style in extension tab
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-08 14:03:41 +08:00
Copilot
3edae3e678
feat: Support multiple knowledge base binding in pipelines ( #1766 )
...
* Initial plan
* Add multi-knowledge base support to pipelines
- Created database migration dbm010 to convert knowledge-base field from string to array
- Updated default pipeline config to use knowledge-bases array
- Updated pipeline metadata to use knowledge-base-multi-selector type
- Modified localagent.py to retrieve from multiple knowledge bases and concatenate results
- Added KNOWLEDGE_BASE_MULTI_SELECTOR type to frontend form entities
- Implemented multi-selector UI component with dialog for selecting multiple knowledge bases
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add i18n translations for multi-knowledge base selector
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Fix prettier formatting errors in DynamicFormItemComponent
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add accessibility attributes to knowledge base selector checkbox
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* fix: minor fix
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-08 13:45:09 +08:00
Junyan Qin
021c3bbb94
perf: show help link in api key mgm dialog
2025-11-07 18:48:49 +08:00
Copilot
a076ce5756
feat: Add API key authentication system for external service access ( #1757 )
...
* Initial plan
* feat: Add API key authentication system backend
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* feat: Add API key management UI in frontend sidebar
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* fix: Correct import paths in API controller groups
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* fix: Address code review feedback - add i18n and validation
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* refactor: Enable API key auth on existing endpoints instead of creating separate service API
- Added USER_TOKEN_OR_API_KEY auth type that accepts both authentication methods
- Removed separate /api/service/v1/models endpoints
- Updated existing endpoints (models, bots, pipelines) to accept API keys
- External services can now use API keys to access all existing LangBot APIs
- Updated documentation to reflect unified API approach
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* docs: Add OpenAPI specification for API key authenticated endpoints
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* chore: rename openapi spec
* perf: ui and i18n
* fix: ui bug
* chore: tidy docs
* chore: fix linter errors
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-07 14:08:11 +08:00
Copilot
9a997fbcb0
feat: Make API Key optional for custom model providers ( #1756 )
...
* Initial plan
* Make API Key optional for custom model providers
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Fix TypeScript type errors in test functions
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: ui
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-06 20:59:34 +08:00
Copilot
cb48221ed3
feat: add MCP server selection to pipeline extensions ( #1754 )
...
* Initial plan
* Backend: Add MCP server selection support to pipeline extensions
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Frontend: Add MCP server selection UI to pipeline extensions
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: ui
* perf: ui
* perf: desc for extension page
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-06 19:38:12 +08:00
Copilot
68eb0290e0
Fix: Enforce 10MB upload limit for knowledge base with clear error handling ( #1755 )
...
* Initial plan
* Set MAX_CONTENT_LENGTH to 10MB and add file size validation
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add custom error handler for 413 RequestEntityTooLarge
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Refactor: Extract MAX_FILE_SIZE constant to avoid duplication
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Fix file name extraction and add missing file validation
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Apply file size validation to all upload endpoints consistently
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Add frontend file size validation for knowledge base and plugin uploads
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* Remove file size validation from plugin uploads, keep only for knowledge base
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: ui
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-06 18:50:29 +08:00
Junyan Qin
61bc6a1dc2
feat: add supports for bot-selector config field
2025-11-06 15:36:43 +08:00
Junyan Qin (Chin)
4a84bf2355
Feat/pipeline specified plugins ( #1752 )
...
* feat: add persistence field
* feat: add basic extension page in pipeline config
* Merge pull request #1751 from langbot-app/copilot/add-plugin-extension-tab
Implement pipeline-scoped plugin binding system
* fix: i18n keys
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
2025-11-06 12:51:33 +08:00
Junyan Qin
411d082d2a
chore: fix linter errors
2025-11-06 00:07:43 +08:00
Junyan Qin
b529d07479
feat: plugin config file auto clean
2025-11-06 00:02:25 +08:00
Junyan Qin
d44df75e5c
chore: add hant and jp i18n
2025-11-05 23:54:34 +08:00
Junyan Qin
b74e07b608
feat: add and type plugin config fields
2025-11-05 23:48:59 +08:00
Junyan Qin
4a868afecd
fix: plugin mgm page mistakely refreshed when open acc option menu
2025-11-05 18:59:40 +08:00
Junyan Qin
1cb9560663
perf: only check connecting mcp server when it's enabled
2025-11-05 18:53:17 +08:00
Junyan Qin
8f878673ae
feat: add supports for showing image in plugin readme
2025-11-05 18:42:14 +08:00
Junyan Qin
74a5e37892
perf: plugin market layout
2025-11-05 18:34:40 +08:00
Alfons
f06e3d3efa
fix: disabling potential thinking param for model testing ( #1733 )
...
* fix: 禁用模型默认思考功能以减少测试延迟
- 调整导入语句顺序
- 为没有显式设置 thinking 参数的模型添加禁用配置
- 避免某些模型厂商默认开启思考功能导致的测试延迟
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
* fix: 确保 extra_args 为空时也禁用思考功能
修复条件判断逻辑,当 extra_args 为空字典时也会添加思考功能禁用配置
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
* perf(fe): increase default timeout
* perf: llm model testing prompt
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-05 15:52:17 +08:00