Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
dhole
command
Command dhole is the Dhole control plane binary and its command line.
|
Command dhole is the Dhole control plane binary and its command line. |
|
dhole-engine
command
Command dhole-engine runs a Dhole engine: it dials the bus, announces itself, and works the dispatches for its trust tier.
|
Command dhole-engine runs a Dhole engine: it dials the bus, announces itself, and works the dispatches for its trust tier. |
|
dhole/cli
Package cli is the Dhole command line, and it is deliberately not a convenience wrapper over a favourite subset of the API.
|
Package cli is the Dhole command line, and it is deliberately not a convenience wrapper over a favourite subset of the API. |
|
Package conformance is the executable half of docs/wire-contract.md.
|
Package conformance is the executable half of docs/wire-contract.md. |
|
cmd/dhole-conformance
command
Command dhole-conformance runs the engine conformance suite against any engine command, in any language.
|
Command dhole-conformance runs the engine conformance suite against any engine command, in any language. |
|
gen
|
|
|
internal
|
|
|
api
Package api serves the one contract the GUI, the CLI and agents all use.
|
Package api serves the one contract the GUI, the CLI and agents all use. |
|
blobstore
Package blobstore holds bytes addressed by a key the control plane chose: step logs and large artifacts.
|
Package blobstore holds bytes addressed by a key the control plane chose: step logs and large artifacts. |
|
bus
Package bus carries transport between the control plane and its engines.
|
Package bus carries transport between the control plane and its engines. |
|
cache
Package cache turns a step's declared inputs into a content-addressed key, so a step whose inputs have been seen before is skipped and its recorded outputs reused (ADR 0009).
|
Package cache turns a step's declared inputs into a content-addressed key, so a step whose inputs have been seen before is skipped and its recorded outputs reused (ADR 0009). |
|
cas
Package cas is the content-addressed store: blobs named by the hash of their bytes, scoped per tenant.
|
Package cas is the content-addressed store: blobs named by the hash of their bytes, scoped per tenant. |
|
catalog
Package catalog is the durable registry of the types a tenant may use: step, trigger and engine types with their schemas, digests, effect classes and capabilities.
|
Package catalog is the durable registry of the types a tenant may use: step, trigger and engine types with their schemas, digests, effect classes and capabilities. |
|
dag
Package dag derives a pipeline's execution order from the edges between its typed ports.
|
Package dag derives a pipeline's execution order from the edges between its typed ports. |
|
defstore
Package defstore is the canonical store of pipeline definitions.
|
Package defstore is the canonical store of pipeline definitions. |
|
dynamic
Package dynamic is the step type that decides at RUNTIME what work there is: a generator emits a pipeline fragment — a matrix from an API, one step per file it found — and that fragment is spliced into the run.
|
Package dynamic is the step type that decides at RUNTIME what work there is: a generator emits a pipeline fragment — a matrix from an API, one step per file it found — and that fragment is spliced into the run. |
|
effects
Package effects derives retry behaviour from a step's declared effect class.
|
Package effects derives retry behaviour from a step's declared effect class. |
|
engine
Package engine is the agent that runs steps: the outbound-only half of the wire contract in docs/wire-contract.md.
|
Package engine is the agent that runs steps: the outbound-only half of the wire contract in docs/wire-contract.md. |
|
executor
Package executor defines the boundary between the control plane and the place a step actually runs.
|
Package executor defines the boundary between the control plane and the place a step actually runs. |
|
executor/containerd
Package containerd runs steps as OCI containers on a containerd daemon.
|
Package containerd runs steps as OCI containers on a containerd daemon. |
|
executor/executortest
Package executortest holds the executor conformance contract: the behaviour every executor backend must exhibit, expressed once so a container, VM or remote backend can be dropped in unchanged.
|
Package executortest holds the executor conformance contract: the behaviour every executor backend must exhibit, expressed once so a container, VM or remote backend can be dropped in unchanged. |
|
executor/kubernetes
Package kubernetes runs steps as pods in a Kubernetes cluster.
|
Package kubernetes runs steps as pods in a Kubernetes cluster. |
|
executor/pool
Package pool keeps sandboxes warm between runs.
|
Package pool keeps sandboxes warm between runs. |
|
executor/process
Package process runs steps as bare host processes.
|
Package process runs steps as bare host processes. |
|
executor/vm
Package vm runs steps in microVMs: the strong-isolation tier, where the boundary between a step and everything else is a guest kernel rather than a set of namespaces.
|
Package vm runs steps in microVMs: the strong-isolation tier, where the boundary between a step and everything else is a guest kernel rather than a set of namespaces. |
|
executor/vm/agent
command
Command dhole-vm-agent is the guest half of the VM executor: the init process of a Dhole microVM.
|
Command dhole-vm-agent is the guest half of the VM executor: the init process of a Dhole microVM. |
|
executor/vm/vmwire
Package vmwire is the protocol spoken between the VM executor on the host and the guest agent inside a microVM.
|
Package vmwire is the protocol spoken between the VM executor on the host and the guest agent inside a microVM. |
|
health
Package health answers the two questions an orchestrator asks.
|
Package health answers the two questions an orchestrator asks. |
|
identity
Package identity authenticates callers of the control plane.
|
Package identity authenticates callers of the control plane. |
|
importers
Package importers translates the pipeline formats of other systems into Dhole pipelines.
|
Package importers translates the pipeline formats of other systems into Dhole pipelines. |
|
lease
Package lease owns step leases and the fence tokens that make duplicate delivery safe.
|
Package lease owns step leases and the fence tokens that make duplicate delivery safe. |
|
mirror
Package mirror is the one-way git export of the canonical definition store.
|
Package mirror is the one-way git export of the canonical definition store. |
|
obs
Package obs is Dhole's telemetry: the traces and metrics that answer "where did this run's time go?".
|
Package obs is Dhole's telemetry: the traces and metrics that answer "where did this run's time go?". |
|
outbox
Package outbox bridges the run store and the bus.
|
Package outbox bridges the run store and the bus. |
|
plugins
Package plugins resolves plugin references to digest-addressed artifacts and fetches their bytes.
|
Package plugins resolves plugin references to digest-addressed artifacts and fetches their bytes. |
|
policy
Package policy is the one place a trust-tier decision is made and the one place it is recorded (ADR 0012).
|
Package policy is the one place a trust-tier decision is made and the one place it is recorded (ADR 0012). |
|
registry
Package registry is the runtime engine registry: which engine instances are alive right now, what they can do, and what state they are in.
|
Package registry is the runtime engine registry: which engine instances are alive right now, what they can do, and what state they are in. |
|
runstore
Package runstore is the durable source of truth for run state: an append-only, tenant-scoped event log.
|
Package runstore is the durable source of truth for run state: an append-only, tenant-scoped event log. |
|
scheduler
Package scheduler decides what a run does next.
|
Package scheduler decides what a run does next. |
|
secrets
Package secrets is the redemption half of the rule that engines never receive secret values, only short-lived references they redeem.
|
Package secrets is the redemption half of the rule that engines never receive secret values, only short-lived references they redeem. |
|
server
Package server assembles the Dhole control plane out of the parts the earlier tasks built, and is the first place they have to work together.
|
Package server assembles the Dhole control plane out of the parts the earlier tasks built, and is the first place they have to work together. |
|
steps/agent
Package agent is the agent step type: a model given a bounded loop and a closed set of things it is allowed to do.
|
Package agent is the agent step type: a model given a bounded loop and a closed set of things it is allowed to do. |
|
steps/approval
Package approval is the human gate in a run.
|
Package approval is the human gate in a run. |
|
steps/gate
Package gate is the step type that WAITS.
|
Package gate is the step type that WAITS. |
|
steps/llm
Package llm is the model-call step type: it asks a language model for a JSON object, holds the answer to a declared schema, and records what the call was and what it cost.
|
Package llm is the model-call step type: it asks a language model for a JSON object, holds the answer to a declared schema, and records what the call was and what it cost. |
|
steps/loop
Package loop is ADR 0015's answer to the one shape a DAG cannot hold: an agent that thinks, acts, observes and goes round again.
|
Package loop is ADR 0015's answer to the one shape a DAG cannot hold: an agent that thinks, acts, observes and goes round again. |
|
taint
Package taint implements ADR 0015's second half: data entering from an untrusted trigger is marked AT THE BOUNDARY, the mark propagates through typed ports, and tainted data reaching an effectful step or a privileged engine is refused unless an explicit sanitisation gate clears it.
|
Package taint implements ADR 0015's second half: data entering from an untrusted trigger is marked AT THE BOUNDARY, the mark propagates through typed ports, and tainted data reaching an effectful step or a privileged engine is refused unless an explicit sanitisation gate clears it. |
|
tenancy
Package tenancy turns a tenant id into an account somebody can be held to: it provisions the tenant, holds the limits it runs under, and keeps the ledger it is billed from.
|
Package tenancy turns a tenant id into an account somebody can be held to: it provisions the tenant, holds the limits it runs under, and keeps the ledger it is billed from. |
|
tenant
Package tenant is the tenancy boundary: the single place that says what a tenant id may be, how it travels through a call, and what it names on the bus.
|
Package tenant is the tenancy boundary: the single place that says what a tenant id may be, how it travels through a call, and what it names on the bus. |
|
trigger
Package trigger is the pluggable way a run starts.
|
Package trigger is the pluggable way a run starts. |
|
trigger/completion
Package completion is the trigger that fires when another pipeline's run finishes.
|
Package completion is the trigger that fires when another pipeline's run finishes. |
|
trigger/git
Package git is the trigger that fires on a forge's webhook: GitHub, Gitea or Forgejo.
|
Package git is the trigger that fires on a forge's webhook: GitHub, Gitea or Forgejo. |
|
trigger/http
Package http is the trigger that fires on an inbound POST.
|
Package http is the trigger that fires on an inbound POST. |
|
trigger/schedule
Package schedule is the trigger that fires on a cron expression.
|
Package schedule is the trigger that fires on a cron expression. |
|
version
Package version reports the identity of this build: the release version and the commit it was made from.
|
Package version reports the identity of this build: the release version and the commit it was made from. |
|
wait
Package wait makes a run wait without anything staying awake.
|
Package wait makes a run wait without anything staying awake. |
|
webui
Package webui serves the built web app from the control plane's own binary.
|
Package webui serves the built web app from the control plane's own binary. |
|
wire
Package wire holds the engine protocol version and the rule for agreeing on one.
|
Package wire holds the engine protocol version and the rule for agreeing on one. |
|
web
|
|
|
e2e/seed
command
Command seed mints a credential for a tenant other than the bootstrapped one.
|
Command seed mints a credential for a tenant other than the bootstrapped one. |
|
tools/typecheck-oracle
command
Command typecheck-oracle answers, for a list of pipelines given as JSON on stdin, exactly what internal/dag.TypeCheck answers.
|
Command typecheck-oracle answers, for a list of pipelines given as JSON on stdin, exactly what internal/dag.TypeCheck answers. |
Click to show internal directories.
Click to hide internal directories.