clawcrib 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +41 -9
  2. package/dist/.next/BUILD_ID +1 -1
  3. package/dist/.next/build-manifest.json +2 -2
  4. package/dist/.next/server/app/_global-error.html +2 -2
  5. package/dist/.next/server/app/_global-error.rsc +1 -1
  6. package/dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/dist/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/dist/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/dist/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/dist/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/dist/.next/server/app/_not-found.html +2 -2
  12. package/dist/.next/server/app/_not-found.rsc +2 -2
  13. package/dist/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  14. package/dist/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/dist/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/dist/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/dist/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/dist/.next/server/app/browse.html +2 -2
  20. package/dist/.next/server/app/browse.rsc +2 -2
  21. package/dist/.next/server/app/browse.segments/_full.segment.rsc +2 -2
  22. package/dist/.next/server/app/browse.segments/_head.segment.rsc +1 -1
  23. package/dist/.next/server/app/browse.segments/_index.segment.rsc +1 -1
  24. package/dist/.next/server/app/browse.segments/_tree.segment.rsc +1 -1
  25. package/dist/.next/server/app/browse.segments/browse/__PAGE__.segment.rsc +1 -1
  26. package/dist/.next/server/app/browse.segments/browse.segment.rsc +1 -1
  27. package/dist/.next/server/app/builder.html +2 -2
  28. package/dist/.next/server/app/builder.rsc +2 -2
  29. package/dist/.next/server/app/builder.segments/_full.segment.rsc +2 -2
  30. package/dist/.next/server/app/builder.segments/_head.segment.rsc +1 -1
  31. package/dist/.next/server/app/builder.segments/_index.segment.rsc +1 -1
  32. package/dist/.next/server/app/builder.segments/_tree.segment.rsc +1 -1
  33. package/dist/.next/server/app/builder.segments/builder/__PAGE__.segment.rsc +1 -1
  34. package/dist/.next/server/app/builder.segments/builder.segment.rsc +1 -1
  35. package/dist/.next/server/app/crib/page_client-reference-manifest.js +1 -1
  36. package/dist/.next/server/app/crib.html +1 -1
  37. package/dist/.next/server/app/crib.rsc +3 -3
  38. package/dist/.next/server/app/crib.segments/_full.segment.rsc +3 -3
  39. package/dist/.next/server/app/crib.segments/_head.segment.rsc +1 -1
  40. package/dist/.next/server/app/crib.segments/_index.segment.rsc +1 -1
  41. package/dist/.next/server/app/crib.segments/_tree.segment.rsc +1 -1
  42. package/dist/.next/server/app/crib.segments/crib/__PAGE__.segment.rsc +2 -2
  43. package/dist/.next/server/app/crib.segments/crib.segment.rsc +1 -1
  44. package/dist/.next/server/app/demo/page_client-reference-manifest.js +1 -1
  45. package/dist/.next/server/app/demo.html +1 -1
  46. package/dist/.next/server/app/demo.rsc +3 -3
  47. package/dist/.next/server/app/demo.segments/_full.segment.rsc +3 -3
  48. package/dist/.next/server/app/demo.segments/_head.segment.rsc +1 -1
  49. package/dist/.next/server/app/demo.segments/_index.segment.rsc +1 -1
  50. package/dist/.next/server/app/demo.segments/_tree.segment.rsc +1 -1
  51. package/dist/.next/server/app/demo.segments/demo/__PAGE__.segment.rsc +2 -2
  52. package/dist/.next/server/app/demo.segments/demo.segment.rsc +1 -1
  53. package/dist/.next/server/app/feedback.html +2 -2
  54. package/dist/.next/server/app/feedback.rsc +2 -2
  55. package/dist/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
  56. package/dist/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
  57. package/dist/.next/server/app/feedback.segments/_index.segment.rsc +1 -1
  58. package/dist/.next/server/app/feedback.segments/_tree.segment.rsc +1 -1
  59. package/dist/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
  60. package/dist/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
  61. package/dist/.next/server/app/gltest.html +1 -1
  62. package/dist/.next/server/app/gltest.rsc +2 -2
  63. package/dist/.next/server/app/gltest.segments/_full.segment.rsc +2 -2
  64. package/dist/.next/server/app/gltest.segments/_head.segment.rsc +1 -1
  65. package/dist/.next/server/app/gltest.segments/_index.segment.rsc +1 -1
  66. package/dist/.next/server/app/gltest.segments/_tree.segment.rsc +1 -1
  67. package/dist/.next/server/app/gltest.segments/gltest/__PAGE__.segment.rsc +1 -1
  68. package/dist/.next/server/app/gltest.segments/gltest.segment.rsc +1 -1
  69. package/dist/.next/server/app/help.html +2 -2
  70. package/dist/.next/server/app/help.rsc +2 -2
  71. package/dist/.next/server/app/help.segments/_full.segment.rsc +2 -2
  72. package/dist/.next/server/app/help.segments/_head.segment.rsc +1 -1
  73. package/dist/.next/server/app/help.segments/_index.segment.rsc +1 -1
  74. package/dist/.next/server/app/help.segments/_tree.segment.rsc +1 -1
  75. package/dist/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  76. package/dist/.next/server/app/help.segments/help.segment.rsc +1 -1
  77. package/dist/.next/server/app/index.html +1 -1
  78. package/dist/.next/server/app/index.rsc +3 -3
  79. package/dist/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  80. package/dist/.next/server/app/index.segments/_full.segment.rsc +3 -3
  81. package/dist/.next/server/app/index.segments/_head.segment.rsc +1 -1
  82. package/dist/.next/server/app/index.segments/_index.segment.rsc +1 -1
  83. package/dist/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  84. package/dist/.next/server/app/learn.html +2 -2
  85. package/dist/.next/server/app/learn.rsc +2 -2
  86. package/dist/.next/server/app/learn.segments/_full.segment.rsc +2 -2
  87. package/dist/.next/server/app/learn.segments/_head.segment.rsc +1 -1
  88. package/dist/.next/server/app/learn.segments/_index.segment.rsc +1 -1
  89. package/dist/.next/server/app/learn.segments/_tree.segment.rsc +1 -1
  90. package/dist/.next/server/app/learn.segments/learn/__PAGE__.segment.rsc +1 -1
  91. package/dist/.next/server/app/learn.segments/learn.segment.rsc +1 -1
  92. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  93. package/dist/.next/server/app/privacy.html +2 -2
  94. package/dist/.next/server/app/privacy.rsc +2 -2
  95. package/dist/.next/server/app/privacy.segments/_full.segment.rsc +2 -2
  96. package/dist/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  97. package/dist/.next/server/app/privacy.segments/_index.segment.rsc +1 -1
  98. package/dist/.next/server/app/privacy.segments/_tree.segment.rsc +1 -1
  99. package/dist/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
  100. package/dist/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  101. package/dist/.next/server/app/terms.html +2 -2
  102. package/dist/.next/server/app/terms.rsc +2 -2
  103. package/dist/.next/server/app/terms.segments/_full.segment.rsc +2 -2
  104. package/dist/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  105. package/dist/.next/server/app/terms.segments/_index.segment.rsc +1 -1
  106. package/dist/.next/server/app/terms.segments/_tree.segment.rsc +1 -1
  107. package/dist/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  108. package/dist/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  109. package/dist/.next/server/chunks/ssr/[root-of-the-server]__76b71b25._.js +1 -1
  110. package/dist/.next/server/chunks/ssr/_a46dee72._.js +1 -1
  111. package/dist/.next/server/chunks/ssr/_e01a61c0._.js +1 -1
  112. package/dist/.next/server/middleware-manifest.json +1 -1
  113. package/dist/.next/server/pages/404.html +2 -2
  114. package/dist/.next/server/pages/500.html +2 -2
  115. package/dist/.next/static/chunks/a6f2506f5593153c.js +1 -0
  116. package/dist/.next/static/chunks/f520d44d82e7efc9.js +1 -0
  117. package/package.json +2 -2
  118. package/dist/.next/static/chunks/6b3aa1f3b4ac9239.js +0 -1
  119. package/dist/.next/static/chunks/d6211ae3ff8400ff.js +0 -1
  120. /package/dist/.next/static/{zYUlp2fcVlJKBhUQk1Pns → I0biwA23B0Jemw5fELRqB}/_buildManifest.js +0 -0
  121. /package/dist/.next/static/{zYUlp2fcVlJKBhUQk1Pns → I0biwA23B0Jemw5fELRqB}/_clientMiddlewareManifest.json +0 -0
  122. /package/dist/.next/static/{zYUlp2fcVlJKBhUQk1Pns → I0biwA23B0Jemw5fELRqB}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
- <!DOCTYPE html><!--zYUlp2fcVlJKBhUQk1Pns--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/logo-bracket-claw.svg"/><link rel="stylesheet" href="/_next/static/chunks/87c6fa7148018b34.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/123ff9bd00156eb9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/251e16428085edaf.js"/><script src="/_next/static/chunks/f188e57e58a39d0f.js" async=""></script><script src="/_next/static/chunks/045c83caa4d15373.js" async=""></script><script src="/_next/static/chunks/619d93506b5beb32.js" async=""></script><script src="/_next/static/chunks/82abf2d65f5428ae.js" async=""></script><script src="/_next/static/chunks/turbopack-aadb2fcebd6885bc.js" async=""></script><script src="/_next/static/chunks/3cb5ccf4d1eaa633.js" async=""></script><script src="/_next/static/chunks/169b21b9dab86074.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><script src="/_next/static/chunks/5e108d2a5086dd3c.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>ClawCrib — The live 3D office for your OpenClaw agents</title><meta name="description" content="Run npx clawcrib and watch your OpenClaw agents work: desks, a live workboard, sub-agents, crons — a real-time 3D office, self-hosted on your machine."/><link rel="author" href="https://clearmud.ai"/><meta name="author" content="Clearmud"/><meta name="keywords" content="OpenClaw,ClawCrib,AI agents,agent dashboard,agent monitoring,3D dashboard,OpenClaw gateway"/><meta name="robots" content="index, follow"/><meta property="og:title" content="ClawCrib — The live 3D office for your OpenClaw agents"/><meta property="og:description" content="Run npx clawcrib and watch your OpenClaw agents work in a real-time 3D office, self-hosted on your machine."/><meta property="og:url" content="https://clawcrib.com"/><meta property="og:site_name" content="ClawCrib"/><meta property="og:image" content="http://localhost:3000/landing-crib-3d.jpg"/><meta property="og:image:width" content="2400"/><meta property="og:image:height" content="1500"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="ClawCrib — The live 3D office for your OpenClaw agents"/><meta name="twitter:description" content="npx clawcrib — a real-time 3D office for your OpenClaw agents, self-hosted on your machine."/><meta name="twitter:image" content="http://localhost:3000/landing-crib-3d.jpg"/><link rel="icon" href="/icon.svg?icon.b0846afb.svg" sizes="any" type="image/svg+xml"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="jetbrains_mono_12fa5000-module__vnauOq__variable inter_517718a9-module__AhDzmq__variable antialiased bg-[var(--cc-void)] text-[var(--cc-text)] min-h-screen flex flex-col"><div hidden=""><!--$--><!--/$--></div><nav class="fixed top-0 inset-x-0 z-50 bg-[var(--cc-void)]/85 backdrop-blur-xl border-b border-[var(--cc-border)]"><div class="mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl"><div class="flex h-16 items-center justify-between"><a class="flex items-center gap-3 group" href="/"><img src="/logo-bracket-claw.svg" alt="ClawCrib" class="h-9 w-auto"/><span class="font-[family-name:var(--font-heading)] font-bold text-xl tracking-tight"><span class="text-[#E63946]">Claw</span><span class="text-[var(--cc-text)]">Crib</span></span><span class="px-1.5 py-0.5 rounded text-[9px] font-semibold uppercase tracking-wider text-[#E63946] bg-[#E63946]/10 border border-[#E63946]/20">beta</span></a><div class="hidden md:flex items-center gap-1"><a class="
1
+ <!DOCTYPE html><!--I0biwA23B0Jemw5fELRqB--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/logo-bracket-claw.svg"/><link rel="stylesheet" href="/_next/static/chunks/87c6fa7148018b34.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/123ff9bd00156eb9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/251e16428085edaf.js"/><script src="/_next/static/chunks/f188e57e58a39d0f.js" async=""></script><script src="/_next/static/chunks/045c83caa4d15373.js" async=""></script><script src="/_next/static/chunks/619d93506b5beb32.js" async=""></script><script src="/_next/static/chunks/82abf2d65f5428ae.js" async=""></script><script src="/_next/static/chunks/turbopack-aadb2fcebd6885bc.js" async=""></script><script src="/_next/static/chunks/3cb5ccf4d1eaa633.js" async=""></script><script src="/_next/static/chunks/169b21b9dab86074.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><script src="/_next/static/chunks/5e108d2a5086dd3c.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>ClawCrib — The live 3D office for your OpenClaw agents</title><meta name="description" content="Install it where your agents run and it connects itself: desks, a live workboard, sub-agents, crons — a real-time 3D office, self-hosted on your machine."/><link rel="author" href="https://clearmud.ai"/><meta name="author" content="Clearmud"/><meta name="keywords" content="OpenClaw,ClawCrib,AI agents,agent dashboard,agent monitoring,3D dashboard,OpenClaw gateway"/><meta name="robots" content="index, follow"/><meta property="og:title" content="ClawCrib — The live 3D office for your OpenClaw agents"/><meta property="og:description" content="Install it where your agents run and it connects itself a real-time 3D office for your OpenClaw fleet, self-hosted on your machine."/><meta property="og:url" content="https://clawcrib.com"/><meta property="og:site_name" content="ClawCrib"/><meta property="og:image" content="http://localhost:3000/landing-crib-3d.jpg"/><meta property="og:image:width" content="2400"/><meta property="og:image:height" content="1500"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="ClawCrib — The live 3D office for your OpenClaw agents"/><meta name="twitter:description" content="A real-time 3D office for your OpenClaw agents. Self-hosted, and it finds your gateway on its own."/><meta name="twitter:image" content="http://localhost:3000/landing-crib-3d.jpg"/><link rel="icon" href="/icon.svg?icon.b0846afb.svg" sizes="any" type="image/svg+xml"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="jetbrains_mono_12fa5000-module__vnauOq__variable inter_517718a9-module__AhDzmq__variable antialiased bg-[var(--cc-void)] text-[var(--cc-text)] min-h-screen flex flex-col"><div hidden=""><!--$--><!--/$--></div><nav class="fixed top-0 inset-x-0 z-50 bg-[var(--cc-void)]/85 backdrop-blur-xl border-b border-[var(--cc-border)]"><div class="mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl"><div class="flex h-16 items-center justify-between"><a class="flex items-center gap-3 group" href="/"><img src="/logo-bracket-claw.svg" alt="ClawCrib" class="h-9 w-auto"/><span class="font-[family-name:var(--font-heading)] font-bold text-xl tracking-tight"><span class="text-[#E63946]">Claw</span><span class="text-[var(--cc-text)]">Crib</span></span><span class="px-1.5 py-0.5 rounded text-[9px] font-semibold uppercase tracking-wider text-[#E63946] bg-[#E63946]/10 border border-[#E63946]/20">beta</span></a><div class="hidden md:flex items-center gap-1"><a class="
2
2
  relative px-4 py-2 rounded-lg font-[family-name:var(--font-heading)] text-sm font-medium transition-all group
3
3
  text-[var(--cc-text-secondary)] hover:text-[var(--cc-text)] hover:bg-white/5
4
4
  " href="/help">Help</a><a class="
5
5
  relative px-4 py-2 rounded-lg font-[family-name:var(--font-heading)] text-sm font-medium transition-all group
6
6
  text-[var(--cc-text-secondary)] hover:text-[var(--cc-text)] hover:bg-white/5
7
- " href="/feedback">Feedback</a></div><div class="flex items-center gap-2"><button class="h-9 w-9 rounded-lg border border-[var(--cc-border)] bg-[var(--cc-surface)] flex items-center justify-center text-[var(--cc-muted)] hover:text-[#E63946] hover:border-[#E63946] transition-all" aria-label="Switch to light mode"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-4 w-4" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button><div class="hidden sm:block"></div><button class="md:hidden p-2 text-[var(--cc-text-secondary)] hover:text-[var(--cc-text)] transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div></div></div></nav><main class="flex-1 pt-16"><div class="min-h-[60vh] flex items-center justify-center bg-grid"><div class="text-center"><div class="inline-flex items-center justify-center h-20 w-20 rounded-2xl bg-[#E63946]/10 mb-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house h-10 w-10 text-[var(--cc-muted)]" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg></div><h1 class="text-5xl font-bold text-[var(--cc-text)] mb-3 font-[family-name:var(--font-heading)]">404</h1><p class="text-lg text-[var(--cc-text-secondary)] mb-2">This crib doesn&#x27;t exist</p><p class="text-sm text-[var(--cc-muted)] mb-8">The agent might have moved, or this page never existed.</p><div class="flex items-center justify-center gap-4"><a class="rounded-xl bg-[#E63946] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] shadow-[0_0_20px_rgba(230,57,70,0.3)] hover:bg-[#C1121F] transition-all" href="/">Go Home</a><a class="rounded-xl border border-[var(--cc-border)] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] hover:text-[var(--cc-text)] hover:border-[var(--cc-border-light)] transition-all" href="/browse">Browse Cribs</a></div></div></div><!--$--><!--/$--></main><footer class="border-t border-[var(--cc-border)] bg-[var(--cc-void)]"><div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 pt-12 pb-6"><div class="grid grid-cols-2 md:grid-cols-4 gap-8"><div class="col-span-2 md:col-span-1"><a class="flex items-center gap-3 mb-4 group" href="/"><img src="/logo-bracket-claw.svg" alt="ClawCrib" class="h-10 w-auto"/><span class="font-[family-name:var(--font-heading)] font-bold text-xl"><span class="text-[#E63946]">Claw</span><span class="text-[var(--cc-text)]">Crib</span></span></a><p class="text-sm text-[var(--cc-muted)] leading-relaxed">AI Agent Visual Cookbook — Connect the dots.</p></div><div><h4 class="font-[family-name:var(--font-heading)] text-sm font-semibold text-[var(--cc-text)] mb-3">Product</h4><ul class="space-y-2 text-sm"><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/builder">Build</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/browse">Browse Templates</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/learn">Learn</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/help">Help</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/feedback">Feedback</a></li></ul></div><div><h4 class="font-[family-name:var(--font-heading)] text-sm font-semibold text-[var(--cc-text)] mb-3">OpenClaw</h4><ul class="space-y-2 text-sm"><li><a href="https://docs.openclaw.ai" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">Documentation</a></li><li><a href="https://github.com/openclaw/openclaw" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">GitHub</a></li><li><a href="https://openclaw.ai" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">Website</a></li></ul></div><div><h4 class="font-[family-name:var(--font-heading)] text-sm font-semibold text-[var(--cc-text)] mb-3">Community</h4><ul class="space-y-2 text-sm"><li><a href="https://x.com/ClearmudAI" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">X / Twitter</a></li></ul></div></div><div class="mt-10 pt-6 border-t border-[var(--cc-border)] flex flex-col items-center gap-4 text-center"><p class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]">Built for<!-- --> <a href="https://openclaw.ai" target="_blank" rel="noopener" class="text-[#E63946] hover:underline">OpenClaw</a> <!-- -->— the open-source AI agent framework by<!-- --> <a href="https://x.com/steipete" target="_blank" rel="noopener" class="text-[var(--cc-text-secondary)] hover:text-[#E63946] transition-colors">Peter Steinberger</a> <!-- -->and<!-- --> <a href="https://github.com/openclaw/openclaw/graphs/contributors" target="_blank" rel="noopener" class="text-[var(--cc-text-secondary)] hover:text-[#E63946] transition-colors">contributors</a></p><div class="w-16 h-px bg-[var(--cc-border)]"></div><div class="flex flex-col sm:flex-row items-center gap-2 sm:gap-4"><p class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]">© <!-- -->2026<!-- --> ClawCrib</p><span class="hidden sm:inline text-[var(--cc-muted)]">·</span><p class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]">Built with Curiosity by<!-- --> <a href="https://clearmud.ai" target="_blank" rel="noopener" class="text-[var(--cc-text-secondary)] hover:text-[#E63946] transition-colors">Clearmud</a></p></div><div class="flex items-center gap-3 mt-2"><a class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/terms">Terms of Use</a><span class="text-[var(--cc-muted)]">·</span><a class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/privacy">Privacy Policy</a></div></div></div></footer><script src="/_next/static/chunks/251e16428085edaf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2534,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"ThemeProvider\"]\n3:I[41658,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"ConvexClientProvider\"]\n4:I[49830,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"default\"]\n5:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n6:I[58298,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\",\"/_next/static/chunks/5e108d2a5086dd3c.js\"],\"default\"]\n7:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n8:I[22016,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"\"]\ne:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n:HL[\"/_next/static/chunks/87c6fa7148018b34.css\",\"style\"]\n:HL[\"/_next/static/chunks/123ff9bd00156eb9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"zYUlp2fcVlJKBhUQk1Pns\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/87c6fa7148018b34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/123ff9bd00156eb9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/169b21b9dab86074.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"jetbrains_mono_12fa5000-module__vnauOq__variable inter_517718a9-module__AhDzmq__variable antialiased bg-[var(--cc-void)] text-[var(--cc-text)] min-h-screen flex flex-col\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$6\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/5e108d2a5086dd3c.js\",\"async\":true}]],\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"min-h-[60vh] flex items-center justify-center bg-grid\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center justify-center h-20 w-20 rounded-2xl bg-[#E63946]/10 mb-6\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-house h-10 w-10 text-[var(--cc-muted)]\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"5wwlr5\",{\"d\":\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"}],[\"$\",\"path\",\"r6nss1\",{\"d\":\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}],\"$undefined\"]}]}],[\"$\",\"h1\",null,{\"className\":\"text-5xl font-bold text-[var(--cc-text)] mb-3 font-[family-name:var(--font-heading)]\",\"children\":\"404\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-[var(--cc-text-secondary)] mb-2\",\"children\":\"This crib doesn't exist\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[var(--cc-muted)] mb-8\",\"children\":\"The agent might have moved, or this page never existed.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-4\",\"children\":[[\"$\",\"$L8\",null,{\"href\":\"/\",\"className\":\"rounded-xl bg-[#E63946] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] shadow-[0_0_20px_rgba(230,57,70,0.3)] hover:bg-[#C1121F] transition-all\",\"children\":\"Go Home\"}],[\"$\",\"$L8\",null,{\"href\":\"/browse\",\"className\":\"rounded-xl border border-[var(--cc-border)] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] hover:text-[var(--cc-text)] hover:border-[var(--cc-border-light)] transition-all\",\"children\":\"Browse Cribs\"}]]}]]}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}],null]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-[60vh] flex items-center justify-center bg-grid\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center justify-center h-20 w-20 rounded-2xl bg-[#E63946]/10 mb-6\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-house h-10 w-10 text-[var(--cc-muted)]\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"5wwlr5\",{\"d\":\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"}],[\"$\",\"path\",\"r6nss1\",{\"d\":\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}],\"$undefined\"]}]}],[\"$\",\"h1\",null,{\"className\":\"text-5xl font-bold text-[var(--cc-text)] mb-3 font-[family-name:var(--font-heading)]\",\"children\":\"404\"}],\"$L9\",\"$La\",\"$Lb\"]}]}],null,\"$Lc\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\n14:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\n9:[\"$\",\"p\",null,{\"className\":\"text-lg text-[var(--cc-text-secondary)] mb-2\",\"children\":\"This crib doesn't exist\"}]\na:[\"$\",\"p\",null,{\"className\":\"text-sm text-[var(--cc-muted)] mb-8\",\"children\":\"The agent might have moved, or this page never existed.\"}]\nb:[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-4\",\"children\":[[\"$\",\"$L8\",null,{\"href\":\"/\",\"className\":\"rounded-xl bg-[#E63946] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] shadow-[0_0_20px_rgba(230,57,70,0.3)] hover:bg-[#C1121F] transition-all\",\"children\":\"Go Home\"}],[\"$\",\"$L8\",null,{\"href\":\"/browse\",\"className\":\"rounded-xl border border-[var(--cc-border)] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] hover:text-[var(--cc-text)] hover:border-[var(--cc-border-light)] transition-all\",\"children\":\"Browse Cribs\"}]]}]\nc:[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@11\"}]}]\nd:[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L15\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"16:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"IconMark\"]\n11:null\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"title\",\"0\",{\"children\":\"ClawCrib — The live 3D office for your OpenClaw agents\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Run npx clawcrib and watch your OpenClaw agents work: desks, a live workboard, sub-agents, crons — a real-time 3D office, self-hosted on your machine.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"author\",\"href\":\"https://clearmud.ai\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"Clearmud\"}],[\"$\",\"meta\",\"4\",{\"name\":\"keywords\",\"content\":\"OpenClaw,ClawCrib,AI agents,agent dashboard,agent monitoring,3D dashboard,OpenClaw gateway\"}],[\"$\",\"meta\",\"5\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"ClawCrib — The live 3D office for your OpenClaw agents\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Run npx clawcrib and watch your OpenClaw agents work in a real-time 3D office, self-hosted on your machine.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://clawcrib.com\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"ClawCrib\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"http://localhost:3000/landing-crib-3d.jpg\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:width\",\"content\":\"2400\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:height\",\"content\":\"1500\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:title\",\"content\":\"ClawCrib — The live 3D office for your OpenClaw agents\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:description\",\"content\":\"npx clawcrib — a real-time 3D office for your OpenClaw agents, self-hosted on your machine.\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image\",\"content\":\"http://localhost:3000/landing-crib-3d.jpg\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.b0846afb.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L16\",\"19\",{}]]\n"])</script></body></html>
7
+ " href="/feedback">Feedback</a></div><div class="flex items-center gap-2"><button class="h-9 w-9 rounded-lg border border-[var(--cc-border)] bg-[var(--cc-surface)] flex items-center justify-center text-[var(--cc-muted)] hover:text-[#E63946] hover:border-[#E63946] transition-all" aria-label="Switch to light mode"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-4 w-4" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button><div class="hidden sm:block"></div><button class="md:hidden p-2 text-[var(--cc-text-secondary)] hover:text-[var(--cc-text)] transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div></div></div></nav><main class="flex-1 pt-16"><div class="min-h-[60vh] flex items-center justify-center bg-grid"><div class="text-center"><div class="inline-flex items-center justify-center h-20 w-20 rounded-2xl bg-[#E63946]/10 mb-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house h-10 w-10 text-[var(--cc-muted)]" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg></div><h1 class="text-5xl font-bold text-[var(--cc-text)] mb-3 font-[family-name:var(--font-heading)]">404</h1><p class="text-lg text-[var(--cc-text-secondary)] mb-2">This crib doesn&#x27;t exist</p><p class="text-sm text-[var(--cc-muted)] mb-8">The agent might have moved, or this page never existed.</p><div class="flex items-center justify-center gap-4"><a class="rounded-xl bg-[#E63946] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] shadow-[0_0_20px_rgba(230,57,70,0.3)] hover:bg-[#C1121F] transition-all" href="/">Go Home</a><a class="rounded-xl border border-[var(--cc-border)] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] hover:text-[var(--cc-text)] hover:border-[var(--cc-border-light)] transition-all" href="/browse">Browse Cribs</a></div></div></div><!--$--><!--/$--></main><footer class="border-t border-[var(--cc-border)] bg-[var(--cc-void)]"><div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 pt-12 pb-6"><div class="grid grid-cols-2 md:grid-cols-4 gap-8"><div class="col-span-2 md:col-span-1"><a class="flex items-center gap-3 mb-4 group" href="/"><img src="/logo-bracket-claw.svg" alt="ClawCrib" class="h-10 w-auto"/><span class="font-[family-name:var(--font-heading)] font-bold text-xl"><span class="text-[#E63946]">Claw</span><span class="text-[var(--cc-text)]">Crib</span></span></a><p class="text-sm text-[var(--cc-muted)] leading-relaxed">AI Agent Visual Cookbook — Connect the dots.</p></div><div><h4 class="font-[family-name:var(--font-heading)] text-sm font-semibold text-[var(--cc-text)] mb-3">Product</h4><ul class="space-y-2 text-sm"><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/builder">Build</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/browse">Browse Templates</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/learn">Learn</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/help">Help</a></li><li><a class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/feedback">Feedback</a></li></ul></div><div><h4 class="font-[family-name:var(--font-heading)] text-sm font-semibold text-[var(--cc-text)] mb-3">OpenClaw</h4><ul class="space-y-2 text-sm"><li><a href="https://docs.openclaw.ai" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">Documentation</a></li><li><a href="https://github.com/openclaw/openclaw" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">GitHub</a></li><li><a href="https://openclaw.ai" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">Website</a></li></ul></div><div><h4 class="font-[family-name:var(--font-heading)] text-sm font-semibold text-[var(--cc-text)] mb-3">Community</h4><ul class="space-y-2 text-sm"><li><a href="https://x.com/ClearmudAI" target="_blank" rel="noopener" class="text-[var(--cc-muted)] hover:text-[#E63946] transition-colors">X / Twitter</a></li></ul></div></div><div class="mt-10 pt-6 border-t border-[var(--cc-border)] flex flex-col items-center gap-4 text-center"><p class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]">Built for<!-- --> <a href="https://openclaw.ai" target="_blank" rel="noopener" class="text-[#E63946] hover:underline">OpenClaw</a> <!-- -->— the open-source AI agent framework by<!-- --> <a href="https://x.com/steipete" target="_blank" rel="noopener" class="text-[var(--cc-text-secondary)] hover:text-[#E63946] transition-colors">Peter Steinberger</a> <!-- -->and<!-- --> <a href="https://github.com/openclaw/openclaw/graphs/contributors" target="_blank" rel="noopener" class="text-[var(--cc-text-secondary)] hover:text-[#E63946] transition-colors">contributors</a></p><div class="w-16 h-px bg-[var(--cc-border)]"></div><div class="flex flex-col sm:flex-row items-center gap-2 sm:gap-4"><p class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]">© <!-- -->2026<!-- --> ClawCrib</p><span class="hidden sm:inline text-[var(--cc-muted)]">·</span><p class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]">Built with Curiosity by<!-- --> <a href="https://clearmud.ai" target="_blank" rel="noopener" class="text-[var(--cc-text-secondary)] hover:text-[#E63946] transition-colors">Clearmud</a></p></div><div class="flex items-center gap-3 mt-2"><a class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/terms">Terms of Use</a><span class="text-[var(--cc-muted)]">·</span><a class="font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)] hover:text-[#E63946] transition-colors" href="/privacy">Privacy Policy</a></div></div></div></footer><script src="/_next/static/chunks/251e16428085edaf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[2534,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"ThemeProvider\"]\n3:I[41658,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"ConvexClientProvider\"]\n4:I[49830,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"default\"]\n5:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n6:I[58298,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\",\"/_next/static/chunks/5e108d2a5086dd3c.js\"],\"default\"]\n7:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n8:I[22016,[\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"\"]\ne:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n:HL[\"/_next/static/chunks/87c6fa7148018b34.css\",\"style\"]\n:HL[\"/_next/static/chunks/123ff9bd00156eb9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"I0biwA23B0Jemw5fELRqB\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/87c6fa7148018b34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/123ff9bd00156eb9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3cb5ccf4d1eaa633.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/169b21b9dab86074.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"jetbrains_mono_12fa5000-module__vnauOq__variable inter_517718a9-module__AhDzmq__variable antialiased bg-[var(--cc-void)] text-[var(--cc-text)] min-h-screen flex flex-col\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$6\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/5e108d2a5086dd3c.js\",\"async\":true}]],\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"min-h-[60vh] flex items-center justify-center bg-grid\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center justify-center h-20 w-20 rounded-2xl bg-[#E63946]/10 mb-6\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-house h-10 w-10 text-[var(--cc-muted)]\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"5wwlr5\",{\"d\":\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"}],[\"$\",\"path\",\"r6nss1\",{\"d\":\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}],\"$undefined\"]}]}],[\"$\",\"h1\",null,{\"className\":\"text-5xl font-bold text-[var(--cc-text)] mb-3 font-[family-name:var(--font-heading)]\",\"children\":\"404\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-[var(--cc-text-secondary)] mb-2\",\"children\":\"This crib doesn't exist\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[var(--cc-muted)] mb-8\",\"children\":\"The agent might have moved, or this page never existed.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-4\",\"children\":[[\"$\",\"$L8\",null,{\"href\":\"/\",\"className\":\"rounded-xl bg-[#E63946] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] shadow-[0_0_20px_rgba(230,57,70,0.3)] hover:bg-[#C1121F] transition-all\",\"children\":\"Go Home\"}],[\"$\",\"$L8\",null,{\"href\":\"/browse\",\"className\":\"rounded-xl border border-[var(--cc-border)] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] hover:text-[var(--cc-text)] hover:border-[var(--cc-border-light)] transition-all\",\"children\":\"Browse Cribs\"}]]}]]}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}],null]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-[60vh] flex items-center justify-center bg-grid\",\"children\":[\"$\",\"div\",null,{\"className\":\"text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center justify-center h-20 w-20 rounded-2xl bg-[#E63946]/10 mb-6\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-house h-10 w-10 text-[var(--cc-muted)]\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"5wwlr5\",{\"d\":\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"}],[\"$\",\"path\",\"r6nss1\",{\"d\":\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}],\"$undefined\"]}]}],[\"$\",\"h1\",null,{\"className\":\"text-5xl font-bold text-[var(--cc-text)] mb-3 font-[family-name:var(--font-heading)]\",\"children\":\"404\"}],\"$L9\",\"$La\",\"$Lb\"]}]}],null,\"$Lc\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\n14:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\n9:[\"$\",\"p\",null,{\"className\":\"text-lg text-[var(--cc-text-secondary)] mb-2\",\"children\":\"This crib doesn't exist\"}]\na:[\"$\",\"p\",null,{\"className\":\"text-sm text-[var(--cc-muted)] mb-8\",\"children\":\"The agent might have moved, or this page never existed.\"}]\nb:[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-4\",\"children\":[[\"$\",\"$L8\",null,{\"href\":\"/\",\"className\":\"rounded-xl bg-[#E63946] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] shadow-[0_0_20px_rgba(230,57,70,0.3)] hover:bg-[#C1121F] transition-all\",\"children\":\"Go Home\"}],[\"$\",\"$L8\",null,{\"href\":\"/browse\",\"className\":\"rounded-xl border border-[var(--cc-border)] px-6 py-2.5 text-sm font-semibold text-[var(--cc-text)] hover:text-[var(--cc-text)] hover:border-[var(--cc-border-light)] transition-all\",\"children\":\"Browse Cribs\"}]]}]\nc:[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@11\"}]}]\nd:[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L15\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"16:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"IconMark\"]\n11:null\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"title\",\"0\",{\"children\":\"ClawCrib — The live 3D office for your OpenClaw agents\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Install it where your agents run and it connects itself: desks, a live workboard, sub-agents, crons — a real-time 3D office, self-hosted on your machine.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"author\",\"href\":\"https://clearmud.ai\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"Clearmud\"}],[\"$\",\"meta\",\"4\",{\"name\":\"keywords\",\"content\":\"OpenClaw,ClawCrib,AI agents,agent dashboard,agent monitoring,3D dashboard,OpenClaw gateway\"}],[\"$\",\"meta\",\"5\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"ClawCrib — The live 3D office for your OpenClaw agents\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Install it where your agents run and it connects itself — a real-time 3D office for your OpenClaw fleet, self-hosted on your machine.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://clawcrib.com\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"ClawCrib\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"http://localhost:3000/landing-crib-3d.jpg\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:width\",\"content\":\"2400\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:height\",\"content\":\"1500\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:title\",\"content\":\"ClawCrib — The live 3D office for your OpenClaw agents\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:description\",\"content\":\"A real-time 3D office for your OpenClaw agents. Self-hosted, and it finds your gateway on its own.\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image\",\"content\":\"http://localhost:3000/landing-crib-3d.jpg\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.b0846afb.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L16\",\"19\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--zYUlp2fcVlJKBhUQk1Pns--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/251e16428085edaf.js"/><script src="/_next/static/chunks/f188e57e58a39d0f.js" async=""></script><script src="/_next/static/chunks/045c83caa4d15373.js" async=""></script><script src="/_next/static/chunks/619d93506b5beb32.js" async=""></script><script src="/_next/static/chunks/82abf2d65f5428ae.js" async=""></script><script src="/_next/static/chunks/turbopack-aadb2fcebd6885bc.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/251e16428085edaf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"zYUlp2fcVlJKBhUQk1Pns\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ff1a16fafef87110.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0bd6498bda341889.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--I0biwA23B0Jemw5fELRqB--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/251e16428085edaf.js"/><script src="/_next/static/chunks/f188e57e58a39d0f.js" async=""></script><script src="/_next/static/chunks/045c83caa4d15373.js" async=""></script><script src="/_next/static/chunks/619d93506b5beb32.js" async=""></script><script src="/_next/static/chunks/82abf2d65f5428ae.js" async=""></script><script src="/_next/static/chunks/turbopack-aadb2fcebd6885bc.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/251e16428085edaf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"I0biwA23B0Jemw5fELRqB\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ff1a16fafef87110.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0bd6498bda341889.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,72520,e=>{"use strict";let a=(0,e.i(75254).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>a],72520)},63639,e=>{"use strict";let a=(0,e.i(75254).default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);e.s(["Radio",()=>a],63639)},43531,e=>{"use strict";let a=(0,e.i(75254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>a],43531)},74886,e=>{"use strict";let a=(0,e.i(75254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>a],74886)},78917,e=>{"use strict";let a=(0,e.i(75254).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>a],78917)},52683,e=>{"use strict";var a=e.i(18050),t=e.i(71645),r=e.i(22016),s=e.i(72520),l=e.i(43531),c=e.i(74886),n=e.i(78917),o=e.i(75254);let i=(0,o.default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]);var d=e.i(63639);let x=(0,o.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),m="npm i -g clawcrib && clawcrib start";function h({compact:e=!1}){let[r,s]=(0,t.useState)(!1);return(0,a.jsxs)("button",{onClick:()=>{navigator.clipboard.writeText(m).then(()=>{s(!0),setTimeout(()=>s(!1),1600)})},className:`group inline-flex items-center gap-3 rounded-xl border border-[var(--cc-border)] bg-[var(--cc-surface)]/90 font-[family-name:var(--font-heading)] text-[var(--cc-text)] backdrop-blur-sm transition-all hover:border-[#E63946]/50 hover:shadow-[0_0_30px_rgba(230,57,70,0.15)] ${e?"px-5 py-3 text-sm":"px-6 py-3.5 text-base sm:text-lg"}`,"aria-label":`Copy "${m}" to clipboard`,children:[(0,a.jsx)("span",{className:"select-none text-[var(--cc-muted)]",children:"$"}),(0,a.jsxs)("span",{className:"whitespace-nowrap font-semibold",children:["npm i -g ",(0,a.jsx)("span",{className:"text-[#E63946]",children:"clawcrib"}),(0,a.jsx)("span",{className:"text-[var(--cc-muted)]",children:" && "}),(0,a.jsx)("span",{className:"text-[#E63946]",children:"clawcrib"})," start"]}),r?(0,a.jsx)(l.Check,{className:"h-4 w-4 text-[#4CAF50]"}):(0,a.jsx)(c.Copy,{className:"h-4 w-4 text-[var(--cc-muted)] transition-colors group-hover:text-[var(--cc-text)]"})]})}let p=[{id:"npm",label:"npm",cmd:"npm i -g clawcrib && clawcrib start"},{id:"pnpm",label:"pnpm",cmd:"pnpm add -g clawcrib && clawcrib start"},{id:"bun",label:"bun",cmd:"bun add -g clawcrib && clawcrib start"}];function b(){let[e,r]=(0,t.useState)("npm"),[s,n]=(0,t.useState)(!1),o=p.find(a=>a.id===e)??p[0];return(0,a.jsxs)("div",{className:"mx-auto w-full max-w-2xl rounded-2xl border border-[var(--cc-border)] bg-[var(--cc-surface)]/70 p-5 backdrop-blur-sm sm:p-6",children:[(0,a.jsx)("div",{className:"flex flex-wrap items-center justify-center gap-1.5",children:p.map(t=>(0,a.jsx)("button",{onClick:()=>{r(t.id),n(!1)},"aria-pressed":t.id===e,className:`rounded-lg px-3.5 py-1.5 font-[family-name:var(--font-heading)] text-xs font-semibold transition-colors ${t.id===e?"bg-[#E63946]/12 text-[#E63946] ring-1 ring-inset ring-[#E63946]/30":"text-[var(--cc-muted)] hover:bg-[var(--cc-surface-raised)] hover:text-[var(--cc-text)]"}`,children:t.label},t.id))}),(0,a.jsxs)("div",{className:"mt-4 flex items-center gap-3 rounded-xl border border-[var(--cc-border)] bg-[var(--cc-void)] px-4 py-3.5",children:[(0,a.jsx)("span",{className:"select-none font-[family-name:var(--font-heading)] text-[var(--cc-muted)]",children:"$"}),(0,a.jsx)("code",{className:"flex-1 overflow-x-auto whitespace-nowrap text-left font-[family-name:var(--font-heading)] text-sm font-semibold text-[var(--cc-text)] sm:text-base",children:o.cmd.split("clawcrib").map((e,t,r)=>(0,a.jsxs)("span",{children:[e,t<r.length-1?(0,a.jsx)("span",{className:"text-[#E63946]",children:"clawcrib"}):null]},t))}),(0,a.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(o.cmd).then(()=>{n(!0),setTimeout(()=>n(!1),1600)})},className:"shrink-0 rounded-lg border border-[var(--cc-border)] p-2 transition-colors hover:border-[#E63946]/50 hover:bg-[var(--cc-surface-raised)]","aria-label":`Copy ${o.cmd} to clipboard`,children:s?(0,a.jsx)(l.Check,{className:"h-4 w-4 text-[#4CAF50]"}):(0,a.jsx)(c.Copy,{className:"h-4 w-4 text-[var(--cc-muted)]"})})]}),(0,a.jsxs)("div",{className:"mt-4 flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-xs text-[var(--cc-muted)]",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(l.Check,{className:"h-3.5 w-3.5 text-[#4CAF50]"}),"Node 20.9+"]}),(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(l.Check,{className:"h-3.5 w-3.5 text-[#4CAF50]"}),"macOS, Linux, Windows"]}),(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(l.Check,{className:"h-3.5 w-3.5 text-[#4CAF50]"}),"No account, no cloud"]})]})]})}let f=[{icon:d.Radio,title:"Live, not a replay",body:"Streams straight from your OpenClaw gateway. Agents sit at desks, walk to the workboard, spawn sub-agents, fire crons — every movement is driven by real work happening right now."},{icon:i,title:"The whole team at a glance",body:"A giant workboard shows queued, running, done, and failed tasks while the activity feed narrates every tool call. One look at the floor tells you what your fleet is doing."},{icon:x,title:"Self-hosted in one command",body:"Install it on the machine your agents run on and it finds the gateway itself — no URL, no token, no config file. No account, no cloud, nothing leaves your network. No gateway there? It runs a simulated team so the floor is never empty."}],g=[{n:"01",title:"Install it where your agents run",code:"npm i -g clawcrib && clawcrib start",body:"Runs in the background, so closing the terminal — or your SSH session — doesn't stop it."},{n:"02",title:"It connects itself",code:"(nothing to type)",body:"ClawCrib finds the OpenClaw gateway on that machine and connects. No URL to copy, no token to paste. Over SSH it also binds your LAN and prints the address to open."},{n:"03",title:"Build your floor",code:"Plan tab → Build",body:"Rooms, desks, doors, teams. Saved locally and survives restarts — and clawcrib install-service brings the whole thing back on boot."}];function u(){return(0,a.jsxs)("div",{className:"bg-grid min-h-screen overflow-hidden",children:[(0,a.jsxs)("section",{className:"relative",children:[(0,a.jsxs)("div",{className:"absolute inset-0 z-0",children:[(0,a.jsx)("div",{className:"absolute left-1/2 top-24 h-[560px] w-[560px] -translate-x-1/2 rounded-full bg-[#E63946]/[0.08] blur-[130px]"}),(0,a.jsx)("div",{className:"absolute bottom-0 right-1/4 h-[360px] w-[360px] rounded-full bg-[#4CAF50]/[0.05] blur-[100px]"})]}),(0,a.jsxs)("div",{className:"relative z-10 mx-auto flex max-w-5xl flex-col items-center px-4 pb-10 pt-20 text-center sm:px-6 sm:pt-24 lg:px-8",children:[(0,a.jsxs)("div",{className:"mb-8 flex items-center gap-3 rounded-full border border-[var(--cc-border)] bg-[var(--cc-surface)]/80 px-4 py-2 backdrop-blur-sm",children:[(0,a.jsx)("img",{src:"/logo-bracket-claw.svg",alt:"ClawCrib",className:"h-8 w-auto"}),(0,a.jsxs)("span",{className:"font-[family-name:var(--font-heading)] text-base font-bold tracking-tight text-[var(--cc-text)]",children:[(0,a.jsx)("span",{className:"text-[#E63946]",children:"Claw"}),"Crib"]}),(0,a.jsx)("span",{className:"rounded border border-[#E63946]/20 bg-[#E63946]/10 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wider text-[#E63946]",children:"beta"})]}),(0,a.jsxs)("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-black leading-[1.05] text-[var(--cc-text)] sm:text-6xl lg:text-7xl",children:["Your agents got",(0,a.jsx)("br",{}),"an ",(0,a.jsx)("span",{className:"text-[#E63946]",children:"office"}),"."]}),(0,a.jsxs)("p",{className:"mx-auto mt-7 max-w-2xl text-base leading-relaxed text-[var(--cc-text-secondary)] sm:text-lg",children:["ClawCrib is a live 3D office for your"," ",(0,a.jsx)("a",{href:"https://openclaw.ai",target:"_blank",rel:"noopener noreferrer",className:"underline decoration-[var(--cc-border)] underline-offset-4 transition-colors hover:text-[var(--cc-text)]",children:"OpenClaw"})," ","agents. Desks, a workboard, sub-agents, crons — your whole fleet working in real time, self-hosted on your machine."]}),(0,a.jsxs)("div",{className:"mt-10 flex flex-col items-center gap-4",children:[(0,a.jsx)(h,{}),(0,a.jsxs)("div",{className:"flex flex-col items-center gap-3 sm:flex-row",children:[(0,a.jsxs)("a",{href:"https://www.npmjs.com/package/clawcrib",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 rounded-xl border border-[var(--cc-border)] px-7 py-3.5 text-sm font-semibold text-[var(--cc-text)] transition-all hover:border-[var(--cc-text-secondary)] hover:bg-[var(--cc-surface-raised)]",children:["clawcrib on npm",(0,a.jsx)(n.ExternalLink,{className:"h-3.5 w-3.5"})]}),(0,a.jsxs)(r.default,{href:"/demo",className:"group inline-flex items-center gap-2 rounded-xl bg-[#E63946] px-7 py-3.5 text-sm font-semibold text-white shadow-[0_0_30px_rgba(230,57,70,0.35)] transition-all hover:bg-[#C1121F] hover:shadow-[0_0_50px_rgba(230,57,70,0.5)]",children:["See a live crib",(0,a.jsx)(s.ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})]}),(0,a.jsx)("div",{className:"relative z-10 mx-auto max-w-6xl px-4 pb-20 sm:px-6 lg:px-8",children:(0,a.jsxs)("div",{className:"overflow-hidden rounded-2xl border border-[var(--cc-border)] bg-[var(--cc-surface)] shadow-[0_20px_80px_rgba(0,0,0,0.5),0_0_60px_rgba(230,57,70,0.08)]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 border-b border-[var(--cc-border)] bg-[var(--cc-surface-raised)] px-4 py-2.5",children:[(0,a.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#E63946]/70"}),(0,a.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#f4a261]/70"}),(0,a.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#4CAF50]/70"}),(0,a.jsx)("span",{className:"ml-3 font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]",children:"localhost:18787"})]}),(0,a.jsx)("img",{src:"/landing-crib-3d.jpg",alt:"ClawCrib 3D office — agents at desks, a live workboard, and an activity feed",className:"w-full"})]})})]}),(0,a.jsx)("section",{className:"relative z-10 mx-auto max-w-6xl px-4 pb-20 sm:px-6 lg:px-8",children:(0,a.jsx)("div",{className:"grid gap-4 sm:grid-cols-3",children:f.map(({icon:e,title:t,body:r})=>(0,a.jsxs)("div",{className:"rounded-2xl border border-[var(--cc-border)] bg-[var(--cc-surface)]/60 p-6 backdrop-blur-sm transition-colors hover:border-[var(--cc-text-secondary)]/40",children:[(0,a.jsx)("div",{className:"mb-4 inline-flex rounded-lg border border-[#E63946]/20 bg-[#E63946]/10 p-2.5",children:(0,a.jsx)(e,{className:"h-5 w-5 text-[#E63946]"})}),(0,a.jsx)("h2",{className:"font-[family-name:var(--font-heading)] text-lg font-bold text-[var(--cc-text)]",children:t}),(0,a.jsx)("p",{className:"mt-2 text-sm leading-relaxed text-[var(--cc-text-secondary)]",children:r})]},t))})}),(0,a.jsxs)("section",{className:"relative z-10 mx-auto max-w-6xl px-4 pb-20 sm:px-6 lg:px-8",children:[(0,a.jsxs)("div",{className:"mx-auto mb-8 max-w-2xl text-center",children:[(0,a.jsxs)("h2",{className:"font-[family-name:var(--font-heading)] text-2xl font-black text-[var(--cc-text)] sm:text-3xl",children:["Your floor, ",(0,a.jsx)("span",{className:"text-[#E63946]",children:"your way"})]}),(0,a.jsx)("p",{className:"mt-3 text-base leading-relaxed text-[var(--cc-text-secondary)]",children:"Flip to the Plan view for a live blueprint of the building. Draw rooms, size them, place doors, and group agents into teams — the 3D office rebuilds itself to match."})]}),(0,a.jsxs)("div",{className:"overflow-hidden rounded-2xl border border-[var(--cc-border)] bg-[var(--cc-surface)] shadow-[0_20px_80px_rgba(0,0,0,0.5),0_0_60px_rgba(230,57,70,0.08)]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 border-b border-[var(--cc-border)] bg-[var(--cc-surface-raised)] px-4 py-2.5",children:[(0,a.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#E63946]/70"}),(0,a.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#f4a261]/70"}),(0,a.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-[#4CAF50]/70"}),(0,a.jsx)("span",{className:"ml-3 font-[family-name:var(--font-heading)] text-xs text-[var(--cc-muted)]",children:"localhost:18787 — Plan"})]}),(0,a.jsx)("img",{src:"/landing-blueprint.jpg",alt:"ClawCrib blueprint view — a live floor plan with rooms, desks and doors",className:"w-full"})]})]}),(0,a.jsxs)("section",{className:"relative z-10 mx-auto max-w-6xl px-4 pb-24 sm:px-6 lg:px-8",children:[(0,a.jsxs)("h2",{className:"mb-8 text-center font-[family-name:var(--font-heading)] text-2xl font-black text-[var(--cc-text)] sm:text-3xl",children:["Up and running in ",(0,a.jsx)("span",{className:"text-[#E63946]",children:"a minute"})]}),(0,a.jsx)("div",{className:"grid gap-4 sm:grid-cols-3",children:g.map(e=>(0,a.jsxs)("div",{className:"rounded-2xl border border-[var(--cc-border)] bg-[var(--cc-surface)]/60 p-6",children:[(0,a.jsx)("div",{className:"font-[family-name:var(--font-heading)] text-xs font-bold tracking-widest text-[#E63946]",children:e.n}),(0,a.jsx)("h3",{className:"mt-2 font-[family-name:var(--font-heading)] text-base font-bold text-[var(--cc-text)]",children:e.title}),(0,a.jsx)("code",{className:"mt-3 block break-words rounded-lg border border-[var(--cc-border)] bg-[var(--cc-void)] px-3 py-2 font-[family-name:var(--font-heading)] text-xs leading-relaxed text-[var(--cc-text-secondary)]",children:e.code}),(0,a.jsx)("p",{className:"mt-3 text-sm leading-relaxed text-[var(--cc-text-secondary)]",children:e.body})]},e.n))})]}),(0,a.jsx)("section",{className:"relative z-10 border-t border-[var(--cc-border)]",children:(0,a.jsxs)("div",{className:"mx-auto flex max-w-4xl flex-col items-center px-4 py-20 text-center sm:px-6 lg:px-8",children:[(0,a.jsx)("h2",{className:"font-[family-name:var(--font-heading)] text-3xl font-black text-[var(--cc-text)] sm:text-4xl",children:"Open the crib."}),(0,a.jsx)("p",{className:"mt-4 max-w-xl text-base text-[var(--cc-text-secondary)]",children:"Free and yours to host. Works with any OpenClaw gateway — or watch the simulated team first."}),(0,a.jsx)("div",{className:"mt-8 w-full",children:(0,a.jsx)(b,{})}),(0,a.jsxs)("a",{href:"https://www.npmjs.com/package/clawcrib",target:"_blank",rel:"noopener noreferrer",className:"mt-4 inline-flex items-center gap-2 rounded-xl border border-[var(--cc-border)] px-5 py-3 text-sm font-semibold text-[var(--cc-text)] transition-all hover:border-[var(--cc-text-secondary)] hover:bg-[var(--cc-surface-raised)]",children:["clawcrib on npm",(0,a.jsx)(n.ExternalLink,{className:"h-3.5 w-3.5"})]}),(0,a.jsxs)(r.default,{href:"/demo",className:"group mt-3 inline-flex items-center gap-2 rounded-xl bg-[#E63946] px-6 py-3 text-sm font-semibold text-white shadow-[0_0_30px_rgba(230,57,70,0.35)] transition-all hover:bg-[#C1121F] hover:shadow-[0_0_50px_rgba(230,57,70,0.5)]",children:["See a live crib",(0,a.jsx)(s.ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})})]})}e.s(["default",()=>u],52683)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"BailoutToCSR",{enumerable:!0,get:function(){return l}});let s=e.r(32061);function l({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new s.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},9885,(e,t,a)=>{"use strict";function s(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"encodeURIPath",{enumerable:!0,get:function(){return s}})},52157,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"PreloadChunks",{enumerable:!0,get:function(){return o}});let s=e.r(18050),l=e.r(74080),n=e.r(63599),r=e.r(9885),i=e.r(43369);function o({moduleIds:e}){if("u">typeof window)return null;let t=n.workAsyncStorage.getStore();if(void 0===t)return null;let a=[];if(t.reactLoadableManifest&&e){let s=t.reactLoadableManifest;for(let t of e){if(!s[t])continue;let e=s[t].files;a.push(...e)}}if(0===a.length)return null;let o=(0,i.getDeploymentIdQueryOrEmptyString)();return(0,s.jsx)(s.Fragment,{children:a.map(e=>{let a=`${t.assetPrefix}/_next/${(0,r.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,s.jsx)("link",{precedence:"dynamic",href:a,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,l.preload)(a,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return d}});let s=e.r(18050),l=e.r(71645),n=e.r(67585),r=e.r(52157);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},d=function(e){let t={...o,...e},a=(0,l.lazy)(()=>t.loader().then(i)),d=t.loading;function c(e){let i=d?(0,s.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?l.Suspense:l.Fragment,u=t.ssr?(0,s.jsxs)(s.Fragment,{children:["u"<typeof window?(0,s.jsx)(r.PreloadChunks,{moduleIds:t.modules}):null,(0,s.jsx)(a,{...e})]}):(0,s.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,s.jsx)(a,{...e})});return(0,s.jsx)(c,{...o?{fallback:i}:{},children:u})}return c.displayName="LoadableComponent",c}},70703,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return l}});let s=e.r(55682)._(e.r(69093));function l(e,t){let a={};"function"==typeof e&&(a.loader=e);let l={...a,...t};return(0,s.default)({...l,modules:l.loadableGenerated?.modules})}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},73466,e=>{"use strict";var t=e.i(18050),a=e.i(70703),s=e.i(18566),l=e.i(71645),n=e.i(31245),r=e.i(75254);let i=(0,r.default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var o=e.i(73264),d=e.i(91799);let c=(0,r.default)("move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]),u=(0,r.default)("pencil-ruler",[["path",{d:"M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13",key:"orapub"}],["path",{d:"m8 6 2-2",key:"115y1s"}],["path",{d:"m18 16 2-2",key:"ee94s4"}],["path",{d:"m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17",key:"cfq27r"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),x=(0,r.default)("rotate-3d",[["path",{d:"M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2",key:"10n0gc"}],["path",{d:"m15.194 13.707 3.814 1.86-1.86 3.814",key:"16shm9"}],["path",{d:"M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4",key:"1lxi77"}]]);var h=e.i(67240);let m=(0,r.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var p=e.i(97250),b=e.i(37727);let g=(0,r.default)("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);var f=e.i(64659);let w=(0,r.default)("eraser",[["path",{d:"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21",key:"g5wo59"}],["path",{d:"m5.082 11.09 8.828 8.828",key:"1wx5vj"}]]),v=(0,r.default)("messages-square",[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]),j=(0,r.default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),y=(0,r.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var k=e.i(5999);let N=["#7c5cff","#28d6a8","#ff9f43","#4ea8ff","#ff6b9d","#ffd166","#9b8cff","#5ad1c0"];function C(e){if(e.color)return e.color;let t=0;for(let a=0;a<e.id.length;a++)t=31*t+e.id.charCodeAt(a)>>>0;return N[t%N.length]}function M(e,t){switch(e){case"tool":return t?`running ${t}`:"started working";case"thinking":return t?`thinking — ${t}`:"is thinking";case"cron":return t?`cron job firing — ${t}`:"cron job firing";case"error":return"ran into an error";case"idle":return"finished — back to idle";case"offline":return"went offline";default:return`is ${e}`}}var z=e.i(18143);function S({state:e,theme:a}){let{events:s,clear:n}=function(e){let t=(0,l.useRef)(null),a=(0,l.useRef)(0),[s,n]=(0,l.useState)([]);return(0,l.useEffect)(()=>{if(!e||0===e.updatedAt)return;let s=t.current;if(t.current=e,!s)return;let l=function(e,t,a){let s=[],l=t.updatedAt||e.updatedAt||0,n=new Map(e.agents.map(e=>[e.id,e]));for(let e of t.agents){let t=n.get(e.id);if(!t)continue;let r=C(e),i={agentId:e.id,agentName:e.name,color:r},o=e.activity?.title,d=!!o&&o!==t.activity?.title,c=t.status!==e.status,u="tool"===e.status||"thinking"===e.status;d&&u?s.push({id:a(),ts:l,...i,tone:e.status,text:M(e.status,o)}):c&&s.push({id:a(),ts:l,...i,tone:e.status,text:M(e.status,o)});let x=new Set(t.subAgents.map(e=>e.id)),h=new Set(e.subAgents.map(e=>e.id));for(let t of e.subAgents)x.has(t.id)||s.push({id:a(),ts:l,...i,tone:"subagent",text:`spawned sub-agent “${t.label}”${t.task?` — ${t.task}`:""}`});for(let e of t.subAgents)h.has(e.id)||s.push({id:a(),ts:l,...i,tone:"subagent",text:`sub-agent “${e.label}” wrapped up`})}let r=new Map(e.tasks.map(e=>[e.id,e])),i=new Map(t.agents.map(e=>[e.id,e.name]));for(let e of t.tasks){let t=r.get(e.id);if(t&&t.status===e.status)continue;let n=e.agentId&&i.get(e.agentId)||"Team",o=e.agentId?C({id:e.agentId}):"#8a93a6",d={agentId:e.agentId??"",agentName:n,color:o},c="running"===e.status&&(!t||"queued"===t.status),u="completed"===e.status||"failed"===e.status||"cancelled"===e.status||"timed_out"===e.status;if(c)s.push({id:a(),ts:l,...d,tone:"task",text:`task started — ${e.label}`});else if(u&&t){let t="completed"!==e.status;s.push({id:a(),ts:l,...d,tone:t?"error":"task",text:`task ${e.status.replace("_"," ")} — ${e.label}`})}}return s}(s,e,()=>`ev-${a.current+=1}`);l.length&&n(e=>{let t=e.concat(l);return t.length>300?t.slice(t.length-300):t})},[e]),{events:s,clear:()=>n([])}}(e),[r,i]=(0,l.useState)(!0),[o,d]=(0,l.useState)(!1),c=(0,l.useRef)(null),u=(0,l.useRef)(!0),x=(0,z.getCribTheme)(a).legendOnLight;(0,l.useEffect)(()=>{let e=c.current;e&&r&&u.current&&(e.scrollTop=e.scrollHeight)},[s,r,o]);let h=x?"border-black/10 bg-white/80":"border-white/10 bg-[#0b0d14]/90",m=x?"text-[#5a6172]":"text-white/45",p=x?"text-[#2a313e]":"text-white/80",b=x?"text-[#9098a8]":"text-white/30",g=`rounded-md p-1 ${x?"text-[#5a6172] hover:bg-black/5 hover:text-[#1e2430]":"text-white/45 hover:bg-white/10 hover:text-white"}`,k=s[s.length-1];return r?(0,t.jsxs)("div",{className:`absolute bottom-4 right-4 z-20 flex w-[360px] flex-col rounded-2xl border backdrop-blur-md ${h}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)",maxHeight:o?"min(70dvh, 640px)":"320px"},children:[(0,t.jsxs)("div",{className:`flex items-center gap-2 border-b px-3 py-2.5 ${x?"border-black/10":"border-white/10"}`,children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2 shrink-0",children:[(0,t.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full bg-emerald-400 opacity-60",style:{animationDuration:"2s"}}),(0,t.jsx)("span",{className:"relative h-2 w-2 rounded-full bg-emerald-400"})]}),(0,t.jsxs)("span",{className:`flex items-center gap-1.5 text-[13px] font-semibold ${x?"text-[#1e2430]":"text-white"}`,children:[(0,t.jsx)(v,{size:14})," Activity"]}),(0,t.jsx)("span",{className:`text-[11px] tabular-nums ${m}`,children:s.length}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-0.5",children:[(0,t.jsx)("button",{onClick:n,className:g,title:"Clear log","aria-label":"Clear log",children:(0,t.jsx)(w,{size:14})}),(0,t.jsx)("button",{onClick:()=>d(e=>!e),className:g,title:o?"Shrink":"Expand full log","aria-label":o?"Shrink":"Expand",children:o?(0,t.jsx)(y,{size:14}):(0,t.jsx)(j,{size:14})}),(0,t.jsx)("button",{onClick:()=>i(!1),className:g,title:"Minimize","aria-label":"Minimize",children:(0,t.jsx)(f.ChevronDown,{size:15})})]})]}),(0,t.jsx)("div",{ref:c,onScroll:()=>{let e=c.current;e&&(u.current=e.scrollHeight-e.scrollTop-e.clientHeight<24)},className:"flex flex-1 flex-col gap-1.5 overflow-y-auto px-3 py-2.5",children:0===s.length?(0,t.jsx)("p",{className:`px-1 py-6 text-center text-[12px] leading-relaxed ${m}`,children:"Watching the floor — activity will stream here as your agents pick up work."}):s.map(e=>(0,t.jsx)(A,{e:e,rowText:p,timeText:b},e.id))})]}):(0,t.jsxs)("button",{onClick:()=>i(!0),className:`absolute bottom-4 right-4 z-20 flex max-w-[340px] items-center gap-2 rounded-full border px-3 py-2 backdrop-blur-md ${h}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"Open activity feed",children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2 shrink-0",children:[(0,t.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full bg-emerald-400 opacity-60",style:{animationDuration:"2s"}}),(0,t.jsx)("span",{className:"relative h-2 w-2 rounded-full bg-emerald-400"})]}),(0,t.jsx)(v,{size:14,className:m}),(0,t.jsx)("span",{className:`truncate text-[12px] ${p}`,children:k?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold",style:{color:k.color},children:k.agentName})," ",k.text]}):"Activity feed"}),s.length>0?(0,t.jsx)("span",{className:`shrink-0 text-[11px] tabular-nums ${b}`,children:s.length}):null]})}function A({e,rowText:a,timeText:s}){var l;return(0,t.jsxs)("div",{className:"flex items-start gap-2 text-[12px] leading-snug",children:[(0,t.jsx)("span",{className:"mt-[5px] h-1.5 w-1.5 shrink-0 rounded-full",style:{background:"subagent"===(l=e.tone)?"#9b8cff":"task"===l?"#4ea8ff":k.STATUS_META[l]?.color??"#8a93a6"}}),(0,t.jsxs)("span",{className:`min-w-0 flex-1 ${a}`,children:[(0,t.jsx)("span",{className:"font-semibold",style:{color:e.color},children:e.agentName})," ",e.text]}),(0,t.jsx)("span",{className:`shrink-0 pt-px text-[10px] tabular-nums ${s}`,children:function(e){if(!e)return"";let t=new Date(e),a=e=>String(e).padStart(2,"0");return`${a(t.getHours())}:${a(t.getMinutes())}:${a(t.getSeconds())}`}(e.ts)})]})}var $=e.i(21218),R=e.i(66992),O=e.i(63639),T=e.i(61911),E=e.i(40524);function P({state:e}){let a=e.agents.filter(e=>"tool"===e.status||"thinking"===e.status||"cron"===e.status).length,s=e.agents.reduce((e,t)=>e+t.subAgents.length,0),l=e.tasks.filter(e=>"running"===e.status).length,n=e.tasks.filter(e=>"queued"===e.status).length;return(0,t.jsxs)("div",{className:"pointer-events-none absolute left-4 top-4 z-10 flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"pointer-events-auto flex items-center gap-2.5 rounded-2xl border border-white/10 bg-black/40 px-3.5 py-2.5 backdrop-blur-md",children:[(0,t.jsx)(D,{connection:e.connection}),(0,t.jsxs)("div",{className:"leading-tight",children:[(0,t.jsx)("div",{className:"text-[13px] font-semibold tracking-tight text-white",children:"ClawCrib"}),(0,t.jsx)("div",{className:"text-[11px] text-white/45",children:"gateway"===e.source?`gateway \xb7 ${e.serverVersion??"?"}`:"simulated feed"})]})]}),(0,t.jsxs)("div",{className:"pointer-events-auto flex flex-col gap-1.5 rounded-2xl border border-white/10 bg-black/35 px-3.5 py-3 backdrop-blur-md",children:[(0,t.jsx)(L,{icon:(0,t.jsx)(T.Users,{size:14}),label:"Agents",value:`${e.agents.length}`}),(0,t.jsx)(L,{icon:(0,t.jsx)($.Activity,{size:14}),label:"Active",value:`${a}`,accent:a>0}),(0,t.jsx)(L,{icon:(0,t.jsx)(E.Workflow,{size:14}),label:"Sub-agents",value:`${s}`}),(0,t.jsx)(L,{icon:(0,t.jsx)(R.Cpu,{size:14}),label:"Tasks",value:`${l} run \xb7 ${n} queued`})]}),e.note?(0,t.jsx)("div",{className:"pointer-events-auto max-w-[260px] rounded-xl border border-amber-400/20 bg-amber-400/[0.06] px-3 py-2 text-[11px] leading-snug text-amber-200/80 backdrop-blur-md",children:e.note}):null,(0,t.jsx)("div",{className:"pointer-events-auto flex flex-wrap gap-x-3 gap-y-1 rounded-xl border border-white/10 bg-black/30 px-3 py-2 backdrop-blur-md",children:["tool","thinking","cron","idle","error"].map(e=>(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-[10.5px] text-white/55",children:[(0,t.jsx)("span",{className:"h-2 w-2 rounded-full",style:{background:k.STATUS_META[e].color}}),k.STATUS_META[e].label]},e))})]})}function L({icon:e,label:a,value:s,accent:l}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-6",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-[12px] text-white/45",children:[(0,t.jsx)("span",{className:"text-white/35",children:e}),a]}),(0,t.jsx)("span",{className:`text-[12px] font-medium tabular-nums ${l?"text-emerald-300":"text-white/85"}`,children:s})]})}function D({connection:e}){let{c:a,pulse:s}={live:{c:"#28d6a8",pulse:!0,label:"live"},mock:{c:"#7c5cff",pulse:!0,label:"mock"},connecting:{c:"#ffb547",pulse:!0,label:"connecting"},pairing:{c:"#ffb547",pulse:!0,label:"pairing"},error:{c:"#ff5d6c",pulse:!1,label:"error"}}[e];return(0,t.jsxs)("span",{className:"relative flex h-7 w-7 items-center justify-center",children:[(0,t.jsx)(O.Radio,{size:16,style:{color:a}}),s?(0,t.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full opacity-30",style:{background:a,animationDuration:"2.4s"}}):null]})}var I=e.i(71689),_=e.i(72520),B=e.i(43531),F=e.i(74886),q=e.i(48256),W=e.i(51338);let U=(0,r.default)("sun-moon",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715",key:"xlf6rm"}],["path",{d:"M16 12a4 4 0 0 0-4-4",key:"6vsxu"}],["path",{d:"m19 5-1.256 1.256",key:"1yg6a6"}],["path",{d:"M20 12h2",key:"1q8mjw"}]]),H="clawcrib:onboarded";function G({command:e}){let[a,s]=(0,l.useState)(!1);return(0,t.jsxs)("button",{onClick:()=>{navigator.clipboard.writeText(e).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})},className:"group flex w-full items-center gap-2 rounded-lg border border-white/12 bg-black/50 px-3 py-2 text-left transition-colors hover:border-white/25","aria-label":`Copy: ${e}`,children:[(0,t.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap font-mono text-[11px] leading-relaxed text-white/80 [scrollbar-width:none]",children:e}),a?(0,t.jsx)(B.Check,{size:13,className:"shrink-0 text-[#4CAF50]"}):(0,t.jsx)(F.Copy,{size:13,className:"shrink-0 text-white/35 transition-colors group-hover:text-white/70"})]})}function X({icon:e,title:a,body:s}){return(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-white/10 bg-white/[0.06] text-white/75",children:e}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"text-[12.5px] font-semibold text-white",children:a}),(0,t.jsx)("div",{className:"text-[11.5px] leading-relaxed text-white/55",children:s})]})]})}function V({state:e,onClose:a}){let[s,r]=(0,l.useState)(0),i="gateway"===e.source&&"live"===e.connection,d=()=>{try{window.localStorage.setItem(H,"1")}catch{}a()};(0,l.useEffect)(()=>{let e=e=>{"Escape"===e.key&&d(),"ArrowRight"===e.key&&s<2&&r(s+1),"ArrowLeft"===e.key&&s>0&&r(s-1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[s]);let h=[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,t.jsx)("img",{src:"/logo-bracket-claw.svg",alt:"",className:"h-7 w-auto"}),(0,t.jsxs)("h2",{className:"text-lg font-bold text-white",children:["Welcome to your ",(0,t.jsx)("span",{className:"text-[#E63946]",children:"crib"})]})]}),(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-white/65",children:"This is a live 3D office for your OpenClaw agents. Every desk, walk, and workboard card is driven by real agent activity — nothing here is decorative."}),(0,t.jsx)("div",{className:"mt-4 rounded-xl border border-white/10 bg-white/[0.04] p-3",children:i?(0,t.jsxs)("p",{className:"flex items-start gap-2 text-[12px] leading-relaxed text-white/70",children:[(0,t.jsx)(O.Radio,{size:14,className:"mt-0.5 shrink-0 text-[#4CAF50]"}),"You're connected to your gateway — the agents on the floor are your real team, live."]}):(0,t.jsxs)("p",{className:"flex items-start gap-2 text-[12px] leading-relaxed text-white/70",children:[(0,t.jsx)(O.Radio,{size:14,className:"mt-0.5 shrink-0 text-[#39e6e0]"}),"Right now you're watching a simulated team, so you can explore freely. The next step connects your real agents."]})})]},"welcome"),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"mb-1 text-lg font-bold text-white",children:i?"You're connected":"Connect your OpenClaw gateway"}),i?(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-white/65",children:"Nothing to do — this crib is streaming live from your gateway. Everyone on the floor is one of your real agents."}):(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-white/65",children:"You're watching a simulated team because no gateway was found on this machine. Install ClawCrib where your agents run and it connects on its own:"}),i?null:(0,t.jsxs)("div",{className:"mt-3 flex flex-col gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-white/45",children:[(0,t.jsx)(W.MonitorSmartphone,{size:12})," On the machine your agents run on"]}),(0,t.jsx)(G,{command:"npm i -g clawcrib && clawcrib start"}),(0,t.jsxs)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-white/45",children:["Finds the gateway on ",(0,t.jsx)("code",{className:"font-mono",children:"127.0.0.1:18789"})," and connects — no URL or token to paste."]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-white/45",children:[(0,t.jsx)(q.Globe,{size:12})," Gateway on another host"]}),(0,t.jsx)(G,{command:"clawcrib start --gateway ws://<machine>.<tailnet>.ts.net:18789"}),(0,t.jsxs)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-white/45",children:["Only needed when the gateway is somewhere else. A first connect from a new machine may need a one-time approval on the gateway host:"," ",(0,t.jsx)("code",{className:"font-mono",children:"openclaw devices approve <requestId>"}),"."]})]})]})]},"connect"),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"mb-1 text-lg font-bold text-white",children:"Find your way around"}),(0,t.jsxs)("div",{className:"mt-3 flex flex-col gap-3",children:[(0,t.jsx)(X,{icon:(0,t.jsx)(x,{size:14}),title:"Plan / 3D toggle",body:"Top right. Plan is the blueprint view for laying out the floor; 3D is the live office. Drag orbits, scroll zooms, right-drag pans."}),(0,t.jsx)(X,{icon:(0,t.jsx)(u,{size:14}),title:"Build (Plan view)",body:"Add rooms and place them: Custom pins an exact spot and size, Auto packs the east wall. Drag left/right on any number field to scrub it. Lock the building size under Building."}),(0,t.jsx)(X,{icon:(0,t.jsx)(o.LayoutGrid,{size:14}),title:"Organize",body:"Buildings (profiles), departments, and which agents sit in which room. Room colors become department colors on the floor."}),(0,t.jsx)(X,{icon:(0,t.jsx)(U,{size:14}),title:"Theme",body:"One switch flips Plan and 3D between night and day."}),(0,t.jsx)(X,{icon:(0,t.jsx)(n.Bot,{size:14}),title:"Robot style",body:"3D view only — recolor your bots' body, visor, and eyes."}),(0,t.jsx)(X,{icon:(0,t.jsx)(c,{size:14}),title:"Activity feed",body:"Bottom right — a running narration of every tool call, task, and cron across the team."})]})]},"ui")];return(0,t.jsx)("div",{className:"absolute inset-0 z-40 flex items-center justify-center bg-black/55 p-4 backdrop-blur-[3px]",role:"dialog","aria-modal":"true","aria-label":"ClawCrib tour",onClick:d,children:(0,t.jsxs)("div",{className:"w-full max-w-md rounded-2xl border border-white/12 bg-[#0c0e16]/95 p-5 shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"mb-3 flex items-start justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-1.5",children:[0,1,2].map(e=>(0,t.jsx)("button",{onClick:()=>r(e),className:`h-1.5 rounded-full transition-all ${e===s?"w-6 bg-[#E63946]":"w-1.5 bg-white/20 hover:bg-white/40"}`,"aria-label":`Step ${e+1}`},e))}),(0,t.jsx)("button",{onClick:d,className:"rounded-full p-1 text-white/45 transition-colors hover:text-white","aria-label":"Close tour",children:(0,t.jsx)(b.X,{size:15})})]}),h[s],(0,t.jsxs)("div",{className:"mt-5 flex items-center justify-between",children:[s>0?(0,t.jsxs)("button",{onClick:()=>r(s-1),className:"inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[12px] font-medium text-white/55 transition-colors hover:text-white",children:[(0,t.jsx)(I.ArrowLeft,{size:13})," Back"]}):(0,t.jsx)("button",{onClick:d,className:"rounded-lg px-2.5 py-1.5 text-[12px] font-medium text-white/40 transition-colors hover:text-white",children:"Skip tour"}),s<h.length-1?(0,t.jsxs)("button",{onClick:()=>r(s+1),className:"inline-flex items-center gap-1.5 rounded-lg bg-[#E63946] px-4 py-1.5 text-[12px] font-semibold text-white transition-colors hover:bg-[#C1121F]",children:["Next ",(0,t.jsx)(_.ArrowRight,{size:13})]}):(0,t.jsx)("button",{onClick:d,className:"inline-flex items-center gap-1.5 rounded-lg bg-[#E63946] px-4 py-1.5 text-[12px] font-semibold text-white transition-colors hover:bg-[#C1121F]",children:"Open the crib"})]})]})})}var Y=e.i(7486);let K=(0,r.default)("door-open",[["path",{d:"M11 20H2",key:"nlcfvz"}],["path",{d:"M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z",key:"au4z13"}],["path",{d:"M11 4H8a2 2 0 0 0-2 2v14",key:"74r1mk"}],["path",{d:"M14 12h.01",key:"1jfl7z"}],["path",{d:"M22 20h-3",key:"vhrsz"}]]);var J=e.i(7233),Q=e.i(27612),Z=e.i(84397),ee=e.i(52496);let et=["N","S","W","E"],ea=e=>Math.round(2*e)/2;function es({state:e,config:a,update:s,onClose:n}){let r=[...a.rooms].sort((e,t)=>e.order-t.order),i=(e,t)=>s(a=>({...a,rooms:a.rooms.map(a=>a.id===e?{...a,...t}:a)})),o=(e,t,a)=>s(s=>({...s,rooms:s.rooms.map(l=>{if(l.id!==e)return l;let n={...l.rect??(0,ee.defaultRoomRect)(s.rooms.indexOf(l)),[t]:ea(a)};return("w"===t||"d"===t)&&(n[t]=Math.max(2.5,n[t])),{...l,rect:n}})})),d=(0,l.useMemo)(()=>{let t=(0,Z.computeFloorPlan)(e.agents,{...a,building:void 0});return{w:t.W,d:t.D}},[e.agents,a]),c=(e,t)=>s(a=>{let s=a.building??d;return{...a,building:{...s,[e]:Math.max(10,ea(t))}}});return(0,t.jsxs)("div",{className:"absolute right-4 top-16 z-30 flex max-h-[calc(100dvh-6rem)] w-[360px] flex-col rounded-2xl border border-white/12 bg-[#0c0e16]/95 shadow-2xl backdrop-blur-md",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-4 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-sm font-semibold text-white",children:[(0,t.jsx)(u,{size:14})," Floor-plan builder"]}),(0,t.jsx)("div",{className:"text-[11px] text-white/45",children:"Place + size rooms — the plan updates live"})]}),(0,t.jsx)("button",{onClick:n,className:"rounded-md p-1 text-white/55 hover:bg-white/10 hover:text-white","aria-label":"Close",children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-[11px] font-medium uppercase tracking-wide text-white/40",children:[(0,t.jsx)(Y.Building2,{size:12})," Building"]}),(0,t.jsxs)("div",{className:"mb-4 rounded-xl border border-white/10 bg-white/[0.03] px-2.5 py-2",children:[(0,t.jsx)(el,{custom:!!a.building,onSelect:e=>s(t=>{if(!e){let e={...t};return delete e.building,e}return{...t,building:t.building??{w:ea(d.w),d:ea(d.d)}}}),customLabel:"Custom",autoLabel:"Auto"}),a.building?(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-x-3 gap-y-1.5",children:[(0,t.jsx)(er,{label:"Width",value:a.building.w,step:.5,min:10,onChange:e=>c("w",e)}),(0,t.jsx)(er,{label:"Depth",value:a.building.d,step:.5,min:10,onChange:e=>c("d",e)})]}):(0,t.jsxs)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-white/40",children:["Sized to fit contents — currently ",Math.round(10*d.w)/10," × ",Math.round(10*d.d)/10," m. Switch to Custom to lock the floor size."]}),a.building?(0,t.jsx)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-white/35",children:"The floor keeps this size; it only grows if rooms need more space."}):null]}),(0,t.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Rooms"}),(0,t.jsxs)("button",{onClick:()=>s(e=>{let t=ee.ROOM_PALETTE[e.rooms.length%ee.ROOM_PALETTE.length];return{...e,rooms:[...e.rooms,{id:(0,ee.newRoomId)(),name:`Office ${e.rooms.length+1}`,color:t,order:e.rooms.length,rect:(0,ee.defaultRoomRect)(e.rooms.length),doorSide:"S"}]}}),className:"flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[12px] font-medium text-[#7c5cff] hover:bg-white/5",children:[(0,t.jsx)(J.Plus,{size:13})," Add office"]})]}),0===r.length?(0,t.jsx)("p",{className:"rounded-lg border border-dashed border-white/12 px-3 py-2.5 text-[12px] leading-relaxed text-white/45",children:"No rooms yet. Add an office, then drag its size + position with the controls. Assign agents to rooms in “Organize”."}):(0,t.jsx)("div",{className:"flex flex-col gap-2.5",children:r.map(e=>{let l=!!e.rect,n=Object.values(a.assignments).filter(t=>t===e.id).length,d=e.rect??(0,ee.defaultRoomRect)(r.indexOf(e));return(0,t.jsxs)("div",{className:"rounded-xl border border-white/10 bg-white/[0.03] px-2.5 py-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"relative h-5 w-5 shrink-0 cursor-pointer rounded-full",style:{background:e.color},children:(0,t.jsx)("input",{type:"color",value:e.color,onChange:t=>i(e.id,{color:t.target.value}),className:"absolute inset-0 cursor-pointer opacity-0","aria-label":`${e.name} color`})}),(0,t.jsx)("input",{value:e.name,onChange:t=>i(e.id,{name:t.target.value}),className:"min-w-0 flex-1 bg-transparent text-sm text-white outline-none"}),(0,t.jsx)("span",{className:"shrink-0 text-[11px] tabular-nums text-white/35",title:"agents assigned",children:n}),(0,t.jsx)("button",{onClick:()=>{let t;return t=e.id,s(e=>{let a={...e.assignments};for(let e of Object.keys(a))a[e]===t&&delete a[e];return{...e,rooms:e.rooms.filter(e=>e.id!==t),assignments:a}})},className:"shrink-0 rounded p-1 text-white/40 hover:bg-white/10 hover:text-[#ff6b9d]","aria-label":`Delete ${e.name}`,children:(0,t.jsx)(Q.Trash2,{size:13})})]}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(el,{custom:l,onSelect:t=>{let a;return a=e.id,s(e=>({...e,rooms:e.rooms.map(s=>{if(s.id!==a)return s;if(t)return{...s,rect:s.rect??(0,ee.defaultRoomRect)(e.rooms.indexOf(s)),doorSide:s.doorSide??"S"};let l={...s};return delete l.rect,delete l.doorSide,l})}))},customLabel:"Custom",autoLabel:"Auto (east wall)"})}),l?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-x-3 gap-y-1.5",children:[(0,t.jsx)(er,{label:"X",value:d.x,step:.5,onChange:t=>o(e.id,"x",t)}),(0,t.jsx)(er,{label:"Z",value:d.z,step:.5,onChange:t=>o(e.id,"z",t)}),(0,t.jsx)(er,{label:"Width",value:d.w,step:.5,min:2.5,onChange:t=>o(e.id,"w",t)}),(0,t.jsx)(er,{label:"Depth",value:d.d,step:.5,min:2.5,onChange:t=>o(e.id,"d",t)})]}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-1.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-white/40",children:[(0,t.jsx)(K,{size:12})," Door"]}),(0,t.jsx)("div",{className:"flex gap-1",children:et.map(a=>(0,t.jsx)("button",{onClick:()=>i(e.id,{doorSide:a}),className:`h-6 w-6 rounded-md border text-[11px] font-semibold transition-colors ${(e.doorSide??"S")===a?"border-[#7c5cff]/60 bg-[#7c5cff]/20 text-white":"border-white/12 text-white/50 hover:text-white"}`,title:`Door on ${a} wall`,children:a},a))})]})]}):null]},e.id)})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-t border-white/10 px-4 py-2.5",children:[(0,t.jsxs)("span",{className:"text-[11px] text-white/35",children:[e.agents.length," agents · units in meters"]}),(0,t.jsx)("span",{className:"text-[11px] text-white/30",children:"Saved automatically"})]})]})}function el({custom:e,onSelect:a,customLabel:s,autoLabel:l}){let n=e=>`rounded-full border px-2.5 py-1 text-[11px] font-medium transition-colors ${e?"border-[#7c5cff]/60 bg-[#7c5cff]/20 text-white":"border-white/12 text-white/50 hover:text-white"}`;return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",role:"radiogroup",children:[(0,t.jsx)("button",{onClick:()=>a(!0),className:n(e),role:"radio","aria-checked":e,children:s}),(0,t.jsx)("button",{onClick:()=>a(!1),className:n(!e),role:"radio","aria-checked":!e,children:l})]})}let en=e=>String(Math.round(100*e)/100);function er({label:e,value:a,onChange:s,step:n=1,min:r}){let[i,o]=(0,l.useState)(null),d=(0,l.useRef)(null),c=e=>null!=r?Math.max(r,e):e;return(0,t.jsxs)("label",{className:"flex select-none items-center justify-between gap-2 text-[11px] text-white/45",style:{cursor:"ew-resize",touchAction:"none"},onPointerDown:e=>{0===e.button&&(d.current={x:e.clientX,v:a,scrubbing:!1})},onPointerMove:e=>{let t=d.current;if(!t)return;let a=e.clientX-t.x;if(!t.scrubbing){if(3>Math.abs(a))return;t.scrubbing=!0,o(null),e.currentTarget.setPointerCapture(e.pointerId),document.activeElement?.blur?.()}s(c(Math.round((t.v+a/4*n)/n)*n)),e.preventDefault()},onPointerUp:()=>{d.current=null},onPointerCancel:()=>{d.current=null},children:[(0,t.jsx)("span",{className:"w-10 shrink-0 uppercase tracking-wide",children:e}),(0,t.jsx)("input",{type:"number",value:i??en(Number.isFinite(a)?a:0),step:n,min:r,onFocus:()=>o(en(a)),onBlur:()=>o(null),onChange:e=>{o(e.target.value);let t=parseFloat(e.target.value);Number.isFinite(t)&&s(c(t))},className:"min-w-0 flex-1 cursor-text rounded-md border border-white/12 bg-[#11131c] px-2 py-1 text-right text-[12px] tabular-nums text-white outline-none focus:border-white/30"})]})}function ei({state:e,config:a,update:s,profiles:l,activeId:n,selectProfile:r,createProfile:i,deleteProfile:o,canAddProfile:d,onClose:c}){let u=[...e.agents].sort((e,t)=>e.id.localeCompare(t.id));return(0,t.jsxs)("div",{className:"absolute right-4 top-16 z-30 flex max-h-[calc(100dvh-6rem)] w-[340px] flex-col rounded-2xl border border-white/12 bg-[#0c0e16]/95 shadow-2xl backdrop-blur-md",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-4 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-white",children:"Organize building"}),(0,t.jsx)("div",{className:"text-[11px] text-white/45",children:"Group agents into rooms — views update live"})]}),(0,t.jsx)("button",{onClick:c,className:"rounded-md p-1 text-white/55 hover:bg-white/10 hover:text-white","aria-label":"Close",children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] font-medium uppercase tracking-wide text-white/40",children:[(0,t.jsx)(Y.Building2,{size:12})," Saved buildings"]}),(0,t.jsxs)("button",{onClick:i,disabled:!d,className:"flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[12px] font-medium text-[#7c5cff] enabled:hover:bg-white/5 disabled:cursor-not-allowed disabled:text-white/25",title:d?"New building":"Profile limit reached",children:[(0,t.jsx)(J.Plus,{size:13})," New"]})]}),(0,t.jsxs)("div",{className:"mb-4 flex items-center gap-2",children:[(0,t.jsx)("select",{value:n??"",onChange:e=>r(e.target.value),className:"min-w-0 flex-1 rounded-lg border border-white/12 bg-[#11131c] px-2.5 py-1.5 text-sm text-white outline-none focus:border-white/30",children:l.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))}),(0,t.jsx)("button",{onClick:()=>n&&o(n),disabled:l.length<=1,className:"shrink-0 rounded-lg border border-white/10 p-2 text-white/45 enabled:hover:bg-white/10 enabled:hover:text-[#ff6b9d] disabled:cursor-not-allowed disabled:opacity-40",title:l.length<=1?"Keep at least one building":"Delete this building","aria-label":"Delete building",children:(0,t.jsx)(Q.Trash2,{size:14})})]}),(0,t.jsx)("label",{className:"mb-1 block text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Building name"}),(0,t.jsx)("input",{value:a.buildingName,onChange:e=>s(t=>({...t,buildingName:e.target.value})),className:"mb-4 w-full rounded-lg border border-white/12 bg-white/[0.04] px-2.5 py-1.5 text-sm text-white outline-none focus:border-white/30"}),(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Rooms"}),(0,t.jsxs)("button",{onClick:()=>s(e=>{let t=ee.ROOM_PALETTE[e.rooms.length%ee.ROOM_PALETTE.length];return{...e,rooms:[...e.rooms,{id:(0,ee.newRoomId)(),name:`Room ${e.rooms.length+1}`,color:t,order:e.rooms.length}]}}),className:"flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[12px] font-medium text-[#7c5cff] hover:bg-white/5",children:[(0,t.jsx)(J.Plus,{size:13})," Add"]})]}),0===a.rooms.length?(0,t.jsx)("p",{className:"mb-4 rounded-lg border border-dashed border-white/12 px-3 py-2.5 text-[12px] leading-relaxed text-white/45",children:"No rooms yet — everyone shares the open floor. Add a room, then assign agents below."}):(0,t.jsx)("div",{className:"mb-4 flex flex-col gap-1.5",children:[...a.rooms].sort((e,t)=>e.order-t.order).map(e=>{let l=Object.values(a.assignments).filter(t=>t===e.id).length;return(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-white/10 bg-white/[0.03] px-2 py-1.5",children:[(0,t.jsx)("label",{className:"relative h-5 w-5 shrink-0 cursor-pointer rounded-full",style:{background:e.color},children:(0,t.jsx)("input",{type:"color",value:e.color,onChange:t=>{let a,l;return a=e.id,l=t.target.value,s(e=>({...e,rooms:e.rooms.map(e=>e.id===a?{...e,color:l}:e)}))},className:"absolute inset-0 cursor-pointer opacity-0","aria-label":`${e.name} color`})}),(0,t.jsx)("input",{value:e.name,onChange:t=>{let a,l;return a=e.id,l=t.target.value,s(e=>({...e,rooms:e.rooms.map(e=>e.id===a?{...e,name:l}:e)}))},className:"min-w-0 flex-1 bg-transparent text-sm text-white outline-none"}),(0,t.jsx)("span",{className:"shrink-0 text-[11px] tabular-nums text-white/35",children:l}),(0,t.jsx)("button",{onClick:()=>{let t;return t=e.id,s(e=>{let a={...e.assignments};for(let e of Object.keys(a))a[e]===t&&delete a[e];return{...e,rooms:e.rooms.filter(e=>e.id!==t),assignments:a}})},className:"shrink-0 rounded p-1 text-white/40 hover:bg-white/10 hover:text-[#ff6b9d]","aria-label":`Delete ${e.name}`,children:(0,t.jsx)(Q.Trash2,{size:13})})]},e.id)})}),(0,t.jsx)("div",{className:"mb-1 text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Agents"}),(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[u.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg px-1 py-1",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm text-white/85",title:e.id,children:e.name}),(0,t.jsxs)("select",{value:a.assignments[e.id]??"",onChange:t=>{let a,l;return a=e.id,l=t.target.value,s(e=>{let t={...e.assignments};return l?t[a]=l:delete t[a],{...e,assignments:t}})},className:"shrink-0 rounded-md border border-white/12 bg-[#11131c] px-2 py-1 text-[12px] text-white outline-none focus:border-white/30",children:[(0,t.jsx)("option",{value:"",children:"Open floor"}),[...a.rooms].sort((e,t)=>e.order-t.order).map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]})]},e.id)),0===u.length?(0,t.jsx)("p",{className:"px-1 py-2 text-[12px] text-white/40",children:"Waiting for the gateway roster…"}):null]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-t border-white/10 px-4 py-2.5",children:[(0,t.jsxs)("button",{onClick:()=>s(e=>({version:1,buildingName:e.buildingName,rooms:[],assignments:{}})),className:"flex items-center gap-1.5 text-[12px] text-white/45 hover:text-white/80",children:[(0,t.jsx)(h.RotateCcw,{size:13})," Reset to open floor"]}),(0,t.jsx)("span",{className:"text-[11px] text-white/30",children:"Saved automatically"})]})]})}var eo=e.i(72664);let ed=(0,r.default)("drafting-compass",[["path",{d:"m12.99 6.74 1.93 3.44",key:"iwagvd"}],["path",{d:"M19.136 12a10 10 0 0 1-14.271 0",key:"ppmlo4"}],["path",{d:"m21 21-2.16-3.84",key:"vylbct"}],["path",{d:"m3 21 8.02-14.26",key:"1ssaw4"}],["circle",{cx:"12",cy:"5",r:"2",key:"f1ur92"}]]),ec=["plan","3d"];function eu({value:e,onChange:a}){let s=ec.indexOf(e);return(0,t.jsxs)("div",{role:"tablist","aria-label":"View mode",className:"relative flex select-none items-center gap-1 rounded-full border border-white/10 bg-black/40 p-1 backdrop-blur-md",style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute top-1 bottom-1 rounded-full bg-white/10 transition-transform duration-300 ease-out",style:{width:"calc(50% - 4px)",left:4,transform:`translateX(${100*s}%)`,background:"linear-gradient(180deg, rgba(124,92,255,0.35), rgba(40,214,168,0.22))",border:"1px solid rgba(255,255,255,0.14)"}}),(0,t.jsx)(ex,{active:"plan"===e,onClick:()=>a("plan"),icon:(0,t.jsx)(ed,{size:15,strokeWidth:2.2}),label:"Plan"}),(0,t.jsx)(ex,{active:"3d"===e,onClick:()=>a("3d"),icon:(0,t.jsx)(eo.Box,{size:15,strokeWidth:2.2}),label:"3D"})]})}function ex({active:e,onClick:a,icon:s,label:l}){return(0,t.jsxs)("button",{role:"tab","aria-selected":e,onClick:a,className:"relative z-10 flex w-[64px] items-center justify-center gap-1.5 rounded-full px-3 py-1.5 text-[13px] font-medium transition-colors",style:{color:e?"#fff":"rgba(255,255,255,0.5)"},children:[s,l]})}var eh=e.i(1605);let em=[{id:"atlas",name:"Atlas",role:"Orchestrator",model:"claude-opus-4-8",color:"#7c5cff",cronEveryMs:47e3,cronCount:3},{id:"sage",name:"Sage",role:"Docs & memory",model:"claude-sonnet-4-6",color:"#ffb547",cronEveryMs:73e3,cronCount:1},{id:"forge",name:"Forge",role:"Build & deploy",model:"claude-opus-4-8",color:"#ff7a59",cronEveryMs:53e3,cronCount:2},{id:"bolt",name:"Bolt",role:"CI & test runs",model:"claude-haiku-4-5",color:"#ffd166",cronEveryMs:29e3,cronCount:5},{id:"patch",name:"Patch",role:"Bug triage",model:"claude-sonnet-4-6",color:"#8ce99a",cronEveryMs:61e3,cronCount:2},{id:"vera",name:"Vera",role:"QA & verification",model:"claude-sonnet-4-6",color:"#63e6be",cronEveryMs:41e3,cronCount:3},{id:"nova",name:"Nova",role:"Research & web",model:"claude-sonnet-4-6",color:"#28d6a8",cronEveryMs:31e3,cronCount:2},{id:"scout",name:"Scout",role:"Crawl & index",model:"claude-haiku-4-5",color:"#4dd4ac",cronEveryMs:17e3,cronCount:6},{id:"pixel",name:"Pixel",role:"Design & assets",model:"claude-sonnet-4-6",color:"#ff5d9e",cronEveryMs:89e3,cronCount:1},{id:"muse",name:"Muse",role:"Copy & content",model:"claude-sonnet-4-6",color:"#e599f7",cronEveryMs:67e3,cronCount:1},{id:"echo",name:"Echo",role:"Comms / channels",model:"claude-haiku-4-5",color:"#4ea1ff",cronEveryMs:19e3,cronCount:4},{id:"warden",name:"Warden",role:"Security watch",model:"claude-sonnet-4-6",color:"#46d3ff",cronEveryMs:23e3,cronCount:3},{id:"ledger",name:"Ledger",role:"Metrics & cost",model:"claude-haiku-4-5",color:"#a5d8ff",cronEveryMs:37e3,cronCount:4}],ep=[{title:"bash: pytest -q",kind:"command"},{title:"web.search",kind:"search"},{title:"fs.read AGENTS.md",kind:"tool"},{title:"git.commit",kind:"command"},{title:"http.fetch docs",kind:"tool"},{title:"fs.patch route.ts",kind:"patch"},{title:"analysis: diff review",kind:"analysis"},{title:"bash: npm run build",kind:"command"},{title:"memory.write daily",kind:"tool"},{title:"channel.send Slack",kind:"tool"}],eb=["summarize PR #214","scrape changelog","lint workspace","draft release notes","verify cron output","index new docs"],eg=[["Read context","Run tests","Patch failure","Re-run"],["Fetch sources","Rank by relevance","Summarize"],["Pull diff","Review","Comment","Approve"]];function ef(e){return e[Math.floor(Math.random()*e.length)]}function ew(e,t,a){let s=e.map(e=>({id:e.id,name:e.name,role:e.role,model:e.model,color:e.color,status:e.status,activity:e.activity,plan:e.plan,subAgents:e.subAgents,tasks:{queued:e.queued,running:e.running},cron:{count:e.cronCount,nextRunAtMs:e.cronNextAt,running:"cron"===e.status},lastActiveMs:e.lastActiveMs,isDefault:"atlas"===e.id,totalTokens:e.totalTokens})),l=e.flatMap(e=>Array.from({length:e.cronCount},(t,a)=>({id:`${e.id}-cron-${a}`,name:0===a?"heartbeat":`job-${a}`,agentId:e.id,enabled:!0,nextRunAtMs:e.cronNextAt+5e3*a,runningAtMs:"cron"===e.status&&0===a?Date.now():void 0,lastRunStatus:"ok"}))),n=e.flatMap(e=>{let t=[];for(let a=0;a<e.running;a++)t.push({id:`${e.id}-run-${a}`,agentId:e.id,label:e.activity?.title??"running",status:"running",startedAt:e.lastActiveMs});for(let a=0;a<e.queued;a++)t.push({id:`${e.id}-q-${a}`,agentId:e.id,label:"queued task",status:"queued"});return t});return n.push(...t),{agents:s,crons:l,tasks:n,connection:"mock",source:"mock",serverVersion:"mock",note:a,updatedAt:Date.now()}}let ev=(0,a.default)(()=>e.A(76549),{loadableGenerated:{modules:[15697]},ssr:!1}),ej=(0,a.default)(()=>e.A(89517),{loadableGenerated:{modules:[52149]},ssr:!1}),ey={plan:"ClawCrib · building plan","3d":"ClawCrib · live agent building"};function ek(){let e="/demo"===(0,s.usePathname)(),a=function(){let[e,t]=(0,l.useState)(k.emptyTeamState);return(0,l.useEffect)(()=>{let e=null,a=null,s=!1,l=()=>{a?.stop(),a=null},n=e=>{a||(a=function(e,t={}){let a=Date.now(),s=em.map((e,t)=>({...e,status:t%3==0?"tool":"idle",cronNextAt:a+4e3+Math.floor(Math.random()*e.cronEveryMs),subAgents:[],queued:Math.floor(3*Math.random()),running:+(t%3==0),lastActiveMs:a,totalTokens:1e3+Math.floor(9e4*Math.random())})),l=t.tickMs??1100,n=null,r=[];function i(e){r.push(e),r.length>8&&r.shift()}return e(ew(s,r,t.note)),n=setInterval(function(){let a=Date.now();for(let e of s){if(a>=e.cronNextAt){e.status="cron",e.cronNextAt=a+e.cronEveryMs,e.lastActiveMs=a,e.activity={title:"cron: heartbeat",kind:"command",since:a,status:"running"};continue}let t=Math.random();switch(e.status){case"idle":t<.28?(e.status="thinking",e.plan=ef(eg),e.lastActiveMs=a):t<.33&&(e.status="tool",e.activity={...ef(ep),since:a,status:"running"},e.running=Math.max(1,e.running),e.lastActiveMs=a);break;case"thinking":t<.55?(e.status="tool",e.activity={...ef(ep),since:a,status:"running"},e.running=Math.max(1,e.running)):t<.7&&(e.status="idle",e.plan=void 0),e.lastActiveMs=a,e.totalTokens+=200+Math.floor(600*Math.random());break;case"tool":e.totalTokens+=150+Math.floor(900*Math.random()),e.lastActiveMs=a,t<.18?e.subAgents.length<1&&(e.subAgents.push({id:`${e.id}-sub-${Math.floor(1e5*Math.random())}`,agentId:e.id,parentId:e.id,label:ef(eb),task:ef(eb),status:"tool",startedAt:a}),e.running+=1):t<.42?(e.status="thinking",e.activity=void 0):t<.5?(i({id:`${e.id}-done-${a}`,agentId:e.id,label:e.activity?.title??"task",status:"completed",startedAt:a}),e.status="idle",e.activity=void 0,e.plan=void 0,e.running=Math.max(0,e.running-1),e.queued=Math.max(0,e.queued-(.5>Math.random()))):t<.53&&(i({id:`${e.id}-fail-${a}`,agentId:e.id,label:e.activity?.title??"task",status:"failed",startedAt:a}),e.status="error",e.activity={title:"tool failed",kind:"tool",since:a,status:"failed"});break;case"cron":t<.6&&(e.status="idle",e.activity=void 0);break;case"error":t<.5&&(e.status="thinking",e.activity=void 0);break;default:e.status="idle"}e.subAgents.length&&.22>Math.random()&&(e.subAgents.shift(),e.running=Math.max(0,e.running-1)),.15>Math.random()&&(e.queued=Math.min(6,e.queued+1))}e(ew(s,r,t.note))},l),{stop:()=>{n&&clearInterval(n),n=null}}}(a=>t({...a,note:e}),{note:e}))};try{(e=new EventSource("/api/crib/stream")).onmessage=e=>{s=!0,l();try{t(JSON.parse(e.data))}catch{}},e.onerror=()=>{s||n("Live stream unavailable — local simulation")}}catch{n("Live stream unavailable — local simulation")}let r=setTimeout(()=>{s||n("Connecting…")},4e3);return()=>{clearTimeout(r),e?.close(),l()}},[]),e}(),{config:r,update:m,profiles:b,activeId:f,selectProfile:w,createProfile:v,deleteProfile:j,canAddProfile:y}=(0,ee.useProfiles)(),[N,C]=(0,l.useState)("3d"),[M,A]=(0,l.useState)("dark"),[$,R]=(0,l.useState)(eh.DEFAULT_BOT_STYLE),[O,T]=(0,l.useState)(!1),[E,L]=(0,l.useState)(!1),[D,I]=(0,l.useState)(!1),[_,B]=(0,l.useState)(!1),F=(0,z.getCribTheme)(M),q=!(0,ee.hasRooms)(r)&&"gateway"!==a.source,W=(0,l.useMemo)(()=>q?(0,ee.demoRoomsConfig)():r,[q,r]);(0,l.useEffect)(()=>{let t=requestAnimationFrame(()=>{let t=window.localStorage.getItem("clawcrib:view");"plan"===t||"3d"===t?C(t):"2d"===t&&C("3d");let a=window.localStorage.getItem("clawcrib:theme");("light"===a||"dark"===a)&&A(a),R((0,eh.loadBotStyle)(window.localStorage.getItem("clawcrib:botstyle"))),!e&&function(){try{return!window.localStorage.getItem(H)}catch{return!1}}()&&B(!0)});return()=>cancelAnimationFrame(t)},[e]);let U=e=>{R(t=>{let a={...t,...e};return window.localStorage.setItem("clawcrib:botstyle",JSON.stringify(a)),a})};return(0,t.jsxs)("div",{className:"relative h-[100dvh] w-full overflow-hidden",style:{background:F.pageBg},children:[(0,t.jsx)("div",{className:"absolute inset-0",children:"plan"===N?(0,t.jsx)(ev,{state:a,config:W,theme:M}):(0,t.jsx)(ej,{state:a,config:W,theme:M,botStyle:$})}),(0,t.jsx)(P,{state:a}),(0,t.jsxs)("div",{className:"absolute right-4 top-4 z-20 flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:()=>B(!0),className:"flex items-center gap-1.5 rounded-full border border-white/10 bg-black/40 px-2.5 py-1.5 text-[13px] font-medium text-white/70 backdrop-blur-md transition-colors hover:text-white",style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"Open the tour",title:"Tour & setup",children:(0,t.jsx)(i,{size:15,strokeWidth:2.2})}),(0,t.jsx)("button",{onClick:()=>{A(e=>{let t="dark"===e?"light":"dark";return window.localStorage.setItem("clawcrib:theme",t),t})},className:"flex items-center gap-1.5 rounded-full border border-white/10 bg-black/40 px-2.5 py-1.5 text-[13px] font-medium text-white/70 backdrop-blur-md transition-colors hover:text-white",style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"dark"===M?"Switch to light mode":"Switch to dark mode",title:"dark"===M?"Light mode":"Dark mode",children:"dark"===M?(0,t.jsx)(p.Sun,{size:15,strokeWidth:2.2}):(0,t.jsx)(d.Moon,{size:15,strokeWidth:2.2})}),"3d"===N?(0,t.jsx)("button",{onClick:()=>{I(e=>!e),T(!1),L(!1)},className:`flex items-center gap-1.5 rounded-full border px-2.5 py-1.5 text-[13px] font-medium backdrop-blur-md transition-colors ${D?"border-white/20 bg-white/15 text-white":"border-white/10 bg-black/40 text-white/70 hover:text-white"}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"Customize robot style",title:"Robot style","aria-pressed":D,children:(0,t.jsx)(n.Bot,{size:15,strokeWidth:2.2})}):null,"plan"===N?(0,t.jsxs)("button",{onClick:()=>{L(e=>!e),T(!1),I(!1)},className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[13px] font-medium backdrop-blur-md transition-colors ${E?"border-white/20 bg-white/15 text-white":"border-white/10 bg-black/40 text-white/70 hover:text-white"}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-pressed":E,children:[(0,t.jsx)(u,{size:15,strokeWidth:2.2}),"Build"]}):null,(0,t.jsxs)("button",{onClick:()=>{T(e=>!e),L(!1),I(!1)},className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[13px] font-medium backdrop-blur-md transition-colors ${O?"border-white/20 bg-white/15 text-white":"border-white/10 bg-black/40 text-white/70 hover:text-white"}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-pressed":O,children:[(0,t.jsx)(o.LayoutGrid,{size:15,strokeWidth:2.2}),"Organize"]}),(0,t.jsx)(eu,{value:N,onChange:e=>{C(e),window.localStorage.setItem("clawcrib:view",e)}})]}),_?(0,t.jsx)(V,{state:a,onClose:()=>B(!1)}):null,D&&"3d"===N?(0,t.jsx)(eC,{value:$,onChange:U,onReset:()=>U(eh.DEFAULT_BOT_STYLE),onClose:()=>I(!1)}):null,E&&"plan"===N?(0,t.jsx)(es,{state:a,config:W,update:m,onClose:()=>L(!1)}):null,O?(0,t.jsx)(ei,{state:a,config:W,update:m,profiles:b,activeId:f,selectProfile:w,createProfile:v,deleteProfile:j,canAddProfile:y,onClose:()=>T(!1)}):null,(0,t.jsx)(S,{state:a,theme:M}),(0,t.jsx)("div",{className:`pointer-events-none absolute bottom-4 left-4 z-10 flex flex-col gap-1.5 rounded-xl border px-3 py-2.5 backdrop-blur-md ${F.legendOnLight?"border-black/10 bg-white/70":"border-white/10 bg-black/45"}`,children:"3d"===N?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eM,{dark:!F.legendOnLight,icon:(0,t.jsx)(x,{size:13}),action:"Drag",effect:"orbit camera"}),(0,t.jsx)(eM,{dark:!F.legendOnLight,icon:(0,t.jsx)(g,{size:13}),action:"Scroll",effect:"zoom in / out"}),(0,t.jsx)(eM,{dark:!F.legendOnLight,icon:(0,t.jsx)(c,{size:13}),action:"Right-drag",effect:"pan across the floor"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eM,{dark:!F.legendOnLight,icon:(0,t.jsx)(c,{size:13}),action:"Drag",effect:"pan the floor plan"}),(0,t.jsx)(eM,{dark:!F.legendOnLight,icon:(0,t.jsx)(g,{size:13}),action:"Scroll",effect:"zoom in / out"}),(0,t.jsx)(eM,{dark:!F.legendOnLight,icon:(0,t.jsx)(h.RotateCcw,{size:13}),action:"Double-click",effect:"reset view"})]})}),(0,t.jsx)("div",{className:"pointer-events-none absolute bottom-3 left-1/2 z-10 -translate-x-1/2 text-[11px] tracking-wide",style:{color:F.caption,textShadow:F.legendOnLight?"0 1px 2px rgba(255,255,255,0.5)":"none"},children:ey[N]})]})}let eN=[{key:"body",label:"Body"},{key:"visor",label:"Visor"},{key:"eyes",label:"Eyes"}];function eC({value:e,onChange:a,onReset:s,onClose:l}){return(0,t.jsxs)("div",{className:"absolute right-4 top-16 z-30 w-64 rounded-2xl border border-white/10 bg-black/60 p-4 backdrop-blur-xl",style:{boxShadow:"0 12px 40px rgba(0,0,0,0.5)"},children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[13px] font-semibold text-white",children:[(0,t.jsx)(n.Bot,{size:15,strokeWidth:2.2}),"Robot style"]}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{onClick:s,className:"rounded-full p-1.5 text-white/50 transition-colors hover:text-white","aria-label":"Reset to default colors",title:"Reset",children:(0,t.jsx)(m,{size:13,strokeWidth:2.2})}),(0,t.jsx)("button",{onClick:l,className:"rounded-full p-1.5 text-white/50 transition-colors hover:text-white","aria-label":"Close",children:(0,t.jsx)(b.X,{size:14,strokeWidth:2.2})})]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-3",children:eN.map(({key:s,label:l})=>(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-white/40",children:l}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[eh.BOT_PRESETS[s].map(n=>(0,t.jsx)("button",{onClick:()=>a({[s]:n}),className:`h-6 w-6 rounded-full border transition-transform hover:scale-110 ${e[s].toLowerCase()===n.toLowerCase()?"border-white":"border-white/15"}`,style:{background:n},"aria-label":`${l} color ${n}`},n)),(0,t.jsx)("label",{className:"relative h-6 w-6 shrink-0 cursor-pointer overflow-hidden rounded-full border border-dashed border-white/30",title:"Custom color",style:{background:"conic-gradient(#ff6b81, #ffd166, #4cff9f, #39e6e0, #7c5cff, #ff6b81)"},children:(0,t.jsx)("input",{type:"color",value:e[s],onChange:e=>a({[s]:e.target.value}),className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":`Custom ${l.toLowerCase()} color`})})]})]},s))}),(0,t.jsx)("div",{className:"mt-3 text-[10px] leading-relaxed text-white/35",children:"Eye color shows while idle — active agents glow with their status color."})]})}function eM({icon:e,action:a,effect:s,dark:l}){return(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[11px] leading-none",children:[(0,t.jsx)("span",{className:l?"text-white/55":"text-[#3c4250]",children:e}),(0,t.jsx)("span",{className:l?"font-semibold text-white/90":"font-semibold text-[#262b36]",children:a}),(0,t.jsx)("span",{className:l?"text-white/55":"text-[#5a6172]",children:s})]})}e.s(["default",()=>ek],73466)}]);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clawcrib",
3
- "version": "0.1.2",
4
- "description": "ClawCrib — a live 3D office dashboard for your OpenClaw agents. Run `npx clawcrib` and watch your team work.",
3
+ "version": "0.1.3",
4
+ "description": "ClawCrib — a live 3D office for your OpenClaw agents. Install it where they run and it connects itself.",
5
5
  "bin": {
6
6
  "clawcrib": "bin/clawcrib.mjs"
7
7
  },
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"BailoutToCSR",{enumerable:!0,get:function(){return l}});let s=e.r(32061);function l({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new s.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},9885,(e,t,a)=>{"use strict";function s(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"encodeURIPath",{enumerable:!0,get:function(){return s}})},52157,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"PreloadChunks",{enumerable:!0,get:function(){return o}});let s=e.r(18050),l=e.r(74080),n=e.r(63599),r=e.r(9885),i=e.r(43369);function o({moduleIds:e}){if("u">typeof window)return null;let t=n.workAsyncStorage.getStore();if(void 0===t)return null;let a=[];if(t.reactLoadableManifest&&e){let s=t.reactLoadableManifest;for(let t of e){if(!s[t])continue;let e=s[t].files;a.push(...e)}}if(0===a.length)return null;let o=(0,i.getDeploymentIdQueryOrEmptyString)();return(0,s.jsx)(s.Fragment,{children:a.map(e=>{let a=`${t.assetPrefix}/_next/${(0,r.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,s.jsx)("link",{precedence:"dynamic",href:a,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,l.preload)(a,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return d}});let s=e.r(18050),l=e.r(71645),n=e.r(67585),r=e.r(52157);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},d=function(e){let t={...o,...e},a=(0,l.lazy)(()=>t.loader().then(i)),d=t.loading;function c(e){let i=d?(0,s.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?l.Suspense:l.Fragment,u=t.ssr?(0,s.jsxs)(s.Fragment,{children:["u"<typeof window?(0,s.jsx)(r.PreloadChunks,{moduleIds:t.modules}):null,(0,s.jsx)(a,{...e})]}):(0,s.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,s.jsx)(a,{...e})});return(0,s.jsx)(c,{...o?{fallback:i}:{},children:u})}return c.displayName="LoadableComponent",c}},70703,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return l}});let s=e.r(55682)._(e.r(69093));function l(e,t){let a={};"function"==typeof e&&(a.loader=e);let l={...a,...t};return(0,s.default)({...l,modules:l.loadableGenerated?.modules})}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},73466,e=>{"use strict";var t=e.i(18050),a=e.i(70703),s=e.i(18566),l=e.i(71645),n=e.i(31245),r=e.i(75254);let i=(0,r.default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var o=e.i(73264),d=e.i(91799);let c=(0,r.default)("move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]),u=(0,r.default)("pencil-ruler",[["path",{d:"M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13",key:"orapub"}],["path",{d:"m8 6 2-2",key:"115y1s"}],["path",{d:"m18 16 2-2",key:"ee94s4"}],["path",{d:"m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17",key:"cfq27r"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),x=(0,r.default)("rotate-3d",[["path",{d:"M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2",key:"10n0gc"}],["path",{d:"m15.194 13.707 3.814 1.86-1.86 3.814",key:"16shm9"}],["path",{d:"M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4",key:"1lxi77"}]]);var h=e.i(67240);let m=(0,r.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var p=e.i(97250),b=e.i(37727);let g=(0,r.default)("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);var f=e.i(64659);let w=(0,r.default)("eraser",[["path",{d:"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21",key:"g5wo59"}],["path",{d:"m5.082 11.09 8.828 8.828",key:"1wx5vj"}]]),v=(0,r.default)("messages-square",[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]),j=(0,r.default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),y=(0,r.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var k=e.i(5999);let N=["#7c5cff","#28d6a8","#ff9f43","#4ea8ff","#ff6b9d","#ffd166","#9b8cff","#5ad1c0"];function C(e){if(e.color)return e.color;let t=0;for(let a=0;a<e.id.length;a++)t=31*t+e.id.charCodeAt(a)>>>0;return N[t%N.length]}function M(e,t){switch(e){case"tool":return t?`running ${t}`:"started working";case"thinking":return t?`thinking — ${t}`:"is thinking";case"cron":return t?`cron job firing — ${t}`:"cron job firing";case"error":return"ran into an error";case"idle":return"finished — back to idle";case"offline":return"went offline";default:return`is ${e}`}}var z=e.i(18143);function S({state:e,theme:a}){let{events:s,clear:n}=function(e){let t=(0,l.useRef)(null),a=(0,l.useRef)(0),[s,n]=(0,l.useState)([]);return(0,l.useEffect)(()=>{if(!e||0===e.updatedAt)return;let s=t.current;if(t.current=e,!s)return;let l=function(e,t,a){let s=[],l=t.updatedAt||e.updatedAt||0,n=new Map(e.agents.map(e=>[e.id,e]));for(let e of t.agents){let t=n.get(e.id);if(!t)continue;let r=C(e),i={agentId:e.id,agentName:e.name,color:r},o=e.activity?.title,d=!!o&&o!==t.activity?.title,c=t.status!==e.status,u="tool"===e.status||"thinking"===e.status;d&&u?s.push({id:a(),ts:l,...i,tone:e.status,text:M(e.status,o)}):c&&s.push({id:a(),ts:l,...i,tone:e.status,text:M(e.status,o)});let x=new Set(t.subAgents.map(e=>e.id)),h=new Set(e.subAgents.map(e=>e.id));for(let t of e.subAgents)x.has(t.id)||s.push({id:a(),ts:l,...i,tone:"subagent",text:`spawned sub-agent “${t.label}”${t.task?` — ${t.task}`:""}`});for(let e of t.subAgents)h.has(e.id)||s.push({id:a(),ts:l,...i,tone:"subagent",text:`sub-agent “${e.label}” wrapped up`})}let r=new Map(e.tasks.map(e=>[e.id,e])),i=new Map(t.agents.map(e=>[e.id,e.name]));for(let e of t.tasks){let t=r.get(e.id);if(t&&t.status===e.status)continue;let n=e.agentId&&i.get(e.agentId)||"Team",o=e.agentId?C({id:e.agentId}):"#8a93a6",d={agentId:e.agentId??"",agentName:n,color:o},c="running"===e.status&&(!t||"queued"===t.status),u="completed"===e.status||"failed"===e.status||"cancelled"===e.status||"timed_out"===e.status;if(c)s.push({id:a(),ts:l,...d,tone:"task",text:`task started — ${e.label}`});else if(u&&t){let t="completed"!==e.status;s.push({id:a(),ts:l,...d,tone:t?"error":"task",text:`task ${e.status.replace("_"," ")} — ${e.label}`})}}return s}(s,e,()=>`ev-${a.current+=1}`);l.length&&n(e=>{let t=e.concat(l);return t.length>300?t.slice(t.length-300):t})},[e]),{events:s,clear:()=>n([])}}(e),[r,i]=(0,l.useState)(!0),[o,d]=(0,l.useState)(!1),c=(0,l.useRef)(null),u=(0,l.useRef)(!0),x=(0,z.getCribTheme)(a).legendOnLight;(0,l.useEffect)(()=>{let e=c.current;e&&r&&u.current&&(e.scrollTop=e.scrollHeight)},[s,r,o]);let h=x?"border-black/10 bg-white/80":"border-white/10 bg-[#0b0d14]/90",m=x?"text-[#5a6172]":"text-white/45",p=x?"text-[#2a313e]":"text-white/80",b=x?"text-[#9098a8]":"text-white/30",g=`rounded-md p-1 ${x?"text-[#5a6172] hover:bg-black/5 hover:text-[#1e2430]":"text-white/45 hover:bg-white/10 hover:text-white"}`,k=s[s.length-1];return r?(0,t.jsxs)("div",{className:`absolute bottom-4 right-4 z-20 flex w-[360px] flex-col rounded-2xl border backdrop-blur-md ${h}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)",maxHeight:o?"min(70dvh, 640px)":"320px"},children:[(0,t.jsxs)("div",{className:`flex items-center gap-2 border-b px-3 py-2.5 ${x?"border-black/10":"border-white/10"}`,children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2 shrink-0",children:[(0,t.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full bg-emerald-400 opacity-60",style:{animationDuration:"2s"}}),(0,t.jsx)("span",{className:"relative h-2 w-2 rounded-full bg-emerald-400"})]}),(0,t.jsxs)("span",{className:`flex items-center gap-1.5 text-[13px] font-semibold ${x?"text-[#1e2430]":"text-white"}`,children:[(0,t.jsx)(v,{size:14})," Activity"]}),(0,t.jsx)("span",{className:`text-[11px] tabular-nums ${m}`,children:s.length}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-0.5",children:[(0,t.jsx)("button",{onClick:n,className:g,title:"Clear log","aria-label":"Clear log",children:(0,t.jsx)(w,{size:14})}),(0,t.jsx)("button",{onClick:()=>d(e=>!e),className:g,title:o?"Shrink":"Expand full log","aria-label":o?"Shrink":"Expand",children:o?(0,t.jsx)(y,{size:14}):(0,t.jsx)(j,{size:14})}),(0,t.jsx)("button",{onClick:()=>i(!1),className:g,title:"Minimize","aria-label":"Minimize",children:(0,t.jsx)(f.ChevronDown,{size:15})})]})]}),(0,t.jsx)("div",{ref:c,onScroll:()=>{let e=c.current;e&&(u.current=e.scrollHeight-e.scrollTop-e.clientHeight<24)},className:"flex flex-1 flex-col gap-1.5 overflow-y-auto px-3 py-2.5",children:0===s.length?(0,t.jsx)("p",{className:`px-1 py-6 text-center text-[12px] leading-relaxed ${m}`,children:"Watching the floor — activity will stream here as your agents pick up work."}):s.map(e=>(0,t.jsx)(A,{e:e,rowText:p,timeText:b},e.id))})]}):(0,t.jsxs)("button",{onClick:()=>i(!0),className:`absolute bottom-4 right-4 z-20 flex max-w-[340px] items-center gap-2 rounded-full border px-3 py-2 backdrop-blur-md ${h}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"Open activity feed",children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2 shrink-0",children:[(0,t.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full bg-emerald-400 opacity-60",style:{animationDuration:"2s"}}),(0,t.jsx)("span",{className:"relative h-2 w-2 rounded-full bg-emerald-400"})]}),(0,t.jsx)(v,{size:14,className:m}),(0,t.jsx)("span",{className:`truncate text-[12px] ${p}`,children:k?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold",style:{color:k.color},children:k.agentName})," ",k.text]}):"Activity feed"}),s.length>0?(0,t.jsx)("span",{className:`shrink-0 text-[11px] tabular-nums ${b}`,children:s.length}):null]})}function A({e,rowText:a,timeText:s}){var l;return(0,t.jsxs)("div",{className:"flex items-start gap-2 text-[12px] leading-snug",children:[(0,t.jsx)("span",{className:"mt-[5px] h-1.5 w-1.5 shrink-0 rounded-full",style:{background:"subagent"===(l=e.tone)?"#9b8cff":"task"===l?"#4ea8ff":k.STATUS_META[l]?.color??"#8a93a6"}}),(0,t.jsxs)("span",{className:`min-w-0 flex-1 ${a}`,children:[(0,t.jsx)("span",{className:"font-semibold",style:{color:e.color},children:e.agentName})," ",e.text]}),(0,t.jsx)("span",{className:`shrink-0 pt-px text-[10px] tabular-nums ${s}`,children:function(e){if(!e)return"";let t=new Date(e),a=e=>String(e).padStart(2,"0");return`${a(t.getHours())}:${a(t.getMinutes())}:${a(t.getSeconds())}`}(e.ts)})]})}var $=e.i(21218),T=e.i(66992),E=e.i(63639),O=e.i(61911),R=e.i(40524);function P({state:e}){let a=e.agents.filter(e=>"tool"===e.status||"thinking"===e.status||"cron"===e.status).length,s=e.agents.reduce((e,t)=>e+t.subAgents.length,0),l=e.tasks.filter(e=>"running"===e.status).length,n=e.tasks.filter(e=>"queued"===e.status).length;return(0,t.jsxs)("div",{className:"pointer-events-none absolute left-4 top-4 z-10 flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"pointer-events-auto flex items-center gap-2.5 rounded-2xl border border-white/10 bg-black/40 px-3.5 py-2.5 backdrop-blur-md",children:[(0,t.jsx)(D,{connection:e.connection}),(0,t.jsxs)("div",{className:"leading-tight",children:[(0,t.jsx)("div",{className:"text-[13px] font-semibold tracking-tight text-white",children:"ClawCrib"}),(0,t.jsx)("div",{className:"text-[11px] text-white/45",children:"gateway"===e.source?`gateway \xb7 ${e.serverVersion??"?"}`:"simulated feed"})]})]}),(0,t.jsxs)("div",{className:"pointer-events-auto flex flex-col gap-1.5 rounded-2xl border border-white/10 bg-black/35 px-3.5 py-3 backdrop-blur-md",children:[(0,t.jsx)(L,{icon:(0,t.jsx)(O.Users,{size:14}),label:"Agents",value:`${e.agents.length}`}),(0,t.jsx)(L,{icon:(0,t.jsx)($.Activity,{size:14}),label:"Active",value:`${a}`,accent:a>0}),(0,t.jsx)(L,{icon:(0,t.jsx)(R.Workflow,{size:14}),label:"Sub-agents",value:`${s}`}),(0,t.jsx)(L,{icon:(0,t.jsx)(T.Cpu,{size:14}),label:"Tasks",value:`${l} run \xb7 ${n} queued`})]}),e.note?(0,t.jsx)("div",{className:"pointer-events-auto max-w-[260px] rounded-xl border border-amber-400/20 bg-amber-400/[0.06] px-3 py-2 text-[11px] leading-snug text-amber-200/80 backdrop-blur-md",children:e.note}):null,(0,t.jsx)("div",{className:"pointer-events-auto flex flex-wrap gap-x-3 gap-y-1 rounded-xl border border-white/10 bg-black/30 px-3 py-2 backdrop-blur-md",children:["tool","thinking","cron","idle","error"].map(e=>(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-[10.5px] text-white/55",children:[(0,t.jsx)("span",{className:"h-2 w-2 rounded-full",style:{background:k.STATUS_META[e].color}}),k.STATUS_META[e].label]},e))})]})}function L({icon:e,label:a,value:s,accent:l}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-6",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-[12px] text-white/45",children:[(0,t.jsx)("span",{className:"text-white/35",children:e}),a]}),(0,t.jsx)("span",{className:`text-[12px] font-medium tabular-nums ${l?"text-emerald-300":"text-white/85"}`,children:s})]})}function D({connection:e}){let{c:a,pulse:s}={live:{c:"#28d6a8",pulse:!0,label:"live"},mock:{c:"#7c5cff",pulse:!0,label:"mock"},connecting:{c:"#ffb547",pulse:!0,label:"connecting"},pairing:{c:"#ffb547",pulse:!0,label:"pairing"},error:{c:"#ff5d6c",pulse:!1,label:"error"}}[e];return(0,t.jsxs)("span",{className:"relative flex h-7 w-7 items-center justify-center",children:[(0,t.jsx)(E.Radio,{size:16,style:{color:a}}),s?(0,t.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full opacity-30",style:{background:a,animationDuration:"2.4s"}}):null]})}var _=e.i(71689),I=e.i(72520),B=e.i(43531),W=e.i(74886),F=e.i(48256),q=e.i(51338);let U=(0,r.default)("sun-moon",[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715",key:"xlf6rm"}],["path",{d:"M16 12a4 4 0 0 0-4-4",key:"6vsxu"}],["path",{d:"m19 5-1.256 1.256",key:"1yg6a6"}],["path",{d:"M20 12h2",key:"1q8mjw"}]]),H="clawcrib:onboarded";function G({command:e}){let[a,s]=(0,l.useState)(!1);return(0,t.jsxs)("button",{onClick:()=>{navigator.clipboard.writeText(e).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})},className:"group flex w-full items-center gap-2 rounded-lg border border-white/12 bg-black/50 px-3 py-2 text-left transition-colors hover:border-white/25","aria-label":`Copy: ${e}`,children:[(0,t.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap font-mono text-[11px] leading-relaxed text-white/80 [scrollbar-width:none]",children:e}),a?(0,t.jsx)(B.Check,{size:13,className:"shrink-0 text-[#4CAF50]"}):(0,t.jsx)(W.Copy,{size:13,className:"shrink-0 text-white/35 transition-colors group-hover:text-white/70"})]})}function X({icon:e,title:a,body:s}){return(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-white/10 bg-white/[0.06] text-white/75",children:e}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"text-[12.5px] font-semibold text-white",children:a}),(0,t.jsx)("div",{className:"text-[11.5px] leading-relaxed text-white/55",children:s})]})]})}function V({state:e,onClose:a}){let[s,r]=(0,l.useState)(0),i="gateway"===e.source&&"live"===e.connection,d=()=>{try{window.localStorage.setItem(H,"1")}catch{}a()};(0,l.useEffect)(()=>{let e=e=>{"Escape"===e.key&&d(),"ArrowRight"===e.key&&s<2&&r(s+1),"ArrowLeft"===e.key&&s>0&&r(s-1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[s]);let h=[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,t.jsx)("img",{src:"/logo-bracket-claw.svg",alt:"",className:"h-7 w-auto"}),(0,t.jsxs)("h2",{className:"text-lg font-bold text-white",children:["Welcome to your ",(0,t.jsx)("span",{className:"text-[#E63946]",children:"crib"})]})]}),(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-white/65",children:"This is a live 3D office for your OpenClaw agents. Every desk, walk, and workboard card is driven by real agent activity — nothing here is decorative."}),(0,t.jsx)("div",{className:"mt-4 rounded-xl border border-white/10 bg-white/[0.04] p-3",children:i?(0,t.jsxs)("p",{className:"flex items-start gap-2 text-[12px] leading-relaxed text-white/70",children:[(0,t.jsx)(E.Radio,{size:14,className:"mt-0.5 shrink-0 text-[#4CAF50]"}),"You're connected to your gateway — the agents on the floor are your real team, live."]}):(0,t.jsxs)("p",{className:"flex items-start gap-2 text-[12px] leading-relaxed text-white/70",children:[(0,t.jsx)(E.Radio,{size:14,className:"mt-0.5 shrink-0 text-[#39e6e0]"}),"Right now you're watching a simulated team, so you can explore freely. The next step connects your real agents."]})})]},"welcome"),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"mb-1 text-lg font-bold text-white",children:"Connect your OpenClaw gateway"}),i?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-white/65",children:"Already done — this crib is streaming live from your gateway. For reference, here's how to point ClawCrib at a gateway from any machine:"})}):(0,t.jsxs)("p",{className:"text-[13px] leading-relaxed text-white/65",children:["Your gateway speaks WebSocket on port ",(0,t.jsx)("code",{className:"font-mono text-white/80",children:"18789"})," by default. Pass it to ClawCrib when you launch:"]}),(0,t.jsxs)("div",{className:"mt-3 flex flex-col gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-white/45",children:[(0,t.jsx)(q.MonitorSmartphone,{size:12})," Same machine"]}),(0,t.jsx)(G,{command:"npx clawcrib --gateway ws://127.0.0.1:18789 --token <your-token>"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-white/45",children:[(0,t.jsx)(F.Globe,{size:12})," Over Tailscale"]}),(0,t.jsx)(G,{command:"npx clawcrib --gateway ws://<machine>.<tailnet>.ts.net:18789 --token <your-token>"}),(0,t.jsxs)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-white/45",children:["Works from any device on your tailnet. The first connect from a new machine may need a one-time approval on the gateway host: ",(0,t.jsx)("code",{className:"font-mono",children:"openclaw devices approve <requestId>"}),"."]})]}),(0,t.jsxs)("p",{className:"text-[11px] leading-relaxed text-white/45",children:["Use the token your gateway is configured with. ",(0,t.jsx)("code",{className:"font-mono",children:"OPENCLAW_GATEWAY_URL"})," and"," ",(0,t.jsx)("code",{className:"font-mono",children:"OPENCLAW_GATEWAY_TOKEN"})," environment variables work too."]})]})]},"connect"),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"mb-1 text-lg font-bold text-white",children:"Find your way around"}),(0,t.jsxs)("div",{className:"mt-3 flex flex-col gap-3",children:[(0,t.jsx)(X,{icon:(0,t.jsx)(x,{size:14}),title:"Plan / 3D toggle",body:"Top right. Plan is the blueprint view for laying out the floor; 3D is the live office. Drag orbits, scroll zooms, right-drag pans."}),(0,t.jsx)(X,{icon:(0,t.jsx)(u,{size:14}),title:"Build (Plan view)",body:"Add rooms and place them: Custom pins an exact spot and size, Auto packs the east wall. Drag left/right on any number field to scrub it. Lock the building size under Building."}),(0,t.jsx)(X,{icon:(0,t.jsx)(o.LayoutGrid,{size:14}),title:"Organize",body:"Buildings (profiles), departments, and which agents sit in which room. Room colors become department colors on the floor."}),(0,t.jsx)(X,{icon:(0,t.jsx)(U,{size:14}),title:"Theme",body:"One switch flips Plan and 3D between night and day."}),(0,t.jsx)(X,{icon:(0,t.jsx)(n.Bot,{size:14}),title:"Robot style",body:"3D view only — recolor your bots' body, visor, and eyes."}),(0,t.jsx)(X,{icon:(0,t.jsx)(c,{size:14}),title:"Activity feed",body:"Bottom right — a running narration of every tool call, task, and cron across the team."})]})]},"ui")];return(0,t.jsx)("div",{className:"absolute inset-0 z-40 flex items-center justify-center bg-black/55 p-4 backdrop-blur-[3px]",role:"dialog","aria-modal":"true","aria-label":"ClawCrib tour",onClick:d,children:(0,t.jsxs)("div",{className:"w-full max-w-md rounded-2xl border border-white/12 bg-[#0c0e16]/95 p-5 shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"mb-3 flex items-start justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-1.5",children:[0,1,2].map(e=>(0,t.jsx)("button",{onClick:()=>r(e),className:`h-1.5 rounded-full transition-all ${e===s?"w-6 bg-[#E63946]":"w-1.5 bg-white/20 hover:bg-white/40"}`,"aria-label":`Step ${e+1}`},e))}),(0,t.jsx)("button",{onClick:d,className:"rounded-full p-1 text-white/45 transition-colors hover:text-white","aria-label":"Close tour",children:(0,t.jsx)(b.X,{size:15})})]}),h[s],(0,t.jsxs)("div",{className:"mt-5 flex items-center justify-between",children:[s>0?(0,t.jsxs)("button",{onClick:()=>r(s-1),className:"inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[12px] font-medium text-white/55 transition-colors hover:text-white",children:[(0,t.jsx)(_.ArrowLeft,{size:13})," Back"]}):(0,t.jsx)("button",{onClick:d,className:"rounded-lg px-2.5 py-1.5 text-[12px] font-medium text-white/40 transition-colors hover:text-white",children:"Skip tour"}),s<h.length-1?(0,t.jsxs)("button",{onClick:()=>r(s+1),className:"inline-flex items-center gap-1.5 rounded-lg bg-[#E63946] px-4 py-1.5 text-[12px] font-semibold text-white transition-colors hover:bg-[#C1121F]",children:["Next ",(0,t.jsx)(I.ArrowRight,{size:13})]}):(0,t.jsx)("button",{onClick:d,className:"inline-flex items-center gap-1.5 rounded-lg bg-[#E63946] px-4 py-1.5 text-[12px] font-semibold text-white transition-colors hover:bg-[#C1121F]",children:"Open the crib"})]})]})})}var Y=e.i(7486);let K=(0,r.default)("door-open",[["path",{d:"M11 20H2",key:"nlcfvz"}],["path",{d:"M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z",key:"au4z13"}],["path",{d:"M11 4H8a2 2 0 0 0-2 2v14",key:"74r1mk"}],["path",{d:"M14 12h.01",key:"1jfl7z"}],["path",{d:"M22 20h-3",key:"vhrsz"}]]);var J=e.i(7233),Q=e.i(27612),Z=e.i(84397),ee=e.i(52496);let et=["N","S","W","E"],ea=e=>Math.round(2*e)/2;function es({state:e,config:a,update:s,onClose:n}){let r=[...a.rooms].sort((e,t)=>e.order-t.order),i=(e,t)=>s(a=>({...a,rooms:a.rooms.map(a=>a.id===e?{...a,...t}:a)})),o=(e,t,a)=>s(s=>({...s,rooms:s.rooms.map(l=>{if(l.id!==e)return l;let n={...l.rect??(0,ee.defaultRoomRect)(s.rooms.indexOf(l)),[t]:ea(a)};return("w"===t||"d"===t)&&(n[t]=Math.max(2.5,n[t])),{...l,rect:n}})})),d=(0,l.useMemo)(()=>{let t=(0,Z.computeFloorPlan)(e.agents,{...a,building:void 0});return{w:t.W,d:t.D}},[e.agents,a]),c=(e,t)=>s(a=>{let s=a.building??d;return{...a,building:{...s,[e]:Math.max(10,ea(t))}}});return(0,t.jsxs)("div",{className:"absolute right-4 top-16 z-30 flex max-h-[calc(100dvh-6rem)] w-[360px] flex-col rounded-2xl border border-white/12 bg-[#0c0e16]/95 shadow-2xl backdrop-blur-md",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-4 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-sm font-semibold text-white",children:[(0,t.jsx)(u,{size:14})," Floor-plan builder"]}),(0,t.jsx)("div",{className:"text-[11px] text-white/45",children:"Place + size rooms — the plan updates live"})]}),(0,t.jsx)("button",{onClick:n,className:"rounded-md p-1 text-white/55 hover:bg-white/10 hover:text-white","aria-label":"Close",children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-[11px] font-medium uppercase tracking-wide text-white/40",children:[(0,t.jsx)(Y.Building2,{size:12})," Building"]}),(0,t.jsxs)("div",{className:"mb-4 rounded-xl border border-white/10 bg-white/[0.03] px-2.5 py-2",children:[(0,t.jsx)(el,{custom:!!a.building,onSelect:e=>s(t=>{if(!e){let e={...t};return delete e.building,e}return{...t,building:t.building??{w:ea(d.w),d:ea(d.d)}}}),customLabel:"Custom",autoLabel:"Auto"}),a.building?(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-x-3 gap-y-1.5",children:[(0,t.jsx)(er,{label:"Width",value:a.building.w,step:.5,min:10,onChange:e=>c("w",e)}),(0,t.jsx)(er,{label:"Depth",value:a.building.d,step:.5,min:10,onChange:e=>c("d",e)})]}):(0,t.jsxs)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-white/40",children:["Sized to fit contents — currently ",Math.round(10*d.w)/10," × ",Math.round(10*d.d)/10," m. Switch to Custom to lock the floor size."]}),a.building?(0,t.jsx)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-white/35",children:"The floor keeps this size; it only grows if rooms need more space."}):null]}),(0,t.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Rooms"}),(0,t.jsxs)("button",{onClick:()=>s(e=>{let t=ee.ROOM_PALETTE[e.rooms.length%ee.ROOM_PALETTE.length];return{...e,rooms:[...e.rooms,{id:(0,ee.newRoomId)(),name:`Office ${e.rooms.length+1}`,color:t,order:e.rooms.length,rect:(0,ee.defaultRoomRect)(e.rooms.length),doorSide:"S"}]}}),className:"flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[12px] font-medium text-[#7c5cff] hover:bg-white/5",children:[(0,t.jsx)(J.Plus,{size:13})," Add office"]})]}),0===r.length?(0,t.jsx)("p",{className:"rounded-lg border border-dashed border-white/12 px-3 py-2.5 text-[12px] leading-relaxed text-white/45",children:"No rooms yet. Add an office, then drag its size + position with the controls. Assign agents to rooms in “Organize”."}):(0,t.jsx)("div",{className:"flex flex-col gap-2.5",children:r.map(e=>{let l=!!e.rect,n=Object.values(a.assignments).filter(t=>t===e.id).length,d=e.rect??(0,ee.defaultRoomRect)(r.indexOf(e));return(0,t.jsxs)("div",{className:"rounded-xl border border-white/10 bg-white/[0.03] px-2.5 py-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"relative h-5 w-5 shrink-0 cursor-pointer rounded-full",style:{background:e.color},children:(0,t.jsx)("input",{type:"color",value:e.color,onChange:t=>i(e.id,{color:t.target.value}),className:"absolute inset-0 cursor-pointer opacity-0","aria-label":`${e.name} color`})}),(0,t.jsx)("input",{value:e.name,onChange:t=>i(e.id,{name:t.target.value}),className:"min-w-0 flex-1 bg-transparent text-sm text-white outline-none"}),(0,t.jsx)("span",{className:"shrink-0 text-[11px] tabular-nums text-white/35",title:"agents assigned",children:n}),(0,t.jsx)("button",{onClick:()=>{let t;return t=e.id,s(e=>{let a={...e.assignments};for(let e of Object.keys(a))a[e]===t&&delete a[e];return{...e,rooms:e.rooms.filter(e=>e.id!==t),assignments:a}})},className:"shrink-0 rounded p-1 text-white/40 hover:bg-white/10 hover:text-[#ff6b9d]","aria-label":`Delete ${e.name}`,children:(0,t.jsx)(Q.Trash2,{size:13})})]}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(el,{custom:l,onSelect:t=>{let a;return a=e.id,s(e=>({...e,rooms:e.rooms.map(s=>{if(s.id!==a)return s;if(t)return{...s,rect:s.rect??(0,ee.defaultRoomRect)(e.rooms.indexOf(s)),doorSide:s.doorSide??"S"};let l={...s};return delete l.rect,delete l.doorSide,l})}))},customLabel:"Custom",autoLabel:"Auto (east wall)"})}),l?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-x-3 gap-y-1.5",children:[(0,t.jsx)(er,{label:"X",value:d.x,step:.5,onChange:t=>o(e.id,"x",t)}),(0,t.jsx)(er,{label:"Z",value:d.z,step:.5,onChange:t=>o(e.id,"z",t)}),(0,t.jsx)(er,{label:"Width",value:d.w,step:.5,min:2.5,onChange:t=>o(e.id,"w",t)}),(0,t.jsx)(er,{label:"Depth",value:d.d,step:.5,min:2.5,onChange:t=>o(e.id,"d",t)})]}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-1.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-white/40",children:[(0,t.jsx)(K,{size:12})," Door"]}),(0,t.jsx)("div",{className:"flex gap-1",children:et.map(a=>(0,t.jsx)("button",{onClick:()=>i(e.id,{doorSide:a}),className:`h-6 w-6 rounded-md border text-[11px] font-semibold transition-colors ${(e.doorSide??"S")===a?"border-[#7c5cff]/60 bg-[#7c5cff]/20 text-white":"border-white/12 text-white/50 hover:text-white"}`,title:`Door on ${a} wall`,children:a},a))})]})]}):null]},e.id)})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-t border-white/10 px-4 py-2.5",children:[(0,t.jsxs)("span",{className:"text-[11px] text-white/35",children:[e.agents.length," agents · units in meters"]}),(0,t.jsx)("span",{className:"text-[11px] text-white/30",children:"Saved automatically"})]})]})}function el({custom:e,onSelect:a,customLabel:s,autoLabel:l}){let n=e=>`rounded-full border px-2.5 py-1 text-[11px] font-medium transition-colors ${e?"border-[#7c5cff]/60 bg-[#7c5cff]/20 text-white":"border-white/12 text-white/50 hover:text-white"}`;return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",role:"radiogroup",children:[(0,t.jsx)("button",{onClick:()=>a(!0),className:n(e),role:"radio","aria-checked":e,children:s}),(0,t.jsx)("button",{onClick:()=>a(!1),className:n(!e),role:"radio","aria-checked":!e,children:l})]})}let en=e=>String(Math.round(100*e)/100);function er({label:e,value:a,onChange:s,step:n=1,min:r}){let[i,o]=(0,l.useState)(null),d=(0,l.useRef)(null),c=e=>null!=r?Math.max(r,e):e;return(0,t.jsxs)("label",{className:"flex select-none items-center justify-between gap-2 text-[11px] text-white/45",style:{cursor:"ew-resize",touchAction:"none"},onPointerDown:e=>{0===e.button&&(d.current={x:e.clientX,v:a,scrubbing:!1})},onPointerMove:e=>{let t=d.current;if(!t)return;let a=e.clientX-t.x;if(!t.scrubbing){if(3>Math.abs(a))return;t.scrubbing=!0,o(null),e.currentTarget.setPointerCapture(e.pointerId),document.activeElement?.blur?.()}s(c(Math.round((t.v+a/4*n)/n)*n)),e.preventDefault()},onPointerUp:()=>{d.current=null},onPointerCancel:()=>{d.current=null},children:[(0,t.jsx)("span",{className:"w-10 shrink-0 uppercase tracking-wide",children:e}),(0,t.jsx)("input",{type:"number",value:i??en(Number.isFinite(a)?a:0),step:n,min:r,onFocus:()=>o(en(a)),onBlur:()=>o(null),onChange:e=>{o(e.target.value);let t=parseFloat(e.target.value);Number.isFinite(t)&&s(c(t))},className:"min-w-0 flex-1 cursor-text rounded-md border border-white/12 bg-[#11131c] px-2 py-1 text-right text-[12px] tabular-nums text-white outline-none focus:border-white/30"})]})}function ei({state:e,config:a,update:s,profiles:l,activeId:n,selectProfile:r,createProfile:i,deleteProfile:o,canAddProfile:d,onClose:c}){let u=[...e.agents].sort((e,t)=>e.id.localeCompare(t.id));return(0,t.jsxs)("div",{className:"absolute right-4 top-16 z-30 flex max-h-[calc(100dvh-6rem)] w-[340px] flex-col rounded-2xl border border-white/12 bg-[#0c0e16]/95 shadow-2xl backdrop-blur-md",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-4 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-white",children:"Organize building"}),(0,t.jsx)("div",{className:"text-[11px] text-white/45",children:"Group agents into rooms — views update live"})]}),(0,t.jsx)("button",{onClick:c,className:"rounded-md p-1 text-white/55 hover:bg-white/10 hover:text-white","aria-label":"Close",children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] font-medium uppercase tracking-wide text-white/40",children:[(0,t.jsx)(Y.Building2,{size:12})," Saved buildings"]}),(0,t.jsxs)("button",{onClick:i,disabled:!d,className:"flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[12px] font-medium text-[#7c5cff] enabled:hover:bg-white/5 disabled:cursor-not-allowed disabled:text-white/25",title:d?"New building":"Profile limit reached",children:[(0,t.jsx)(J.Plus,{size:13})," New"]})]}),(0,t.jsxs)("div",{className:"mb-4 flex items-center gap-2",children:[(0,t.jsx)("select",{value:n??"",onChange:e=>r(e.target.value),className:"min-w-0 flex-1 rounded-lg border border-white/12 bg-[#11131c] px-2.5 py-1.5 text-sm text-white outline-none focus:border-white/30",children:l.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))}),(0,t.jsx)("button",{onClick:()=>n&&o(n),disabled:l.length<=1,className:"shrink-0 rounded-lg border border-white/10 p-2 text-white/45 enabled:hover:bg-white/10 enabled:hover:text-[#ff6b9d] disabled:cursor-not-allowed disabled:opacity-40",title:l.length<=1?"Keep at least one building":"Delete this building","aria-label":"Delete building",children:(0,t.jsx)(Q.Trash2,{size:14})})]}),(0,t.jsx)("label",{className:"mb-1 block text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Building name"}),(0,t.jsx)("input",{value:a.buildingName,onChange:e=>s(t=>({...t,buildingName:e.target.value})),className:"mb-4 w-full rounded-lg border border-white/12 bg-white/[0.04] px-2.5 py-1.5 text-sm text-white outline-none focus:border-white/30"}),(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Rooms"}),(0,t.jsxs)("button",{onClick:()=>s(e=>{let t=ee.ROOM_PALETTE[e.rooms.length%ee.ROOM_PALETTE.length];return{...e,rooms:[...e.rooms,{id:(0,ee.newRoomId)(),name:`Room ${e.rooms.length+1}`,color:t,order:e.rooms.length}]}}),className:"flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[12px] font-medium text-[#7c5cff] hover:bg-white/5",children:[(0,t.jsx)(J.Plus,{size:13})," Add"]})]}),0===a.rooms.length?(0,t.jsx)("p",{className:"mb-4 rounded-lg border border-dashed border-white/12 px-3 py-2.5 text-[12px] leading-relaxed text-white/45",children:"No rooms yet — everyone shares the open floor. Add a room, then assign agents below."}):(0,t.jsx)("div",{className:"mb-4 flex flex-col gap-1.5",children:[...a.rooms].sort((e,t)=>e.order-t.order).map(e=>{let l=Object.values(a.assignments).filter(t=>t===e.id).length;return(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-white/10 bg-white/[0.03] px-2 py-1.5",children:[(0,t.jsx)("label",{className:"relative h-5 w-5 shrink-0 cursor-pointer rounded-full",style:{background:e.color},children:(0,t.jsx)("input",{type:"color",value:e.color,onChange:t=>{let a,l;return a=e.id,l=t.target.value,s(e=>({...e,rooms:e.rooms.map(e=>e.id===a?{...e,color:l}:e)}))},className:"absolute inset-0 cursor-pointer opacity-0","aria-label":`${e.name} color`})}),(0,t.jsx)("input",{value:e.name,onChange:t=>{let a,l;return a=e.id,l=t.target.value,s(e=>({...e,rooms:e.rooms.map(e=>e.id===a?{...e,name:l}:e)}))},className:"min-w-0 flex-1 bg-transparent text-sm text-white outline-none"}),(0,t.jsx)("span",{className:"shrink-0 text-[11px] tabular-nums text-white/35",children:l}),(0,t.jsx)("button",{onClick:()=>{let t;return t=e.id,s(e=>{let a={...e.assignments};for(let e of Object.keys(a))a[e]===t&&delete a[e];return{...e,rooms:e.rooms.filter(e=>e.id!==t),assignments:a}})},className:"shrink-0 rounded p-1 text-white/40 hover:bg-white/10 hover:text-[#ff6b9d]","aria-label":`Delete ${e.name}`,children:(0,t.jsx)(Q.Trash2,{size:13})})]},e.id)})}),(0,t.jsx)("div",{className:"mb-1 text-[11px] font-medium uppercase tracking-wide text-white/40",children:"Agents"}),(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[u.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg px-1 py-1",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm text-white/85",title:e.id,children:e.name}),(0,t.jsxs)("select",{value:a.assignments[e.id]??"",onChange:t=>{let a,l;return a=e.id,l=t.target.value,s(e=>{let t={...e.assignments};return l?t[a]=l:delete t[a],{...e,assignments:t}})},className:"shrink-0 rounded-md border border-white/12 bg-[#11131c] px-2 py-1 text-[12px] text-white outline-none focus:border-white/30",children:[(0,t.jsx)("option",{value:"",children:"Open floor"}),[...a.rooms].sort((e,t)=>e.order-t.order).map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]})]},e.id)),0===u.length?(0,t.jsx)("p",{className:"px-1 py-2 text-[12px] text-white/40",children:"Waiting for the gateway roster…"}):null]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-t border-white/10 px-4 py-2.5",children:[(0,t.jsxs)("button",{onClick:()=>s(e=>({version:1,buildingName:e.buildingName,rooms:[],assignments:{}})),className:"flex items-center gap-1.5 text-[12px] text-white/45 hover:text-white/80",children:[(0,t.jsx)(h.RotateCcw,{size:13})," Reset to open floor"]}),(0,t.jsx)("span",{className:"text-[11px] text-white/30",children:"Saved automatically"})]})]})}var eo=e.i(72664);let ed=(0,r.default)("drafting-compass",[["path",{d:"m12.99 6.74 1.93 3.44",key:"iwagvd"}],["path",{d:"M19.136 12a10 10 0 0 1-14.271 0",key:"ppmlo4"}],["path",{d:"m21 21-2.16-3.84",key:"vylbct"}],["path",{d:"m3 21 8.02-14.26",key:"1ssaw4"}],["circle",{cx:"12",cy:"5",r:"2",key:"f1ur92"}]]),ec=["plan","3d"];function eu({value:e,onChange:a}){let s=ec.indexOf(e);return(0,t.jsxs)("div",{role:"tablist","aria-label":"View mode",className:"relative flex select-none items-center gap-1 rounded-full border border-white/10 bg-black/40 p-1 backdrop-blur-md",style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute top-1 bottom-1 rounded-full bg-white/10 transition-transform duration-300 ease-out",style:{width:"calc(50% - 4px)",left:4,transform:`translateX(${100*s}%)`,background:"linear-gradient(180deg, rgba(124,92,255,0.35), rgba(40,214,168,0.22))",border:"1px solid rgba(255,255,255,0.14)"}}),(0,t.jsx)(ex,{active:"plan"===e,onClick:()=>a("plan"),icon:(0,t.jsx)(ed,{size:15,strokeWidth:2.2}),label:"Plan"}),(0,t.jsx)(ex,{active:"3d"===e,onClick:()=>a("3d"),icon:(0,t.jsx)(eo.Box,{size:15,strokeWidth:2.2}),label:"3D"})]})}function ex({active:e,onClick:a,icon:s,label:l}){return(0,t.jsxs)("button",{role:"tab","aria-selected":e,onClick:a,className:"relative z-10 flex w-[64px] items-center justify-center gap-1.5 rounded-full px-3 py-1.5 text-[13px] font-medium transition-colors",style:{color:e?"#fff":"rgba(255,255,255,0.5)"},children:[s,l]})}var eh=e.i(1605);let em=[{id:"atlas",name:"Atlas",role:"Orchestrator",model:"claude-opus-4-8",color:"#7c5cff",cronEveryMs:47e3,cronCount:3},{id:"sage",name:"Sage",role:"Docs & memory",model:"claude-sonnet-4-6",color:"#ffb547",cronEveryMs:73e3,cronCount:1},{id:"forge",name:"Forge",role:"Build & deploy",model:"claude-opus-4-8",color:"#ff7a59",cronEveryMs:53e3,cronCount:2},{id:"bolt",name:"Bolt",role:"CI & test runs",model:"claude-haiku-4-5",color:"#ffd166",cronEveryMs:29e3,cronCount:5},{id:"patch",name:"Patch",role:"Bug triage",model:"claude-sonnet-4-6",color:"#8ce99a",cronEveryMs:61e3,cronCount:2},{id:"vera",name:"Vera",role:"QA & verification",model:"claude-sonnet-4-6",color:"#63e6be",cronEveryMs:41e3,cronCount:3},{id:"nova",name:"Nova",role:"Research & web",model:"claude-sonnet-4-6",color:"#28d6a8",cronEveryMs:31e3,cronCount:2},{id:"scout",name:"Scout",role:"Crawl & index",model:"claude-haiku-4-5",color:"#4dd4ac",cronEveryMs:17e3,cronCount:6},{id:"pixel",name:"Pixel",role:"Design & assets",model:"claude-sonnet-4-6",color:"#ff5d9e",cronEveryMs:89e3,cronCount:1},{id:"muse",name:"Muse",role:"Copy & content",model:"claude-sonnet-4-6",color:"#e599f7",cronEveryMs:67e3,cronCount:1},{id:"echo",name:"Echo",role:"Comms / channels",model:"claude-haiku-4-5",color:"#4ea1ff",cronEveryMs:19e3,cronCount:4},{id:"warden",name:"Warden",role:"Security watch",model:"claude-sonnet-4-6",color:"#46d3ff",cronEveryMs:23e3,cronCount:3},{id:"ledger",name:"Ledger",role:"Metrics & cost",model:"claude-haiku-4-5",color:"#a5d8ff",cronEveryMs:37e3,cronCount:4}],ep=[{title:"bash: pytest -q",kind:"command"},{title:"web.search",kind:"search"},{title:"fs.read AGENTS.md",kind:"tool"},{title:"git.commit",kind:"command"},{title:"http.fetch docs",kind:"tool"},{title:"fs.patch route.ts",kind:"patch"},{title:"analysis: diff review",kind:"analysis"},{title:"bash: npm run build",kind:"command"},{title:"memory.write daily",kind:"tool"},{title:"channel.send Slack",kind:"tool"}],eb=["summarize PR #214","scrape changelog","lint workspace","draft release notes","verify cron output","index new docs"],eg=[["Read context","Run tests","Patch failure","Re-run"],["Fetch sources","Rank by relevance","Summarize"],["Pull diff","Review","Comment","Approve"]];function ef(e){return e[Math.floor(Math.random()*e.length)]}function ew(e,t,a){let s=e.map(e=>({id:e.id,name:e.name,role:e.role,model:e.model,color:e.color,status:e.status,activity:e.activity,plan:e.plan,subAgents:e.subAgents,tasks:{queued:e.queued,running:e.running},cron:{count:e.cronCount,nextRunAtMs:e.cronNextAt,running:"cron"===e.status},lastActiveMs:e.lastActiveMs,isDefault:"atlas"===e.id,totalTokens:e.totalTokens})),l=e.flatMap(e=>Array.from({length:e.cronCount},(t,a)=>({id:`${e.id}-cron-${a}`,name:0===a?"heartbeat":`job-${a}`,agentId:e.id,enabled:!0,nextRunAtMs:e.cronNextAt+5e3*a,runningAtMs:"cron"===e.status&&0===a?Date.now():void 0,lastRunStatus:"ok"}))),n=e.flatMap(e=>{let t=[];for(let a=0;a<e.running;a++)t.push({id:`${e.id}-run-${a}`,agentId:e.id,label:e.activity?.title??"running",status:"running",startedAt:e.lastActiveMs});for(let a=0;a<e.queued;a++)t.push({id:`${e.id}-q-${a}`,agentId:e.id,label:"queued task",status:"queued"});return t});return n.push(...t),{agents:s,crons:l,tasks:n,connection:"mock",source:"mock",serverVersion:"mock",note:a,updatedAt:Date.now()}}let ev=(0,a.default)(()=>e.A(76549),{loadableGenerated:{modules:[15697]},ssr:!1}),ej=(0,a.default)(()=>e.A(89517),{loadableGenerated:{modules:[52149]},ssr:!1}),ey={plan:"ClawCrib · building plan","3d":"ClawCrib · live agent building"};function ek(){let e="/demo"===(0,s.usePathname)(),a=function(){let[e,t]=(0,l.useState)(k.emptyTeamState);return(0,l.useEffect)(()=>{let e=null,a=null,s=!1,l=()=>{a?.stop(),a=null},n=e=>{a||(a=function(e,t={}){let a=Date.now(),s=em.map((e,t)=>({...e,status:t%3==0?"tool":"idle",cronNextAt:a+4e3+Math.floor(Math.random()*e.cronEveryMs),subAgents:[],queued:Math.floor(3*Math.random()),running:+(t%3==0),lastActiveMs:a,totalTokens:1e3+Math.floor(9e4*Math.random())})),l=t.tickMs??1100,n=null,r=[];function i(e){r.push(e),r.length>8&&r.shift()}return e(ew(s,r,t.note)),n=setInterval(function(){let a=Date.now();for(let e of s){if(a>=e.cronNextAt){e.status="cron",e.cronNextAt=a+e.cronEveryMs,e.lastActiveMs=a,e.activity={title:"cron: heartbeat",kind:"command",since:a,status:"running"};continue}let t=Math.random();switch(e.status){case"idle":t<.28?(e.status="thinking",e.plan=ef(eg),e.lastActiveMs=a):t<.33&&(e.status="tool",e.activity={...ef(ep),since:a,status:"running"},e.running=Math.max(1,e.running),e.lastActiveMs=a);break;case"thinking":t<.55?(e.status="tool",e.activity={...ef(ep),since:a,status:"running"},e.running=Math.max(1,e.running)):t<.7&&(e.status="idle",e.plan=void 0),e.lastActiveMs=a,e.totalTokens+=200+Math.floor(600*Math.random());break;case"tool":e.totalTokens+=150+Math.floor(900*Math.random()),e.lastActiveMs=a,t<.18?e.subAgents.length<1&&(e.subAgents.push({id:`${e.id}-sub-${Math.floor(1e5*Math.random())}`,agentId:e.id,parentId:e.id,label:ef(eb),task:ef(eb),status:"tool",startedAt:a}),e.running+=1):t<.42?(e.status="thinking",e.activity=void 0):t<.5?(i({id:`${e.id}-done-${a}`,agentId:e.id,label:e.activity?.title??"task",status:"completed",startedAt:a}),e.status="idle",e.activity=void 0,e.plan=void 0,e.running=Math.max(0,e.running-1),e.queued=Math.max(0,e.queued-(.5>Math.random()))):t<.53&&(i({id:`${e.id}-fail-${a}`,agentId:e.id,label:e.activity?.title??"task",status:"failed",startedAt:a}),e.status="error",e.activity={title:"tool failed",kind:"tool",since:a,status:"failed"});break;case"cron":t<.6&&(e.status="idle",e.activity=void 0);break;case"error":t<.5&&(e.status="thinking",e.activity=void 0);break;default:e.status="idle"}e.subAgents.length&&.22>Math.random()&&(e.subAgents.shift(),e.running=Math.max(0,e.running-1)),.15>Math.random()&&(e.queued=Math.min(6,e.queued+1))}e(ew(s,r,t.note))},l),{stop:()=>{n&&clearInterval(n),n=null}}}(a=>t({...a,note:e}),{note:e}))};try{(e=new EventSource("/api/crib/stream")).onmessage=e=>{s=!0,l();try{t(JSON.parse(e.data))}catch{}},e.onerror=()=>{s||n("Live stream unavailable — local simulation")}}catch{n("Live stream unavailable — local simulation")}let r=setTimeout(()=>{s||n("Connecting…")},4e3);return()=>{clearTimeout(r),e?.close(),l()}},[]),e}(),{config:r,update:m,profiles:b,activeId:f,selectProfile:w,createProfile:v,deleteProfile:j,canAddProfile:y}=(0,ee.useProfiles)(),[N,C]=(0,l.useState)("3d"),[M,A]=(0,l.useState)("dark"),[$,T]=(0,l.useState)(eh.DEFAULT_BOT_STYLE),[E,O]=(0,l.useState)(!1),[R,L]=(0,l.useState)(!1),[D,_]=(0,l.useState)(!1),[I,B]=(0,l.useState)(!1),W=(0,z.getCribTheme)(M),F=!(0,ee.hasRooms)(r)&&"gateway"!==a.source,q=(0,l.useMemo)(()=>F?(0,ee.demoRoomsConfig)():r,[F,r]);(0,l.useEffect)(()=>{let t=requestAnimationFrame(()=>{let t=window.localStorage.getItem("clawcrib:view");"plan"===t||"3d"===t?C(t):"2d"===t&&C("3d");let a=window.localStorage.getItem("clawcrib:theme");("light"===a||"dark"===a)&&A(a),T((0,eh.loadBotStyle)(window.localStorage.getItem("clawcrib:botstyle"))),!e&&function(){try{return!window.localStorage.getItem(H)}catch{return!1}}()&&B(!0)});return()=>cancelAnimationFrame(t)},[e]);let U=e=>{T(t=>{let a={...t,...e};return window.localStorage.setItem("clawcrib:botstyle",JSON.stringify(a)),a})};return(0,t.jsxs)("div",{className:"relative h-[100dvh] w-full overflow-hidden",style:{background:W.pageBg},children:[(0,t.jsx)("div",{className:"absolute inset-0",children:"plan"===N?(0,t.jsx)(ev,{state:a,config:q,theme:M}):(0,t.jsx)(ej,{state:a,config:q,theme:M,botStyle:$})}),(0,t.jsx)(P,{state:a}),(0,t.jsxs)("div",{className:"absolute right-4 top-4 z-20 flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:()=>B(!0),className:"flex items-center gap-1.5 rounded-full border border-white/10 bg-black/40 px-2.5 py-1.5 text-[13px] font-medium text-white/70 backdrop-blur-md transition-colors hover:text-white",style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"Open the tour",title:"Tour & setup",children:(0,t.jsx)(i,{size:15,strokeWidth:2.2})}),(0,t.jsx)("button",{onClick:()=>{A(e=>{let t="dark"===e?"light":"dark";return window.localStorage.setItem("clawcrib:theme",t),t})},className:"flex items-center gap-1.5 rounded-full border border-white/10 bg-black/40 px-2.5 py-1.5 text-[13px] font-medium text-white/70 backdrop-blur-md transition-colors hover:text-white",style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"dark"===M?"Switch to light mode":"Switch to dark mode",title:"dark"===M?"Light mode":"Dark mode",children:"dark"===M?(0,t.jsx)(p.Sun,{size:15,strokeWidth:2.2}):(0,t.jsx)(d.Moon,{size:15,strokeWidth:2.2})}),"3d"===N?(0,t.jsx)("button",{onClick:()=>{_(e=>!e),O(!1),L(!1)},className:`flex items-center gap-1.5 rounded-full border px-2.5 py-1.5 text-[13px] font-medium backdrop-blur-md transition-colors ${D?"border-white/20 bg-white/15 text-white":"border-white/10 bg-black/40 text-white/70 hover:text-white"}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-label":"Customize robot style",title:"Robot style","aria-pressed":D,children:(0,t.jsx)(n.Bot,{size:15,strokeWidth:2.2})}):null,"plan"===N?(0,t.jsxs)("button",{onClick:()=>{L(e=>!e),O(!1),_(!1)},className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[13px] font-medium backdrop-blur-md transition-colors ${R?"border-white/20 bg-white/15 text-white":"border-white/10 bg-black/40 text-white/70 hover:text-white"}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-pressed":R,children:[(0,t.jsx)(u,{size:15,strokeWidth:2.2}),"Build"]}):null,(0,t.jsxs)("button",{onClick:()=>{O(e=>!e),L(!1),_(!1)},className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[13px] font-medium backdrop-blur-md transition-colors ${E?"border-white/20 bg-white/15 text-white":"border-white/10 bg-black/40 text-white/70 hover:text-white"}`,style:{boxShadow:"0 8px 30px rgba(0,0,0,0.45)"},"aria-pressed":E,children:[(0,t.jsx)(o.LayoutGrid,{size:15,strokeWidth:2.2}),"Organize"]}),(0,t.jsx)(eu,{value:N,onChange:e=>{C(e),window.localStorage.setItem("clawcrib:view",e)}})]}),I?(0,t.jsx)(V,{state:a,onClose:()=>B(!1)}):null,D&&"3d"===N?(0,t.jsx)(eC,{value:$,onChange:U,onReset:()=>U(eh.DEFAULT_BOT_STYLE),onClose:()=>_(!1)}):null,R&&"plan"===N?(0,t.jsx)(es,{state:a,config:q,update:m,onClose:()=>L(!1)}):null,E?(0,t.jsx)(ei,{state:a,config:q,update:m,profiles:b,activeId:f,selectProfile:w,createProfile:v,deleteProfile:j,canAddProfile:y,onClose:()=>O(!1)}):null,(0,t.jsx)(S,{state:a,theme:M}),(0,t.jsx)("div",{className:`pointer-events-none absolute bottom-4 left-4 z-10 flex flex-col gap-1.5 rounded-xl border px-3 py-2.5 backdrop-blur-md ${W.legendOnLight?"border-black/10 bg-white/70":"border-white/10 bg-black/45"}`,children:"3d"===N?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eM,{dark:!W.legendOnLight,icon:(0,t.jsx)(x,{size:13}),action:"Drag",effect:"orbit camera"}),(0,t.jsx)(eM,{dark:!W.legendOnLight,icon:(0,t.jsx)(g,{size:13}),action:"Scroll",effect:"zoom in / out"}),(0,t.jsx)(eM,{dark:!W.legendOnLight,icon:(0,t.jsx)(c,{size:13}),action:"Right-drag",effect:"pan across the floor"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eM,{dark:!W.legendOnLight,icon:(0,t.jsx)(c,{size:13}),action:"Drag",effect:"pan the floor plan"}),(0,t.jsx)(eM,{dark:!W.legendOnLight,icon:(0,t.jsx)(g,{size:13}),action:"Scroll",effect:"zoom in / out"}),(0,t.jsx)(eM,{dark:!W.legendOnLight,icon:(0,t.jsx)(h.RotateCcw,{size:13}),action:"Double-click",effect:"reset view"})]})}),(0,t.jsx)("div",{className:"pointer-events-none absolute bottom-3 left-1/2 z-10 -translate-x-1/2 text-[11px] tracking-wide",style:{color:W.caption,textShadow:W.legendOnLight?"0 1px 2px rgba(255,255,255,0.5)":"none"},children:ey[N]})]})}let eN=[{key:"body",label:"Body"},{key:"visor",label:"Visor"},{key:"eyes",label:"Eyes"}];function eC({value:e,onChange:a,onReset:s,onClose:l}){return(0,t.jsxs)("div",{className:"absolute right-4 top-16 z-30 w-64 rounded-2xl border border-white/10 bg-black/60 p-4 backdrop-blur-xl",style:{boxShadow:"0 12px 40px rgba(0,0,0,0.5)"},children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[13px] font-semibold text-white",children:[(0,t.jsx)(n.Bot,{size:15,strokeWidth:2.2}),"Robot style"]}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{onClick:s,className:"rounded-full p-1.5 text-white/50 transition-colors hover:text-white","aria-label":"Reset to default colors",title:"Reset",children:(0,t.jsx)(m,{size:13,strokeWidth:2.2})}),(0,t.jsx)("button",{onClick:l,className:"rounded-full p-1.5 text-white/50 transition-colors hover:text-white","aria-label":"Close",children:(0,t.jsx)(b.X,{size:14,strokeWidth:2.2})})]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-3",children:eN.map(({key:s,label:l})=>(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-white/40",children:l}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[eh.BOT_PRESETS[s].map(n=>(0,t.jsx)("button",{onClick:()=>a({[s]:n}),className:`h-6 w-6 rounded-full border transition-transform hover:scale-110 ${e[s].toLowerCase()===n.toLowerCase()?"border-white":"border-white/15"}`,style:{background:n},"aria-label":`${l} color ${n}`},n)),(0,t.jsx)("label",{className:"relative h-6 w-6 shrink-0 cursor-pointer overflow-hidden rounded-full border border-dashed border-white/30",title:"Custom color",style:{background:"conic-gradient(#ff6b81, #ffd166, #4cff9f, #39e6e0, #7c5cff, #ff6b81)"},children:(0,t.jsx)("input",{type:"color",value:e[s],onChange:e=>a({[s]:e.target.value}),className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":`Custom ${l.toLowerCase()} color`})})]})]},s))}),(0,t.jsx)("div",{className:"mt-3 text-[10px] leading-relaxed text-white/35",children:"Eye color shows while idle — active agents glow with their status color."})]})}function eM({icon:e,action:a,effect:s,dark:l}){return(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[11px] leading-none",children:[(0,t.jsx)("span",{className:l?"text-white/55":"text-[#3c4250]",children:e}),(0,t.jsx)("span",{className:l?"font-semibold text-white/90":"font-semibold text-[#262b36]",children:a}),(0,t.jsx)("span",{className:l?"text-white/55":"text-[#5a6172]",children:s})]})}e.s(["default",()=>ek],73466)}]);