The custom tool authoring agent (galaxy.agents.custom_tool) gains container
resolution and producer-output safeguards. It consumes the mulled recommender
(galaxy.tool_util.deps.mulled.recommend):
- Container resolution: a dedicated container critic infers the conda packages
from the tool's shell_command/configfiles, the recommender resolves a verified
quay.io image, and a deterministic gate applies it -- overriding an
exact-version match, a verifiably-absent biocontainer tag, or a non-biocontainer
image, while leaving a present pinned biocontainer alone. Runs independently of
the quality critic.
- Producer reliability: inputs/outputs are required in the LLM authoring view so
grammar-constrained models can't drop them; UserToolSource stays lenient for the
API and stored tools.
- The quality critic supplies deterministic field edits (labels/help/...) applied
in place, falling back to a full re-roll only for structural changes.
- Reject a shell_command that runs a script by name with no configfile to create
it, driving a producer retry.
- Render saved tool YAML with exclude_defaults so it carries only authored fields.
Admin config docs (config_schema.yml / galaxy.yml.sample) describe the
quality_critic_enabled and container_recommendation_enabled flags.
Tests cover the authoring-view required fields, container override paths,
deterministic critic edits, and the script check.