elanous 0.2.4 → 0.2.5
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.
- package/README.md +3 -3
- package/apps/pwa/out/404/index.html +1 -1
- package/apps/pwa/out/404.html +1 -1
- package/apps/pwa/out/_next/static/chunks/06ef2eba-d1b99ac6d2ea663c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1413-7179a49332db5a80.js +1 -0
- package/apps/pwa/out/_next/static/chunks/150-25c277137a9638ab.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1640-bc99ec23bbe29d12.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{2415.ed6428ff334c7ce2.js → 1751.50b96ea9c37b49b6.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/2300-de059d0ab2a16630.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2684-05b0a81e75298c16.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3026-2ed7e317d9b02102.js +25 -0
- package/apps/pwa/out/_next/static/chunks/3611-77496ada38cd6358.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3717-68957c4dc9ceec90.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3929-46ba9af6f9d895cc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4015-62c5a3744698a8da.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4217-3c4317a7905f9eeb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4240-3230f230fae2d7d5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4271-e53e075ebd48593b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4377.3b125fef79576dfd.js +5 -0
- package/apps/pwa/out/_next/static/chunks/4440-18bb160d95819f4e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4853-35fdbe6bdbcdc0fc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{2ea96958-e8c7e112de50b067.js → 4daa2798-1363d725c79f3593.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/5007-6a3b30e23ff68a6e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5244-12b424c42070f5ff.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{5791-bb82743fa6299562.js → 5348-bbf838e119661eee.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/5391-8793f88b03b30161.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5611-df00af3e4e4a61bb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5890-dca2321773be829a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6123-37c9dc57ddaa7ab0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6588-b7975304a302ab91.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6604-c03961962b6273b6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7109-cf8c87e968e83a65.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7178-30f77877525a2efb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7262-871563fc9663730b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7294-f0eeebb92aa93459.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7429-881af44deed6958f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7527.943753b6ed829f09.js +1 -0
- package/apps/pwa/out/_next/static/chunks/764-a01e858525a190c0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7868-e35d5f7985ecd3f1.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8320-51484af7b01fdfa5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4323.c5dfb6f503304775.js → 8617.465ca22a319c95b3.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{5080-1613752891fcadb4.js → 8918-482b30ce2a8ebf4c.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/9131-52f5fad51cceca04.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9238.2cd5f47f4bf7a2c3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6062-73e68343a9814f6a.js → 9704-3221c102623c8d73.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-70c404c7bb6d7f0f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-3ffd80166b1050aa.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-f89e9a303515a033.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/board/page-4f403cd060442c95.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/botlab/{page-9fa879ebf5959096.js → page-0ac5d053f0444d21.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-4bcc63e272ae8205.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/chat/page-880734bd07d62882.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/control/{page-4472ddf1e2458e69.js → page-72bd384898d88955.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-1018bbc9586ecae5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/editor/page-de86f8c38076dd7b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-70c404c7bb6d7f0f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/intake/page-cd6447196d8bafe6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/layout-e733630c47fa102b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live/page-d1c1a8357b161875.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/market/page-60c514128e81d787.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-8b637b7e325e13c1.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/morning/{page-112f7e477bda77fd.js → page-bccce0babceae30f.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-63301d11dbe73836.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-a8cf0dc472060db2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/page-02fba54881ccfa49.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-d5e8e90f0038f8de.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-b1ef6824f494466a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-d589bb0f233b1009.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-c9bbaebef4cda059.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/page-3639ce7916b92fed.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-7450ae7478955653.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-70c404c7bb6d7f0f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/page-b41ca4abfd618452.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/share/page-b333dd79ebee3fa9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-8be1227492793655.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-6e03e9371b552e0d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/term/page-911411e9fca18d03.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/trace/page-792170e649b37088.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/vault/page-c40463466937bc91.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-509c798b80384536.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-1cac2aa21d77c417.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-9626799d9b4a2cd1.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-84cd419494e16b0f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{8046cadf-211ca3c0e00f2b72.js → f6f3850d-7f324c6566002113.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/framework-361487d2da603917.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-app-607f5beb94cb2e07.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-d0222d219e29dddf.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_app-a26980a31126decc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_error-edb2b37decf23e4d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{webpack-e5bea36f183b25e6.js → webpack-2bf59c720fe9542c.js} +1 -1
- package/apps/pwa/out/_next/static/css/eaa74e8bb2f62269.css +1 -0
- package/apps/pwa/out/_next/static/{zoQX5iTvXOsIvCjxCe1Ji → ktMqfrBbf8BMGac0jqLrb}/_buildManifest.js +1 -1
- package/apps/pwa/out/approvals/index.html +1 -1
- package/apps/pwa/out/approvals/index.txt +29 -27
- package/apps/pwa/out/autopilot/index.html +1 -1
- package/apps/pwa/out/autopilot/index.txt +29 -27
- package/apps/pwa/out/board/index.html +1 -1
- package/apps/pwa/out/board/index.txt +29 -27
- package/apps/pwa/out/botlab/index.html +1 -1
- package/apps/pwa/out/botlab/index.txt +26 -24
- package/apps/pwa/out/bots/index.html +1 -1
- package/apps/pwa/out/bots/index.txt +26 -24
- package/apps/pwa/out/chat/index.html +1 -1
- package/apps/pwa/out/chat/index.txt +26 -24
- package/apps/pwa/out/control/index.html +1 -1
- package/apps/pwa/out/control/index.txt +29 -27
- package/apps/pwa/out/design-check/index.html +1 -1
- package/apps/pwa/out/design-check/index.txt +29 -27
- package/apps/pwa/out/editor/index.html +1 -1
- package/apps/pwa/out/editor/index.txt +29 -27
- package/apps/pwa/out/healthz +1 -1
- package/apps/pwa/out/icons/elanous-16.png +0 -0
- package/apps/pwa/out/icons/elanous-180.png +0 -0
- package/apps/pwa/out/icons/elanous-192.png +0 -0
- package/apps/pwa/out/icons/elanous-32.png +0 -0
- package/apps/pwa/out/icons/elanous-512.png +0 -0
- package/apps/pwa/out/index.html +1 -1
- package/apps/pwa/out/index.txt +26 -24
- package/apps/pwa/out/intake/index.html +1 -1
- package/apps/pwa/out/intake/index.txt +29 -27
- package/apps/pwa/out/live/index.html +1 -1
- package/apps/pwa/out/live/index.txt +29 -27
- package/apps/pwa/out/manifest.webmanifest +5 -2
- package/apps/pwa/out/market/index.html +1 -1
- package/apps/pwa/out/market/index.txt +26 -24
- package/apps/pwa/out/missions/placeholder/index.html +1 -1
- package/apps/pwa/out/missions/placeholder/index.txt +26 -24
- package/apps/pwa/out/morning/index.html +1 -1
- package/apps/pwa/out/morning/index.txt +29 -27
- package/apps/pwa/out/observatory/index.html +1 -1
- package/apps/pwa/out/observatory/index.txt +29 -27
- package/apps/pwa/out/reflection/index.html +1 -1
- package/apps/pwa/out/reflection/index.txt +27 -25
- package/apps/pwa/out/scheduler/index.html +1 -1
- package/apps/pwa/out/scheduler/index.txt +29 -27
- package/apps/pwa/out/sessions/index.html +1 -1
- package/apps/pwa/out/sessions/index.txt +26 -24
- package/apps/pwa/out/settings/devices/index.html +1 -1
- package/apps/pwa/out/settings/devices/index.txt +29 -27
- package/apps/pwa/out/settings/index.html +1 -1
- package/apps/pwa/out/settings/index.txt +29 -27
- package/apps/pwa/out/setup/done/index.html +1 -1
- package/apps/pwa/out/setup/done/index.txt +29 -27
- package/apps/pwa/out/setup/index.html +1 -1
- package/apps/pwa/out/setup/index.txt +29 -27
- package/apps/pwa/out/share/index.html +1 -1
- package/apps/pwa/out/share/index.txt +29 -27
- package/apps/pwa/out/showroom/index.html +1 -1
- package/apps/pwa/out/showroom/index.txt +26 -24
- package/apps/pwa/out/sw-strategies.js +44 -0
- package/apps/pwa/out/sw.js +6 -44
- package/apps/pwa/out/tasks/index.html +1 -1
- package/apps/pwa/out/tasks/index.txt +29 -27
- package/apps/pwa/out/term/index.html +1 -1
- package/apps/pwa/out/term/index.txt +29 -27
- package/apps/pwa/out/trace/index.html +1 -1
- package/apps/pwa/out/trace/index.txt +29 -27
- package/apps/pwa/out/vault/index.html +1 -1
- package/apps/pwa/out/vault/index.txt +29 -27
- package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
- package/apps/pwa/out/workflows/chat-ui/index.txt +29 -27
- package/apps/pwa/out/workflows/index.html +1 -1
- package/apps/pwa/out/workflows/index.txt +29 -27
- package/apps/pwa/out/workspace/index.html +1 -1
- package/apps/pwa/out/workspace/index.txt +29 -27
- package/apps/pwa/out/worktrees/index.html +1 -1
- package/apps/pwa/out/worktrees/index.txt +29 -27
- package/catalog/resources.yaml +6 -6
- package/docs/goal-context/steward-directives-2026-09-28.md +35 -37
- package/graphs/landing/landing-heal.yaml +1 -1
- package/graphs/release/recipes.yaml +8 -1
- package/graphs/release/release-loop.yaml +6 -1
- package/graphs/video/README.md +1 -0
- package/graphs/video/explainer-line.yaml +58 -0
- package/package.json +3 -1
- package/plugins/job-coach/.codex-plugin/plugin.json +18 -1
- package/plugins/job-coach/README.md +12 -0
- package/plugins/job-coach/connectors/ncs/server.ts +4 -3
- package/plugins/job-coach/graphs/gap-judge.ts +44 -0
- package/plugins/job-coach/graphs/recipes.yaml +27 -0
- package/plugins/job-coach/graphs/report-enterprise.yaml +28 -0
- package/plugins/job-coach/graphs/run-step.ts +211 -17
- package/plugins/job-coach/plugin.json +16 -3
- package/plugins/job-coach/skills/enterprise-ai-fit/SKILL.md +8 -0
- package/plugins/job-coach/skills/enterprise-competency/SKILL.md +8 -0
- package/plugins/job-coach/skills/enterprise-needs/SKILL.md +8 -0
- package/plugins/job-coach/skills/enterprise-roadmap/SKILL.md +8 -0
- package/plugins/job-coach/skills/enterprise-task-analysis/SKILL.md +8 -0
- package/plugins/job-coach/skills/interview-to-profile/SKILL.md +18 -1
- package/scripts/backup/elanous-backup.sh +4 -1
- package/scripts/build-docs-site.ts +4 -3
- package/scripts/coord-channel-watch.sh +23 -4
- package/scripts/coord-post.sh +49 -12
- package/scripts/coord-tracks.json +5 -5
- package/scripts/eval-bot-vs-grok.ts +79 -0
- package/scripts/eval-grok-live-baseline.ts +36 -0
- package/scripts/fixtures/front-route-corpus.sample.json +17 -0
- package/scripts/fleet/node-setup.sh +46 -7
- package/scripts/landing-heal/must-fix-match.ts +26 -0
- package/scripts/landing-heal/run-mission.ts +114 -20
- package/scripts/lib/front-route-measurement.ts +131 -0
- package/scripts/lib/tui-sim-keys.ts +42 -0
- package/scripts/measure-front-route-classifier.ts +56 -0
- package/scripts/media/ocr-leak-scan.sh +21 -0
- package/scripts/public-export.ts +2 -3
- package/scripts/public-import-pr.ts +80 -6
- package/scripts/publish-internal-dist.ts +2 -3
- package/scripts/red-sweep-diff.ts +1 -1
- package/scripts/release-loop/auto-approve-node.ts +72 -0
- package/scripts/release-loop/gate-node.ts +332 -44
- package/scripts/release-loop/publish-node.ts +7 -3
- package/scripts/release-loop/release-docs.ts +20 -13
- package/scripts/release-loop/test-durations.ts +63 -0
- package/scripts/release-loop/upgrade-node.ts +3 -2
- package/scripts/test-audit-coverage-per-file.sh +16 -0
- package/scripts/test-audit-meaningless.ts +88 -0
- package/scripts/test-audit-overlap-and-weak.ts +73 -0
- package/scripts/test-deterministic.ts +27 -5
- package/scripts/tui-sim.ts +59 -14
- package/scripts/ux/bump-installed.sh +20 -0
- package/scripts/ux/lib/cdp.ts +72 -0
- package/scripts/ux/record-page.ts +50 -0
- package/skills/explainer-video/SKILL.md +99 -0
- package/skills/explainer-video/engine/brand/elanous-mark-on-dark.svg +1 -0
- package/skills/explainer-video/engine/build.mjs +431 -0
- package/skills/explainer-video/engine/vo.ts +37 -0
- package/skills/explainer-video/examples/elanous-0.2.5/script.json +155 -0
- package/src/agent/nested-agent-env.ts +1 -0
- package/src/agent-mission/driver.ts +95 -16
- package/src/agent-mission/mission-cli.ts +6 -0
- package/src/agent-mission/resource-ladder.ts +73 -25
- package/src/auth/acp-token.ts +16 -0
- package/src/auth/github-app-token.ts +112 -0
- package/src/autopilot/gh-rest-fallback.ts +177 -0
- package/src/autopilot/pr-manager.ts +51 -4
- package/src/boot/acp-server.ts +2 -16
- package/src/boot/daemon-tools/web-search.ts +2 -1
- package/src/boot/ws-bridge.ts +11 -0
- package/src/chat/index.ts +37 -8
- package/src/chat/log-scroll-key.ts +12 -0
- package/src/chat/submit-trace.ts +30 -0
- package/src/cli/agent-cli.ts +7 -2
- package/src/cli/decisions-cli.ts +94 -0
- package/src/cli/doctor-cli.ts +40 -54
- package/src/cli/doctor-readiness.ts +16 -24
- package/src/cli/intake-cli.ts +1 -1
- package/src/cli/mcp-call.ts +9 -0
- package/src/cli/mcp-gateway-cli.ts +7 -3
- package/src/cli/plugin-cli.ts +109 -11
- package/src/cli/pr-lineage.ts +2 -1
- package/src/cli/pwa-start.ts +3 -0
- package/src/cli/release-cli.ts +94 -7
- package/src/cli/self-update.ts +7 -4
- package/src/cli/start-cli.ts +33 -14
- package/src/dashboard/acp-boot.ts +3 -0
- package/src/dashboard/index.ts +62 -13
- package/src/dashboard/input/no-provider-reply.ts +13 -0
- package/src/dashboard/slash-runtime/unknown-slash-reply.ts +78 -0
- package/src/dashboard/stale-install-check.ts +77 -0
- package/src/decisions/decision-ledger.ts +404 -0
- package/src/domains/outbound-alert.ts +8 -2
- package/src/domains/telegram-kind-route.ts +21 -0
- package/src/execution-loop/dispatch-task.ts +139 -0
- package/src/execution-loop/gate-decision-summary.ts +29 -0
- package/src/execution-loop/gates.ts +197 -0
- package/src/graph-kinds/installed-plugin-nodes.ts +95 -0
- package/src/graph-kinds/plugin-nodes.ts +10 -2
- package/src/graph-runner/runner.ts +35 -5
- package/src/grounding/token.ts +12 -6
- package/src/harness/harness-cli-command.ts +68 -9
- package/src/harness/harness-pod-dispatch.ts +8 -2
- package/src/harness/harness-stop.ts +147 -18
- package/src/harness/self-send-decide.ts +26 -17
- package/src/harness/self-send-target.ts +22 -1
- package/src/harness/worktree-branch-prefix.ts +4 -3
- package/src/index.ts +56 -13
- package/src/instance/resolve.ts +6 -0
- package/src/intake-plane/collect-telegram-saved.ts +5 -0
- package/src/intake-plane/digest.ts +11 -2
- package/src/live/detail-switch.ts +8 -3
- package/src/llm/usable-llm.ts +32 -0
- package/src/loops/registry.ts +27 -5
- package/src/market/publish.ts +59 -3
- package/src/native-tool-catalog.ts +2 -2
- package/src/nexus/api/graph-approvals.ts +125 -0
- package/src/nexus/api/http-server.ts +60 -6
- package/src/nexus/api/log-fabric.ts +10 -1
- package/src/nexus/api/mcp-oauth-hint.ts +10 -9
- package/src/nexus/api/merge-approvals.ts +2 -1
- package/src/nexus/api/meta-api.ts +14 -0
- package/src/nexus/api/plugins-credentials-api.ts +47 -0
- package/src/nexus/api/plugins-market.ts +87 -3
- package/src/nexus/api/pod-credential-api.ts +68 -14
- package/src/nexus/api/public-routes.ts +7 -0
- package/src/nexus/api/trace.ts +57 -6
- package/src/nexus/boot/register-mcp-clients.ts +99 -14
- package/src/nexus/index.ts +33 -32
- package/src/nexus/outbound/router.ts +1 -1
- package/src/onboarding.ts +25 -2
- package/src/plugins/core/host.ts +14 -0
- package/src/plugins/install/market-fetch.ts +4 -3
- package/src/plugins/install/plugin-credentials.ts +106 -0
- package/src/plugins/install/plugin-install.ts +163 -32
- package/src/prompt-library/universal-preamble.ts +8 -2
- package/src/release-loop/checklist.ts +191 -0
- package/src/release-loop/release-note.ts +6 -3
- package/src/self-dev/dev-cli.ts +40 -20
- package/src/self-dev/dev-pipeline.ts +77 -1
- package/src/self-implement/gate-baseline.ts +3 -1
- package/src/self-implement/goal-author.ts +18 -1
- package/src/self-implement/host-regate.ts +6 -2
- package/src/self-implement/orchestrator.ts +7 -2
- package/src/self-implement/seams.ts +4 -2
- package/src/skills/tools/dev-harness.ts +42 -0
- package/src/steward/steward-cards.ts +45 -0
- package/src/steward/triage.ts +50 -14
- package/src/task-orchestrator/surfaces/pod-artifact-return.ts +61 -3
- package/src/task-orchestrator/surfaces/pod-command-job.ts +27 -6
- package/src/task-orchestrator/surfaces/pod-ledger-collect.ts +39 -9
- package/src/task-orchestrator/surfaces/pod-source-bundle.ts +16 -1
- package/src/task-orchestrator/surfaces/pod-source-receive.ts +51 -13
- package/src/task-orchestrator/surfaces/self-implement-pod.ts +172 -28
- package/src/telegram-report.ts +12 -6
- package/src/tui-client/acp-transport-ws-client.ts +72 -5
- package/src/tui.ts +3 -2
- package/src/user-config.ts +28 -2
- package/src/util/spawn-sync-output.ts +15 -0
- package/src/version/code-revision.ts +1 -1
- package/src/version/packed-revision.json +1 -1
- package/src/web-search/free.ts +77 -0
- package/src/web-search/index.ts +2 -0
- package/src/workflow-runtime/deps-bridge.ts +4 -3
- package/src/workflow-runtime/plugin-kind-node.ts +32 -4
- package/src/workflow-runtime/types.ts +2 -1
- package/apps/pwa/out/_next/static/chunks/1105-c473ed46272fba79.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1191-7b13a24117a689fa.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1201-09613bce624467c0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1377-1efeffbbac0963ff.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1470.98a6ab61ccb4131c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/216-5acd01cbde4acda7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2330-c2f07246c8788af1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2375-3fcae5186c64fe6b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2929-617f1e66a55be184.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2977-e38442e86289f1d3.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2982-2a2df543be3d2e5a.js +0 -25
- package/apps/pwa/out/_next/static/chunks/319-d37df1b6e0cbeff4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3403.4bc97b4066945a94.js +0 -5
- package/apps/pwa/out/_next/static/chunks/3441-a1dd4acfeda14488.js +0 -1
- package/apps/pwa/out/_next/static/chunks/371-4ad6af55dad02ced.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4114-3e63117452378807.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4836-3c93795ab834381e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5609-012bb3557211f07e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6090-1bd6077591603947.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6320-baac91d68843a9a6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6416-505ba707cacafbba.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6725-68ab7cc0b1faf00d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6998-a654fe5c58271600.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7457-f5cb1cc8db9f7453.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7647.2fcd30d894d5ee30.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7673-2eda1507d38dadb8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7990-e12efba616f46e03.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8067-f74bf14d67ad98f1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8142-011e1f474efb8b33.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8519-0059d82bdb4812bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8619-4365e03a2862830f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/920-f7dceb78f1c585ef.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9651-3cd291a6fa1370d2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9740-52467f244755917f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9804-64c02c3c127d5014.js +0 -1
- package/apps/pwa/out/_next/static/chunks/ae787e4c-f2998de7f1ba72a4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-859cea1570b6227a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-21c3261af6ab377c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-1991445b8ea86274.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/board/page-4ebfaee2369fe248.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-ca7c3cc305c3285a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/chat/page-9951930add3d2051.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-4de08d4b766f134b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/editor/page-7a975e2b9db1dfb7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-859cea1570b6227a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/intake/page-49270714ef35bb96.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/layout-33fbdf353e2a5982.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live/page-259f122e2dd64317.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-65b82726753658e1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-4b8df3748dc06285.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-542a5c0006da637c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-63ffb347831262ea.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/page-98e4e359d97263b4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-97e24ac675ce576e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-ac6391f26391d89d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-9f45c9d45ffc43bd.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-36995b9cb5d98218.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/page-0c795b577988d63f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-b4311e2f71c6735a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-859cea1570b6227a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/page-eb2381074df20dba.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/share/page-b01336e64eba01ae.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-7af7f21c1f2858ef.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-a98ecd364586c89b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/term/page-57f0502dfbfa089b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/trace/page-3467d2e1abd8a14a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/vault/page-7842ca23d53ba682.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-ae9ac882912b0198.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-3a0d72e3f783bcef.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-f3b39fe8358c2a97.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-5a22af3181ac2afb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/framework-ea806bb57f2b8923.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-8d2302399c2c8f87.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-app-1457627bb302a22c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_app-b10928c60f0b8488.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_error-689039227d443fab.js +0 -1
- package/apps/pwa/out/_next/static/css/e66b7f5efc8df3f3.css +0 -1
- /package/apps/pwa/out/_next/static/{zoQX5iTvXOsIvCjxCe1Ji → ktMqfrBbf8BMGac0jqLrb}/_ssgManifest.js +0 -0
|
@@ -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><script src="/app/_next/static/chunks/216-5acd01cbde4acda7.js" async=""></script><script src="/app/_next/static/chunks/371-4ad6af55dad02ced.js" async=""></script><script src="/app/_next/static/chunks/3441-a1dd4acfeda14488.js" async=""></script><script src="/app/_next/static/chunks/2929-617f1e66a55be184.js" async=""></script><script src="/app/_next/static/chunks/app/showroom/page-7af7f21c1f2858ef.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="preload" as="font" type="font/ttf" href="/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf" crossorigin="anonymous"/><meta name="theme-color" content="#1e1e2e"/><title>Showroom · 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"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><!--$--><!--/$--></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:\"$Sreact.suspense\"\ne:I[83144,[\"2977\",\"static/chunks/2977-e38442e86289f1d3.js\",\"216\",\"static/chunks/216-5acd01cbde4acda7.js\",\"920\",\"static/chunks/920-f7dceb78f1c585ef.js\",\"6062\",\"static/chunks/6062-73e68343a9814f6a.js\",\"371\",\"static/chunks/371-4ad6af55dad02ced.js\",\"8519\",\"static/chunks/8519-0059d82bdb4812bf.js\",\"3441\",\"static/chunks/3441-a1dd4acfeda14488.js\",\"2929\",\"static/chunks/2929-617f1e66a55be184.js\",\"9549\",\"static/chunks/app/showroom/page-7af7f21c1f2858ef.js\"],\"ShowroomLayout\"]\nf:I[78357,[],\"OutletBoundary\"]\n11:I[70112,[],\"AsyncMetadataOutlet\"]\n13:I[78357,[],\"ViewportBoundary\"]\n15:I[78357,[],\"MetadataBoundary\"]\n17: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\":[\"\",\"showroom\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"showroom\",{\"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\":[\"showroom\",[\"$\",\"$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\":[[\"$\",\"$d\",null,{\"fallback\":null,\"children\":[\"$\",\"$Le\",null,{}]}],null,[\"$\",\"$Lf\",null,{\"children\":[\"$L10\",[\"$\",\"$L11\",null,{\"promise\":\"$@12\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L15\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$L16\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$17\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#1e1e2e\"}]]\n10:null\n"])</script><script>self.__next_f.push([1,"12:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Showroom · 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,"16:\"$12:metadata\"\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--ktMqfrBbf8BMGac0jqLrb--><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-2bf59c720fe9542c.js"/><script src="/app/_next/static/chunks/f6f3850d-7f324c6566002113.js" async=""></script><script src="/app/_next/static/chunks/7429-881af44deed6958f.js" async=""></script><script src="/app/_next/static/chunks/main-app-607f5beb94cb2e07.js" async=""></script><script src="/app/_next/static/chunks/4853-35fdbe6bdbcdc0fc.js" async=""></script><script src="/app/_next/static/chunks/764-a01e858525a190c0.js" async=""></script><script src="/app/_next/static/chunks/9704-3221c102623c8d73.js" async=""></script><script src="/app/_next/static/chunks/6123-37c9dc57ddaa7ab0.js" async=""></script><script src="/app/_next/static/chunks/2300-de059d0ab2a16630.js" async=""></script><script src="/app/_next/static/chunks/4217-3c4317a7905f9eeb.js" async=""></script><script src="/app/_next/static/chunks/150-25c277137a9638ab.js" async=""></script><script src="/app/_next/static/chunks/4015-62c5a3744698a8da.js" async=""></script><script src="/app/_next/static/chunks/5391-8793f88b03b30161.js" async=""></script><script src="/app/_next/static/chunks/3611-77496ada38cd6358.js" async=""></script><script src="/app/_next/static/chunks/7178-30f77877525a2efb.js" async=""></script><script src="/app/_next/static/chunks/8320-51484af7b01fdfa5.js" async=""></script><script src="/app/_next/static/chunks/5348-bbf838e119661eee.js" async=""></script><script src="/app/_next/static/chunks/app/layout-e733630c47fa102b.js" async=""></script><script src="/app/_next/static/chunks/1640-bc99ec23bbe29d12.js" async=""></script><script src="/app/_next/static/chunks/app/not-found-63301d11dbe73836.js" async=""></script><script src="/app/_next/static/chunks/7294-f0eeebb92aa93459.js" async=""></script><script src="/app/_next/static/chunks/4271-e53e075ebd48593b.js" async=""></script><script src="/app/_next/static/chunks/3717-68957c4dc9ceec90.js" async=""></script><script src="/app/_next/static/chunks/3929-46ba9af6f9d895cc.js" async=""></script><script src="/app/_next/static/chunks/app/showroom/page-8be1227492793655.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="preload" as="font" type="font/ttf" href="/app/fonts/JetBrainsMonoNerdFontMono-Regular.ttf" crossorigin="anonymous"/><meta name="theme-color" content="#1e1e2e"/><title>Showroom · 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"><div role="status" class="border-b border-border bg-muted px-4 py-2 text-sm text-foreground">베타 — 화면과 동작이 바뀔 수 있습니다.</div><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><!--$--><!--/$--></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-2bf59c720fe9542c.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[70442,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"ServiceWorkerRegister\"]\n"])</script><script>self.__next_f.push([1,"3:I[56925,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"NewBuildBanner\"]\n"])</script><script>self.__next_f.push([1,"4:I[34015,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"DaemonProvider\"]\n"])</script><script>self.__next_f.push([1,"5:I[3367,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"NexusClientProvider\"]\n"])</script><script>self.__next_f.push([1,"6:I[32736,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"7:I[3223,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"TooltipProvider\"]\n"])</script><script>self.__next_f.push([1,"8:I[40951,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"ToastProvider\"]\n"])</script><script>self.__next_f.push([1,"9:I[61097,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"AppShell\"]\n"])</script><script>self.__next_f.push([1,"a:I[35691,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"2300\",\"static/chunks/2300-de059d0ab2a16630.js\",\"4217\",\"static/chunks/4217-3c4317a7905f9eeb.js\",\"150\",\"static/chunks/150-25c277137a9638ab.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"5391\",\"static/chunks/5391-8793f88b03b30161.js\",\"3611\",\"static/chunks/3611-77496ada38cd6358.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"8320\",\"static/chunks/8320-51484af7b01fdfa5.js\",\"5348\",\"static/chunks/5348-bbf838e119661eee.js\",\"7177\",\"static/chunks/app/layout-e733630c47fa102b.js\"],\"MaturityBanner\"]\n"])</script><script>self.__next_f.push([1,"b:I[20294,[],\"\"]\nc:I[48364,[],\"\"]\nd:I[5974,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"6123\",\"static/chunks/6123-37c9dc57ddaa7ab0.js\",\"1640\",\"static/chunks/1640-bc99ec23bbe29d12.js\",\"7178\",\"static/chunks/7178-30f77877525a2efb.js\",\"4345\",\"static/chunks/app/not-found-63301d11dbe73836.js\"],\"default\"]\ne:\"$Sreact.suspense\"\nf:I[92446,[\"4853\",\"static/chunks/4853-35fdbe6bdbcdc0fc.js\",\"7294\",\"static/chunks/7294-f0eeebb92aa93459.js\",\"764\",\"static/chunks/764-a01e858525a190c0.js\",\"9704\",\"static/chunks/9704-3221c102623c8d73.js\",\"4271\",\"static/chunks/4271-e53e075ebd48593b.js\",\"4015\",\"static/chunks/4015-62c5a3744698a8da.js\",\"3717\",\"static/chunks/3717-68957c4dc9ceec90.js\",\"3929\",\"static/chunks/3929-46ba9af6f9d895cc.js\",\"9549\",\"static/chunks/app/showroom/page-8be1227492793655.js\"],\"ShowroomLayout\"]\n10:I[23580,[],\"OutletBoundary\"]\n12:I[82350,[],\"AsyncMetadataOutlet\"]\n14:I[23580,[],\"ViewportBoundary\"]\n16:I[23580,[],\"MetadataBoundary\"]\n18:I[46014,[],\"\"]\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\":\"ktMqfrBbf8BMGac0jqLrb\",\"p\":\"/app\",\"c\":[\"\",\"showroom\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"showroom\",{\"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\":[\"showroom\",[\"$\",\"$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\":[[\"$\",\"$e\",null,{\"fallback\":null,\"children\":[\"$\",\"$Lf\",null,{}]}],null,[\"$\",\"$L10\",null,{\"children\":[\"$L11\",[\"$\",\"$L12\",null,{\"promise\":\"$@13\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L16\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$e\",null,{\"fallback\":null,\"children\":\"$L17\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#1e1e2e\"}]]\n11:null\n"])</script><script>self.__next_f.push([1,"19:I[6990,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"13:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Showroom · elanous\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"elanous — voice · chat · intake · control · terminal.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"elanous\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/app/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/app/icons/elanous-16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/app/icons/elanous-180.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L19\",\"7\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"17:\"$13:metadata\"\n"])</script></body></html>
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[
|
|
3
|
-
3:I[
|
|
4
|
-
4:I[
|
|
5
|
-
5:I[
|
|
6
|
-
6:I[
|
|
7
|
-
7:I[
|
|
8
|
-
8:I[
|
|
9
|
-
9:I[
|
|
10
|
-
a:I[
|
|
11
|
-
b:I[
|
|
12
|
-
c:I[
|
|
13
|
-
d:"
|
|
14
|
-
e:
|
|
15
|
-
f:I[
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
2
|
+
2:I[70442,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"ServiceWorkerRegister"]
|
|
3
|
+
3:I[56925,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"NewBuildBanner"]
|
|
4
|
+
4:I[34015,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"DaemonProvider"]
|
|
5
|
+
5:I[3367,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"NexusClientProvider"]
|
|
6
|
+
6:I[32736,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"ThemeProvider"]
|
|
7
|
+
7:I[3223,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"TooltipProvider"]
|
|
8
|
+
8:I[40951,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"ToastProvider"]
|
|
9
|
+
9:I[61097,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"AppShell"]
|
|
10
|
+
a:I[35691,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","2300","static/chunks/2300-de059d0ab2a16630.js","4217","static/chunks/4217-3c4317a7905f9eeb.js","150","static/chunks/150-25c277137a9638ab.js","4015","static/chunks/4015-62c5a3744698a8da.js","5391","static/chunks/5391-8793f88b03b30161.js","3611","static/chunks/3611-77496ada38cd6358.js","7178","static/chunks/7178-30f77877525a2efb.js","8320","static/chunks/8320-51484af7b01fdfa5.js","5348","static/chunks/5348-bbf838e119661eee.js","7177","static/chunks/app/layout-e733630c47fa102b.js"],"MaturityBanner"]
|
|
11
|
+
b:I[20294,[],""]
|
|
12
|
+
c:I[48364,[],""]
|
|
13
|
+
d:I[5974,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","764","static/chunks/764-a01e858525a190c0.js","6123","static/chunks/6123-37c9dc57ddaa7ab0.js","1640","static/chunks/1640-bc99ec23bbe29d12.js","7178","static/chunks/7178-30f77877525a2efb.js","4345","static/chunks/app/not-found-63301d11dbe73836.js"],"default"]
|
|
14
|
+
e:"$Sreact.suspense"
|
|
15
|
+
f:I[92446,["4853","static/chunks/4853-35fdbe6bdbcdc0fc.js","7294","static/chunks/7294-f0eeebb92aa93459.js","764","static/chunks/764-a01e858525a190c0.js","9704","static/chunks/9704-3221c102623c8d73.js","4271","static/chunks/4271-e53e075ebd48593b.js","4015","static/chunks/4015-62c5a3744698a8da.js","3717","static/chunks/3717-68957c4dc9ceec90.js","3929","static/chunks/3929-46ba9af6f9d895cc.js","9549","static/chunks/app/showroom/page-8be1227492793655.js"],"ShowroomLayout"]
|
|
16
|
+
10:I[23580,[],"OutletBoundary"]
|
|
17
|
+
12:I[82350,[],"AsyncMetadataOutlet"]
|
|
18
|
+
14:I[23580,[],"ViewportBoundary"]
|
|
19
|
+
16:I[23580,[],"MetadataBoundary"]
|
|
20
|
+
18:I[46014,[],""]
|
|
20
21
|
:HL["/app/_next/static/media/22a5144ee8d83bca-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
21
|
-
:HL["/app/_next/static/css/
|
|
22
|
+
:HL["/app/_next/static/css/eaa74e8bb2f62269.css","style"]
|
|
22
23
|
:HL["/app/_next/static/css/04dabcbcc4bfa6db.css","style"]
|
|
23
|
-
0:{"P":null,"b":"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
16:"$
|
|
24
|
+
0:{"P":null,"b":"ktMqfrBbf8BMGac0jqLrb","p":"/app","c":["","showroom",""],"i":false,"f":[[["",{"children":["showroom",{"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":["showroom",["$","$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":[["$","$e",null,{"fallback":null,"children":["$","$Lf",null,{}]}],null,["$","$L10",null,{"children":["$L11",["$","$L12",null,{"promise":"$@13"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L14",null,{"children":"$L15"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L16",null,{"children":["$","div",null,{"hidden":true,"children":["$","$e",null,{"fallback":null,"children":"$L17"}]}]}]]}],false]],"m":"$undefined","G":["$18",[]],"s":false,"S":true}
|
|
25
|
+
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"}]]
|
|
26
|
+
11:null
|
|
27
|
+
19:I[6990,[],"IconMark"]
|
|
28
|
+
13:{"metadata":[["$","title","0",{"children":"Showroom · elanous"}],["$","meta","1",{"name":"description","content":"elanous — voice · chat · intake · control · terminal."}],["$","meta","2",{"name":"application-name","content":"elanous"}],["$","link","3",{"rel":"manifest","href":"/app/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","4",{"rel":"icon","href":"/app/icons/elanous-32.png","sizes":"32x32","type":"image/png"}],["$","link","5",{"rel":"icon","href":"/app/icons/elanous-16.png","sizes":"16x16","type":"image/png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/app/icons/elanous-180.png","sizes":"180x180","type":"image/png"}],["$","$L19","7",{}]],"error":null,"digest":"$undefined"}
|
|
29
|
+
17:"$13:metadata"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Classic service-worker script, loaded by sw.js via importScripts.
|
|
2
|
+
// Dependencies and cache names are supplied by the fetch handler.
|
|
3
|
+
|
|
4
|
+
async function cacheFirst(request, caches, doFetch, runtimeCache) {
|
|
5
|
+
const cache = await caches.open(runtimeCache);
|
|
6
|
+
const cached = await cache.match(request);
|
|
7
|
+
if (cached) return cached;
|
|
8
|
+
try {
|
|
9
|
+
const fresh = await doFetch(request);
|
|
10
|
+
if (fresh.ok) {
|
|
11
|
+
// Don't cache opaque or partial responses.
|
|
12
|
+
cache.put(request, fresh.clone()).catch(() => { /* swallow */ });
|
|
13
|
+
}
|
|
14
|
+
return fresh;
|
|
15
|
+
} catch (e) {
|
|
16
|
+
// Cache miss + offline = give the user something. The runtime
|
|
17
|
+
// cache may have a stale fingerprinted asset under a slightly
|
|
18
|
+
// different query — best effort.
|
|
19
|
+
return new Response('', { status: 504, statusText: 'offline + uncached' });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async function networkFirstWithOfflineFallback(request, caches, doFetch, runtimeCache, precacheName) {
|
|
24
|
+
try {
|
|
25
|
+
const fresh = await doFetch(request);
|
|
26
|
+
if (fresh.ok) {
|
|
27
|
+
const cache = await caches.open(runtimeCache);
|
|
28
|
+
cache.put(request, fresh.clone()).catch(() => { /* swallow */ });
|
|
29
|
+
}
|
|
30
|
+
return fresh;
|
|
31
|
+
} catch {
|
|
32
|
+
const cache = await caches.open(runtimeCache);
|
|
33
|
+
const cached = await cache.match(request);
|
|
34
|
+
if (cached) return cached;
|
|
35
|
+
// Absolute last resort — the precached offline shell.
|
|
36
|
+
const precache = await caches.open(precacheName);
|
|
37
|
+
const offline = await precache.match('/app/offline.html');
|
|
38
|
+
if (offline) return offline;
|
|
39
|
+
return new Response('Offline · daemon unreachable', {
|
|
40
|
+
status: 503,
|
|
41
|
+
headers: { 'content-type': 'text/plain; charset=utf-8' },
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
package/apps/pwa/out/sw.js
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
// cache, but the constant is in place so Phase 4 doesn't need a
|
|
28
28
|
// breaking schema change.
|
|
29
29
|
|
|
30
|
+
importScripts('sw-strategies.js');
|
|
31
|
+
|
|
30
32
|
const CACHE_VERSION = 'v4-phase-4-offline-cache';
|
|
31
33
|
const CACHE_PREFIX = 'elanous-pwa-';
|
|
32
34
|
// Phase 2 — dedicated cache for incoming share-target POST payloads.
|
|
@@ -48,6 +50,8 @@ const PRECACHE = `${CACHE_PREFIX}precache-${CACHE_VERSION}`;
|
|
|
48
50
|
const PRECACHE_URLS = [
|
|
49
51
|
'/app/offline.html',
|
|
50
52
|
'/app/manifest.webmanifest',
|
|
53
|
+
'/app/icons/elanous-192.png',
|
|
54
|
+
'/app/icons/elanous-512.png',
|
|
51
55
|
];
|
|
52
56
|
|
|
53
57
|
self.addEventListener('install', (event) => {
|
|
@@ -118,61 +122,19 @@ self.addEventListener('fetch', (event) => {
|
|
|
118
122
|
|
|
119
123
|
if (url.pathname.startsWith('/app/_next/static/')
|
|
120
124
|
|| url.pathname.startsWith('/app/fonts/')) {
|
|
121
|
-
event.respondWith(cacheFirst(req));
|
|
125
|
+
event.respondWith(cacheFirst(req, self.caches, fetch, RUNTIME_CACHE));
|
|
122
126
|
return;
|
|
123
127
|
}
|
|
124
128
|
if (req.mode === 'navigate'
|
|
125
129
|
|| (req.headers.get('accept') || '').includes('text/html')) {
|
|
126
130
|
if (url.pathname.startsWith('/app/')) {
|
|
127
|
-
event.respondWith(networkFirstWithOfflineFallback(req));
|
|
131
|
+
event.respondWith(networkFirstWithOfflineFallback(req, self.caches, fetch, RUNTIME_CACHE, PRECACHE));
|
|
128
132
|
return;
|
|
129
133
|
}
|
|
130
134
|
}
|
|
131
135
|
// Default: passthrough.
|
|
132
136
|
});
|
|
133
137
|
|
|
134
|
-
async function cacheFirst(request) {
|
|
135
|
-
const cache = await self.caches.open(RUNTIME_CACHE);
|
|
136
|
-
const cached = await cache.match(request);
|
|
137
|
-
if (cached) return cached;
|
|
138
|
-
try {
|
|
139
|
-
const fresh = await fetch(request);
|
|
140
|
-
if (fresh.ok) {
|
|
141
|
-
// Don't cache opaque or partial responses.
|
|
142
|
-
cache.put(request, fresh.clone()).catch(() => { /* swallow */ });
|
|
143
|
-
}
|
|
144
|
-
return fresh;
|
|
145
|
-
} catch (e) {
|
|
146
|
-
// Cache miss + offline = give the user something. The runtime
|
|
147
|
-
// cache may have a stale fingerprinted asset under a slightly
|
|
148
|
-
// different query — best effort.
|
|
149
|
-
return new Response('', { status: 504, statusText: 'offline + uncached' });
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
async function networkFirstWithOfflineFallback(request) {
|
|
154
|
-
try {
|
|
155
|
-
const fresh = await fetch(request);
|
|
156
|
-
if (fresh.ok) {
|
|
157
|
-
const cache = await self.caches.open(RUNTIME_CACHE);
|
|
158
|
-
cache.put(request, fresh.clone()).catch(() => { /* swallow */ });
|
|
159
|
-
}
|
|
160
|
-
return fresh;
|
|
161
|
-
} catch {
|
|
162
|
-
const cache = await self.caches.open(RUNTIME_CACHE);
|
|
163
|
-
const cached = await cache.match(request);
|
|
164
|
-
if (cached) return cached;
|
|
165
|
-
// Absolute last resort — the precached offline shell.
|
|
166
|
-
const precache = await self.caches.open(PRECACHE);
|
|
167
|
-
const offline = await precache.match('/app/offline.html');
|
|
168
|
-
if (offline) return offline;
|
|
169
|
-
return new Response('Offline · daemon unreachable', {
|
|
170
|
-
status: 503,
|
|
171
|
-
headers: { 'content-type': 'text/plain; charset=utf-8' },
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
138
|
async function handleSharePost(request) {
|
|
177
139
|
try {
|
|
178
140
|
const formData = await request.formData();
|