elanous 0.2.7 → 0.2.9

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 (296) hide show
  1. package/apps/pwa/out/404/index.html +1 -1
  2. package/apps/pwa/out/404.html +1 -1
  3. package/apps/pwa/out/_next/static/bFI5EEwg7T6aG88ibX4Zq/_buildManifest.js +1 -0
  4. package/apps/pwa/out/_next/static/chunks/7032-f4ef698518fba61c.js +1 -0
  5. package/apps/pwa/out/_next/static/chunks/8067-d976b441a104ab74.js +1 -0
  6. package/apps/pwa/out/_next/static/chunks/8519-5632377cce994f86.js +1 -0
  7. package/apps/pwa/out/_next/static/chunks/8630-cdfc61e82c653ffc.js +1 -0
  8. package/apps/pwa/out/_next/static/chunks/8894-e263b332208e3957.js +1 -0
  9. package/apps/pwa/out/_next/static/chunks/9454-139040d37c79dbc9.js +1 -0
  10. package/apps/pwa/out/_next/static/chunks/9740-8f5ff96c522b5f55.js +1 -0
  11. package/apps/pwa/out/_next/static/chunks/app/approvals/page-fb7c2d458f32fcad.js +1 -0
  12. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-35e2713597dd24d1.js +1 -0
  13. package/apps/pwa/out/_next/static/chunks/app/board/page-918b656f064577ba.js +1 -0
  14. package/apps/pwa/out/_next/static/chunks/app/botlab/{page-624f7a2f89b60c8f.js → page-f972fc1c00a62e88.js} +1 -1
  15. package/apps/pwa/out/_next/static/chunks/app/bots/{page-5a5fb385a4df0ffe.js → page-5f30e00693527ebd.js} +1 -1
  16. package/apps/pwa/out/_next/static/chunks/app/chat/{page-80497e93a878ddc5.js → page-7fbae173b3c103a7.js} +1 -1
  17. package/apps/pwa/out/_next/static/chunks/app/consult/{page-7457f52683562161.js → page-3b4edcce364062ea.js} +1 -1
  18. package/apps/pwa/out/_next/static/chunks/app/control/page-c5794f484c251f44.js +1 -0
  19. package/apps/pwa/out/_next/static/chunks/app/design-check/page-1130d8eefcd87e76.js +1 -0
  20. package/apps/pwa/out/_next/static/chunks/app/editor/page-973996d584f008c1.js +1 -0
  21. package/apps/pwa/out/_next/static/chunks/app/exec/{page-b7dcf5d48a854b76.js → page-016e2bda04eecb1f.js} +1 -1
  22. package/apps/pwa/out/_next/static/chunks/app/field/{page-51480757e7d68b92.js → page-b4d6d9a3b56f2940.js} +1 -1
  23. package/apps/pwa/out/_next/static/chunks/app/intake/page-ec49a466121233ba.js +1 -0
  24. package/apps/pwa/out/_next/static/chunks/app/layout-f72db356744ceade.js +1 -0
  25. package/apps/pwa/out/_next/static/chunks/app/live/page-a6fd9b50d1b85378.js +1 -0
  26. package/apps/pwa/out/_next/static/chunks/app/market/page-8b0402a46a749a3d.js +1 -0
  27. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/{page-07267f1391b96aba.js → page-037f83e2a1edc8e2.js} +1 -1
  28. package/apps/pwa/out/_next/static/chunks/app/morning/{page-55d50e9b0006a91d.js → page-adfbd2ba9598e59a.js} +1 -1
  29. package/apps/pwa/out/_next/static/chunks/app/not-found-46fedff57d4bec67.js +1 -0
  30. package/apps/pwa/out/_next/static/chunks/app/observatory/page-0cf318e9dcee2bbf.js +1 -0
  31. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-899b327cb8b6845c.js +1 -0
  32. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-6c1e6ba743a29dfe.js +1 -0
  33. package/apps/pwa/out/_next/static/chunks/app/{page-a7e37af7d0399cb8.js → page-1a8e4807292f6b17.js} +1 -1
  34. package/apps/pwa/out/_next/static/chunks/app/reflection/page-28deba6bcb834916.js +1 -0
  35. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-de68e2205794037d.js +1 -0
  36. package/apps/pwa/out/_next/static/chunks/app/sessions/{page-15e5a15db84c56aa.js → page-c71c33a573230672.js} +1 -1
  37. package/apps/pwa/out/_next/static/chunks/app/settings/devices/{page-a2e572e4511f2a16.js → page-0df30e0c7e50148a.js} +1 -1
  38. package/apps/pwa/out/_next/static/chunks/app/settings/page-4fc56790fe0d2682.js +1 -0
  39. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-59df2aebb38a7c1e.js +1 -0
  40. package/apps/pwa/out/_next/static/chunks/app/setup/page-4647be5dbcbd0795.js +1 -0
  41. package/apps/pwa/out/_next/static/chunks/app/share/page-e025892bda74b743.js +1 -0
  42. package/apps/pwa/out/_next/static/chunks/app/showroom/page-a0955de73b89f078.js +1 -0
  43. package/apps/pwa/out/_next/static/chunks/app/tasks/{page-c1c95739c0bff3b8.js → page-369846d2921af584.js} +1 -1
  44. package/apps/pwa/out/_next/static/chunks/app/term/page-72cbc1c8cdd0f65d.js +1 -0
  45. package/apps/pwa/out/_next/static/chunks/app/trace/{page-71d18eec33b9c667.js → page-77b28bfb0996d5ea.js} +1 -1
  46. package/apps/pwa/out/_next/static/chunks/app/vault/page-3220c4934f49c6c2.js +1 -0
  47. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/{page-2c4e59079ee357ac.js → page-90670589b87abea8.js} +1 -1
  48. package/apps/pwa/out/_next/static/chunks/app/workflows/page-7df9243ed021a4cc.js +1 -0
  49. package/apps/pwa/out/_next/static/chunks/app/workspace/{page-5d422f38c052967e.js → page-4498c3853f4f688d.js} +1 -1
  50. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-35bedde6d885f08f.js +1 -0
  51. package/apps/pwa/out/_next/static/css/f92f63a5df0ba229.css +1 -0
  52. package/apps/pwa/out/approvals/index.html +1 -1
  53. package/apps/pwa/out/approvals/index.txt +30 -29
  54. package/apps/pwa/out/autopilot/index.html +1 -1
  55. package/apps/pwa/out/autopilot/index.txt +30 -29
  56. package/apps/pwa/out/board/index.html +1 -1
  57. package/apps/pwa/out/board/index.txt +30 -29
  58. package/apps/pwa/out/botlab/index.html +1 -1
  59. package/apps/pwa/out/botlab/index.txt +27 -26
  60. package/apps/pwa/out/bots/index.html +1 -1
  61. package/apps/pwa/out/bots/index.txt +27 -26
  62. package/apps/pwa/out/chat/index.html +1 -1
  63. package/apps/pwa/out/chat/index.txt +27 -26
  64. package/apps/pwa/out/consult/index.html +1 -1
  65. package/apps/pwa/out/consult/index.txt +30 -29
  66. package/apps/pwa/out/control/index.html +1 -1
  67. package/apps/pwa/out/control/index.txt +30 -29
  68. package/apps/pwa/out/design-check/index.html +1 -1
  69. package/apps/pwa/out/design-check/index.txt +30 -29
  70. package/apps/pwa/out/editor/index.html +1 -1
  71. package/apps/pwa/out/editor/index.txt +30 -29
  72. package/apps/pwa/out/exec/index.html +1 -1
  73. package/apps/pwa/out/exec/index.txt +30 -29
  74. package/apps/pwa/out/field/index.html +1 -1
  75. package/apps/pwa/out/field/index.txt +30 -29
  76. package/apps/pwa/out/healthz +1 -1
  77. package/apps/pwa/out/index.html +1 -1
  78. package/apps/pwa/out/index.txt +27 -26
  79. package/apps/pwa/out/intake/index.html +1 -1
  80. package/apps/pwa/out/intake/index.txt +30 -29
  81. package/apps/pwa/out/live/index.html +1 -1
  82. package/apps/pwa/out/live/index.txt +30 -29
  83. package/apps/pwa/out/market/index.html +1 -1
  84. package/apps/pwa/out/market/index.txt +27 -26
  85. package/apps/pwa/out/missions/placeholder/index.html +1 -1
  86. package/apps/pwa/out/missions/placeholder/index.txt +27 -26
  87. package/apps/pwa/out/morning/index.html +1 -1
  88. package/apps/pwa/out/morning/index.txt +30 -29
  89. package/apps/pwa/out/observatory/index.html +1 -1
  90. package/apps/pwa/out/observatory/index.txt +30 -29
  91. package/apps/pwa/out/ops/checklist/index.html +1 -0
  92. package/apps/pwa/out/ops/checklist/index.txt +30 -0
  93. package/apps/pwa/out/ops/release/index.html +1 -0
  94. package/apps/pwa/out/ops/release/index.txt +30 -0
  95. package/apps/pwa/out/reflection/index.html +1 -1
  96. package/apps/pwa/out/reflection/index.txt +28 -27
  97. package/apps/pwa/out/scheduler/index.html +1 -1
  98. package/apps/pwa/out/scheduler/index.txt +30 -29
  99. package/apps/pwa/out/sessions/index.html +1 -1
  100. package/apps/pwa/out/sessions/index.txt +27 -26
  101. package/apps/pwa/out/settings/devices/index.html +1 -1
  102. package/apps/pwa/out/settings/devices/index.txt +30 -29
  103. package/apps/pwa/out/settings/index.html +1 -1
  104. package/apps/pwa/out/settings/index.txt +30 -29
  105. package/apps/pwa/out/setup/done/index.html +1 -1
  106. package/apps/pwa/out/setup/done/index.txt +30 -29
  107. package/apps/pwa/out/setup/index.html +1 -1
  108. package/apps/pwa/out/setup/index.txt +30 -29
  109. package/apps/pwa/out/share/index.html +1 -1
  110. package/apps/pwa/out/share/index.txt +30 -29
  111. package/apps/pwa/out/showroom/index.html +1 -1
  112. package/apps/pwa/out/showroom/index.txt +27 -26
  113. package/apps/pwa/out/tasks/index.html +1 -1
  114. package/apps/pwa/out/tasks/index.txt +30 -29
  115. package/apps/pwa/out/term/index.html +1 -1
  116. package/apps/pwa/out/term/index.txt +30 -29
  117. package/apps/pwa/out/trace/index.html +1 -1
  118. package/apps/pwa/out/trace/index.txt +30 -29
  119. package/apps/pwa/out/vault/index.html +1 -1
  120. package/apps/pwa/out/vault/index.txt +30 -29
  121. package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
  122. package/apps/pwa/out/workflows/chat-ui/index.txt +30 -29
  123. package/apps/pwa/out/workflows/index.html +1 -1
  124. package/apps/pwa/out/workflows/index.txt +30 -29
  125. package/apps/pwa/out/workspace/index.html +1 -1
  126. package/apps/pwa/out/workspace/index.txt +30 -29
  127. package/apps/pwa/out/worktrees/index.html +1 -1
  128. package/apps/pwa/out/worktrees/index.txt +30 -29
  129. package/graphs/release/recipes.yaml +3 -0
  130. package/graphs/release/release-loop.yaml +3 -1
  131. package/graphs/test-diet/nightly-audit.yaml +18 -0
  132. package/graphs/test-diet/recipes.yaml +12 -0
  133. package/graphs/test-diet/test-diet.yaml +22 -0
  134. package/package.json +2 -1
  135. package/persona-presets/_index.yaml +10 -0
  136. package/persona-presets/_schema.json +146 -0
  137. package/persona-presets/dana.yaml +26 -0
  138. package/persona-presets/haru.yaml +27 -0
  139. package/persona-presets/kai.yaml +27 -0
  140. package/persona-presets/leo.yaml +27 -0
  141. package/persona-presets/mira.yaml +30 -0
  142. package/persona-presets/nari.yaml +27 -0
  143. package/persona-presets/sora.yaml +27 -0
  144. package/persona-presets/yuna.yaml +27 -0
  145. package/plugins/doc-draft/graphs/run-step.ts +1 -1
  146. package/plugins/geo-check/graphs/run-step.ts +34 -10
  147. package/scripts/field-feed/deliver-node.ts +8 -3
  148. package/scripts/field-feed/lib.ts +2 -0
  149. package/scripts/install.sh +20 -11
  150. package/scripts/persona-presets/lint.ts +79 -0
  151. package/scripts/release-loop/checklist-gate-node.ts +2 -2
  152. package/scripts/release-loop/cutoff.ts +20 -2
  153. package/scripts/release-loop/export-check-node.ts +85 -0
  154. package/scripts/release-loop/gate-node.ts +45 -7
  155. package/scripts/release-loop/node-verdict.ts +8 -1
  156. package/scripts/release-loop/npm-publish-node.ts +10 -4
  157. package/scripts/release-loop/ops-upgrade-node.ts +11 -3
  158. package/scripts/release-loop/publish-node.ts +23 -1
  159. package/scripts/release-loop/shard-plan.ts +17 -0
  160. package/scripts/storyboard/storyboard.ts +167 -0
  161. package/scripts/test-diet/lib.ts +89 -0
  162. package/scripts/test-diet/node.ts +144 -0
  163. package/src/acp/auth-methods.ts +30 -0
  164. package/src/acp/server.ts +5 -5
  165. package/src/auth/setup-link-tokens.fixture.ts +19 -0
  166. package/src/auth/setup-link-tokens.ts +153 -0
  167. package/src/budget/unified-usage.ts +75 -0
  168. package/src/channel-bot-token.ts +37 -10
  169. package/src/channel-import/detect.ts +191 -0
  170. package/src/channel-import/run.ts +111 -0
  171. package/src/chat/index.ts +9 -9
  172. package/src/cli/config-test-sync.ts +4 -0
  173. package/src/cli/decisions-cli.ts +13 -3
  174. package/src/cli/doctor-bundle.ts +128 -0
  175. package/src/cli/doctor-cli.ts +36 -1
  176. package/src/cli/doctor-local-llm.ts +95 -0
  177. package/src/cli/import-cli.ts +60 -0
  178. package/src/cli/mcp-login.ts +13 -4
  179. package/src/cli/op-proxy-sync.ts +83 -0
  180. package/src/cli/persona-cli.ts +116 -0
  181. package/src/cli/pr-cli.ts +6 -2
  182. package/src/cli/release-cli.ts +49 -8
  183. package/src/cli/skills-cli.ts +173 -0
  184. package/src/cli/start-cli.ts +13 -4
  185. package/src/codex/setup.ts +15 -13
  186. package/src/dashboard/dashboard-status-lines.ts +45 -0
  187. package/src/dashboard/first-screen-band.ts +35 -0
  188. package/src/dashboard/index.ts +87 -14
  189. package/src/dashboard/provider-slash-runtime.ts +28 -11
  190. package/src/dashboard/slash-runtime/dashboard-handlers.ts +12 -2
  191. package/src/dashboard/slash-runtime/help-from-registry.ts +4 -2
  192. package/src/dashboard/turn-stream-formatter.ts +1 -1
  193. package/src/decisions/decision-cards.ts +291 -0
  194. package/src/decisions/decision-ledger.ts +5 -2
  195. package/src/decisions/discord-decision-cards.ts +133 -0
  196. package/src/decisions/telegram-decision-cards.ts +100 -0
  197. package/src/directives/version-at.ts +77 -0
  198. package/src/discord.ts +17 -0
  199. package/src/domains/outbound-alert.ts +44 -1
  200. package/src/domains/repeated-failure.ts +1 -1
  201. package/src/error-report/report.ts +200 -0
  202. package/src/exec-requests/planner.ts +8 -2
  203. package/src/exec-requests/runner.ts +64 -24
  204. package/src/exec-requests/store.ts +2 -0
  205. package/src/field/field-feed-auto.ts +48 -0
  206. package/src/field/field-reel.ts +8 -1
  207. package/src/hooks/error-report.ts +210 -0
  208. package/src/hooks/receiver.ts +41 -1
  209. package/src/import/apply.ts +128 -0
  210. package/src/import/plan.ts +197 -0
  211. package/src/index.ts +98 -11
  212. package/src/input-core/text-entry.ts +13 -5
  213. package/src/intake-plane/seat-answer.ts +96 -0
  214. package/src/intake-plane/seat-doc-route.ts +17 -3
  215. package/src/maturity/feature-maturity.ts +2 -0
  216. package/src/nexus/api/consult-requests.ts +19 -8
  217. package/src/nexus/api/error-reports.ts +108 -0
  218. package/src/nexus/api/http-server.ts +41 -1
  219. package/src/nexus/api/meta-api.ts +27 -0
  220. package/src/nexus/api/operator.ts +61 -0
  221. package/src/nexus/api/ops-api.ts +139 -0
  222. package/src/nexus/api/ops-seats-sources.ts +65 -0
  223. package/src/nexus/api/ops-seats.ts +114 -0
  224. package/src/nexus/api/outbound-report.ts +7 -0
  225. package/src/nexus/api/public-routes.ts +14 -1
  226. package/src/nexus/api/running-runs-background.ts +68 -0
  227. package/src/nexus/api/running-runs-child.ts +6 -0
  228. package/src/nexus/api/setup-claim.ts +21 -0
  229. package/src/nexus/api/share-captures.ts +91 -0
  230. package/src/nexus/api/skill-problems.ts +56 -0
  231. package/src/nexus/api/terminals.ts +24 -8
  232. package/src/nexus/config/secrets/file-backend.ts +56 -18
  233. package/src/nexus/index.ts +25 -1
  234. package/src/nexus/setup-status.ts +7 -2
  235. package/src/oauth/browser-availability.ts +14 -0
  236. package/src/oauth/codex-quota-policy.ts +16 -0
  237. package/src/onboarding/continue-here.ts +13 -8
  238. package/src/onboarding/first-run-doctor.ts +54 -0
  239. package/src/onboarding/web-first.ts +8 -1
  240. package/src/onboarding.ts +66 -12
  241. package/src/persona/presets.ts +105 -0
  242. package/src/release-loop/checklist.ts +33 -69
  243. package/src/release-loop/feature-store.ts +327 -0
  244. package/src/release-loop/manifest.ts +59 -5
  245. package/src/seat-dispatch/ceo-commands.ts +65 -0
  246. package/src/self-dev/orchestrate.ts +18 -11
  247. package/src/shell-env-bootstrap.ts +44 -7
  248. package/src/skills/connect-claude-plugin.ts +142 -0
  249. package/src/skills/connect.ts +70 -0
  250. package/src/skills/index.ts +29 -1
  251. package/src/skills/repair.ts +124 -0
  252. package/src/skills/runner.ts +11 -2
  253. package/src/skills/tools/usage-slash.ts +8 -7
  254. package/src/skills/trigger-extract.ts +1 -1
  255. package/src/task-orchestrator/surfaces/pod-command-job.ts +16 -8
  256. package/src/telegram-commands.ts +29 -0
  257. package/src/telegram-run.ts +83 -13
  258. package/src/telegram.ts +34 -0
  259. package/src/thinking-line.ts +28 -20
  260. package/src/tui/chat/execution-badge.ts +1 -1
  261. package/src/user-config.ts +111 -13
  262. package/src/ux-sim/turn-states.ts +1 -1
  263. package/src/version/packed-revision.json +1 -1
  264. package/apps/pwa/out/_next/static/chunks/4836-2eba6079f31b88d4.js +0 -1
  265. package/apps/pwa/out/_next/static/chunks/8067-f74bf14d67ad98f1.js +0 -1
  266. package/apps/pwa/out/_next/static/chunks/8519-f6b5d8a5833a7603.js +0 -1
  267. package/apps/pwa/out/_next/static/chunks/8894-e92491a164192cc1.js +0 -1
  268. package/apps/pwa/out/_next/static/chunks/9454-a3e0953307216c58.js +0 -1
  269. package/apps/pwa/out/_next/static/chunks/9740-67051141115ce775.js +0 -1
  270. package/apps/pwa/out/_next/static/chunks/9804-64c02c3c127d5014.js +0 -1
  271. package/apps/pwa/out/_next/static/chunks/app/approvals/page-d5ebde04844689e6.js +0 -1
  272. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-10ed24f413ed66e9.js +0 -1
  273. package/apps/pwa/out/_next/static/chunks/app/board/page-211810b6c93ab66a.js +0 -1
  274. package/apps/pwa/out/_next/static/chunks/app/control/page-cee86394de407aa6.js +0 -1
  275. package/apps/pwa/out/_next/static/chunks/app/design-check/page-4ff8edab44196b8c.js +0 -1
  276. package/apps/pwa/out/_next/static/chunks/app/editor/page-92e4f44428d5e290.js +0 -1
  277. package/apps/pwa/out/_next/static/chunks/app/intake/page-2a05dfe80c8bdf16.js +0 -1
  278. package/apps/pwa/out/_next/static/chunks/app/layout-d9979633aa82f8e6.js +0 -1
  279. package/apps/pwa/out/_next/static/chunks/app/live/page-30533117beb53625.js +0 -1
  280. package/apps/pwa/out/_next/static/chunks/app/market/page-f7857826c2f97ad7.js +0 -1
  281. package/apps/pwa/out/_next/static/chunks/app/not-found-9699b1786be6171d.js +0 -1
  282. package/apps/pwa/out/_next/static/chunks/app/observatory/page-43dd772aee8af75f.js +0 -1
  283. package/apps/pwa/out/_next/static/chunks/app/reflection/page-973ab7af59c718b7.js +0 -1
  284. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-a9f8d3865b91e436.js +0 -1
  285. package/apps/pwa/out/_next/static/chunks/app/settings/page-dd107bf1c7d52a90.js +0 -1
  286. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-d42b99cdfb9f27c6.js +0 -1
  287. package/apps/pwa/out/_next/static/chunks/app/setup/page-2764ff40dad5a995.js +0 -1
  288. package/apps/pwa/out/_next/static/chunks/app/share/page-c5f1152db116ff96.js +0 -1
  289. package/apps/pwa/out/_next/static/chunks/app/showroom/page-f933bca81ea38a6f.js +0 -1
  290. package/apps/pwa/out/_next/static/chunks/app/term/page-a7aaffcf771662d8.js +0 -1
  291. package/apps/pwa/out/_next/static/chunks/app/vault/page-56adbe1a1f1379bd.js +0 -1
  292. package/apps/pwa/out/_next/static/chunks/app/workflows/page-a81f113f3ef89d72.js +0 -1
  293. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-fc27b00e20733146.js +0 -1
  294. package/apps/pwa/out/_next/static/css/f537bdb19c69306a.css +0 -1
  295. package/apps/pwa/out/_next/static/keajW7DDyghEs1y8oJe6T/_buildManifest.js +0 -1
  296. /package/apps/pwa/out/_next/static/{keajW7DDyghEs1y8oJe6T → bFI5EEwg7T6aG88ibX4Zq}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><!--keajW7DDyghEs1y8oJe6T--><html lang="ko" class="font-sans __variable_45c93f"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><link rel="preload" href="/app/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/app/_next/static/css/f537bdb19c69306a.css" data-precedence="next"/><link rel="stylesheet" href="/app/_next/static/css/04dabcbcc4bfa6db.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js"/><script src="/app/_next/static/chunks/8046cadf-211ca3c0e00f2b72.js" async=""></script><script src="/app/_next/static/chunks/6725-68ab7cc0b1faf00d.js" async=""></script><script src="/app/_next/static/chunks/main-app-6870f30ea99f8346.js" async=""></script><script src="/app/_next/static/chunks/2977-e38442e86289f1d3.js" async=""></script><script src="/app/_next/static/chunks/920-f7dceb78f1c585ef.js" async=""></script><script src="/app/_next/static/chunks/6062-73e68343a9814f6a.js" async=""></script><script src="/app/_next/static/chunks/7990-e12efba616f46e03.js" async=""></script><script src="/app/_next/static/chunks/6998-a654fe5c58271600.js" async=""></script><script src="/app/_next/static/chunks/1201-09613bce624467c0.js" async=""></script><script src="/app/_next/static/chunks/9804-64c02c3c127d5014.js" async=""></script><script src="/app/_next/static/chunks/8519-f6b5d8a5833a7603.js" async=""></script><script src="/app/_next/static/chunks/2375-cb6debea56cce4fb.js" async=""></script><script src="/app/_next/static/chunks/9454-a3e0953307216c58.js" async=""></script><script src="/app/_next/static/chunks/8067-f74bf14d67ad98f1.js" async=""></script><script src="/app/_next/static/chunks/8619-4365e03a2862830f.js" async=""></script><script src="/app/_next/static/chunks/5791-bb82743fa6299562.js" async=""></script><script src="/app/_next/static/chunks/app/layout-d9979633aa82f8e6.js" async=""></script><script src="/app/_next/static/chunks/6416-505ba707cacafbba.js" async=""></script><script src="/app/_next/static/chunks/app/not-found-9699b1786be6171d.js" async=""></script><script src="/app/_next/static/chunks/app/botlab/page-624f7a2f89b60c8f.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="preload" as="font" type="font/ttf" href="/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf" crossorigin="anonymous"/><meta name="theme-color" content="#1e1e2e"/><title>Botlab · elanous</title><meta name="description" content="elanous — voice · chat · intake · control · terminal."/><meta name="application-name" content="elanous"/><link rel="manifest" href="/app/manifest.webmanifest"/><link rel="icon" href="/app/icons/elanous-32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/app/icons/elanous-16.png" sizes="16x16" type="image/png"/><link rel="apple-touch-icon" href="/app/icons/elanous-180.png" sizes="180x180" type="image/png"/><script src="/app/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full flex-col bg-background text-foreground"><header class="flex h-9 shrink-0 items-center gap-1 border-b border-border bg-background px-2 text-xs"><button type="button" aria-label="open menu" title="open menu" class="flex shrink-0 items-center gap-1.5 rounded-md p-2 text-muted-foreground hover:bg-accent hover:text-foreground"><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-menu h-4 w-4" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg><span class="hidden text-[11px] font-medium leading-none sm:inline">메뉴</span></button><div class="ml-auto flex items-center gap-1"><a aria-label="voice" title="voice (HTTPS Tailscale Serve 필요)" class="rounded-md p-1.5 text-muted-foreground hover:bg-accent hover:text-foreground" href="/app/"><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-mic h-4 w-4" aria-hidden="true"><path d="M12 19v3"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><rect x="9" y="2" width="6" height="13" rx="3"></rect></svg></a><div class="relative"><button type="button" aria-label="settings" title="session — · theme catppuccin-mocha" class="rounded-md p-1.5 hover:bg-accent text-muted-foreground hover:text-foreground"><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-settings h-4 w-4" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></button></div></div></header><div class="flex flex-1 min-h-0"><aside class="hidden md:flex md:w-10 md:flex-col border-r border-sidebar-border bg-sidebar text-sidebar-foreground"><nav class="flex h-full flex-col"><ul class="flex-1 space-y-1 px-1 py-2"><li class="group/nav relative"><a title="Terminal — 터미널 + agent dock" aria-label="Terminal — 터미널 + agent dock" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/term/"><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-square-terminal h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Terminal</span><span class="ml-1 text-muted-foreground">— <!-- -->터미널 + agent dock</span></span></li><li class="group/nav relative"><a title="Chat — 채팅 (스트리밍 · multimodal · mic)" aria-label="Chat — 채팅 (스트리밍 · multimodal · mic)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/chat/"><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-message-square h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Chat</span><span class="ml-1 text-muted-foreground">— <!-- -->채팅 (스트리밍 · multimodal · mic)</span></span></li><li class="group/nav relative"><a title="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" aria-label="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/live/"><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-activity h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Live</span><span class="ml-1 text-muted-foreground">— <!-- -->런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)</span></span></li><li class="group/nav relative"><a title="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" aria-label="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/market/"><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-store h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5"></path><path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244"></path><path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">마켓</span><span class="ml-1 text-muted-foreground">— <!-- -->플러그인 찾아보기 · 상세 · 설치됨</span></span></li><li class="group/nav relative"><a title="Settings — 환경 + provider + theme" aria-label="Settings — 환경 + provider + theme" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/settings/"><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-settings h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Settings</span><span class="ml-1 text-muted-foreground">— <!-- -->환경 + provider + theme</span></span></li></ul></nav></aside><main class="flex-1 overflow-auto min-w-0"><main class="mx-auto flex w-full max-w-6xl flex-col gap-6 px-6 py-10 sm:px-10" data-testid="botlab-panel"><header><p class="text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground">Bot screens</p><h1 class="mt-2 text-3xl font-bold">Botlab</h1><p class="mt-2 max-w-3xl text-sm text-muted-foreground">Live noVNC screens for the bots, served through Tailscale. One document holds all four sessions, so the VNC password is asked <strong>once</strong>, not four times.</p><p class="mt-2 max-w-3xl text-sm text-muted-foreground">View-only by default. This surface cannot send commands or control the bots.</p></header><section class="rounded-xl border border-border bg-card p-4" aria-label="Wall address"><h2 class="text-sm font-semibold">Wall address</h2><p class="mt-1 break-all font-mono text-xs text-muted-foreground" data-testid="botlab-wall-url">(no host configured)</p><p class="mt-2 text-xs text-muted-foreground" data-testid="botlab-host-source">No wall host is configured. Open this page once with ?host=&lt;the VM tailnet name&gt; — it is remembered on this device.</p></section><section class="rounded-xl border border-border bg-card p-5" aria-label="If the wall is blank"><h2 class="text-sm font-semibold">If the wall stays blank</h2><p class="mt-1 text-sm text-muted-foreground">A blank frame is not necessarily a broken bot. There are three separate reasons, with different fixes:</p><ol class="mt-3 list-decimal space-y-2 pl-5 text-sm text-muted-foreground"><li><strong>This device is outside the tailnet.</strong> The address simply does not exist here. Join the tailnet, or view the screens from a device that is on it.</li><li><strong>Tailscale serve is not published.</strong> Re-run<!-- --> <code class="font-mono text-xs">bash scripts/botlab/deploy-bot-wall.sh</code>, which re-publishes the paths and then verifies each one returns 200.</li><li><strong>The wall loaded but did not connect.</strong> That is a VNC-level failure, not a page failure — the wall itself reports connected/failed counts once you enter the password.</li></ol><p class="mt-3 text-xs text-muted-foreground">The VNC password is deliberately not carried in this page or in the URL: any page a bot browser opens could otherwise reach the local websocket, and websockets have no CORS.</p></section><section class="rounded-xl border border-dashed border-border p-5" aria-label="Not wired yet"><h2 class="text-sm font-semibold">Not wired yet</h2><ul class="mt-2 list-disc space-y-1 pl-5 text-sm text-muted-foreground"><li>Per-bot cell headers (name · last round verdict · whether CDP is alive) need<!-- --> <code class="font-mono text-xs">browserPort</code> and round results on the daemon&#x27;s persona route. That route is owned by another track and is not published today.</li><li>Running a command from this surface needs a POST route that does not exist yet.</li></ul></section></main><!--$--><!--/$--></main></div></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n"])</script><script>self.__next_f.push([1,"2:I[67976,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"ServiceWorkerRegister\"]\n"])</script><script>self.__next_f.push([1,"3:I[12248,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"NewBuildBanner\"]\n"])</script><script>self.__next_f.push([1,"4:I[38519,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"DaemonProvider\"]\n"])</script><script>self.__next_f.push([1,"5:I[8687,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"NexusClientProvider\"]\n"])</script><script>self.__next_f.push([1,"6:I[94936,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"7:I[85039,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"TooltipProvider\"]\n"])</script><script>self.__next_f.push([1,"8:I[21545,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"ToastProvider\"]\n"])</script><script>self.__next_f.push([1,"9:I[1167,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"AppShell\"]\n"])</script><script>self.__next_f.push([1,"a:I[51411,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"MaturityBanner\"]\n"])</script><script>self.__next_f.push([1,"b:I[57048,[],\"\"]\nc:I[75854,[],\"\"]\nd:I[70766,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6416\",\"static/chunks/6416-505ba707cacafbba.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"4345\",\"static/chunks/app/not-found-9699b1786be6171d.js\"],\"default\"]\ne:I[74715,[\"7955\",\"static/chunks/app/botlab/page-624f7a2f89b60c8f.js\"],\"BotlabPageContent\"]\nf:I[78357,[],\"OutletBoundary\"]\n11:I[70112,[],\"AsyncMetadataOutlet\"]\n13:I[78357,[],\"ViewportBoundary\"]\n15:I[78357,[],\"MetadataBoundary\"]\n16:\"$Sreact.suspense\"\n18:I[26324,[],\"\"]\n:HL[\"/app/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/css/f537bdb19c69306a.css\",\"style\"]\n:HL[\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"keajW7DDyghEs1y8oJe6T\",\"p\":\"/app\",\"c\":[\"\",\"botlab\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"botlab\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/f537bdb19c69306a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"font-sans __variable_45c93f\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"preload\",\"as\":\"font\",\"type\":\"font/ttf\",\"href\":\"/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf\",\"crossOrigin\":\"anonymous\"}]}],[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L9\",null,{\"children\":[[\"$\",\"$La\",null,{}],[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$Ld\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]}]}]}]}]]}]]}]]}],{\"children\":[\"botlab\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Le\",null,{}],null,[\"$\",\"$Lf\",null,{\"children\":[\"$L10\",[\"$\",\"$L11\",null,{\"promise\":\"$@12\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L15\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$16\",null,{\"fallback\":null,\"children\":\"$L17\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#1e1e2e\"}]]\n10:null\n"])</script><script>self.__next_f.push([1,"19:I[48592,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"12:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Botlab · elanous\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"elanous — voice · chat · intake · control · terminal.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"elanous\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/app/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/app/icons/elanous-180.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L19\",\"7\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"17:\"$12:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--bFI5EEwg7T6aG88ibX4Zq--><html lang="ko" class="font-sans __variable_45c93f"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><link rel="preload" href="/app/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/app/_next/static/css/f92f63a5df0ba229.css" data-precedence="next"/><link rel="stylesheet" href="/app/_next/static/css/04dabcbcc4bfa6db.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js"/><script src="/app/_next/static/chunks/8046cadf-211ca3c0e00f2b72.js" async=""></script><script src="/app/_next/static/chunks/6725-68ab7cc0b1faf00d.js" async=""></script><script src="/app/_next/static/chunks/main-app-6870f30ea99f8346.js" async=""></script><script src="/app/_next/static/chunks/2977-e38442e86289f1d3.js" async=""></script><script src="/app/_next/static/chunks/920-f7dceb78f1c585ef.js" async=""></script><script src="/app/_next/static/chunks/6062-73e68343a9814f6a.js" async=""></script><script src="/app/_next/static/chunks/7990-e12efba616f46e03.js" async=""></script><script src="/app/_next/static/chunks/6998-a654fe5c58271600.js" async=""></script><script src="/app/_next/static/chunks/1201-09613bce624467c0.js" async=""></script><script src="/app/_next/static/chunks/7032-f4ef698518fba61c.js" async=""></script><script src="/app/_next/static/chunks/8519-5632377cce994f86.js" async=""></script><script src="/app/_next/static/chunks/2375-cb6debea56cce4fb.js" async=""></script><script src="/app/_next/static/chunks/9454-139040d37c79dbc9.js" async=""></script><script src="/app/_next/static/chunks/8067-d976b441a104ab74.js" async=""></script><script src="/app/_next/static/chunks/8619-4365e03a2862830f.js" async=""></script><script src="/app/_next/static/chunks/5791-bb82743fa6299562.js" async=""></script><script src="/app/_next/static/chunks/app/layout-f72db356744ceade.js" async=""></script><script src="/app/_next/static/chunks/6416-505ba707cacafbba.js" async=""></script><script src="/app/_next/static/chunks/app/not-found-46fedff57d4bec67.js" async=""></script><script src="/app/_next/static/chunks/app/botlab/page-f972fc1c00a62e88.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="preload" as="font" type="font/ttf" href="/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf" crossorigin="anonymous"/><meta name="theme-color" content="#1e1e2e"/><title>Botlab · elanous</title><meta name="description" content="elanous — voice · chat · intake · control · terminal."/><meta name="application-name" content="elanous"/><link rel="manifest" href="/app/manifest.webmanifest"/><link rel="icon" href="/app/icons/elanous-32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/app/icons/elanous-16.png" sizes="16x16" type="image/png"/><link rel="apple-touch-icon" href="/app/icons/elanous-180.png" sizes="180x180" type="image/png"/><script src="/app/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full flex-col bg-background text-foreground"><header class="flex h-9 shrink-0 items-center gap-1 border-b border-border bg-background px-2 text-xs"><button type="button" aria-label="open menu" title="open menu" class="flex shrink-0 items-center gap-1.5 rounded-md p-2 text-muted-foreground hover:bg-accent hover:text-foreground"><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-menu h-4 w-4" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg><span class="hidden text-[11px] font-medium leading-none sm:inline">메뉴</span></button><div class="ml-auto flex items-center gap-1"><button type="button" data-share-capture-ui="true" aria-label="공유용 캡처" title="공유용 캡처 (beta) — 주소·토큰을 가린 사진을 데몬에 저장" class="rounded-md p-1.5 text-muted-foreground hover:bg-accent hover:text-foreground disabled:opacity-50"><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-camera h-4 w-4" aria-hidden="true"><path d="M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z"></path><circle cx="12" cy="13" r="3"></circle></svg></button><a aria-label="voice" title="voice (HTTPS Tailscale Serve 필요)" class="rounded-md p-1.5 text-muted-foreground hover:bg-accent hover:text-foreground" href="/app/"><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-mic h-4 w-4" aria-hidden="true"><path d="M12 19v3"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><rect x="9" y="2" width="6" height="13" rx="3"></rect></svg></a><div class="relative"><button type="button" aria-label="settings" title="session — · theme catppuccin-mocha" class="rounded-md p-1.5 hover:bg-accent text-muted-foreground hover:text-foreground"><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-settings h-4 w-4" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></button></div></div></header><div class="flex flex-1 min-h-0"><aside class="hidden md:flex md:w-10 md:flex-col border-r border-sidebar-border bg-sidebar text-sidebar-foreground"><nav class="flex h-full flex-col"><ul class="flex-1 space-y-1 px-1 py-2"><li class="group/nav relative"><a title="Terminal — 터미널 + agent dock" aria-label="Terminal — 터미널 + agent dock" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/term/"><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-square-terminal h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Terminal</span><span class="ml-1 text-muted-foreground">— <!-- -->터미널 + agent dock</span></span></li><li class="group/nav relative"><a title="Chat — 채팅 (스트리밍 · multimodal · mic)" aria-label="Chat — 채팅 (스트리밍 · multimodal · mic)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/chat/"><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-message-square h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Chat</span><span class="ml-1 text-muted-foreground">— <!-- -->채팅 (스트리밍 · multimodal · mic)</span></span></li><li class="group/nav relative"><a title="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" aria-label="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/live/"><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-activity h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Live</span><span class="ml-1 text-muted-foreground">— <!-- -->런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)</span></span></li><li class="group/nav relative"><a title="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" aria-label="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/market/"><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-store h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5"></path><path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244"></path><path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">마켓</span><span class="ml-1 text-muted-foreground">— <!-- -->플러그인 찾아보기 · 상세 · 설치됨</span></span></li><li class="group/nav relative"><a title="Settings — 환경 + provider + theme" aria-label="Settings — 환경 + provider + theme" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/settings/"><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-settings h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Settings</span><span class="ml-1 text-muted-foreground">— <!-- -->환경 + provider + theme</span></span></li></ul></nav></aside><main class="flex-1 overflow-auto min-w-0"><main class="mx-auto flex w-full max-w-6xl flex-col gap-6 px-6 py-10 sm:px-10" data-testid="botlab-panel"><header><p class="text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground">Bot screens</p><h1 class="mt-2 text-3xl font-bold">Botlab</h1><p class="mt-2 max-w-3xl text-sm text-muted-foreground">Live noVNC screens for the bots, served through Tailscale. One document holds all four sessions, so the VNC password is asked <strong>once</strong>, not four times.</p><p class="mt-2 max-w-3xl text-sm text-muted-foreground">View-only by default. This surface cannot send commands or control the bots.</p></header><section class="rounded-xl border border-border bg-card p-4" aria-label="Wall address"><h2 class="text-sm font-semibold">Wall address</h2><p class="mt-1 break-all font-mono text-xs text-muted-foreground" data-testid="botlab-wall-url">(no host configured)</p><p class="mt-2 text-xs text-muted-foreground" data-testid="botlab-host-source">No wall host is configured. Open this page once with ?host=&lt;the VM tailnet name&gt; — it is remembered on this device.</p></section><section class="rounded-xl border border-border bg-card p-5" aria-label="If the wall is blank"><h2 class="text-sm font-semibold">If the wall stays blank</h2><p class="mt-1 text-sm text-muted-foreground">A blank frame is not necessarily a broken bot. There are three separate reasons, with different fixes:</p><ol class="mt-3 list-decimal space-y-2 pl-5 text-sm text-muted-foreground"><li><strong>This device is outside the tailnet.</strong> The address simply does not exist here. Join the tailnet, or view the screens from a device that is on it.</li><li><strong>Tailscale serve is not published.</strong> Re-run<!-- --> <code class="font-mono text-xs">bash scripts/botlab/deploy-bot-wall.sh</code>, which re-publishes the paths and then verifies each one returns 200.</li><li><strong>The wall loaded but did not connect.</strong> That is a VNC-level failure, not a page failure — the wall itself reports connected/failed counts once you enter the password.</li></ol><p class="mt-3 text-xs text-muted-foreground">The VNC password is deliberately not carried in this page or in the URL: any page a bot browser opens could otherwise reach the local websocket, and websockets have no CORS.</p></section><section class="rounded-xl border border-dashed border-border p-5" aria-label="Not wired yet"><h2 class="text-sm font-semibold">Not wired yet</h2><ul class="mt-2 list-disc space-y-1 pl-5 text-sm text-muted-foreground"><li>Per-bot cell headers (name · last round verdict · whether CDP is alive) need<!-- --> <code class="font-mono text-xs">browserPort</code> and round results on the daemon&#x27;s persona route. That route is owned by another track and is not published today.</li><li>Running a command from this surface needs a POST route that does not exist yet.</li></ul></section></main><!--$--><!--/$--></main></div></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n"])</script><script>self.__next_f.push([1,"2:I[67976,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"ServiceWorkerRegister\"]\n"])</script><script>self.__next_f.push([1,"3:I[12248,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"NewBuildBanner\"]\n"])</script><script>self.__next_f.push([1,"4:I[38519,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"DaemonProvider\"]\n"])</script><script>self.__next_f.push([1,"5:I[77884,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"OperatorRoleDefault\"]\n"])</script><script>self.__next_f.push([1,"6:I[8687,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"NexusClientProvider\"]\n"])</script><script>self.__next_f.push([1,"7:I[94936,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"8:I[85039,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"TooltipProvider\"]\n"])</script><script>self.__next_f.push([1,"9:I[21545,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"ToastProvider\"]\n"])</script><script>self.__next_f.push([1,"a:I[85258,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"AppShell\"]\n"])</script><script>self.__next_f.push([1,"b:I[51411,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"MaturityBanner\"]\n"])</script><script>self.__next_f.push([1,"c:I[57048,[],\"\"]\nd:I[75854,[],\"\"]\ne:I[70766,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6416\",\"static/chunks/6416-505ba707cacafbba.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"4345\",\"static/chunks/app/not-found-46fedff57d4bec67.js\"],\"default\"]\nf:I[74715,[\"7955\",\"static/chunks/app/botlab/page-f972fc1c00a62e88.js\"],\"BotlabPageContent\"]\n10:I[78357,[],\"OutletBoundary\"]\n12:I[70112,[],\"AsyncMetadataOutlet\"]\n14:I[78357,[],\"ViewportBoundary\"]\n16:I[78357,[],\"MetadataBoundary\"]\n17:\"$Sreact.suspense\"\n19:I[26324,[],\"\"]\n:HL[\"/app/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/css/f92f63a5df0ba229.css\",\"style\"]\n:HL[\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bFI5EEwg7T6aG88ibX4Zq\",\"p\":\"/app\",\"c\":[\"\",\"botlab\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"botlab\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/f92f63a5df0ba229.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"font-sans __variable_45c93f\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"preload\",\"as\":\"font\",\"type\":\"font/ttf\",\"href\":\"/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf\",\"crossOrigin\":\"anonymous\"}]}],[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$La\",null,{\"children\":[[\"$\",\"$Lb\",null,{}],[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$Le\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]}]}]}]]}]]}]]}]]}],{\"children\":[\"botlab\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lf\",null,{}],null,[\"$\",\"$L10\",null,{\"children\":[\"$L11\",[\"$\",\"$L12\",null,{\"promise\":\"$@13\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L16\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$17\",null,{\"fallback\":null,\"children\":\"$L18\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$19\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#1e1e2e\"}]]\n11:null\n"])</script><script>self.__next_f.push([1,"1a:I[48592,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"13:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Botlab · elanous\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"elanous — voice · chat · intake · control · terminal.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"elanous\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/app/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/app/icons/elanous-180.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L1a\",\"7\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"18:\"$13:metadata\"\n"])</script></body></html>
@@ -1,29 +1,30 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[67976,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"ServiceWorkerRegister"]
3
- 3:I[12248,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"NewBuildBanner"]
4
- 4:I[38519,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"DaemonProvider"]
5
- 5:I[8687,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"NexusClientProvider"]
6
- 6:I[94936,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"ThemeProvider"]
7
- 7:I[85039,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"TooltipProvider"]
8
- 8:I[21545,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"ToastProvider"]
9
- 9:I[1167,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"AppShell"]
10
- a:I[51411,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","9804","static/chunks/9804-64c02c3c127d5014.js","8519","static/chunks/8519-f6b5d8a5833a7603.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-a3e0953307216c58.js","8067","static/chunks/8067-f74bf14d67ad98f1.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-d9979633aa82f8e6.js"],"MaturityBanner"]
11
- b:I[57048,[],""]
12
- c:I[75854,[],""]
13
- d:I[70766,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","7990","static/chunks/7990-e12efba616f46e03.js","6416","static/chunks/6416-505ba707cacafbba.js","9454","static/chunks/9454-a3e0953307216c58.js","4345","static/chunks/app/not-found-9699b1786be6171d.js"],"default"]
14
- e:I[74715,["7955","static/chunks/app/botlab/page-624f7a2f89b60c8f.js"],"BotlabPageContent"]
15
- f:I[78357,[],"OutletBoundary"]
16
- 11:I[70112,[],"AsyncMetadataOutlet"]
17
- 13:I[78357,[],"ViewportBoundary"]
18
- 15:I[78357,[],"MetadataBoundary"]
19
- 16:"$Sreact.suspense"
20
- 18:I[26324,[],""]
2
+ 2:I[67976,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"ServiceWorkerRegister"]
3
+ 3:I[12248,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"NewBuildBanner"]
4
+ 4:I[38519,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"DaemonProvider"]
5
+ 5:I[77884,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"OperatorRoleDefault"]
6
+ 6:I[8687,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"NexusClientProvider"]
7
+ 7:I[94936,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"ThemeProvider"]
8
+ 8:I[85039,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"TooltipProvider"]
9
+ 9:I[21545,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"ToastProvider"]
10
+ a:I[85258,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"AppShell"]
11
+ b:I[51411,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","6062","static/chunks/6062-73e68343a9814f6a.js","7990","static/chunks/7990-e12efba616f46e03.js","6998","static/chunks/6998-a654fe5c58271600.js","1201","static/chunks/1201-09613bce624467c0.js","7032","static/chunks/7032-f4ef698518fba61c.js","8519","static/chunks/8519-5632377cce994f86.js","2375","static/chunks/2375-cb6debea56cce4fb.js","9454","static/chunks/9454-139040d37c79dbc9.js","8067","static/chunks/8067-d976b441a104ab74.js","8619","static/chunks/8619-4365e03a2862830f.js","5791","static/chunks/5791-bb82743fa6299562.js","7177","static/chunks/app/layout-f72db356744ceade.js"],"MaturityBanner"]
12
+ c:I[57048,[],""]
13
+ d:I[75854,[],""]
14
+ e:I[70766,["2977","static/chunks/2977-e38442e86289f1d3.js","920","static/chunks/920-f7dceb78f1c585ef.js","7990","static/chunks/7990-e12efba616f46e03.js","6416","static/chunks/6416-505ba707cacafbba.js","9454","static/chunks/9454-139040d37c79dbc9.js","4345","static/chunks/app/not-found-46fedff57d4bec67.js"],"default"]
15
+ f:I[74715,["7955","static/chunks/app/botlab/page-f972fc1c00a62e88.js"],"BotlabPageContent"]
16
+ 10:I[78357,[],"OutletBoundary"]
17
+ 12:I[70112,[],"AsyncMetadataOutlet"]
18
+ 14:I[78357,[],"ViewportBoundary"]
19
+ 16:I[78357,[],"MetadataBoundary"]
20
+ 17:"$Sreact.suspense"
21
+ 19:I[26324,[],""]
21
22
  :HL["/app/_next/static/media/22a5144ee8d83bca-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
22
- :HL["/app/_next/static/css/f537bdb19c69306a.css","style"]
23
+ :HL["/app/_next/static/css/f92f63a5df0ba229.css","style"]
23
24
  :HL["/app/_next/static/css/04dabcbcc4bfa6db.css","style"]
24
- 0:{"P":null,"b":"keajW7DDyghEs1y8oJe6T","p":"/app","c":["","botlab",""],"i":false,"f":[[["",{"children":["botlab",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/app/_next/static/css/f537bdb19c69306a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/app/_next/static/css/04dabcbcc4bfa6db.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"ko","className":"font-sans __variable_45c93f","children":[["$","head",null,{"children":["$","link",null,{"rel":"preload","as":"font","type":"font/ttf","href":"/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf","crossOrigin":"anonymous"}]}],["$","body",null,{"className":"min-h-screen bg-background text-foreground antialiased","children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"children":["$","$L9",null,{"children":[["$","$La",null,{}],["$","$Lb",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lc",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$Ld",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]}]}]}]}]}]]}]]}]]}],{"children":["botlab",["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lc",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Le",null,{}],null,["$","$Lf",null,{"children":["$L10",["$","$L11",null,{"promise":"$@12"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L13",null,{"children":"$L14"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L15",null,{"children":["$","div",null,{"hidden":true,"children":["$","$16",null,{"fallback":null,"children":"$L17"}]}]}]]}],false]],"m":"$undefined","G":["$18",[]],"s":false,"S":true}
25
- 14:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#1e1e2e"}]]
26
- 10:null
27
- 19:I[48592,[],"IconMark"]
28
- 12:{"metadata":[["$","title","0",{"children":"Botlab · elanous"}],["$","meta","1",{"name":"description","content":"elanous — voice · chat · intake · control · terminal."}],["$","meta","2",{"name":"application-name","content":"elanous"}],["$","link","3",{"rel":"manifest","href":"/app/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","4",{"rel":"icon","href":"/app/icons/elanous-32.png","sizes":"32x32","type":"image/png"}],["$","link","5",{"rel":"icon","href":"/app/icons/elanous-16.png","sizes":"16x16","type":"image/png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/app/icons/elanous-180.png","sizes":"180x180","type":"image/png"}],["$","$L19","7",{}]],"error":null,"digest":"$undefined"}
29
- 17:"$12:metadata"
25
+ 0:{"P":null,"b":"bFI5EEwg7T6aG88ibX4Zq","p":"/app","c":["","botlab",""],"i":false,"f":[[["",{"children":["botlab",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/app/_next/static/css/f92f63a5df0ba229.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/app/_next/static/css/04dabcbcc4bfa6db.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"ko","className":"font-sans __variable_45c93f","children":[["$","head",null,{"children":["$","link",null,{"rel":"preload","as":"font","type":"font/ttf","href":"/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf","crossOrigin":"anonymous"}]}],["$","body",null,{"className":"min-h-screen bg-background text-foreground antialiased","children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"children":["$","$L9",null,{"children":["$","$La",null,{"children":[["$","$Lb",null,{}],["$","$Lc",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Ld",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$Le",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]}]}]}]}]]}]]}]]}]]}],{"children":["botlab",["$","$1","c",{"children":[null,["$","$Lc",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Ld",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lf",null,{}],null,["$","$L10",null,{"children":["$L11",["$","$L12",null,{"promise":"$@13"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L14",null,{"children":"$L15"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L16",null,{"children":["$","div",null,{"hidden":true,"children":["$","$17",null,{"fallback":null,"children":"$L18"}]}]}]]}],false]],"m":"$undefined","G":["$19",[]],"s":false,"S":true}
26
+ 15:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#1e1e2e"}]]
27
+ 11:null
28
+ 1a:I[48592,[],"IconMark"]
29
+ 13:{"metadata":[["$","title","0",{"children":"Botlab · elanous"}],["$","meta","1",{"name":"description","content":"elanous — voice · chat · intake · control · terminal."}],["$","meta","2",{"name":"application-name","content":"elanous"}],["$","link","3",{"rel":"manifest","href":"/app/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","4",{"rel":"icon","href":"/app/icons/elanous-32.png","sizes":"32x32","type":"image/png"}],["$","link","5",{"rel":"icon","href":"/app/icons/elanous-16.png","sizes":"16x16","type":"image/png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/app/icons/elanous-180.png","sizes":"180x180","type":"image/png"}],["$","$L1a","7",{}]],"error":null,"digest":"$undefined"}
30
+ 18:"$13:metadata"
@@ -1 +1 @@
1
- <!DOCTYPE html><!--keajW7DDyghEs1y8oJe6T--><html lang="ko" class="font-sans __variable_45c93f"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><link rel="preload" href="/app/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/app/_next/static/css/f537bdb19c69306a.css" data-precedence="next"/><link rel="stylesheet" href="/app/_next/static/css/04dabcbcc4bfa6db.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js"/><script src="/app/_next/static/chunks/8046cadf-211ca3c0e00f2b72.js" async=""></script><script src="/app/_next/static/chunks/6725-68ab7cc0b1faf00d.js" async=""></script><script src="/app/_next/static/chunks/main-app-6870f30ea99f8346.js" async=""></script><script src="/app/_next/static/chunks/2977-e38442e86289f1d3.js" async=""></script><script src="/app/_next/static/chunks/920-f7dceb78f1c585ef.js" async=""></script><script src="/app/_next/static/chunks/6062-73e68343a9814f6a.js" async=""></script><script src="/app/_next/static/chunks/7990-e12efba616f46e03.js" async=""></script><script src="/app/_next/static/chunks/6998-a654fe5c58271600.js" async=""></script><script src="/app/_next/static/chunks/1201-09613bce624467c0.js" async=""></script><script src="/app/_next/static/chunks/9804-64c02c3c127d5014.js" async=""></script><script src="/app/_next/static/chunks/8519-f6b5d8a5833a7603.js" async=""></script><script src="/app/_next/static/chunks/2375-cb6debea56cce4fb.js" async=""></script><script src="/app/_next/static/chunks/9454-a3e0953307216c58.js" async=""></script><script src="/app/_next/static/chunks/8067-f74bf14d67ad98f1.js" async=""></script><script src="/app/_next/static/chunks/8619-4365e03a2862830f.js" async=""></script><script src="/app/_next/static/chunks/5791-bb82743fa6299562.js" async=""></script><script src="/app/_next/static/chunks/app/layout-d9979633aa82f8e6.js" async=""></script><script src="/app/_next/static/chunks/6416-505ba707cacafbba.js" async=""></script><script src="/app/_next/static/chunks/app/not-found-9699b1786be6171d.js" async=""></script><script src="/app/_next/static/chunks/app/bots/page-5a5fb385a4df0ffe.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="preload" as="font" type="font/ttf" href="/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf" crossorigin="anonymous"/><meta name="theme-color" content="#1e1e2e"/><title>Bots · elanous</title><meta name="description" content="elanous — voice · chat · intake · control · terminal."/><meta name="application-name" content="elanous"/><link rel="manifest" href="/app/manifest.webmanifest"/><link rel="icon" href="/app/icons/elanous-32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/app/icons/elanous-16.png" sizes="16x16" type="image/png"/><link rel="apple-touch-icon" href="/app/icons/elanous-180.png" sizes="180x180" type="image/png"/><script src="/app/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full flex-col bg-background text-foreground"><header class="flex h-9 shrink-0 items-center gap-1 border-b border-border bg-background px-2 text-xs"><button type="button" aria-label="open menu" title="open menu" class="flex shrink-0 items-center gap-1.5 rounded-md p-2 text-muted-foreground hover:bg-accent hover:text-foreground"><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-menu h-4 w-4" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg><span class="hidden text-[11px] font-medium leading-none sm:inline">메뉴</span></button><div class="ml-auto flex items-center gap-1"><a aria-label="voice" title="voice (HTTPS Tailscale Serve 필요)" class="rounded-md p-1.5 text-muted-foreground hover:bg-accent hover:text-foreground" href="/app/"><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-mic h-4 w-4" aria-hidden="true"><path d="M12 19v3"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><rect x="9" y="2" width="6" height="13" rx="3"></rect></svg></a><div class="relative"><button type="button" aria-label="settings" title="session — · theme catppuccin-mocha" class="rounded-md p-1.5 hover:bg-accent text-muted-foreground hover:text-foreground"><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-settings h-4 w-4" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></button></div></div></header><div class="flex flex-1 min-h-0"><aside class="hidden md:flex md:w-10 md:flex-col border-r border-sidebar-border bg-sidebar text-sidebar-foreground"><nav class="flex h-full flex-col"><ul class="flex-1 space-y-1 px-1 py-2"><li class="group/nav relative"><a title="Terminal — 터미널 + agent dock" aria-label="Terminal — 터미널 + agent dock" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/term/"><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-square-terminal h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Terminal</span><span class="ml-1 text-muted-foreground">— <!-- -->터미널 + agent dock</span></span></li><li class="group/nav relative"><a title="Chat — 채팅 (스트리밍 · multimodal · mic)" aria-label="Chat — 채팅 (스트리밍 · multimodal · mic)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/chat/"><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-message-square h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Chat</span><span class="ml-1 text-muted-foreground">— <!-- -->채팅 (스트리밍 · multimodal · mic)</span></span></li><li class="group/nav relative"><a title="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" aria-label="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/live/"><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-activity h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Live</span><span class="ml-1 text-muted-foreground">— <!-- -->런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)</span></span></li><li class="group/nav relative"><a title="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" aria-label="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/market/"><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-store h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5"></path><path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244"></path><path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">마켓</span><span class="ml-1 text-muted-foreground">— <!-- -->플러그인 찾아보기 · 상세 · 설치됨</span></span></li><li class="group/nav relative"><a title="Settings — 환경 + provider + theme" aria-label="Settings — 환경 + provider + theme" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/settings/"><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-settings h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Settings</span><span class="ml-1 text-muted-foreground">— <!-- -->환경 + provider + theme</span></span></li></ul></nav></aside><main class="flex-1 overflow-auto min-w-0"><main class="mx-auto flex w-full max-w-5xl flex-col gap-6 px-6 py-10 sm:px-10" data-testid="bots-panel"><header><p class="text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground">Bot directory</p><h1 class="mt-2 text-3xl font-bold">Bots</h1><p class="mt-2 max-w-3xl text-sm text-muted-foreground">Commands are global: every bot exposes the same catalog.</p><p class="mt-2 max-w-3xl text-sm text-muted-foreground">This surface cannot send commands yet; it only shows what you can ask bots to do.</p></header><p role="status" class="text-sm text-muted-foreground">Loading bot identities and command catalog…</p><section class="flex flex-col gap-4" aria-label="investor rounds" data-testid="rounds-investor"><header><h2 class="text-xl font-bold">📈 투자 회차</h2><p class="mt-1 text-sm text-muted-foreground">봇이 «실제로 낸» 산출이다. ⛔ 차트는 «일부러» 안 그린다 — 글만 낸다.</p></header><p role="status" class="text-sm text-muted-foreground">투자 회차를 불러오는 중…</p></section><section class="flex flex-col gap-4" aria-label="assistant rounds" data-testid="rounds-assistant"><header><h2 class="text-xl font-bold">🗓️ 비서 회차</h2><p class="mt-1 text-sm text-muted-foreground">안 읽은 메일·앞으로의 일정. ⛔ 「0」도 «잰 값»이라 그대로 보여 준다.</p></header><p role="status" class="text-sm text-muted-foreground">투자 회차를 불러오는 중…</p></section><section class="flex flex-col gap-4" aria-label="newsbot rounds" data-testid="rounds-newsbot"><header><h2 class="text-xl font-bold">📰 뉴스 회차</h2><p class="mt-1 text-sm text-muted-foreground">⚠️ 이 봇의 산출은 꼴이 여럿이다 — 못 읽은 것은 «이름을 대고» 남는다.</p></header><p role="status" class="text-sm text-muted-foreground">투자 회차를 불러오는 중…</p></section></main><!--$--><!--/$--></main></div></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n"])</script><script>self.__next_f.push([1,"2:I[67976,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"ServiceWorkerRegister\"]\n"])</script><script>self.__next_f.push([1,"3:I[12248,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"NewBuildBanner\"]\n"])</script><script>self.__next_f.push([1,"4:I[38519,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"DaemonProvider\"]\n"])</script><script>self.__next_f.push([1,"5:I[8687,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"NexusClientProvider\"]\n"])</script><script>self.__next_f.push([1,"6:I[94936,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"7:I[85039,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"TooltipProvider\"]\n"])</script><script>self.__next_f.push([1,"8:I[21545,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"ToastProvider\"]\n"])</script><script>self.__next_f.push([1,"9:I[1167,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"AppShell\"]\n"])</script><script>self.__next_f.push([1,"a:I[51411,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"9804\",\"static/chunks/9804-64c02c3c127d5014.js\",\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-d9979633aa82f8e6.js\"],\"MaturityBanner\"]\n"])</script><script>self.__next_f.push([1,"b:I[57048,[],\"\"]\nc:I[75854,[],\"\"]\nd:I[70766,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6416\",\"static/chunks/6416-505ba707cacafbba.js\",\"9454\",\"static/chunks/9454-a3e0953307216c58.js\",\"4345\",\"static/chunks/app/not-found-9699b1786be6171d.js\"],\"default\"]\ne:I[2964,[\"8519\",\"static/chunks/8519-f6b5d8a5833a7603.js\",\"2885\",\"static/chunks/app/bots/page-5a5fb385a4df0ffe.js\"],\"BotsPageContent\"]\nf:I[78357,[],\"OutletBoundary\"]\n11:I[70112,[],\"AsyncMetadataOutlet\"]\n13:I[78357,[],\"ViewportBoundary\"]\n15:I[78357,[],\"MetadataBoundary\"]\n16:\"$Sreact.suspense\"\n18:I[26324,[],\"\"]\n:HL[\"/app/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/css/f537bdb19c69306a.css\",\"style\"]\n:HL[\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"keajW7DDyghEs1y8oJe6T\",\"p\":\"/app\",\"c\":[\"\",\"bots\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"bots\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/f537bdb19c69306a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"font-sans __variable_45c93f\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"preload\",\"as\":\"font\",\"type\":\"font/ttf\",\"href\":\"/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf\",\"crossOrigin\":\"anonymous\"}]}],[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L9\",null,{\"children\":[[\"$\",\"$La\",null,{}],[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$Ld\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]}]}]}]}]]}]]}]]}],{\"children\":[\"bots\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Le\",null,{}],null,[\"$\",\"$Lf\",null,{\"children\":[\"$L10\",[\"$\",\"$L11\",null,{\"promise\":\"$@12\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L15\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$16\",null,{\"fallback\":null,\"children\":\"$L17\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#1e1e2e\"}]]\n10:null\n"])</script><script>self.__next_f.push([1,"19:I[48592,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"12:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Bots · elanous\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"elanous — voice · chat · intake · control · terminal.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"elanous\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/app/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/app/icons/elanous-180.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L19\",\"7\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"17:\"$12:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--bFI5EEwg7T6aG88ibX4Zq--><html lang="ko" class="font-sans __variable_45c93f"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><link rel="preload" href="/app/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/app/_next/static/css/f92f63a5df0ba229.css" data-precedence="next"/><link rel="stylesheet" href="/app/_next/static/css/04dabcbcc4bfa6db.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js"/><script src="/app/_next/static/chunks/8046cadf-211ca3c0e00f2b72.js" async=""></script><script src="/app/_next/static/chunks/6725-68ab7cc0b1faf00d.js" async=""></script><script src="/app/_next/static/chunks/main-app-6870f30ea99f8346.js" async=""></script><script src="/app/_next/static/chunks/2977-e38442e86289f1d3.js" async=""></script><script src="/app/_next/static/chunks/920-f7dceb78f1c585ef.js" async=""></script><script src="/app/_next/static/chunks/6062-73e68343a9814f6a.js" async=""></script><script src="/app/_next/static/chunks/7990-e12efba616f46e03.js" async=""></script><script src="/app/_next/static/chunks/6998-a654fe5c58271600.js" async=""></script><script src="/app/_next/static/chunks/1201-09613bce624467c0.js" async=""></script><script src="/app/_next/static/chunks/7032-f4ef698518fba61c.js" async=""></script><script src="/app/_next/static/chunks/8519-5632377cce994f86.js" async=""></script><script src="/app/_next/static/chunks/2375-cb6debea56cce4fb.js" async=""></script><script src="/app/_next/static/chunks/9454-139040d37c79dbc9.js" async=""></script><script src="/app/_next/static/chunks/8067-d976b441a104ab74.js" async=""></script><script src="/app/_next/static/chunks/8619-4365e03a2862830f.js" async=""></script><script src="/app/_next/static/chunks/5791-bb82743fa6299562.js" async=""></script><script src="/app/_next/static/chunks/app/layout-f72db356744ceade.js" async=""></script><script src="/app/_next/static/chunks/6416-505ba707cacafbba.js" async=""></script><script src="/app/_next/static/chunks/app/not-found-46fedff57d4bec67.js" async=""></script><script src="/app/_next/static/chunks/app/bots/page-5f30e00693527ebd.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="preload" as="font" type="font/ttf" href="/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf" crossorigin="anonymous"/><meta name="theme-color" content="#1e1e2e"/><title>Bots · elanous</title><meta name="description" content="elanous — voice · chat · intake · control · terminal."/><meta name="application-name" content="elanous"/><link rel="manifest" href="/app/manifest.webmanifest"/><link rel="icon" href="/app/icons/elanous-32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/app/icons/elanous-16.png" sizes="16x16" type="image/png"/><link rel="apple-touch-icon" href="/app/icons/elanous-180.png" sizes="180x180" type="image/png"/><script src="/app/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full flex-col bg-background text-foreground"><header class="flex h-9 shrink-0 items-center gap-1 border-b border-border bg-background px-2 text-xs"><button type="button" aria-label="open menu" title="open menu" class="flex shrink-0 items-center gap-1.5 rounded-md p-2 text-muted-foreground hover:bg-accent hover:text-foreground"><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-menu h-4 w-4" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg><span class="hidden text-[11px] font-medium leading-none sm:inline">메뉴</span></button><div class="ml-auto flex items-center gap-1"><button type="button" data-share-capture-ui="true" aria-label="공유용 캡처" title="공유용 캡처 (beta) — 주소·토큰을 가린 사진을 데몬에 저장" class="rounded-md p-1.5 text-muted-foreground hover:bg-accent hover:text-foreground disabled:opacity-50"><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-camera h-4 w-4" aria-hidden="true"><path d="M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z"></path><circle cx="12" cy="13" r="3"></circle></svg></button><a aria-label="voice" title="voice (HTTPS Tailscale Serve 필요)" class="rounded-md p-1.5 text-muted-foreground hover:bg-accent hover:text-foreground" href="/app/"><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-mic h-4 w-4" aria-hidden="true"><path d="M12 19v3"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><rect x="9" y="2" width="6" height="13" rx="3"></rect></svg></a><div class="relative"><button type="button" aria-label="settings" title="session — · theme catppuccin-mocha" class="rounded-md p-1.5 hover:bg-accent text-muted-foreground hover:text-foreground"><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-settings h-4 w-4" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></button></div></div></header><div class="flex flex-1 min-h-0"><aside class="hidden md:flex md:w-10 md:flex-col border-r border-sidebar-border bg-sidebar text-sidebar-foreground"><nav class="flex h-full flex-col"><ul class="flex-1 space-y-1 px-1 py-2"><li class="group/nav relative"><a title="Terminal — 터미널 + agent dock" aria-label="Terminal — 터미널 + agent dock" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/term/"><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-square-terminal h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Terminal</span><span class="ml-1 text-muted-foreground">— <!-- -->터미널 + agent dock</span></span></li><li class="group/nav relative"><a title="Chat — 채팅 (스트리밍 · multimodal · mic)" aria-label="Chat — 채팅 (스트리밍 · multimodal · mic)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/chat/"><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-message-square h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Chat</span><span class="ml-1 text-muted-foreground">— <!-- -->채팅 (스트리밍 · multimodal · mic)</span></span></li><li class="group/nav relative"><a title="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" aria-label="Live — 런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/live/"><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-activity h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Live</span><span class="ml-1 text-muted-foreground">— <!-- -->런이 판단·기획하는 신호 (진짜 수 · 쇼 모드)</span></span></li><li class="group/nav relative"><a title="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" aria-label="마켓 — 플러그인 찾아보기 · 상세 · 설치됨" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/market/"><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-store h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5"></path><path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244"></path><path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"></path></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">마켓</span><span class="ml-1 text-muted-foreground">— <!-- -->플러그인 찾아보기 · 상세 · 설치됨</span></span></li><li class="group/nav relative"><a title="Settings — 환경 + provider + theme" aria-label="Settings — 환경 + provider + theme" class="flex items-center rounded-md text-sm transition-colors justify-center px-1.5 py-2 text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground" href="/app/settings/"><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-settings h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></a><span role="tooltip" class="pointer-events-none absolute left-full top-1/2 z-50 ml-2 -translate-y-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-popover-foreground opacity-0 shadow-md transition-opacity group-hover/nav:opacity-100 [@media(pointer:coarse)]:hidden"><span class="font-medium">Settings</span><span class="ml-1 text-muted-foreground">— <!-- -->환경 + provider + theme</span></span></li></ul></nav></aside><main class="flex-1 overflow-auto min-w-0"><main class="mx-auto flex w-full max-w-5xl flex-col gap-6 px-6 py-10 sm:px-10" data-testid="bots-panel"><header><p class="text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground">Bot directory</p><h1 class="mt-2 text-3xl font-bold">Bots</h1><p class="mt-2 max-w-3xl text-sm text-muted-foreground">Commands are global: every bot exposes the same catalog.</p><p class="mt-2 max-w-3xl text-sm text-muted-foreground">This surface cannot send commands yet; it only shows what you can ask bots to do.</p></header><p role="status" class="text-sm text-muted-foreground">Loading bot identities and command catalog…</p><section class="flex flex-col gap-4" aria-label="investor rounds" data-testid="rounds-investor"><header><h2 class="text-xl font-bold">📈 투자 회차</h2><p class="mt-1 text-sm text-muted-foreground">봇이 «실제로 낸» 산출이다. ⛔ 차트는 «일부러» 안 그린다 — 글만 낸다.</p></header><p role="status" class="text-sm text-muted-foreground">투자 회차를 불러오는 중…</p></section><section class="flex flex-col gap-4" aria-label="assistant rounds" data-testid="rounds-assistant"><header><h2 class="text-xl font-bold">🗓️ 비서 회차</h2><p class="mt-1 text-sm text-muted-foreground">안 읽은 메일·앞으로의 일정. ⛔ 「0」도 «잰 값»이라 그대로 보여 준다.</p></header><p role="status" class="text-sm text-muted-foreground">투자 회차를 불러오는 중…</p></section><section class="flex flex-col gap-4" aria-label="newsbot rounds" data-testid="rounds-newsbot"><header><h2 class="text-xl font-bold">📰 뉴스 회차</h2><p class="mt-1 text-sm text-muted-foreground">⚠️ 이 봇의 산출은 꼴이 여럿이다 — 못 읽은 것은 «이름을 대고» 남는다.</p></header><p role="status" class="text-sm text-muted-foreground">투자 회차를 불러오는 중…</p></section></main><!--$--><!--/$--></main></div></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/app/_next/static/chunks/webpack-e5bea36f183b25e6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n"])</script><script>self.__next_f.push([1,"2:I[67976,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"ServiceWorkerRegister\"]\n"])</script><script>self.__next_f.push([1,"3:I[12248,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"NewBuildBanner\"]\n"])</script><script>self.__next_f.push([1,"4:I[38519,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"DaemonProvider\"]\n"])</script><script>self.__next_f.push([1,"5:I[77884,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"OperatorRoleDefault\"]\n"])</script><script>self.__next_f.push([1,"6:I[8687,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"NexusClientProvider\"]\n"])</script><script>self.__next_f.push([1,"7:I[94936,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"8:I[85039,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"TooltipProvider\"]\n"])</script><script>self.__next_f.push([1,"9:I[21545,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"ToastProvider\"]\n"])</script><script>self.__next_f.push([1,"a:I[85258,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"AppShell\"]\n"])</script><script>self.__next_f.push([1,"b:I[51411,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6998\",\"static/chunks/6998-a654fe5c58271600.js\",\"1201\",\"static/chunks/1201-09613bce624467c0.js\",\"7032\",\"static/chunks/7032-f4ef698518fba61c.js\",\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2375\",\"static/chunks/2375-cb6debea56cce4fb.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"8067\",\"static/chunks/8067-d976b441a104ab74.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-f72db356744ceade.js\"],\"MaturityBanner\"]\n"])</script><script>self.__next_f.push([1,"c:I[57048,[],\"\"]\nd:I[75854,[],\"\"]\ne:I[70766,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"7990\",\"static/chunks/7990-e12efba616f46e03.js\",\"6416\",\"static/chunks/6416-505ba707cacafbba.js\",\"9454\",\"static/chunks/9454-139040d37c79dbc9.js\",\"4345\",\"static/chunks/app/not-found-46fedff57d4bec67.js\"],\"default\"]\nf:I[2964,[\"8519\",\"static/chunks/8519-5632377cce994f86.js\",\"2885\",\"static/chunks/app/bots/page-5f30e00693527ebd.js\"],\"BotsPageContent\"]\n10:I[78357,[],\"OutletBoundary\"]\n12:I[70112,[],\"AsyncMetadataOutlet\"]\n14:I[78357,[],\"ViewportBoundary\"]\n16:I[78357,[],\"MetadataBoundary\"]\n17:\"$Sreact.suspense\"\n19:I[26324,[],\"\"]\n:HL[\"/app/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/css/f92f63a5df0ba229.css\",\"style\"]\n:HL[\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bFI5EEwg7T6aG88ibX4Zq\",\"p\":\"/app\",\"c\":[\"\",\"bots\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"bots\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/f92f63a5df0ba229.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"font-sans __variable_45c93f\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"preload\",\"as\":\"font\",\"type\":\"font/ttf\",\"href\":\"/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf\",\"crossOrigin\":\"anonymous\"}]}],[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$La\",null,{\"children\":[[\"$\",\"$Lb\",null,{}],[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$Le\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]}]}]}]]}]]}]]}]]}],{\"children\":[\"bots\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lf\",null,{}],null,[\"$\",\"$L10\",null,{\"children\":[\"$L11\",[\"$\",\"$L12\",null,{\"promise\":\"$@13\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L16\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$17\",null,{\"fallback\":null,\"children\":\"$L18\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$19\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#1e1e2e\"}]]\n11:null\n"])</script><script>self.__next_f.push([1,"1a:I[48592,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"13:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Bots · elanous\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"elanous — voice · chat · intake · control · terminal.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"elanous\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/app/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/app/icons/elanous-180.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L1a\",\"7\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"18:\"$13:metadata\"\n"])</script></body></html>