clawcrib 0.1.2 → 0.1.4

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 (143) hide show
  1. package/README.md +50 -12
  2. package/bin/clawcrib.mjs +10 -10
  3. package/dist/.next/BUILD_ID +1 -1
  4. package/dist/.next/build-manifest.json +2 -2
  5. package/dist/.next/server/app/_global-error.html +2 -2
  6. package/dist/.next/server/app/_global-error.rsc +1 -1
  7. package/dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/dist/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/dist/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/dist/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/dist/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/_not-found.html +2 -2
  14. package/dist/.next/server/app/_not-found.rsc +8 -8
  15. package/dist/.next/server/app/_not-found.segments/_full.segment.rsc +8 -8
  16. package/dist/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/dist/.next/server/app/_not-found.segments/_index.segment.rsc +7 -7
  18. package/dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  19. package/dist/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/dist/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/dist/.next/server/app/agent/[name]/page_client-reference-manifest.js +1 -1
  22. package/dist/.next/server/app/browse/page_client-reference-manifest.js +1 -1
  23. package/dist/.next/server/app/browse.html +2 -2
  24. package/dist/.next/server/app/browse.rsc +9 -9
  25. package/dist/.next/server/app/browse.segments/_full.segment.rsc +9 -9
  26. package/dist/.next/server/app/browse.segments/_head.segment.rsc +1 -1
  27. package/dist/.next/server/app/browse.segments/_index.segment.rsc +7 -7
  28. package/dist/.next/server/app/browse.segments/_tree.segment.rsc +2 -2
  29. package/dist/.next/server/app/browse.segments/browse/__PAGE__.segment.rsc +2 -2
  30. package/dist/.next/server/app/browse.segments/browse.segment.rsc +1 -1
  31. package/dist/.next/server/app/builder/page_client-reference-manifest.js +1 -1
  32. package/dist/.next/server/app/builder.html +2 -2
  33. package/dist/.next/server/app/builder.rsc +9 -9
  34. package/dist/.next/server/app/builder.segments/_full.segment.rsc +9 -9
  35. package/dist/.next/server/app/builder.segments/_head.segment.rsc +1 -1
  36. package/dist/.next/server/app/builder.segments/_index.segment.rsc +7 -7
  37. package/dist/.next/server/app/builder.segments/_tree.segment.rsc +2 -2
  38. package/dist/.next/server/app/builder.segments/builder/__PAGE__.segment.rsc +2 -2
  39. package/dist/.next/server/app/builder.segments/builder.segment.rsc +1 -1
  40. package/dist/.next/server/app/crib/[slug]/page_client-reference-manifest.js +1 -1
  41. package/dist/.next/server/app/crib/page/react-loadable-manifest.json +1 -1
  42. package/dist/.next/server/app/crib/page_client-reference-manifest.js +1 -1
  43. package/dist/.next/server/app/crib.html +1 -1
  44. package/dist/.next/server/app/crib.rsc +9 -9
  45. package/dist/.next/server/app/crib.segments/_full.segment.rsc +9 -9
  46. package/dist/.next/server/app/crib.segments/_head.segment.rsc +1 -1
  47. package/dist/.next/server/app/crib.segments/_index.segment.rsc +7 -7
  48. package/dist/.next/server/app/crib.segments/_tree.segment.rsc +2 -2
  49. package/dist/.next/server/app/crib.segments/crib/__PAGE__.segment.rsc +2 -2
  50. package/dist/.next/server/app/crib.segments/crib.segment.rsc +1 -1
  51. package/dist/.next/server/app/demo/page/react-loadable-manifest.json +1 -1
  52. package/dist/.next/server/app/demo/page_client-reference-manifest.js +1 -1
  53. package/dist/.next/server/app/demo.html +1 -1
  54. package/dist/.next/server/app/demo.rsc +9 -9
  55. package/dist/.next/server/app/demo.segments/_full.segment.rsc +9 -9
  56. package/dist/.next/server/app/demo.segments/_head.segment.rsc +1 -1
  57. package/dist/.next/server/app/demo.segments/_index.segment.rsc +7 -7
  58. package/dist/.next/server/app/demo.segments/_tree.segment.rsc +2 -2
  59. package/dist/.next/server/app/demo.segments/demo/__PAGE__.segment.rsc +2 -2
  60. package/dist/.next/server/app/demo.segments/demo.segment.rsc +1 -1
  61. package/dist/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
  62. package/dist/.next/server/app/feedback.html +2 -2
  63. package/dist/.next/server/app/feedback.rsc +9 -9
  64. package/dist/.next/server/app/feedback.segments/_full.segment.rsc +9 -9
  65. package/dist/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
  66. package/dist/.next/server/app/feedback.segments/_index.segment.rsc +7 -7
  67. package/dist/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
  68. package/dist/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +2 -2
  69. package/dist/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
  70. package/dist/.next/server/app/gltest/page_client-reference-manifest.js +1 -1
  71. package/dist/.next/server/app/gltest.html +1 -1
  72. package/dist/.next/server/app/gltest.rsc +9 -9
  73. package/dist/.next/server/app/gltest.segments/_full.segment.rsc +9 -9
  74. package/dist/.next/server/app/gltest.segments/_head.segment.rsc +1 -1
  75. package/dist/.next/server/app/gltest.segments/_index.segment.rsc +7 -7
  76. package/dist/.next/server/app/gltest.segments/_tree.segment.rsc +2 -2
  77. package/dist/.next/server/app/gltest.segments/gltest/__PAGE__.segment.rsc +2 -2
  78. package/dist/.next/server/app/gltest.segments/gltest.segment.rsc +1 -1
  79. package/dist/.next/server/app/help/page_client-reference-manifest.js +1 -1
  80. package/dist/.next/server/app/help.html +2 -2
  81. package/dist/.next/server/app/help.rsc +9 -9
  82. package/dist/.next/server/app/help.segments/_full.segment.rsc +9 -9
  83. package/dist/.next/server/app/help.segments/_head.segment.rsc +1 -1
  84. package/dist/.next/server/app/help.segments/_index.segment.rsc +7 -7
  85. package/dist/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  86. package/dist/.next/server/app/help.segments/help/__PAGE__.segment.rsc +2 -2
  87. package/dist/.next/server/app/help.segments/help.segment.rsc +1 -1
  88. package/dist/.next/server/app/index.html +1 -1
  89. package/dist/.next/server/app/index.rsc +9 -9
  90. package/dist/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  91. package/dist/.next/server/app/index.segments/_full.segment.rsc +9 -9
  92. package/dist/.next/server/app/index.segments/_head.segment.rsc +1 -1
  93. package/dist/.next/server/app/index.segments/_index.segment.rsc +7 -7
  94. package/dist/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  95. package/dist/.next/server/app/learn/page_client-reference-manifest.js +1 -1
  96. package/dist/.next/server/app/learn.html +2 -2
  97. package/dist/.next/server/app/learn.rsc +9 -9
  98. package/dist/.next/server/app/learn.segments/_full.segment.rsc +9 -9
  99. package/dist/.next/server/app/learn.segments/_head.segment.rsc +1 -1
  100. package/dist/.next/server/app/learn.segments/_index.segment.rsc +7 -7
  101. package/dist/.next/server/app/learn.segments/_tree.segment.rsc +2 -2
  102. package/dist/.next/server/app/learn.segments/learn/__PAGE__.segment.rsc +2 -2
  103. package/dist/.next/server/app/learn.segments/learn.segment.rsc +1 -1
  104. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  105. package/dist/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  106. package/dist/.next/server/app/privacy.html +2 -2
  107. package/dist/.next/server/app/privacy.rsc +8 -8
  108. package/dist/.next/server/app/privacy.segments/_full.segment.rsc +8 -8
  109. package/dist/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  110. package/dist/.next/server/app/privacy.segments/_index.segment.rsc +7 -7
  111. package/dist/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
  112. package/dist/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +2 -2
  113. package/dist/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  114. package/dist/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  115. package/dist/.next/server/app/terms.html +2 -2
  116. package/dist/.next/server/app/terms.rsc +8 -8
  117. package/dist/.next/server/app/terms.segments/_full.segment.rsc +8 -8
  118. package/dist/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  119. package/dist/.next/server/app/terms.segments/_index.segment.rsc +7 -7
  120. package/dist/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
  121. package/dist/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +2 -2
  122. package/dist/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  123. package/dist/.next/server/chunks/ssr/[root-of-the-server]__2734027d._.js +1 -1
  124. package/dist/.next/server/chunks/ssr/[root-of-the-server]__76b71b25._.js +1 -1
  125. package/dist/.next/server/chunks/ssr/[root-of-the-server]__b704ba4a._.js +1 -1
  126. package/dist/.next/server/chunks/ssr/_3449c279._.js +1 -1
  127. package/dist/.next/server/chunks/ssr/_a46dee72._.js +1 -1
  128. package/dist/.next/server/chunks/ssr/_e01a61c0._.js +1 -1
  129. package/dist/.next/server/middleware-manifest.json +1 -1
  130. package/dist/.next/server/pages/404.html +2 -2
  131. package/dist/.next/server/pages/500.html +2 -2
  132. package/dist/.next/static/chunks/{eb5f77ae3460c46e.js → 147eaa3f28375e0e.js} +1 -1
  133. package/dist/.next/static/chunks/{123ff9bd00156eb9.css → 3edb9f1efb76cb66.css} +1 -1
  134. package/dist/.next/static/chunks/7d0bdbbba0dcee37.js +1 -0
  135. package/dist/.next/static/chunks/{3cb5ccf4d1eaa633.js → d9f8785065e078fc.js} +1 -1
  136. package/dist/.next/static/chunks/{edfa7bbc21dc3450.js → fa8b0f4dcb290dc4.js} +1 -1
  137. package/dist/.next/static/chunks/fc6da6eec8b84aac.js +1 -0
  138. package/package.json +2 -2
  139. package/dist/.next/static/chunks/6b3aa1f3b4ac9239.js +0 -1
  140. package/dist/.next/static/chunks/d6211ae3ff8400ff.js +0 -1
  141. /package/dist/.next/static/{zYUlp2fcVlJKBhUQk1Pns → a1_F2n_Sn-m0Apxh748yG}/_buildManifest.js +0 -0
  142. /package/dist/.next/static/{zYUlp2fcVlJKBhUQk1Pns → a1_F2n_Sn-m0Apxh748yG}/_clientMiddlewareManifest.json +0 -0
  143. /package/dist/.next/static/{zYUlp2fcVlJKBhUQk1Pns → a1_F2n_Sn-m0Apxh748yG}/_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><!--a1_F2n_Sn_m0Apxh748yG--><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/3edb9f1efb76cb66.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/d9f8785065e078fc.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/d9f8785065e078fc.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"ThemeProvider\"]\n3:I[41658,[\"/_next/static/chunks/d9f8785065e078fc.js\",\"/_next/static/chunks/169b21b9dab86074.js\"],\"ConvexClientProvider\"]\n4:I[49830,[\"/_next/static/chunks/d9f8785065e078fc.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/d9f8785065e078fc.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/d9f8785065e078fc.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/3edb9f1efb76cb66.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"a1_F2n_Sn-m0Apxh748yG\",\"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/3edb9f1efb76cb66.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d9f8785065e078fc.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><!--a1_F2n_Sn_m0Apxh748yG--><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\":\"a1_F2n_Sn-m0Apxh748yG\",\"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 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54088,e=>{"use strict";var t=e.i(13549);function l(e){let t=0;for(let l=0;l<e.length;l++)t=(31*t+e.charCodeAt(l))%1e3;return t/1e3*Math.PI*2}function n(e,t,l){let n=e=>{let t=e.hx+.34,n=e.hz+.34,a=l.x-e.x,o=l.z-e.z;Math.abs(a)>=t||Math.abs(o)>=n||(t-Math.abs(a)<n-Math.abs(o)?l.x=e.x+(a<0?-t:t):l.z=e.z+(o<0?-n:n))};for(let l of e.obstacles)l.key&&l.key===t||n(l);for(let t of e.walls)n(t)}function a(e){return e.exit&&e.exit.length?e.exit:[e.out]}function o(e,l,n){let o=a(l),i=o[o.length-1],r=(0,t.findPath)(e.grid,i.x,i.z,n.x,n.z);return r?[...o,...r]:null}let i=(e,t)=>{let l=43758.5453*Math.sin(12.9898*e.phase+78.233*t);return l-Math.floor(l)};function r(e){return"tool"===e||"cron"===e||"thinking"===e}function s(e,t){e.idx=0,e.wpBestDist=1/0,e.wpProgressT=t}class h{states=new Map;loungeReserved=new Map;debugState(e){let t=this.states.get(e);return t?{mode:t.mode,idx:t.idx,pathLen:t.path.length,x:t.x,z:t.z,wp:t.path[t.idx]}:null}releaseLounge(e){e.loungeSeat>=0&&(this.loungeReserved.delete(e.loungeSeat),e.loungeSeat=-1)}goHome(e,l,n,o){var i;let r,h,f;if(o-n.lastRepathT<.5)return!1;n.lastRepathT=o;let d=(i={x:n.x,z:n.z},h=(r=a(l))[r.length-1],(f=(0,t.findPath)(e.grid,i.x,i.z,h.x,h.z))?[...f,...[...r].reverse().slice(1),{...l.seat}]:null);return!!d&&(n.path=d,s(n,o),n.mode="returning",!0)}tick(e,l,a){let h=Math.min(Math.max(a,0),.1),d=new Map,u=new Set,c=[];for(let n of e.deskByKey.values()){u.add(n.key);let a=this.states.get(n.key);a||(a=this.spawn(n,l));let g=!!n.roomDoor;g&&r(n.status)&&!r(a.prevStatus)&&(a.pending=!0),!r(n.status)&&r(a.prevStatus)&&(a.workEnds++,a.breakAfter=l+2+8*i(a,a.workEnds),a.breakUntil=l+18,a.breakRolled=!1),a.prevStatus=n.status;let x=0,p=!1;if("seated"===a.mode){if(a.x=n.seat.x,a.z=n.seat.z,p=!0,x=f(l,a.phase,n.status),a.targetYaw=n.faceYaw,g&&a.pending&&l>=a.nextTripAt){a.pending=!1,a.nextTripAt=l+30+a.phase/(2*Math.PI)*22+l%7;let t=e.board.z+(a.phase/(2*Math.PI)-.5)*Math.min(.5*e.board.w,4),i={x:e.board.standX,z:t},r=o(e,n,i);r&&(a.trip="board",a.boardPoint=i,a.faceYaw=-Math.PI/2,a.path=r,s(a,l),a.mode="going")}else if(!n.isSub&&!r(n.status)&&!a.breakRolled&&l>=a.breakAfter&&l<a.breakUntil&&l>=a.nextBreakAt&&(a.breakRolled=!0,.4>i(a,17*a.workEnds+3)&&this.loungeReserved.size<Math.min(2,e.lounge.seats.length))){let t=e.lounge.seats.length,r=Math.floor(i(a,1)*t),h=-1;for(let e=0;e<t;e++){let l=(r+e)%t;if(!this.loungeReserved.has(l)){h=l;break}}if(h>=0){let t=e.lounge.seats[h],r={x:t.x,z:t.z+.95},f=o(e,n,r);f&&(this.loungeReserved.set(h,a.key),a.loungeSeat=h,a.trip="lounge",a.boardPoint=r,a.path=f,s(a,l),a.mode="going",a.nextBreakAt=l+180+240*i(a,2))}}}else if("going"===a.mode||"returning"===a.mode){x=.05*Math.abs(Math.sin(9*l+a.phase)),c.push(a),"going"===a.mode&&"lounge"===a.trip&&r(n.status)&&this.goHome(e,n,a,l)&&this.releaseLounge(a);let o=a.idx,f=function(e,t){let l=e.path[e.idx];if(!l)return!0;let n=l.x-e.x,a=l.z-e.z,o=Math.hypot(n,a),i=2*t;return o<=i||0===o?(e.x=l.x,e.z=l.z,e.idx++,e.idx>=e.path.length):(e.x+=n/o*i,e.z+=a/o*i,e.targetYaw=Math.atan2(n,a),!1)}(a,h);a.idx!==o&&(a.wpBestDist=1/0,a.wpProgressT=l);let d=a.path[a.idx];if(!f&&d){let n=Math.hypot(d.x-a.x,d.z-a.z);if(n<a.wpBestDist-.03)a.wpBestDist=n,a.wpProgressT=l;else if(l-a.wpProgressT>1.2&&l-a.lastRepathT>=.5){a.lastRepathT=l;let n=a.path[a.path.length-1],o=(0,t.findPath)(e.grid,a.x,a.z,n.x,n.z);o?(a.path=o,s(a,l)):(a.wpBestDist=1/0,a.wpProgressT=l)}}if(f)if("going"!==a.mode)a.mode="seated";else if("lounge"===a.trip&&a.loungeSeat>=0&&a.loungeSeat<e.lounge.seats.length){let t=e.lounge.seats[a.loungeSeat];a.x=t.x,a.z=t.z+.12,a.targetYaw=t.yaw,a.standUntil=l+16+20*i(a,4),a.mode="lounging"}else"lounge"===a.trip?(this.releaseLounge(a),this.goHome(e,n,a,l)):(a.mode="standing",a.standUntil=l+2.4+l%2)}else"standing"===a.mode?(x=.02*Math.abs(Math.sin(2.2*l+a.phase)),a.targetYaw=a.faceYaw,l>=a.standUntil&&!this.goHome(e,n,a,l)&&(a.standUntil=l+1)):"lounging"===a.mode&&(p=!0,x=f(l,a.phase,"idle"),(l>=a.standUntil||r(n.status)||a.loungeSeat<0)&&(this.goHome(e,n,a,l)?(this.releaseLounge(a),a.faceYaw=n.faceYaw):a.standUntil=l+1));a.yaw+=(((a.targetYaw-a.yaw+Math.PI)%(2*Math.PI)+2*Math.PI)%(2*Math.PI)-Math.PI)*Math.min(1,8*h),d.set(n.key,{x:a.x,z:a.z,bob:x,yaw:a.yaw,mode:a.mode,seated:p})}for(let t of c)n(e,t.key,t);for(let e=0;e<c.length;e++)for(let t=e+1;t<c.length;t++){let l=c[e],n=c[t],a=n.x-l.x,o=n.z-l.z,i=Math.hypot(a,o);if(i>=.72)continue;i<1e-4&&(a=Math.cos(3*l.phase+e),o=Math.sin(3*l.phase+e),i=1);let r=(.72-i)/2,s=a/i*r,h=o/i*r;l.x-=s,l.z-=h,n.x+=s,n.z+=h}let g=[];for(let[e,t]of d)t.seated&&g.push({key:e,x:t.x,z:t.z});for(let e of c)for(let t of g){if(t.key===e.key)continue;let l=e.x-t.x,n=e.z-t.z,a=Math.hypot(l,n);if(a>=.72)continue;a<1e-4&&(l=Math.cos(3*e.phase),n=Math.sin(3*e.phase),a=1);let o=.72-a;e.x+=l/a*o,e.z+=n/a*o}for(let t of c)n(e,t.key,t);for(let e of c){let t=d.get(e.key);t&&(t.x=e.x,t.z=e.z)}for(let e of this.states.keys())u.has(e)||(this.releaseLounge(this.states.get(e)),this.states.delete(e));return d}spawn(e,t){let n=l(e.key),a={key:e.key,mode:"seated",path:[],idx:0,x:e.seat.x,z:e.seat.z,yaw:e.faceYaw,targetYaw:e.faceYaw,faceYaw:e.faceYaw,standUntil:0,nextTripAt:t+12+n/(2*Math.PI)*22,pending:!1,boardPoint:{x:e.seat.x,z:e.seat.z},prevStatus:e.status,phase:n,wpBestDist:1/0,wpProgressT:0,lastRepathT:0,trip:"board",workEnds:0,breakAfter:0,breakUntil:0,breakRolled:!0,nextBreakAt:t+45+n/(2*Math.PI)*60,loungeSeat:-1};return this.states.set(e.key,a),a}}function f(e,t,l){let n="tool"===l||"thinking"===l;return Math.abs(Math.sin(e*(n?6:1.4)+t))*(n?.04:.015)}let d=new h;function u(){return("u">typeof performance?performance.now():Date.now())/1e3}e.s(["nowSeconds",()=>u,"phaseFor",()=>l,"sharedWalkers",0,d])},97106,e=>{"use strict";let t=[{key:"queued",title:"QUEUED",accent:"#8a93b0"},{key:"running",title:"IN PROGRESS",accent:"#28d6a8"},{key:"completed",title:"DONE",accent:"#7c5cff"},{key:"failed",title:"FAILED",accent:"#ff5d6c"},{key:"cancelled",title:"CANCELLED",accent:"#9aa3b2"},{key:"timed_out",title:"TIMED OUT",accent:"#ffb547"}];function l(e){return t.map(t=>({...t,items:e.filter(e=>e.status===t.key).slice().sort((e,t)=>(t.startedAt??0)-(e.startedAt??0))}))}e.s(["boardColumns",()=>l])},67743,e=>{"use strict";var t=e.i(18050),l=e.i(71645),n=e.i(84397),a=e.i(54088),o=e.i(97106),i=e.i(5999),r=e.i(18143);let s="rgba(205,228,255,0.85)",h="rgba(205,228,255,0.4)",f="rgba(205,228,255,0.16)",d="rgba(190,215,245,0.22)",u="rgba(220,235,255,0.9)",c="rgba(220,235,255,0.5)",g="ui-monospace, SFMono-Regular, Menlo, monospace";function x({state:e,config:x,theme:b}){let y,M=(0,l.useRef)(null),w=(0,l.useRef)(e);w.current=e;let T=(0,l.useRef)(b);T.current=b;let z=(y=(0,l.useRef)({zoom:1,ox:0,oy:0,yaw:0}),(0,l.useEffect)(()=>{let e=M.current;if(!e)return;let t="none",l=0,n=0,a=a=>{if(2===a.button||1===a.button)t="pan";else{if(0!==a.button)return;t="pan"}l=a.clientX,n=a.clientY,e.setPointerCapture(a.pointerId),e.style.cursor="rotate"===t?"grabbing":"move"},o=e=>{if("none"===t)return;let a=e.clientX-l,o=e.clientY-n;"pan"===t?(y.current.ox+=a,y.current.oy+=o):y.current.yaw+=.009*a,l=e.clientX,n=e.clientY},i=l=>{t="none",e.style.cursor="grab";try{e.releasePointerCapture(l.pointerId)}catch{}},r=t=>{t.preventDefault();let l=e.getBoundingClientRect(),n=t.clientX-l.left,a=t.clientY-l.top,o=y.current,i=Math.min(5,Math.max(.4,o.zoom*Math.exp(-(.0014*t.deltaY)))),r=i/o.zoom;o.ox=n-(n-o.ox)*r,o.oy=a-(a-o.oy)*r,o.zoom=i},s=()=>{y.current.zoom=1,y.current.ox=0,y.current.oy=0,y.current.yaw=0},h=e=>e.preventDefault();return e.style.cursor="grab",e.style.touchAction="none",e.addEventListener("pointerdown",a),e.addEventListener("pointermove",o),e.addEventListener("pointerup",i),e.addEventListener("pointercancel",i),e.addEventListener("wheel",r,{passive:!1}),e.addEventListener("dblclick",s),e.addEventListener("contextmenu",h),()=>{e.removeEventListener("pointerdown",a),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",i),e.removeEventListener("pointercancel",i),e.removeEventListener("wheel",r),e.removeEventListener("dblclick",s),e.removeEventListener("contextmenu",h)}},[M,!1]),y),v=(0,l.useMemo)(()=>(0,n.computeFloorPlan)(e.agents,x),[e.agents,x]),S=(0,l.useRef)(v);return S.current=v,(0,l.useEffect)(()=>{let e=M.current;if(!e)return;let t=e.getContext("2d");if(!t)return;let l=0,n=Math.min(window.devicePixelRatio||1,2),x=0,b=0,y=()=>{let t=e.parentElement;t&&(x=t.clientWidth,b=t.clientHeight,n=Math.min(window.devicePixelRatio||1,2),e.width=Math.floor(x*n),e.height=Math.floor(b*n),e.style.width=`${x}px`,e.style.height=`${b}px`)};y();let v=new ResizeObserver(y);e.parentElement&&v.observe(e.parentElement);let P=(0,a.nowSeconds)(),R=()=>{var e,y,M,v,W,D,E;let L,A,$,I,B=(0,a.nowSeconds)(),U=Math.min(B-P,.1);P=B;let Y=w.current,C=S.current,F=(0,r.getCribTheme)(T.current).blueprint;s=F.line,h=F.lineDim,f=F.lineFaint,d=F.fillWall,u=F.text,c=F.textDim,t.setTransform(n,0,0,n,0,0),t.clearRect(0,0,x,b);let N=t.createRadialGradient(x/2,b/2,0,x/2,b/2,.75*Math.max(x,b));N.addColorStop(0,F.bgFrom),N.addColorStop(1,F.bgTo),t.fillStyle=N,t.fillRect(0,0,x,b);let O=z.current;t.setTransform(n*O.zoom,0,0,n*O.zoom,n*O.ox,n*O.oy);let Z=Math.min(.74*x/C.W,.7*b/C.D),G=x/2,H=b/2+8,X=e=>G+e*Z,K=e=>H+e*Z,j=a.sharedWalkers.tick(C,B,U),q=Math.floor(-C.halfW)-2,_=Math.ceil(C.halfW)+2,Q=Math.floor(C.backZ)-2,V=Math.ceil(C.halfD)+2;for(let e=q;e<=_;e++)t.strokeStyle=e%4==0?"rgba(205,228,255,0.1)":"rgba(205,228,255,0.045)",t.lineWidth=1,t.beginPath(),t.moveTo(X(e),K(Q)),t.lineTo(X(e),K(V)),t.stroke();for(let e=Q;e<=V;e++)t.strokeStyle=e%4==0?"rgba(205,228,255,0.1)":"rgba(205,228,255,0.045)",t.beginPath(),t.moveTo(X(q),K(e)),t.lineTo(X(_),K(e)),t.stroke();let J=Math.max(5,.22*Z);t.fillStyle=d,t.fillRect(X(-C.halfW)-J,K(C.backZ)-J,C.W*Z+J,J),t.fillRect(X(-C.halfW)-J,K(C.backZ)-J,J,C.D*Z+J),t.fillRect(X(-C.halfW)-J,K(C.halfD),C.W*Z+J,J),t.strokeStyle=s,t.lineWidth=1.6,t.strokeRect(X(-C.halfW)-J,K(C.backZ)-J,C.W*Z+J,C.D*Z+2*J),t.setLineDash([7,6]),t.strokeStyle=h,t.beginPath(),t.moveTo(X(C.halfW),K(C.backZ)),t.lineTo(X(C.halfW),K(C.halfD)),t.stroke(),t.setLineDash([]);let ee=(e,l,n,a,o=.32)=>{t.fillStyle=a,t.font=`700 ${Math.max(9,Math.round(Z*o))}px ${g}`,t.textAlign="left",t.textBaseline="middle",t.fillText(e,X(l),K(n))};for(let e of(p(t,X,K,Z,C.lounge,"rgba(120,200,255,0.10)","rgba(150,210,255,0.5)",!0),ee("LOUNGE",C.lounge.x-C.lounge.w/2+.3,C.lounge.z-C.lounge.d/2+.6,"rgba(150,210,255,0.7)"),C.lounge.seats))t.strokeStyle=h,t.lineWidth=1,t.strokeRect(X(e.x-.45),K(e.z-.3),.9*Z,.6*Z);for(let e of(p(t,X,K,Z,C.bullpen,"rgba(205,228,255,0.05)",f,!0),ee("BULLPEN",C.bullpen.x-C.bullpen.w/2+.3,C.bullpen.z-C.bullpen.d/2+.6,c),t.strokeStyle=s,t.lineWidth=1.1,C.bullpen.agentDesks))t.strokeRect(X(e.desk.x-.7),K(e.desk.z-.3),1.4*Z,.6*Z);for(let e of(t.setLineDash([3,4]),t.strokeStyle=f,C.bullpen.spots))t.strokeRect(X(e.deskX-.6),K(e.deskZ-.28),1.2*Z,.56*Z);for(let e of(t.setLineDash([]),C.rooms)){let l=X(e.x-e.w/2),n=K(e.z-e.d/2);t.fillStyle=k(e.color,.1),t.fillRect(l,n,e.w*Z,e.d*Z),t.strokeStyle=k(e.color,.9),t.lineWidth=2;let a=e.x-e.w/2,o=e.x+e.w/2,i=e.z-e.d/2,r=e.z+e.d/2,h=e.door,f=(e,l,n,a)=>{t.beginPath(),t.moveTo(X(e),K(l)),t.lineTo(X(n),K(a)),t.stroke()},d=(e,t,l,n,a)=>{if(!h||null===a)return f(e,t,l,n);let o=h.w/2;"x"===a?(f(e,t,h.x-o,t),f(h.x+o,t,l,n)):(f(e,t,e,h.z-o),f(e,h.z+o,l,n))};for(let l of(d(a,i,o,i,h?.side==="N"?"x":null),d(a,r,o,r,h?.side==="S"?"x":null),d(a,i,a,r,h?.side==="W"?"z":null),d(o,i,o,r,h?.side==="E"?"z":null),ee(e.name.toUpperCase(),e.x-e.w/2+.3,e.z-e.d/2+.55,k(e.color,.95)),t.strokeStyle=s,t.lineWidth=1.1,e.desks))t.strokeRect(X(l.desk.x-.6),K(l.desk.z-.3),1.2*Z,.6*Z)}let et=C.board;for(let e of(t.strokeStyle="rgba(124,92,255,0.95)",t.lineWidth=Math.max(4,.16*Z),t.beginPath(),t.moveTo(X(-C.halfW+.12),K(et.z-et.w/2)),t.lineTo(X(-C.halfW+.12),K(et.z+et.w/2)),t.stroke(),t.save(),t.translate(X(-C.halfW+.7),K(et.z)),t.rotate(-Math.PI/2),t.fillStyle=u,t.font=`600 ${Math.max(9,Math.round(.3*Z))}px ${g}`,t.textAlign="center",t.textBaseline="middle",t.fillText("WORKBOARD — LIVE",0,0),t.restore(),t.strokeStyle=h,t.lineWidth=1,C.plants))t.beginPath(),t.arc(X(e.x),K(e.z),.32*Z*e.s,0,2*Math.PI),t.stroke();let el=X(C.entrance.x);for(let e of(t.strokeStyle=k("#28d6a8",.9),t.lineWidth=2,t.beginPath(),t.moveTo(el-Z,K(C.halfD)+.8*Z),t.lineTo(el-Z,K(C.halfD)),t.lineTo(el+ +Z,K(C.halfD)),t.lineTo(el+ +Z,K(C.halfD)+.8*Z),t.stroke(),t.fillStyle=c,t.font=`500 ${Math.max(8,Math.round(.26*Z))}px ${g}`,t.textAlign="center",t.fillText("ENTRY",el,K(C.halfD)+1.4*Z),m(t,X(-C.halfW),K(C.backZ)-J-22,X(C.halfW),K(C.backZ)-J-22,`${C.W.toFixed(1)} m`,!1),m(t,X(-C.halfW)-J-22,K(C.backZ),X(-C.halfW)-J-22,K(C.halfD),`${C.D.toFixed(1)} m`,!0),C.entityByKey.values())){let l=j.get(e.key);if(!l)continue;let n="thinking"===e.status?"…":("tool"===e.status||"cron"===e.status)&&e.activity?e.activity.title:void 0;!function(e,t,l,n,a,o,r,s,h,f){let d=i.STATUS_META[o];if(e.strokeStyle=d.color,e.lineWidth=2,e.beginPath(),e.arc(t,l,n+3+("tool"===o||"thinking"===o||"cron"===o?1.5*Math.sin(5*s):0),0,2*Math.PI),e.stroke(),e.fillStyle=a,e.beginPath(),e.arc(t,l,n,0,2*Math.PI),e.fill(),e.strokeStyle="rgba(10,25,50,0.8)",e.lineWidth=1.2,e.stroke(),e.fillStyle=u,e.font=`600 ${Math.max(8,Math.round(.26*h))}px ${g}`,e.textAlign="center",e.textBaseline="middle",e.fillText(r,t,l+n+11),f){let a=f.length>18?f.slice(0,17)+"…":f;e.font=`500 ${Math.max(8,Math.round(.24*h))}px ${g}`;let o=e.measureText(a).width+12,i=t+n+8,r=l-n-14;e.fillStyle="rgba(13,35,66,0.92)",e.strokeStyle=`${d.color}`,e.lineWidth=1,e.beginPath(),e.roundRect(i,r-8,o,16,8),e.fill(),e.stroke(),e.fillStyle=d.color,e.textAlign="left",e.fillText(a,i+6,r),e.textAlign="center"}}(t,X(l.x),K(l.z),(e.isSub?.16:.24)*Z,e.color,e.status,e.label.slice(0,14),B,Z,n)}t.setTransform(n,0,0,n,0,0),e=t,y=x-64,e.strokeStyle=h,e.lineWidth=1.2,e.beginPath(),e.arc(y,84,16,0,2*Math.PI),e.stroke(),e.beginPath(),e.moveTo(y,94),e.lineTo(y,74),e.moveTo(y-4,79),e.lineTo(y,74),e.lineTo(y+4,79),e.stroke(),e.fillStyle=c,e.font=`600 10px ${g}`,e.textAlign="center",e.textBaseline="middle",e.fillText("N",y,108),M=t,v=x,W=b,D=C,E=Y,L=v-250-18,A=W-94-16,M.strokeStyle=h,M.lineWidth=1.2,M.strokeRect(L,A,250,94),M.beginPath(),M.moveTo(L,A+26),M.lineTo(L+250,A+26),M.moveTo(L+137.5,A+26),M.lineTo(L+137.5,A+94-22),M.moveTo(L,A+94-22),M.lineTo(L+250,A+94-22),M.stroke(),M.fillStyle=u,M.font=`700 12px ${g}`,M.textAlign="left",M.textBaseline="middle",M.fillText("CLAWCRIB — BUILDING PLAN",L+10,A+13),M.font=`500 10px ${g}`,M.fillStyle=c,$=E.agents.reduce((e,t)=>e+t.subAgents.length,0),M.fillText(`ROOMS ${D.rooms.length}`,L+10,A+40),M.fillText(`SUBS ${$} \xb7 LOUNGE ${D.lounge.seats.length}`,L+10,A+56),M.fillText(`AGENTS ${E.agents.length}`,L+137.5+10,A+40),M.fillText(`${D.W.toFixed(1)}\xd7${D.D.toFixed(1)} m`,L+137.5+10,A+56),I=(0,o.boardColumns)(E.tasks).map(e=>`${e.title[0]}:${e.items.length}`).join(" "),M.fillText(I,L+10,A+94-11),l=requestAnimationFrame(R)};return l=requestAnimationFrame(R),()=>{cancelAnimationFrame(l),v.disconnect()}},[]),(0,t.jsx)("canvas",{ref:M,className:"block h-full w-full"})}function p(e,t,l,n,a,o,i,r){let s=t(a.x-a.w/2),h=l(a.z-a.d/2);e.fillStyle=o,e.fillRect(s,h,a.w*n,a.d*n),r&&e.setLineDash([6,5]),e.strokeStyle=i,e.lineWidth=1.2,e.strokeRect(s,h,a.w*n,a.d*n),e.setLineDash([])}function m(e,t,l,n,a,o,i){e.strokeStyle=h,e.lineWidth=1,e.beginPath(),e.moveTo(t,l),e.lineTo(n,a),e.stroke(),e.beginPath(),i?(e.moveTo(t-6,l),e.lineTo(t+6,l),e.moveTo(n-6,a),e.lineTo(n+6,a)):(e.moveTo(t,l-6),e.lineTo(t,l+6),e.moveTo(n,a-6),e.lineTo(n,a+6)),e.stroke(),e.fillStyle=c,e.font=`500 11px ${g}`,e.textAlign="center",e.textBaseline="middle",i?(e.save(),e.translate(t-12,(l+a)/2),e.rotate(-Math.PI/2),e.fillText(o,0,0),e.restore()):e.fillText(o,(t+n)/2,l-11)}function k(e,t){let l=e.replace("#",""),n=parseInt(3===l.length?l.split("").map(e=>e+e).join(""):l,16);return`rgba(${n>>16&255},${n>>8&255},${255&n},${Math.max(0,Math.min(1,t))})`}e.s(["default",()=>x],67743)},15697,e=>{e.n(e.i(67743))}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54088,e=>{"use strict";var t=e.i(13549);function l(e){let t=0;for(let l=0;l<e.length;l++)t=(31*t+e.charCodeAt(l))%1e3;return t/1e3*Math.PI*2}function n(e,t,l){let n=e=>{let t=e.hx+.34,n=e.hz+.34,a=l.x-e.x,o=l.z-e.z;Math.abs(a)>=t||Math.abs(o)>=n||(t-Math.abs(a)<n-Math.abs(o)?l.x=e.x+(a<0?-t:t):l.z=e.z+(o<0?-n:n))};for(let l of e.obstacles)l.key&&l.key===t||n(l);for(let t of e.walls)n(t)}function a(e){return e.exit&&e.exit.length?e.exit:[e.out]}function o(e,l,n){let o=a(l),i=o[o.length-1],r=(0,t.findPath)(e.grid,i.x,i.z,n.x,n.z);return r?[...o,...r]:null}let i=(e,t)=>{let l=43758.5453*Math.sin(12.9898*e.phase+78.233*t);return l-Math.floor(l)};function r(e){return"tool"===e||"cron"===e||"thinking"===e}function s(e,t){e.idx=0,e.wpBestDist=1/0,e.wpProgressT=t}class h{states=new Map;loungeReserved=new Map;debugState(e){let t=this.states.get(e);return t?{mode:t.mode,idx:t.idx,pathLen:t.path.length,x:t.x,z:t.z,wp:t.path[t.idx]}:null}releaseLounge(e){e.loungeSeat>=0&&(this.loungeReserved.delete(e.loungeSeat),e.loungeSeat=-1)}goHome(e,l,n,o){var i;let r,h,f;if(o-n.lastRepathT<.5)return!1;n.lastRepathT=o;let d=(i={x:n.x,z:n.z},h=(r=a(l))[r.length-1],(f=(0,t.findPath)(e.grid,i.x,i.z,h.x,h.z))?[...f,...[...r].reverse().slice(1),{...l.seat}]:null);return!!d&&(n.path=d,s(n,o),n.mode="returning",!0)}tick(e,l,a){let h=Math.min(Math.max(a,0),.1),d=new Map,u=new Set,c=[];for(let n of e.deskByKey.values()){u.add(n.key);let a=this.states.get(n.key);a||(a=this.spawn(n,l));let g=!!n.roomDoor;g&&r(n.status)&&!r(a.prevStatus)&&(a.pending=!0),!r(n.status)&&r(a.prevStatus)&&(a.workEnds++,a.breakAfter=l+2+8*i(a,a.workEnds),a.breakUntil=l+18,a.breakRolled=!1),a.prevStatus=n.status;let x=0,p=!1;if("seated"===a.mode){if(a.x=n.seat.x,a.z=n.seat.z,p=!0,x=f(l,a.phase,n.status),a.targetYaw=n.faceYaw,g&&a.pending&&l>=a.nextTripAt){a.pending=!1,a.nextTripAt=l+30+a.phase/(2*Math.PI)*22+l%7;let t=e.board.z+(a.phase/(2*Math.PI)-.5)*Math.min(.5*e.board.w,4),i={x:e.board.standX,z:t},r=o(e,n,i);r&&(a.trip="board",a.boardPoint=i,a.faceYaw=-Math.PI/2,a.path=r,s(a,l),a.mode="going")}else if(!n.isSub&&!r(n.status)&&!a.breakRolled&&l>=a.breakAfter&&l<a.breakUntil&&l>=a.nextBreakAt&&(a.breakRolled=!0,.4>i(a,17*a.workEnds+3)&&this.loungeReserved.size<Math.min(2,e.lounge.seats.length))){let t=e.lounge.seats.length,r=Math.floor(i(a,1)*t),h=-1;for(let e=0;e<t;e++){let l=(r+e)%t;if(!this.loungeReserved.has(l)){h=l;break}}if(h>=0){let t=e.lounge.seats[h],r={x:t.x,z:t.z+.95},f=o(e,n,r);f&&(this.loungeReserved.set(h,a.key),a.loungeSeat=h,a.trip="lounge",a.boardPoint=r,a.path=f,s(a,l),a.mode="going",a.nextBreakAt=l+180+240*i(a,2))}}}else if("going"===a.mode||"returning"===a.mode){x=.05*Math.abs(Math.sin(9*l+a.phase)),c.push(a),"going"===a.mode&&"lounge"===a.trip&&r(n.status)&&this.goHome(e,n,a,l)&&this.releaseLounge(a);let o=a.idx,f=function(e,t){let l=e.path[e.idx];if(!l)return!0;let n=l.x-e.x,a=l.z-e.z,o=Math.hypot(n,a),i=2*t;return o<=i||0===o?(e.x=l.x,e.z=l.z,e.idx++,e.idx>=e.path.length):(e.x+=n/o*i,e.z+=a/o*i,e.targetYaw=Math.atan2(n,a),!1)}(a,h);a.idx!==o&&(a.wpBestDist=1/0,a.wpProgressT=l);let d=a.path[a.idx];if(!f&&d){let n=Math.hypot(d.x-a.x,d.z-a.z);if(n<a.wpBestDist-.03)a.wpBestDist=n,a.wpProgressT=l;else if(l-a.wpProgressT>1.2&&l-a.lastRepathT>=.5){a.lastRepathT=l;let n=a.path[a.path.length-1],o=(0,t.findPath)(e.grid,a.x,a.z,n.x,n.z);o?(a.path=o,s(a,l)):(a.wpBestDist=1/0,a.wpProgressT=l)}}if(f)if("going"!==a.mode)a.mode="seated";else if("lounge"===a.trip&&a.loungeSeat>=0&&a.loungeSeat<e.lounge.seats.length){let t=e.lounge.seats[a.loungeSeat];a.x=t.x,a.z=t.z+.12,a.targetYaw=t.yaw,a.standUntil=l+16+20*i(a,4),a.mode="lounging"}else"lounge"===a.trip?(this.releaseLounge(a),this.goHome(e,n,a,l)):(a.mode="standing",a.standUntil=l+2.4+l%2)}else"standing"===a.mode?(x=.02*Math.abs(Math.sin(2.2*l+a.phase)),a.targetYaw=a.faceYaw,l>=a.standUntil&&!this.goHome(e,n,a,l)&&(a.standUntil=l+1)):"lounging"===a.mode&&(p=!0,x=f(l,a.phase,"idle"),(l>=a.standUntil||r(n.status)||a.loungeSeat<0)&&(this.goHome(e,n,a,l)?(this.releaseLounge(a),a.faceYaw=n.faceYaw):a.standUntil=l+1));a.yaw+=(((a.targetYaw-a.yaw+Math.PI)%(2*Math.PI)+2*Math.PI)%(2*Math.PI)-Math.PI)*Math.min(1,8*h),d.set(n.key,{x:a.x,z:a.z,bob:x,yaw:a.yaw,mode:a.mode,seated:p})}for(let t of c)n(e,t.key,t);for(let e=0;e<c.length;e++)for(let t=e+1;t<c.length;t++){let l=c[e],n=c[t],a=n.x-l.x,o=n.z-l.z,i=Math.hypot(a,o);if(i>=.72)continue;i<1e-4&&(a=Math.cos(3*l.phase+e),o=Math.sin(3*l.phase+e),i=1);let r=(.72-i)/2,s=a/i*r,h=o/i*r;l.x-=s,l.z-=h,n.x+=s,n.z+=h}let g=[];for(let[e,t]of d)t.seated&&g.push({key:e,x:t.x,z:t.z});for(let e of c)for(let t of g){if(t.key===e.key)continue;let l=e.x-t.x,n=e.z-t.z,a=Math.hypot(l,n);if(a>=.72)continue;a<1e-4&&(l=Math.cos(3*e.phase),n=Math.sin(3*e.phase),a=1);let o=.72-a;e.x+=l/a*o,e.z+=n/a*o}for(let t of c)n(e,t.key,t);for(let e of c){let t=d.get(e.key);t&&(t.x=e.x,t.z=e.z)}for(let e of this.states.keys())u.has(e)||(this.releaseLounge(this.states.get(e)),this.states.delete(e));return d}spawn(e,t){let n=l(e.key),a={key:e.key,mode:"seated",path:[],idx:0,x:e.seat.x,z:e.seat.z,yaw:e.faceYaw,targetYaw:e.faceYaw,faceYaw:e.faceYaw,standUntil:0,nextTripAt:t+12+n/(2*Math.PI)*22,pending:!1,boardPoint:{x:e.seat.x,z:e.seat.z},prevStatus:e.status,phase:n,wpBestDist:1/0,wpProgressT:0,lastRepathT:0,trip:"board",workEnds:0,breakAfter:0,breakUntil:0,breakRolled:!0,nextBreakAt:t+45+n/(2*Math.PI)*60,loungeSeat:-1};return this.states.set(e.key,a),a}}function f(e,t,l){let n="tool"===l||"thinking"===l;return Math.abs(Math.sin(e*(n?6:1.4)+t))*(n?.04:.015)}let d=new h;function u(){return("u">typeof performance?performance.now():Date.now())/1e3}e.s(["nowSeconds",()=>u,"phaseFor",()=>l,"sharedWalkers",0,d])},97106,e=>{"use strict";let t=[{key:"queued",title:"QUEUED",accent:"#8a93b0"},{key:"running",title:"IN PROGRESS",accent:"#28d6a8"},{key:"completed",title:"DONE",accent:"#7c5cff"},{key:"failed",title:"FAILED",accent:"#ff5d6c"},{key:"cancelled",title:"CANCELLED",accent:"#9aa3b2"},{key:"timed_out",title:"TIMED OUT",accent:"#ffb547"}];function l(e){return t.map(t=>({...t,items:e.filter(e=>e.status===t.key).slice().sort((e,t)=>(t.startedAt??0)-(e.startedAt??0))}))}e.s(["boardColumns",()=>l])},67743,e=>{"use strict";var t=e.i(18050),l=e.i(71645),n=e.i(84397),a=e.i(54088),o=e.i(97106),i=e.i(5999),r=e.i(18143);let s="rgba(205,228,255,0.85)",h="rgba(205,228,255,0.4)",f="rgba(205,228,255,0.16)",d="rgba(190,215,245,0.22)",u="rgba(220,235,255,0.9)",c="rgba(220,235,255,0.5)",g="ui-monospace, SFMono-Regular, Menlo, monospace";function x({state:e,config:x,theme:b}){let y,M=(0,l.useRef)(null),w=(0,l.useRef)(e);w.current=e;let T=(0,l.useRef)(b);T.current=b;let z=(y=(0,l.useRef)({zoom:1,ox:0,oy:0,yaw:0}),(0,l.useEffect)(()=>{let e=M.current;if(!e)return;let t="none",l=0,n=0,a=a=>{if(2===a.button||1===a.button)t="pan";else{if(0!==a.button)return;t="pan"}l=a.clientX,n=a.clientY,e.setPointerCapture(a.pointerId),e.style.cursor="rotate"===t?"grabbing":"move"},o=e=>{if("none"===t)return;let a=e.clientX-l,o=e.clientY-n;"pan"===t?(y.current.ox+=a,y.current.oy+=o):y.current.yaw+=.009*a,l=e.clientX,n=e.clientY},i=l=>{t="none",e.style.cursor="grab";try{e.releasePointerCapture(l.pointerId)}catch{}},r=t=>{t.preventDefault();let l=e.getBoundingClientRect(),n=t.clientX-l.left,a=t.clientY-l.top,o=y.current,i=Math.min(5,Math.max(.4,o.zoom*Math.exp(-(.0014*t.deltaY)))),r=i/o.zoom;o.ox=n-(n-o.ox)*r,o.oy=a-(a-o.oy)*r,o.zoom=i},s=()=>{y.current.zoom=1,y.current.ox=0,y.current.oy=0,y.current.yaw=0},h=e=>e.preventDefault();return e.style.cursor="grab",e.style.touchAction="none",e.addEventListener("pointerdown",a),e.addEventListener("pointermove",o),e.addEventListener("pointerup",i),e.addEventListener("pointercancel",i),e.addEventListener("wheel",r,{passive:!1}),e.addEventListener("dblclick",s),e.addEventListener("contextmenu",h),()=>{e.removeEventListener("pointerdown",a),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",i),e.removeEventListener("pointercancel",i),e.removeEventListener("wheel",r),e.removeEventListener("dblclick",s),e.removeEventListener("contextmenu",h)}},[M,!1]),y),v=(0,l.useMemo)(()=>(0,n.computeFloorPlan)(e.agents,x),[e.agents,x]),S=(0,l.useRef)(v);return S.current=v,(0,l.useEffect)(()=>{let e=M.current;if(!e)return;let t=e.getContext("2d");if(!t)return;let l=0,n=Math.min(window.devicePixelRatio||1,2),x=0,b=0,y=()=>{let t=e.parentElement;t&&(x=t.clientWidth,b=t.clientHeight,n=Math.min(window.devicePixelRatio||1,2),e.width=Math.floor(x*n),e.height=Math.floor(b*n),e.style.width=`${x}px`,e.style.height=`${b}px`)};y();let v=new ResizeObserver(y);e.parentElement&&v.observe(e.parentElement);let P=(0,a.nowSeconds)(),R=()=>{var e,y,M,v,W,D,E;let L,A,$,I,B=(0,a.nowSeconds)(),U=Math.min(B-P,.1);P=B;let Y=w.current,C=S.current,F=(0,r.getCribTheme)(T.current).blueprint;s=F.line,h=F.lineDim,f=F.lineFaint,d=F.fillWall,u=F.text,c=F.textDim,t.setTransform(n,0,0,n,0,0),t.clearRect(0,0,x,b);let N=t.createRadialGradient(x/2,b/2,0,x/2,b/2,.75*Math.max(x,b));N.addColorStop(0,F.bgFrom),N.addColorStop(1,F.bgTo),t.fillStyle=N,t.fillRect(0,0,x,b);let O=z.current;t.setTransform(n*O.zoom,0,0,n*O.zoom,n*O.ox,n*O.oy);let Z=Math.min(.74*x/C.W,.7*b/C.D),G=x/2,H=b/2+8,X=e=>G+e*Z,K=e=>H+e*Z,j=a.sharedWalkers.tick(C,B,U),q=Math.floor(-C.halfW)-2,_=Math.ceil(C.halfW)+2,Q=Math.floor(C.backZ)-2,V=Math.ceil(C.halfD)+2;for(let e=q;e<=_;e++)t.strokeStyle=e%4==0?"rgba(205,228,255,0.1)":"rgba(205,228,255,0.045)",t.lineWidth=1,t.beginPath(),t.moveTo(X(e),K(Q)),t.lineTo(X(e),K(V)),t.stroke();for(let e=Q;e<=V;e++)t.strokeStyle=e%4==0?"rgba(205,228,255,0.1)":"rgba(205,228,255,0.045)",t.beginPath(),t.moveTo(X(q),K(e)),t.lineTo(X(_),K(e)),t.stroke();let J=Math.max(5,.22*Z);t.fillStyle=d,t.fillRect(X(-C.halfW)-J,K(C.backZ)-J,C.W*Z+J,J),t.fillRect(X(-C.halfW)-J,K(C.backZ)-J,J,C.D*Z+J),t.fillRect(X(-C.halfW)-J,K(C.halfD),C.W*Z+J,J),t.strokeStyle=s,t.lineWidth=1.6,t.strokeRect(X(-C.halfW)-J,K(C.backZ)-J,C.W*Z+J,C.D*Z+2*J),t.setLineDash([7,6]),t.strokeStyle=h,t.beginPath(),t.moveTo(X(C.halfW),K(C.backZ)),t.lineTo(X(C.halfW),K(C.halfD)),t.stroke(),t.setLineDash([]);let ee=(e,l,n,a,o=.32)=>{t.fillStyle=a,t.font=`700 ${Math.max(9,Math.round(Z*o))}px ${g}`,t.textAlign="left",t.textBaseline="middle",t.fillText(e,X(l),K(n))};for(let e of(p(t,X,K,Z,C.lounge,"rgba(120,200,255,0.10)","rgba(150,210,255,0.5)",!0),ee("LOUNGE",C.lounge.x-C.lounge.w/2+.3,C.lounge.z-C.lounge.d/2+.6,"rgba(150,210,255,0.7)"),C.lounge.seats))t.strokeStyle=h,t.lineWidth=1,t.strokeRect(X(e.x-.45),K(e.z-.3),.9*Z,.6*Z);for(let e of(p(t,X,K,Z,C.bullpen,"rgba(205,228,255,0.05)",f,!0),ee("BULLPEN",C.bullpen.x-C.bullpen.w/2+.3,C.bullpen.z-C.bullpen.d/2+.6,c),t.strokeStyle=s,t.lineWidth=1.1,C.bullpen.agentDesks))t.strokeRect(X(e.desk.x-.7),K(e.desk.z-.3),1.4*Z,.6*Z);for(let e of(t.setLineDash([3,4]),t.strokeStyle=f,C.bullpen.spots))t.strokeRect(X(e.deskX-.6),K(e.deskZ-.28),1.2*Z,.56*Z);for(let e of(t.setLineDash([]),C.rooms)){let l=X(e.x-e.w/2),n=K(e.z-e.d/2);t.fillStyle=k(e.color,.1),t.fillRect(l,n,e.w*Z,e.d*Z),t.strokeStyle=k(e.color,.9),t.lineWidth=2;let a=e.x-e.w/2,o=e.x+e.w/2,i=e.z-e.d/2,r=e.z+e.d/2,h=e.door,f=(e,l,n,a)=>{t.beginPath(),t.moveTo(X(e),K(l)),t.lineTo(X(n),K(a)),t.stroke()},d=(e,t,l,n,a)=>{if(!h||null===a)return f(e,t,l,n);let o=h.w/2;"x"===a?(f(e,t,h.x-o,t),f(h.x+o,t,l,n)):(f(e,t,e,h.z-o),f(e,h.z+o,l,n))};for(let l of(d(a,i,o,i,h?.side==="N"?"x":null),d(a,r,o,r,h?.side==="S"?"x":null),d(a,i,a,r,h?.side==="W"?"z":null),d(o,i,o,r,h?.side==="E"?"z":null),ee(e.name.toUpperCase(),e.x-e.w/2+.3,e.z-e.d/2+.55,k(e.color,.95)),t.strokeStyle=s,t.lineWidth=1.1,e.desks))t.strokeRect(X(l.desk.x-.6),K(l.desk.z-.3),1.2*Z,.6*Z)}let et=C.board;for(let e of(t.strokeStyle="rgba(124,92,255,0.95)",t.lineWidth=Math.max(4,.16*Z),t.beginPath(),t.moveTo(X(-C.halfW+.12),K(et.z-et.w/2)),t.lineTo(X(-C.halfW+.12),K(et.z+et.w/2)),t.stroke(),t.save(),t.translate(X(-C.halfW+.7),K(et.z)),t.rotate(-Math.PI/2),t.fillStyle=u,t.font=`600 ${Math.max(9,Math.round(.3*Z))}px ${g}`,t.textAlign="center",t.textBaseline="middle",t.fillText("WORKBOARD · LIVE",0,0),t.restore(),t.strokeStyle=h,t.lineWidth=1,C.plants))t.beginPath(),t.arc(X(e.x),K(e.z),.32*Z*e.s,0,2*Math.PI),t.stroke();let el=X(C.entrance.x);for(let e of(t.strokeStyle=k("#28d6a8",.9),t.lineWidth=2,t.beginPath(),t.moveTo(el-Z,K(C.halfD)+.8*Z),t.lineTo(el-Z,K(C.halfD)),t.lineTo(el+ +Z,K(C.halfD)),t.lineTo(el+ +Z,K(C.halfD)+.8*Z),t.stroke(),t.fillStyle=c,t.font=`500 ${Math.max(8,Math.round(.26*Z))}px ${g}`,t.textAlign="center",t.fillText("ENTRY",el,K(C.halfD)+1.4*Z),m(t,X(-C.halfW),K(C.backZ)-J-22,X(C.halfW),K(C.backZ)-J-22,`${C.W.toFixed(1)} m`,!1),m(t,X(-C.halfW)-J-22,K(C.backZ),X(-C.halfW)-J-22,K(C.halfD),`${C.D.toFixed(1)} m`,!0),C.entityByKey.values())){let l=j.get(e.key);if(!l)continue;let n="thinking"===e.status?"…":("tool"===e.status||"cron"===e.status)&&e.activity?e.activity.title:void 0;!function(e,t,l,n,a,o,r,s,h,f){let d=i.STATUS_META[o];if(e.strokeStyle=d.color,e.lineWidth=2,e.beginPath(),e.arc(t,l,n+3+("tool"===o||"thinking"===o||"cron"===o?1.5*Math.sin(5*s):0),0,2*Math.PI),e.stroke(),e.fillStyle=a,e.beginPath(),e.arc(t,l,n,0,2*Math.PI),e.fill(),e.strokeStyle="rgba(10,25,50,0.8)",e.lineWidth=1.2,e.stroke(),e.fillStyle=u,e.font=`600 ${Math.max(8,Math.round(.26*h))}px ${g}`,e.textAlign="center",e.textBaseline="middle",e.fillText(r,t,l+n+11),f){let a=f.length>18?f.slice(0,17)+"…":f;e.font=`500 ${Math.max(8,Math.round(.24*h))}px ${g}`;let o=e.measureText(a).width+12,i=t+n+8,r=l-n-14;e.fillStyle="rgba(13,35,66,0.92)",e.strokeStyle=`${d.color}`,e.lineWidth=1,e.beginPath(),e.roundRect(i,r-8,o,16,8),e.fill(),e.stroke(),e.fillStyle=d.color,e.textAlign="left",e.fillText(a,i+6,r),e.textAlign="center"}}(t,X(l.x),K(l.z),(e.isSub?.16:.24)*Z,e.color,e.status,e.label.slice(0,14),B,Z,n)}t.setTransform(n,0,0,n,0,0),e=t,y=x-64,e.strokeStyle=h,e.lineWidth=1.2,e.beginPath(),e.arc(y,84,16,0,2*Math.PI),e.stroke(),e.beginPath(),e.moveTo(y,94),e.lineTo(y,74),e.moveTo(y-4,79),e.lineTo(y,74),e.lineTo(y+4,79),e.stroke(),e.fillStyle=c,e.font=`600 10px ${g}`,e.textAlign="center",e.textBaseline="middle",e.fillText("N",y,108),M=t,v=x,W=b,D=C,E=Y,L=v-250-18,A=W-94-16,M.strokeStyle=h,M.lineWidth=1.2,M.strokeRect(L,A,250,94),M.beginPath(),M.moveTo(L,A+26),M.lineTo(L+250,A+26),M.moveTo(L+137.5,A+26),M.lineTo(L+137.5,A+94-22),M.moveTo(L,A+94-22),M.lineTo(L+250,A+94-22),M.stroke(),M.fillStyle=u,M.font=`700 12px ${g}`,M.textAlign="left",M.textBaseline="middle",M.fillText("CLAWCRIB · BUILDING PLAN",L+10,A+13),M.font=`500 10px ${g}`,M.fillStyle=c,$=E.agents.reduce((e,t)=>e+t.subAgents.length,0),M.fillText(`ROOMS ${D.rooms.length}`,L+10,A+40),M.fillText(`SUBS ${$} \xb7 LOUNGE ${D.lounge.seats.length}`,L+10,A+56),M.fillText(`AGENTS ${E.agents.length}`,L+137.5+10,A+40),M.fillText(`${D.W.toFixed(1)}\xd7${D.D.toFixed(1)} m`,L+137.5+10,A+56),I=(0,o.boardColumns)(E.tasks).map(e=>`${e.title[0]}:${e.items.length}`).join(" "),M.fillText(I,L+10,A+94-11),l=requestAnimationFrame(R)};return l=requestAnimationFrame(R),()=>{cancelAnimationFrame(l),v.disconnect()}},[]),(0,t.jsx)("canvas",{ref:M,className:"block h-full w-full"})}function p(e,t,l,n,a,o,i,r){let s=t(a.x-a.w/2),h=l(a.z-a.d/2);e.fillStyle=o,e.fillRect(s,h,a.w*n,a.d*n),r&&e.setLineDash([6,5]),e.strokeStyle=i,e.lineWidth=1.2,e.strokeRect(s,h,a.w*n,a.d*n),e.setLineDash([])}function m(e,t,l,n,a,o,i){e.strokeStyle=h,e.lineWidth=1,e.beginPath(),e.moveTo(t,l),e.lineTo(n,a),e.stroke(),e.beginPath(),i?(e.moveTo(t-6,l),e.lineTo(t+6,l),e.moveTo(n-6,a),e.lineTo(n+6,a)):(e.moveTo(t,l-6),e.lineTo(t,l+6),e.moveTo(n,a-6),e.lineTo(n,a+6)),e.stroke(),e.fillStyle=c,e.font=`500 11px ${g}`,e.textAlign="center",e.textBaseline="middle",i?(e.save(),e.translate(t-12,(l+a)/2),e.rotate(-Math.PI/2),e.fillText(o,0,0),e.restore()):e.fillText(o,(t+n)/2,l-11)}function k(e,t){let l=e.replace("#",""),n=parseInt(3===l.length?l.split("").map(e=>e+e).join(""):l,16);return`rgba(${n>>16&255},${n>>8&255},${255&n},${Math.max(0,Math.min(1,t))})`}e.s(["default",()=>x],67743)},15697,e=>{e.n(e.i(67743))}]);