This task is a plan, not an implementation. Branch feature/agent-tools-islandora-workbench (draft PR #123) holds only docs/dev/agent-tools-plan.md. It is stacked on feature/qrate-cli (ASNT-118), which must merge first.
The goal: a plugin declares approved, structured tools that an agent can call, and the Islandora Workbench plugin is built in the same branch as the first real consumer, so every API decision is exercised by preflight and ingest rather than by a synthetic example.
crates/plugin-host (time, memory and output limits, like agent_program.rs).qrate agent tools to list and qrate agent tool-call to run, forwarded through app_control like the other agent commands. The Pi extension then registers them from that listing instead of a hard-coded set.types/qrate.lua in qrate-plugin-template first, then plugins/islandora/types/qrate.lua, then the READMEs, and cargo test -p plugin-host -- --ignored is the only check. Bump API_VERSION (currently 2) only for a breaking change; an optional tools field in the descriptor is not one.AGENTS.md, docs/cli/commands.md and skills/ change with any new qrate agent command.A generic tool catalogue with no real plugin behind it. Arbitrary agent execution of plugin code. Silent or agent-initiated ingest.