plugin-example-dispatch
| Placement | runtime (out-of-process over gRPC) |
| Source | github.com/opencharly/charly/candy/plugin-example-dispatch |
| Version | 2026.181.0001 |
| Candy | plugin-example-dispatch |
This plugin is not listed in charly/charly.yml’s compiled_plugins:. It is not part of the shipped binary: charly builds and loads it out-of-process over gRPC when a plan references one of its words (the coexist path).
Providers
Section titled “Providers”The reserved words this plugin serves:
exampledispatch— verb classexampledispatchpeer— verb class
What it does
Section titled “What it does”Reference OUT-OF-TREE plugin proving the F10 reverse legs: during its own Invoke (run with a reverse channel) it calls BACK to the host to (1) INVOKE ANOTHER plugin’s verb (sdk.Executor.InvokeProvider — plugin↔plugin via the host broker) and (2) request a HOST-BUILD (sdk.Executor.HostBuild — the host runs a registered host-builder). It exercises the nested-broker round-trip generically — the generalization of the RunHostStep ExternalPlugin arm to any class/op + a standalone build request. The machinery M13/M14/M16/M17 reuse.
Parameter schema
Section titled “Parameter schema”The CUE schema below is the authoritative grammar for this plugin’s input. It is the same single source that generates the plugin’s Go parameter types and answers the runtime Describe RPC, so this page cannot disagree with either.
schema/exampledispatch.cue
Section titled “schema/exampledispatch.cue”// schema/exampledispatch.cue — the SELF-CONTAINED CUE def for the F10 dispatch demo verb's input.#ExampledispatchInput: { target_word?: string // a verb word the host resolves + invokes on this plugin's behalf (plugin↔plugin) build_candy_dir?: string // a candy dir the host builds a plugin binary for (host-build) build_name?: string // peer_cmd, when set, is forwarded to exampledispatchpeer, which RunCaptures it over // whatever executor the host threads onto it (S1 proof — the venue-scoped-executor-session // seam: the executor is this plugin's own by default, or a fresh one the host materialized // from venue_descriptor below). peer_cmd?: string // venue_descriptor, when set, rides InvokeProviderOpts on the InvokeProvider call to // target_word — the host re-materializes a FRESH executor from it (mirrors // spec.VenueDescriptor) instead of forwarding this plugin's own executor. venue_descriptor?: { kind: "shell" | "ssh" user?: string host?: string port?: int args?: [...string] connect_timeout?: int }}See also the candy reference for this candy’s install surface.