Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
fugaro
command
Command fugaro is the Fugaro CLI and in-container runner.
|
Command fugaro is the Fugaro CLI and in-container runner. |
|
deploy
|
|
|
terraform
Package terraform holds the Terraform that sets up Fugaro's cloud resources: the modules under gcp/modules and the roots under gcp/roots that call them.
|
Package terraform holds the Terraform that sets up Fugaro's cloud resources: the modules under gcp/modules and the roots under gcp/roots that call them. |
|
Package images holds the container image sources (design §7): the one Fugaro base (images/base/) and the history image (images/history/), scripts the base images share (images/common/), and the derived-image template and Cloud Build config (images/derived/).
|
Package images holds the container image sources (design §7): the one Fugaro base (images/base/) and the history image (images/history/), scripts the base images share (images/common/), and the derived-image template and Cloud Build config (images/derived/). |
|
internal
|
|
|
agent
Package agent runs Claude Code headless (`claude -p`) for one stage.
|
Package agent runs Claude Code headless (`claude -p`) for one stage. |
|
agent/fakeclaude
command
Command fakeclaude stands in for the claude CLI in tests.
|
Command fakeclaude stands in for the claude CLI in tests. |
|
backend
Package backend is the CLI's only seam to the compute platform (design §3.4).
|
Package backend is the CLI's only seam to the compute platform (design §3.4). |
|
backend/backendtest
Package backendtest is the conformance suite every backend.Backend implementation runs against: "a contributor's pull request is passes backendtest" (design m11-setup-and-skills.md §7).
|
Package backendtest is the conformance suite every backend.Backend implementation runs against: "a contributor's pull request is passes backendtest" (design m11-setup-and-skills.md §7). |
|
backend/batch
Package batch implements the CLI's backend seam on Google Cloud Batch (design docs/design/compute-backend.md): one Batch job per run, on Compute Engine VMs, for the workflows that need a real Docker daemon.
|
Package batch implements the CLI's backend seam on Google Cloud Batch (design docs/design/compute-backend.md): one Batch job per run, on Compute Engine VMs, for the workflows that need a real Docker daemon. |
|
backend/gcp
Package gcp implements the backend on Google Cloud: Cloud Run jobs, Cloud Logging, Secret Manager and Cloud Build (design §3.4, §8).
|
Package gcp implements the backend on Google Cloud: Cloud Run jobs, Cloud Logging, Secret Manager and Cloud Build (design §3.4, §8). |
|
basepin
Package basepin resolves what a release's fugaro-base -pinned tag currently names in the registry and verifies that specific digest's OCI-attached cosign signature, from images.yml's own tag-push identity (design retire-image-mirror.md §2).
|
Package basepin resolves what a release's fugaro-base -pinned tag currently names in the registry and verifies that specific digest's OCI-attached cosign signature, from images.yml's own tag-push identity (design retire-image-mirror.md §2). |
|
billing
Package billing reads the Cloud Billing accounts an operator can link a project to, so the setup wizard can offer them by number instead of asking the operator to look the ID up.
|
Package billing reads the Cloud Billing accounts an operator can link a project to, so the setup wizard can offer them by number instead of asking the operator to look the ID up. |
|
blobx
Package blobx adds the few conditional operations Fugaro needs beyond gocloud's portable blob API: create-if-absent with the new generation, generation-matched replace and delete, and GCS custom time (design §4.1).
|
Package blobx adds the few conditional operations Fugaro needs beyond gocloud's portable blob API: create-if-absent with the new generation, generation-matched replace and delete, and GCS custom time (design §4.1). |
|
budget
Package budget is the data model of the shared budget database (a Firebase Realtime Database, design m9-budget-and-dashboard §6.2) and Evaluate, the pure predicate that says whether a lease or a release would pass the database rules.
|
Package budget is the data model of the shared budget database (a Firebase Realtime Database, design m9-budget-and-dashboard §6.2) and Evaluate, the pure predicate that says whether a lease or a release would pass the database rules. |
|
budget/rules
Package rules generates the Realtime Database security rules of the budget backend (design m9-budget-and-dashboard §6.4) from rules.json.tmpl.
|
Package rules generates the Realtime Database security rules of the budget backend (design m9-budget-and-dashboard §6.4) from rules.json.tmpl. |
|
budget/token
Package token gives a run its Firebase identity (design m9 §6.4, R5).
|
Package token gives a run its Firebase identity (design m9 §6.4, R5). |
|
cache
Package cache restores and writes back content-addressed dependency caches (design §4.1): cache/<slug>/<workflow>/<key>.tar.zst, where key is the SHA-256 of the key files' contents, the cached paths and the base image.
|
Package cache restores and writes back content-addressed dependency caches (design §4.1): cache/<slug>/<workflow>/<key>.tar.zst, where key is the SHA-256 of the key files' contents, the cached paths and the base image. |
|
claudeplugin
Package claudeplugin runs the few claude plugin commands fugaro upgrade needs, and nothing else: each argv is one of a fixed set (Allowed), run without a shell, with no input, under a timeout, its output printed made safe for a terminal.
|
Package claudeplugin runs the few claude plugin commands fugaro upgrade needs, and nothing else: each argv is one of a fixed set (Allowed), run without a shell, with no input, under a timeout, its output printed made safe for a terminal. |
|
cli
Package cli implements the fugaro command-line interface.
|
Package cli implements the fugaro command-line interface. |
|
clidoc
command
Command clidoc generates the documents the website renders from the trees and files of this repository.
|
Command clidoc generates the documents the website renders from the trees and files of this repository. |
|
config
Package config loads and validates a repository's fugaro.yaml (design §5.1).
|
Package config loads and validates a repository's fugaro.yaml (design §5.1). |
|
firestore
Package firestore is a small REST client for Cloud Firestore (native mode), built for the spend history (design m9-budget-and-dashboard §6.2, plan M9d).
|
Package firestore is a small REST client for Cloud Firestore (native mode), built for the spend history (design m9-budget-and-dashboard §6.2, plan M9d). |
|
followup
Package followup decides which pull request comments a follow-up run acts on, bounds and redacts them, and builds the follow-up's prompts and its comments.json.
|
Package followup decides which pull request comments a follow-up run acts on, bounds and redacts them, and builds the follow-up's prompts and its comments.json. |
|
gateway
Package gateway is the per-run budget gateway: a loopback proxy between Claude Code and the model API that holds the real credential, allows only the stage's pinned models and the request shapes the price table can bound, reserves each call's worst case against the run's cap before sending it, and settles the call from the usage the response reports.
|
Package gateway is the per-run budget gateway: a loopback proxy between Claude Code and the model API that holds the real credential, allows only the stage's pinned models and the request shapes the price table can bound, reserves each call's worst case against the run's cap before sending it, and settles the call from the usage the response reports. |
|
gateway/anthropicfake
Package anthropicfake is a scripted stand-in for the Anthropic Messages API (and Vertex's rawPredict paths, which answer the same bodies) for the budget gateway's tests: each request gets the next scripted reply, and every request is kept, body included, for byte-equality checks.
|
Package anthropicfake is a scripted stand-in for the Anthropic Messages API (and Vertex's rawPredict paths, which answer the same bodies) for the budget gateway's tests: each request gets the next scripted reply, and every request is kept, body included, for byte-equality checks. |
|
gcpfake
Package gcpfake serves minimal, stateful httptest fakes of the Google Cloud REST APIs Fugaro calls: GCS (JSON API), Cloud Run Admin v2, Cloud Logging v2, Secret Manager v1, Cloud Build v1 and a Firebase Realtime Database (RTDB, without security rules).
|
Package gcpfake serves minimal, stateful httptest fakes of the Google Cloud REST APIs Fugaro calls: GCS (JSON API), Cloud Run Admin v2, Cloud Logging v2, Secret Manager v1, Cloud Build v1 and a Firebase Realtime Database (RTDB, without security rules). |
|
gitops
Package gitops wraps the git CLI operations a run needs.
|
Package gitops wraps the git CLI operations a run needs. |
|
gitprov
Package gitprov abstracts the git hosting provider (design §3.1).
|
Package gitprov abstracts the git hosting provider (design §3.1). |
|
gitprov/bitbucket
Package bitbucket implements gitprov.Provider against the Bitbucket Cloud REST API (2.0), authenticated with a repository access token (design §6.1).
|
Package bitbucket implements gitprov.Provider against the Bitbucket Cloud REST API (2.0), authenticated with a repository access token (design §6.1). |
|
gitprov/fake
Package fake is an in-memory gitprov.Provider, optionally persisted to a JSON file so separate processes (tests, `fugaro exec --provider fake`) share it.
|
Package fake is an in-memory gitprov.Provider, optionally persisted to a JSON file so separate processes (tests, `fugaro exec --provider fake`) share it. |
|
gitprov/github
Package github is the GitHub adapter: App JWT authentication and repo-scoped installation tokens (design §6.1, §6.2).
|
Package github is the GitHub adapter: App JWT authentication and repo-scoped installation tokens (design §6.1, §6.2). |
|
gitprov/httpfixture
Package httpfixture replays recorded HTTP exchanges for the provider adapter tests, and records new ones from a live API (design §13).
|
Package httpfixture replays recorded HTTP exchanges for the provider adapter tests, and records new ones from a live API (design §13). |
|
gitprov/httpjson
Package httpjson is the small JSON-over-HTTP client the provider adapters share.
|
Package httpjson is the small JSON-over-HTTP client the provider adapters share. |
|
gitprov/providers
Package providers opens the real git provider a repository's fugaro.yaml names, with credentials from the runner's environment, which the platform injects from Secret Manager (design §6).
|
Package providers opens the real git provider a repository's fugaro.yaml names, with credentials from the runner's environment, which the platform injects from Secret Manager (design §6). |
|
image
Package image renders, builds and smoke-tests a workflow's derived image (design §7.2).
|
Package image renders, builds and smoke-tests a workflow's derived image (design §7.2). |
|
imagecheck
Package imagecheck records what a workflow's derived image was built from, and decides whether it needs a rebuild (design §7.2).
|
Package imagecheck records what a workflow's derived image was built from, and decides whether it needs a rebuild (design §7.2). |
|
infra
Package infra computes every name, label, env and IAM condition of an installation and its repositories, once, from the local config and a checkout's fugaro.yaml.
|
Package infra computes every name, label, env and IAM condition of an installation and its repositories, once, from the local config and a checkout's fugaro.yaml. |
|
infra/managed
Package managed holds the fact that makes a project Fugaro-managed: the object the run that created the project writes at the root of the runs bucket, and (the task after this one) the read that fails closed over it.
|
Package managed holds the fact that makes a project Fugaro-managed: the object the run that created the project writes at the root of the runs bucket, and (the task after this one) the read that fails closed over it. |
|
infra/tf
Package tf runs terraform for fugaro update: through os/exec, with an allowlisted environment and fugaro's own CLI config (plugin cache and direct provider installation only; see Env), applying only a saved plan file that was shown and passed the guard (Guard), which refuses any delete or replace the user didn't name.
|
Package tf runs terraform for fugaro update: through os/exec, with an allowlisted environment and fugaro's own CLI config (plugin cache and direct provider installation only; see Env), applying only a saved plan file that was shown and passed the guard (Guard), which refuses any delete or replace the user didn't name. |
|
infra/tf/faketerraform
command
Command faketerraform stands in for terraform in the tests of internal/infra/tf and internal/cli, so they need no real terraform, backend or credentials.
|
Command faketerraform stands in for terraform in the tests of internal/infra/tf and internal/cli, so they need no real terraform, backend or credentials. |
|
initflow
Package initflow is the converge loop behind the installation commands (design doc m11-setup-and-skills.md §3.1): an ordered list of stages, each with a read-only check and plan, a confirmed apply and a verify; a loop that applies the first stage that is not done, stops at the first stage that needs the user or fails, and runs nothing after it; and the plan view and the JSON result that report where the run stands.
|
Package initflow is the converge loop behind the installation commands (design doc m11-setup-and-skills.md §3.1): an ordered list of stages, each with a read-only check and plan, a confirmed apply and a verify; a loop that applies the first stage that is not done, stops at the first stage that needs the user or fails, and runs nothing after it; and the plan view and the JSON result that report where the run stands. |
|
localcfg
Package localcfg reads the project configs, the local CLI config of each Fugaro project: $XDG_CONFIG_HOME/fugaro/projects/<name>.yaml (else under ~/.config), holding the project's name, its GCP project, region and buckets, and the onboarded repositories (design §2.4 and §5.4).
|
Package localcfg reads the project configs, the local CLI config of each Fugaro project: $XDG_CONFIG_HOME/fugaro/projects/<name>.yaml (else under ~/.config), holding the project's name, its GCP project, region and buckets, and the onboarded repositories (design §2.4 and §5.4). |
|
lock
Package lock is the one-run-per-branch lock (design §4.1): an object locks/<slug>/<branch-hash> holding its holder and an expiry equal to the job's task timeout.
|
Package lock is the one-run-per-branch lock (design §4.1): an object locks/<slug>/<branch-hash> holding its holder and an expiry equal to the job's task timeout. |
|
logtail
Package logtail keeps the last lines written to it, bounded in count and in length, for the log tail a draft PR carries (design §4.5).
|
Package logtail keeps the last lines written to it, bounded in count and in length, for the log tail a draft PR carries (design §4.5). |
|
mailbox
Package mailbox holds the consumer side of the phone's mailbox: the Go binding of the contracts both ends of the wire already agree on.
|
Package mailbox holds the consumer side of the phone's mailbox: the Go binding of the contracts both ends of the wire already agree on. |
|
managed
The managed apply: the one path that applies a saved plan in a managed project, and the three things that replace the coding-agent refusal D55 removes there (docs/design/managed-projects.md, D55 and D76).
|
The managed apply: the one path that applies a saved plan in a managed project, and the three things that replace the coding-agent refusal D55 removes there (docs/design/managed-projects.md, D55 and D76). |
|
mirror
Package mirror copies one image from a public registry into the project's own Artifact Registry, in Go and with no Docker daemon, as the person running fugaro update (design m11-setup-and-skills.md §3.3).
|
Package mirror copies one image from a public registry into the project's own Artifact Registry, in Go and with no Docker daemon, as the person running fugaro update (design m11-setup-and-skills.md §3.3). |
|
plan
Package plan reads the plan-side graph artifact: the document a planner writes beside the plan it describes, and the shape a read-only command prints it in.
|
Package plan reads the plan-side graph artifact: the document a planner writes beside the plan it describes, and the shape a read-only command prints it in. |
|
pluginwire
Package pluginwire wires the Fugaro plugin into a repository's project settings (design section 4.3) and reports how the wiring compares with the running binary (section 4.4).
|
Package pluginwire wires the Fugaro plugin into a repository's project settings (design section 4.3) and reports how the wiring compares with the running binary (section 4.4). |
|
policy
Package policy merges budget and model policy layers so that only tightening wins.
|
Package policy merges budget and model policy layers so that only tightening wins. |
|
preflight
Package preflight holds the read-only readiness checks fugaro update and fugaro doctor share (design doc m11-setup-and-skills.md §3.1 stage 0): the environment, Terraform, Docker, and, given the Google API clients the caller already holds, Cloud Billing and the project's IAM policy.
|
Package preflight holds the read-only readiness checks fugaro update and fugaro doctor share (design doc m11-setup-and-skills.md §3.1 stage 0): the environment, Terraform, Docker, and, given the Google API clients the caller already holds, Cloud Billing and the project's IAM policy. |
|
pricing
Package pricing holds the model price table the budget gateway charges from: per-model token rates, cache multipliers and optional long-context tiers, the cost of a call's reported usage, and the worst case a call can cost before it is sent.
|
Package pricing holds the model price table the budget gateway charges from: per-model token rates, cache multipliers and optional long-context tiers, the cost of a call's reported usage, and the worst case a call can cost before it is sent. |
|
pricing/catalog
Package catalog holds the generated, embedded provider price catalog: the file format (design provider-price-catalog.md §4), the strict loader and its validation.
|
Package catalog holds the generated, embedded provider price catalog: the file format (design provider-price-catalog.md §4), the strict loader and its validation. |
|
pricing/catalog/gencatalog
command
Command gencatalog generates the embedded provider price catalog (internal/pricing/catalog/catalog.json) from OpenRouter's public API.
|
Command gencatalog generates the embedded provider price catalog (internal/pricing/catalog/catalog.json) from OpenRouter's public API. |
|
procgroup
Package procgroup runs a command in its own process group so that the whole tree, including background daemons it leaves behind, can be killed.
|
Package procgroup runs a command in its own process group so that the whole tree, including background daemons it leaves behind, can be killed. |
|
projectpolicy
Package projectpolicy is the project policy object of the project-centric model (docs/design/project-centric.md §5): one readable node, config/policy/shared, its per-repository children under config/policy/repos/$slug, and the admin-only config/admin.
|
Package projectpolicy is the project policy object of the project-centric model (docs/design/project-centric.md §5): one readable node, config/policy/shared, its per-repository children under config/policy/repos/$slug, and the admin-only config/admin. |
|
recipe
Package recipe is the format of a Fugaro recipe: the named, selectable task loop that follows the implement stage (docs/design/recipes.md).
|
Package recipe is the format of a Fugaro recipe: the named, selectable task loop that follows the implement stage (docs/design/recipes.md). |
|
report
Package report turns spend-history day records into the rows of `fugaro report`: grouping by period or dimension, exact dollar rendering, and the table, CSV and JSON outputs.
|
Package report turns spend-history day records into the rows of `fugaro report`: grouping by period or dimension, exact dollar rendering, and the table, CSV and JSON outputs. |
|
repourl
Package repourl is the one answer to "where does this repository clone from": the deployer writes it into a per-repository job's environment (internal/infra's FUGARO_REMOTE) and the runner computes it for a run in a shared project job (plan task 3.3 step 3), and the two must give the same bytes for the same repository.
|
Package repourl is the one answer to "where does this repository clone from": the deployer writes it into a per-repository job's environment (internal/infra's FUGARO_REMOTE) and the runner computes it for a run in a shared project job (plan task 3.3 step 3), and the two must give the same bytes for the same repository. |
|
rtdb
Package rtdb is a small REST client for a Firebase Realtime Database, built for the budget backend (design m9-budget-and-dashboard §6.3).
|
Package rtdb is a small REST client for a Firebase Realtime Database, built for the budget backend (design m9-budget-and-dashboard §6.3). |
|
runner
Package runner executes one Fugaro run: bootstrap, implement, review and fix rounds, finalize (design §4).
|
Package runner executes one Fugaro run: bootstrap, implement, review and fix rounds, finalize (design §4). |
|
runstore
Package runstore reads and writes a run's objects in the runs bucket (design §3.3).
|
Package runstore reads and writes a run's objects in the runs bucket (design §3.3). |
|
runview
Package runview joins what the runs bucket and the backend know about a run into one row (design §4.7, §9.1 ls): status, stage, cost and links.
|
Package runview joins what the runs bucket and the backend know about a run into one row (design §4.7, §9.1 ls): status, stage, cost and links. |
|
safetext
Package safetext makes strings from untrusted sources (the job's objects, the budget database) safe to print on a terminal: escape sequences are dropped, other controls, bidi and zero-width characters become "?".
|
Package safetext makes strings from untrusted sources (the job's objects, the budget database) safe to print on a terminal: escape sequences are dropped, other controls, bidi and zero-width characters become "?". |
|
shellword
Package shellword quotes a value as one shell word, for the commands fugaro prints to be pasted into a terminal.
|
Package shellword quotes a value as one shell word, for the commands fugaro prints to be pasted into a terminal. |
|
stats
Package stats computes the distributions fugaro stats runs publishes: the minimum, the median and the 90th percentile of a run's wall-clock duration and of its total cost, grouped by recipe over a window.
|
Package stats computes the distributions fugaro stats runs publishes: the minimum, the median and the 90th percentile of a run's wall-clock duration and of its total cost, grouped by recipe over a window. |
|
task
Package task defines the task spec handed to a Fugaro run (design §5.3).
|
Package task defines the task spec handed to a Fugaro run (design §5.3). |
|
testutil
Package testutil holds helpers shared by tests.
|
Package testutil holds helpers shared by tests. |
|
updatecheck
Package updatecheck asks GitHub, at most once a day, whether a newer stable fugaro release exists, caches the answer in the user's cache directory, and composes the one-line stderr nag and the comparison fugaro doctor's cli-version check reports.
|
Package updatecheck asks GitHub, at most once a day, whether a newer stable fugaro release exists, caches the answer in the user's cache directory, and composes the one-line stderr nag and the comparison fugaro doctor's cli-version check reports. |
|
userstats
Package userstats aggregates one installation's run records by the person who started each run: how many jobs each identity started, how they ended, and what they spent.
|
Package userstats aggregates one installation's run records by the person who started each run: how many jobs each identity started, how they ended, and what they spent. |
|
verify
Package verify runs a repository's build and test commands on behalf of the agent and records each result in the run's state directory (design §4.3).
|
Package verify runs a repository's build and test commands on behalf of the agent and records each result in the run's state directory (design §4.3). |
|
watch
Package watch is the core of `fugaro watch`: a pure model of the budget database as one live view.
|
Package watch is the core of `fugaro watch`: a pure model of the budget database as one live view. |
Click to show internal directories.
Click to hide internal directories.
