Fountain
The fountain lexicon declares fountain’s workload layer as typed chant resources. fountain runs coding agents in sandboxed VMs. Six kinds are declarable: Environment (sandbox baseline), Vault (env-var overrides) and Agent (a runnable agent config) are what fountain apply reconciles; Teammate (an agent seated on the team, with a thread of its own), Schedule (a cron prompt into that thread) and Webhook (where the estate’s events leave it) belong to the team, schedule and webhook routes.
Types are generated from a pinned fountain release’s OpenAPI spec, so they track the real API.
Install it with:
npm install --save-dev @intentius/chant-lexicon-fountainQuick Start
Section titled “Quick Start”import { Environment, Agent, Teammate, Schedule } from "@intentius/chant-lexicon-fountain";
export const env = new Environment({ name: "team-env", networking_type: "limited", // FTN010 requires explicit intent networking_config: { allowed_hosts: ["github.com"] }, metadata: { "managed-by": "chant" }, // enables owned-only reconcile/prune});
export const helper = new Agent({ name: "helper", model: "anthropic/claude-sonnet-4-6", runtime: "claude", environment: env, // typed ref — dangling name = build error});
export const helperSeat = new Teammate({ name: "helper", agent: helper });
export const nightly = new Schedule({ name: "nightly-converge", teammate: helperSeat, cron: "0 3 * * *", // five fields, UTC (FTN020) prompt: "chant run converge",});The loop
Section titled “The loop”chant build— synthesize and lint. The FTN rules catch open networking, credential literals, and unresolvable${VAR}references before review. The same rules run viachant auditover a repo of hand-writtenfountain applymanifests — no chant project needed; the documents are parsed back into the entity graph.chant run <apply op>or callfountainApply— reconcile against the API. Idempotent by name.chant lifecycle diff --live— drift. A UI edit to an owned Environment shows up here.chant import --from— adopt UI-built resources into typed files.
Endpoint and auth
Section titled “Endpoint and auth”FOUNTAIN_ENDPOINT (defaults to the hosted instance) and FOUNTAIN_TOKEN. Mint a token via POST /api/auth/token with email and password, or from the account UI. The same code applies to a local mix phx.server fountain by pointing FOUNTAIN_ENDPOINT at it — registration and token mint work headless, so CI needs no browser.
At a Glance
Section titled “At a Glance”| Metric | Count |
|---|---|
| Resources | 6 |
| Property types | 1 |
| Services | 1 |
| Intrinsic functions | 0 |
| Pseudo-parameters | 0 |
| Lint rules | 13 |
Lexicon version: 0.75.1
Namespace: Fountain
- All Rules — 13 rules
- Serialization — output format details