Skip to content

Render integration capability descriptions in the execute inventory - #2131

Open
justcarlson wants to merge 5 commits into
UsefulSoftwareCo:mainfrom
justcarlson:inventory-descriptions
Open

justcarlson wants to merge 5 commits into
UsefulSoftwareCo:mainfrom
justcarlson:inventory-descriptions

Conversation

@justcarlson

Copy link
Copy Markdown

Problem

The execute tool description and the execute skill list connected integrations as bare slugs (packages/core/execution/src/description.ts said "no descriptions" by design). An agent opening a fresh session cannot tell what each integration is for. On a deployment with 40+ integrations, models burn sandbox calls on discovery, or guess native paths that do not exist. Reported from production self-host use in justcarlson/Silent-Cartographer#184 and related to the catalog-ergonomics requests in #2130.

Change

Each inventory line now renders the integration's catalog description:

- `seerr` — request movies/TV into Radarr/Sonarr
- `github`
  • One scannable line per integration: first line of the description, whitespace collapsed, capped at 120 chars on a word edge. The block is always-loaded prompt context, so the line budget stays tight.
  • Legacy rows whose description merely repeats the slug or display name (case-insensitive) stay bare, so existing catalogs do not get noisier until curated.
  • Descriptions stay user-editable data via PATCH /api/integrations/:slug; deployments tune wording without a rebuild.
  • parseIntegrationInventory tolerates the optional — description suffix, so hosts deriving search_<integration> tools from the built description parse the same slugs.

One extra executor.integrations.list() per session build, beside the existing connections.list().

Tests

  • Updated: the "names only" test now pins description rendering and slug/name-repeat suppression.
  • Added: truncation to one line (long, multiline descriptions).
  • Added: parseIntegrationInventory reads slugs past description suffixes.
  • packages/core/execution: 80/80 pass. packages/hosts/mcp: 251/251 pass. oxlint and tsgo clean.

The execute tool description and skill listed connected integrations as
bare slugs, so an agent seeing a fresh session could not tell what each
integration is for without spending sandbox calls on discovery.

Each inventory line now carries the integration's catalog description,
truncated to one scannable line (120 chars, word edge, first line only).
Legacy rows whose description merely repeats the slug or display name
stay bare. Descriptions remain user-editable data (PATCH
/api/integrations/:slug), so deployments tune the wording without a
rebuild. parseIntegrationInventory tolerates the optional suffix, so
hosts deriving search_<integration> tools from the description see the
same slugs.
Deliver tool attachments automatically through MCP

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant