interface MetadataResult

execMetadata's return shape. This is the real, verified-against-every-converted-plugin contract: every one of this repo's 21 converted Metadata/*.pm plugins (and every legacy .pm source they came from) returns exactly (tags => ..., title => ...) from its own get_tags sub, and lanrurugi-api::plugins::use_plugin_sync/use_plugin_async currently forward a plugin's JSON response to the API's own data field completely unchanged — no field renaming happens on the host side today. (Legacy's own ~/LANraragi/lib/LANraragi/Model/Plugins.pm does rename a plugin's tags to new_tags before its real HTTP API sees it, matching ~/LANraragi/tools/openapi.yaml's documented response shape — this repo deliberately doesn't mirror that rename, since nothing on the host or frontend side depends on the new_tags name; crates/lanrurugi-plugin/samples/sample-metadata-plugin.ts and every real call site use tags to match.)

Properties

optional
tags: string
optional
title: string

Present instead of tags/title on failure (e.g. a filename plugin whose regex didn't match) — a structured PluginError, not thrown, so the host can report it without the whole use_plugin call failing.

Usage

import { type MetadataResult } from "crates/lanrurugi-plugin/dispatcher/plugin-sdk.ts";