Commit Graph

63 Commits

Author SHA1 Message Date
Yeuoly 19da13ec06 Update pyproject.toml (#199) 2025-08-29 17:50:46 +08:00
Yeuoly 00ec765694 chore: bump to 0.4.3 2025-07-24 17:35:26 +08:00
Maries c6f83a63e1 feat[0.4.2]: Tool OAuth (#179)
* chore: fix ruff issue

* feat(oauth): implement OAuth

* feat(invoke-message): refactor message handling and introduce InvokeMessage class

* feat(plugin-oauth): add credential_id and credential_type to tool parameters

* feat(plugin-oauth): add credential_id and credential_type to tool parameters

* chore: update dify_plugin version to 0.5.0b4 and clean up github.yaml

* chore: update plugin version to 0.1.2 in manifest.yaml

* feat(session): session context and tool backwards invocation credential support

* feat(oauth): session context and tool backwards invocation credential support

* feat: update README and requirements for OAuth support in version 0.4.2

* feat: add .gitignore to exclude IDE files and secret keys

* chore: apply ruff

* feat: bump version to 0.4.2b1

* feat: update GitHub plugin configuration for OAuth support and improve credential handling

* feat: update .gitignore to exclude dify plugin files and public keys

* feat: fix credential validation for GitHub API and bump version to 0.2.1

* feat: update GitHub plugin to support multiple access tokens and bump version to 0.2.5

* chore: apply ruff

* feat: add ToolProviderOAuthError for improved OAuth error handling in GitHub plugin

* chore: apply ruff

* chore: bump version to 0.4.2

* chore: update examples sdk version to 0.4.2

* fix: thread deadlock in PluginRunner when running tests without gevent monkey patching

* feat: add support for refreshing OAuth credentials in Plugin and GitHub provider

* feat: refactor OAuth credential handling to return structured OAuthCredentials object

* apply ruff

* feat: refactor OAuth credential handling to use ToolOAuthCredentials for improved structure

* feat: reorganize imports in __init__.py for improved clarity and structure

* feat: add Microsoft To Do plugin for refresh token example

* chore: apply ruff

* fix: update author in GitHub configuration and clean up Microsoft To Do schema

* chore: bump version to 0.4.2b2 in pyproject.toml

* feat: update Microsoft To Do plugin to handle OAuth token encoding and version bump

* feat:remove inelegant example

* chore: update dify_plugin version to 0.4.2

* chore: bump version to 0.4.2 in pyproject.toml

---------

Co-authored-by: Yeuoly <admin@srmxy.cn>
2025-07-23 13:49:01 +08:00
Yeuoly 21e77bd043 Bump to 0.4.1 (#178) 2025-07-09 20:18:47 +08:00
Yeuoly 600b4b1d40 Bump to 0.4.0 (#167) 2025-06-27 16:28:01 +08:00
Bowen Liang 3babba0c65 update gevent~=25.5.1 (#157) 2025-06-27 15:56:42 +08:00
Novice 98d30068f7 chore: bump version to 0.3.5 2025-06-20 14:50:49 +08:00
Novice bdcbd46ab7 chore: bump version to 0.3.4 2025-06-19 16:59:52 +08:00
Novice 9030de3782 chore: bump version to 0.3.3 2025-06-17 10:29:42 +08:00
Novice 66d21b7af5 bump version to 0.3.2 2025-06-03 18:09:14 +08:00
Yeuoly 70de2582e2 bump to 0.3.1 (#151) 2025-05-27 14:36:40 +08:00
Yeuoly 6d77e16b7d chore: update dependencies and remove pydub from main requirements (#135)
- Removed `pydub` from the main dependencies in `pyproject.toml`.
- Added `pydub` back to the `requirements.txt` for the OpenAI example.
2025-05-19 22:19:49 +08:00
Yeuoly a4bad2b274 Bump to 0.3.0 (#146) 2025-05-19 15:00:25 +08:00
Yeuoly 46eb504125 feat[0.3.0]: add plugin runner functionality (#144)
* feat: add integration configuration and plugin runner functionality

- Introduced `IntegrationConfig` class for managing plugin testing configurations, including validation for the `dify_cli_path`.
- Added `PluginInvokeRequest` and `PluginGenericResponse` models to handle plugin invocation requests and responses.
- Implemented `PluginRunner` class to facilitate running plugins locally, including asynchronous message handling and process management.
- Merged access actions into a single `PluginAccessAction` for streamlined access control.

* apply ruff

* feat: enhance plugin runner with new response handling and exception management

- Added `PLUGIN_INVOKE_END` response type to manage the end of plugin invocations.
- Introduced `PluginStopped` exception to handle plugin termination gracefully.
- Updated `PluginRunner` to support stopping the plugin process and handling asynchronous message reading with improved error management.
- Modified message queue to accommodate `None` responses for completed invocations.

* refactor: rename PluginStopped exception to PluginStoppedError

- Renamed `PluginStopped` to `PluginStoppedError` for clarity and consistency.
- Updated references in the `run.py` file to reflect the new exception name.
- Added a docstring to `PluginStoppedError` to describe its purpose.

* fix: update version check for dify CLI in IntegrationConfig

- Modified the version check in the IntegrationConfig class to require a minimum version of 0.1.0 instead of 0.4.0.
- Ensured that the version validation logic is clearer and more robust.

* chore: update dependencies and lock file

- Updated the `content_hash` in `pdm.lock` to reflect changes in dependencies.
- Added `packaging>=25.0` to the dependencies in `pyproject.toml` to ensure compatibility with the latest packaging features.

* feat: enhance IntegrationConfig with improved CLI path validation

- Added a list of potential plugin names to search for the dify CLI executable.
- Updated the validation logic to check for the CLI path against multiple plugin names.
- Changed error handling to use ValidationError for invalid CLI path and version checks.

* feat: add setup script for dify-plugin-cli installation

- Introduced a new script to automate the installation of dify-plugin-cli, including OS and architecture detection.
- Updated the pull request workflow to include the setup of the dify-plugin-cli before installing dependencies.
- Refactored error handling in IntegrationConfig to use ValueError instead of ValidationError for CLI path and version checks.

* feat: add integration test for invoking LLM with mocked OpenAI server

- Introduced a new integration test in `test_invoke_llm.py` to validate the invocation of the LLM plugin using a mocked OpenAI server.
- Implemented a mock server to simulate OpenAI's chat completions API, supporting both streaming and non-streaming responses.
- The test downloads the latest `langgenius-openai` plugin, runs the plugin, and asserts the expected response from the LLM.

* fix: add timeout to requests in LLM integration test

- Updated the `test_invoke_llm.py` file to include a timeout of 10 seconds for both POST and GET requests to the marketplace API.
- This change aims to improve the reliability of the integration test by preventing indefinite blocking on network calls.

* feat: enhance dify-plugin-cli setup script with installation verification and PATH configuration

- Added verification to check if dify-plugin is available in the user's PATH after installation.
- Implemented logic to add dify-plugin to the system PATH for all users when run as root, or to the user's profile for non-root users.
- Created symlinks in common bin directories and provided usage instructions for the dify-plugin commands.

* refactor: update dify-plugin-cli setup script for improved PATH management

- Enhanced the script to add the installation directory to the GITHUB_PATH for GitHub Actions.
- Modified the PATH export for local development to ensure the installation directory is prioritized.
- Removed redundant installation verification and symlink creation logic, streamlining the setup process.

* test: add SSH support to pull request workflow

- Integrated SSH functionality into the pull request workflow using the mxschmitt/action-tmate@v3 action.
- This addition allows for interactive debugging and terminal access during pull request checks.

* chore: remove SSH step from pull request workflow and fix import in integration test

- Eliminated the SSH step from the pull request workflow to streamline the process.
- Fixed the import statement for the `requests` library in `test_invoke_llm.py` to ensure proper functionality during the test execution.

* wtf

* feat: implement OpenAI mock server for integration testing

- Added a new mock server in `python/tests/__mock_server` to simulate OpenAI's chat completions API, supporting both streaming and non-streaming responses.
- Updated the pull request workflow to install the `uv` tool and launch the mock server during testing.
- Refactored `test_invoke_llm.py` to utilize the mock server, ensuring reliable integration tests without external dependencies.

* apply ruff

* refactor: streamline mock server launch in pull request workflow

- Replaced inline mock server launch commands in the pull request workflow with a dedicated script `launch_mock_server.sh` for improved readability and maintainability.
- The new script handles the execution of the mock server, ensuring a cleaner workflow configuration.

* fix: update mock server launch path in pull request workflow

- Changed the path for launching the mock server script from `./scripts/launch_mock_server.sh` to `./python/scripts/launch_mock_server.sh` to ensure correct execution within the workflow.

* fix: run mock server in background during pull request workflow

- Updated the pull request workflow to launch the mock server script in the background by appending `&` to the command. This change allows subsequent steps to execute without waiting for the mock server to terminate.

* chore: clean up dify-plugin-cli setup script by removing outdated installation instructions

- Removed outdated comments regarding the download and installation of dify-plugin-cli, streamlining the script for clarity.

* feat: enhance PluginRunner with graceful shutdown and thread safety

- Introduced a stop flag and a lock to ensure thread-safe access to the stop flag in the PluginRunner class.
- Implemented a _close method to handle graceful termination of the plugin process, including sending a SIGTERM signal and closing pipes.
- Refactored the _read_async method to ensure proper cleanup and handling of messages, maintaining the integrity of the message queue.
2025-05-19 14:56:13 +08:00
Yeuoly e380493e25 Bump to 0.2.4 (#143) 2025-05-14 13:07:18 +08:00
Yeuoly ddb87f8605 Bump sdk to 0.2.3 (#139) 2025-05-13 15:46:31 +08:00
Bowen Liang 08c596d077 httpx~=0.28.1 (#137) 2025-05-12 14:45:55 +08:00
Yeuoly 50a8b90223 Bump to 0.2.2 (#131) 2025-05-06 16:39:38 +08:00
Yeuoly c278653d49 chore: bump version to 0.2.1 (#112) 2025-04-25 14:15:24 +08:00
Yeuoly b884686d5e chore: bump version to 0.2.0 (#110) 2025-04-25 13:58:29 +08:00
Yeuoly 8310e77533 chore: update Python SDK version to 0.1.0 and add README for Dify Plugin SDK 2025-04-10 14:56:55 +08:00
Yeuoly 957aab49cd fix: improve gevent socket connection handling, avoid blocking except… (#86)
* fix: improve gevent socket connection handling, avoid blocking exceptions

* fix: enhance TCP socket handling with thread safety and improved data transmission
2025-04-10 13:42:35 +08:00
3Dify-developer 579f26f67a chore: update pydantic-settings version to >=2.5.0 (#80)
* chore: update pydantic-settings version to >=2.5.0

* chore: limit pydantic-settings < v3.0.0
2025-04-09 20:09:47 +08:00
Yeuoly 46cc404d2e fix: bump sdk version to beta76 2025-03-29 01:55:53 +09:00
Novice 4fb304570e bump version to 0.0.1-beta75 2025-03-27 09:20:53 +08:00
Novice f1e62ad85b chore: update dependency constraint for pydantic 2025-03-25 08:45:02 +08:00
Novice 4dac802553 Merge branch 'main' into chore/upgrade-yarl-version 2025-03-25 08:44:42 +08:00
QuantumGhost 9e084d7d09 feat(python): upgrade ruff to v0.11.2, integrate flake8-bandit ruleset for security linting (#65)
* chore(python): update .gitignore for Python SDK

Adjust .gitignore for Python SDK based on the templated generated by
gitignore.io, with minor custom modifications.

* chore: add .editorconfig for consistent formatting

Add a .editorconfig file to enforce consistent file encoding,
indentation, and end-of-line characters across the project.

* chore(python): upgrade ruff version to v0.11.2

* feat(python): Integrate flake8-bandit ruleset for security linting

Enable the flake8-bandit (S) ruleset in ruff to enforce security-related
best practices and mitigate potential vulnerabilities in the codebase.

Suppress existing issues in the current code using `noqa` comments, primarily for
instances of `requests` calls without a specified `timeout` parameter.
2025-03-24 18:00:14 +08:00
Novice 46ca484beb chore: update dependency constraint for yarl 2025-03-21 09:53:41 +08:00
Yeuoly b2ace32a05 bump version to 0.0.1-beta74 2025-03-18 18:49:54 +08:00
Yeuoly 43c566799e bump version to 0.0.1-beta74 2025-03-18 17:41:43 +08:00
-LAN- b7a30ae78a fix: cannot init prompt message (#42)
* chore(*): Add pytest into test group

Signed-off-by: -LAN- <laipz8200@outlook.com>

* fix: Enhance content transformation to support Sequence type and add unit tests

Signed-off-by: -LAN- <laipz8200@outlook.com>

---------

Signed-off-by: -LAN- <laipz8200@outlook.com>
2025-03-14 13:36:48 +08:00
Yeuoly c40344f44f bump sdk to beta 73 2025-03-12 20:18:41 +08:00
Yeuoly b936b1be9f fix: flush output when initialize 2025-03-07 16:14:16 +08:00
Yeuoly 7cb4b8a00a chore: Bump version to 0.0.1-beta71 and add server startup logging 2025-03-06 17:53:03 +08:00
Yeuoly 0354eda546 feat: Add health check endpoint and token counting optimization 2025-03-04 15:48:14 +08:00
Yeuoly 161045b65f fix: memory leak 2025-03-03 14:15:51 +08:00
Yeuoly 0685b4bec5 bump to beta68 2025-02-28 14:09:27 +08:00
Yeuoly 6cf29e1040 bump gevent to 24.11.1 2025-02-18 10:23:49 +08:00
Novice 9832fa7257 bump version to 0.0.1-beta66 2025-02-10 17:43:51 +08:00
Yeuoly 7c90378701 bump version to beta65 2025-02-10 15:09:35 +08:00
Novice Lee eee96a3b25 bump version to 0.0.1-beta64 2025-02-08 11:34:02 +08:00
Novice Lee 5fbbfe5fe2 bump version to 0.0.1-beta63 2025-02-07 10:56:04 +08:00
Novice Lee 54dc283c18 bump version to 0.0.1-beta62 2025-01-22 13:44:06 +08:00
Yeuoly 40fa53baee bump version to 0.0.1-beta61 2025-01-21 15:07:48 +08:00
Novice Lee e764cd2d9e bump version to 0.0.1-beta60 2025-01-09 08:53:29 +08:00
Novice Lee fbe6e3f08c bump version to 0.0.1-beta59 2025-01-08 07:59:40 +08:00
Yeuoly d0f12a590a bump version to 0.0.1-beta58 2025-01-07 20:44:08 +08:00
Yeuoly aa15b9315b bump to beta57 2025-01-03 18:08:31 +08:00
Yeuoly c14d28908d bump to beta 56 2025-01-03 17:30:50 +08:00