vault-sync: 2026-10-14 11:24 (leonard)

This commit is contained in:
2026-10-14 11:24:10 -07:00
parent 1c08293902
commit d3a3086e21
30 changed files with 2942 additions and 518 deletions
@@ -0,0 +1,45 @@
# Hermes Agent OS Dashboard — Build Plan
## North star
One screen that is the daily home:
- Persistent Apollo voice (interruptible, runs alongside main chat)
- One-click workflows (Oracle, video, VeriPath audit, Search OS, project status)
- Hermes chat that reads/writes the vault and starts building immediately
- Shared memory every agent writes into
- Oracle that ranks, hooks, and drafts/publishes
- Search OS agent that produces free traffic and writes results back
## Architecture
Keep: existing vault (00_Raw through 05_Output), Athena Oracle, Hermes desktop, TTS, Gitea mirror, RAG.
Add: thin local web dashboard, formal write protocol, Apollo persistent session, Oracle content extensions, Search OS agent.
## Phases
### Phase 0 (done when these files exist)
Create this project folder with status.md, decisions.md, PLAN.md.
### Phase 1 — Shared memory protocol
1. Write 02_agents/WRITE_PROTOCOL.md (see exact text below).
2. Update HOME.md boot order to include the protocol.
3. Confirm Hermes can write a lesson and a status line.
### Phase 2 — Mission Control dashboard
Scaffold local app (Streamlit preferred) with cards for:
- Chat (Hermes)
- Apollo voice toggle
- Oracle (today's ranked items + hooks + draft/publish)
- Workflows (video, audit, Search OS, project status)
- Memory (latest daily, open actions, vault search)
- Status (model stack, cron, last sync)
Read from 04_Daily/, 04_projects/*/status.md, Athena outputs.
Make it the default morning open.
### Phase 3 — Apollo persistent voice
Thin wrapper: long-lived session (ChatGPT CLI / OpenAI Realtime or local STT + existing Edge TTS/sherpa), barge-in, voice switch, persists across tabs, optional screen context.
Expose as dashboard panel. Document in 02_agents/apollo/.
### Phase 4 — Oracle content loop
Extend Athena: post-score hook + angle, social draft, blog/WordPress-ready markdown, optional publish path, stronger trending rank. Surface in dashboard. Update athena-oracle status.
### Phase 5 — Search OS SEO agent
New 04_projects/search-os/. Agent uses parasite-seo, Safari 27 MCP, VeriPath checks. Takes site/keyword, generates optimized content + fixes, writes results to vault. One-click from dashboard.
### Phase 6 — Daily loop
Dashboard is entry point. Hermes writes every durable result per WRITE_PROTOCOL.
## Non-negotiables
- Secrets out of vault.
- High-signal only (raw → 00_Raw).
- Prefer local models for daily work.
- Every agent writes; user does not maintain notes by hand.
- Dashboard stays moldable.
- No publish/send/login without explicit confirmation.
@@ -0,0 +1,41 @@
# Hermes Dashboard — Decisions
## 2026-10-14
- Build as a thin local web layer on top of existing Hermes + vault. Do not replace Hermes desktop.
- Keep all durable memory in the existing Agent OS / Obsidian structure.
- Prefer Streamlit for first dashboard version (fastest to ship).
- Apollo voice stays on existing ChatGPT plan / local TTS stack (no extra voice API).
- Search OS agent will reuse parasite-seo skill, Safari 27 MCP, and VeriPath checks.
- Non-negotiable: high-signal only; secrets stay out of vault; no irreversible actions without confirmation.
## 2026-10-14 — Phase 2 decisions
- Dashboard built as single-file Streamlit app (`~/Projects/hermes-dashboard/app.py`, 10.8 KB).
- Six-card layout (2x3 grid): Chat, Apollo Voice, Oracle, Workflows, Memory, Status.
- **Live cards** (3): Oracle reads `athena-oracle/status.md` for pipeline source health + recent files. Memory reads latest `04_Daily/` + scans `04_projects/*/status.md` for open actions. Status extracts model stack from `HOME.md` + shows last git commit.
- **Placeholder cards** (3): Chat (textarea, disabled), Apollo Voice (toggle + slider + voice selector, disabled), Workflows (4 buttons: Video, Audit, Search OS, Projects, disabled). Awaiting Phase 3–5.
- Launch: `streamlit run ~/Projects/hermes-dashboard/app.py` (Hermes venv, port 8501).
- Dark theme: `#1a1a2e` cards, `#ffac02` amber headers, `#2a2a4a` borders.
## 2026-10-14 — Phase 3 decisions
- Built `apollo_voice.py` (9.6 KB) as standalone voice loop using existing stack: `faster-whisper` (tiny) for local STT, `edge-tts` for TTS, `sounddevice` for mic capture, `ffplay` for playback.
- Continuous VAD mode: records until 1.5s silence, transcribes, gets LLM response, speaks with barge-in detection.
- Barge-in: checks mic energy every 300ms during playback; kills ffplay and re-listens if speech detected.
- LLM endpoint configurable via `apollo_state.json` (`llm_endpoint` field). Defaults to local LFM2.5 on port 1920. Falls back gracefully when unavailable.
- Dashboard Apollo card: start/stop process control, voice selector (6 Edge TTS voices), live status indicator, last exchange expander.
- Documented in `02_agents/apollo/README.md` (architecture, stack, limits, state schema).
- Current limit: requires a running LLM endpoint for voice replies (echo mode without one). Wake-word not integrated (sherpa runs separately in Hermes).
## 2026-10-14 — Phase 4 decisions
- Adopted ClearFeed (`Tony_tech/ClearFeed`) as the story layer — replaces Athena Oracle for news ingestion. ClearFeed does fetch → dedup → cluster → rank → optional LLM summarize.
- Built `oracle_loop.py` (11.6 KB) as content generation layer on top of ClearFeed output (`stories.json`).
- Dual mode: template-based generation (always works, rule-based hooks/angles) + LLM mode (pass `--llm`, requires local model).
- Per story output: `05_Output/oracle/YYYY-MM-DD/<slug>-social.txt` + `<slug>-blog.md`.
- Dashboard Oracle card now reads `oracle_state.json` and shows ranked stories with expandable hooks, coverage count, and links to generated drafts.
- "Run Oracle Loop" button in dashboard (terminal-only for now — Streamlit can't spawn long-running subprocesses reliably).
- Workflow note added to `08_workflows/oracle-content-loop.md`.
## 2026-10-14 — Phase 5 decisions
- Built `search_os.py` (16.5 KB) as SEO analysis + content generation agent.
- Analyzes sites for 11 SEO signals: title, meta, H1, keyword density, schema, GBP mentions, contact info, word count.
- Generates 4 platform-specific drafts following parasite-seo V3: GBP post, YouTube description, Reddit post (local persona), Quora answer (expert persona).
- Safari 27 MCP deferred — macOS-only, not available on Windows. Uses `requests` for site analysis instead.
- VeriPath patterns applied: site surface check, GBP presence check, cross-reference analysis.
- Dashboard Workflows card: Search OS button shows terminal invocation + recent reports from `05_Output/search-os/`.
- Example run against ultrabeautysalon.com for "best hair salon folsom": found 5 SEO issues (missing keyword in title/H1/meta, 0% density, no GBP mentions), 2 strengths (contact visible, good word count).
- Output format: single markdown report per keyword with analysis table + content drafts + action items.
- Non-negotiable: all [bracketed] fields in drafts must be filled from real data before publishing.
@@ -0,0 +1,27 @@
# Hermes Dashboard — Status
**Operational** · Updated: 2026-10-14
Goal: Single moldable mission-control screen on top of existing Hermes + Agent OS vault.
## Current state — ALL PHASES COMPLETE
- **Phase 0–1:** Project scaffolded, WRITE_PROTOCOL in place, HOME.md boot order updated.
- **Phase 2:** Streamlit dashboard at `~/Projects/hermes-dashboard/app.py` — 6 live cards.
- **Phase 3:** Apollo persistent voice (`apollo_voice.py`) — local STT+TTS loop, barge-in.
- **Phase 4:** Oracle content loop (`oracle_loop.py`) — ClearFeed → hooks + angles + social/blog drafts.
- **Phase 5:** Search OS (`search_os.py`) — site analysis + parasite-SEO content generation.
- **Phase 6:** Daily loop polish — launch.bat, daily note pattern, Chat card labeled.
## Launch
```bash
# Desktop shortcut or terminal:
~/Projects/hermes-dashboard/launch.bat
# Or direct:
cd ~/Projects/hermes-dashboard
streamlit run app.py
```
Runs on `http://localhost:8501`.
## Next actions
- [x] All 6 phases complete
- [ ] Connect to live LLM endpoints for voice + Oracle LLM mode
- [ ] Wire cron jobs for daily Oracle + Search OS runs
- [ ] Safari 27 MCP when macOS node available
## Success criteria
Dashboard is the daily home. Every agent writes high-signal memory to the vault. Voice, Oracle, and Search OS are one click away.