plan_next_tools
What can run next, and what each next step would add. Give it a tool whose run just finished (or the output types in hand) and it returns the tools whose own declared inputs those outputs fill, each with the parameter the wire lands on, the question that tool answers, its limits, what grades it, whether it is seeded, asynchronous, writing or leaving the machine, and which of its DECLARED data files the run in hand already read, so a step that would re-read the same table can be told apart.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | the tool whose run just finished — its declared outputs are what is in hand. Leave unset and give `output_types` instead. | |
| _files | No | The project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name. | |
| _subject | No | The record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several. | |
| max_steps | No | longest chain to consider when a `target_type` is given. | |
| read_only | No | keep only steps that write nothing. | |
| target_type | No | optional: the output type you want to reach. Returns the shortest chains of tools that get there. | |
| output_types | No | the port types in hand, when no single tool produced them (`sequence`, `record`, `bands`, `sites`, `protocol`, `matrix`, `series`). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | how many tools can consume these outputs by their declared types | |
| paths | Yes | the shortest chains of tools reaching `target_type`, when one was asked for | |
| tools | Yes | the candidates, in catalog order: the parameter each wire lands on, the question that tool answers, its limits, what grades it, and what it reads | |
| message | Yes | what was walked, in words | |
| outputs | Yes | the types the walk started from | |
| untyped | Yes | tools declaring an untyped parameter the builder would let this be wired into — a wire the graph cannot vouch for |