plugins library

Stable protocol entrypoint for out-of-process Artisanal plugins.

Prefer this library when you want the supported remote-plugin wire surface for plugin host processes, guest plugin processes, schema validation, and future replay/compositor integrations.

For host-owned capabilities, prefer the generic plugin.service.request / host.service.response envelope plus RemotePluginGenericHostService and RemotePluginGuestServices. The older typed per-service request/response messages remain available for backward-compatible hosts and guests.

Classes

RemotePluginAnchorRect
RemotePluginBlurInput
RemotePluginCellAttributes
RemotePluginClipboardHostService
Host-side clipboard responder for one remote plugin connection.
RemotePluginClipboardReadRequest
RemotePluginClipboardReadResponse
RemotePluginClipboardWriteRequest
RemotePluginClipboardWriteResponse
RemotePluginCursor
RemotePluginFilePickerHostService
Host-side file picker responder for one remote plugin connection.
RemotePluginFilePickerRequest
RemotePluginFilePickerResponse
RemotePluginFocusInput
RemotePluginFrame
RemotePluginFrameCell
RemotePluginGenericHostService
Host-side responder for generic remote plugin service envelopes.
RemotePluginGenericServiceCatalog
RemotePluginGuestServices
Guest-side helper for host-owned remote plugin services.
RemotePluginGuestSession
Plugin-side session wrapper around a remote plugin channel.
RemotePluginHello
RemotePluginHostConnection
Bundled host-side connection to one out-of-process remote plugin.
RemotePluginHostHello
RemotePluginJsonChannel
Message channel for newline-delimited remote plugin JSON traffic.
RemotePluginJsonTransport
Newline-delimited JSON framing for remote plugin messages.
RemotePluginKeyInput
RemotePluginManifest
File-backed manifest describing one launchable remote plugin.
RemotePluginManifestPlacement
Manifest-backed host placement for a remote plugin surface.
RemotePluginManifestSchemas
RemotePluginManifestValidator
RemotePluginMessage
RemotePluginMouseInput
RemotePluginNotificationHostService
Host-side notification responder for one remote plugin connection.
RemotePluginNotificationRequest
RemotePluginNotificationResponse
RemotePluginOpenUrlHostService
Host-side URL opener for one remote plugin connection.
RemotePluginOpenUrlRequest
RemotePluginOpenUrlResponse
RemotePluginProcess
Running out-of-process plugin connected over stdio.
RemotePluginProtocolSchemas
RemotePluginProtocolValidator
RemotePluginResolvedSurfacePlacement
Resolved host placement for one open remote plugin surface.
RemotePluginServiceDescriptor
RemotePluginServiceRequest
RemotePluginServiceResponse
RemotePluginSession
Host-side session wrapper around a remote plugin channel.
RemotePluginSurfaceCell
Resolved cell state for a rendered remote plugin surface.
RemotePluginSurfaceClose
RemotePluginSurfaceController
Host-side controller that binds a session to a surface store.
RemotePluginSurfaceDrawable
UV drawable adapter for one resolved remote plugin surface.
RemotePluginSurfaceHit
One host hit mapped into a remote plugin surface.
RemotePluginSurfaceInputRouter
Host-side router that maps global input into remote plugin surfaces.
RemotePluginSurfaceOpen
RemotePluginSurfacePlacement
Explicit host placement override for one remote plugin surface.
RemotePluginSurfaceResize
RemotePluginSurfaceState
Mutable host-side state for one open remote plugin surface.
RemotePluginSurfaceStore
Host-side registry of open remote plugin surfaces.
RemotePluginWorkspace
Bundled multi-plugin host workspace built from manifest-backed plugins.

Extension Types

Schema
A JSON Schema object defining any kind of property.
ValidationError
A validation error with detailed information about the location of the error.

Extensions

SchemaValidation on Schema
An extension on Schema that adds validation functionality.

Constants

remotePluginProtocolVersion → const String

Functions

buildRemotePluginSurfaceLayers(RemotePluginSurfaceStore store, {Iterable<RemotePluginSurfacePlacement> placements = const []}) List<Layer>
Builds UV layers for the open surfaces in store.
hitTestRemotePluginSurface(RemotePluginSurfaceStore store, {Iterable<RemotePluginSurfacePlacement> placements = const [], required int column, required int row}) RemotePluginSurfaceHit?
Maps a host coordinate into the topmost remote plugin surface at that cell.
loadRemotePluginManifest(String manifestPath, {RemotePluginManifestValidator validator = const RemotePluginManifestValidator()}) Future<RemotePluginManifest>
Loads all *.plugin.json manifests from directoryPath.
loadRemotePluginManifests(String directoryPath, {RemotePluginManifestValidator validator = const RemotePluginManifestValidator()}) Future<List<RemotePluginManifest>>
Loads all *.plugin.json manifests from directoryPath.
resolveRemotePluginSurfacePlacements(RemotePluginSurfaceStore store, {Iterable<RemotePluginSurfacePlacement> placements = const []}) List<RemotePluginResolvedSurfacePlacement>
Resolves host placements for every open remote plugin surface in store.

Exceptions / Errors

RemotePluginManifestValidationException
RemotePluginProtocolValidationException
RemotePluginServiceException
Thrown when a host-side remote plugin service request fails.