* Initial plan
* Add package structure and resource path utilities
- Created langbot/ package with __init__.py and __main__.py entry point
- Added paths utility to find frontend and resource files from package installation
- Updated config loading to use resource paths
- Updated frontend serving to use resource paths
- Added MANIFEST.in for package data inclusion
- Updated pyproject.toml with build system and entry points
Co-authored-by: RockChinQ <[email protected]>
* Add PyPI publishing workflow and update license
- Created GitHub Actions workflow to build frontend and publish to PyPI
- Added license field to pyproject.toml to fix deprecation warning
- Updated .gitignore to exclude build artifacts
- Tested package building successfully
Co-authored-by: RockChinQ <[email protected]>
* Add PyPI installation documentation
- Created PYPI_INSTALLATION.md with detailed installation and usage instructions
- Updated README.md to feature uvx/pip installation as recommended method
- Updated README_EN.md with same changes for English documentation
Co-authored-by: RockChinQ <[email protected]>
* Address code review feedback
- Made package-data configuration more specific to langbot package only
- Improved path detection with caching to avoid repeated file I/O
- Removed sys.path searching which was incorrect for package data
- Removed interactive input() call for non-interactive environment compatibility
- Simplified error messages for version check
Co-authored-by: RockChinQ <[email protected]>
* Fix code review issues
- Use specific exception types instead of bare except
- Fix misleading comments about directory levels
- Remove redundant existence check before makedirs with exist_ok=True
- Use context manager for file opening to ensure proper cleanup
Co-authored-by: RockChinQ <[email protected]>
* Simplify package configuration and document behavioral differences
- Removed redundant package-data configuration, relying on MANIFEST.in
- Added documentation about behavioral differences between package and source installation
- Clarified that include-package-data=true uses MANIFEST.in for data files
Co-authored-by: RockChinQ <[email protected]>
* chore: update pyproject.toml
* chore: try pack templates in langbot/
* chore: update
* chore: update
* chore: update
* chore: update
* chore: update
* chore: adjust dir structure
* chore: fix imports
* fix: read default-pipeline-config.json
* fix: read default-pipeline-config.json
* fix: tests
* ci: publish pypi
* chore: bump version 4.6.0-beta.1 for testing
* chore: add templates/**
* fix: send adapters and requesters icons
* chore: bump version 4.6.0b2 for testing
* chore: add platform field for docker-compose.yaml
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: RockChinQ <[email protected]>
Co-authored-by: Junyan Qin <[email protected]>
* 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 <[email protected]>
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: RockChinQ <[email protected]>
* fix:Fixed the issue where the rich text processing in the DingTalk API did not account for multiple texts and images, as well as the presence of default line breaks. Also resolved the error in Dify caused by sending only images, which resulted in an empty query.
* fix:Considering the various possible scenarios, there are cases where plan_text is empty when there is file content, and there is no file (the message could not be parsed) and the content is empty.
* fix:Add the default modifiable prompt input for didify in the ai.yaml file to ensure that the error of query being empty occurs when receiving data.
* add: The config migration of Dify
* fix:Migration issue
* perf: minor fix
* chore: minor fix
---------
Co-authored-by: Junyan Qin <[email protected]>
* Initial plan
* Add copy button to pipeline configuration page
Co-authored-by: RockChinQ <[email protected]>
* Add i18n support for copy suffix and address code review feedback
Co-authored-by: RockChinQ <[email protected]>
* Show new pipeline name in copy toast and close dialog after copy
Co-authored-by: RockChinQ <[email protected]>
* perf: tool list style in extension tab
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: RockChinQ <[email protected]>
Co-authored-by: Junyan Qin <[email protected]>
* 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 <[email protected]>
* Add i18n translations for multi-knowledge base selector
Co-authored-by: RockChinQ <[email protected]>
* Fix prettier formatting errors in DynamicFormItemComponent
Co-authored-by: RockChinQ <[email protected]>
* Add accessibility attributes to knowledge base selector checkbox
Co-authored-by: RockChinQ <[email protected]>
* fix: minor fix
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: RockChinQ <[email protected]>
Co-authored-by: Junyan Qin <[email protected]>