Reference

Marketplace extension model

The Market is the catalog and install surface for Yapture extensions. Public site pages explain the model and link to authenticated app_v2 install flows; authenticated clients use the installed inventory API for canonical state.

Overview

Catalog pages describe what can be installed. Install state is not inferred from those catalogs. Every authenticated client should read GET /api/user/installed and cache entries by InstalledExtension.key.

Public vs authenticated surfaces

site_v2 publishes public specs and listings. app_v2 owns account-specific install, uninstall, enable/disable, ratings, and inventory views.

Extension types

Type Purpose Stable key
plugin Signed WASM command package for Launcher, desktop, and command-palette hosts. plugin:<slug>
macro_pack Versioned set of portable macro definitions that materialize into user macro records. macro_pack:<slug>
integration OAuth or service connection that grants scoped access to external systems. integration:<slug>
chat_pack Reusable assistant prompts, tools, or conversation templates for chat surfaces. chat_pack:<slug>

Install endpoint model

Install endpoints are typed by catalog section and slug. app_v2 handles authentication, consent, validation, and creation of the install record. Public site install buttons should link to the authenticated app Market route for the same slug.

install endpoints http
POST /api/market/plugins/github-jump/install
DELETE /api/market/plugins/github-jump/install

POST /api/market/macros/recruiter-starter/install
DELETE /api/market/macros/recruiter-starter/install
  • Plugin install validates manifest, signatures, ABI, trigger conflicts, and capabilities.
  • Macro pack install validates the pack and materializes included macros into user macro records.
  • Integration install grants scoped OAuth or service credentials.
  • Chat pack install adds reusable chat assets to the user's available pack list.

Installed inventory model

GET /api/user/installed is the canonical installed inventory endpoint. It normalizes plugin, macro pack, integration, and chat pack installs into one response.

InstalledExtensionsResponse json
{
  "data": [
    {
      "id": "lpi_01HV7QK3KX7Z9Q9Y6RZ2Z9W3R5",
      "type": "plugin",
      "key": "plugin:github-jump",
      "slug": "github-jump",
      "name": "GitHub Jump",
      "description": "Search repositories, pull requests, and issues.",
      "icon": "github",
      "version": "0.3.3",
      "author": "Dev Tools Co",
      "enabled": true,
      "installedAt": "2026-05-24T18:05:00.000Z",
      "updatedAt": "2026-05-24T18:05:00.000Z",
      "clients": ["app_v2", "desktop", "launcher"],
      "source": "launcher_plugin_install"
    },
    {
      "id": "ump_01HV7R4P9TNCHY2Y8MA91C9KG4",
      "type": "macro_pack",
      "key": "macro_pack:recruiter-starter",
      "slug": "recruiter-starter",
      "name": "Recruiter starter pack",
      "version": "1.0.0",
      "author": "Yapture",
      "enabled": true,
      "installedAt": "2026-05-24T18:08:00.000Z",
      "clients": ["app_v2", "browser_v2", "cli_v2", "desktop", "launcher"],
      "source": "user_macro_pack"
    }
  ],
  "error": null,
  "totals": {
    "plugin": 1,
    "macro_pack": 1,
    "integration": 0,
    "chat_pack": 0
  },
  "generatedAt": "2026-05-24T18:10:00.000Z"
}

Cross-client availability

The inventory response carries a clients array so every surface can distinguish installed from runnable.

Client Marketplace behavior
app_v2 Authenticated Market UI, install/uninstall actions, account inventory, and macro management.
site_v2 Public documentation and listing pages. It links to app_v2 for authenticated install actions.
browser_v2 Installed badges, macro pack availability, and local offline macro cache after auth.
cli_v2 market installed commands, macro sync, and local inventory cache keyed by InstalledExtension.key.
desktop Plugin and macro management UI, local runtime cache, and system text expansion.
launcher Plugin prefix hints, command results, and macro search backed by Desktop or API sync.

Review and rating model

Rating

One rating per installed user per extension. Aggregates are shown on public Market pages.

Review

Optional short text tied to an installed version and publisher response thread.

Abuse report

Separate moderation path for malware, spam, capability misuse, or unsafe macro packs.

Publisher quality

Review status considers signatures, capability scope, install warnings, and support metadata.

Update behavior

Case Behavior
Patch update Auto-update is allowed when signatures verify and requested capabilities do not expand.
New capability Update is paused until the user reviews and approves the added grant.
Breaking compatibility Clients that do not meet min_yapture or client compatibility stay on the last compatible version.
Macro pack update Unchanged pack-sourced macros update in place; user-owned forks are preserved.
Uninstall Install record is removed. Pack-sourced macros are deleted on sync; user-created records remain.