{
  "schema": "hopper.showcase-discovery-index.v1",
  "authority": "Showcase rooms, public catalog, articles, navigation and browser operation adapters. Discovery only; not release or access authority.",
  "guide": "/agents.md",
  "fullGuide": "/agents/full.md",
  "fullManifest": "/agent-manifest.json",
  "siteGraph": "/sitegraph.json",
  "apps": [
    {
      "id": "business-name-checker",
      "title": "Business Name Checker",
      "product": "/products/business-name-checker",
      "demo": "/demos/business-name-checker",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "title": "Naming research",
        "settings": {
          "description": "Independent wealth management for families and business owners.",
          "industry": "Wealth management",
          "jurisdiction": "California",
          "tlds": [
            "com",
            "ai"
          ],
          "platforms": [
            "LinkedIn",
            "Instagram"
          ]
        }
      },
      "schema": "/agents/apps/business-name-checker.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "mock-stripe",
      "title": "Payments Simulator",
      "product": "/products/mock-stripe",
      "demo": "/demos/mock-stripe",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "temporary-session",
      "sample": {},
      "schema": "/agents/apps/mock-stripe.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "notes",
      "title": "Notes",
      "product": "/products/notes",
      "demo": "/demos/notes",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "title": "A better workshop",
        "body": "# A better workshop\n\nWhat would make the next workshop useful?\n\n- Give everyone something to try\n- Leave room for questions\n- Capture what we learn",
        "tags": [
          "workshop"
        ],
        "pinned": true,
        "contactRefs": [],
        "citations": [],
        "attachmentRefs": []
      },
      "schema": "/agents/apps/notes.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "notes-graph",
      "title": "Notes Graph",
      "product": "/products/notes-graph",
      "demo": "/demos/notes-graph",
      "status": "Requires an explicitly configured local owner instance",
      "browserLocal": false,
      "storage": "local-owner",
      "sample": {},
      "schema": "/agents/apps/notes-graph.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        }
      ]
    },
    {
      "id": "mind-map",
      "title": "Mind Map",
      "product": "/products/mind-map",
      "demo": "/demos/mind-map",
      "status": "Requires an explicitly configured local owner instance",
      "browserLocal": false,
      "storage": "local-owner",
      "sample": {},
      "schema": "/agents/apps/mind-map.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        }
      ]
    },
    {
      "id": "contacts",
      "title": "Contacts",
      "product": "/products/contacts",
      "demo": "/demos/contacts",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "givenName": "Alex",
        "familyName": "Morgan",
        "organization": "Workshop Collective",
        "title": "Learning designer",
        "emails": [
          {
            "label": "work",
            "value": "alex@example.com"
          }
        ],
        "phones": [],
        "notes": "Fictional contact for this demo.",
        "groups": [
          "Workshop"
        ],
        "favorite": true
      },
      "schema": "/agents/apps/contacts.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "calendar",
      "title": "Calendar",
      "product": "/products/calendar",
      "demo": "/demos/calendar",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "calendarId": "Read an existing calendarId from GET /v1/calendars first",
        "title": "A focused hour",
        "startsAt": "2026-09-17T16:00:00.000Z",
        "endsAt": "2026-09-17T17:00:00.000Z",
        "timezone": "America/Los_Angeles",
        "notes": "Choose the date and time with the user before creating."
      },
      "schema": "/agents/apps/calendar.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        },
        {
          "action": "calendars",
          "readOnly": true
        }
      ]
    },
    {
      "id": "maps",
      "title": "Maps & Places",
      "product": "/products/maps",
      "demo": "/demos/maps",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "name": "Workshop Space",
        "kind": "venue",
        "coordinates": {
          "latitude": 37.776,
          "longitude": -122.416
        },
        "timezone": "America/Los_Angeles",
        "description": "A fictional venue. The coordinate canvas is illustrative, not a street map.",
        "verification": "unverified"
      },
      "schema": "/agents/apps/maps.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "tasks",
      "title": "Tasks",
      "product": "/products/tasks",
      "demo": "/demos/tasks",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "title": "Prepare workshop questions",
        "notes": "What should everyone leave knowing?",
        "tags": [
          "workshop"
        ]
      },
      "schema": "/agents/apps/tasks.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "calculator",
      "title": "Calculator",
      "product": "/products/calculator",
      "demo": "/demos/calculator",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "expression": "0.1 + 0.2",
        "angle": "radians"
      },
      "schema": "/agents/apps/calculator.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "evaluate",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": true
        },
        {
          "action": "save",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "clock",
      "title": "Clock",
      "product": "/products/clock",
      "demo": "/demos/clock",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "type": "timer.add",
        "label": "Focus",
        "durationMs": 300000
      },
      "schema": "/agents/apps/clock.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "time-personal",
      "title": "Time Tracker - Personal",
      "product": "/products/time-personal",
      "demo": "/demos/time-personal",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "type": "area.save",
        "area": {
          "name": "Deep work",
          "color": "#5e5ce6",
          "goalMinutesPerWeek": 600
        }
      },
      "schema": "/agents/apps/time-personal.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "reader",
      "title": "Reader",
      "product": "/products/reader",
      "demo": "/demos/reader",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/reader.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "save",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "bookmarks",
      "title": "Bookmarks",
      "product": "/products/bookmarks",
      "demo": "/demos/bookmarks",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/bookmarks.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "streaks",
      "title": "Streaks",
      "product": "/products/streaks",
      "demo": "/demos/streaks",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/streaks.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "knowledge",
      "title": "Knowledge",
      "product": "/products/knowledge",
      "demo": "/demos/knowledge",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/knowledge.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "sketchbook",
      "title": "Sketchbook",
      "product": "/products/sketchbook",
      "demo": "/demos/sketchbook",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/sketchbook.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "save",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "reservations",
      "title": "Reservations",
      "product": "/products/reservations",
      "demo": "/demos/reservations",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/reservations.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "password-vault",
      "title": "Password Vault",
      "product": "/products/password-vault",
      "demo": "/demos/password-vault",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/password-vault.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "document-viewer",
      "title": "Document Viewer",
      "product": "/products/document-viewer",
      "demo": "/demos/document-viewer",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/document-viewer.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "photo-library",
      "title": "Photo Library",
      "product": "/products/photo-library",
      "demo": "/demos/photo-library",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/photo-library.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "document-scanner",
      "title": "Document Scanner",
      "product": "/products/document-scanner",
      "demo": "/demos/document-scanner",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/document-scanner.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "voice-recorder",
      "title": "Voice Recorder",
      "product": "/products/voice-recorder",
      "demo": "/demos/voice-recorder",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/voice-recorder.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "leaderboard",
      "title": "Leaderboard",
      "product": "/products/leaderboard",
      "demo": "/demos/leaderboard",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/leaderboard.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "mail",
      "title": "Mail",
      "product": "/products/mail",
      "demo": "/demos/mail",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/mail.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "brands-info",
      "title": "Brands Info",
      "product": "/products/brands-info",
      "demo": "/demos/brands-info",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "temporary-session",
      "sample": {},
      "schema": "/agents/apps/brands-info.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        }
      ]
    },
    {
      "id": "brand-icon-lookup",
      "title": "Brand Icon Lookup",
      "product": "/products/brand-icon-lookup",
      "demo": "/demos/brand-icon-lookup",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "temporary-session",
      "sample": {},
      "schema": "/agents/apps/brand-icon-lookup.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        }
      ]
    },
    {
      "id": "files",
      "title": "Files",
      "product": "/products/files",
      "demo": "/demos/files",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/files.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "email-campaigns",
      "title": "Email Campaigns",
      "product": "/products/email-campaigns",
      "demo": "/demos/email-campaigns",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/email-campaigns.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "journal",
      "title": "Journal",
      "product": "/products/journal",
      "demo": "/demos/journal",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {
        "notebookId": "notebook:journal",
        "title": "A small observation",
        "body": "What deserves more attention?",
        "entryDate": "2026-09-18",
        "tags": [
          "reflection"
        ]
      },
      "schema": "/agents/apps/journal.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "read",
          "readOnly": true
        },
        {
          "action": "create",
          "readOnly": false
        },
        {
          "action": "update",
          "readOnly": false
        },
        {
          "action": "remove",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "messages",
      "title": "Messages",
      "product": "/products/messages",
      "demo": "/demos/messages",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "temporary-session",
      "sample": {},
      "schema": "/agents/apps/messages.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        }
      ]
    },
    {
      "id": "store",
      "title": "Store",
      "product": "/products/store",
      "demo": "/demos/store",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/store.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "time-pro",
      "title": "Time Tracker - Pro",
      "product": "/products/time-pro",
      "demo": "/demos/time-pro",
      "status": "Requires an explicitly configured local owner instance",
      "browserLocal": false,
      "storage": "local-owner",
      "sample": {},
      "schema": "/agents/apps/time-pro.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        }
      ]
    },
    {
      "id": "time-business",
      "title": "Time Tracker - Business",
      "product": "/products/time-business",
      "demo": "/demos/time-business",
      "status": "Requires an explicitly configured local owner instance",
      "browserLocal": false,
      "storage": "local-owner",
      "sample": {},
      "schema": "/agents/apps/time-business.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        }
      ]
    },
    {
      "id": "arithmetic-practice",
      "title": "Arithmetic Practice",
      "product": "/products/arithmetic-practice",
      "demo": "/demos/arithmetic-practice",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/arithmetic-practice.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "personality",
      "title": "Personality",
      "product": "/products/personality",
      "demo": "/demos/personality",
      "status": "Browser-local demo",
      "browserLocal": true,
      "storage": "optional-browser-storage",
      "sample": {},
      "schema": "/agents/apps/personality.json",
      "actions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "ai-effectiveness",
      "title": "AI Effectiveness",
      "product": "/products/ai-effectiveness",
      "status": "Runs in its owner runtime; agents reach it through Integration Studio",
      "browserLocal": false,
      "storage": "owner",
      "owner": {
        "productId": "hopper.domain-app.ai-effectiveness",
        "version": "0.7.8-launcher.1",
        "sourceRevision": "dd5b4b9d5396587e2e4f49343b0ca2a36b337a6f",
        "package": {
          "name": "@hopper/ai-effectiveness-host",
          "version": "0.7.8-launcher.1",
          "file": "hopper-ai-effectiveness-host-0.7.8-launcher.1.tgz",
          "sha256": "6c8021e1a89d50410a68533c491dd8bce474a4bb41f0f5fa5534cfda198887c0"
        },
        "registryVersion": "0.1.0"
      },
      "schema": "/agents/apps/ai-effectiveness.json",
      "actions": [
        {
          "action": "effectiveness.cost.basis",
          "readOnly": true
        },
        {
          "action": "effectiveness.cost.configure",
          "readOnly": false
        },
        {
          "action": "effectiveness.cost.query",
          "readOnly": true
        },
        {
          "action": "effectiveness.thread.search",
          "readOnly": true
        },
        {
          "action": "effectiveness.evidence.search",
          "readOnly": true
        },
        {
          "action": "effectiveness.trace.record",
          "readOnly": false
        },
        {
          "action": "effectiveness.trace.query",
          "readOnly": true
        },
        {
          "action": "effectiveness.trace.retract",
          "readOnly": false
        },
        {
          "action": "effectiveness.work",
          "readOnly": true
        },
        {
          "action": "effectiveness.evidence.resolve",
          "readOnly": true
        },
        {
          "action": "effectiveness.git.read",
          "readOnly": true
        },
        {
          "action": "effectiveness.compose",
          "readOnly": true
        },
        {
          "action": "effectiveness.graph.query",
          "readOnly": true
        },
        {
          "action": "effectiveness.graph.derive",
          "readOnly": true
        },
        {
          "action": "effectiveness.semantics",
          "readOnly": true
        },
        {
          "action": "projects.list",
          "readOnly": true
        },
        {
          "action": "projects.register",
          "readOnly": false
        },
        {
          "action": "projects.resolve",
          "readOnly": true
        },
        {
          "action": "projects.archive",
          "readOnly": false
        },
        {
          "action": "effectiveness.context.refresh",
          "readOnly": false
        },
        {
          "action": "effectiveness.archive.scan",
          "readOnly": false
        },
        {
          "action": "effectiveness.archive.search",
          "readOnly": true
        },
        {
          "action": "effectiveness.archive.read",
          "readOnly": true
        },
        {
          "action": "effectiveness.query",
          "readOnly": true
        },
        {
          "action": "effectiveness.ask",
          "readOnly": true
        },
        {
          "action": "effectiveness.investigate",
          "readOnly": true
        },
        {
          "action": "effectiveness.capacity",
          "readOnly": true
        },
        {
          "action": "effectiveness.snapshot",
          "readOnly": true
        },
        {
          "action": "effectiveness.settings",
          "readOnly": true
        },
        {
          "action": "effectiveness.configure",
          "readOnly": false
        },
        {
          "action": "effectiveness.scan",
          "readOnly": false
        },
        {
          "action": "effectiveness.model",
          "readOnly": true
        },
        {
          "action": "effectiveness.review",
          "readOnly": false
        },
        {
          "action": "effectiveness.reviews",
          "readOnly": true
        },
        {
          "action": "effectiveness.detail",
          "readOnly": true
        },
        {
          "action": "effectiveness.facts",
          "readOnly": true
        },
        {
          "action": "effectiveness.forget",
          "readOnly": false
        }
      ],
      "demo": "/demos/ai-effectiveness",
      "browserActions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    },
    {
      "id": "project-cost-controls",
      "title": "Project Cost Controls",
      "product": "/products/project-cost-controls",
      "status": "Runs in its owner runtime; agents reach it through Integration Studio",
      "browserLocal": false,
      "storage": "owner",
      "owner": {
        "productId": "hopper.domain-app.project-cost-controls",
        "version": "0.1.8-launcher.1",
        "sourceRevision": "dd5b4b9d5396587e2e4f49343b0ca2a36b337a6f",
        "package": {
          "name": "@hopper/project-cost-controls-host",
          "version": "0.1.8-launcher.1",
          "file": "hopper-project-cost-controls-host-0.1.8-launcher.1.tgz",
          "sha256": "b98584b67e3cc8f6bdb0dfd2773f56bc265a19ea789603bc47c44d1d7e0f45d6"
        },
        "registryVersion": "0.1.8"
      },
      "schema": "/agents/apps/project-cost-controls.json",
      "actions": [
        {
          "action": "costs.health",
          "readOnly": true
        },
        {
          "action": "costs.collection.scan",
          "readOnly": false
        },
        {
          "action": "costs.connections.get",
          "readOnly": true
        },
        {
          "action": "costs.connections.set",
          "readOnly": false
        },
        {
          "action": "costs.project.context",
          "readOnly": true
        },
        {
          "action": "costs.service.status",
          "readOnly": true
        },
        {
          "action": "costs.service.start",
          "readOnly": false
        },
        {
          "action": "costs.service.stop",
          "readOnly": false
        },
        {
          "action": "costs.alerts.scan",
          "readOnly": false
        },
        {
          "action": "costs.notifications.list",
          "readOnly": true
        },
        {
          "action": "costs.status",
          "readOnly": true
        },
        {
          "action": "costs.projects.list",
          "readOnly": true
        },
        {
          "action": "costs.project.get",
          "readOnly": true
        },
        {
          "action": "costs.project.compare",
          "readOnly": true
        },
        {
          "action": "costs.project.trend",
          "readOnly": true
        },
        {
          "action": "costs.project.evidence",
          "readOnly": true
        },
        {
          "action": "costs.evidence.resolve",
          "readOnly": true
        },
        {
          "action": "costs.project.work",
          "readOnly": true
        },
        {
          "action": "costs.graph.query",
          "readOnly": true
        },
        {
          "action": "costs.graph.derive",
          "readOnly": true
        },
        {
          "action": "costs.basis.get",
          "readOnly": true
        },
        {
          "action": "costs.basis.set",
          "readOnly": false
        },
        {
          "action": "costs.budget.set",
          "readOnly": false
        },
        {
          "action": "costs.budgets.list",
          "readOnly": true
        },
        {
          "action": "costs.alerts.list",
          "readOnly": true
        },
        {
          "action": "costs.models",
          "readOnly": true
        },
        {
          "action": "costs.review.create",
          "readOnly": false
        },
        {
          "action": "costs.reviews.list",
          "readOnly": true
        },
        {
          "action": "costs.review.get",
          "readOnly": true
        },
        {
          "action": "costs.refresh",
          "readOnly": false
        }
      ],
      "demo": "/demos/project-cost-controls",
      "browserActions": [
        {
          "action": "list",
          "readOnly": true
        },
        {
          "action": "command",
          "readOnly": false
        },
        {
          "action": "export",
          "readOnly": true
        }
      ]
    }
  ]
}
