Rebrand from OpenClaw to Ironclaw across 16 files: Web app (apps/web): - layout.tsx: update metadata title to "Ironclaw" and description to "AI CRM with an agent that connects to your apps and does the work for you" - page.tsx: change landing page heading from "OpenClaw Dench" to "Ironclaw" - agent-runner.ts: rename stderr log prefix to [ironclaw stderr] - package.json: rename package from "openclaw-web" to "ironclaw-web" Package identity (root): - package.json: rename package from "openclaw-ai-sdk" to "ironclaw", update description to reflect CRM/workspace focus, change bin entry from "openclaw-ai-sdk" to "ironclaw" - openclaw.mjs: update error message to reference "ironclaw" - src/version.ts: change CORE_PACKAGE_NAME to "ironclaw" CLI and TUI: - command-format.ts: extend CLI prefix regex to accept both "ironclaw" and "openclaw" for backward compatibility - register.agent.ts: update example identity name to "Ironclaw" with 🔩 emoji (replacing 🦞) - tui.ts: rename TUI header from "openclaw tui" to "ironclaw tui" Onboarding and configuration wizards: - configure.wizard.ts: rename engine selection prompts and wizard intro headers to "Ironclaw" - onboarding.ts: rename onboarding intro and security warning text - onboarding.finalize.ts: rename all dashboard/control-UI messages and Brave Search setup instructions to reference "Ironclaw" Security audit: - audit.ts: rename state-dir permission warning details to "Ironclaw" - audit-extra.ts: rename plugin remediation text to "Ironclaw" Telegram: - bot-message-context.ts: rename access-denied message to "Ironclaw"
93 lines
2.5 KiB
TypeScript
93 lines
2.5 KiB
TypeScript
"use client";
|
|
|
|
import Link from "next/link";
|
|
|
|
export default function Home() {
|
|
return (
|
|
<div
|
|
className="flex flex-col items-center justify-center min-h-screen px-6"
|
|
style={{ background: "var(--color-bg)" }}
|
|
>
|
|
{/* Logo / brand mark */}
|
|
<div
|
|
className="mb-6 w-16 h-16 rounded-2xl flex items-center justify-center"
|
|
style={{ background: "rgba(232, 93, 58, 0.12)" }}
|
|
>
|
|
<svg
|
|
width="32"
|
|
height="32"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
strokeWidth="2"
|
|
strokeLinecap="round"
|
|
strokeLinejoin="round"
|
|
style={{ color: "var(--color-accent)" }}
|
|
>
|
|
<rect width="7" height="7" x="3" y="3" rx="1" />
|
|
<rect width="7" height="7" x="14" y="3" rx="1" />
|
|
<rect width="7" height="7" x="14" y="14" rx="1" />
|
|
<rect width="7" height="7" x="3" y="14" rx="1" />
|
|
</svg>
|
|
</div>
|
|
|
|
{/* Heading */}
|
|
<h1
|
|
className="text-4xl font-bold tracking-tight mb-3 text-center"
|
|
style={{ color: "var(--color-text)" }}
|
|
>
|
|
Ironclaw
|
|
</h1>
|
|
|
|
{/* Tagline */}
|
|
<p
|
|
className="text-lg mb-8 text-center max-w-md"
|
|
style={{ color: "var(--color-text-muted)" }}
|
|
>
|
|
Your AI workspace — chat, knowledge, skills, and memory in one place.
|
|
</p>
|
|
|
|
{/* CTA */}
|
|
<Link
|
|
href="/workspace"
|
|
className="inline-flex items-center gap-2 px-6 py-3 rounded-lg text-sm font-medium transition-colors"
|
|
style={{
|
|
background: "var(--color-accent)",
|
|
color: "#fff",
|
|
}}
|
|
onMouseEnter={(e) => {
|
|
(e.currentTarget as HTMLElement).style.background =
|
|
"var(--color-accent-hover)";
|
|
}}
|
|
onMouseLeave={(e) => {
|
|
(e.currentTarget as HTMLElement).style.background =
|
|
"var(--color-accent)";
|
|
}}
|
|
>
|
|
Open Workspace
|
|
<svg
|
|
width="16"
|
|
height="16"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
strokeWidth="2"
|
|
strokeLinecap="round"
|
|
strokeLinejoin="round"
|
|
>
|
|
<path d="M5 12h14" />
|
|
<path d="m12 5 7 7-7 7" />
|
|
</svg>
|
|
</Link>
|
|
|
|
{/* Subtle footer link */}
|
|
<p
|
|
className="mt-12 text-xs"
|
|
style={{ color: "var(--color-text-muted)", opacity: 0.5 }}
|
|
>
|
|
Powered by OpenClaw
|
|
</p>
|
|
</div>
|
|
);
|
|
}
|