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.
Here is what is included in this PR:
Harvest & dynamic REST infrastructure
Created the harvest/ package plus dynamic_rest_runner.py to manage generated REST/GraphQL tools at runtime.
Added Verified Source tooling (VerifiedSourceRegisterTool, VerifiedSourceDiscoveryTool, VerifiedSourceRemoveTool) so freshly harvested endpoints can be registered, listed, and removed on the fly.
Generated specs are stored under ~/.tooluniverse/vsd/generated_tools.json and load immediately through the new runner.
Seven new bioscience tool integrations
InterPro – search EBI InterPro for protein domain/family entries.
KEGG – query KEGG for pathways/genes/compounds with descriptions.
IUCN Red List – fetch conservation status for a species (API token supported).
JASPAR – look up transcription factor binding motifs (collection/tax filters optional).
MarineSpecies (WoRMS) – retrieve marine taxonomy records by scientific name.
cBioPortal – discover public cancer genomics studies matching a keyword.
Phenome Jax (MPD) – list Mouse Phenome Database projects with keyword filtering.
Wired all new tool modules into the loader and default config so Spaces/load_tools can pick them up.
Added targeted unit coverage (tests/unit/test_biodomain_tools.py) and a live smoke script (scripts/run_new_tools.py) to hit each API.