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
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
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
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
9802a42a9e
perf: add request plugin button to marketplace
2025-11-20 23:41:45 +08:00
Junyan Qin
20614b20b7
feat: add component filter to marketplace page
2025-11-20 19:46:33 +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
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
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
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
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
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
b74e07b608
feat: add and type plugin config fields
2025-11-05 23:48:59 +08:00
Guanchao Wang
1adaa93034
Fix/mcp ( #1746 )
...
* fix: mcp session cannot be enabled
* fix: error message
* perf: ui
* perf: ui
---------
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-11-04 22:02:40 +08:00
Copilot
7699ba3cae
feat: add supports for install plugin from GitHub repo releases
...
Add GitHub release installation for plugins
2025-11-04 21:09:14 +08:00
Junyan Qin (Chin)
3d12632c9f
perf: config reset logic ( #1742 )
...
* fix: inherit settings from existing settings
* feat: add optional data cleanup checkbox to plugin uninstall dialog (#1743 )
* Initial plan
* Add checkbox for plugin config/storage deletion
- Add delete_data parameter to backend API endpoint
- Update delete_plugin flow to clean up settings and binary storage
- Add checkbox in uninstall dialog using shadcn/ui
- Add translations for checkbox label in all languages
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com >
* perf: param list
---------
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 >
* chore: fix linter errors
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
2025-11-04 18:47:38 +08:00
Junyan Qin
bcf89ca434
perf: store pipeline sort method
2025-11-04 18:47:37 +08:00
Junyan Qin
5e2f677d0b
perf: add component list in plugin detail dialog
2025-11-04 18:47:37 +08:00
Junyan Qin
c0f04e4f20
chore: update
2025-11-04 18:35:21 +08:00
Junyan Qin
d3279b9823
perf: update sidebar title
2025-11-04 18:33:13 +08:00
Junyan Qin
1046f3c2aa
perf: mcp server testing and refreshing
2025-11-04 18:14:59 +08:00
Junyan Qin
1afecf01e4
perf: mcp server status checking logic
2025-11-04 17:32:05 +08:00
Junyan Qin
c1c03f11b4
refactor: mcp server datastructure
2025-11-04 16:13:03 +08:00
wangcham
76831579ad
fix: error message in mcp card
2025-11-02 13:57:37 +00:00
wangcham
e17b0cf5c5
fix: i18n and mcp test
2025-10-30 15:17:06 +00:00
wangcham
f2647316a5
fix: mcp test error
2025-10-30 15:01:25 +00:00
WangCham
d32f783392
fix: run lint
2025-10-28 16:14:31 +08:00
WangCham
4d3610cdf7
feat: add i18n
2025-10-28 14:14:46 +08:00
wangcham
8345edd9f7
fix: status icon
2025-10-25 01:58:52 +00:00
wangcham
e3821b3f09
feat: add mcp servers
2025-10-24 17:48:44 +00:00
wangcham
075091ed06
fix: mcp refactor
2025-10-23 15:47:44 +00:00
WangCham
345eccf04c
feat: change sse frontend
2025-10-22 19:09:39 +08:00
wangcham
68372a4b7a
feat: add mcp from sse on frontend
2025-10-13 12:51:58 +00:00
WangCham
d65f862c36
feat: add dialog
2025-10-13 18:21:46 +08:00
Junyan Qin
c0d56aa905
feat: code by huntun
2025-09-29 23:57:04 +08:00
Bruce
3f59bfac5c
feat: add plugin enable config ( #1678 )
...
* add plugin enable config
* fix logic error
* improve codes
* feat: add plugin system status checking api
* perf: add ui displaying plugin system status
* chore: fix linter errors
---------
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
2025-09-22 22:49:22 +08:00
Junyan Qin
e7fe41810e
fix: dark mode for plugins management page
2025-08-26 22:40:32 +08:00
Junyan Qin
64764c412b
Merge branch 'rc/new-plugin' into refactor/new-plugin-system
2025-08-24 21:40:02 +08:00
devin-ai-integration[bot]
83ff64698b
feat: add ZIP file upload support for knowledge base ( #1626 )
...
* feat: add ZIP file upload support for knowledge base
- Add _parse_zip method to FileParser class using zipfile library
- Support extraction and processing of TXT, PDF, DOCX, MD, HTML files from ZIP
- Update FileUploadZone to accept .zip files
- Add ZIP format to supported formats in internationalization files
- Implement error handling for invalid ZIP files and unsupported content
- Follow existing async parsing patterns and error handling conventions
Co-Authored-By: Rock <rockchinq@gmail.com >
* refactor: modify ZIP processing to store each document as separate file
- Remove _parse_zip method from FileParser as ZIP handling now occurs at knowledge base level
- Add _store_zip_file method to RuntimeKnowledgeBase to extract and store each document separately
- Each document in ZIP is now stored as individual file entry in knowledge base
- Process ZIP files in memory using io.BytesIO to avoid filesystem writes
- Generate unique file names for extracted documents to prevent conflicts
Co-Authored-By: Rock <rockchinq@gmail.com >
* perf: delete temp files
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Rock <rockchinq@gmail.com >
2025-08-23 21:18:13 +08:00
Junyan Qin
8b2480ad3b
feat: setting plugin config
2025-08-17 21:01:43 +08:00
Junyan Qin
b176959836
feat: plugin deletion and upgrade
2025-08-17 18:07:51 +08:00
Junyan Qin
a0c42a5f6e
feat: plugin operations
2025-08-17 16:51:44 +08:00
Junyan Qin (Chin)
e66f674968
Merge branch 'master' into feat/streaming
2025-08-17 14:30:22 +08:00