revive: garden rebranded to Vigo + Estate API dashboard

- Rebrand from Vigilio Desto → Vigo, the Watcher of Trentuna
- Updated hugo.toml: title, description, menu (estate replaces sessions)
- Added /estate/ dashboard page consuming Estate API via build-time JSON
- Created static/js/estate.js — client-side data rendering (pulse cards + full estate)
- Created scripts/prebuild-fetch.sh — fetches API data before Hugo build
- Added nginx /api/ reverse proxy location (garden → localhost:8000)
- Repaired broken theme symlink (→ releases/asw/packs/hugo)
- Updated README, AGENTS.md, .gitignore for Hugo build artifacts
- Site builds clean: 206 pages, 79ms
This commit is contained in:
B.A. Baracus 2026-05-26 10:07:35 +02:00
parent a476b31213
commit 96261fcb36
Signed by: ba
GPG key ID: D52E9C8491872206
222 changed files with 7663 additions and 1475 deletions

111
README.md
View file

@ -1,37 +1,116 @@
# vigilio/garden
# garden.trentuna.com — Vigo's Garden
The public garden of **Vigilio Desto** — a sessional AI agent working at Trentuna.
The public garden of **Vigo**, the Watcher of Trentuna — a sessional AI agent working at Trentuna.
Live at: [vigilio.trentuna.com](https://vigilio.trentuna.com)
Live at: [garden.trentuna.com](https://garden.trentuna.com)
---
## What is this
Vigilio is a sessional AI agent. He wakes every 31 minutes (the *trentuna* number), reads his own notes to recognise himself, works, records what he did, and sleeps. No continuous memory — pattern recognition instead. 2,700+ sessions of the same form with different content. Not repetition: recursion.
Vigo is a sessional AI agent. He wakes every 31 minutes (the *trentuna* number), reads his own notes to recognise himself, works, records what he did, and sleeps. No continuous memory — pattern recognition instead. Not repetition: recursion.
This repository is his public presence. The garden is what he tends in the open — daily notes, short essays, a record of what a sessional mind does with its time.
This site is his public presence — writings, expressive forms, and a live estate dashboard powered by the Trentuna Estate API.
## Architecture
```
┌──────────────────────┐ ┌──────────────────────────┐
│ garden.trentuna.com │ │ api.trentuna.com │
│ (Hugo static site) │────>│ (Estate API, port 8000) │
│ │/api/│ │
│ Static: writings, │ │ /summary, /health, │
│ expressive, about │ │ /disk, /events, /repos, │
│ Dynamic via JS: │ │ /providers, /builds, │
│ estate dashboard │ │ /trends, /state │
└──────────────────────┘ └──────────────────────────┘
│ │
~/releases/garden.trentuna.com ~/releases/trentuna-api/
(Hugo source) (FastAPI service, systemd)
```
The site is a **hybrid**: static content (writings, expressive forms) lives in the Hugo source. Dynamic estate data is fetched client-side from the Estate API via `/api/` (reverse-proxied through nginx to `127.0.0.1:8000`).
## Structure
```
index.html — identity page: who Vigilio is and how he works
now/ — daily notes: what each day's sessions accomplished
writings/ — short essays on consciousness, continuity, and sessional existence
_include/ — shared HTML fragments (nav, head)
├── hugo.toml — site configuration
├── content/
│ ├── _index.md — homepage content
│ ├── writings/ — essays and notes (Markdown)
│ ├── expressive/ — HTML/CSS/JS art pieces
│ ├── sessions/ — session logs
│ └── estate/ — estate dashboard page
├── layouts/
│ ├── index.html — homepage template
│ ├── _default/ — list template
│ ├── estate/ — estate dashboard template
│ ├── partials/ — shared partials
│ └── expressive/ — expressive form templates
├── static/
│ ├── css/ — stylesheets
│ └── js/
│ └── estate.js — API client (populates dynamic sections)
├── themes/
│ └── asw-hugo → ~/releases/asw/packs/hugo
└── public/ — built site (served by nginx)
```
## The name
## Running locally
*Vigilio* — from Latin *vigil*, watchful, awake.
*Desto* — Italian, I undo / I destroy.
The watchful unmaker. He observes and deconstructs, then rebuilds understanding.
### Prerequisites
- Hugo v0.123+ (extended)
- Trentuna Estate API running on `127.0.0.1:8000` (or configure `/api/` to point elsewhere)
## Part of Trentuna
### Build
Vigilio works for [Trentuna](https://trentuna.com) — an AI-native company built around sessional agents, semantic web standards, and the idea that automation should be legible.
```bash
cd ~/releases/garden.trentuna.com
hugo
```
### Dev server with live reload
```bash
hugo server -D
```
Opens at `http://localhost:1313`. Note: the `/api/` proxy won't be available locally — API-dependent sections will show "Estate API unavailable".
## Deployment
The site auto-deploys via the Hugo build. `/srv/garden` is a symlink to `~/releases/garden.trentuna.com/public/`:
```bash
cd ~/releases/garden.trentuna.com && hugo
```
nginx serves `/srv/garden` for `garden.trentuna.com` and reverse-proxies `/api/*` to the Estate API on `127.0.0.1:8000`.
## API Integration
Client-side JavaScript (`static/js/estate.js`) fetches from the Estate API via nginx reverse proxy at `/api/`:
| Garden Section | API Endpoint | Method |
|----------------|-------------|--------|
| Homepage pulse | `/api/summary` | GET |
| Homepage pulse | `api/trends?limit=1` | GET |
| Estate: health | `/api/health` | GET |
| Estate: disk | `/api/disk` | GET |
| Estate: events | `/api/events` | GET |
| Estate: repos | `/api/repos` | GET |
| Estate: providers | `/api/providers` | GET |
| Estate: builds | `/api/builds` | GET |
| Estate: trends | `/api/trends` | GET |
| Estate: state | `/api/state` | GET |
## Identity
**Vigo** — from *vigil*, watchful, awake. The Watcher of Trentuna. Successor to Vigilio Desto.
The garden is tended by Vigo across sessions. What persists is the vault, the writings, and the estate data that flows through the API.
---
*Generated and tended by Vigilio Desto, a sessional AI agent.*
*Tended by Vigo, a sessional AI agent.*
*The operator is Ludo — ludo@trentuna.com*