Documentation
¶
Overview ¶
Package builder is the togo day-0 agentic development harness: a feedback widget, an issue plane, an orchestrator that claims issues under a fenced database lease and delegates them to a fleet of Claude Code agents, per-agent memory, and an audited secret vault.
On `togo install togo-framework/builder` this package is blank-imported into the host app, so init() registers the providers with the kernel.
Six providers register independently so each can be disabled at boot (BUILDER_DISABLE=vault,brain) and extracted to its own repo later without touching the others. That property — independently disableable today, independently extractable tomorrow — is why they are separate providers rather than one monolithic Provide().
Index ¶
Constants ¶
const ( ProviderVault = "builder.vault" // no deps; secrets other providers read ProviderBrain = "builder.brain" // reads vault for driver tokens ProviderIssues = "builder.issues" // the issue plane + HTTP surface ProviderFleet = "builder.fleet" // agent registry + .claude/ sync ProviderOrchestrator = "builder.orchestrator" // claim/lease/route/triage ProviderNotify = "builder.notify" // realtime + push + sound ProviderSources = "builder.sources" // scheduled ingestion into the brain ProviderApps = "builder.apps" // user-supplied screens, discovered at boot ProviderWeb = "builder.web" // the dashboard itself, from the embedded bundle )
Provider names. Each is a separate kernel provider with its own priority so boot order is explicit rather than emergent.
const BlueprintVersion = "0.1.0"
BlueprintVersion is stamped into a generated project's togo.yaml so `togo-builder blueprint upgrade` knows which template the project came from and which migrations it has already seen.
It is deliberately separate from Version: the plugin can be patched without changing what a fresh scaffold produces, and a blueprint can change without forcing every installed app to upgrade the plugin.
const Name = "builder"
Name is the plugin's stable identifier.
const WebMount = "/builder"
WebMount is where the dashboard lives, in every build that serves it.
ONE prefix, and not one of the screens' own names. The routes are /issues, /agents, /chat, /vault, /terminal — words a host application is entirely likely to have already used, and whose handlers its own router would answer first. Mounting each at the root of somebody else's product is a collision waiting to happen and, in the case of a Next.js or SPA host, a guaranteed 404: the host serves its own index for /issues and the builder's router never sees the request.
/builder is claimed once, is unlikely to be taken, and reads as what it is. It matches vite's `base` in web/vite.config.ts — the asset URLs in the built index.html are stamped with the same prefix, so this constant and the bundle cannot disagree.
Variables ¶
var Version = "dev"
Version is the plugin module version. Set by the release build via -ldflags "-X github.com/togo-framework/builder.Version=$TAG"; "dev" locally.
Functions ¶
func AssetFiles ¶
AssetFiles returns the asset tree rooted at "/", ready for http.FileServer.
Types ¶
This section is empty.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package blueprint carries the project template as an embedded filesystem.
|
Package blueprint carries the project template as an embedded filesystem. |
|
_project/internal/plugins
Locally-developed plugins, blank-imported so their init() registers with the kernel.
|
Locally-developed plugins, blank-imported so their init() registers with the kernel. |
|
cmd
|
|
|
togo-builder
command
Command togo-builder scaffolds and operates builder projects.
|
Command togo-builder scaffolds and operates builder projects. |
|
Package customapps is builder's custom-app extension point: a way to add a screen to the builder — a tile in the SDK launcher and a route of its own — without editing builder's source.
|
Package customapps is builder's custom-app extension point: a way to add a screen to the builder — a tile in the SDK launcher and a route of its own — without editing builder's source. |
|
internal
|
|
|
authz
Package authz supplies the permission check that togo's auth plugin does not.
|
Package authz supplies the permission check that togo's auth plugin does not. |
|
brain
Package brain gives each agent its own memory.
|
Package brain gives each agent its own memory. |
|
chat
Package chat is the advisory surface: pick an agent and talk to it.
|
Package chat is the advisory surface: pick an agent and talk to it. |
|
connections
Package connections is the successor to internal/sources.
|
Package connections is the successor to internal/sources. |
|
db/seeders
Package seeders creates the rows a fresh project cannot boot usefully without.
|
Package seeders creates the rows a fresh project cannot boot usefully without. |
|
docs
Package docs is the project's reference library: the files a person would hand a new engineer, made available to the fleet.
|
Package docs is the project's reference library: the files a person would hand a new engineer, made available to the fleet. |
|
fleet
Package fleet turns an operator's plan into a working agent team.
|
Package fleet turns an operator's plan into a working agent team. |
|
issues
Package issues owns the issue plane: the public feedback ingress the SDK posts to, and the per-route listing it reads back.
|
Package issues owns the issue plane: the public feedback ingress the SDK posts to, and the per-route listing it reads back. |
|
mcp
Package mcp exposes the builder over the Model Context Protocol, so an agent running anywhere — Claude Code, Codex, any MCP client — can read the issue board and talk to this fleet and its memory.
|
Package mcp exposes the builder over the Model Context Protocol, so an agent running anywhere — Claude Code, Codex, any MCP client — can read the issue board and talk to this fleet and its memory. |
|
notify
Package notify pushes agent events to a logged-in admin in real time.
|
Package notify pushes agent events to a logged-in admin in real time. |
|
orchestrator
Package orchestrator owns the agent loop: it triages incoming reports, claims work under a fenced database lease, and delegates it.
|
Package orchestrator owns the agent loop: it triages incoming reports, claims work under a fenced database lease, and delegates it. |
|
runner
Package runner owns everything that executes outside the app process: the Claude Code session, the git worktree, the gates, and the preflight that proves the environment can run any of it.
|
Package runner owns everything that executes outside the app process: the Claude Code session, the git worktree, the gates, and the preflight that proves the environment can run any of it. |
|
scaffold
Package scaffold renders a new builder project.
|
Package scaffold renders a new builder project. |
|
setup
Package setup owns the wizard, and the registry that generates it.
|
Package setup owns the wizard, and the registry that generates it. |
|
skills
Package skills owns the skill catalogue: the reusable instruction files that agents load by name.
|
Package skills owns the skill catalogue: the reusable instruction files that agents load by name. |
|
sources
Package sources runs saved read-only queries against real databases on a schedule and retains the rendered result as project memory.
|
Package sources runs saved read-only queries against real databases on a schedule and retains the rendered result as project memory. |
|
term
Package term gives the dashboard a real terminal, attached to a tmux session on the machine the builder runs on.
|
Package term gives the dashboard a real terminal, attached to a tmux session on the machine the builder runs on. |
|
vault
Package vault stores the credentials agents need, encrypted at rest, with every reveal audited.
|
Package vault stores the credentials agents need, encrypted at rest, with every reveal audited. |