candace

module
v0.0.0-...-b7dec32 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2026 License: Apache-2.0

README

candace

One repository, one Go module, one Bazel module: the public half of a private infrastructure monorepo, published whole.

It is not a framework and not a grab bag. It is a working agent-operated deployment system and the pieces it is built from, released together so that the pieces are usable on their own and the system is reproducible as a whole.

CandaceOS An agent-operated app lab: a harness proposes, Core approves and fences, a node executor reconciles Compose applications, and an operator UI watches. Its deployment kit is candaceos/.
Warden A fleet watchdog: Raft-style leader election over a static peer set, liveness, incidents, and an authoritative view every mutation is fenced against.
gotth-live Server-driven live user interfaces from Go. State and rendering stay in your process; one WebSocket per tab carries events up and re-rendered fragments down. No npm, no CDN.
xetcas A self-hosted Xet content-addressable storage server with a Git LFS front door. Re-pushing a 48 MiB model after editing 2% of it costs about 1 MiB.
pkg/ The primitives the rest is built on: pgmem (a process-local PostgreSQL emulator for tests), liquidproto (protobuf refinement types), cron, config, redact, telemetry, and more.

Everything is Apache-2.0.

Run one of them

Go 1.26 and a clone. There is no npm install, no bundler, and no code generation step to run first:

go run ./examples/gotth/counter
counter: http://127.0.0.1:8080
counter: allowed origins [http://127.0.0.1:8080 http://localhost:8080]

Open that URL in two browser tabs. The number lives in the Go process and neither tab holds a copy of it: click in one and the other repaints, reload either and the count survives, and the client runtime that carried the patch was compiled into the binary and served by the same handler that serves the WebSocket. examples/gotth/counter/README.md follows one click all the way through and names the file each step lives in.

What is in here

candace/
├── pkg/          domain-neutral primitives — nothing in them knows what CandaceOS is
├── services/     composable business logic — candaceos, warden
├── app/          runnable compositions — candaceos-core, candaceos-agent, warden
├── proto/        .proto sources and their committed Go bindings
├── candaceos/    the deployment kit: Compose stack, installer, fleet driver, updater
├── xetcas/       a Rust workspace (xetcasd) plus its generated Go bindings
├── examples/     one worked consumer per extension seam, each with its own suite
├── extensions/   copilot-pair, a GitHub Copilot CLI extension
├── blog-site/    the Go program that renders blog.candace.cloud
├── docs/         extending.md — the four compile-time seams
└── bazel/        the legacy WORKSPACE shim

The three Go trees are separated by one rule, about who may import whom:

flowchart LR
  app["<b>app/</b><br/>runnable compositions<br/>each owns a cmd/"]
  services["<b>services/</b><br/>composable business logic"]
  pkg["<b>pkg/</b><br/>domain-neutral primitives"]
  app --> services --> pkg
  app --> pkg

Nothing in pkg/ imports services/ or app/, which is what makes the primitives usable on their own:

Package What it is
gotth Server-driven live UI. Large enough to have its own documentation set.
pgmem A process-local PostgreSQL emulator for fast tests — real PostgreSQL AST, no server.
cron Durable in-process scheduling with human-readable declarations and an explicit state store.
liquidproto The runtime for Liquid Proto: protobuf with refinement predicates compiled into the generated Go.
telemetry Trace propagation and structured JSONL over the candace.telemetry.v1 contracts, with no observability SDK.
config Configuration-boundary parsing: environment lookup, private-origin validation, provider/model strings.
mailbox Serializes ownership of a mutable value onto one goroutine — commands run in turn, so no field needs a lock.
boundedbuffer An io.Writer that retains at most a fixed number of bytes while still reporting the true write lengths.
redact Removes caller-declared sensitive values, and their URL-userinfo spellings, from log-bound text.
labels Canonicalizes case-insensitive label lists so services compare and deduplicate them one way.
core The zerolog logger the Go trees log through, plus the few formatters operator pages share.

pkg/proto and pkg/scripts hold tooling rather than a package.

This repository is generated

It is a one-way snapshot of a private monorepo's candace/ folder at one exact revision, published with no upstream history. There is no PR flow here and no maintainer watching for contributions; a commit made here wedges the next export rather than being merged.

Each snapshot carries an immutable export-<sha12> tag, a matching GitHub Release, and a provenance marker, .candace-export.json, naming the exact source revision it came from. Cite the tag, not a branch.

Consume it in 60 seconds

Each Release carries candace-<sha12>.tar.gz and its .sha256. The tarball is this tree re-rooted so MODULE.bazel is at the archive root, built twice and byte-compared before it is kept. In your own MODULE.bazel:

bazel_dep(name = "candace", version = "0.0.0")

archive_override(
    module_name = "candace",
    integrity = "sha256-...",          # from the Release's .sha256
    strip_prefix = "candace-<sha12>",
    urls = ["https://github.com/candacelabs/candace/releases/download/export-<sha12>/candace-<sha12>.tar.gz"],
)

Then depend on what you use — @candace//services/candaceos/component, @candace//pkg/gotth/live, @candace//services/warden — and build.

Not a Bazel repository? The module path is the repository path:

go get github.com/candacelabs/candace@export-<sha12>

There is no semantic-version tag, so @latest resolves a moving pseudo-version of the default branch; naming the export tag is what pins a build.

docs/extending.md covers both shapes in full, plus the http_archive fallback and the legacy WORKSPACE path.

Examples

Every extension seam has a worked example with its own test suite. They are the contract's executable half — the documentation says what is guaranteed, and these fail if it stops being true.

Example Shows
external-consumer A complete outside repository choosing every seam at once: its own identity and overlay, its own sidebar entry and page, three composed services, a custom agent harness, and the Core binary linked from them — built and tested both supported Bazel ways. This is also the acceptance test every release archive passes.
custom-brand Core wearing another product's identity — name, agent, wordmark, palette, an overlay asset, an extra sidebar entry and page — with no edit to Core.
custom-ui-page The smallest useful UI extension: stock identity, one sidebar entry, one page of your own.
gotth/counter gotth-live at its smallest: a number that lives in Go, four buttons, and every open tab kept in step by the server.
gotth/chat One room in Go, several browsers, and every message reaching every session over a server push.
gotth/dashboard A feed pushing twenty times a second, three live regions patched independently, and two plain-HTMX regions on the same page.

Build it

Bazel is the primary build and comes from a pinned container, so the command is the same on a laptop and on a runner. Docker is the only prerequisite:

tools/bazel.sh build -- //... -//xetcas/...   # everything but the Rust workspace
tools/bazel.sh test  -- //... -//xetcas/...
tools/bazel.sh build //xetcas/...             # the Rust workspace and its Go bindings
tools/bazel.sh test  //xetcas/...

The plain go command works on the same tree and needs no Bazel:

go build ./...
go test ./...

The Rust workspace builds with plain Cargo too — that is the path its demo, container images, and just targets take:

cd xetcas && cargo build --workspace && cargo test --workspace

.bazelversion (Bazel 9.2.0) and MODULE.bazel (rules_go 0.62.0, Gazelle 0.52.2, Go SDK 1.26.5, rules_rust 0.73.0) are the only version authority. BUILD files are generated by Gazelle (tools/bazel.sh run //:gazelle) and CI fails on drift.

Run CandaceOS

The deployment kit installs and runs the whole one-box stack from this clone. The default install is deliberately harmless: a simulated harness, a dry-run executor, and no Docker socket mounted anywhere.

./candaceos/install.sh          # then open http://<host>:7780
./candaceos/status.sh
./candaceos/uninstall.sh

Core publishes on all host IPv4 interfaces with no built-in authentication: put it behind your own authenticating proxy before exposing it beyond a trusted network. candaceos/README.md is the operations manual, and candaceos/AGENTS.md states the trust model as eight invariants with their enforcement points.

Where to go next

  • AGENTS.md — the repository's own guide: taxonomy, seams, invariants, conventions.
  • docs/extending.md — the four compile-time seams and how to pin a snapshot.
  • pkg/gotth/README.md, xetcas/README.md — each subsystem's own front page.
  • app/*/CLAUDE.md — what may not be changed casually in each binary.

License

Apache License 2.0. See LICENSE.

AI systems assisted with work in this repository. Their output is not presumed correct, secure, reviewed, or production-ready.

Directories

Path Synopsis
app
candaceos-agent/cmd command
Command candaceos-agent is the node-local CandaceOS Compose executor.
Command candaceos-agent is the node-local CandaceOS Compose executor.
candaceos-agent/internal/config
Package config loads and validates candaceos-agent process configuration.
Package config loads and validates candaceos-agent process configuration.
candaceos-agent/internal/httpapi
Package httpapi exposes the node-local JSON control API.
Package httpapi exposes the node-local JSON control API.
candaceos-core/bootstrap
Package bootstrap assembles and runs CandaceOS Core.
Package bootstrap assembles and runs CandaceOS Core.
candaceos-core/cmd command
Command candaceos-core is the single-operator CandaceOS control plane.
Command candaceos-core is the single-operator CandaceOS control plane.
warden/cmd command
Command warden is the candacenet fleet watchdog daemon.
Command warden is the candacenet fleet watchdog daemon.
Command blog-site renders the Candace Labs blog as a static site.
Command blog-site renders the Candace Labs blog as a static site.
examples
custom-brand command
Command custom-brand is CandaceOS Core wearing another product's identity.
Command custom-brand is CandaceOS Core wearing another product's identity.
custom-ui-page command
Command custom-ui-page is stock CandaceOS Core with one page added.
Command custom-ui-page is stock CandaceOS Core with one page added.
external-consumer/_workspace/cmd command
Command custom-candaceos is this repository's own Core binary.
Command custom-candaceos is this repository's own Core binary.
external-consumer/_workspace/composition
Package composition is this repository's composition root: the exact set of values handed to bootstrap.Run, assembled in one place so the binary and its suite cannot describe different products.
Package composition is this repository's composition root: the exact set of values handed to bootstrap.Run, assembled in one place so the binary and its suite cannot describe different products.
external-consumer/_workspace/customharness
Package customharness is a complete harness implementation compiled outside the CandaceOS source tree.
Package customharness is a complete harness implementation compiled outside the CandaceOS source tree.
external-consumer/_workspace/identity
Package identity is this repository's own product identity: the two brand-bearing names, the lockup rendered in the shell, the design tokens the operator stylesheet reads, and the one shipped template block its overlay redefines.
Package identity is this repository's own product identity: the two brand-bearing names, the lockup rendered in the shell, the design tokens the operator stylesheet reads, and the one shipped template block its overlay redefines.
external-consumer/_workspace/noteboard
Package noteboard is this repository's own service.
Package noteboard is this repository's own service.
external-consumer/_workspace/steering
Package steering composes an agent-steering service alongside CandaceOS Core.
Package steering composes an agent-steering service alongside CandaceOS Core.
gotth/chat command
Command chat is gotth-live's multi-user example: one room in Go, several browsers, and every message reaching every session over a server push.
Command chat is gotth-live's multi-user example: one room in Go, several browsers, and every message reaching every session over a server push.
gotth/counter command
Command counter is gotth-live's smallest end-to-end application: a number that lives in Go, four buttons that change it, and every open tab kept in step by the server.
Command counter is gotth-live's smallest end-to-end application: a number that lives in Go, four buttons that change it, and every open tab kept in step by the server.
gotth/dashboard command
Command dashboard is gotth-live's resilience example: a simulated metrics feed pushing from the server twenty times a second, three live regions that are patched independently, and two plain-HTMX regions on the same page.
Command dashboard is gotth-live's resilience example: a simulated metrics feed pushing from the server twenty times a second, three live regions that are patched independently, and two plain-HTMX regions on the same page.
pkg
boundedbuffer
Package boundedbuffer provides an io.Writer that retains at most a fixed number of bytes while reporting the original write lengths to its producer.
Package boundedbuffer provides an io.Writer that retains at most a fixed number of bytes while reporting the original write lengths to its producer.
config
Package config provides small, domain-neutral configuration boundary primitives.
Package config provides small, domain-neutral configuration boundary primitives.
cron
Package cron provides durable in-process scheduling with human-readable declarations and explicit state stores.
Package cron provides durable in-process scheduling with human-readable declarations and explicit state stores.
cron/contract
Package contract maps the cron domain model to validated Liquid Proto messages at HTTP and messaging boundaries.
Package contract maps the cron domain model to validated Liquid Proto messages at HTTP and messaging boundaries.
cron/postgres
Package postgres provides the SQLC-backed durable cron Store.
Package postgres provides the SQLC-backed durable cron Store.
gotth/bench/apps/chat/gotth command
The gotth-live side of equivalence-spec §2.3's chat room.
The gotth-live side of equivalence-spec §2.3's chat room.
gotth/bench/apps/counter/gotth command
The gotth-live side of equivalence-spec §2.1's counter — app C-B, and only C-B.
The gotth-live side of equivalence-spec §2.1's counter — app C-B, and only C-B.
gotth/bench/apps/dashboard/gotth command
The gotth-live side of equivalence-spec §2.4's live dashboard.
The gotth-live side of equivalence-spec §2.4's live dashboard.
gotth/docs/guide/_samples
Package samples is the compiled twin of the gotth-live documentation.
Package samples is the compiled twin of the gotth-live documentation.
gotth/docs/guide/_samples/apptest
Package apptest is the compiled source for docs/guide/testing-your-app.md: a small application, and the specs that hold it to the library's contracts.
Package apptest is the compiled source for docs/guide/testing-your-app.md: a small application, and the specs that hold it to the library's contracts.
gotth/docs/guide/_samples/architecture
Package architecture is the compiled source for docs/guide/architecture.md.
Package architecture is the compiled source for docs/guide/architecture.md.
gotth/docs/guide/_samples/deploying
Package deploying is the compiled source for docs/guide/deploying.md.
Package deploying is the compiled source for docs/guide/deploying.md.
gotth/docs/guide/_samples/effects
Package effects is the compiled source for docs/guide/effects-and-server-push.md.
Package effects is the compiled source for docs/guide/effects-and-server-push.md.
gotth/docs/guide/_samples/errorhandling
Package errorhandling is the compiled source for docs/guide/error-handling.md.
Package errorhandling is the compiled source for docs/guide/error-handling.md.
gotth/docs/guide/_samples/events
Package events is the compiled source for docs/guide/events-and-forms.md.
Package events is the compiled source for docs/guide/events-and-forms.md.
gotth/docs/guide/_samples/fragments
Package fragments is the compiled source for docs/guide/fragments-and-dirty-tracking.md.
Package fragments is the compiled source for docs/guide/fragments-and-dirty-tracking.md.
gotth/docs/guide/_samples/htmxinterop
Package htmxinterop is the compiled source for docs/guide/htmx-interop.md.
Package htmxinterop is the compiled source for docs/guide/htmx-interop.md.
gotth/docs/guide/_samples/keychords
Package keychords is the compiled source for the two modifier-aware options on docs/guide/events-and-forms.md: live.Bind.NoModifiers and live.Bind.PreventDefault.
Package keychords is the compiled source for the two modifier-aware options on docs/guide/events-and-forms.md: live.Bind.NoModifiers and live.Bind.PreventDefault.
gotth/docs/guide/_samples/lifecycle
Package lifecycle is the compiled source for docs/guide/lifecycle-hooks.md.
Package lifecycle is the compiled source for docs/guide/lifecycle-hooks.md.
gotth/docs/guide/_samples/mounting
Package mounting is the compiled source for the two things docs/quickstart.md §2 explains beside its router: where the live handler is mounted, and where the first paint's state comes from.
Package mounting is the compiled source for the two things docs/quickstart.md §2 explains beside its router: where the live handler is mounted, and where the first paint's state comes from.
gotth/docs/guide/_samples/observability
Package observability is the compiled source for docs/guide/observability.md.
Package observability is the compiled source for docs/guide/observability.md.
gotth/docs/guide/_samples/payments
Package payments is the compiled source for the idempotency section of docs/guide/effects-and-server-push.md.
Package payments is the compiled source for the idempotency section of docs/guide/effects-and-server-push.md.
gotth/docs/guide/_samples/quickstart command
Command quickstart is the application docs/quickstart.md builds: a number that lives in Go, and a button that changes it.
Command quickstart is the application docs/quickstart.md builds: a number that lives in Go, and a button that changes it.
gotth/docs/guide/_samples/security
Package security is the compiled source for docs/guide/security.md.
Package security is the compiled source for docs/guide/security.md.
gotth/internal/arch
Package arch holds this module's architecture tests.
Package arch holds this module's architecture tests.
gotth/internal/clientcodec
Package clientcodec generates the browser runtime's protobuf codec, its predicate manifest, and the cross-runtime golden vectors, from the same FileDescriptorSet that drives the Go refinement generator.
Package clientcodec generates the browser runtime's protobuf codec, its predicate manifest, and the cross-runtime golden vectors, from the same FileDescriptorSet that drives the Go refinement generator.
gotth/internal/cmd/gen-clientcodec command
Command gen-clientcodec generates the browser runtime's protobuf codec.
Command gen-clientcodec generates the browser runtime's protobuf codec.
gotth/internal/cmd/gotth-live-dev command
Command gotth-live-dev is the server half of FR-57: it watches a gotth-live application's source, rebuilds it when a Go or templ file changes, and restarts it.
Command gotth-live-dev is the server half of FR-57: it watches a gotth-live application's source, rebuilds it when a Go or templ file changes, and restarts it.
gotth/internal/livebridge
Package livebridge lets live/livetest construct a value only live can build.
Package livebridge lets live/livetest construct a value only live can build.
gotth/internal/obs
Package obs is the library's instrumentation: metrics, traces and the provenance log.
Package obs is the library's instrumentation: metrics, traces and the provenance log.
gotth/internal/obstest
Package obstest records what the library actually emits, so that a spec can assert on a signal rather than on a method having been called.
Package obstest records what the library actually emits, so that a spec can assert on a signal rather than on a method having been called.
gotth/internal/protocol
Package protocol is the boundary every byte crosses in either direction.
Package protocol is the boundary every byte crosses in either direction.
gotth/internal/render
Package render turns state into whole HTML fragments.
Package render turns state into whole HTML fragments.
gotth/internal/session
Package session owns live session state, one goroutine at a time.
Package session owns live session state, one goroutine at a time.
gotth/internal/wsx
Package wsx is the WebSocket transport, and the only place it exists.
Package wsx is the WebSocket transport, and the only place it exists.
gotth/live
Package live serves server-driven live user interfaces from Go.
Package live serves server-driven live user interfaces from Go.
gotth/live/livetest
Package livetest provides testing helpers for live applications.
Package livetest provides testing helpers for live applications.
gotth/test/internal/chaos/cmd/chaossrv command
Command chaossrv is a live server in its own process, for the one chaos case that cannot be expressed inside the test binary.
Command chaossrv is a live server in its own process, for the one chaos case that cannot be expressed inside the test binary.
gotth/test/memory
Package memory is the G2 idle-connection memory harness: the arithmetic half of equivalence-spec §3.6, with the three commands beside it supplying the server under test, the synthetic session driver, and the report.
Package memory is the G2 idle-connection memory harness: the arithmetic half of equivalence-spec §3.6, with the three commands beside it supplying the server under test, the synthetic session driver, and the report.
gotth/test/memory/cmd/memdiag command
Command memdiag reports the G2 remediation diagnostic that diag.sh collects.
Command memdiag reports the G2 remediation diagnostic that diag.sh collects.
gotth/test/memory/cmd/memdrv command
Command memdrv is equivalence-spec §3.6's synthetic session driver for gotth-live: it opens N real sessions against a memsrv, holds them IDLE, and keeps them alive for as long as the harness needs them.
Command memdrv is equivalence-spec §3.6's synthetic session driver for gotth-live: it opens N real sessions against a memsrv, holds them IDLE, and keeps them alive for as long as the harness needs them.
gotth/test/memory/cmd/memsrv command
Command memsrv is the server under test for the G2 idle-connection memory baseline (RFC-0001 §6.1/§6.2, equivalence-spec §3.6).
Command memsrv is the server under test for the G2 idle-connection memory baseline (RFC-0001 §6.1/§6.2, equivalence-spec §3.6).
gotth/test/memory/cmd/memstat command
Command memstat turns the sample files measure.sh collects into the figure equivalence-spec §3.6 defines, and refuses to produce one from a window that is not §3.6's window.
Command memstat turns the sample files measure.sh collects into the figure equivalence-spec §3.6 defines, and refuses to produce one from a window that is not §3.6's window.
gotth/test/routers
Package routers holds the FR-33 three-router mount suite and nothing else.
Package routers holds the FR-33 three-router mount suite and nothing else.
gotth/test/sampling
Package sampling holds FR-36 clause 4's falsifier and nothing else.
Package sampling holds FR-36 clause 4's falsifier and nothing else.
gotth/tools/apisurface command
Command apisurface counts the library's exported surface and holds it against the ledger.
Command apisurface counts the library's exported surface and holds it against the ledger.
gotth/tools/doccheck command
Command doccheck holds every exported symbol in the tree to a doc comment, and every godoc example to an output the test runner actually checks.
Command doccheck holds every exported symbol in the tree to a doc comment, and every godoc example to an output the test runner actually checks.
gotth/tools/minify command
Command minify builds the files the library serves, and measures them.
Command minify builds the files the library serves, and measures them.
labels
Package labels canonicalizes case-insensitive label lists, such as CI runner labels, so services compare, deduplicate, and match them with one set of semantics.
Package labels canonicalizes case-insensitive label lists, such as CI runner labels, so services compare, deduplicate, and match them with one set of semantics.
liquidproto
Package liquidproto provides the small runtime used by Liquid Proto generated code and deterministic, validating protobuf serialization.
Package liquidproto provides the small runtime used by Liquid Proto generated code and deterministic, validating protobuf serialization.
liquidproto/cmd/protoc-gen-liquidproto command
protoc-gen-liquidproto compiles Liquid Proto field refinements into native Go validation boundaries.
protoc-gen-liquidproto compiles Liquid Proto field refinements into native Go validation boundaries.
liquidproto/cmd/protoc-gen-liquidproto/internal/expr
Package expr compiles the small Liquid Proto predicate grammar to Go.
Package expr compiles the small Liquid Proto predicate grammar to Go.
liquidproto/cmd/protoc-gen-liquidproto/internal/gen
Package gen turns Liquid Proto field refinements into Go validators.
Package gen turns Liquid Proto field refinements into Go validators.
mailbox
Package mailbox serializes ownership of a mutable value onto one goroutine.
Package mailbox serializes ownership of a mutable value onto one goroutine.
pgmem
Package pgmem provides a fast, process-local PostgreSQL emulator for Go tests.
Package pgmem provides a fast, process-local PostgreSQL emulator for Go tests.
redact
Package redact removes caller-declared sensitive values from text destined for logs or operator diagnostics.
Package redact removes caller-declared sensitive values from text destined for logs or operator diagnostics.
telemetry
Package telemetry provides dependency-light distributed trace propagation and structured JSONL logging over the candace.telemetry.v1 protobuf contracts.
Package telemetry provides dependency-light distributed trace propagation and structured JSONL logging over the candace.telemetry.v1 protobuf contracts.
proto
candace/candaceos/v1
Package candaceosv1 contains the stable protobuf contracts used to configure CandaceOS Core and to fence and reconcile desired-state assignments on node-local agents.
Package candaceosv1 contains the stable protobuf contracts used to configure CandaceOS Core and to fence and reconcile desired-state assignments on node-local agents.
candace/telemetry/v1
Package telemetryv1 contains the stable protobuf contracts for distributed trace propagation and structured JSONL logging.
Package telemetryv1 contains the stable protobuf contracts for distributed trace propagation and structured JSONL logging.
services
candaceos
Package candaceos contains the small, durable domain model shared by CandaceOS controllers and user-facing applications.
Package candaceos contains the small, durable domain model shared by CandaceOS controllers and user-facing applications.
candaceos/agentclient
Package agentclient is CandaceOS Core's transport to one node agent.
Package agentclient is CandaceOS Core's transport to one node agent.
candaceos/browserroutes
Package browserroutes is the single source of truth for CandaceOS Core's browser-facing URL space.
Package browserroutes is the single source of truth for CandaceOS Core's browser-facing URL space.
candaceos/component
Package component defines the public bring-up contract for services an embedding repository composes alongside CandaceOS Core.
Package component defines the public bring-up contract for services an embedding repository composes alongside CandaceOS Core.
candaceos/config
Package config resolves CandaceOS Core's environment into its canonical Liquid Proto contract.
Package config resolves CandaceOS Core's environment into its canonical Liquid Proto contract.
candaceos/control
Package control is CandaceOS Core's control-plane composition root beneath main.
Package control is CandaceOS Core's control-plane composition root beneath main.
candaceos/fleet
Package fleet is CandaceOS Core's read-only view of Warden's cluster membership.
Package fleet is CandaceOS Core's read-only view of Warden's cluster membership.
candaceos/harness
Package harness defines the public behavior boundary between CandaceOS Core and a compiled-in agent runtime implementation.
Package harness defines the public behavior boundary between CandaceOS Core and a compiled-in agent runtime implementation.
candaceos/harness/opencode
Package opencode implements the built-in OpenCode agent runtime behind the public CandaceOS harness seam.
Package opencode implements the built-in OpenCode agent runtime behind the public CandaceOS harness seam.
candaceos/httpapi
Package httpapi is CandaceOS Core's operator-facing HTTP transport.
Package httpapi is CandaceOS Core's operator-facing HTTP transport.
candaceos/httpserver
Package httpserver owns CandaceOS Core's single configured Gin engine.
Package httpserver owns CandaceOS Core's single configured Gin engine.
candaceos/internal/storedb
Package storedb is the sqlc-generated query layer over the CandaceOS control schema.
Package storedb is the sqlc-generated query layer over the CandaceOS control schema.
candaceos/operator
Package operator owns CandaceOS Core's agent turn: policy, approvals, and run state.
Package operator owns CandaceOS Core's agent turn: policy, approvals, and run state.
candaceos/reconcile
Package reconcile turns approved desired state into fenced node-agent calls.
Package reconcile turns approved desired state into fenced node-agent calls.
candaceos/store
Package store is CandaceOS Core's durable control-plane state.
Package store is CandaceOS Core's durable control-plane state.
candaceos/webui
Package webui serves CandaceOS Core's local-first operator interface and is the seam where an embedding product supplies its own branding.
Package webui serves CandaceOS Core's local-first operator interface and is the seam where an embedding product supplies its own branding.
warden
Package warden defines the shared contracts for the candacenet warden service: core types, the wire protocol, and the interfaces that the election, watchdog, notification, dashboard, and configuration packages implement or consume.
Package warden defines the shared contracts for the candacenet warden service: core types, the wire protocol, and the interfaces that the election, watchdog, notification, dashboard, and configuration packages implement or consume.
warden/config
Package config loads warden node configuration from built-in defaults, an optional YAML file, and environment overrides, in that precedence order (env beats file beats defaults).
Package config loads warden node configuration from built-in defaults, an optional YAML file, and environment overrides, in that precedence order (env beats file beats defaults).
warden/dashboard
Package dashboard renders the operator-facing observability surface of a warden node: a server-side-rendered, HTMX-refreshed dashboard, an HTMX partial for live cluster refresh, and a JSON status API.
Package dashboard renders the operator-facing observability surface of a warden node: a server-side-rendered, HTMX-refreshed dashboard, an HTMX partial for live cluster refresh, and a JSON status API.
warden/discovery
Package discovery implements warden.PeerDiscoverer: the sources that report which nodes are candidate members of the cluster.
Package discovery implements warden.PeerDiscoverer: the sources that report which nodes are candidate members of the cluster.
warden/election
Package election implements Raft-style leader election (terms and votes, no log replication) over a static peer set, plus the peer-liveness tracking that feeds the cluster ClusterView.
Package election implements Raft-style leader election (terms and votes, no log replication) over a static peer set, plus the peer-liveness tracking that feeds the cluster ClusterView.
warden/grpcmux
Package grpcmux multiplexes the warden gRPC plane and the existing HTTP surface onto a SINGLE bound port using soheilhy/cmux.
Package grpcmux multiplexes the warden gRPC plane and the existing HTTP surface onto a SINGLE bound port using soheilhy/cmux.
warden/grpcserver
Package grpcserver implements the candacenet.warden.v1 WardenService: the three unary cluster RPCs (Vote/Heartbeat/Identify) delegating to the existing warden.RPCHandler through the wireconv boundary, and the server-streaming WatchCluster that pushes full ClusterView snapshots from a warden.ViewSource.
Package grpcserver implements the candacenet.warden.v1 WardenService: the three unary cluster RPCs (Vote/Heartbeat/Identify) delegating to the existing warden.RPCHandler through the wireconv boundary, and the server-streaming WatchCluster that pushes full ClusterView snapshots from a warden.ViewSource.
warden/grpctransport
Package grpctransport is the gRPC client side of the warden cluster wire protocol: it implements warden.Transport (RequestVote/SendHeartbeat/Identify) over the candacenet.warden.v1 WardenService, replacing the retired HTTP/JSON HTTPTransport.
Package grpctransport is the gRPC client side of the warden cluster wire protocol: it implements warden.Transport (RequestVote/SendHeartbeat/Identify) over the candacenet.warden.v1 WardenService, replacing the retired HTTP/JSON HTTPTransport.
warden/httpserver
Package httpserver builds the single gin.Engine every warden node serves its HTTP surface from (dashboard + /api/status + /metrics).
Package httpserver builds the single gin.Engine every warden node serves its HTTP surface from (dashboard + /api/status + /metrics).
warden/internal/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
warden/metrics
Package metrics exposes a warden node's cluster state as Prometheus metrics.
Package metrics exposes a warden node's cluster state as Prometheus metrics.
warden/notify
Package notify implements the warden.Notifier delivery backends used by the watchdog:
Package notify implements the warden.Notifier delivery backends used by the watchdog:
warden/proto/warden/v1
Package wardenv1 holds the generated Go bindings for the candacenet warden wire contracts (candacenet.warden.v1).
Package wardenv1 holds the generated Go bindings for the candacenet warden wire contracts (candacenet.warden.v1).
warden/store
Package store provides persistence for warden.PersistentState (the Raft current term and vote).
Package store provides persistence for warden.PersistentState (the Raft current term and vote).
warden/testclock
Package testclock provides a deterministic, manually-advanced implementation of warden.Clock for tests.
Package testclock provides a deterministic, manually-advanced implementation of warden.Clock for tests.
warden/watchdog
Package watchdog turns cluster views into operator alerts.
Package watchdog turns cluster views into operator alerts.
warden/wireconv
Package wireconv provides total, composable conversions between the frozen warden domain types (services/warden) and the generated candacenet.warden.v1 protobuf messages (services/warden/proto/warden/v1).
Package wireconv provides total, composable conversions between the frozen warden domain types (services/warden) and the generated candacenet.warden.v1 protobuf messages (services/warden/proto/warden/v1).
xetcas

Jump to

Keyboard shortcuts

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