Commit Graph

157 Commits

Author SHA1 Message Date
Harry 0be17fa1a7 feat: update tool management and configuration handling
- Changed the tool fetching mechanism to handle missing tools more effectively by introducing a batch fetch method.
- Removed the pull command to streamline the CLI, focusing on tool references and their management.
- Enhanced the list command to display available tool references and their statuses, improving user visibility into tool availability.
- Updated the configuration structure to include new fields for tool references and their enabled status.

This update improves the overall tool management experience in the CLI, making it more efficient and user-friendly.
2026-01-30 03:30:01 +08:00
Harry b967831c68 refactor: simplify init command by removing tool handling
- Removed the handling of tools from the init command, focusing solely on tool references.
- Updated output messages to reflect the changes in functionality, improving clarity for users.

This refactor streamlines the initialization process by concentrating on tool references, enhancing user experience.
2026-01-22 18:14:25 +08:00
Harry be1e8e8dd4 fix: update output for missing tools in config
- Changed error message output from stderr to stdout when no tools or tool references are defined in the configuration.
- Added support for custom configuration path via the DIFY_CLI_CONFIG environment variable.

This update improves user experience by providing clearer output and flexibility in configuration management.
2026-01-21 14:54:51 +08:00
Harry 4fa55bcdf5 feat: support tool references 2026-01-19 23:03:54 +08:00
Harry bf34c871bb feat: implement file upload 2026-01-13 18:01:54 +08:00
Harry 24cee3b2e7 feat: enhance help command output for tool parameters
- Added detailed descriptions for tool parameter types in the help command, including options for "select", "file", "files", "boolean", and "number".
- Improved user guidance by specifying accepted values and formats for each parameter type.

This update enhances the usability of the CLI by providing clearer information on tool parameters during help command execution.
2026-01-13 16:56:15 +08:00
Harry 6b68394641 fix: enhance error reporting for non-200 API responses
- Improved error handling in the callDifyAPI function by reading the response body for non-200 status codes.
- This change ensures that error messages include the actual response content, providing better context for debugging.

This update enhances the clarity of error reporting during API interactions.
2026-01-12 20:20:44 +08:00
Harry b7c22eea22 fix: improve error handling for API responses in callDifyAPI
- Added a check for the API response status code in the callDifyAPI function to handle non-200 responses more effectively.
- Enhanced error reporting by including the status code and response body in the error message.

This update improves the robustness of API interactions by ensuring that errors are clearly communicated to the user.
2026-01-12 20:11:57 +08:00
Harry 69cb144fe0 feat: update CLI configuration and API request handling
- Updated the .dify_cli.json configuration to include cli_api_url, cli_api_session_id, and cli_api_secret for improved API interaction.
- Refactored the callDifyAPI and fetchProviders functions to utilize the new CLI API structure, including HMAC signature generation for enhanced security.
- Modified EnvConfig to reflect the new CLI API parameters, ensuring required fields are validated.

This update enhances the security and functionality of the CLI by transitioning to a new API structure and improving request handling.
2026-01-12 19:55:38 +08:00
Harry de24e0b2a9 refactor: update tool parameter handling and types
- Replaced references to plugin_entities and requests with the new types package for tool parameters and descriptions.
- Enhanced the structure of tool parameters and descriptions to include LLM descriptions and improved type definitions.
- Updated the .dify_cli.json configuration to reflect changes in session ID format for enhanced security.

This refactor improves code organization and type safety, streamlining the handling of tool parameters in the CLI.
2026-01-04 19:36:55 +08:00
Harry 10d34daa29 refactor: update configuration to use inner_api_session_id
- Replaced inner_api_key and user_id with inner_api_session_id in the .dify_cli.json configuration.
- Updated EnvConfig and related functions to reflect the new session-based authentication.
- Removed obsolete tenant_id and user_id fields from the configuration and API request handling.

This update enhances security by transitioning to session-based authentication and streamlining the configuration structure.
2026-01-04 16:23:40 +08:00
Harry dc53c0b3e3 feat: add env command to output shell commands for PATH configuration
- Introduced a new `env` command that outputs the necessary shell command to add the current working directory to the user's PATH.
- Updated the `runInit` function to inform users about the new `env` command for adding tools to PATH.

This update enhances the CLI by providing users with a convenient way to configure their environment for tool usage.
2026-01-04 11:38:47 +08:00
Harry 1c800b1019 fix: improve output handling in init command
- Updated output statements in the runInit function to use fmt.Fprintf for consistent error and status reporting.
- Changed messages for missing tools and existing symlinks to direct output to the appropriate streams (stderr for errors, stdout for status).

This update enhances the clarity and consistency of command output in the CLI tool.
2026-01-04 11:31:48 +08:00
Harry 97a7149b18 fix: enforce required validation for FilesURL in EnvConfig
- Updated the EnvConfig struct to mark the FilesURL field as required, ensuring proper validation during configuration loading.
- This change enhances the robustness of the configuration management by preventing incomplete setups.
2026-01-02 15:49:47 +08:00
Harry 34b479fe02 feat: update .dify_cli.json configuration to remove obsolete tools and add files_url
- Removed all tool definitions from the .dify_cli.json file to streamline configuration.
- Added a new `files_url` field to the environment section for improved resource management.

This update simplifies the configuration file and enhances the management of file resources.
2026-01-02 15:46:10 +08:00
Harry 2bb1b2f521 feat: add pull command to fetch and save tools from Dify
- Introduced a new `pull` command that retrieves all available tools from the Dify platform and saves them to the `.dify_cli.json` configuration file.
- Implemented error handling for API requests and configuration saving to enhance reliability.
- Updated the command initialization to include the new `pull` command in the CLI structure.
- Enhanced the `EnvConfig` struct to include a `FilesURL` field for better tool management.

This update improves the CLI's functionality by allowing users to easily pull and manage tools from the Dify platform.
2026-01-02 15:42:10 +08:00
Harry 944defac2a feat: enhance argument handling in InvokeTool function
- Updated the argument check in the InvokeTool function to display help information when the first argument is either empty or a help flag ("--help" or "-h").
- This improvement ensures users receive guidance on tool usage when invoking without specific commands.

This update enhances user experience by providing immediate help options for the CLI tools.
2025-12-30 18:05:01 +08:00
Harry 4522bfc094 feat: improve tool help display in execute command
- Added a check for empty arguments in the InvokeTool function to display tool help when no arguments are provided.
- Refactored the printToolHelp function to PrintToolHelp for consistency in naming conventions.

This update enhances user experience by providing immediate help information when invoking tools without arguments.
2025-12-30 18:03:47 +08:00
Harry ff13761290 feat: update tool description output in list command
- Changed the output format in the list command to display the LLM description instead of the human-readable description.
- Added a hidden help command and disabled the default command completion options for improved command structure.

This update enhances the clarity of tool descriptions in the CLI and improves command usability.
2025-12-30 17:30:31 +08:00
Harry 7ca7940ea7 feat: streamline API response output in execute.go
- Replaced individual data type handling with a unified JSON output for API responses.
- Added error handling for JSON marshaling to ensure robust output.
- Enhanced logging to provide clearer context during tool execution.

This update improves the clarity and consistency of API interaction outputs in the CLI tool.
2025-12-30 17:18:47 +08:00
Harry 644aa5cc72 feat: enhance API call handling in execute.go
- Added error handling for API responses, including checks for nil data and specific error messages.
- Implemented a timeout for the HTTP client to improve reliability during long-running requests.
- Refactored response processing to handle various data types (text, JSON, file, blob, link) more effectively.

This update improves the robustness and clarity of API interactions within the CLI tool.
2025-12-30 17:10:10 +08:00
Harry 6e04ebb9da feat: add .dify_cli.json configuration file and enhance command initialization
- Introduced a new .dify_cli.json file to define environment variables and tool configurations.
- Updated command initialization to create symlinks for tools defined in the new configuration file.
- Improved error handling and output messages during symlink creation.
- Removed obsolete environment file and related loading functions to streamline configuration management.

This update enhances the CLI's flexibility and usability by allowing dynamic tool management through JSON configuration.
2025-12-30 16:49:57 +08:00
Harry 74e6fdf442 refactor: remove obsolete test files and streamline config handling
- Deleted execute_test.go and config_test.go as they are no longer needed.
- Updated init.go to improve error handling and configuration validation.
- Simplified GetConfigPath and related functions for better clarity.
- Enhanced EnvConfig struct with validation tags for required fields.

This cleanup enhances code maintainability and reduces unnecessary complexity.
2025-12-30 16:12:35 +08:00
Harry 6527ddb0f2 refactor: introduce new json schema structure 2025-12-30 16:04:08 +08:00
Harry 92dfaab6fc refactor: restructure dify CLI command handling
- Moved command definitions and execution logic to a new root.go file for better organization.
- Simplified main.go by delegating command execution to the new structure.
- Enhanced symlink detection for BusyBox-style invocation.

This refactor improves code maintainability and clarity in the CLI tool's architecture.
2025-12-30 12:51:20 +08:00
Harry cbb12bcf6f refactor: use symlink detection instead of hardcoded names
Use isSymlinkToSelf() to detect BusyBox-style invocation by checking
if os.Args[0] resolves to the same path as the current executable.
This eliminates the need to hardcode special names like "main" or
"__debug_bin", and works correctly with go run.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 12:27:52 +08:00
Harry 8379d2673b refactor: separate tool schemas from env config
- Change schema format to flat {"tools": [...]} structure
- Add Provider field to EnvConfig for API calls
- Remove provider nesting, use simple ToolSchemas type
- Update FindTool to return only tool (no provider)
- Update all commands to use new structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 11:33:53 +08:00
Harry 066e5864e6 refactor: reuse daemon's http_requests and dify_invocation for API calls
- Add TenantID and UserID to EnvConfig
- Update config loading to parse TENANT_ID and USER_ID from env file
- Rewrite callDifyAPI to use daemon's http_requests.PostAndParseStream
- Use dify_invocation.InvokeToolRequest and tool_entities.ToolResponseChunk
- Update tests to verify new config fields

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 11:21:29 +08:00
Harry b0eaddfe60 fix: use positional arg for tool name in execute command
Change from `dify execute --tool name` to `dify execute name` to avoid
flag name conflicts with tool parameters.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 11:13:16 +08:00
Harry f90cd8aa9a feat: add dify_cli BusyBox-style CLI tool
Add a new CLI tool that allows invoking Dify platform tools like bash commands.

Features:
- BusyBox-style symlink invocation (e.g., google_search --query "hello")
- Cobra-based command structure for dify init/execute/list
- Flag-style parameters (--param value) instead of JSON
- Supports tool schema from Dify plugin entities

Usage:
  dify init --env <file> --schemas <file>   # Initialize config and create symlinks
  dify execute --tool <name> [--args...]    # Execute tool directly
  dify list                                 # List available tools
  google_search --query "hello"             # Via symlink

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 11:09:02 +08:00
Yeuoly 888ad788bc refactor: plugin lifecycle control panel (#499)
* refactor: introduce local plugin control panel and cleanup environment setup process

* fix: args

* refactor: new local runtime

* temp: stash work for refactor on RemotePluginServer

* refactor: unify local runtime lifetime and sperate init environment process

* chore: add missing files

* stash

* refactor: local plugin lifetime control

* refactor: complete installation process of control panel

* refactor: adapt service layer to new controlpanel

* refactor: pluginManager.Install

* fix: add routine wrap to InstallServerless, avoid blocking main thread

* feat: reinstall serverless runtime

* chore: add comments to Reinstall and update confusing naming

* refactor: unify install plugin service

* refactor: add labels to debugging runtime

* refactor: add getters to plugin manager

* refactor: split install service to decode/install_task/install service

* ???

* refactor: adapt controllers

* refactor: session write

* refactor: session runtime

* Refine install task orchestration (#501)

* refactor: installing task

* refactor cluster management, decouple lifetime management and cluster

* fix cli test command

* fix: cleanup TODO comments and implement GracefulStop for instance

* feat: add logger to control panel

* fix: multiple nil references

* refactor: better lifetime control

* refactor: better cycle interval

* fix(LocalPluginRuntime): prevent returning err when it's not  error

* fix: avoid adding empty PipExtraArgs

* fix: missing errors in Environment init

* fix: add truncateMessage to avoid db explosion

* cleanup: better lifecycle management

* fix: init status at the beginning of installation

* optimize: GracefulStop for pluginInstance

* refactor: tests

* refactor: centralize routine labels (#504)

* cleanup: RoutineKey

* fix: init routine pool

* fix: correctly handle cluster register error

* fix: memory leak

* fix: add \n to instance write

* fix(installer.go): set success to true after succeed for defer func

* refactor

* fix: missing cwd in testutils

* fix: scaleup default runtime nums to 1 when testing

* fix: localruntime appconfig in testing module

* Update internal/core/local_runtime/load_balancing.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix: more efficiency implement in installer_local.go

* fix: returns after failing in onDebuggingRuntimeDisconnected

* fix: returns after failing in onDebuggingRuntimeDisconnected

* fix: splits tests

* refactor: naming

* refactor: manifest.VersionX

* fix: adapt SetDefault to tests

* fix: enforce use constants in DBType

* fix: generate

* fix: linter

* cleanup tests

* refactor: change  package to

* cleanup: useless codes

* Update internal/cluster/plugin.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* cleanup

* refactor: decouple connection_key management from debugging_time

* refactor: confused naming

* feat: recycle resources to adapt to https://github.com/langgenius/dify-plugin-daemon/pull/500

* refactor: confusing redirecting

* fix: support get serverless runtime

* fix: race condition in Launching

* fix: avoid ManifestValidate in first step of debugging handshake

* fix: adding ReleaseAllLocks to finalizers

* wtf: what a beautiful code

* refactor: rename Stream.Async to Stream.Process

* fix: kill process if daed instance was detected

* fix: correctly handle failures

* fix: consistence of difference interfaces

* fix: add stacktrace to panic

* fix: only trigger once  event

* fix: ensure plugin runtime was shutdown

* feat: cleanup install tasks

* fix: add scale logs

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-18 17:28:02 +08:00
非法操作 70ba852ecc feat: cli tool support create trigger plugins (#485)
* feat: cli tool support create trigger plugins

* fix(trigger): update placeholder comment in SubscriptionConstructor for webhook registration

---------

Co-authored-by: Harry <xh001x@hotmail.com>
2025-11-05 15:45:58 +08:00
CrabSAMA 2d81bb254a fix: datasource plugin template typo (#464) 2025-09-29 19:03:59 +08:00
crazywoola dbbc4a29cc 454 bump cli template (#455)
* feat: update template

* feat: update ja_JP

* feat: update GUIDE.md
2025-09-22 14:41:47 +08:00
Tianyi Jing 1dacb201ff feat(cmd): add datasource template (#449)
* feat: add template for datasource plugins

Signed-off-by: jingfelix <jingfelix@outlook.com>

* fix: description and missing category

Signed-off-by: jingfelix <jingfelix@outlook.com>

---------

Signed-off-by: jingfelix <jingfelix@outlook.com>
2025-09-17 09:40:09 +08:00
kenwoodjw bb83075acd feat: add max-size flag (#445)
Signed-off-by: kenwoodjw <blackxin55+@gmail.com>
2025-09-12 19:26:29 +08:00
Yeuoly 178e7649ba fix(env): update REMOTE_INSTALL_URL format in .env.example (#412)
- Combined REMOTE_INSTALL_URL and REMOTE_INSTALL_PORT into a single line for clarity.
- This change improves the configuration format for easier understanding and usage.
2025-07-23 18:21:42 +08:00
Yeuoly bace3bfb58 feat(oauth): implement refresh credentials functionality (#408)
* feat(oauth): implement refresh credentials functionality

- Added RefreshCredentials endpoint to handle OAuth credential refresh requests.
- Introduced RequestOAuthRefreshCredentials structure for request validation.
- Updated access types and actions to include refresh credentials.
- Enhanced server routing and controller logic to support the new functionality.
- Updated OAuth entities to include expiration handling for refreshed credentials.

* feat(oauth): add metadata field to OAuthGetCredentialsResult

---------

Co-authored-by: Harry <xh001x@hotmail.com>
2025-07-23 13:11:36 +08:00
Yeuoly 7f463e32f6 feat(plugin_decoder): add support for internationalized readme files (#393)
* feat(plugin_decoder): add support for internationalized readme files

- Introduced the AvailableI18nReadme method in the PluginDecoder interface to retrieve available readme files in multiple languages.
- Implemented the method in FSPluginDecoder and ZipPluginDecoder to read localized readme files from the filesystem and zip archives.
- Enhanced UnixPluginDecoder to handle readme files in a structured manner, including support for reading from a dedicated "readme" directory.
- Added unit tests to verify the functionality of the AvailableI18nReadme method and ensure correct retrieval of localized readme content.

* feat(plugin): add support for multilingual README generation

- Introduced functionality to create README files in multiple languages (Simplified Chinese, Japanese, Portuguese) based on user selection.
- Enhanced the profile management to include options for enabling internationalized README and selecting languages.
- Added new language choice structure to manage language options and their selection state.
- Implemented rendering and writing of language-specific README files during plugin creation.
- Included new README template files for each supported language.

* feat(plugin): add README command and list functionality

- Introduced a new `readme` command to the plugin CLI for managing README files.
- Added `list` subcommand to display available README languages for a specified plugin path.
- Implemented functionality to read and list supported README languages in a tabular format.
- Enhanced error handling for plugin file reading and decoding processes.
2025-07-21 16:02:26 +08:00
Maries 3b0a8679f4 feat/tool oauth cli template (#407)
* feat(cli): update OAuth handling and requirements for dify_plugin

* feat(oauth): update OAuth support and adjust dify_plugin version constraints
2025-07-21 15:37:13 +08:00
Yeuoly b97cce7167 enhance(cli/icon): add multiple categories default plugin icons (#388)
* feat: add support for dark icon

- Introduced IconDark field in PluginDeclaration and related structures to support dark mode icons.
- Updated the installation process to handle dark icons.
- Enhanced asset validation to check for the presence of dark icons.

This change improves the visual consistency of plugins in dark mode environments.

* enhance(cli/icon): add plugin icon support with multiple categories

- Added support for light and dark icons for various plugin categories including agent, datasource, extension, model, tool, and trigger.
- Replaced the previous single icon implementation with a structured map for better organization and retrieval of icons based on category and theme.
- Removed the old Python icon file to streamline asset management.

This update improves the visual representation of plugins across different themes, enhancing user experience.

* change icons

* fix

* fix

* comments
2025-07-08 12:48:48 +08:00
Tianyi Jing af3fec6f32 fix: prevent duplicate packaging (#367)
fixes: https://github.com/langgenius/dify-plugins/issues/612
fixes: https://github.com/langgenius/dify-plugins/issues/234

Signed-off-by: jingfelix <jingfelix@outlook.com>
2025-06-26 17:45:59 +08:00
Ganondorf ff875c7e7a Split REMOTE_INSTALL_ADDRESS into HOST and PORT in .env.example to align with the official docs (#356)
Co-authored-by: lizb <lizb@sugon.com>
2025-06-20 10:33:28 +08:00
Yeuoly 3918b377f2 refactor: streamline plugin initialization and update YAML templates for consistency (#313)
- Removed redundant flag retrieval in the plugin initialization process, simplifying the code.
- Updated permission handling to use a single `permissionRequirement` structure for better clarity and maintainability.
- Enhanced YAML templates by adding quotes around dynamic values to ensure proper formatting and prevent potential parsing issues.
2025-05-27 19:48:11 +08:00
Byron.wang b3c68cbeec add packaged file info when plugin package larger than max size (#312) 2025-05-27 13:02:25 +08:00
Yeuoly 478c98da5c fix: signature dose not work as expected, if upload new pkg to old dify (#311)
- Updated the  method in the  interface to remove the  parameter, simplifying its usage.
- Introduced a new  function to provide a default verification structure.
- Added a  file to store verification data, improving the plugin signing process.
- Enhanced tests in  to validate the verification process, ensuring proper handling of success and failure scenarios.
- Refactored related code to accommodate the new verification structure and improve overall maintainability.
2025-05-26 13:10:34 +08:00
Yeuoly 3d28e0ceed feat: Add code generation for plugin controllers and services (#301)
* feat: Add code generation for plugin controllers and services

- Introduced a code generation mechanism for plugin controllers and services, allowing for automatic generation based on defined dispatchers.
- Created new files for generated controllers, services, and templates to streamline the plugin invocation process.
- Removed outdated functions related to tool validation and runtime parameters, consolidating functionality into generated files.
- Updated dependencies in go.mod and go.sum to include necessary packages for the new code generation features.

* fix
2025-05-23 14:57:56 +08:00
Yeuoly 9a1da25d59 feat: Enhance plugin signing with authorized category verification (#293)
* feat: Enhance plugin signing with authorized category verification

- Added support for an `authorized_category` flag in the signature command to validate the category before signing.
- Updated the `Sign` function to accept a verification parameter, allowing for category-based signing.
- Enhanced error handling for invalid categories during the signing process.
- Updated tests to cover new verification scenarios and ensure proper functionality with the authorized category.

* fix

* fix

* test

* test: Add unit test for plugin verification without verification field

- Introduced a new test case to verify the behavior of plugins that lack a verification field.
- Updated the signature_test.go file to include the test, ensuring proper functionality of the signing process.
- Removed the outdated verifier_test.go file and associated test data to streamline the codebase.
2025-05-21 20:05:45 +08:00
Yeuoly 31d7c7417e feat[0.1.0]: introduce 'run' command for local plugin execution (#283)
* feat: introduce 'run' command for local plugin execution

- Added a new command `run` to launch plugins locally, allowing communication through stdin/stdout.
- Removed the previous `test` command and its associated functionality to streamline the plugin testing process.

* feat: enhance 'run' command with TCP support

- Introduced a new `RunPluginPayload` structure to encapsulate plugin execution parameters.
- Added TCP communication mode to the `run` command, allowing multiple client connections.
- Updated command flags to configure run mode and logging options.
- Implemented client handling and server creation for both stdin/stdout and TCP modes.

* docs: improve comments in RunPlugin function for clarity

- Enhanced comments to provide clearer explanations of the plugin decoding process and the creation of client streams for both stdin/stdout and TCP modes.
- Updated comments to reflect the functionality and behavior of the plugin execution flow.

* refactor: update command structure and enhance plugin invocation handling

- Changed the command structure to add `runPluginCommand` under `pluginCommand` for better organization.
- Introduced `InvokePluginPayload` type to encapsulate plugin invocation details.
- Enhanced `RunPlugin` function to handle responses and errors more effectively, including logging to stdout.
- Updated client handling to support session management and improved error handling during plugin invocation.
- Renamed TCP server creation function for consistency.

* feat: enhance plugin response handling and logging capabilities

- Added a new flag `--response-format` to specify the output format (text or json) for plugin responses.
- Introduced a `logger` to manage logging output to stdout with timestamps and file information.
- Updated `logResponse` and `systemLog` functions to handle different response formats.
- Enhanced `handleClient` and `RunPlugin` functions to utilize the new response format feature.
- Implemented signal handling to clean up temporary directories on shutdown.

* feat: enhance plugin response structure and logging

- Added `InvokeID` to `InvokePluginPayload` and `GenericResponse` for better tracking of plugin invocations.
- Updated `logResponse` to include `InvokeID` in error responses for improved debugging.
- Enhanced client handling in `handleClient` to log plugin readiness and received requests.
- Refactored client stream creation for better readability and consistency.

* feat: add plugin invoke end response type and logging

- Introduced `GENERIC_RESPONSE_TYPE_PLUGIN_INVOKE_END` to enhance response tracking for plugin invocations.
- Updated `handleClient` to log the end of plugin invocation, improving visibility into the plugin lifecycle.

* chore: remove fullfeature tags
2025-05-16 14:20:29 +08:00
Bowen Liang fa2ac6dd2c dep: bump dify_plugin in plugin dependency template to 0.2.x (#278)
* bump dify_plugin to 0.2.x

* dify_plugin>=0.2.0,<0.3.0
2025-05-13 17:13:56 +08:00