spec

module
v0.2026217.301 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2026 License: MIT

README

opencharly/spec

The OpenCharly wire/IR contract module: spec (config / wire / InstallPlan-IR types, generated from the CUE schema) + proto (the gRPC plugin transport). The dedicated contract that charly core and every plugin import — extracted from opencharly/sdk as part of the #55 import-purity program so core depends only on the contract, never on a mechanism kit.

  • Generate: task cue:gen (spec types from schema/*.cue) + task wire:gen (proto from protocol/schema/*.cue). A clean regen is a no-op (reproducibility-gated).
  • Go-module tags: v0.<YYYYDDD>.<HHMM> (semver-legal CalVer, leading zeros stripped).

Directories

Path Synopsis
Package capability (github.com/opencharly/spec/capability, #55 import-purity) holds the plugin capability DESCRIPTOR contract: the ProvidedCapability struct (one capability a plugin serves plus the CUE def that validates its plugin_input — the SDK-facing form of the proto ProvidedCapability), its StepContract (a class="step" plugin's declared install-step Scope/Venue/Gate/Emits), and CLISubcommand (the plain Name+Help authoring form of a class="command" capability's declared CLI child).
Package capability (github.com/opencharly/spec/capability, #55 import-purity) holds the plugin capability DESCRIPTOR contract: the ProvidedCapability struct (one capability a plugin serves plus the CUE def that validates its plugin_input — the SDK-facing form of the proto ProvidedCapability), its StepContract (a class="step" plugin's declared install-step Scope/Venue/Gate/Emits), and CLISubcommand (the plain Name+Help authoring form of a class="command" capability's declared CLI child).
Package checkhost is the spec fabric slice for the check-verb HOST-VANTAGE resolution family (#55 CHECK-ENGINE cone Option A: relocated from sdk/kit's check_endpoint.go + vnc_bridge.go) — the kind-blind host-side machinery the `charly check` verb dispatch serves back to an out-of-process verb over CheckContextService: resolving an in-venue TCP port to a host-reachable address (container publish / ssh -L forward / local), plus the UNIX-socket→TCP bridge a TCP-only RFB client needs.
Package checkhost is the spec fabric slice for the check-verb HOST-VANTAGE resolution family (#55 CHECK-ENGINE cone Option A: relocated from sdk/kit's check_endpoint.go + vnc_bridge.go) — the kind-blind host-side machinery the `charly check` verb dispatch serves back to an out-of-process verb over CheckContextService: resolving an in-venue TCP port to a host-reachable address (container publish / ssh -L forward / local), plus the UNIX-socket→TCP bridge a TCP-only RFB client needs.
Package checkstep hosts the TYPED-STEP state-provision contract cluster for host-coupled check-verb candies (#55 CHECK-ENGINE cone Option A): the StepKindName candy-contract string type + its consts, the StepDescriptor / ServicePackagedDesc / SystemPackagesDesc construction inputs, the ResolvePackageName cross-distro resolver, and the OPTIONAL StepProvider / ProvisionActor roles a kit candy implements alongside CheckVerbProvider.
Package checkstep hosts the TYPED-STEP state-provision contract cluster for host-coupled check-verb candies (#55 CHECK-ENGINE cone Option A): the StepKindName candy-contract string type + its consts, the StepDescriptor / ServicePackagedDesc / SystemPackagesDesc construction inputs, the ResolvePackageName cross-distro resolver, and the OPTIONAL StepProvider / ProvisionActor roles a kit candy implements alongside CheckVerbProvider.
Package climodel (github.com/opencharly/spec/climodel, #55 import-purity) holds the ValidateGenerated CUE-validation helper that checks a generated SDK value against its authoritative CUE definition, and re-exports the CLISubcommand authoring struct (the SDK-facing form of the proto CLISubcommand wire type).
Package climodel (github.com/opencharly/spec/climodel, #55 import-purity) holds the ValidateGenerated CUE-validation helper that checks a generated SDK value against its authoritative CUE definition, and re-exports the CLISubcommand authoring struct (the SDK-facing form of the proto CLISubcommand wire type).
Package clireflect (github.com/opencharly/spec/clireflect, #55 import-purity) holds the Kong→CLIModel reflection mechanism: the single implementation of the command-tree reflection that produces the CUE-generated spec.CLIModel contract.
Package clireflect (github.com/opencharly/spec/clireflect, #55 import-purity) holds the Kong→CLIModel reflection mechanism: the single implementation of the command-tree reflection that produces the CUE-generated spec.CLIModel contract.
Package container is the spec fabric slice for container-engine host helpers — resolving which engine binary to invoke, its GPU run-args, and auto-detecting the installed engine.
Package container is the spec fabric slice for container-engine host helpers — resolving which engine binary to invoke, its GPU run-args, and auto-detecting the installed engine.
Package exitcode (github.com/opencharly/spec/exitcode, #55 import-purity) holds the process exit-code contract a command plugin's Invoke(OpRun) returns to the host and the check-command 0/1/2/3 convention single-sourced here so both the host (main()'s exit mapping + `charly box feature run`) and the check-engine candy reference ONE contract.
Package exitcode (github.com/opencharly/spec/exitcode, #55 import-purity) holds the process exit-code contract a command plugin's Invoke(OpRun) returns to the host and the check-command 0/1/2/3 convention single-sourced here so both the host (main()'s exit mapping + `charly box feature run`) and the check-engine candy reference ONE contract.
Package hostenv holds kind-agnostic HOST-ENVIRONMENT probes — pure host inspection (os-release distro identity, glibc version) + best-effort host setup actions (libvirt user-session spawn) with no charly-config / kind / registry coupling.
Package hostenv holds kind-agnostic HOST-ENVIRONMENT probes — pure host inspection (os-release distro identity, glibc version) + best-effort host setup actions (libvirt user-session spawn) with no charly-config / kind / registry coupling.
internal
schemagen command
Command schemagen is the dev-time companion code generator for the `spec` package.
Command schemagen is the dev-time companion code generator for the `spec` package.
wiregen command
Command wiregen makes CUE the author of record for Charly's protobuf transport contract.
Command wiregen makes CUE the author of record for Charly's protobuf transport contract.
Package lock is the spec fabric slice for advisory file locking — a host primitive a plugin physically cannot hold (a syscall.Flock over an on-disk lock file).
Package lock is the spec fabric slice for advisory file locking — a host primitive a plugin physically cannot hold (a syscall.Flock over an on-disk lock file).
Package ops (github.com/opencharly/spec/ops, #55 import-purity) holds the operation selectors (the op.Op / InvokeRequest.Op wire value), the ResultJSON reply builder every out-of-process check verb uses, and InvokeProviderOpts — the optional extras to an Executor.InvokeProvider peer-dispatch call.
Package ops (github.com/opencharly/spec/ops, #55 import-purity) holds the operation selectors (the op.Op / InvokeRequest.Op wire value), the ResultJSON reply builder every out-of-process check verb uses, and InvokeProviderOpts — the optional extras to an Executor.InvokeProvider peer-dispatch call.
Package phase (github.com/opencharly/spec/phase, #55 import-purity) holds the plugin LIFECYCLE phase vocabulary (F9): the ordered points at which a plugin participates in charly's lifecycle.
Package phase (github.com/opencharly/spec/phase, #55 import-purity) holds the plugin LIFECYCLE phase vocabulary (F9): the ordered points at which a plugin participates in charly's lifecycle.
Package proc is a stdlib-only fabric slice of the spec contract module (github.com/opencharly/spec/proc, #55 step1) holding generic host-process lifecycle + launch plumbing: catchable-signal-triggered cleanup hooks, a stale-temp-file sweep, the current-binary subcommand runner, and the process-group shutdown + remote-launch-command renderers (launch.go).
Package proc is a stdlib-only fabric slice of the spec contract module (github.com/opencharly/spec/proc, #55 step1) holding generic host-process lifecycle + launch plumbing: catchable-signal-triggered cleanup hooks, a stale-temp-file sweep, the current-binary subcommand runner, and the process-group shutdown + remote-launch-command renderers (launch.go).
Package refs is the spec fabric slice for the remote-repo GIT primitives — pure git-exec + string parsing + cache-path computation, host primitives a plugin composes but the kernel itself needs (reconcile's --remote tag query, the collection walk).
Package refs is the spec fabric slice for the remote-repo GIT primitives — pure git-exec + string parsing + cache-path computation, host primitives a plugin composes but the kernel itself needs (reconcile's --remote tag query, the collection walk).
Package report hosts the check-run result reporters — the FormatStepResults* family + ReportStepResultsCount + ClassifyStepFailures — relocated to a spec fabric slice (#55 CHECK-ENGINE cone Option A) so the deploy-verify path (candy/plugin-bundle's verify_local.go, #55 W3 B3 — a plugin now, not core) reaches them importing zero kit.
Package report hosts the check-run result reporters — the FormatStepResults* family + ReportStepResultsCount + ClassifyStepFailures — relocated to a spec fabric slice (#55 CHECK-ENGINE cone Option A) so the deploy-verify path (candy/plugin-bundle's verify_local.go, #55 W3 B3 — a plugin now, not core) reaches them importing zero kit.
Package schema exports the CUE schema source as an embedded FS — the single runtime origin for charly core's sharedCueSchema, the loader's base-schema splice, and the dev-time spec generation.
Package schema exports the CUE schema source as an embedded FS — the single runtime origin for charly core's sharedCueSchema, the loader's base-schema splice, and the dev-time spec generation.
THE single schema-concatenation contract (R3).
THE single schema-concatenation contract (R3).
Pure structural methods on the generated/aliased spec types, relocated here from package main by the CUE-single-source cutover (WF-B THE REPOINT).
Pure structural methods on the generated/aliased spec types, relocated here from package main by the CUE-single-source cutover (WF-B THE REPOINT).
Package testkit provides disposable live protocol fixtures shared by SDK consumers.
Package testkit provides disposable live protocol fixtures shared by SDK consumers.
Package transport (github.com/opencharly/spec/transport, #55 step1) provides transport-neutral gRPC connections to Charly targets.
Package transport (github.com/opencharly/spec/transport, #55 step1) provides transport-neutral gRPC connections to Charly targets.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL