Views v1

Purpose

An agent often hosts standing web surfaces beyond chat — dashboards, report pages, download indexes — served from its own origin, under its own auth. This extension lets the agent declare those surfaces on its AgentCard so a workbench can surface them (typically in navigation) without any per-agent configuration.

The workbench's sidebar is a projection of what enabled, entitlement- visible agents currently declare. Registration is nothing more than declaration: an agent adds a view by editing its own card, and every consuming workbench picks it up on its next card read.

Declaration

The extension appears in the AgentCard's capabilities.extensions[]:

{
  "uri": "https://standards.upperhandai.com/ext/views/v1",
  "required": false,
  "description": "Standing web surfaces this agent hosts.",
  "params": {
    "views": [
      {
        "id": "waves",
        "name": "Wave Tracker",
        "url": "https://versant-agent.thefocus.ai/waves",
        "kind": "page",
        "description": "All-brand KPI table by survey wave"
      },
      {
        "id": "quarters",
        "name": "Quarterly Workbooks",
        "url": "https://versant-agent.thefocus.ai/quarters",
        "kind": "downloads"
      }
    ]
  }
}

params schema

{
  "type": "object",
  "required": ["views"],
  "properties": {
    "views": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "name", "url", "kind"],
        "properties": {
          "id":          { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
          "name":        { "type": "string", "maxLength": 60 },
          "url":         { "type": "string", "format": "uri" },
          "kind":        { "enum": ["page", "downloads"] },
          "description": { "type": "string", "maxLength": 200 }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}

Consumer requirements

A workbench consuming this extension:

  1. MUST treat the card as the source of truth, re-reading it at call time (a cache TTL at or below the card's own HTTP cache headers is acceptable). Admin-side overrides may hide a declared view but never invent one.
  2. MUST scope visibility to users entitled to the agent itself.
  3. MUST NOT proxy or re-serve the view's content; the link resolves on the agent's origin under the agent's auth.
  4. MUST ignore the extension entirely when absent — agents without it are fully functional peers.

Conformance (probed)