wardyn

module
v0.4.4 Latest Latest
Warning

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

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

README

Wardyn

Go 1.26 CI

The open-source governed-sandbox control plane for any workload — identity, controls, and audit are the product; the sandbox is a pluggable commodity. Anything you run under your own credentials — a script, a build, a CI job, a coding agent — inherits your full blast radius. Wardyn is the governance layer in between: each run gets its own identity, scoped credentials minted on demand, one audited path off-host, and no resident secrets. Coding agents (Claude Code, Codex CLI, and successors) are the flagship use, so most of what follows is framed around them.

Status: pre-alpha. Interfaces are not stable. Do not run production workloads. "Wardyn" is a working name — trademark clearance (USPTO full-text + org / domain / package handles) is still pending, so the name and the personal github.com/cjohnstoniv/wardyn module path may change before a 1.0.


Quickstart

git clone https://github.com/cjohnstoniv/wardyn
cd wardyn
make setup   # brings up the containerized control plane + opens the UI

make setup asks containerized vs host (Enter = containerized); set WARDYN_SETUP_MODE=container to skip the question, =local for the host escape hatch. Containerized runs wardynd in a compose container, so sandbox→control-plane callbacks route in-network and workspace Verify/Record work even on Docker Desktop + WSL2 NAT. Stop with make compose-down.

Give it a model — pick any, all first-class at the CLI (or in the UI):

claude setup-token | wardyn subscription connect   # Claude subscription (never resident)
echo "$KEY"        | wardyn secret set anthropic-api-key   # API key
# or Bedrock: set WARDYN_BEDROCK_REGION/MODEL (+ WARDYN_BEDROCK_AWS_DIR for ~/.aws SSO)
wardyn setup status   # what's configured, with the exact next command per unmet check

Prefer one file and one command? Write your sandbox rules as a small YAML (or JSON) policy and hand it to a single wardyn run — interactive or unattended:

wardyn run --agent claude-code --task-mode exec \
  --task 'echo hello from a governed sandbox' \
  --policy-file examples/policies/sandbox.yaml --wait

(Add --image ubuntu:24.04 to bring your own base image — that path is opt-in: it needs WARDYN_ENVBUILD=true on wardynd, which the default make setup stack leaves off. See the BYOI bullet below and docs/ENVBUILD.md.)

The commented examples/policies/sandbox.yaml is a sealed floor you can edit at a glance; wardyn policy render -f <file> checks it.

Requirements
  • Docker with the compose v2 plugin (Desktop or native Engine). Postgres is in the compose file — nothing external to install. Fence/CC1 needs nothing more; Wall/CC2 adds gVisor's runsc, Vault/CC3 adds /dev/kvm + a Kata runtime — wardyn setup wall|vault prints the exact steps for your machine.
  • Go 1.26+ and Node 22 + pnpm 9 — only to build from source (host mode builds bin/wardynd + the UI locally).
  • go install …/cmd/wardyn@latest installs the CLI only; wardynd is not go install-able (it needs -tags docker + a built ui/dist) — run it via make setup or the container image.

What you get

  • Per-run identity. Every run gets a SPIFFE ID (spiffe://<trust-domain>/agent-run/<id>) distinct from the human; the human's sub, the run's act, and the accountable sponsor travel together in every token, commit, and audit event. [shipped] (embedded JWT-SVID issuer; SPIRE-backed [v0.5+ — planned]).

  • Broker-minted scoped credentials. The run never holds a credential: the broker mints short-lived, repo-scoped ones on demand, injected proxy-side. Approval-required grants mint inside the Postgres transaction that verifies an APPROVED request for that exact run+scope — no widening. [shipped]

  • Layered egress. A sandbox is gatewayless — its only path off-host is the wardyn-proxy sidecar (L7 allowlist, method rules, first-use approval, proxy-side credential injection), so the env-var-bypass class is defended structurally: with no route, an agent that ignores HTTP_PROXY reaches nothing. [shipped]; L1 default-deny and an MCP gateway are [v0.5+ — planned]. Full table in ARCHITECTURE.md.

  • Three-stream append-only audit. The control-plane event log (a Postgres trigger blocks UPDATE/DELETE), PTY replay via wardyn-rec, and the opt-in eBPF/Tetragon ground-truth stream correlated on run_id — all [shipped]. Ground-truth is detection, not prevention and honestly degradable (/healthz reports ebpf_groundtruth=unavailable; blind inside CC3/Kata guests). SIEM export (JSON webhook/syslog/file) is [shipped] and free; OTLP/OCSF [v0.5+ — planned].

  • Confinement Classes. Friendly UI names — Fence = CC1 (hardened shared-kernel runc) [shipped], Wall = CC2 (gVisor userspace kernel) [shipped], CC3/Vault (Kata microVM) [experimental] (needs /dev/kvm + a registered Kata runtime; not on Docker Desktop). CC1/Fence needs only Docker; CC2/Wall adds gVisor's runsc and is the strongest tier wardyn setup wall can unlock without virtualization. make setup auto-picks a policy (scripts/up.sh pick_policy): default.json (CC2) on a runsc-registered host with no model configured, demo.json (CC1) on a runc-only host, and composer-dev.json (CC1 floor) once a real model path is configured — wardyn setup status reports which tier you actually got. Policy can mandate a minimum class; the plane refuses a run a substrate cannot satisfy.

  • Bring Your Own Image (BYOI). A run may name an arbitrary base image; the plane wraps it with the runner tools (opt-in via WARDYN_ENVBUILD) and gates launch on an in-sandbox self-test, fail-closed. The wrap is wrap-only — a FROM + COPY that never runs image-controlled code on the host, so a base carrying ONBUILD triggers is refused. [shipped]

  • Model access without resident keys. An Anthropic API key or a Claude subscription (from the operator's live login) is injected proxy-side, never resident; a containerized plane connects a Wardyn-managed Claude subscription via container login. AWS Bedrock is operator-configured (bearer proxy-injected; SigV4 keys resident, documented). [shipped]

  • Recorded profiles → governed reruns. Record a named interactive session in a workspace, then rerun it confined as a fast-track profile with its observed egress preloaded — TRY-IT Level 2.5. [shipped]

  • AI Run Composer (optional). Describe a task in plain English and Wardyn proposes a confined run and grades it deterministically — advisory; the binary ships with no backend, and make setup seeds a no-API-key fake one so the flow works out of the box — TRY-IT Level 3. [shipped]


Architecture at a glance

flowchart LR
  entry(["Human operator<br/>UI or wardyn CLI"])
  subgraph control["Control plane (trusted)"]
    wardynd["wardynd<br/>REST API + embedded UI<br/>policy engine / approval FSM<br/>token broker / audit ingest"]
    pg[("Postgres<br/>append-only audit")]
    wardynd --> pg
  end
  subgraph sandbox["Per-run sandbox (UNTRUSTED) — gatewayless network"]
    %% rec is declared first on purpose: with agent first, dagre ranks rec
    %% between wardynd and agent and routes the launch edge through its box.
    rec["wardyn-rec<br/>PTY recorder"]
    agent["Coding agent<br/>claude-code / codex-cli"]
    rec -->|"cast, brokered to wardynd"| proxy["wardyn-proxy<br/>L2 egress sidecar"]
    agent -->|"only path out"| proxy
  end
  entry --> wardynd
  wardynd -->|"launch (docker driver)"| agent
  proxy -->|"allowlisted L7, creds injected"| net(("Internet / APIs"))

A trusted control plane (wardynd + Postgres) launches each run — a coding agent, a script, a build, whatever the workload is — into an untrusted, gatewayless sandbox whose only path out is the wardyn-proxy sidecar, with credentials injected at the proxy. Decision logs and masked session casts flow back into the append-only audit log — drawn in THREAT-MODEL.md §8, "The three audit streams".

Wardyn never adds power: a sandbox reaches at most what you (the operating user) already can, operator policy clamps that to what you allow, and each run gets only the minimal subset (scoped credential, egress allowlist, mounts) its task needs.


Honest security posture

Wardyn publishes what it does not defend against; the full list is in threatmodel/THREAT-MODEL.md. Notable residuals:

  • The model-API channel is an unavoidable data-exit path. The LLM gateway logs every prompt/token/tool call but cannot stop an agent from encoding data into a prompt to a model it is permitted to call.
  • Domain fronting and DNS-tunnel exfil are not closed below TLS interception, which ships only for operator-listed MITM-eligible hosts (opt-in, off by default); arbitrary-domain interception is the v0.5 target, so most non-LLM HTTPS egress remains an opaque CONNECT tunnel.
  • CC1/Fence shares the host kernel. A kernel 0-day defeats the sandbox boundary there; CC2/Wall (gVisor) is the answer wherever runsc is registered.
  • The 1-hour minted-token window before kill-switch revocation cannot be eliminated, only minimized by TTL.

That honesty is the point. The incumbents ship governance as paid tiers of closed platforms or vendor-bundled runtimes — unauditable, un-self-hostable — and sandboxes have overclaimed isolation before: in documented red-team exercises hook-based in-agent enforcement was bypassed via the dynamic linker (ld-linux/mmap), and at least one commercially-shipped sandbox escaped via a container-runtime CVE. Wardyn's thesis is that the real boundary is structural — no network path, no resident credentials, enforcement outside the agent process.


Status

v0.4 (pre-alpha) is the current release: containerized setup by default, a first-class credential CLI (wardyn subscription, wardyn setup status), YAML policies, container workspaces with their own model credentials, Bedrock via AWS SSO, and the corporate-network build/egress lanes. v0.1–v0.3.1 shipped per-run identity, the approval FSM and credential broker, the L2 egress proxy and append-only audit, CC1/CC2 confinement, CI mode (BYOA), and the repo-scoped git-broker.

Exactly two deployment paths, and only one runs sandboxes today: deploy/compose [shipped] and one blessed Helm chart deploy/helm/wardyn [v0.5+ — planned], render-checked in CI but with no Kubernetes runner driver behind it yet. Also still unbuilt: SPIRE, OpenBao, L1 default-deny, an MCP/tool gateway, arbitrary-domain TLS interception, OTLP/OCSF sinks, and multi-user team mode.


Where to go next

Guided walkthrough — no-key governance demo, hands-on demo sandboxes, then a real Claude Code run docs/TRY-IT.md
Run it in a pipeline (GitHub Actions, Azure DevOps) — no UI, no human docs/CI.md
Binaries, egress table, security invariants, state machine ARCHITECTURE.md
Threat model and published residual risks threatmodel/THREAT-MODEL.md
Shipped vs planned, then per-release detail ROADMAP.md · CHANGELOG.md
Compose stack, no-login local mode, TLS deploy/compose/README.md
Go SDK + raw curl API docs/sdk.md
Demo policies and example configs examples/
Swappable seams behind every subsystem docs/PLUGGABILITY.md

License and governance

Apache-2.0. Contributor sign-off via DCO (Signed-off-by). No enterprise/ directory and no hosted backend — every control described above is in this repo, and it runs on your infrastructure or it doesn't run. Nothing here is a free tier of a paid product; there is no paid product. CNCF Sandbox is the governance target. Contributions welcome — see CONTRIBUTING.md.

Directories

Path Synopsis
cmd
wardyn command
Command wardyn is the operator CLI for the Wardyn control plane.
Command wardyn is the operator CLI for the Wardyn control plane.
wardyn-aws-sso command
Command wardyn-aws-sso is Wardyn's in-sandbox AWS SSO credential capture helper.
Command wardyn-aws-sso is Wardyn's in-sandbox AWS SSO credential capture helper.
wardyn-git-helper command
Command wardyn-git-helper is the git credential helper for Wardyn-governed agent sandboxes.
Command wardyn-git-helper is the git credential helper for Wardyn-governed agent sandboxes.
wardyn-proxy command
Command wardyn-proxy is the L2 per-workspace egress sidecar: an HTTP forward proxy that enforces Wardyn's default-deny domain allowlist, method rules, and first-use approval; streams decision logs to the control plane; and injects third-party credentials proxy-side so secrets never enter the sandbox.
Command wardyn-proxy is the L2 per-workspace egress sidecar: an HTTP forward proxy that enforces Wardyn's default-deny domain allowlist, method rules, and first-use approval; streams decision logs to the control plane; and injects third-party credentials proxy-side so secrets never enter the sandbox.
wardyn-rec command
Command wardyn-rec is Wardyn's per-workspace PTY session recorder.
Command wardyn-rec is Wardyn's per-workspace PTY session recorder.
wardyn-runner command
wardyn-scan command
Command wardyn-scan is Wardyn's in-sandbox workspace scanner.
Command wardyn-scan is Wardyn's in-sandbox workspace scanner.
wardyn-tetragon-ingest command
Command wardyn-tetragon-ingest is the host-scoped eBPF GROUND-TRUTH sidecar: the SECOND of Wardyn's three advertised audit streams.
Command wardyn-tetragon-ingest is the host-scoped eBPF GROUND-TRUTH sidecar: the SECOND of Wardyn's three advertised audit streams.
wardyn-verify command
Command wardyn-verify is Wardyn's in-sandbox environment VERIFY step.
Command wardyn-verify is Wardyn's in-sandbox environment VERIFY step.
wardynd command
Command wardynd is the Wardyn control plane: REST API, embedded web UI, policy engine, approval FSM, token broker, and audit ingest.
Command wardynd is the Wardyn control plane: REST API, embedded web UI, policy engine, approval FSM, token broker, and audit ingest.
examples
workspaces/github-push command
Package main is a trivial Go program used as the github-push workspace.
Package main is a trivial Go program used as the github-push workspace.
internal
api
Package api wires Wardyn's control-plane REST surface (the wardynd binary).
Package api wires Wardyn's control-plane REST surface (the wardynd binary).
approval
Package approval implements the ApprovalRequest FSM service.
Package approval implements the ApprovalRequest FSM service.
audit
Package audit defines the append-only audit contract.
Package audit defines the append-only audit contract.
audit/sinks
Package sinks provides production audit.Sink implementations (syslog, webhook, file) plus a Fanout multiplexer and config wiring.
Package sinks provides production audit.Sink implementations (syslog, webhook, file) plus a Fanout multiplexer and config wiring.
auth/oidc
Package oidc implements human SSO for Wardyn via OpenID Connect (Dex-compatible).
Package oidc implements human SSO for Wardyn via OpenID Connect (Dex-compatible).
broker
Package broker implements Wardyn's token broker: the ONLY component that holds long-lived secrets and the sole issuer of short-lived run credentials.
Package broker implements Wardyn's token broker: the ONLY component that holds long-lived secrets and the sole issuer of short-lived run credentials.
cliutil
Package cliutil holds tiny env/flag helpers shared by Wardyn's cmd/* main packages (each cmd is its own `main` package, so these can't just live in one of them without the others importing "main"), plus ScrubChildEnv, the one env denylist shared by every host-exec'd third-party CLI child.
Package cliutil holds tiny env/flag helpers shared by Wardyn's cmd/* main packages (each cmd is its own `main` package, so these can't just live in one of them without the others importing "main"), plus ScrubChildEnv, the one env denylist shared by every host-exec'd third-party CLI child.
component
Package component provides the shared registry that backs Wardyn's pluggable component seams (identity provider, secret store, recording store, policy evaluator, …).
Package component provides the shared registry that backs Wardyn's pluggable component seams (identity provider, secret store, recording store, policy evaluator, …).
composer
Package composer turns a natural-language task description into a PROPOSED Wardyn run setup — the same {run, inline_policy} shape the New Run wizard emits — that a human reviews and approves before launch.
Package composer turns a natural-language task description into a PROPOSED Wardyn run setup — the same {run, inline_policy} shape the New Run wizard emits — that a human reviews and approves before launch.
composer/backends
Package backends constructs composer.Composer implementations from operator config (the registry of LLM backends).
Package backends constructs composer.Composer implementations from operator config (the registry of LLM backends).
composer/backends/anthropic
Package anthropic implements the composer.Composer backend that drives Anthropic's Messages API (first-party API or Amazon Bedrock) to produce a Wardyn run proposal.
Package anthropic implements the composer.Composer backend that drives Anthropic's Messages API (first-party API or Amazon Bedrock) to produce a Wardyn run proposal.
composer/backends/cli
Package cli implements a composer.Composer backed by the operator's resident coding-agent CLI (Claude Code or Codex) running under its own logged-in SUBSCRIPTION — no API key is minted or passed.
Package cli implements a composer.Composer backed by the operator's resident coding-agent CLI (Claude Code or Codex) running under its own logged-in SUBSCRIPTION — no API key is minted or passed.
composer/backends/composertest
Package composertest holds fixtures shared by the cli, openai, and anthropic backend test suites: a schema-valid proposal JSON blob, a representative ComposeRequest, and the common Proposal assertions every backend's happy-path test needs.
Package composertest holds fixtures shared by the cli, openai, and anthropic backend test suites: a schema-valid proposal JSON blob, a representative ComposeRequest, and the common Proposal assertions every backend's happy-path test needs.
composer/backends/openai
Package openai implements the Wardyn Run Composer backend that talks to OpenAI-wire Chat Completions APIs.
Package openai implements the Wardyn Run Composer backend that talks to OpenAI-wire Chat Completions APIs.
composer/backends/sandbox
Package sandbox implements a composer.Composer that runs the REAL `claude` binary INSIDE a governed one-shot Wardyn sandbox, credentialed by the Wardyn-managed subscription token injected PROXY-SIDE (never resident).
Package sandbox implements a composer.Composer that runs the REAL `claude` binary INSIDE a governed one-shot Wardyn sandbox, credentialed by the Wardyn-managed subscription token injected PROXY-SIDE (never resident).
composer/backends/transport
Package transport provides a hardened, governed HTTP client for the composer's OWN outbound LLM API egress — the control-plane calls each networked composer backend makes to a third-party model provider (Anthropic, OpenAI, Azure, Bedrock, …).
Package transport provides a hardened, governed HTTP client for the composer's OWN outbound LLM API egress — the control-plane calls each networked composer backend makes to a third-party model provider (Anthropic, OpenAI, Azure, Bedrock, …).
contentscan
Package contentscan implements Wardyn's OPTIONAL, off-by-default outbound content-inspection layer ("egress content inspection" / inadvertent-leak guardrail).
Package contentscan implements Wardyn's OPTIONAL, off-by-default outbound content-inspection layer ("egress content inspection" / inadvertent-leak guardrail).
db
Package db provides Postgres connection bootstrapping and schema migration for the Wardyn control plane.
Package db provides Postgres connection bootstrapping and schema migration for the Wardyn control plane.
egress
Package egress defines the L2 proxy decision model shared by cmd/wardyn-proxy and the control plane's policy/approval wiring.
Package egress defines the L2 proxy decision model shared by cmd/wardyn-proxy and the control plane's policy/approval wiring.
egress/evaluatortest
Package evaluatortest provides a reusable conformance suite for any egress.Evaluator implementation, so the blessed default (builtin) and a future alternate (OPA/Cedar) are held to the identical policy-verdict contract.
Package evaluatortest provides a reusable conformance suite for any egress.Evaluator implementation, so the blessed default (builtin) and a future alternate (OPA/Cedar) are held to the identical policy-verdict contract.
egress/proxy
Package proxy implements the L2 per-workspace egress sidecar (wardyn-proxy): an HTTP forward proxy that enforces the internal/egress decision model (default-deny domain allowlist, method rules, first-use approval), streams decision logs, and injects credentials proxy-side.
Package proxy implements the L2 per-workspace egress sidecar (wardyn-proxy): an HTTP forward proxy that enforces the internal/egress decision model (default-deny domain allowlist, method rules, first-use approval), streams decision logs, and injects credentials proxy-side.
gitremote
Package gitremote deterministically detects the git remotes configured in a local directory tree, so Wardyn can ground a composed run's GitHub grant on the workspace's ACTUAL remotes rather than an LLM guess.
Package gitremote deterministically detects the git remotes configured in a local directory tree, so Wardyn can ground a composed run's GitHub grant on the workspace's ACTUAL remotes rather than an LLM guess.
groundtruth
Package groundtruth maps kernel-level observations (from an eBPF sensor — specifically Tetragon) into Wardyn's append-only audit vocabulary (types.AuditEvent).
Package groundtruth maps kernel-level observations (from an eBPF sensor — specifically Tetragon) into Wardyn's append-only audit vocabulary (types.AuditEvent).
identity
Package identity defines the per-run workload identity contract.
Package identity defines the per-run workload identity contract.
identity/embedded
Package embedded implements the default, SPIFFE-shaped JWT-SVID identity provider satisfying identity.Provider.
Package embedded implements the default, SPIFFE-shaped JWT-SVID identity provider satisfying identity.Provider.
identity/identitytest
Package identitytest provides a reusable conformance suite for any identity.Provider implementation, so the blessed default (embedded) and a future alternate (SPIRE) are held to the identical security contract.
Package identitytest provides a reusable conformance suite for any identity.Provider implementation, so the blessed default (embedded) and a future alternate (SPIRE) are held to the identical security contract.
ipguard
Package ipguard holds the SSRF private/reserved membership test shared by the egress proxy's policy guard (internal/egress/proxy) and the composer transport guard (internal/composer/backends/transport).
Package ipguard holds the SSRF private/reserved membership test shared by the egress proxy's policy guard (internal/egress/proxy) and the composer transport guard (internal/composer/backends/transport).
lifecycle
Package lifecycle implements workspace lifecycle automation: the Reaper loop finds RUNNING agent runs that have been idle past their policy's AutoStopAfterSec threshold and stops them, emitting a "run.autostop" audit event for each.
Package lifecycle implements workspace lifecycle automation: the Reaper loop finds RUNNING agent runs that have been idle past their policy's AutoStopAfterSec threshold and stops them, emitting a "run.autostop" audit event for each.
recording
Package recording provides storage and HTTP serving of asciicast session recordings produced by wardyn-rec.
Package recording provides storage and HTTP serving of asciicast session recordings produced by wardyn-rec.
recording/recordingtest
Package recordingtest provides a reusable conformance suite for any recording.Store implementation.
Package recordingtest provides a reusable conformance suite for any recording.Store implementation.
recordmode
Package recordmode is the deterministic core of Wardyn's "Recording Mode": it OBSERVES what a fully-open (allow-all-egress, broad-grant) run actually used — purely from already-captured audit events — and SYNTHESIZES a tightened, least-privilege RunPolicySpec the operator can review and promote.
Package recordmode is the deterministic core of Wardyn's "Recording Mode": it OBSERVES what a fully-open (allow-all-egress, broad-grant) run actually used — purely from already-captured audit events — and SYNTHESIZES a tightened, least-privilege RunPolicySpec the operator can review and promote.
runner
Package runner defines the target-agnostic sandbox lifecycle contract.
Package runner defines the target-agnostic sandbox lifecycle contract.
runner/orchestrator
Package orchestrator is the build-tag-free runner.Runner the control plane talks to.
Package orchestrator is the build-tag-free runner.Runner the control plane talks to.
runner/substrate
Package substrate defines the confinement-substrate sub-interface: the seam beneath the runner.Runner surface that lets a non-OCI microVM VMM (SmolVM, Firecracker, …) back a Confinement Class alongside the OCI/Docker substrate, without the control plane (or each substrate) re-implementing the runner contract.
Package substrate defines the confinement-substrate sub-interface: the seam beneath the runner.Runner surface that lets a non-OCI microVM VMM (SmolVM, Firecracker, …) back a Confinement Class alongside the OCI/Docker substrate, without the control plane (or each substrate) re-implementing the runner contract.
secretmask
Package secretmask implements Wardyn's output-masking layer for PTY capture and asciicast streams.
Package secretmask implements Wardyn's output-masking layer for PTY capture and asciicast streams.
secretstore
Package secretstore defines the at-rest secret storage contract.
Package secretstore defines the at-rest secret storage contract.
secretstore/pg
Package pg implements secretstore.Store backed by an age-encrypted Postgres column (the `secrets` table in the core schema).
Package pg implements secretstore.Store backed by an age-encrypted Postgres column (the `secrets` table in the core schema).
secretstore/secretstoretest
Package secretstoretest provides a reusable conformance suite for any secretstore.Store implementation.
Package secretstoretest provides a reusable conformance suite for any secretstore.Store implementation.
setup
Package setup provides host-environment detection for the first-run setup surface (GET /api/v1/setup/status): which resident coding-agent CLIs are present, and the OS/WSL posture the environment-step copy keys off.
Package setup provides host-environment detection for the first-run setup surface (GET /api/v1/setup/status): which resident coding-agent CLIs are present, and the OS/WSL posture the environment-step copy keys off.
sidecar
Package sidecar holds the small brokered-PUT plumbing shared by Wardyn's in-sandbox result-uploader binaries (wardyn-scan, wardyn-verify): validate WARDYN_PROXY_URL/WARDYN_RUN_ID, build the brokered result URL, and PUT a JSON body.
Package sidecar holds the small brokered-PUT plumbing shared by Wardyn's in-sandbox result-uploader binaries (wardyn-scan, wardyn-verify): validate WARDYN_PROXY_URL/WARDYN_RUN_ID, build the brokered result URL, and PUT a JSON body.
store
Package store provides typed CRUD over the Wardyn schema using pgx/v5.
Package store provides typed CRUD over the Wardyn schema using pgx/v5.
subscription
Package subscription yields the operator's LIVE Anthropic subscription OAuth access token from the resident ~/.claude credentials, so the egress proxy can inject a fresh token per request instead of the sandbox holding a COPY that goes stale (access-token expiry + refresh-token rotation lock the copy out).
Package subscription yields the operator's LIVE Anthropic subscription OAuth access token from the resident ~/.claude credentials, so the egress proxy can inject a fresh token per request instead of the sandbox holding a COPY that goes stale (access-token expiry + refresh-token rotation lock the copy out).
types
Package types defines Wardyn's core domain vocabulary: the four nouns (AgentRun, RunPolicy, CredentialGrant, ApprovalRequest) plus the audit event shape.
Package types defines Wardyn's core domain vocabulary: the four nouns (AgentRun, RunPolicy, CredentialGrant, ApprovalRequest) plus the audit event shape.
version
Package version holds Wardyn's ONE shipped version string.
Package version holds Wardyn's ONE shipped version string.
workspacescan
Package workspacescan deterministically detects a local directory's (or a cloned repo's) development conventions — languages, package managers, implied egress registries, dev-container/Dockerfile presence, tools, and git remotes — so Wardyn can onboard a workspace with a profile grounded in what's ACTUALLY in the tree, not an LLM guess.
Package workspacescan deterministically detects a local directory's (or a cloned repo's) development conventions — languages, package managers, implied egress registries, dev-container/Dockerfile presence, tools, and git remotes — so Wardyn can onboard a workspace with a profile grounded in what's ACTUALLY in the tree, not an LLM guess.
pkg
client
Package client is the public Go SDK for the Wardyn control plane.
Package client is the public Go SDK for the Wardyn control plane.
test
awsssofake
Package awsssofake is a local, unsigned fake of the two AWS IAM Identity Center (SSO) HTTP services the AWS CLI/SDK talks to during `aws sso login` and later role-credential resolution:
Package awsssofake is a local, unsigned fake of the two AWS IAM Identity Center (SSO) HTTP services the AWS CLI/SDK talks to during `aws sso login` and later role-credential resolution:
conformance
Package conformance is the driver-agnostic parity gate for runner.Runner implementations.
Package conformance is the driver-agnostic parity gate for runner.Runner implementations.

Jump to

Keyboard shortcuts

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