Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

476 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cms-agent

Chat-agent CMS for Astro sites. An AI agent manages a target Astro repository through git branches: every draft branch gets a live dev-server preview at <branch>.your-domain.tld (behind a Rust reverse proxy this app controls), and every change cycles through plan → execute → publish (reviewing is part of execute) with explicit approvals, one self-contained commit per execution, visual page diffs, and pluggable deployment flows.

  • Chat-first: the whole workflow is driven from a chat sidebar (multiple chats per branch, shared between all users, persistent, streaming).
  • Safe by construction: the plan phase is read-only (enforced server-side, not just prompted), publishing binds the exact reviewed commit, undo is a git revert, and validators block secrets/binaries/symlinks before any commit.
  • Bring your own model: any OpenAI-compatible endpoint (OPENAI_BASE_URL + OPENAI_API_KEY + OPENAI_MODEL).

Quick start (development)

cp .env.example .env             # fill in DATABASE_URL, OPENAI_*, …
scripts/setup-dev-site.sh        # real git-inited site copy at ./local/dev-site
nix develop --command overmind s # after starting the PostgreSQL in DATABASE_URL

The start command reconciles dependencies and the generated Prisma client only when their inputs changed, applies pending committed migrations, then starts the CMS and embedded proxy. ./scripts/update-local.sh is an optional prewarm after a pull; starting remains sufficient on its own.

Documentation

The running app serves it all at /architecture — a public page with the whole design as diagrams (topology, every state machine, the git model, the sandbox, the data model), plus the guides. The same files read fine on disk: docs/ is a symlink to src/pages/architecture/.

  • docs/setup.md — every environment variable, DNS, first admin
  • docs/walkthrough.md — end-to-end tour with examples/blog-site
  • docs/phases.md — the workflow phases and what each one allows
  • docs/runbooks.md — operations, failure runbooks, go-live checklist
  • docs/nixos.md — the NixOS module

Tests

pnpm test              # self-contained: throwaway SQLite, no services
pnpm test:integration  # boots real astro dev servers + deploy flows;
                       # the live agent-loop test runs only with a real OPENAI_API_KEY
cargo test --manifest-path proxy/Cargo.toml

Repository layout

src/lib/agent/     session loop (OpenAI streaming), tools + in-process MCP,
                   workflow phases, locks, persistence
src/lib/git/       branches, worktrees, single-commit executions, revert/restore
src/lib/preview/   on-demand astro dev instances + native proxy routes
src/lib/diff/      changed-page mapping + Playwright/pixelmatch screenshot diffs
src/lib/publish/   DeployFlow registry (git-push, web-agency, github-ci,
                   cloudflare-pages) + sealed artifacts
src/lib/content/   ContentAdapter port (collections + JobPosting adapters)
src/lib/validate/  pre-commit + pre-publish validators
src/components/    vanilla-TS UI (chat extracted from plan.ai-chat + workspace)
proxy/             complete Rust Pingora server exposed through N-API
examples/          sample target sites used by tests and docs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages