diff --git a/index.html b/index.html
index 8864d47..4f1d1be 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
-
+
diff --git a/package.json b/package.json
index 41c1bdb..212ca2f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "amerc-site",
- "version": "0.48.0-seo",
+ "version": "0.49.0-demo",
"private": true,
"type": "module",
"scripts": {
diff --git a/src/Scene2D.jsx b/src/Scene2D.jsx
index 137aafb..8d87c1a 100644
--- a/src/Scene2D.jsx
+++ b/src/Scene2D.jsx
@@ -7,7 +7,7 @@ import Account from './Account.jsx';
import TavernGame from './TavernGame.jsx';
import { api } from './api.js';
-const RELEASE = '0.48.0-seo';
+const RELEASE = '0.49.0-demo';
const NAV = [
{ id: 'home', label: 'Tavern' },
@@ -172,6 +172,38 @@ function FlowDiagram() {
);
}
+const DEMO_SCRIPT = [
+ { who: 'user', text: 'Add a CSV export button to the orders table.' },
+ { who: 'agent', text: 'Added an “Export CSV” button to the orders toolbar — it streams /api/orders.csv. Change pushed; your preview is rebuilding now.' },
+ { who: 'user', text: 'Nice. Expose my local dev server so my client can review it.' },
+ { who: 'agent', text: 'Live at demo1.you.amerc.ai over HTTPS — tunneled from localhost:3000 through Showcase. Share the link.' },
+];
+function ChatDemo() {
+ const [n, setN] = useState(prefersReducedMotion() ? DEMO_SCRIPT.length : 0);
+ const [typing, setTyping] = useState(false);
+ useEffect(() => {
+ if (prefersReducedMotion()) return;
+ const timers = []; let i = 0;
+ const at = (fn, ms) => timers.push(setTimeout(fn, ms));
+ const next = () => {
+ if (i >= DEMO_SCRIPT.length) { at(() => { setN(0); i = 0; next(); }, 4200); return; }
+ if (DEMO_SCRIPT[i].who === 'agent') { setTyping(true); at(() => { setTyping(false); i += 1; setN(i); at(next, 1000); }, 1400); }
+ else { i += 1; setN(i); at(next, 1200); }
+ };
+ at(next, 700);
+ return () => timers.forEach(clearTimeout);
+ }, []);
+ return (
+
+
💬
amerc agentonline · preview
+
+ {DEMO_SCRIPT.slice(0, n).map((m, idx) =>
{m.text}
)}
+ {typing &&
}
+
+
Ask the agent…➤
+
+ );
+}
function HomeFeatures({ setRoute }) {
return (
@@ -194,6 +226,16 @@ function HomeFeatures({ setRoute }) {
{u.icon}
{u.title}
{u.body}
))}
+
See a session
+
+
+
+
A hired agent, working for your users.
+
An embedded chatbox that does real work — ships a code change, then exposes the preview on a public URL through Showcase. Drop it on any page with one <script> tag.