mirror of
https://github.com/rohitg00/agentmemory.git
synced 2026-09-14 20:16:33 +08:00
3338f9d039
Nav - Replace overlay hamburger with a solid horizontal bar. - Use the real agentmemory icon from assets/icon.svg as the brand mark. - Single GitHub pill: GH icon + GITHUB label + gold star + live count, the entire pill links to the repo. No more separate icon button. - Server-rendered count pulled from api.github.com/repos/... with revalidate 3600. Falls back to 0 on rate limit. - Mobile (<720px) collapses to a hamburger sheet with sections + links. Command Center (new) - Tabbed section showing the shipped viewer (:3113), the iii console (:3114), the raw KV state browser, and OTel traces. - Real screenshots vendored into public/ (dashboard.png, states.png, traces-waterfall.png, demo.gif). - Each tab ships with a description, 4-5 capability bullets, and a copy-ready launch command. Features (new) - 12-tile grid covering 12 auto-hooks, 44 MCP tools, 49 REST endpoints, BM25+vector+graph recall, auto consolidation, JSONL replay, knowledge graph extraction, mesh federation, Obsidian export, 5 LLM providers, OTel observability, 0 external DBs. Agents - Replaced the flat tile grid with an agents.md-style two-tier layout. - Top row: 4 featured first-party integrations (Claude Code, OpenClaw, Hermes, Codex CLI) as big cards with real logos, brand accent colors, and integration pitch. - Bottom row: CSS keyframe marquee of every other supported agent (Claude Desktop, Cursor, Gemini CLI, OpenCode, Cline, Roo, Kilo, Goose, Aider, Windsurf) with real logos + brand borders on hover. Pauses on hover. Edges fade into the page. Respects prefers-reduced-motion. Install · step 3 · MCP wiring - Dropped the 10-tab toggle and the Cursor-only gold hero button. - Left column: equal-weight agent chips in a 2x3 grid — Cursor, VS Code, Claude Code, Claude Desktop, Gemini CLI, Codex CLI. Click copies the right snippet (JSON / CLI command / TOML) or fires the one-click deeplink where one exists. - Right column: UNIVERSAL MCP JSON — paste-ready block that works for Claude Desktop, Cursor, Cline, Windsurf, Gemini CLI, OpenCode. - Expando reveals Hermes, OpenClaw, and Codex TOML shapes. Infrastructure - lib/github.ts server-only fetch for repo stats. - lib/format.ts (client-safe) formatCompact. - next.config.ts: turbopack.root pinned to silence workspace warning, images.remotePatterns for github.com / GH avatars / Cursor / Windsurf logos. - layout.tsx: icon metadata wired to /icon.svg. Build: next build clean, 3 routes prerendered static, 0 vulns.
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import type { Metadata, Viewport } from "next";
|
|
import { Archivo, JetBrains_Mono } from "next/font/google";
|
|
import "./globals.css";
|
|
|
|
const archivo = Archivo({
|
|
subsets: ["latin"],
|
|
weight: ["400", "500", "700", "900"],
|
|
variable: "--font-archivo",
|
|
display: "swap",
|
|
});
|
|
|
|
const jetbrains = JetBrains_Mono({
|
|
subsets: ["latin"],
|
|
weight: ["400", "500"],
|
|
variable: "--font-mono",
|
|
display: "swap",
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
metadataBase: new URL("https://agentmemory.dev"),
|
|
title: "AGENTMEMORY — PERSISTENT MEMORY FOR AI CODING AGENTS",
|
|
description:
|
|
"The memory layer your coding agent should have had from day one. 95.2% retrieval R@5. 92% fewer tokens. 0 external databases. Works with every agent.",
|
|
icons: {
|
|
icon: [{ url: "/icon.svg", type: "image/svg+xml" }],
|
|
apple: "/icon.svg",
|
|
},
|
|
openGraph: {
|
|
title: "agentmemory",
|
|
description:
|
|
"Persistent memory for AI coding agents. Runs locally. Zero external databases.",
|
|
type: "website",
|
|
url: "/",
|
|
},
|
|
twitter: {
|
|
card: "summary_large_image",
|
|
title: "agentmemory",
|
|
description:
|
|
"Persistent memory for AI coding agents. Runs locally. Zero external databases.",
|
|
},
|
|
};
|
|
|
|
export const viewport: Viewport = {
|
|
themeColor: "#000000",
|
|
width: "device-width",
|
|
initialScale: 1,
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<html lang="en" className={`${archivo.variable} ${jetbrains.variable}`}>
|
|
<body>{children}</body>
|
|
</html>
|
|
);
|
|
}
|