feat: add AI chat widget powered by ADK Go 1.0

Visitors can ask questions about the CV via a floating chat panel.
The agent uses Gemini to answer questions about experience, projects,
skills, and education by querying the cached CV JSON data.

- internal/chat/agent.go: LLM agent with query_cv tool that searches
  CV data by section (experience, projects, skills, etc.) with keyword filtering
- internal/chat/handler.go: POST /api/chat endpoint with session management,
  graceful degradation when GOOGLE_API_KEY is not set
- chat-widget.html: HTMX-powered floating chat panel with Hyperscript toggle
- _chat.css: Responsive chat UI with dark theme support
- Wired into existing architecture via dependency injection (CVHandler,
  routes, main.go) — zero breaking changes, all existing tests pass
This commit is contained in:
juanatsap
2026-04-08 00:20:48 +01:00
parent 2ac4fbcd92
commit f5276431ea
13 changed files with 900 additions and 22 deletions
+1
View File
@@ -36,6 +36,7 @@
@import './04-interactive/_zoom-control.css';
@import './04-interactive/_contact-form.css';
@import './04-interactive/_sprites.css';
@import './04-interactive/_chat.css';
/* 05 - Responsive */
@import './05-responsive/_breakpoints.css';