325-tools-subcommand based on dev
Created abm/lib/tools.py with six subcommands:
-
tools list— Lists all tools on the server. Supports--name,--section, and--idregex filters. Output: tab-separated ID, version, panel section, name. -
tools show— Shows full JSON details for a tool (withio_details=Truefor input/output info). -
tools inputs— Lists the inputs required by a tool in a human-readable format (name, type, required flag, label). -
tools search— Searches tools by matching a query (regex) against name, ID, and description. -
tools scaffold— Generates a YAML input template from a tool's input definition. Handles conditionals (shows default case active, other cases commented), sections, repeats, data/data_collection references, and all scalar types. Comments include labels, help text, allowed values. -
tools run— Runs a tool with inputs from a YAML file (-f), inlinekey=valueargs, or both (CLI overrides file). Dataset references usehda:ID/hdca:IDshorthand. Supports--waitto poll until the job completes. Uses BioBlend legacy pipe-delimited key format.
_scaffold_inputs()recursively walks the tool input tree, emitting YAML with comments for each input type (conditional, section, repeat, data, boolean, select, integer, float, text, color, hidden)_parse_value()converts string values to appropriate types (dataset refs, booleans, numbers)_resolve_values()recursively processes a loaded YAML dict to resolve dataset reference strings_flatten_inputs()converts nested dicts to pipe-delimited keys for BioBlend's legacy input format
abm/lib/tools.py— new module
abm/lib/menu.yml— addedtoolsmenu entry with all 6 subcommandsabm/__main__.py— addedtoolsimport
tools list— found 2579 tools, filters work correctlytools list --name fastp— found 14 fastp versionstools scaffold "Show beginning1"— generated correct YAML templatetools runwith inline args — job completed successfullytools runwith YAML file — job completed successfullytools runwith YAML file + CLI override — job completed successfullytools run --wait— correctly polled and reported job completion- All 4 test runs produced output datasets in state
ok