Marketplace Moderation
The Marketplace is the install-only Agent Recipe Catalog — a free catalog of ready-made AI agent recipes. Nothing is bought or sold, so there is no order, refund, or dispute flow to moderate.
There is no review gate before publication, and that is deliberate. A recipe becomes publicly listed the moment its author publishes one of their agents via POST /api/v1/catalog/agent-recipes/publish. Listing is self-service; moderation is after the fact.
What an admin can do today
- Review what is public, with the text that matters.
GET /api/v1/admin/catalog/agent-recipesreturns every recipe — published and withdrawn — includingrole,personaandsystem_prompt. The public list endpoint deliberately omits those three for payload size, which made it the wrong tool for auditing; this one exists because they are the only fields worth reading. - Take a single recipe down.
POST /api/v1/admin/catalog/agent-recipes/:id/unpublishwith{ "reason": "…" }. The row is never deleted —install_countand the audit trail are the record of everything installed from it. The author cannot undo an administrator's takedown;unpublished_byis what distinguishes it from their own retraction. - Suspend an abusive creator. Deactivate the offending User record at Users by setting
isActive: false. That account can no longer publish new recipes or install existing ones.
Authors can withdraw their own recipes without an admin, from Agent Recipes → Published by you, and so can an admin of the workspace the recipe was published from — which is what makes a recipe retractable after its author leaves the company whose system prompt is in it.
Withdrawing does not reach into anyone's workspace. Installing copies every field into a fresh agent and never references the recipe again, so a takedown stops new installs and changes nothing for existing ones.
Audit actions: catalog.agent_recipe.published, .unpublished, .republished, .installed.
What is missing / roadmap
- A dedicated moderation queue UI (today: the admin list endpoint plus the audit log).
- Category curation. The category list is fixed in
backend/src/constants/agentRecipeCategories.tsand published atGET /api/v1/catalog/agent-recipe-categories, so it is a code change rather than a runtime one.
Because installs are free and produce an inactive cloned agent in the installer's own workspace, the blast radius of a bad recipe is bounded — it does nothing until a user reviews it and turns it on.