/** * /plugin — marketplace add/list + plugin install/list/remove (the human path). * * `/plugin` installs plugins from marketplaces (a git repo or local dir with a * native `.agents-plugin/marketplace.json`, Claude `.claude-plugin/marketplace.json`, * or Copilot-style `.github/marketplace.json` index). Installed plugins are placed * at the chosen scope — `~/.agents/plugins/` for `user`, or * `/.agents/plugins/` for `project` — and loaded by the plugin loader * after a reload. `install` asks which, since a human is right here to answer; * the autonomous tool reads the `pluginInstallScope` setting instead. * * Adding a marketplace is the human trust boundary and stays here; the shared * mechanics (discovery, install, remove, the bundled default marketplace) live in * `core/extensions/plugins/install.ts` so this command and the model-facing * lifecycle tools never drift. * * /plugin marketplace add * /plugin marketplace list * /plugin marketplace refresh re-fetch every cached index now * /plugin list list available plugins across marketplaces * /plugin install [--scope user|project] * /plugin remove * /plugin trust [list] allow repo-committed plugins to run code here * /plugin untrust * /plugin publish [--to ] * * `publish` is the human end of the publish lane (§3.2). The model can package a * plugin — gates, README, index entry — but never publish it, because an agent * that can push executable code into a marketplace other agents install from * unattended is a supply-chain compromise primitive. So the last step is a * command a person types, and even then it stops at the machine boundary: with * `--to` it copies the plugin into a local marketplace checkout and updates that * index, leaving an uncommitted diff to review. Committing and opening the PR * stay manual. */ import type { ExtensionAPI } from "../../core/extensions/types.js"; export declare function setupMarketplace(hoo: ExtensionAPI): void; //# sourceMappingURL=marketplace.d.ts.map