Skip to content

ASNT-119: Agent-callable plugin tools, proven by an Islandora Workbench plugin #154

Description

@devnull03

Overview

Let a qrate plugin declare approved, structured tools that an agent can call, and build the Islandora Workbench plugin as the first real consumer. Only the plan exists so far (docs/dev/agent-tools-plan.md, draft PR #123). It is stacked on the qrate CLI (#153), which must merge first.

Scope

  • In scope: tool declarations in the plugin descriptor, permission categories, bounded invocation in the plugin host, a qrate agent route to list and call tools, Pi extension discovery, and the Islandora Workbench plugin (preflight, dry-run report, confirmed ingest).
  • Out of scope: a generic tool catalogue with no plugin behind it, arbitrary agent execution of plugin code, silent or agent-initiated ingest.

Task Details

  1. Declarations. Stable name, description, input and output schema, and availability, in the plugin descriptor.
  2. Permissions. Three categories: read-only, local mutation, external side effect.
  3. Invocation. Registered in plugin-host and bounded in time, memory and output.
  4. One route for every agent. qrate agent commands list and call tools through app_control, so the embedded Pi and an external agent see the same set.
  5. Plugin API copies. types/qrate.lua in qrate-plugin-template and in the Islandora plugin, and each README.
  6. Islandora Workbench plugin. Validate configuration and selected rows, produce a Workbench plan and a preflight report, and expose ingest only behind a visible human confirmation.

Definition of Done

  • An enabled plugin exposes only its declared, approved tools
  • Tool calls validate their input and return structured results or errors
  • Preflight works without ingest credentials or side effects
  • Ingest needs a visible human confirmation and leaves an auditable result
  • cargo test -p plugin-host -- --ignored passes against the template and Islandora copies
  • ./scripts/ci.sh passes

Estimate

Not estimated. Plan only.

Type

Feature

Notion: https://www.notion.so/3ed21d32b13b8161a153e33c355500f0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions