Skip to main content

View Extensions

A View Extension is the standard contract for adding an interactive plugin view to an Xpert host surface. It defines where the view appears, when it is visible, which data and operations it can use, and how it is rendered. For Assistant Workbench, a Remote Component is one View Extension rendering mode. It owns the custom UI inside an iframe; the View Extension owns the host slot, feature activation, permissions, data, and action contract.

Core concepts

A Remote Component is not a standalone plugin type and cannot register itself without a manifest. A complete Workbench UI normally combines a server-side View Provider with a frontend Remote Component.

Hosts and slots

hostType identifies a host category. The platform can expose agent, project, knowledgebase, integration, and sandbox hosts. Assistant Workbench uses the agent host. Common slots include: A plugin can only contribute to slots declared by the host. Slot names describe product placement, not plugin business domains.

Feature activation

Assistant Workbench slots require activation.requiredFeatures. A Feature is the capability token that connects Agent functionality with its human-facing Workbench view:
Bind a View to the domain capability that owns its data and actions. Removing the middleware should remove both its Agent tools and its gated Workbench view.

View Providers

Register a provider with @ViewExtensionProvider(providerKey):
The provider receives the local manifest key. The platform exposes a public view key in this form:
For example, the review manifest from provider contract_review becomes contract_review__review.

Choose a rendering mode

The manifest view.type selects the renderer: Prefer a declarative renderer when it meets the product need. Use a Remote Component when the interaction and layout clearly exceed the platform table, list, or form surface.

The manifest is a capability allowlist

The manifest describes both the view and the host capabilities available to it: A Remote Component must not treat the bridge as a generic RPC tunnel. Declare every data or operation capability in the manifest before the host and provider handle it.

Opening and rendering are independent

A host can list a view from a slot, or a tool result can open it on demand with xpert.extension_view. This changes only the entry path; the manifest, permissions, provider data, and Remote Component implementation remain the same. A tool result should contain only the public view key, initial query, and business parameters. Do not include access tokens, API URLs, Assistant IDs, tenant IDs, or organization IDs.

Security boundary

  • The host resolves hostType, hostId, tenant, organization, and user from authenticated server-side state.
  • The platform validates manifests and filters them by feature activation and permissions.
  • Remote Components do not receive access tokens, platform API URLs, or internal host identity fields.
  • Providers must re-check business permissions and must not trust iframe-supplied business identifiers on their own.
  • Use JSON actions for bounded structured data and dedicated capabilities for files or large payloads.

Next steps