Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
halo
command
Command halo is the Halos CLI: validate, render, release, publish and experiment tooling for a policy repo.
|
Command halo is the Halos CLI: validate, render, release, publish and experiment tooling for a policy repo. |
|
halo-kong
command
Command halo-kong is a Kong Go-PDK plugin (Access phase).
|
Command halo-kong is a Kong Go-PDK plugin (Access phase). |
|
halo-proxy
command
Command halo-proxy is Halos's stack-agnostic traffic plane: a reverse proxy that verifies the caller (OIDC JWT or trusted-proxy headers), assigns the rollout ring / experiment variant, rewrites the model, mirrors eligible first-turn requests to halo-shadow, and forwards to the decided upstream or a single --next-hop.
|
Command halo-proxy is Halos's stack-agnostic traffic plane: a reverse proxy that verifies the caller (OIDC JWT or trusted-proxy headers), assigns the rollout ring / experiment variant, rewrites the model, mirrors eligible first-turn requests to halo-shadow, and forwards to the decided upstream or a single --next-hop. |
|
halo-server
command
Command halo-server serves the Halos API and console.
|
Command halo-server serves the Halos API and console. |
|
halo-shadow
command
Command halo-shadow receives mirrored first-turn requests from halo-kong / halo-proxy, replays them against control and candidate, and stores the pairs as JSONL.
|
Command halo-shadow receives mirrored first-turn requests from halo-kong / halo-proxy, replays them against control and candidate, and stores the pairs as JSONL. |
|
halo/scaffold
Package scaffold generates a minimal, valid Halos policy repo.
|
Package scaffold generates a minimal, valid Halos policy repo. |
|
halod
command
Command halod is the Halos fleet agent: pull the ring's signed release, verify it, apply it atomically, report status.
|
Command halod is the Halos fleet agent: pull the ring's signed release, verify it, apply it atomically, report status. |
|
deploy
|
|
|
compose/gen
command
Command gen renders kong.yml from policy.json: go run ./deploy/compose/gen
|
Command gen renders kong.yml from policy.json: go run ./deploy/compose/gen |
|
compose/mockidp
command
Command mockidp is a demo OIDC issuer standing in for Okta/Entra/Keycloak: it serves discovery + JWKS and mints signed JWTs at GET /token.
|
Command mockidp is a demo OIDC issuer standing in for Okta/Entra/Keycloak: it serves discovery + JWKS and mints signed JWTs at GET /token. |
|
compose/mockllm
command
Command mockllm is a tiny fake model upstream for the compose demo.
|
Command mockllm is a tiny fake model upstream for the compose demo. |
|
Package features embeds the checked-in Dev Container Feature and Coder module so internal/delivery exporters and the repo share one source of truth.
|
Package features embeds the checked-in Dev Container Feature and Coder module so internal/delivery exporters and the repo share one source of truth. |
|
internal
|
|
|
a2a
Package a2a fetches and verifies Agent2Agent (A2A) AgentCards for the remote-agent allowlist (ADR-0024): bounded, SSRF-safe https fetches, the card digest Halos pins into policy and releases, and the card's JWS signatures (A2A specification v1.0, section 8.4: RFC 7515 JWS over the RFC 8785 canonical card without its signatures field).
|
Package a2a fetches and verifies Agent2Agent (A2A) AgentCards for the remote-agent allowlist (ADR-0024): bounded, SSRF-safe https fetches, the card digest Halos pins into policy and releases, and the card's JWS signatures (A2A specification v1.0, section 8.4: RFC 7515 JWS over the RFC 8785 canonical card without its signatures field). |
|
assign
Package assign is the single source of cohort assignment.
|
Package assign is the single source of cohort assignment. |
|
budget
Package budget meters model spend against the policy's gateway budgets (ADR-0017).
|
Package budget meters model spend against the policy's gateway budgets (ADR-0017). |
|
bundle
Package bundle publishes and pulls signed release bundles as OCI artifacts.
|
Package bundle publishes and pulls signed release bundles as OCI artifacts. |
|
cloudagents
Package cloudagents governs background coding agents that run on vendor or CI infrastructure rather than a developer machine (ADR-0034): it normalizes tasks from vendor APIs and GitHub webhooks into one inventory mapped to Halos identities, plans and executes kill fan-out (cancel) and over-limit pauses, and turns finished tasks into session ledger records.
|
Package cloudagents governs background coding agents that run on vendor or CI infrastructure rather than a developer machine (ADR-0034): it normalizes tasks from vendor APIs and GitHub webhooks into one inventory mapped to Halos identities, plans and executes kill fan-out (cancel) and over-limit pauses, and turns finished tasks into session ledger records. |
|
cloudagents/workflow
Package workflow renders the repository files of the workflow-configured cloud agents (ADR-0034): the Claude Code and Gemini CLI GitHub Actions and Copilot's copilot-setup-steps.yml, SHA-pinned and least-privilege, and checks every rendered file against the security invariants.
|
Package workflow renders the repository files of the workflow-configured cloud agents (ADR-0034): the Claude Code and Gemini CLI GitHub Actions and Copilot's copilot-setup-steps.yml, SHA-pinned and least-privilege, and checks every rendered file against the security invariants. |
|
controller
Package controller is the automated experiment loop: every tick it evaluates each running experiment (promote.Evaluate), persists the verdict for halo-server, and acts on it.
|
Package controller is the automated experiment loop: every tick it evaluates each running experiment (promote.Evaluate), persists the verdict for halo-server, and acts on it. |
|
copilot
Package copilot is Halos Copilot (ADR-0035): a language model drafts policy changes, experiment designs and explanations; Halos' deterministic checks (validation, plan, impact preview, the invariant-1 bypass-token scan and internal/stats) verify them; a human approves every write.
|
Package copilot is Halos Copilot (ADR-0035): a language model drafts policy changes, experiment designs and explanations; Halos' deterministic checks (validation, plan, impact preview, the invariant-1 bypass-token scan and internal/stats) verify them; a human approves every write. |
|
delivery/devcontainer
Package devcontainer exports the Halos Dev Container Feature source (features/halos) with option defaults baked in for one org/ring.
|
Package devcontainer exports the Halos Dev Container Feature source (features/halos) with option defaults baked in for one org/ring. |
|
delivery/mdm
Package mdm exports a release for MDM delivery: a .mobileconfig (Jamf, Kandji) carrying Claude Code managed settings under com.anthropic.claudecode, an Intune PowerShell script writing HKLM\SOFTWARE\Policies\ClaudeCode, and halod bootstrap scripts.
|
Package mdm exports a release for MDM delivery: a .mobileconfig (Jamf, Kandji) carrying Claude Code managed settings under com.anthropic.claudecode, an Intune PowerShell script writing HKLM\SOFTWARE\Policies\ClaudeCode, and halod bootstrap scripts. |
|
docgen
Package docgen renders the CLI (cobra tree) and policy (JSON Schema) reference pages for the docs site.
|
Package docgen renders the CLI (cobra tree) and policy (JSON Schema) reference pages for the docs site. |
|
eval
Package eval is Halos's offline replay harness: it runs a suite of coding tasks against harness variants (CLI version x model x settings) in isolated environments, scores each run with the task's own success check, and renders a scorecard with bootstrap CIs and a paired comparison.
|
Package eval is Halos's offline replay harness: it runs a suite of coding tasks against harness variants (CLI version x model x settings) in isolated environments, scores each run with the task's own success check, and renders a scorecard with bootstrap CIs and a paired comparison. |
|
fsutil
Package fsutil holds small filesystem helpers shared across commands.
|
Package fsutil holds small filesystem helpers shared across commands. |
|
gateway
Package gateway holds the traffic-plane logic shared by the halo-kong plugin and halo-shadow: request inspection, cohort decision and model rewrite.
|
Package gateway holds the traffic-plane logic shared by the halo-kong plugin and halo-shadow: request inspection, cohort decision and model rewrite. |
|
gateway/adapters
Package adapters renders the "put halo-proxy in front of / behind stack X" config snippets shipped under deploy/integrations.
|
Package adapters renders the "put halo-proxy in front of / behind stack X" config snippets shipped under deploy/integrations. |
|
gateway/kong
Package kong generates the decK declarative config for Kong OSS (db-less) that fronts an org's model traffic and attaches the halo-kong plugin.
|
Package kong generates the decK declarative config for Kong OSS (db-less) that fronts an org's model traffic and attaches the halo-kong plugin. |
|
gateway/upstreamauth
Package upstreamauth signs requests to provider upstreams that need a gateway-held credential instead of the caller's, so halo-proxy can talk to Amazon Bedrock directly (no orchestrator, no SigV4 sidecar).
|
Package upstreamauth signs requests to provider upstreams that need a gateway-held credential instead of the caller's, so halo-proxy can talk to Amazon Bedrock directly (no orchestrator, no SigV4 sidecar). |
|
harness
Package harness defines the adapter contract every AI coding CLI implements.
|
Package harness defines the adapter contract every AI coding CLI implements. |
|
harness/all
Package all registers every built-in harness adapter via blank imports.
|
Package all registers every built-in harness adapter via blank imports. |
|
harness/claudecode
Package claudecode renders Claude Code's managed settings.
|
Package claudecode renders Claude Code's managed settings. |
|
harness/codex
Package codex renders OpenAI Codex CLI admin configuration.
|
Package codex renders OpenAI Codex CLI admin configuration. |
|
harness/copilot
Package copilot renders GitHub Copilot CLI file-based enterprise managed settings (managed-settings.json).
|
Package copilot renders GitHub Copilot CLI file-based enterprise managed settings (managed-settings.json). |
|
harness/cursor
Package cursor renders Cursor CLI (cursor-agent) enterprise hooks: the system-wide hooks.json is the one root-owned, admin-controlled file the CLI reads.
|
Package cursor renders Cursor CLI (cursor-agent) enterprise hooks: the system-wide hooks.json is the one root-owned, admin-controlled file the CLI reads. |
|
harness/gemini
Package gemini renders Gemini CLI system settings.
|
Package gemini renders Gemini CLI system settings. |
|
harness/hutil
Package hutil holds helpers shared by harness adapters.
|
Package hutil holds helpers shared by harness adapters. |
|
harness/hutil/hutiltest
Package hutiltest provides a shared rich fixture and golden-file helper for adapter tests.
|
Package hutiltest provides a shared rich fixture and golden-file helper for adapter tests. |
|
harness/opencode
Package opencode renders OpenCode (sst/opencode, npm "opencode-ai") managed configuration: an opencode.json in the system managed-config directory, which OpenCode loads at the highest precedence.
|
Package opencode renders OpenCode (sst/opencode, npm "opencode-ai") managed configuration: an opencode.json in the system managed-config directory, which OpenCode loads at the highest precedence. |
|
hmackey
Package hmackey checks operator-supplied HMAC keys (salts, webhook secrets) at config load (ADR-0038).
|
Package hmackey checks operator-supplied HMAC keys (salts, webhook secrets) at config load (ADR-0038). |
|
hmackey/hmackeytest
Package hmackeytest lets tests run hmackey's checks as if FIPS mode were on or off.
|
Package hmackeytest lets tests run hmackey's checks as if FIPS mode were on or off. |
|
hmackey/internal/fipsmode
Package fipsmode is the FIPS-mode probe internal/hmackey consults.
|
Package fipsmode is the FIPS-mode probe internal/hmackey consults. |
|
identity
Package identity verifies who a gateway request is from.
|
Package identity verifies who a gateway request is from. |
|
identity/identitytest
Package identitytest is a tiny OIDC issuer (discovery + JWKS + token minting + an auto-approving authorization-code/PKCE flow) for tests and the compose demo.
|
Package identitytest is a tiny OIDC issuer (discovery + JWKS + token minting + an auto-approving authorization-code/PKCE flow) for tests and the compose demo. |
|
impact
Package impact answers "who is affected" by a policy change (ADR-0030): for every member of a population (the enrolled fleet, or a policy-only estimate), it resolves ring, experiment variants and effective settings under the base policy and under the new one, and counts who changes, per member kind and per org unit.
|
Package impact answers "who is affected" by a policy change (ADR-0030): for every member of a population (the enrolled fleet, or a policy-only estimate), it resolves ring, experiment variants and effective settings under the base policy and under the new one, and counts who changes, per member kind and per org unit. |
|
intent
Package intent turns intent-level requests ("upgrade claude-code to X", "canary this model", "enable this MCP server for 10%") into the low-level policy documents that express them, as file changes in the policy repo.
|
Package intent turns intent-level requests ("upgrade claude-code to X", "canary this model", "enable this MCP server for 10%") into the low-level policy documents that express them, as file changes in the policy repo. |
|
ledger
Package ledger is the agent session ledger (ADR-0031): one normalized, identity-linked record per agent session, built from several evidence sources (halo-proxy spans, Claude Code OTel events, the Anthropic Compliance API, the GitHub enterprise audit log, a JSONL import).
|
Package ledger is the agent session ledger (ADR-0031): one normalized, identity-linked record per agent session, built from several evidence sources (halo-proxy spans, Claude Code OTel events, the Anthropic Compliance API, the GitHub enterprise audit log, a JSONL import). |
|
mcpserver
Package mcpserver exposes a Halos policy repo to agents over MCP.
|
Package mcpserver exposes a Halos policy repo to agents over MCP. |
|
obsassets
Package obsassets keeps the observability assets that exist in more than one form in step.
|
Package obsassets keeps the observability assets that exist in more than one form in step. |
|
onboard
Package onboard is the deterministic core of `halo doctor` and `halo onboard`: detect the AI CLIs on this machine, check the environment and print exact fixes, plan and apply a local install of a ring's managed config, generate a local halo-proxy config, run a headless round trip, and generate a company rollout bundle.
|
Package onboard is the deterministic core of `halo doctor` and `halo onboard`: detect the AI CLIs on this machine, check the environment and print exact fixes, plan and apply a local install of a ring's managed config, generate a local halo-proxy config, run a headless round trip, and generate a company rollout bundle. |
|
pgstore
Package pgstore is the Postgres backend for running several halo-server and halo-shadow replicas (ADR-0021): versioned forward-only migrations, the shared record logs and KV behind internal/storage, the hash-chained audit table, fleet reports, rollout documents, leader leases with fencing tokens, and halo-shadow's pair table and global budget.
|
Package pgstore is the Postgres backend for running several halo-server and halo-shadow replicas (ADR-0021): versioned forward-only migrations, the shared record logs and KV behind internal/storage, the hash-chained audit table, fleet reports, rollout documents, leader leases with fencing tokens, and halo-shadow's pair table and global budget. |
|
pgstore/pgtest
Package pgtest opens throwaway Postgres schemas for integration tests.
|
Package pgtest opens throwaway Postgres schemas for integration tests. |
|
policy
Package policy defines Halos's harness-neutral policy model: the YAML documents an org keeps in its policy repo, and the in-memory form every other package (compiler, gateway, delivery, eval) consumes.
|
Package policy defines Halos's harness-neutral policy model: the YAML documents an org keeps in its policy repo, and the in-memory form every other package (compiler, gateway, delivery, eval) consumes. |
|
policytest
Package policytest is the offline tier of testing a policy change (`halo test`, MCP `policy_test`): in seconds, with no network or credentials, it validates the policy, renders every ring for every harness and OS and asserts the security invariants on the output, builds each ring's release and checks its manifest, previews who a change reaches, runs policy-declared cases (the PolicyTest documents under tests/) and simulates every rollout.
|
Package policytest is the offline tier of testing a policy change (`halo test`, MCP `policy_test`): in seconds, with no network or credentials, it validates the policy, renders every ring for every harness and OS and asserts the security invariants on the output, builds each ring's release and checks its manifest, previews who a change reaches, runs policy-declared cases (the PolicyTest documents under tests/) and simulates every rollout. |
|
promote
Package promote turns experiment evidence into a rollout decision.
|
Package promote turns experiment evidence into a rollout decision. |
|
release
Package release builds immutable, content-addressed release bundles: a deterministic tar holding manifest.json plus every rendered file (as blobs/<sha256>).
|
Package release builds immutable, content-addressed release bundles: a deterministic tar holding manifest.json plus every rendered file (as blobs/<sha256>). |
|
roi
Package roi measures the delivery impact of a policy change (ADR-0027).
|
Package roi measures the delivery impact of a policy change (ADR-0027). |
|
rollout
Package rollout drives a policy.Rollout through its steps.
|
Package rollout drives a policy.Rollout through its steps. |
|
server
Package server is the Halos console backend: fleet ingest, policy and experiment read APIs, and the embedded web console.
|
Package server is the Halos console backend: fleet ingest, policy and experiment read APIs, and the embedded web console. |
|
shadow
Package shadow implements the mirror pipeline: halo-kong posts a Job for sampled first-turn requests, halo-shadow replays it against control and candidate (non-streaming) and stores the pair for later LLM-judge grading.
|
Package shadow implements the mirror pipeline: halo-kong posts a Job for sampled first-turn requests, halo-shadow replays it against control and candidate (non-streaming) and stores the pair for later LLM-judge grading. |
|
signer
Package signer opens release and kill-list signing keys by URI (ADR-0038):
|
Package signer opens release and kill-list signing keys by URI (ADR-0038): |
|
stats
Package stats holds the statistics Halos uses to gate rollouts: always-valid sequential tests (mSPRT), fixed-horizon Welch tests, CUPED variance reduction, paired bootstrap for eval scorecards, and guardrail evaluation.
|
Package stats holds the statistics Halos uses to gate rollouts: always-valid sequential tests (mSPRT), fixed-horizon Welch tests, CUPED variance reduction, paired bootstrap for eval scorecards, and guardrail evaluation. |
|
storage
Package storage is the persistence seam under halo-server's stores: an append-only record log each store replays into memory, and a small expiring key-value space for short-lived single-use state.
|
Package storage is the persistence seam under halo-server's stores: an append-only record log each store replays into memory, and a small expiring key-value space for short-lived single-use state. |
|
supplychain
Package supplychain handles agent extension artifacts (skills, plugins, hooks, slash commands, agent definitions) as content-addressed trees (ADR-0028): reading them from the policy repo, fetching pinned remote sources (git commit, OCI digest), computing their digest, and the static scan run by `halo validate` and `halo release build`.
|
Package supplychain handles agent extension artifacts (skills, plugins, hooks, slash commands, agent definitions) as content-addressed trees (ADR-0028): reading them from the policy repo, fetching pinned remote sources (git commit, OCI digest), computing their digest, and the static scan run by `halo validate` and `halo release build`. |
|
telemetry
Package telemetry generates the OpenTelemetry Collector configuration that receives OTLP from Claude Code, Codex, Gemini CLI and Copilot CLI, normalises their harness-specific metrics into the halo.* schema, and exports to ClickHouse and Prometheus.
|
Package telemetry generates the OpenTelemetry Collector configuration that receives OTLP from Claude Code, Codex, Gemini CLI and Copilot CLI, normalises their harness-specific metrics into the halo.* schema, and exports to ClickHouse and Prometheus. |
|
telemetry/gwmetrics
Package gwmetrics is halo-proxy's per-request OTLP metrics emitter: the gateway assigns ring/variant itself, so these are the best-attributed online samples for halo.api.error_rate and halo.latency.* (and the only ones for traffic-axis experiments).
|
Package gwmetrics is halo-proxy's per-request OTLP metrics emitter: the gateway assigns ring/variant itself, so these are the best-attributed online samples for halo.api.error_rate and halo.latency.* (and the only ones for traffic-axis experiments). |
|
telemetry/synth
Package synth emits synthetic OTLP/HTTP (JSON) telemetry shaped like the real harnesses, for control vs treatment cohorts with a known injected effect.
|
Package synth emits synthetic OTLP/HTTP (JSON) telemetry shaped like the real harnesses, for control vs treatment cohorts with a known injected effect. |
|
toggle
Package toggle evaluates feature-toggle targeting rules and composes the per-harness settings fragments a release carries for client-axis toggles.
|
Package toggle evaluates feature-toggle targeting rules and composes the per-harness settings fragments a release carries for client-axis toggles. |
|
tools/gendocs
command
Command gendocs regenerates the CLI and policy reference pages:
|
Command gendocs regenerates the CLI and policy reference pages: |
|
tools/genopenapi
command
Command genopenapi writes the OpenAPI 3.1 description of halo-server's HTTP API, generated from internal/server:
|
Command genopenapi writes the OpenAPI 3.1 description of halo-server's HTTP API, generated from internal/server: |
|
tools/obsassets
command
Command obsassets regenerates the observability files derived from their single sources:
|
Command obsassets regenerates the observability files derived from their single sources: |
|
upgrade
Package upgrade watches upstream for new versions of the pinned coding CLIs and for new models in configured provider model lists, and turns each new candidate into an eval-gated pull request: it verifies the candidate's install artifacts (sha256 / npm integrity, via release.ArtifactResolver), writes the candidate pin on a branch, runs the eval suite, and opens a PR carrying the scorecard.
|
Package upgrade watches upstream for new versions of the pinned coding CLIs and for new models in configured provider model lists, and turns each new candidate into an eval-gated pull request: it verifies the candidate's install artifacts (sha256 / npm integrity, via release.ArtifactResolver), writes the candidate pin on a branch, runs the eval suite, and opens a PR carrying the scorecard. |
|
vendoradmin
Package vendoradmin renders one Halos policy into the settings of the vendors' cloud admin consoles (Claude for Teams/Enterprise, ChatGPT workspaces, Gemini for Google Cloud, GitHub Copilot, Cursor), reads the live settings where a vendor publishes a read API, diffs them, and applies the diff where it publishes a write API (ADR-0025).
|
Package vendoradmin renders one Halos policy into the settings of the vendors' cloud admin consoles (Claude for Teams/Enterprise, ChatGPT workspaces, Gemini for Google Cloud, GitHub Copilot, Cursor), reads the live settings where a vendor publishes a read API, diffs them, and applies the diff where it publishes a write API (ADR-0025). |
|
yamledit
Package yamledit finds a kind/name YAML document in a policy repo (any document of a multi-document file) and edits it by byte splice, leaving comments, formatting and every other document intact.
|
Package yamledit finds a kind/name YAML document in a policy repo (any document of a multi-document file) and edits it by byte splice, leaving comments, formatting and every other document intact. |
|
test
|
|
|
load
command
Command load drives a real halo-proxy binary against mock upstreams and reports added latency, throughput, errors, memory/goroutine growth over a soak, failover + circuit-breaker behaviour, and long-lived SSE integrity.
|
Command load drives a real halo-proxy binary against mock upstreams and reports added latency, throughput, errors, memory/goroutine growth over a soak, failover + circuit-breaker behaviour, and long-lived SSE integrity. |
|
uat/k8s/uatidp
command
Command uatidp is the mock OIDC issuer for `make uat-k8s`: discovery, JWKS, auth-code+PKCE (/authorize auto-approves the identity set by PUT /_uat/login) and GET /mint, which hands out a gateway JWT for any user.
|
Command uatidp is the mock OIDC issuer for `make uat-k8s`: discovery, JWKS, auth-code+PKCE (/authorize auto-approves the identity set by PUT /_uat/login) and GET /mint, which hands out a gateway JWT for any user. |
|
Package web exposes the built console.
|
Package web exposes the built console. |
Click to show internal directories.
Click to hide internal directories.