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.
Enums
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.jsonmanifests fromdirectoryPath. -
loadRemotePluginManifests(
String directoryPath, {RemotePluginManifestValidator validator = const RemotePluginManifestValidator()}) → Future< List< RemotePluginManifest> > -
Loads all
*.plugin.jsonmanifests fromdirectoryPath. -
resolveRemotePluginSurfacePlacements(
RemotePluginSurfaceStore store, {Iterable< RemotePluginSurfacePlacement> placements = const []}) → List<RemotePluginResolvedSurfacePlacement> -
Resolves host placements for every open remote plugin surface in
store.
Typedefs
-
RemotePluginClipboardReader
= FutureOr<
String?> Function(String selection) -
RemotePluginClipboardWriter
= FutureOr<
void> Function(String selection, String text) -
RemotePluginFilePickerHandler
= FutureOr<
List< Function(RemotePluginFilePickerRequest request)String> ?> -
RemotePluginGenericServiceHandler
= FutureOr<
JsonObject> Function(RemotePluginServiceRequest request) -
RemotePluginNotifier
= FutureOr<
void> Function(RemotePluginNotificationRequest request) -
RemotePluginSurfaceMessageSender
= Future<
void> Function(RemotePluginMessage message) -
RemotePluginUrlOpener
= FutureOr<
void> Function(Uri uri)
Exceptions / Errors
- RemotePluginManifestValidationException
- RemotePluginProtocolValidationException
- RemotePluginServiceException
- Thrown when a host-side remote plugin service request fails.