Add dike-dify-tools plugin (v0.0.2) - #3074
Merged
Merged
Conversation
crazywoola
approved these changes
Sep 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plugin Submission
Plugin information
Submission type
What changed
Supersedes #3065, which is stuck on a stale
action_requiredCI approval and had two real bugs found by a user installing v0.0.1 locally before the CI ever ran:pyproject.tomlhad an HTML-escaped<instead of<in thedify-pluginversion constraint, which is invalid PEP 508 and made Dify's own dependency installer fail outright at plugin-install time. Also added the missingrequestsdependency there (used directly by the plugin's HTTP client) sopyproject.tomlstays in sync withrequirements.txt.README.md/PRIVACY.mdlinked to a stalefr3on/dike-dify-toolsrepo instead of the actual source atdikeai/plugins/dike-dify-tools.manifest.yamlwas also missing therepo/contactfields required by this repo's own pre-check, and four tool parameters (year_from/year_to/statusindike_reason,directionindike_graph_traverse) were missing the requiredhuman_descriptionfield.Since v0.0.1 was never actually approved/published, this submission is v0.0.2 with all of the above fixed, rather than a real version-update diff against a published release. Adds Dike Legal Search, a Dify tool plugin wrapping four grounded MENA legal research capabilities as native Dify tools:
dike_search(hybrid semantic + lexical search over verified Saudi, Egyptian, and Emirati legislation, court rulings, and fatawa),dike_reason(grounded Q&A where every citation is verified against the retrieved source set before being returned, unverifiable claims dropped rather than fabricated),dike_cite(parses and resolves an Arabic legal citation string to its canonical source document), anddike_graph_traverse(finds documents that cite, amend, repeal, implement, or interpret a given document).Risk level
The plugin only calls fixed, documented Dike API HTTPS endpoints (
api.dike.it.comby default, or a self-hosted instance if the user configures a different base URL) with a user-supplied API key. It does not execute code/SQL, does not use SSH/filesystem/browser automation, does not process uploaded files, and does not fetch arbitrary user-controlled URLs.Required checks
.envfiles,.gitdirectories, virtual environments, caches, logs, or IDE files.PRIVACY.md, andmanifest.yamlreferences it.Security and privacy notes
The plugin sends whatever query/question/citation/canonical-ID the calling Dify app supplies to the configured Dike API and returns Dike's response. It does not persist the API key or any query/answer content beyond the single request being handled, and does not log API key values. No other sensitive capabilities. Documented in
PRIVACY.md.Local validation
Packaged with the official Dify plugin CLI (
dify-plugin):dify-plugin plugin package ./dike-dify-tools -o ./dike-dify-tools-0.0.2.difypkgVerified
pyproject.toml's dependency specifiers parse withpackaging.requirements.Requirement, and thatpython3 -m maininside the unpacked plugin loads cleanly end-to-end (logs"Installed tool: dike", noValidationError) -- this is the exact failure mode a real user hit installing v0.0.1, now fixed and re-verified.Reviewer notes
This is a resubmission of #3065 at v0.0.2 with the fixes above; #3065 will be closed in favor of this PR. A user did install and hit the v0.0.1 dependency-install failure directly on their own Dify instance, confirming both the bug and (informally) that the plugin otherwise installs/loads; a full end-to-end test of v0.0.2 against a live instance has not been repeated yet, only the local unpacked-plugin load check described above.