elanous 0.2.4 → 0.2.6

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 (455) hide show
  1. package/README.md +7 -6
  2. package/apps/pwa/out/404/index.html +1 -1
  3. package/apps/pwa/out/404.html +1 -1
  4. package/apps/pwa/out/_next/static/chunks/1169-696263ac7af8c4d4.js +1 -0
  5. package/apps/pwa/out/_next/static/chunks/1883.c91a2648af4842fd.js +1 -0
  6. package/apps/pwa/out/_next/static/chunks/1947-9d64872eeb9cfdec.js +1 -0
  7. package/apps/pwa/out/_next/static/chunks/2808-dc06482994b40f70.js +1 -0
  8. package/apps/pwa/out/_next/static/chunks/{5080-1613752891fcadb4.js → 2984-977cfa339fcd65a5.js} +3 -3
  9. package/apps/pwa/out/_next/static/chunks/3165-95515ca5f299a120.js +1 -0
  10. package/apps/pwa/out/_next/static/chunks/{8142-011e1f474efb8b33.js → 3190-e9282753e7ebde85.js} +1 -1
  11. package/apps/pwa/out/_next/static/chunks/3995-bee512a7063036ce.js +1 -0
  12. package/apps/pwa/out/_next/static/chunks/{6062-73e68343a9814f6a.js → 4240-7153881b0b377306.js} +1 -1
  13. package/apps/pwa/out/_next/static/chunks/4259-99614149577e77cb.js +1 -0
  14. package/apps/pwa/out/_next/static/chunks/4283-329eabeaf233e6cd.js +1 -0
  15. package/apps/pwa/out/_next/static/chunks/4328-cb5058b1acc2de5e.js +25 -0
  16. package/apps/pwa/out/_next/static/chunks/4801-ecee6ef62b349b18.js +1 -0
  17. package/apps/pwa/out/_next/static/chunks/5110-8058791dd25a2e14.js +1 -0
  18. package/apps/pwa/out/_next/static/chunks/{3403.4bc97b4066945a94.js → 5329.8b7e4bca684b6eec.js} +2 -2
  19. package/apps/pwa/out/_next/static/chunks/5330-c41e9670f594c38f.js +1 -0
  20. package/apps/pwa/out/_next/static/chunks/5423-e95fd125d1794349.js +1 -0
  21. package/apps/pwa/out/_next/static/chunks/5478-b5eae07dc79ea619.js +1 -0
  22. package/apps/pwa/out/_next/static/chunks/5787-96ee6642b9a661e5.js +1 -0
  23. package/apps/pwa/out/_next/static/chunks/6448-79d72368589f98bc.js +1 -0
  24. package/apps/pwa/out/_next/static/chunks/6522-9866c002b5531836.js +1 -0
  25. package/apps/pwa/out/_next/static/chunks/6729-b4a558b7aa891e0c.js +1 -0
  26. package/apps/pwa/out/_next/static/chunks/6969-cb03f9410b7d2e03.js +1 -0
  27. package/apps/pwa/out/_next/static/chunks/7007-3b9861091bb8dd21.js +1 -0
  28. package/apps/pwa/out/_next/static/chunks/{5791-bb82743fa6299562.js → 763-7d0e1913b5074e98.js} +1 -1
  29. package/apps/pwa/out/_next/static/chunks/{4323.c5dfb6f503304775.js → 7633.0654fe6ea259c1ee.js} +1 -1
  30. package/apps/pwa/out/_next/static/chunks/7930-8dc7e20fc6fc19ca.js +1 -0
  31. package/apps/pwa/out/_next/static/chunks/8071-187edbc22a86741f.js +1 -0
  32. package/apps/pwa/out/_next/static/chunks/8198-d4101ad70cb9a579.js +1 -0
  33. package/apps/pwa/out/_next/static/chunks/8250.4a2c5553a07cdf47.js +1 -0
  34. package/apps/pwa/out/_next/static/chunks/8293-123b91e7b0330dc0.js +1 -0
  35. package/apps/pwa/out/_next/static/chunks/8296-d6d5d87dfa911d41.js +1 -0
  36. package/apps/pwa/out/_next/static/chunks/8305-603963c33ee8eec3.js +1 -0
  37. package/apps/pwa/out/_next/static/chunks/8612-4a0066f20951b8fd.js +1 -0
  38. package/apps/pwa/out/_next/static/chunks/{2ea96958-e8c7e112de50b067.js → 8d0d9faf-97887ff99713b84e.js} +1 -1
  39. package/apps/pwa/out/_next/static/chunks/9181-cf4e1b61c4783f92.js +1 -0
  40. package/apps/pwa/out/_next/static/chunks/{8046cadf-211ca3c0e00f2b72.js → 91ff6dda-3b33d42d20657429.js} +1 -1
  41. package/apps/pwa/out/_next/static/chunks/9262-26c2ecbd5a67e4a2.js +1 -0
  42. package/apps/pwa/out/_next/static/chunks/9328-45abdebce4fbecb7.js +1 -0
  43. package/apps/pwa/out/_next/static/chunks/9355-dbc67205adf8745f.js +1 -0
  44. package/apps/pwa/out/_next/static/chunks/9763.255b90dd69875689.js +1 -0
  45. package/apps/pwa/out/_next/static/chunks/9933-66d31ec25c0231af.js +1 -0
  46. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-bd06fb55f4da0381.js +1 -0
  47. package/apps/pwa/out/_next/static/chunks/app/approvals/page-4e586142da455a25.js +1 -0
  48. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-889ad5cddcf45b0d.js +1 -0
  49. package/apps/pwa/out/_next/static/chunks/app/board/page-47ba401d56572c27.js +1 -0
  50. package/apps/pwa/out/_next/static/chunks/app/botlab/page-0b54f9c83458e038.js +1 -0
  51. package/apps/pwa/out/_next/static/chunks/app/bots/page-4fcc296ef6c8ed90.js +1 -0
  52. package/apps/pwa/out/_next/static/chunks/app/chat/page-fe9fda494a87f4e5.js +1 -0
  53. package/apps/pwa/out/_next/static/chunks/app/control/page-f9642e25ce129590.js +1 -0
  54. package/apps/pwa/out/_next/static/chunks/app/design-check/page-e1063e8ba5f3e2e7.js +1 -0
  55. package/apps/pwa/out/_next/static/chunks/app/editor/page-9d0df30027d8aa9d.js +1 -0
  56. package/apps/pwa/out/_next/static/chunks/app/healthz/route-bd06fb55f4da0381.js +1 -0
  57. package/apps/pwa/out/_next/static/chunks/app/intake/page-d97adf2c9455b8d0.js +1 -0
  58. package/apps/pwa/out/_next/static/chunks/app/layout-236b80d202110362.js +1 -0
  59. package/apps/pwa/out/_next/static/chunks/app/live/page-21a30f35f1a276ad.js +1 -0
  60. package/apps/pwa/out/_next/static/chunks/app/market/page-b1a5be357c4fa25d.js +1 -0
  61. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-1705a60303f7f573.js +1 -0
  62. package/apps/pwa/out/_next/static/chunks/app/morning/page-76b337c11ad0e237.js +1 -0
  63. package/apps/pwa/out/_next/static/chunks/app/not-found-7c0f85fbb56f64c6.js +1 -0
  64. package/apps/pwa/out/_next/static/chunks/app/observatory/page-65ca16b20617b44d.js +1 -0
  65. package/apps/pwa/out/_next/static/chunks/app/page-e7f9b8fc29411c1d.js +1 -0
  66. package/apps/pwa/out/_next/static/chunks/app/reflection/page-92ea6213d1aeec04.js +1 -0
  67. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-a913a005aacb5476.js +1 -0
  68. package/apps/pwa/out/_next/static/chunks/app/sessions/page-2d78804a40dfdef6.js +1 -0
  69. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-08a99148e780ac00.js +1 -0
  70. package/apps/pwa/out/_next/static/chunks/app/settings/page-deb674e7ed36f815.js +1 -0
  71. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-49f8de0534d192d7.js +1 -0
  72. package/apps/pwa/out/_next/static/chunks/app/setup/layout-bd06fb55f4da0381.js +1 -0
  73. package/apps/pwa/out/_next/static/chunks/app/setup/page-ba162a28d2176e18.js +1 -0
  74. package/apps/pwa/out/_next/static/chunks/app/share/page-1ff1a37b550ab41a.js +1 -0
  75. package/apps/pwa/out/_next/static/chunks/app/showroom/page-ccaa698f56c0fbdb.js +1 -0
  76. package/apps/pwa/out/_next/static/chunks/app/tasks/page-53b944082de1d7db.js +1 -0
  77. package/apps/pwa/out/_next/static/chunks/app/term/page-9b70adf1552789bf.js +1 -0
  78. package/apps/pwa/out/_next/static/chunks/app/trace/page-30d482aa63241fe8.js +1 -0
  79. package/apps/pwa/out/_next/static/chunks/app/vault/page-aecf786f54651d8a.js +1 -0
  80. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-6ab9b62c7b6e08f2.js +1 -0
  81. package/apps/pwa/out/_next/static/chunks/app/workflows/page-08949735455e0c9a.js +1 -0
  82. package/apps/pwa/out/_next/static/chunks/app/workspace/page-a1479005234a46c2.js +1 -0
  83. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-c3890e90bd232732.js +1 -0
  84. package/apps/pwa/out/_next/static/chunks/beb5cf10-9adcc10b83930090.js +1 -0
  85. package/apps/pwa/out/_next/static/chunks/framework-d68d41c88e05c801.js +1 -0
  86. package/apps/pwa/out/_next/static/chunks/main-app-11c63971b7a9593b.js +1 -0
  87. package/apps/pwa/out/_next/static/chunks/main-d09452353bd0d9cc.js +1 -0
  88. package/apps/pwa/out/_next/static/chunks/pages/_app-184d727cebeca767.js +1 -0
  89. package/apps/pwa/out/_next/static/chunks/pages/_error-21bbbbac99b720b1.js +1 -0
  90. package/apps/pwa/out/_next/static/chunks/{webpack-e5bea36f183b25e6.js → webpack-37b8bf78a3c6eec5.js} +1 -1
  91. package/apps/pwa/out/_next/static/css/eaa74e8bb2f62269.css +1 -0
  92. package/apps/pwa/out/_next/static/{zoQX5iTvXOsIvCjxCe1Ji → qMI0jnlZaBjjm4aIDYNGM}/_buildManifest.js +1 -1
  93. package/apps/pwa/out/approvals/index.html +1 -1
  94. package/apps/pwa/out/approvals/index.txt +29 -27
  95. package/apps/pwa/out/autopilot/index.html +1 -1
  96. package/apps/pwa/out/autopilot/index.txt +29 -27
  97. package/apps/pwa/out/board/index.html +1 -1
  98. package/apps/pwa/out/board/index.txt +29 -27
  99. package/apps/pwa/out/botlab/index.html +1 -1
  100. package/apps/pwa/out/botlab/index.txt +26 -24
  101. package/apps/pwa/out/bots/index.html +1 -1
  102. package/apps/pwa/out/bots/index.txt +26 -24
  103. package/apps/pwa/out/chat/index.html +1 -1
  104. package/apps/pwa/out/chat/index.txt +26 -24
  105. package/apps/pwa/out/control/index.html +1 -1
  106. package/apps/pwa/out/control/index.txt +29 -27
  107. package/apps/pwa/out/design-check/index.html +1 -1
  108. package/apps/pwa/out/design-check/index.txt +29 -27
  109. package/apps/pwa/out/editor/index.html +1 -1
  110. package/apps/pwa/out/editor/index.txt +29 -27
  111. package/apps/pwa/out/healthz +1 -1
  112. package/apps/pwa/out/icons/elanous-16.png +0 -0
  113. package/apps/pwa/out/icons/elanous-180.png +0 -0
  114. package/apps/pwa/out/icons/elanous-192.png +0 -0
  115. package/apps/pwa/out/icons/elanous-32.png +0 -0
  116. package/apps/pwa/out/icons/elanous-512.png +0 -0
  117. package/apps/pwa/out/index.html +1 -1
  118. package/apps/pwa/out/index.txt +26 -24
  119. package/apps/pwa/out/intake/index.html +1 -1
  120. package/apps/pwa/out/intake/index.txt +29 -27
  121. package/apps/pwa/out/live/index.html +1 -1
  122. package/apps/pwa/out/live/index.txt +29 -27
  123. package/apps/pwa/out/manifest.webmanifest +5 -2
  124. package/apps/pwa/out/market/index.html +1 -1
  125. package/apps/pwa/out/market/index.txt +26 -24
  126. package/apps/pwa/out/missions/placeholder/index.html +1 -1
  127. package/apps/pwa/out/missions/placeholder/index.txt +26 -24
  128. package/apps/pwa/out/morning/index.html +1 -1
  129. package/apps/pwa/out/morning/index.txt +29 -27
  130. package/apps/pwa/out/observatory/index.html +1 -1
  131. package/apps/pwa/out/observatory/index.txt +29 -27
  132. package/apps/pwa/out/reflection/index.html +1 -1
  133. package/apps/pwa/out/reflection/index.txt +27 -25
  134. package/apps/pwa/out/scheduler/index.html +1 -1
  135. package/apps/pwa/out/scheduler/index.txt +29 -27
  136. package/apps/pwa/out/sessions/index.html +1 -1
  137. package/apps/pwa/out/sessions/index.txt +26 -24
  138. package/apps/pwa/out/settings/devices/index.html +1 -1
  139. package/apps/pwa/out/settings/devices/index.txt +29 -27
  140. package/apps/pwa/out/settings/index.html +1 -1
  141. package/apps/pwa/out/settings/index.txt +29 -27
  142. package/apps/pwa/out/setup/done/index.html +1 -1
  143. package/apps/pwa/out/setup/done/index.txt +29 -27
  144. package/apps/pwa/out/setup/index.html +1 -1
  145. package/apps/pwa/out/setup/index.txt +29 -27
  146. package/apps/pwa/out/share/index.html +1 -1
  147. package/apps/pwa/out/share/index.txt +29 -27
  148. package/apps/pwa/out/showroom/index.html +1 -1
  149. package/apps/pwa/out/showroom/index.txt +26 -24
  150. package/apps/pwa/out/sw-strategies.js +44 -0
  151. package/apps/pwa/out/sw.js +6 -44
  152. package/apps/pwa/out/tasks/index.html +1 -1
  153. package/apps/pwa/out/tasks/index.txt +29 -27
  154. package/apps/pwa/out/term/index.html +1 -1
  155. package/apps/pwa/out/term/index.txt +29 -27
  156. package/apps/pwa/out/trace/index.html +1 -1
  157. package/apps/pwa/out/trace/index.txt +29 -27
  158. package/apps/pwa/out/vault/index.html +1 -1
  159. package/apps/pwa/out/vault/index.txt +29 -27
  160. package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
  161. package/apps/pwa/out/workflows/chat-ui/index.txt +29 -27
  162. package/apps/pwa/out/workflows/index.html +1 -1
  163. package/apps/pwa/out/workflows/index.txt +29 -27
  164. package/apps/pwa/out/workspace/index.html +1 -1
  165. package/apps/pwa/out/workspace/index.txt +29 -27
  166. package/apps/pwa/out/worktrees/index.html +1 -1
  167. package/apps/pwa/out/worktrees/index.txt +29 -27
  168. package/catalog/resources.yaml +6 -6
  169. package/docs/goal-context/steward-directives-2026-09-28.md +35 -37
  170. package/graphs/landing/landing-heal.yaml +1 -1
  171. package/graphs/release/recipes.yaml +11 -1
  172. package/graphs/release/release-loop.yaml +9 -2
  173. package/graphs/video/README.md +1 -0
  174. package/graphs/video/explainer-line.yaml +58 -0
  175. package/package.json +3 -1
  176. package/plugins/card-followup/README.md +33 -0
  177. package/plugins/card-followup/examples/card-sample.json +7 -0
  178. package/plugins/card-followup/graphs/card-followup.yaml +16 -0
  179. package/plugins/card-followup/graphs/recipes.yaml +12 -0
  180. package/plugins/card-followup/graphs/run-step.ts +172 -0
  181. package/plugins/card-followup/plugin.json +25 -0
  182. package/plugins/geo-check/README.md +13 -0
  183. package/plugins/geo-check/examples/brand-sample.json +8 -0
  184. package/plugins/geo-check/graphs/geo-check.yaml +20 -0
  185. package/plugins/geo-check/graphs/recipes.yaml +18 -0
  186. package/plugins/geo-check/graphs/run-step.ts +177 -0
  187. package/plugins/geo-check/plugin.json +24 -0
  188. package/plugins/job-coach/.codex-plugin/plugin.json +18 -1
  189. package/plugins/job-coach/README.md +42 -0
  190. package/plugins/job-coach/connectors/ncs/server.ts +4 -3
  191. package/plugins/job-coach/graphs/gap-judge.ts +44 -0
  192. package/plugins/job-coach/graphs/recipes.yaml +27 -0
  193. package/plugins/job-coach/graphs/report-enterprise.yaml +28 -0
  194. package/plugins/job-coach/graphs/run-step.ts +211 -17
  195. package/plugins/job-coach/plugin.json +16 -3
  196. package/plugins/job-coach/skills/enterprise-ai-fit/SKILL.md +8 -0
  197. package/plugins/job-coach/skills/enterprise-competency/SKILL.md +8 -0
  198. package/plugins/job-coach/skills/enterprise-needs/SKILL.md +8 -0
  199. package/plugins/job-coach/skills/enterprise-roadmap/SKILL.md +8 -0
  200. package/plugins/job-coach/skills/enterprise-task-analysis/SKILL.md +8 -0
  201. package/plugins/job-coach/skills/interview-to-profile/SKILL.md +18 -1
  202. package/scripts/backup/elanous-backup.sh +4 -1
  203. package/scripts/build-docs-site.ts +4 -3
  204. package/scripts/coord-channel-watch.sh +23 -4
  205. package/scripts/coord-post.sh +49 -12
  206. package/scripts/coord-tracks.json +5 -5
  207. package/scripts/daemon-port-baseline.txt +1 -2
  208. package/scripts/eval-bot-vs-grok.ts +79 -0
  209. package/scripts/eval-grok-live-baseline.ts +36 -0
  210. package/scripts/fixtures/front-route-corpus.sample.json +17 -0
  211. package/scripts/fleet/node-setup.sh +46 -7
  212. package/scripts/landing-heal/must-fix-match.ts +26 -0
  213. package/scripts/landing-heal/run-mission.ts +114 -20
  214. package/scripts/lib/android-test-device.ts +32 -0
  215. package/scripts/lib/front-route-measurement.ts +131 -0
  216. package/scripts/lib/tui-sim-keys.ts +42 -0
  217. package/scripts/measure-front-route-classifier.ts +56 -0
  218. package/scripts/media/ocr-leak-scan.sh +21 -0
  219. package/scripts/public-export.ts +2 -3
  220. package/scripts/public-import-pr.ts +80 -6
  221. package/scripts/publish-internal-dist.ts +2 -3
  222. package/scripts/red-sweep-diff.ts +1 -1
  223. package/scripts/release-loop/auto-approve-node.ts +72 -0
  224. package/scripts/release-loop/checklist-gate-node.ts +35 -0
  225. package/scripts/release-loop/gate-diff.ts +29 -0
  226. package/scripts/release-loop/gate-node.ts +366 -45
  227. package/scripts/release-loop/publish-node.ts +7 -3
  228. package/scripts/release-loop/release-docs.ts +20 -13
  229. package/scripts/release-loop/shard-plan.ts +47 -0
  230. package/scripts/release-loop/test-durations.ts +63 -0
  231. package/scripts/release-loop/upgrade-node.ts +3 -2
  232. package/scripts/test-audit-coverage-per-file.sh +16 -0
  233. package/scripts/test-audit-meaningless.ts +88 -0
  234. package/scripts/test-audit-overlap-and-weak.ts +73 -0
  235. package/scripts/test-deterministic.ts +27 -5
  236. package/scripts/tui-sim.ts +59 -14
  237. package/scripts/ux/bump-installed.sh +20 -0
  238. package/scripts/ux/lib/cdp.ts +72 -0
  239. package/scripts/ux/record-page.ts +53 -0
  240. package/skills/explainer-video/SKILL.md +117 -0
  241. package/skills/explainer-video/engine/brand/elanous-mark-on-dark.svg +1 -0
  242. package/skills/explainer-video/engine/build.mjs +431 -0
  243. package/skills/explainer-video/engine/reel.mjs +128 -0
  244. package/skills/explainer-video/engine/reel.sh +8 -0
  245. package/skills/explainer-video/engine/vo.ts +79 -0
  246. package/skills/explainer-video/examples/elanous-0.2.5/script.json +155 -0
  247. package/src/agent/nested-agent-env.ts +1 -0
  248. package/src/agent-mission/driver.ts +95 -16
  249. package/src/agent-mission/mission-cli.ts +6 -0
  250. package/src/agent-mission/resource-ladder.ts +73 -25
  251. package/src/auth/acp-token.ts +16 -0
  252. package/src/auth/github-app-token.ts +112 -0
  253. package/src/autopilot/gh-rest-fallback.ts +177 -0
  254. package/src/autopilot/mission-origin.ts +20 -4
  255. package/src/autopilot/mission-phase-track.ts +11 -1
  256. package/src/autopilot/pr-manager.ts +51 -4
  257. package/src/autopilot/track-agent.ts +3 -3
  258. package/src/autopilot/track-courier.ts +2 -2
  259. package/src/boot/acp-server.ts +2 -16
  260. package/src/boot/daemon-tools/web-search.ts +2 -1
  261. package/src/boot/ws-bridge.ts +11 -0
  262. package/src/chat/index.ts +37 -8
  263. package/src/chat/log-scroll-key.ts +12 -0
  264. package/src/chat/submit-trace.ts +30 -0
  265. package/src/cli/agent-cli.ts +7 -2
  266. package/src/cli/decisions-cli.ts +94 -0
  267. package/src/cli/doctor-cli.ts +40 -54
  268. package/src/cli/doctor-readiness.ts +16 -24
  269. package/src/cli/intake-cli.ts +1 -1
  270. package/src/cli/mcp-call.ts +9 -0
  271. package/src/cli/mcp-gateway-cli.ts +7 -3
  272. package/src/cli/nexus-ios-bind.ts +25 -8
  273. package/src/cli/phone-link.ts +117 -0
  274. package/src/cli/plugin-cli.ts +136 -11
  275. package/src/cli/pr-lineage.ts +2 -1
  276. package/src/cli/private-ledger-commands.ts +31 -0
  277. package/src/cli/pwa-start.ts +3 -0
  278. package/src/cli/release-cli.ts +97 -7
  279. package/src/cli/self-update.ts +7 -4
  280. package/src/cli/start-cli.ts +33 -14
  281. package/src/dashboard/acp-boot.ts +3 -0
  282. package/src/dashboard/index.ts +62 -13
  283. package/src/dashboard/input/no-provider-reply.ts +13 -0
  284. package/src/dashboard/slash-runtime/unknown-slash-reply.ts +78 -0
  285. package/src/dashboard/stale-install-check.ts +77 -0
  286. package/src/decisions/decision-ledger.ts +404 -0
  287. package/src/domains/outbound-alert.ts +13 -7
  288. package/src/domains/telegram-kind-route.ts +21 -0
  289. package/src/execution-loop/dispatch-task.ts +139 -0
  290. package/src/execution-loop/gate-decision-summary.ts +29 -0
  291. package/src/execution-loop/gates.ts +197 -0
  292. package/src/field/field-media.ts +245 -0
  293. package/src/graph-kinds/installed-plugin-nodes.ts +95 -0
  294. package/src/graph-kinds/plugin-nodes.ts +10 -2
  295. package/src/graph-runner/runner.ts +35 -5
  296. package/src/grounding/token.ts +12 -6
  297. package/src/harness/harness-cli-command.ts +68 -9
  298. package/src/harness/harness-pod-dispatch.ts +8 -2
  299. package/src/harness/harness-stop.ts +147 -18
  300. package/src/harness/self-send-decide.ts +26 -17
  301. package/src/harness/self-send-target.ts +22 -1
  302. package/src/harness/worktree-branch-prefix.ts +4 -3
  303. package/src/index.ts +50 -13
  304. package/src/instance/resolve.ts +6 -0
  305. package/src/intake-plane/collect-telegram-saved.ts +5 -0
  306. package/src/intake-plane/digest.ts +11 -2
  307. package/src/live/detail-switch.ts +8 -3
  308. package/src/llm/usable-llm.ts +32 -0
  309. package/src/loops/registry.ts +27 -5
  310. package/src/market/publish.ts +59 -3
  311. package/src/native-tool-catalog.ts +2 -2
  312. package/src/nexus/api/field-uploads.ts +143 -0
  313. package/src/nexus/api/graph-approvals.ts +174 -0
  314. package/src/nexus/api/harness-api.ts +219 -5
  315. package/src/nexus/api/http-server.ts +69 -6
  316. package/src/nexus/api/log-fabric.ts +10 -1
  317. package/src/nexus/api/mcp-oauth-hint.ts +10 -9
  318. package/src/nexus/api/merge-approvals.ts +2 -1
  319. package/src/nexus/api/meta-api.ts +14 -0
  320. package/src/nexus/api/plugins-credentials-api.ts +47 -0
  321. package/src/nexus/api/plugins-market.ts +87 -3
  322. package/src/nexus/api/pod-credential-api.ts +68 -14
  323. package/src/nexus/api/public-routes.ts +7 -0
  324. package/src/nexus/api/trace.ts +57 -6
  325. package/src/nexus/boot/register-mcp-clients.ts +99 -14
  326. package/src/nexus/index.ts +33 -32
  327. package/src/nexus/outbound/router.ts +1 -1
  328. package/src/notify/llm-budget-alert.ts +119 -0
  329. package/src/onboarding.ts +25 -2
  330. package/src/plugins/core/host.ts +14 -0
  331. package/src/plugins/install/market-fetch.ts +4 -3
  332. package/src/plugins/install/plugin-credentials.ts +106 -0
  333. package/src/plugins/install/plugin-install.ts +163 -32
  334. package/src/plugins/maker/plugin-maker.ts +208 -0
  335. package/src/prompt-library/universal-preamble.ts +8 -2
  336. package/src/relay/channel.ts +184 -0
  337. package/src/relay/mux.ts +182 -0
  338. package/src/relay/test-vectors.json +29 -0
  339. package/src/release-loop/checklist.ts +217 -0
  340. package/src/release-loop/release-note.ts +6 -3
  341. package/src/seat-address/seat-address.ts +34 -0
  342. package/src/self-dev/dev-cli.ts +40 -20
  343. package/src/self-dev/dev-pipeline.ts +77 -1
  344. package/src/self-implement/gate-baseline.ts +3 -1
  345. package/src/self-implement/goal-author.ts +18 -1
  346. package/src/self-implement/host-regate.ts +6 -2
  347. package/src/self-implement/orchestrator.ts +7 -2
  348. package/src/self-implement/run-ledger-compact.ts +1 -1
  349. package/src/self-implement/seams.ts +4 -2
  350. package/src/session/index.ts +23 -10
  351. package/src/skills/tools/dev-harness.ts +42 -0
  352. package/src/steward/steward-cards.ts +45 -0
  353. package/src/steward/triage.ts +50 -14
  354. package/src/task-orchestrator/surfaces/pod-artifact-return.ts +61 -3
  355. package/src/task-orchestrator/surfaces/pod-bun-cache.ts +18 -0
  356. package/src/task-orchestrator/surfaces/pod-command-job.ts +36 -6
  357. package/src/task-orchestrator/surfaces/pod-ledger-collect.ts +39 -9
  358. package/src/task-orchestrator/surfaces/pod-source-bundle.ts +16 -1
  359. package/src/task-orchestrator/surfaces/pod-source-receive.ts +51 -13
  360. package/src/task-orchestrator/surfaces/self-implement-pod.ts +172 -28
  361. package/src/telegram-report.ts +12 -6
  362. package/src/telegram.ts +108 -1
  363. package/src/tui-client/acp-transport-ws-client.ts +72 -5
  364. package/src/tui.ts +3 -2
  365. package/src/user-config.ts +32 -2
  366. package/src/util/spawn-sync-output.ts +15 -0
  367. package/src/version/code-revision.ts +1 -1
  368. package/src/version/packed-revision.json +1 -1
  369. package/src/video-pipeline/recipes/explainer.ts +213 -0
  370. package/src/video-pipeline/walk-line.ts +3 -2
  371. package/src/web-search/free.ts +77 -0
  372. package/src/web-search/index.ts +2 -0
  373. package/src/workflow-runtime/deps-bridge.ts +4 -3
  374. package/src/workflow-runtime/plugin-kind-node.ts +32 -4
  375. package/src/workflow-runtime/types.ts +2 -1
  376. package/apps/pwa/out/_next/static/chunks/1105-c473ed46272fba79.js +0 -1
  377. package/apps/pwa/out/_next/static/chunks/1191-7b13a24117a689fa.js +0 -1
  378. package/apps/pwa/out/_next/static/chunks/1201-09613bce624467c0.js +0 -1
  379. package/apps/pwa/out/_next/static/chunks/1377-1efeffbbac0963ff.js +0 -1
  380. package/apps/pwa/out/_next/static/chunks/1470.98a6ab61ccb4131c.js +0 -1
  381. package/apps/pwa/out/_next/static/chunks/216-5acd01cbde4acda7.js +0 -1
  382. package/apps/pwa/out/_next/static/chunks/2330-c2f07246c8788af1.js +0 -1
  383. package/apps/pwa/out/_next/static/chunks/2375-3fcae5186c64fe6b.js +0 -1
  384. package/apps/pwa/out/_next/static/chunks/2415.ed6428ff334c7ce2.js +0 -1
  385. package/apps/pwa/out/_next/static/chunks/2929-617f1e66a55be184.js +0 -1
  386. package/apps/pwa/out/_next/static/chunks/2977-e38442e86289f1d3.js +0 -1
  387. package/apps/pwa/out/_next/static/chunks/2982-2a2df543be3d2e5a.js +0 -25
  388. package/apps/pwa/out/_next/static/chunks/319-d37df1b6e0cbeff4.js +0 -1
  389. package/apps/pwa/out/_next/static/chunks/3441-a1dd4acfeda14488.js +0 -1
  390. package/apps/pwa/out/_next/static/chunks/371-4ad6af55dad02ced.js +0 -1
  391. package/apps/pwa/out/_next/static/chunks/4114-3e63117452378807.js +0 -1
  392. package/apps/pwa/out/_next/static/chunks/4836-3c93795ab834381e.js +0 -1
  393. package/apps/pwa/out/_next/static/chunks/5609-012bb3557211f07e.js +0 -1
  394. package/apps/pwa/out/_next/static/chunks/6090-1bd6077591603947.js +0 -1
  395. package/apps/pwa/out/_next/static/chunks/6320-baac91d68843a9a6.js +0 -1
  396. package/apps/pwa/out/_next/static/chunks/6416-505ba707cacafbba.js +0 -1
  397. package/apps/pwa/out/_next/static/chunks/6725-68ab7cc0b1faf00d.js +0 -1
  398. package/apps/pwa/out/_next/static/chunks/6998-a654fe5c58271600.js +0 -1
  399. package/apps/pwa/out/_next/static/chunks/7457-f5cb1cc8db9f7453.js +0 -1
  400. package/apps/pwa/out/_next/static/chunks/7647.2fcd30d894d5ee30.js +0 -1
  401. package/apps/pwa/out/_next/static/chunks/7673-2eda1507d38dadb8.js +0 -1
  402. package/apps/pwa/out/_next/static/chunks/7990-e12efba616f46e03.js +0 -1
  403. package/apps/pwa/out/_next/static/chunks/8067-f74bf14d67ad98f1.js +0 -1
  404. package/apps/pwa/out/_next/static/chunks/8519-0059d82bdb4812bf.js +0 -1
  405. package/apps/pwa/out/_next/static/chunks/8619-4365e03a2862830f.js +0 -1
  406. package/apps/pwa/out/_next/static/chunks/920-f7dceb78f1c585ef.js +0 -1
  407. package/apps/pwa/out/_next/static/chunks/9651-3cd291a6fa1370d2.js +0 -1
  408. package/apps/pwa/out/_next/static/chunks/9740-52467f244755917f.js +0 -1
  409. package/apps/pwa/out/_next/static/chunks/9804-64c02c3c127d5014.js +0 -1
  410. package/apps/pwa/out/_next/static/chunks/ae787e4c-f2998de7f1ba72a4.js +0 -1
  411. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-859cea1570b6227a.js +0 -1
  412. package/apps/pwa/out/_next/static/chunks/app/approvals/page-21c3261af6ab377c.js +0 -1
  413. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-1991445b8ea86274.js +0 -1
  414. package/apps/pwa/out/_next/static/chunks/app/board/page-4ebfaee2369fe248.js +0 -1
  415. package/apps/pwa/out/_next/static/chunks/app/botlab/page-9fa879ebf5959096.js +0 -1
  416. package/apps/pwa/out/_next/static/chunks/app/bots/page-ca7c3cc305c3285a.js +0 -1
  417. package/apps/pwa/out/_next/static/chunks/app/chat/page-9951930add3d2051.js +0 -1
  418. package/apps/pwa/out/_next/static/chunks/app/control/page-4472ddf1e2458e69.js +0 -1
  419. package/apps/pwa/out/_next/static/chunks/app/design-check/page-4de08d4b766f134b.js +0 -1
  420. package/apps/pwa/out/_next/static/chunks/app/editor/page-7a975e2b9db1dfb7.js +0 -1
  421. package/apps/pwa/out/_next/static/chunks/app/healthz/route-859cea1570b6227a.js +0 -1
  422. package/apps/pwa/out/_next/static/chunks/app/intake/page-49270714ef35bb96.js +0 -1
  423. package/apps/pwa/out/_next/static/chunks/app/layout-33fbdf353e2a5982.js +0 -1
  424. package/apps/pwa/out/_next/static/chunks/app/live/page-259f122e2dd64317.js +0 -1
  425. package/apps/pwa/out/_next/static/chunks/app/market/page-65b82726753658e1.js +0 -1
  426. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-4b8df3748dc06285.js +0 -1
  427. package/apps/pwa/out/_next/static/chunks/app/morning/page-112f7e477bda77fd.js +0 -1
  428. package/apps/pwa/out/_next/static/chunks/app/not-found-542a5c0006da637c.js +0 -1
  429. package/apps/pwa/out/_next/static/chunks/app/observatory/page-63ffb347831262ea.js +0 -1
  430. package/apps/pwa/out/_next/static/chunks/app/page-98e4e359d97263b4.js +0 -1
  431. package/apps/pwa/out/_next/static/chunks/app/reflection/page-97e24ac675ce576e.js +0 -1
  432. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-ac6391f26391d89d.js +0 -1
  433. package/apps/pwa/out/_next/static/chunks/app/sessions/page-9f45c9d45ffc43bd.js +0 -1
  434. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-36995b9cb5d98218.js +0 -1
  435. package/apps/pwa/out/_next/static/chunks/app/settings/page-0c795b577988d63f.js +0 -1
  436. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-b4311e2f71c6735a.js +0 -1
  437. package/apps/pwa/out/_next/static/chunks/app/setup/layout-859cea1570b6227a.js +0 -1
  438. package/apps/pwa/out/_next/static/chunks/app/setup/page-eb2381074df20dba.js +0 -1
  439. package/apps/pwa/out/_next/static/chunks/app/share/page-b01336e64eba01ae.js +0 -1
  440. package/apps/pwa/out/_next/static/chunks/app/showroom/page-7af7f21c1f2858ef.js +0 -1
  441. package/apps/pwa/out/_next/static/chunks/app/tasks/page-a98ecd364586c89b.js +0 -1
  442. package/apps/pwa/out/_next/static/chunks/app/term/page-57f0502dfbfa089b.js +0 -1
  443. package/apps/pwa/out/_next/static/chunks/app/trace/page-3467d2e1abd8a14a.js +0 -1
  444. package/apps/pwa/out/_next/static/chunks/app/vault/page-7842ca23d53ba682.js +0 -1
  445. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-ae9ac882912b0198.js +0 -1
  446. package/apps/pwa/out/_next/static/chunks/app/workflows/page-3a0d72e3f783bcef.js +0 -1
  447. package/apps/pwa/out/_next/static/chunks/app/workspace/page-f3b39fe8358c2a97.js +0 -1
  448. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-5a22af3181ac2afb.js +0 -1
  449. package/apps/pwa/out/_next/static/chunks/framework-ea806bb57f2b8923.js +0 -1
  450. package/apps/pwa/out/_next/static/chunks/main-8d2302399c2c8f87.js +0 -1
  451. package/apps/pwa/out/_next/static/chunks/main-app-1457627bb302a22c.js +0 -1
  452. package/apps/pwa/out/_next/static/chunks/pages/_app-b10928c60f0b8488.js +0 -1
  453. package/apps/pwa/out/_next/static/chunks/pages/_error-689039227d443fab.js +0 -1
  454. package/apps/pwa/out/_next/static/css/e66b7f5efc8df3f3.css +0 -1
  455. /package/apps/pwa/out/_next/static/{zoQX5iTvXOsIvCjxCe1Ji → qMI0jnlZaBjjm4aIDYNGM}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,10 +1,11 @@
1
- # ElanousAgent
1
+ <p align="center"><img src="https://elanous.ai/media/brand/elanous-180.png" width="112" alt="Elanous mark"></p>
2
2
 
3
- > **Beta** — Elanous is provided as is (Apache-2.0) until the stable release. Get stable release news at [elanous.ai](https://elanous.ai).
4
- > **베타** — 정식 릴리스 전까지 Elanous 는 있는 그대로(Apache-2.0) 제공됩니다. 정식 릴리스 소식은 [elanous.ai](https://elanous.ai) 에서 받으세요.
3
+ # Elanous
5
4
 
6
- > The name joins *élan* (the drive to act) and *nous* (mind). The agent
7
- > observes itself, reasons about what it sees, and repairs itself; a person is called only when it cannot (一約之觀).
5
+ > **Public beta** — install it today; provided as is (Apache-2.0). The big update lands on October 28, 2026 — news at [elanous.ai](https://elanous.ai).
6
+ > **공개 베타** — 지금 설치해 쓸 수 있습니다. 정식판 전까지 있는 그대로(Apache-2.0) 제공합니다. 2026년 10월 28일 대규모 업데이트 — 소식은 [elanous.ai](https://elanous.ai). <!-- announce:allow B11 -->
7
+
8
+ > **élan, and nous** — The red point at the center is *élan* — the drive to move on its own. The three white blades around it are *nous* — the mind that brings order. They turn one way — observe, understand, heal — widening a little with every turn. A spark meets a mind and keeps widening itself. That is Elanous.
8
9
 
9
10
  **A self-healing coding harness where eyes, hands, and memory all turn on
10
11
  one sentence — an agent that develops agents.**
@@ -153,7 +154,7 @@ several places — notably the default integrity gate runs
153
154
  Running the harness against another repository is **not supported yet**.
154
155
  ## Documentation
155
156
 
156
- All documentation lives at **[docs.elanous.ai](https://docs.elanous.ai/)** (한국어: [/ko](https://docs.elanous.ai/ko/)).
157
+ All documentation lives at **[docs.elanous.ai](https://docs.elanous.ai/)** (한국어: [/ko](https://docs.elanous.ai/ko/)). <!-- announce:allow B11 -->
157
158
 
158
159
  | Goal | Start here |
159
160
  |---|---|
@@ -1 +1 @@
1
- <!DOCTYPE html><!--zoQX5iTvXOsIvCjxCe1Ji--><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/e66b7f5efc8df3f3.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-1457627bb302a22c.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-0059d82bdb4812bf.js" async=""></script><script src="/app/_next/static/chunks/2375-3fcae5186c64fe6b.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/319-d37df1b6e0cbeff4.js" async=""></script><script src="/app/_next/static/chunks/5791-bb82743fa6299562.js" async=""></script><script src="/app/_next/static/chunks/app/layout-33fbdf353e2a5982.js" async=""></script><script src="/app/_next/static/chunks/6416-505ba707cacafbba.js" async=""></script><script src="/app/_next/static/chunks/app/not-found-542a5c0006da637c.js" async=""></script><meta name="robots" content="noindex"/><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>elanous</title><meta name="description" content="monad-agent unified PWA — voice · chat · intake · control · terminal."/><meta name="application-name" content="elanous"/><link rel="manifest" href="/app/manifest.webmanifest"/><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="Intake — 넣으면 흡수 · 작업 · 그래프로 (URL · 미션 · 메모)" aria-label="Intake — 넣으면 흡수 · 작업 · 그래프로 (URL · 미션 · 메모)" 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/intake/"><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-inbox h-4 w-4 shrink-0 text-current" aria-hidden="true"><polyline points="22 12 16 12 14 15 10 15 8 12 2 12"></polyline><path d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></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">Intake</span><span class="ml-1 text-muted-foreground">— <!-- -->넣으면 흡수 · 작업 · 그래프로 (URL · 미션 · 메모)</span></span></li><li class="group/nav relative"><a title="Approvals — 아이디어 PR 요약 · 승인하고 머지" aria-label="Approvals — 아이디어 PR 요약 · 승인하고 머지" 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/approvals/"><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-git-pull-request h-4 w-4 shrink-0 text-current" aria-hidden="true"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M13 6h3a2 2 0 0 1 2 2v7"></path><line x1="6" x2="6" y1="9" y2="21"></line></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">Approvals</span><span class="ml-1 text-muted-foreground">— <!-- -->아이디어 PR 요약 · 승인하고 머지</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="Trace — 렌즈를 좁혀 런을 따라간다 (플릿 → 런 → 판단)" aria-label="Trace — 렌즈를 좁혀 런을 따라간다 (플릿 → 런 → 판단)" 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/trace/"><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-crosshair h-4 w-4 shrink-0 text-current" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><line x1="22" x2="18" y1="12" y2="12"></line><line x1="6" x2="2" y1="12" y2="12"></line><line x1="12" x2="12" y1="6" y2="2"></line><line x1="12" x2="12" y1="22" y2="18"></line></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">Trace</span><span class="ml-1 text-muted-foreground">— <!-- -->렌즈를 좁혀 런을 따라간다 (플릿 → 런 → 판단)</span></span></li><li class="group/nav relative"><a title="Missions — 미션 · 작업 (미션 계보·골 던지기·작업 보드·자율행동)" aria-label="Missions — 미션 · 작업 (미션 계보·골 던지기·작업 보드·자율행동)" 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/autopilot/"><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-compass h-4 w-4 shrink-0 text-current" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"></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">Missions</span><span class="ml-1 text-muted-foreground">— <!-- -->미션 · 작업 (미션 계보·골 던지기·작업 보드·자율행동)</span></span></li><li class="group/nav relative"><a title="Design — 디자인 시스템 고르기 · 시안 · URL 로 내 시스템" aria-label="Design — 디자인 시스템 고르기 · 시안 · URL 로 내 시스템" 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/design-check/"><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-palette h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"></path><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"></circle><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"></circle><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"></circle><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"></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">Design</span><span class="ml-1 text-muted-foreground">— <!-- -->디자인 시스템 고르기 · 시안 · URL 로 내 시스템</span></span></li><li class="group/nav relative"><a title="Vault — Obsidian 노트 (브라우저·에디터·검색·그래프)" aria-label="Vault — Obsidian 노트 (브라우저·에디터·검색·그래프)" 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/vault/"><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-book-open h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></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">Vault</span><span class="ml-1 text-muted-foreground">— <!-- -->Obsidian 노트 (브라우저·에디터·검색·그래프)</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="Schedules — 예약 잡 종합 현황 (크론·데몬·launchd)" aria-label="Schedules — 예약 잡 종합 현황 (크론·데몬·launchd)" 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/scheduler/"><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-calendar-clock h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M16 14v2.2l1.6 1"></path><path d="M16 2v4"></path><path d="M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"></path><path d="M3 10h5"></path><path d="M8 2v4"></path><circle cx="16" cy="16" r="6"></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">Schedules</span><span class="ml-1 text-muted-foreground">— <!-- -->예약 잡 종합 현황 (크론·데몬·launchd)</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 data-testid="not-found" class="min-h-screen bg-gradient-to-b from-background via-background to-muted/40 px-6 py-12 sm:px-10"><div class="mx-auto flex w-full max-w-5xl flex-col gap-10"><header class="flex flex-col gap-3"><p class="text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground">elanous PWA</p><h1 class="text-3xl font-bold leading-tight sm:text-4xl">여기엔 없습니다</h1><p class="text-sm text-muted-foreground"><code>/_not-found/</code> 주소는 이 앱에 없습니다. 아래에서 지금 갈 수 있는 곳을 선택하거나 참고 주소의 사유를 확인하세요.</p></header><section aria-label="이동 가능한 주소와 참고 주소" class="grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3"><article data-testid="route-guidance-term" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/term/">Terminal<!-- --> <code class="text-xs text-muted-foreground">/term</code></a></article><article data-testid="route-guidance-chat" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/chat/">Chat<!-- --> <code class="text-xs text-muted-foreground">/chat</code></a></article><article data-testid="route-guidance-intake" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/intake/">Intake<!-- --> <code class="text-xs text-muted-foreground">/intake</code></a></article><article data-testid="route-guidance-approvals" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/approvals/">Approvals<!-- --> <code class="text-xs text-muted-foreground">/approvals</code></a></article><article data-testid="route-guidance-showroom" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/showroom/">Showroom<!-- --> <code class="text-xs text-muted-foreground">/showroom</code></a></article><article data-testid="route-guidance-live" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/live/">Live<!-- --> <code class="text-xs text-muted-foreground">/live</code></a></article><article data-testid="route-guidance-trace" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/trace/">Trace<!-- --> <code class="text-xs text-muted-foreground">/trace</code></a></article><article data-testid="route-guidance-bots" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/bots/">Bots<!-- --> <code class="text-xs text-muted-foreground">/bots</code></a></article><article data-testid="route-guidance-observatory" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/observatory/">Observatory<!-- --> <code class="text-xs text-muted-foreground">/observatory</code></a></article><article data-testid="route-guidance-autopilot" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/autopilot/">Missions<!-- --> <code class="text-xs text-muted-foreground">/autopilot</code></a></article><article data-testid="route-guidance-tasks" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/tasks/">Tasks<!-- --> <code class="text-xs text-muted-foreground">/tasks</code></a></article><article data-testid="route-guidance-board" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/board/">보드<!-- --> <code class="text-xs text-muted-foreground">/board</code></a></article><article data-testid="route-guidance-design-check" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/design-check/">Design<!-- --> <code class="text-xs text-muted-foreground">/design-check</code></a></article><article data-testid="route-guidance-vault" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/vault/">Vault<!-- --> <code class="text-xs text-muted-foreground">/vault</code></a></article><article data-testid="route-guidance-market" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/market/">마켓<!-- --> <code class="text-xs text-muted-foreground">/market</code></a></article><article data-testid="route-guidance-scheduler" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/scheduler/">Schedules<!-- --> <code class="text-xs text-muted-foreground">/scheduler</code></a></article><article data-testid="route-guidance-sessions" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/sessions/">Sessions<!-- --> <code class="text-xs text-muted-foreground">/sessions</code></a></article><article data-testid="route-guidance-reflection" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/reflection/">Reflection<!-- --> <code class="text-xs text-muted-foreground">/reflection</code></a></article><article data-testid="route-guidance-editor" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/editor/">편집기<!-- --> <code class="text-xs text-muted-foreground">/editor</code></a></article><article data-testid="route-guidance-worktrees" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/worktrees/">Worktrees<!-- --> <code class="text-xs text-muted-foreground">/worktrees</code></a></article><article data-testid="route-guidance-control" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/control/">Control<!-- --> <code class="text-xs text-muted-foreground">/control</code></a></article><article data-testid="route-guidance-settings" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/settings/">Settings<!-- --> <code class="text-xs text-muted-foreground">/settings</code></a></article><article data-testid="route-guidance-workspace" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/workspace/">Workspace<!-- --> <code class="text-xs text-muted-foreground">/workspace</code></a></article><article data-testid="route-guidance-share" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/share</code></span><p class="text-sm leading-relaxed text-muted-foreground">운영체제가 공유 동작으로 호출하는 Share Target 진입점.</p></div></article><article data-testid="route-guidance-missions" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/missions</code></span><p class="text-sm leading-relaxed text-muted-foreground">`[id]`를 받는 동적 주소이며 부모 경로 자체는 없다.</p></div></article><article data-testid="route-guidance-setup" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/setup</code></span><p class="text-sm leading-relaxed text-muted-foreground">LLM provider 온보딩 진입점.</p></div></article><article data-testid="route-guidance-setup-done" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/setup/done</code></span><p class="text-sm leading-relaxed text-muted-foreground">LLM provider 온보딩 완료 화면.</p></div></article><article data-testid="route-guidance-settings-devices" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/settings/devices</code></span><p class="text-sm leading-relaxed text-muted-foreground">Settings 아래 Device fleet 하위 화면.</p></div></article><article data-testid="route-guidance-workflows" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/workflows</code></span><p class="text-sm leading-relaxed text-muted-foreground">기존 워크플로 링크를 /editor?mode=workflow 로 전달한다.</p></div></article><article data-testid="route-guidance-workflows-chat-ui" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/workflows/chat-ui</code></span><p class="text-sm leading-relaxed text-muted-foreground">Workflows에서 여는 hosted chat 하위 흐름.</p></div></article><article data-testid="route-guidance-root" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/</code></span><p class="text-sm leading-relaxed text-muted-foreground">첫 방문자를 위한 루트 welcome 화면.</p></div></article><article data-testid="route-guidance-404" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/404</code></span><p class="text-sm leading-relaxed text-muted-foreground">오류 페이지.</p></div></article><article data-testid="route-guidance-morning" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/morning</code></span><p class="text-sm leading-relaxed text-muted-foreground">부르는 백엔드가 아직 없는 미배선 화면.</p></div></article><article data-testid="route-guidance-botlab" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/botlab</code></span><p class="text-sm leading-relaxed text-muted-foreground">봇 화면 «벽»을 한 자리에서 보는 읽기 진단 화면(#15390 · 봇 운영자용).</p></div></article></section></div></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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.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-0059d82bdb4812bf.js\",\"2375\",\"static/chunks/2375-3fcae5186c64fe6b.js\",\"8067\",\"static/chunks/8067-f74bf14d67ad98f1.js\",\"8619\",\"static/chunks/8619-4365e03a2862830f.js\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"5791\",\"static/chunks/5791-bb82743fa6299562.js\",\"7177\",\"static/chunks/app/layout-33fbdf353e2a5982.js\"],\"AppShell\"]\n"])</script><script>self.__next_f.push([1,"a:I[57048,[],\"\"]\nb:I[75854,[],\"\"]\nc: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\",\"319\",\"static/chunks/319-d37df1b6e0cbeff4.js\",\"4345\",\"static/chunks/app/not-found-542a5c0006da637c.js\"],\"default\"]\nd:I[79013,[],\"ClientPageRoot\"]\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/e66b7f5efc8df3f3.css\",\"style\"]\n:HL[\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"zoQX5iTvXOsIvCjxCe1Ji\",\"p\":\"/app\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/e66b7f5efc8df3f3.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,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$Lc\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]}]}]]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Ld\",null,{\"Component\":\"$c\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@e\",\"$@f\"]}],null,[\"$\",\"$L10\",null,{\"children\":[\"$L11\",[\"$\",\"$L12\",null,{\"promise\":\"$@13\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$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,"e:{}\nf:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\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,"13:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"elanous\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"monad-agent unified PWA — voice · chat · intake · control · terminal.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"elanous\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/app/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"18:\"$13:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--qMI0jnlZaBjjm4aIDYNGM--><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/eaa74e8bb2f62269.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-37b8bf78a3c6eec5.js"/><script src="/app/_next/static/chunks/91ff6dda-3b33d42d20657429.js" async=""></script><script src="/app/_next/static/chunks/4259-99614149577e77cb.js" async=""></script><script src="/app/_next/static/chunks/main-app-11c63971b7a9593b.js" async=""></script><script src="/app/_next/static/chunks/3165-95515ca5f299a120.js" async=""></script><script src="/app/_next/static/chunks/8612-4a0066f20951b8fd.js" async=""></script><script src="/app/_next/static/chunks/4240-7153881b0b377306.js" async=""></script><script src="/app/_next/static/chunks/5423-e95fd125d1794349.js" async=""></script><script src="/app/_next/static/chunks/5110-8058791dd25a2e14.js" async=""></script><script src="/app/_next/static/chunks/8071-187edbc22a86741f.js" async=""></script><script src="/app/_next/static/chunks/5478-b5eae07dc79ea619.js" async=""></script><script src="/app/_next/static/chunks/5787-96ee6642b9a661e5.js" async=""></script><script src="/app/_next/static/chunks/3995-bee512a7063036ce.js" async=""></script><script src="/app/_next/static/chunks/7007-3b9861091bb8dd21.js" async=""></script><script src="/app/_next/static/chunks/9328-45abdebce4fbecb7.js" async=""></script><script src="/app/_next/static/chunks/1947-9d64872eeb9cfdec.js" async=""></script><script src="/app/_next/static/chunks/763-7d0e1913b5074e98.js" async=""></script><script src="/app/_next/static/chunks/app/layout-236b80d202110362.js" async=""></script><script src="/app/_next/static/chunks/6448-79d72368589f98bc.js" async=""></script><script src="/app/_next/static/chunks/app/not-found-7c0f85fbb56f64c6.js" async=""></script><meta name="robots" content="noindex"/><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>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="Intake — 넣으면 흡수 · 작업 · 그래프로 (URL · 미션 · 메모)" aria-label="Intake — 넣으면 흡수 · 작업 · 그래프로 (URL · 미션 · 메모)" 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/intake/"><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-inbox h-4 w-4 shrink-0 text-current" aria-hidden="true"><polyline points="22 12 16 12 14 15 10 15 8 12 2 12"></polyline><path d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></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">Intake</span><span class="ml-1 text-muted-foreground">— <!-- -->넣으면 흡수 · 작업 · 그래프로 (URL · 미션 · 메모)</span></span></li><li class="group/nav relative"><a title="Approvals — 아이디어 PR 요약 · 승인하고 머지" aria-label="Approvals — 아이디어 PR 요약 · 승인하고 머지" 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/approvals/"><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-git-pull-request h-4 w-4 shrink-0 text-current" aria-hidden="true"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M13 6h3a2 2 0 0 1 2 2v7"></path><line x1="6" x2="6" y1="9" y2="21"></line></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">Approvals</span><span class="ml-1 text-muted-foreground">— <!-- -->아이디어 PR 요약 · 승인하고 머지</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="Trace — 렌즈를 좁혀 런을 따라간다 (플릿 → 런 → 판단)" aria-label="Trace — 렌즈를 좁혀 런을 따라간다 (플릿 → 런 → 판단)" 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/trace/"><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-crosshair h-4 w-4 shrink-0 text-current" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><line x1="22" x2="18" y1="12" y2="12"></line><line x1="6" x2="2" y1="12" y2="12"></line><line x1="12" x2="12" y1="6" y2="2"></line><line x1="12" x2="12" y1="22" y2="18"></line></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">Trace</span><span class="ml-1 text-muted-foreground">— <!-- -->렌즈를 좁혀 런을 따라간다 (플릿 → 런 → 판단)</span></span></li><li class="group/nav relative"><a title="Missions — 미션 · 작업 (미션 계보·골 던지기·작업 보드·자율행동)" aria-label="Missions — 미션 · 작업 (미션 계보·골 던지기·작업 보드·자율행동)" 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/autopilot/"><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-compass h-4 w-4 shrink-0 text-current" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"></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">Missions</span><span class="ml-1 text-muted-foreground">— <!-- -->미션 · 작업 (미션 계보·골 던지기·작업 보드·자율행동)</span></span></li><li class="group/nav relative"><a title="Design — 디자인 시스템 고르기 · 시안 · URL 로 내 시스템" aria-label="Design — 디자인 시스템 고르기 · 시안 · URL 로 내 시스템" 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/design-check/"><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-palette h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"></path><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"></circle><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"></circle><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"></circle><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"></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">Design</span><span class="ml-1 text-muted-foreground">— <!-- -->디자인 시스템 고르기 · 시안 · URL 로 내 시스템</span></span></li><li class="group/nav relative"><a title="Vault — Obsidian 노트 (브라우저·에디터·검색·그래프)" aria-label="Vault — Obsidian 노트 (브라우저·에디터·검색·그래프)" 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/vault/"><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-book-open h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></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">Vault</span><span class="ml-1 text-muted-foreground">— <!-- -->Obsidian 노트 (브라우저·에디터·검색·그래프)</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="Schedules — 예약 잡 종합 현황 (크론·데몬·launchd)" aria-label="Schedules — 예약 잡 종합 현황 (크론·데몬·launchd)" 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/scheduler/"><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-calendar-clock h-4 w-4 shrink-0 text-current" aria-hidden="true"><path d="M16 14v2.2l1.6 1"></path><path d="M16 2v4"></path><path d="M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"></path><path d="M3 10h5"></path><path d="M8 2v4"></path><circle cx="16" cy="16" r="6"></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">Schedules</span><span class="ml-1 text-muted-foreground">— <!-- -->예약 잡 종합 현황 (크론·데몬·launchd)</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 data-testid="not-found" class="min-h-screen bg-gradient-to-b from-background via-background to-muted/40 px-6 py-12 sm:px-10"><div class="mx-auto flex w-full max-w-5xl flex-col gap-10"><header class="flex flex-col gap-3"><p class="text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground">elanous PWA</p><h1 class="text-3xl font-bold leading-tight sm:text-4xl">여기엔 없습니다</h1><p class="text-sm text-muted-foreground"><code>/_not-found/</code> 주소는 이 앱에 없습니다. 아래에서 지금 갈 수 있는 곳을 선택하거나 참고 주소의 사유를 확인하세요.</p></header><section aria-label="이동 가능한 주소와 참고 주소" class="grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3"><article data-testid="route-guidance-term" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/term/">Terminal<!-- --> <code class="text-xs text-muted-foreground">/term</code></a></article><article data-testid="route-guidance-chat" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/chat/">Chat<!-- --> <code class="text-xs text-muted-foreground">/chat</code></a></article><article data-testid="route-guidance-intake" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/intake/">Intake<!-- --> <code class="text-xs text-muted-foreground">/intake</code></a></article><article data-testid="route-guidance-approvals" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/approvals/">Approvals<!-- --> <code class="text-xs text-muted-foreground">/approvals</code></a></article><article data-testid="route-guidance-showroom" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/showroom/">Showroom<!-- --> <code class="text-xs text-muted-foreground">/showroom</code></a></article><article data-testid="route-guidance-live" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/live/">Live<!-- --> <code class="text-xs text-muted-foreground">/live</code></a></article><article data-testid="route-guidance-trace" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/trace/">Trace<!-- --> <code class="text-xs text-muted-foreground">/trace</code></a></article><article data-testid="route-guidance-bots" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/bots/">Bots<!-- --> <code class="text-xs text-muted-foreground">/bots</code></a></article><article data-testid="route-guidance-observatory" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/observatory/">Observatory<!-- --> <code class="text-xs text-muted-foreground">/observatory</code></a></article><article data-testid="route-guidance-autopilot" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/autopilot/">Missions<!-- --> <code class="text-xs text-muted-foreground">/autopilot</code></a></article><article data-testid="route-guidance-tasks" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/tasks/">Tasks<!-- --> <code class="text-xs text-muted-foreground">/tasks</code></a></article><article data-testid="route-guidance-board" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/board/">보드<!-- --> <code class="text-xs text-muted-foreground">/board</code></a></article><article data-testid="route-guidance-design-check" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/design-check/">Design<!-- --> <code class="text-xs text-muted-foreground">/design-check</code></a></article><article data-testid="route-guidance-vault" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/vault/">Vault<!-- --> <code class="text-xs text-muted-foreground">/vault</code></a></article><article data-testid="route-guidance-market" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/market/">마켓<!-- --> <code class="text-xs text-muted-foreground">/market</code></a></article><article data-testid="route-guidance-scheduler" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/scheduler/">Schedules<!-- --> <code class="text-xs text-muted-foreground">/scheduler</code></a></article><article data-testid="route-guidance-sessions" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/sessions/">Sessions<!-- --> <code class="text-xs text-muted-foreground">/sessions</code></a></article><article data-testid="route-guidance-reflection" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/reflection/">Reflection<!-- --> <code class="text-xs text-muted-foreground">/reflection</code></a></article><article data-testid="route-guidance-editor" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/editor/">편집기<!-- --> <code class="text-xs text-muted-foreground">/editor</code></a></article><article data-testid="route-guidance-worktrees" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/worktrees/">Worktrees<!-- --> <code class="text-xs text-muted-foreground">/worktrees</code></a></article><article data-testid="route-guidance-control" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/control/">Control<!-- --> <code class="text-xs text-muted-foreground">/control</code></a></article><article data-testid="route-guidance-settings" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/settings/">Settings<!-- --> <code class="text-xs text-muted-foreground">/settings</code></a></article><article data-testid="route-guidance-workspace" data-route-kind="destination" class="rounded-2xl border border-border/60 bg-card/60 p-5 shadow-sm"><a class="font-semibold underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/app/workspace/">Workspace<!-- --> <code class="text-xs text-muted-foreground">/workspace</code></a></article><article data-testid="route-guidance-share" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/share</code></span><p class="text-sm leading-relaxed text-muted-foreground">운영체제가 공유 동작으로 호출하는 Share Target 진입점.</p></div></article><article data-testid="route-guidance-missions" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/missions</code></span><p class="text-sm leading-relaxed text-muted-foreground">`[id]`를 받는 동적 주소이며 부모 경로 자체는 없다.</p></div></article><article data-testid="route-guidance-setup" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/setup</code></span><p class="text-sm leading-relaxed text-muted-foreground">LLM provider 온보딩 진입점.</p></div></article><article data-testid="route-guidance-setup-done" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/setup/done</code></span><p class="text-sm leading-relaxed text-muted-foreground">LLM provider 온보딩 완료 화면.</p></div></article><article data-testid="route-guidance-settings-devices" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/settings/devices</code></span><p class="text-sm leading-relaxed text-muted-foreground">Settings 아래 Device fleet 하위 화면.</p></div></article><article data-testid="route-guidance-workflows" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/workflows</code></span><p class="text-sm leading-relaxed text-muted-foreground">기존 워크플로 링크를 /editor?mode=workflow 로 전달한다.</p></div></article><article data-testid="route-guidance-workflows-chat-ui" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/workflows/chat-ui</code></span><p class="text-sm leading-relaxed text-muted-foreground">Workflows에서 여는 hosted chat 하위 흐름.</p></div></article><article data-testid="route-guidance-root" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/</code></span><p class="text-sm leading-relaxed text-muted-foreground">첫 방문자를 위한 루트 welcome 화면.</p></div></article><article data-testid="route-guidance-404" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/404</code></span><p class="text-sm leading-relaxed text-muted-foreground">오류 페이지.</p></div></article><article data-testid="route-guidance-morning" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/morning</code></span><p class="text-sm leading-relaxed text-muted-foreground">부르는 백엔드가 아직 없는 미배선 화면.</p></div></article><article data-testid="route-guidance-botlab" data-route-kind="reference" class="rounded-2xl border border-border/60 p-5 shadow-sm bg-muted/40"><div class="flex flex-col gap-2"><span class="font-semibold">참고 주소 <code class="text-xs text-muted-foreground">/botlab</code></span><p class="text-sm leading-relaxed text-muted-foreground">봇 화면 «벽»을 한 자리에서 보는 읽기 진단 화면(#15390 · 봇 운영자용).</p></div></article></section></div></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-37b8bf78a3c6eec5.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[94529,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"ServiceWorkerRegister\"]\n"])</script><script>self.__next_f.push([1,"3:I[13914,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"NewBuildBanner\"]\n"])</script><script>self.__next_f.push([1,"4:I[45787,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"DaemonProvider\"]\n"])</script><script>self.__next_f.push([1,"5:I[84619,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"NexusClientProvider\"]\n"])</script><script>self.__next_f.push([1,"6:I[69004,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"7:I[32427,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"TooltipProvider\"]\n"])</script><script>self.__next_f.push([1,"8:I[42908,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"ToastProvider\"]\n"])</script><script>self.__next_f.push([1,"9:I[84428,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"AppShell\"]\n"])</script><script>self.__next_f.push([1,"a:I[70655,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"4240\",\"static/chunks/4240-7153881b0b377306.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"5110\",\"static/chunks/5110-8058791dd25a2e14.js\",\"8071\",\"static/chunks/8071-187edbc22a86741f.js\",\"5478\",\"static/chunks/5478-b5eae07dc79ea619.js\",\"5787\",\"static/chunks/5787-96ee6642b9a661e5.js\",\"3995\",\"static/chunks/3995-bee512a7063036ce.js\",\"7007\",\"static/chunks/7007-3b9861091bb8dd21.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"1947\",\"static/chunks/1947-9d64872eeb9cfdec.js\",\"763\",\"static/chunks/763-7d0e1913b5074e98.js\",\"7177\",\"static/chunks/app/layout-236b80d202110362.js\"],\"MaturityBanner\"]\n"])</script><script>self.__next_f.push([1,"b:I[55850,[],\"\"]\nc:I[26184,[],\"\"]\nd:I[13746,[\"3165\",\"static/chunks/3165-95515ca5f299a120.js\",\"8612\",\"static/chunks/8612-4a0066f20951b8fd.js\",\"5423\",\"static/chunks/5423-e95fd125d1794349.js\",\"6448\",\"static/chunks/6448-79d72368589f98bc.js\",\"9328\",\"static/chunks/9328-45abdebce4fbecb7.js\",\"4345\",\"static/chunks/app/not-found-7c0f85fbb56f64c6.js\"],\"default\"]\ne:I[63787,[],\"ClientPageRoot\"]\n11:I[69219,[],\"OutletBoundary\"]\n13:I[91698,[],\"AsyncMetadataOutlet\"]\n15:I[69219,[],\"ViewportBoundary\"]\n17:I[69219,[],\"MetadataBoundary\"]\n18:\"$Sreact.suspense\"\n1a:I[57762,[],\"\"]\n:HL[\"/app/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/app/_next/static/css/eaa74e8bb2f62269.css\",\"style\"]\n:HL[\"/app/_next/static/css/04dabcbcc4bfa6db.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"qMI0jnlZaBjjm4aIDYNGM\",\"p\":\"/app\",\"c\":[\"\",\"_not-found\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/app/_next/static/css/eaa74e8bb2f62269.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\":[\"/_not-found\",[\"$\",\"$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,{\"Component\":\"$d\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@f\",\"$@10\"]}],null,[\"$\",\"$L11\",null,{\"children\":[\"$L12\",[\"$\",\"$L13\",null,{\"promise\":\"$@14\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L15\",null,{\"children\":\"$L16\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L17\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$18\",null,{\"fallback\":null,\"children\":\"$L19\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$1a\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:{}\n10:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"16:[[\"$\",\"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\"}]]\n12:null\n"])</script><script>self.__next_f.push([1,"1b:I[2394,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"14:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"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\"}],[\"$\",\"$L1b\",\"7\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"19:\"$14:metadata\"\n"])</script></body></html>