Skip to content

plugin-builder-pixi

Placement runtime (out-of-process over gRPC)
Source github.com/opencharly/charly/candy/plugin-builder-pixi
Version 2026.182.0100
Candy plugin-builder-pixi

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).

The reserved words this plugin serves:

  • pixi — builder class

OUT-OF-TREE charly plugin serving the pixi builder’s BUILD-TIME multi-stage (OpResolve)

  • its DEPLOY-TIME IR shim. A standalone Go module (go.mod + main.go) that dispatches to the shared sdk/kit logic (R3): OpResolve (→ kit.BuilderResolve — the FROM <builder> AS pixi-build stage + COPY artifacts, C10, no longer the core embedded vocabulary), OpCollectContext (the per-candy stage-context keys the host records on a BuilderStep — pixi → {env_name}) and OpReverse (that step’s teardown ops — pixi → pixi-env-remove). The deploy-time pair runs in the host build PRE-PASS, BEFORE the pure BuildDeployPlan compile, so the compiler never dials a plugin. Selection stays DETECTION (a candy’s pixi.toml), never an authored external_builder:.

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.

// Self-contained input schema for the builder:pixi capability — references no base def, so it
// compiles standalone (the SDK's serve-side compile). A builder authors no plugin_input (it is
// TRIGGERED by detection — a candy's pixi.toml — never by an authored field), so this def carries
// no fields; it ships so the schema travels with the plugin (non-empty, base ++ plugin splice)
// exactly like every other plugin capability.
#PixiBuilderInput: {
}

See also the candy reference for this candy’s install surface.