openryoko 0.9.4-ryoko.2
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/dist/bin/jimmy.d.ts +3 -0
- package/dist/bin/jimmy.d.ts.map +1 -0
- package/dist/bin/jimmy.js +149 -0
- package/dist/bin/jimmy.js.map +1 -0
- package/dist/package.json +54 -0
- package/dist/src/cli/__tests__/migrate.test.d.ts +2 -0
- package/dist/src/cli/__tests__/migrate.test.d.ts.map +1 -0
- package/dist/src/cli/__tests__/migrate.test.js +79 -0
- package/dist/src/cli/__tests__/migrate.test.js.map +1 -0
- package/dist/src/cli/chrome-allow.d.ts +5 -0
- package/dist/src/cli/chrome-allow.d.ts.map +1 -0
- package/dist/src/cli/chrome-allow.js +250 -0
- package/dist/src/cli/chrome-allow.js.map +1 -0
- package/dist/src/cli/create.d.ts +2 -0
- package/dist/src/cli/create.d.ts.map +1 -0
- package/dist/src/cli/create.js +72 -0
- package/dist/src/cli/create.js.map +1 -0
- package/dist/src/cli/instances.d.ts +14 -0
- package/dist/src/cli/instances.d.ts.map +1 -0
- package/dist/src/cli/instances.js +43 -0
- package/dist/src/cli/instances.js.map +1 -0
- package/dist/src/cli/list.d.ts +2 -0
- package/dist/src/cli/list.d.ts.map +1 -0
- package/dist/src/cli/list.js +38 -0
- package/dist/src/cli/list.js.map +1 -0
- package/dist/src/cli/migrate.d.ts +5 -0
- package/dist/src/cli/migrate.d.ts.map +1 -0
- package/dist/src/cli/migrate.js +222 -0
- package/dist/src/cli/migrate.js.map +1 -0
- package/dist/src/cli/nuke.d.ts +2 -0
- package/dist/src/cli/nuke.d.ts.map +1 -0
- package/dist/src/cli/nuke.js +91 -0
- package/dist/src/cli/nuke.js.map +1 -0
- package/dist/src/cli/remove.d.ts +4 -0
- package/dist/src/cli/remove.d.ts.map +1 -0
- package/dist/src/cli/remove.js +47 -0
- package/dist/src/cli/remove.js.map +1 -0
- package/dist/src/cli/setup.d.ts +4 -0
- package/dist/src/cli/setup.d.ts.map +1 -0
- package/dist/src/cli/setup.js +491 -0
- package/dist/src/cli/setup.js.map +1 -0
- package/dist/src/cli/skills.d.ts +28 -0
- package/dist/src/cli/skills.d.ts.map +1 -0
- package/dist/src/cli/skills.js +284 -0
- package/dist/src/cli/skills.js.map +1 -0
- package/dist/src/cli/start.d.ts +5 -0
- package/dist/src/cli/start.d.ts.map +1 -0
- package/dist/src/cli/start.js +34 -0
- package/dist/src/cli/start.js.map +1 -0
- package/dist/src/cli/status.d.ts +2 -0
- package/dist/src/cli/status.d.ts.map +1 -0
- package/dist/src/cli/status.js +69 -0
- package/dist/src/cli/status.js.map +1 -0
- package/dist/src/cli/stop.d.ts +2 -0
- package/dist/src/cli/stop.d.ts.map +1 -0
- package/dist/src/cli/stop.js +11 -0
- package/dist/src/cli/stop.js.map +1 -0
- package/dist/src/connectors/cron/index.d.ts +21 -0
- package/dist/src/connectors/cron/index.d.ts.map +1 -0
- package/dist/src/connectors/cron/index.js +75 -0
- package/dist/src/connectors/cron/index.js.map +1 -0
- package/dist/src/connectors/discord/format.d.ts +3 -0
- package/dist/src/connectors/discord/format.d.ts.map +1 -0
- package/dist/src/connectors/discord/format.js +33 -0
- package/dist/src/connectors/discord/format.js.map +1 -0
- package/dist/src/connectors/discord/index.d.ts +47 -0
- package/dist/src/connectors/discord/index.d.ts.map +1 -0
- package/dist/src/connectors/discord/index.js +308 -0
- package/dist/src/connectors/discord/index.js.map +1 -0
- package/dist/src/connectors/discord/remote.d.ts +33 -0
- package/dist/src/connectors/discord/remote.d.ts.map +1 -0
- package/dist/src/connectors/discord/remote.js +89 -0
- package/dist/src/connectors/discord/remote.js.map +1 -0
- package/dist/src/connectors/discord/threads.d.ts +5 -0
- package/dist/src/connectors/discord/threads.d.ts.map +1 -0
- package/dist/src/connectors/discord/threads.js +22 -0
- package/dist/src/connectors/discord/threads.js.map +1 -0
- package/dist/src/connectors/slack/__tests__/active-threads.test.d.ts +2 -0
- package/dist/src/connectors/slack/__tests__/active-threads.test.d.ts.map +1 -0
- package/dist/src/connectors/slack/__tests__/active-threads.test.js +57 -0
- package/dist/src/connectors/slack/__tests__/active-threads.test.js.map +1 -0
- package/dist/src/connectors/slack/__tests__/format.test.d.ts +2 -0
- package/dist/src/connectors/slack/__tests__/format.test.d.ts.map +1 -0
- package/dist/src/connectors/slack/__tests__/format.test.js +115 -0
- package/dist/src/connectors/slack/__tests__/format.test.js.map +1 -0
- package/dist/src/connectors/slack/__tests__/speaker.test.d.ts +2 -0
- package/dist/src/connectors/slack/__tests__/speaker.test.d.ts.map +1 -0
- package/dist/src/connectors/slack/__tests__/speaker.test.js +59 -0
- package/dist/src/connectors/slack/__tests__/speaker.test.js.map +1 -0
- package/dist/src/connectors/slack/__tests__/triage-prompt.test.d.ts +2 -0
- package/dist/src/connectors/slack/__tests__/triage-prompt.test.d.ts.map +1 -0
- package/dist/src/connectors/slack/__tests__/triage-prompt.test.js +102 -0
- package/dist/src/connectors/slack/__tests__/triage-prompt.test.js.map +1 -0
- package/dist/src/connectors/slack/__tests__/triage.test.d.ts +2 -0
- package/dist/src/connectors/slack/__tests__/triage.test.d.ts.map +1 -0
- package/dist/src/connectors/slack/__tests__/triage.test.js +88 -0
- package/dist/src/connectors/slack/__tests__/triage.test.js.map +1 -0
- package/dist/src/connectors/slack/active-threads.d.ts +39 -0
- package/dist/src/connectors/slack/active-threads.d.ts.map +1 -0
- package/dist/src/connectors/slack/active-threads.js +71 -0
- package/dist/src/connectors/slack/active-threads.js.map +1 -0
- package/dist/src/connectors/slack/format.d.ts +17 -0
- package/dist/src/connectors/slack/format.d.ts.map +1 -0
- package/dist/src/connectors/slack/format.js +85 -0
- package/dist/src/connectors/slack/format.js.map +1 -0
- package/dist/src/connectors/slack/index.d.ts +51 -0
- package/dist/src/connectors/slack/index.d.ts.map +1 -0
- package/dist/src/connectors/slack/index.js +562 -0
- package/dist/src/connectors/slack/index.js.map +1 -0
- package/dist/src/connectors/slack/speaker.d.ts +39 -0
- package/dist/src/connectors/slack/speaker.d.ts.map +1 -0
- package/dist/src/connectors/slack/speaker.js +30 -0
- package/dist/src/connectors/slack/speaker.js.map +1 -0
- package/dist/src/connectors/slack/threads.d.ts +12 -0
- package/dist/src/connectors/slack/threads.d.ts.map +1 -0
- package/dist/src/connectors/slack/threads.js +41 -0
- package/dist/src/connectors/slack/threads.js.map +1 -0
- package/dist/src/connectors/slack/threads.test.d.ts +2 -0
- package/dist/src/connectors/slack/threads.test.d.ts.map +1 -0
- package/dist/src/connectors/slack/threads.test.js +79 -0
- package/dist/src/connectors/slack/threads.test.js.map +1 -0
- package/dist/src/connectors/slack/triage-prompt.d.ts +50 -0
- package/dist/src/connectors/slack/triage-prompt.d.ts.map +1 -0
- package/dist/src/connectors/slack/triage-prompt.js +127 -0
- package/dist/src/connectors/slack/triage-prompt.js.map +1 -0
- package/dist/src/connectors/slack/triage.d.ts +41 -0
- package/dist/src/connectors/slack/triage.d.ts.map +1 -0
- package/dist/src/connectors/slack/triage.js +120 -0
- package/dist/src/connectors/slack/triage.js.map +1 -0
- package/dist/src/connectors/telegram/__tests__/connector.test.d.ts +2 -0
- package/dist/src/connectors/telegram/__tests__/connector.test.d.ts.map +1 -0
- package/dist/src/connectors/telegram/__tests__/connector.test.js +257 -0
- package/dist/src/connectors/telegram/__tests__/connector.test.js.map +1 -0
- package/dist/src/connectors/telegram/__tests__/format.test.d.ts +2 -0
- package/dist/src/connectors/telegram/__tests__/format.test.d.ts.map +1 -0
- package/dist/src/connectors/telegram/__tests__/format.test.js +79 -0
- package/dist/src/connectors/telegram/__tests__/format.test.js.map +1 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.d.ts +2 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.d.ts.map +1 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.js +51 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.js.map +1 -0
- package/dist/src/connectors/telegram/format.d.ts +12 -0
- package/dist/src/connectors/telegram/format.d.ts.map +1 -0
- package/dist/src/connectors/telegram/format.js +61 -0
- package/dist/src/connectors/telegram/format.js.map +1 -0
- package/dist/src/connectors/telegram/index.d.ts +28 -0
- package/dist/src/connectors/telegram/index.d.ts.map +1 -0
- package/dist/src/connectors/telegram/index.js +213 -0
- package/dist/src/connectors/telegram/index.js.map +1 -0
- package/dist/src/connectors/telegram/threads.d.ts +29 -0
- package/dist/src/connectors/telegram/threads.d.ts.map +1 -0
- package/dist/src/connectors/telegram/threads.js +26 -0
- package/dist/src/connectors/telegram/threads.js.map +1 -0
- package/dist/src/connectors/whatsapp/__tests__/format.test.d.ts +2 -0
- package/dist/src/connectors/whatsapp/__tests__/format.test.d.ts.map +1 -0
- package/dist/src/connectors/whatsapp/__tests__/format.test.js +70 -0
- package/dist/src/connectors/whatsapp/__tests__/format.test.js.map +1 -0
- package/dist/src/connectors/whatsapp/format.d.ts +12 -0
- package/dist/src/connectors/whatsapp/format.d.ts.map +1 -0
- package/dist/src/connectors/whatsapp/format.js +53 -0
- package/dist/src/connectors/whatsapp/format.js.map +1 -0
- package/dist/src/connectors/whatsapp/index.d.ts +42 -0
- package/dist/src/connectors/whatsapp/index.d.ts.map +1 -0
- package/dist/src/connectors/whatsapp/index.js +279 -0
- package/dist/src/connectors/whatsapp/index.js.map +1 -0
- package/dist/src/cron/jobs.d.ts +5 -0
- package/dist/src/cron/jobs.d.ts.map +1 -0
- package/dist/src/cron/jobs.js +23 -0
- package/dist/src/cron/jobs.js.map +1 -0
- package/dist/src/cron/runner.d.ts +4 -0
- package/dist/src/cron/runner.d.ts.map +1 -0
- package/dist/src/cron/runner.js +88 -0
- package/dist/src/cron/runner.js.map +1 -0
- package/dist/src/cron/scheduler.d.ts +8 -0
- package/dist/src/cron/scheduler.d.ts.map +1 -0
- package/dist/src/cron/scheduler.js +64 -0
- package/dist/src/cron/scheduler.js.map +1 -0
- package/dist/src/engines/__tests__/gemini.test.d.ts +2 -0
- package/dist/src/engines/__tests__/gemini.test.d.ts.map +1 -0
- package/dist/src/engines/__tests__/gemini.test.js +404 -0
- package/dist/src/engines/__tests__/gemini.test.js.map +1 -0
- package/dist/src/engines/claude.d.ts +20 -0
- package/dist/src/engines/claude.d.ts.map +1 -0
- package/dist/src/engines/claude.js +520 -0
- package/dist/src/engines/claude.js.map +1 -0
- package/dist/src/engines/codex.d.ts +15 -0
- package/dist/src/engines/codex.d.ts.map +1 -0
- package/dist/src/engines/codex.js +351 -0
- package/dist/src/engines/codex.js.map +1 -0
- package/dist/src/engines/gemini.d.ts +32 -0
- package/dist/src/engines/gemini.d.ts.map +1 -0
- package/dist/src/engines/gemini.js +328 -0
- package/dist/src/engines/gemini.js.map +1 -0
- package/dist/src/engines/mock.d.ts +16 -0
- package/dist/src/engines/mock.d.ts.map +1 -0
- package/dist/src/engines/mock.js +47 -0
- package/dist/src/engines/mock.js.map +1 -0
- package/dist/src/gateway/__tests__/api-last-n.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/api-last-n.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/api-last-n.test.js +32 -0
- package/dist/src/gateway/__tests__/api-last-n.test.js.map +1 -0
- package/dist/src/gateway/__tests__/costs.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/costs.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/costs.test.js +32 -0
- package/dist/src/gateway/__tests__/costs.test.js.map +1 -0
- package/dist/src/gateway/__tests__/org-hierarchy.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/org-hierarchy.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/org-hierarchy.test.js +161 -0
- package/dist/src/gateway/__tests__/org-hierarchy.test.js.map +1 -0
- package/dist/src/gateway/__tests__/org-update.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/org-update.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/org-update.test.js +99 -0
- package/dist/src/gateway/__tests__/org-update.test.js.map +1 -0
- package/dist/src/gateway/__tests__/org.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/org.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/org.test.js +77 -0
- package/dist/src/gateway/__tests__/org.test.js.map +1 -0
- package/dist/src/gateway/__tests__/services.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/services.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/services.test.js +153 -0
- package/dist/src/gateway/__tests__/services.test.js.map +1 -0
- package/dist/src/gateway/api.d.ts +19 -0
- package/dist/src/gateway/api.d.ts.map +1 -0
- package/dist/src/gateway/api.js +2261 -0
- package/dist/src/gateway/api.js.map +1 -0
- package/dist/src/gateway/budgets.d.ts +16 -0
- package/dist/src/gateway/budgets.d.ts.map +1 -0
- package/dist/src/gateway/budgets.js +39 -0
- package/dist/src/gateway/budgets.js.map +1 -0
- package/dist/src/gateway/costs.d.ts +19 -0
- package/dist/src/gateway/costs.d.ts.map +1 -0
- package/dist/src/gateway/costs.js +39 -0
- package/dist/src/gateway/costs.js.map +1 -0
- package/dist/src/gateway/daemon-entry.d.ts +2 -0
- package/dist/src/gateway/daemon-entry.d.ts.map +1 -0
- package/dist/src/gateway/daemon-entry.js +12 -0
- package/dist/src/gateway/daemon-entry.js.map +1 -0
- package/dist/src/gateway/files.d.ts +6 -0
- package/dist/src/gateway/files.d.ts.map +1 -0
- package/dist/src/gateway/files.js +442 -0
- package/dist/src/gateway/files.js.map +1 -0
- package/dist/src/gateway/goals.d.ts +11 -0
- package/dist/src/gateway/goals.d.ts.map +1 -0
- package/dist/src/gateway/goals.js +72 -0
- package/dist/src/gateway/goals.js.map +1 -0
- package/dist/src/gateway/lifecycle.d.ts +10 -0
- package/dist/src/gateway/lifecycle.d.ts.map +1 -0
- package/dist/src/gateway/lifecycle.js +152 -0
- package/dist/src/gateway/lifecycle.js.map +1 -0
- package/dist/src/gateway/org-hierarchy.d.ts +5 -0
- package/dist/src/gateway/org-hierarchy.d.ts.map +1 -0
- package/dist/src/gateway/org-hierarchy.js +174 -0
- package/dist/src/gateway/org-hierarchy.js.map +1 -0
- package/dist/src/gateway/org.d.ts +17 -0
- package/dist/src/gateway/org.d.ts.map +1 -0
- package/dist/src/gateway/org.js +136 -0
- package/dist/src/gateway/org.js.map +1 -0
- package/dist/src/gateway/server.d.ts +4 -0
- package/dist/src/gateway/server.d.ts.map +1 -0
- package/dist/src/gateway/server.js +764 -0
- package/dist/src/gateway/server.js.map +1 -0
- package/dist/src/gateway/services.d.ts +28 -0
- package/dist/src/gateway/services.d.ts.map +1 -0
- package/dist/src/gateway/services.js +112 -0
- package/dist/src/gateway/services.js.map +1 -0
- package/dist/src/gateway/watcher.d.ts +14 -0
- package/dist/src/gateway/watcher.d.ts.map +1 -0
- package/dist/src/gateway/watcher.js +111 -0
- package/dist/src/gateway/watcher.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcp/gateway-server.d.ts +13 -0
- package/dist/src/mcp/gateway-server.d.ts.map +1 -0
- package/dist/src/mcp/gateway-server.js +376 -0
- package/dist/src/mcp/gateway-server.js.map +1 -0
- package/dist/src/mcp/resolver.d.ts +19 -0
- package/dist/src/mcp/resolver.d.ts.map +1 -0
- package/dist/src/mcp/resolver.js +159 -0
- package/dist/src/mcp/resolver.js.map +1 -0
- package/dist/src/sessions/__tests__/callbacks.test.d.ts +2 -0
- package/dist/src/sessions/__tests__/callbacks.test.d.ts.map +1 -0
- package/dist/src/sessions/__tests__/callbacks.test.js +154 -0
- package/dist/src/sessions/__tests__/callbacks.test.js.map +1 -0
- package/dist/src/sessions/callbacks.d.ts +31 -0
- package/dist/src/sessions/callbacks.d.ts.map +1 -0
- package/dist/src/sessions/callbacks.js +112 -0
- package/dist/src/sessions/callbacks.js.map +1 -0
- package/dist/src/sessions/context.d.ts +36 -0
- package/dist/src/sessions/context.d.ts.map +1 -0
- package/dist/src/sessions/context.js +741 -0
- package/dist/src/sessions/context.js.map +1 -0
- package/dist/src/sessions/fork.d.ts +30 -0
- package/dist/src/sessions/fork.d.ts.map +1 -0
- package/dist/src/sessions/fork.js +178 -0
- package/dist/src/sessions/fork.js.map +1 -0
- package/dist/src/sessions/manager.d.ts +27 -0
- package/dist/src/sessions/manager.d.ts.map +1 -0
- package/dist/src/sessions/manager.js +751 -0
- package/dist/src/sessions/manager.js.map +1 -0
- package/dist/src/sessions/queue.d.ts +36 -0
- package/dist/src/sessions/queue.d.ts.map +1 -0
- package/dist/src/sessions/queue.js +101 -0
- package/dist/src/sessions/queue.js.map +1 -0
- package/dist/src/sessions/queue.test.d.ts +2 -0
- package/dist/src/sessions/queue.test.d.ts.map +1 -0
- package/dist/src/sessions/queue.test.js +28 -0
- package/dist/src/sessions/queue.test.js.map +1 -0
- package/dist/src/sessions/registry.d.ts +116 -0
- package/dist/src/sessions/registry.d.ts.map +1 -0
- package/dist/src/sessions/registry.js +480 -0
- package/dist/src/sessions/registry.js.map +1 -0
- package/dist/src/sessions/registry.test.d.ts +2 -0
- package/dist/src/sessions/registry.test.d.ts.map +1 -0
- package/dist/src/sessions/registry.test.js +41 -0
- package/dist/src/sessions/registry.test.js.map +1 -0
- package/dist/src/shared/__tests__/rateLimit.test.d.ts +2 -0
- package/dist/src/shared/__tests__/rateLimit.test.d.ts.map +1 -0
- package/dist/src/shared/__tests__/rateLimit.test.js +108 -0
- package/dist/src/shared/__tests__/rateLimit.test.js.map +1 -0
- package/dist/src/shared/__tests__/usageAwareness.test.d.ts +2 -0
- package/dist/src/shared/__tests__/usageAwareness.test.d.ts.map +1 -0
- package/dist/src/shared/__tests__/usageAwareness.test.js +58 -0
- package/dist/src/shared/__tests__/usageAwareness.test.js.map +1 -0
- package/dist/src/shared/config.d.ts +3 -0
- package/dist/src/shared/config.d.ts.map +1 -0
- package/dist/src/shared/config.js +11 -0
- package/dist/src/shared/config.js.map +1 -0
- package/dist/src/shared/effort.d.ts +17 -0
- package/dist/src/shared/effort.d.ts.map +1 -0
- package/dist/src/shared/effort.js +44 -0
- package/dist/src/shared/effort.js.map +1 -0
- package/dist/src/shared/logger.d.ts +12 -0
- package/dist/src/shared/logger.d.ts.map +1 -0
- package/dist/src/shared/logger.js +35 -0
- package/dist/src/shared/logger.js.map +1 -0
- package/dist/src/shared/paths.d.ts +31 -0
- package/dist/src/shared/paths.d.ts.map +1 -0
- package/dist/src/shared/paths.js +92 -0
- package/dist/src/shared/paths.js.map +1 -0
- package/dist/src/shared/rateLimit.d.ts +20 -0
- package/dist/src/shared/rateLimit.d.ts.map +1 -0
- package/dist/src/shared/rateLimit.js +61 -0
- package/dist/src/shared/rateLimit.js.map +1 -0
- package/dist/src/shared/types.d.ts +448 -0
- package/dist/src/shared/types.d.ts.map +1 -0
- package/dist/src/shared/types.js +4 -0
- package/dist/src/shared/types.js.map +1 -0
- package/dist/src/shared/usageAwareness.d.ts +10 -0
- package/dist/src/shared/usageAwareness.d.ts.map +1 -0
- package/dist/src/shared/usageAwareness.js +69 -0
- package/dist/src/shared/usageAwareness.js.map +1 -0
- package/dist/src/shared/version.d.ts +15 -0
- package/dist/src/shared/version.d.ts.map +1 -0
- package/dist/src/shared/version.js +56 -0
- package/dist/src/shared/version.js.map +1 -0
- package/dist/src/stt/stt.d.ts +24 -0
- package/dist/src/stt/stt.d.ts.map +1 -0
- package/dist/src/stt/stt.js +203 -0
- package/dist/src/stt/stt.js.map +1 -0
- package/dist/web/404.html +1 -0
- package/dist/web/__next.__PAGE__.txt +9 -0
- package/dist/web/__next._full.txt +19 -0
- package/dist/web/__next._head.txt +6 -0
- package/dist/web/__next._index.txt +6 -0
- package/dist/web/__next._tree.txt +2 -0
- package/dist/web/_next/static/chunks/00yn.jp4tr9l6.js +62 -0
- package/dist/web/_next/static/chunks/0398g9fy2i2l..js +5 -0
- package/dist/web/_next/static/chunks/03~yq9q893hmn.js +1 -0
- package/dist/web/_next/static/chunks/07t-qdutaizlf.js +5 -0
- package/dist/web/_next/static/chunks/0_pxvi.u4tzw1.js +5 -0
- package/dist/web/_next/static/chunks/0dtbl8648b3u9.js +7 -0
- package/dist/web/_next/static/chunks/0e3pdjkorr5zl.js +2 -0
- package/dist/web/_next/static/chunks/0ewpxy-mzj3j3.js +1 -0
- package/dist/web/_next/static/chunks/0ihbb7~gq42g~.js +5 -0
- package/dist/web/_next/static/chunks/0j4uz-g9x1_~s.js +1 -0
- package/dist/web/_next/static/chunks/0mlo32yrc7ziu.css +1 -0
- package/dist/web/_next/static/chunks/0ru56x83x4rkk.js +1 -0
- package/dist/web/_next/static/chunks/0svvev77pb2gu.js +1 -0
- package/dist/web/_next/static/chunks/0tf9kpygstdls.js +1 -0
- package/dist/web/_next/static/chunks/0wzpea61sn2-k.js +5 -0
- package/dist/web/_next/static/chunks/0y3dnnq~kxyz_.js +1 -0
- package/dist/web/_next/static/chunks/0y~qqhmf2o7pt.js +1 -0
- package/dist/web/_next/static/chunks/0~6m1p5hnsx2f.js +1 -0
- package/dist/web/_next/static/chunks/10-liamt-ipcu.js +1 -0
- package/dist/web/_next/static/chunks/10l08hq.acixl.js +5 -0
- package/dist/web/_next/static/chunks/11rbefjn.e-3-.js +1 -0
- package/dist/web/_next/static/chunks/11rodb4s1x4of.js +1 -0
- package/dist/web/_next/static/chunks/12_uxtnrqhoo1.js +1 -0
- package/dist/web/_next/static/chunks/12h4dws.tz7yb.js +5 -0
- package/dist/web/_next/static/chunks/13juizw904g.e.js +1 -0
- package/dist/web/_next/static/chunks/14ge_q22f0n.f.js +1 -0
- package/dist/web/_next/static/chunks/16b0jvgccyt2i.js +5 -0
- package/dist/web/_next/static/chunks/17-u9c_weg12-.js +31 -0
- package/dist/web/_next/static/chunks/turbopack-0dt987bw_1nyf.js +1 -0
- package/dist/web/_next/static/media/apple-icon.0.wpl4.d-5bkf.jpg +0 -0
- package/dist/web/_next/static/media/icon.0.wpl4.d-5bkf.jpg +0 -0
- package/dist/web/_next/static/uwjABwQIFELOHhVlstvOe/_buildManifest.js +11 -0
- package/dist/web/_next/static/uwjABwQIFELOHhVlstvOe/_clientMiddlewareManifest.js +1 -0
- package/dist/web/_next/static/uwjABwQIFELOHhVlstvOe/_ssgManifest.js +1 -0
- package/dist/web/_not-found/__next._full.txt +17 -0
- package/dist/web/_not-found/__next._head.txt +6 -0
- package/dist/web/_not-found/__next._index.txt +6 -0
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +5 -0
- package/dist/web/_not-found/__next._not-found.txt +5 -0
- package/dist/web/_not-found/__next._tree.txt +2 -0
- package/dist/web/_not-found.html +1 -0
- package/dist/web/_not-found.txt +17 -0
- package/dist/web/apple-icon.jpg +0 -0
- package/dist/web/chat/__next._full.txt +21 -0
- package/dist/web/chat/__next._head.txt +6 -0
- package/dist/web/chat/__next._index.txt +6 -0
- package/dist/web/chat/__next._tree.txt +2 -0
- package/dist/web/chat/__next.chat.__PAGE__.txt +9 -0
- package/dist/web/chat/__next.chat.txt +5 -0
- package/dist/web/chat.html +1 -0
- package/dist/web/chat.txt +21 -0
- package/dist/web/cron/__next._full.txt +21 -0
- package/dist/web/cron/__next._head.txt +6 -0
- package/dist/web/cron/__next._index.txt +6 -0
- package/dist/web/cron/__next._tree.txt +2 -0
- package/dist/web/cron/__next.cron.__PAGE__.txt +9 -0
- package/dist/web/cron/__next.cron.txt +5 -0
- package/dist/web/cron.html +1 -0
- package/dist/web/cron.txt +21 -0
- package/dist/web/icon.jpg +0 -0
- package/dist/web/index.html +1 -0
- package/dist/web/index.txt +19 -0
- package/dist/web/kanban/__next._full.txt +21 -0
- package/dist/web/kanban/__next._head.txt +6 -0
- package/dist/web/kanban/__next._index.txt +6 -0
- package/dist/web/kanban/__next._tree.txt +2 -0
- package/dist/web/kanban/__next.kanban.__PAGE__.txt +9 -0
- package/dist/web/kanban/__next.kanban.txt +5 -0
- package/dist/web/kanban.html +1 -0
- package/dist/web/kanban.txt +21 -0
- package/dist/web/logs/__next._full.txt +21 -0
- package/dist/web/logs/__next._head.txt +6 -0
- package/dist/web/logs/__next._index.txt +6 -0
- package/dist/web/logs/__next._tree.txt +2 -0
- package/dist/web/logs/__next.logs.__PAGE__.txt +9 -0
- package/dist/web/logs/__next.logs.txt +5 -0
- package/dist/web/logs.html +7 -0
- package/dist/web/logs.txt +21 -0
- package/dist/web/org/__next._full.txt +21 -0
- package/dist/web/org/__next._head.txt +6 -0
- package/dist/web/org/__next._index.txt +6 -0
- package/dist/web/org/__next._tree.txt +2 -0
- package/dist/web/org/__next.org.__PAGE__.txt +9 -0
- package/dist/web/org/__next.org.txt +5 -0
- package/dist/web/org.html +1 -0
- package/dist/web/org.txt +21 -0
- package/dist/web/sessions/__next._full.txt +18 -0
- package/dist/web/sessions/__next._head.txt +6 -0
- package/dist/web/sessions/__next._index.txt +6 -0
- package/dist/web/sessions/__next._tree.txt +2 -0
- package/dist/web/sessions/__next.sessions.__PAGE__.txt +6 -0
- package/dist/web/sessions/__next.sessions.txt +5 -0
- package/dist/web/sessions.html +1 -0
- package/dist/web/sessions.txt +18 -0
- package/dist/web/settings/__next._full.txt +21 -0
- package/dist/web/settings/__next._head.txt +6 -0
- package/dist/web/settings/__next._index.txt +6 -0
- package/dist/web/settings/__next._tree.txt +2 -0
- package/dist/web/settings/__next.settings.__PAGE__.txt +9 -0
- package/dist/web/settings/__next.settings.txt +5 -0
- package/dist/web/settings.html +1 -0
- package/dist/web/settings.txt +21 -0
- package/dist/web/skills/__next._full.txt +21 -0
- package/dist/web/skills/__next._head.txt +6 -0
- package/dist/web/skills/__next._index.txt +6 -0
- package/dist/web/skills/__next._tree.txt +2 -0
- package/dist/web/skills/__next.skills.__PAGE__.txt +9 -0
- package/dist/web/skills/__next.skills.txt +5 -0
- package/dist/web/skills.html +1 -0
- package/dist/web/skills.txt +21 -0
- package/package.json +54 -0
- package/template/AGENTS.md +285 -0
- package/template/CLAUDE.md +285 -0
- package/template/config.default.yaml +71 -0
- package/template/docs/architecture.md +74 -0
- package/template/docs/connectors.md +72 -0
- package/template/docs/cron.md +137 -0
- package/template/docs/mcp.md +108 -0
- package/template/docs/org.md +105 -0
- package/template/docs/overview.md +39 -0
- package/template/docs/self-modification.md +65 -0
- package/template/docs/skills.md +58 -0
- package/template/knowledge/.gitkeep +0 -0
- package/template/migrations/.gitkeep +0 -0
- package/template/migrations/0.1.0/MIGRATION.md +25 -0
- package/template/migrations/0.2.0/MIGRATION.md +41 -0
- package/template/migrations/0.2.0/files/config.default.yaml +30 -0
- package/template/migrations/0.3.0/MIGRATION.md +57 -0
- package/template/migrations/0.3.0/files/config.default.yaml +62 -0
- package/template/migrations/0.3.0/files/docs/mcp.md +108 -0
- package/template/migrations/0.7.3/MIGRATION.md +63 -0
- package/template/migrations/0.7.3/files/AGENTS.md +188 -0
- package/template/migrations/0.7.3/files/CLAUDE.md +127 -0
- package/template/migrations/0.7.5/MIGRATION.md +78 -0
- package/template/migrations/0.8.0/MIGRATION.md +73 -0
- package/template/migrations/0.9.0/MIGRATION.md +82 -0
- package/template/skills/cron-manager/SKILL.md +127 -0
- package/template/skills/find-and-install/SKILL.md +92 -0
- package/template/skills/management/SKILL.md +226 -0
- package/template/skills/migrate/SKILL.md +154 -0
- package/template/skills/new/SKILL.md +19 -0
- package/template/skills/onboarding/SKILL.md +106 -0
- package/template/skills/self-heal/SKILL.md +114 -0
- package/template/skills/skill-creator/SKILL.md +112 -0
- package/template/skills/status/SKILL.md +19 -0
- package/template/skills/sync/SKILL.md +67 -0
- package/template/skills.json +3 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,91549,e=>{"use strict";let t;var r=e.i(98181),n=e.i(25007),a=e.i(98676),s=e.i(93716),o=e.i(32984),i=e.i(58843),l=e.i(23097),c=e.i(90922);let d=(0,c.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),u=(0,c.default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]),p=(0,c.default)("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]),f=(0,c.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);var m=e.i(9156),x=e.i(91356),x=x,h=e.i(41864),g=e.i(81377),v=e.i(36668);function b(e){let t=e;return(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/@[\w-]+/g,"")).replace(/^#\d+\s*/g,"")).replace(/^#{1,6}\s+/gm,"")).replace(/\*{1,3}|_{1,3}/g,"")).replace(/^[\s]*[-*•]\s+/gm,"")).replace(/^[\s]*\d+[.)]\s+/gm,"")).replace(/^>\s*/gm,"")).replace(/`+/g,"")).replace(/^```\w*$/gm,"")).replace(/\[([^\]]*)\]\([^)]*\)/g,"$1")).replace(/\s+/g," ").trim()).length>0&&t[0]!==t[0].toUpperCase()&&(t=t[0].toUpperCase()+t.slice(1)),t}var y=e.i(3025);e.i(77110),e.i(98385),(0,c.default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var w=e.i(63949),j=e.i(80011),k=e.i(16393),C=e.i(55737),N=e.i(66379),S=e.i(21583),M=e.i(72861),D=e.i(64756),R=e.i(96436),I=e.i(28509);let E=["top","right","bottom","left"],T=Math.min,L=Math.max,A=Math.round,P=Math.floor,_=e=>({x:e,y:e}),O={left:"right",right:"left",bottom:"top",top:"bottom"};function z(e,t){return"function"==typeof e?e(t):e}function $(e){return e.split("-")[0]}function F(e){return e.split("-")[1]}function U(e){return"x"===e?"y":"x"}function H(e){return"y"===e?"height":"width"}function W(e){let t=e[0];return"t"===t||"b"===t?"y":"x"}function K(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}let B=["left","right"],q=["right","left"],V=["top","bottom"],G=["bottom","top"];function J(e){let t=$(e);return O[t]+e.slice(t.length)}function X(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function Q(e){let{x:t,y:r,width:n,height:a}=e;return{width:n,height:a,top:r,left:t,right:t+n,bottom:r+a,x:t,y:r}}function Y(e,t,r){let n,{reference:a,floating:s}=e,o=W(t),i=U(W(t)),l=H(i),c=$(t),d="y"===o,u=a.x+a.width/2-s.width/2,p=a.y+a.height/2-s.height/2,f=a[l]/2-s[l]/2;switch(c){case"top":n={x:u,y:a.y-s.height};break;case"bottom":n={x:u,y:a.y+a.height};break;case"right":n={x:a.x+a.width,y:p};break;case"left":n={x:a.x-s.width,y:p};break;default:n={x:a.x,y:a.y}}switch(F(t)){case"start":n[i]-=f*(r&&d?-1:1);break;case"end":n[i]+=f*(r&&d?-1:1)}return n}async function Z(e,t){var r;void 0===t&&(t={});let{x:n,y:a,platform:s,rects:o,elements:i,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:p=!1,padding:f=0}=z(t,e),m=X(f),x=i[p?"floating"===u?"reference":"floating":u],h=Q(await s.getClippingRect({element:null==(r=await (null==s.isElement?void 0:s.isElement(x)))||r?x:x.contextElement||await (null==s.getDocumentElement?void 0:s.getDocumentElement(i.floating)),boundary:c,rootBoundary:d,strategy:l})),g="floating"===u?{x:n,y:a,width:o.floating.width,height:o.floating.height}:o.reference,v=await (null==s.getOffsetParent?void 0:s.getOffsetParent(i.floating)),b=await (null==s.isElement?void 0:s.isElement(v))&&await (null==s.getScale?void 0:s.getScale(v))||{x:1,y:1},y=Q(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:i,rect:g,offsetParent:v,strategy:l}):g);return{top:(h.top-y.top+m.top)/b.y,bottom:(y.bottom-h.bottom+m.bottom)/b.y,left:(h.left-y.left+m.left)/b.x,right:(y.right-h.right+m.right)/b.x}}let ee=async(e,t,r)=>{let{placement:n="bottom",strategy:a="absolute",middleware:s=[],platform:o}=r,i=o.detectOverflow?o:{...o,detectOverflow:Z},l=await (null==o.isRTL?void 0:o.isRTL(t)),c=await o.getElementRects({reference:e,floating:t,strategy:a}),{x:d,y:u}=Y(c,n,l),p=n,f=0,m={};for(let r=0;r<s.length;r++){let x=s[r];if(!x)continue;let{name:h,fn:g}=x,{x:v,y:b,data:y,reset:w}=await g({x:d,y:u,initialPlacement:n,placement:p,strategy:a,middlewareData:m,rects:c,platform:i,elements:{reference:e,floating:t}});d=null!=v?v:d,u=null!=b?b:u,m[h]={...m[h],...y},w&&f<50&&(f++,"object"==typeof w&&(w.placement&&(p=w.placement),w.rects&&(c=!0===w.rects?await o.getElementRects({reference:e,floating:t,strategy:a}):w.rects),{x:d,y:u}=Y(c,p,l)),r=-1)}return{x:d,y:u,placement:p,strategy:a,middlewareData:m}};function et(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function er(e){return E.some(t=>e[t]>=0)}let en=new Set(["left","top"]);async function ea(e,t){let{placement:r,platform:n,elements:a}=e,s=await (null==n.isRTL?void 0:n.isRTL(a.floating)),o=$(r),i=F(r),l="y"===W(r),c=en.has(o)?-1:1,d=s&&l?-1:1,u=z(t,e),{mainAxis:p,crossAxis:f,alignmentAxis:m}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return i&&"number"==typeof m&&(f="end"===i?-1*m:m),l?{x:f*d,y:p*c}:{x:p*c,y:f*d}}function es(){return"u">typeof window}function eo(e){return ec(e)?(e.nodeName||"").toLowerCase():"#document"}function ei(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function el(e){var t;return null==(t=(ec(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function ec(e){return!!es()&&(e instanceof Node||e instanceof ei(e).Node)}function ed(e){return!!es()&&(e instanceof Element||e instanceof ei(e).Element)}function eu(e){return!!es()&&(e instanceof HTMLElement||e instanceof ei(e).HTMLElement)}function ep(e){return!(!es()||"u"<typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof ei(e).ShadowRoot)}function ef(e){let{overflow:t,overflowX:r,overflowY:n,display:a}=ew(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&"inline"!==a&&"contents"!==a}function em(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}let ex=/transform|translate|scale|rotate|perspective|filter/,eh=/paint|layout|strict|content/,eg=e=>!!e&&"none"!==e;function ev(e){let t=ed(e)?ew(e):e;return eg(t.transform)||eg(t.translate)||eg(t.scale)||eg(t.rotate)||eg(t.perspective)||!eb()&&(eg(t.backdropFilter)||eg(t.filter))||ex.test(t.willChange||"")||eh.test(t.contain||"")}function eb(){return null==t&&(t="u">typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),t}function ey(e){return/^(html|body|#document)$/.test(eo(e))}function ew(e){return ei(e).getComputedStyle(e)}function ej(e){return ed(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ek(e){if("html"===eo(e))return e;let t=e.assignedSlot||e.parentNode||ep(e)&&e.host||el(e);return ep(t)?t.host:t}function eC(e,t,r){var n;void 0===t&&(t=[]),void 0===r&&(r=!0);let a=function e(t){let r=ek(t);return ey(r)?t.ownerDocument?t.ownerDocument.body:t.body:eu(r)&&ef(r)?r:e(r)}(e),s=a===(null==(n=e.ownerDocument)?void 0:n.body),o=ei(a);if(!s)return t.concat(a,eC(a,[],r));{let e=eN(o);return t.concat(o,o.visualViewport||[],ef(a)?a:[],e&&r?eC(e):[])}}function eN(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function eS(e){let t=ew(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,a=eu(e),s=a?e.offsetWidth:r,o=a?e.offsetHeight:n,i=A(r)!==s||A(n)!==o;return i&&(r=s,n=o),{width:r,height:n,$:i}}function eM(e){return ed(e)?e:e.contextElement}function eD(e){let t=eM(e);if(!eu(t))return _(1);let r=t.getBoundingClientRect(),{width:n,height:a,$:s}=eS(t),o=(s?A(r.width):r.width)/n,i=(s?A(r.height):r.height)/a;return o&&Number.isFinite(o)||(o=1),i&&Number.isFinite(i)||(i=1),{x:o,y:i}}let eR=_(0);function eI(e){let t=ei(e);return eb()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:eR}function eE(e,t,r,n){var a;void 0===t&&(t=!1),void 0===r&&(r=!1);let s=e.getBoundingClientRect(),o=eM(e),i=_(1);t&&(n?ed(n)&&(i=eD(n)):i=eD(e));let l=(void 0===(a=r)&&(a=!1),n&&(!a||n===ei(o))&&a)?eI(o):_(0),c=(s.left+l.x)/i.x,d=(s.top+l.y)/i.y,u=s.width/i.x,p=s.height/i.y;if(o){let e=ei(o),t=n&&ed(n)?ei(n):n,r=e,a=eN(r);for(;a&&n&&t!==r;){let e=eD(a),t=a.getBoundingClientRect(),n=ew(a),s=t.left+(a.clientLeft+parseFloat(n.paddingLeft))*e.x,o=t.top+(a.clientTop+parseFloat(n.paddingTop))*e.y;c*=e.x,d*=e.y,u*=e.x,p*=e.y,c+=s,d+=o,a=eN(r=ei(a))}}return Q({width:u,height:p,x:c,y:d})}function eT(e,t){let r=ej(e).scrollLeft;return t?t.left+r:eE(el(e)).left+r}function eL(e,t){let r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-eT(e,r),y:r.top+t.scrollTop}}function eA(e,t,r){var n;let a;if("viewport"===t)a=function(e,t){let r=ei(e),n=el(e),a=r.visualViewport,s=n.clientWidth,o=n.clientHeight,i=0,l=0;if(a){s=a.width,o=a.height;let e=eb();(!e||e&&"fixed"===t)&&(i=a.offsetLeft,l=a.offsetTop)}let c=eT(n);if(c<=0){let e=n.ownerDocument,t=e.body,r=getComputedStyle(t),a="CSS1Compat"===e.compatMode&&parseFloat(r.marginLeft)+parseFloat(r.marginRight)||0,o=Math.abs(n.clientWidth-t.clientWidth-a);o<=25&&(s-=o)}else c<=25&&(s+=c);return{width:s,height:o,x:i,y:l}}(e,r);else if("document"===t){let t,r,s,o,i,l,c;n=el(e),t=el(n),r=ej(n),s=n.ownerDocument.body,o=L(t.scrollWidth,t.clientWidth,s.scrollWidth,s.clientWidth),i=L(t.scrollHeight,t.clientHeight,s.scrollHeight,s.clientHeight),l=-r.scrollLeft+eT(n),c=-r.scrollTop,"rtl"===ew(s).direction&&(l+=L(t.clientWidth,s.clientWidth)-o),a={width:o,height:i,x:l,y:c}}else if(ed(t)){let e,n,s,o,i,l;n=(e=eE(t,!0,"fixed"===r)).top+t.clientTop,s=e.left+t.clientLeft,o=eu(t)?eD(t):_(1),i=t.clientWidth*o.x,l=t.clientHeight*o.y,a={width:i,height:l,x:s*o.x,y:n*o.y}}else{let r=eI(e);a={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Q(a)}function eP(e){return"static"===ew(e).position}function e_(e,t){if(!eu(e)||"fixed"===ew(e).position)return null;if(t)return t(e);let r=e.offsetParent;return el(e)===r&&(r=r.ownerDocument.body),r}function eO(e,t){var r;let n=ei(e);if(em(e))return n;if(!eu(e)){let t=ek(e);for(;t&&!ey(t);){if(ed(t)&&!eP(t))return t;t=ek(t)}return n}let a=e_(e,t);for(;a&&(r=a,/^(table|td|th)$/.test(eo(r)))&&eP(a);)a=e_(a,t);return a&&ey(a)&&eP(a)&&!ev(a)?n:a||function(e){let t=ek(e);for(;eu(t)&&!ey(t);){if(ev(t))return t;if(em(t))break;t=ek(t)}return null}(e)||n}let ez=async function(e){let t=this.getOffsetParent||eO,r=this.getDimensions,n=await r(e.floating);return{reference:function(e,t,r){let n=eu(t),a=el(t),s="fixed"===r,o=eE(e,!0,s,t),i={scrollLeft:0,scrollTop:0},l=_(0);if(n||!n&&!s)if(("body"!==eo(t)||ef(a))&&(i=ej(t)),n){let e=eE(t,!0,s,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else a&&(l.x=eT(a));s&&!n&&a&&(l.x=eT(a));let c=!a||n||s?_(0):eL(a,i);return{x:o.left+i.scrollLeft-l.x-c.x,y:o.top+i.scrollTop-l.y-c.y,width:o.width,height:o.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}},e$={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:r,offsetParent:n,strategy:a}=e,s="fixed"===a,o=el(n),i=!!t&&em(t.floating);if(n===o||i&&s)return r;let l={scrollLeft:0,scrollTop:0},c=_(1),d=_(0),u=eu(n);if((u||!u&&!s)&&(("body"!==eo(n)||ef(o))&&(l=ej(n)),u)){let e=eE(n);c=eD(n),d.x=e.x+n.clientLeft,d.y=e.y+n.clientTop}let p=!o||u||s?_(0):eL(o,l);return{width:r.width*c.x,height:r.height*c.y,x:r.x*c.x-l.scrollLeft*c.x+d.x+p.x,y:r.y*c.y-l.scrollTop*c.y+d.y+p.y}},getDocumentElement:el,getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:n,strategy:a}=e,s=[..."clippingAncestors"===r?em(t)?[]:function(e,t){let r=t.get(e);if(r)return r;let n=eC(e,[],!1).filter(e=>ed(e)&&"body"!==eo(e)),a=null,s="fixed"===ew(e).position,o=s?ek(e):e;for(;ed(o)&&!ey(o);){let t=ew(o),r=ev(o);r||"fixed"!==t.position||(a=null),(s?r||a:!(!r&&"static"===t.position&&a&&("absolute"===a.position||"fixed"===a.position)||ef(o)&&!r&&function e(t,r){let n=ek(t);return!(n===r||!ed(n)||ey(n))&&("fixed"===ew(n).position||e(n,r))}(e,o)))?a=t:n=n.filter(e=>e!==o),o=ek(o)}return t.set(e,n),n}(t,this._c):[].concat(r),n],o=eA(t,s[0],a),i=o.top,l=o.right,c=o.bottom,d=o.left;for(let e=1;e<s.length;e++){let r=eA(t,s[e],a);i=L(r.top,i),l=T(r.right,l),c=T(r.bottom,c),d=L(r.left,d)}return{width:l-d,height:c-i,x:d,y:i}},getOffsetParent:eO,getElementRects:ez,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:r}=eS(e);return{width:t,height:r}},getScale:eD,isElement:ed,isRTL:function(e){return"rtl"===ew(e).direction}};function eF(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}let eU=e=>({name:"arrow",options:e,async fn(t){let{x:r,y:n,placement:a,rects:s,platform:o,elements:i,middlewareData:l}=t,{element:c,padding:d=0}=z(e,t)||{};if(null==c)return{};let u=X(d),p={x:r,y:n},f=U(W(a)),m=H(f),x=await o.getDimensions(c),h="y"===f,g=h?"clientHeight":"clientWidth",v=s.reference[m]+s.reference[f]-p[f]-s.floating[m],b=p[f]-s.reference[f],y=await (null==o.getOffsetParent?void 0:o.getOffsetParent(c)),w=y?y[g]:0;w&&await (null==o.isElement?void 0:o.isElement(y))||(w=i.floating[g]||s.floating[m]);let j=w/2-x[m]/2-1,k=T(u[h?"top":"left"],j),C=T(u[h?"bottom":"right"],j),N=w-x[m]-C,S=w/2-x[m]/2+(v/2-b/2),M=L(k,T(S,N)),D=!l.arrow&&null!=F(a)&&S!==M&&s.reference[m]/2-(S<k?k:C)-x[m]/2<0,R=D?S<k?S-k:S-N:0;return{[f]:p[f]+R,data:{[f]:M,centerOffset:S-M-R,...D&&{alignmentOffset:R}},reset:D}}});var eH=e.i(39150),eW="u">typeof document?n.useLayoutEffect:function(){};function eK(e,t){let r,n,a;if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if((r=e.length)!==t.length)return!1;for(n=r;0!=n--;)if(!eK(e[n],t[n]))return!1;return!0}if((r=(a=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=r;0!=n--;)if(!({}).hasOwnProperty.call(t,a[n]))return!1;for(n=r;0!=n--;){let r=a[n];if(("_owner"!==r||!e.$$typeof)&&!eK(e[r],t[r]))return!1}return!0}return e!=e&&t!=t}function eB(e){return"u"<typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function eq(e,t){let r=eB(e);return Math.round(t*r)/r}function eV(e){let t=n.useRef(e);return eW(()=>{t.current=e}),t}var eG=n.forwardRef((e,t)=>{let{children:n,width:a=10,height:s=5,...o}=e;return(0,r.jsx)(k.Primitive.svg,{...o,ref:t,width:a,height:s,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:(0,r.jsx)("polygon",{points:"0,0 30,0 15,10"})})});eG.displayName="Arrow";var eJ=e.i(94080),eX=e.i(99162),eQ="Popper",[eY,eZ]=(0,j.createContextScope)(eQ),[e0,e1]=eY(eQ),e2=e=>{let{__scopePopper:t,children:a}=e,[s,o]=n.useState(null);return(0,r.jsx)(e0,{scope:t,anchor:s,onAnchorChange:o,children:a})};e2.displayName=eQ;var e5="PopperAnchor",e3=n.forwardRef((e,t)=>{let{__scopePopper:a,virtualRef:s,...o}=e,i=e1(e5,a),l=n.useRef(null),c=(0,N.useComposedRefs)(t,l),d=n.useRef(null);return n.useEffect(()=>{let e=d.current;d.current=s?.current||l.current,e!==d.current&&i.onAnchorChange(d.current)}),s?null:(0,r.jsx)(k.Primitive.div,{...o,ref:c})});e3.displayName=e5;var e4="PopperContent",[e8,e6]=eY(e4),e7=n.forwardRef((e,t)=>{var a,s,o,i,l,c,d,u,p,f,m,x,h;let g,v,b,y,w,j,{__scopePopper:C,side:S="bottom",sideOffset:M=0,align:D="center",alignOffset:R=0,arrowPadding:I=0,avoidCollisions:E=!0,collisionBoundary:A=[],collisionPadding:_=0,sticky:O="partial",hideWhenDetached:X=!1,updatePositionStrategy:Q="optimized",onPlaced:Y,...Z}=e,es=e1(e4,C),[eo,ei]=n.useState(null),ec=(0,N.useComposedRefs)(t,e=>ei(e)),[ed,eu]=n.useState(null),ep=function(e){let[t,r]=n.useState(void 0);return(0,eX.useLayoutEffect)(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,a;if(!Array.isArray(t)||!t.length)return;let s=t[0];if("borderBoxSize"in s){let e=s.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,a=t.blockSize}else n=e.offsetWidth,a=e.offsetHeight;r({width:n,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}r(void 0)},[e]),t}(ed),ef=ep?.width??0,em=ep?.height??0,ex="number"==typeof _?_:{top:0,right:0,bottom:0,left:0,..._},eh=Array.isArray(A)?A:[A],eg=eh.length>0,ev={padding:ex,boundary:eh.filter(tr),altBoundary:eg},{refs:eb,floatingStyles:ey,placement:ew,isPositioned:ej,middlewareData:ek}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:r="absolute",middleware:a=[],platform:s,elements:{reference:o,floating:i}={},transform:l=!0,whileElementsMounted:c,open:d}=e,[u,p]=n.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[f,m]=n.useState(a);eK(f,a)||m(a);let[x,h]=n.useState(null),[g,v]=n.useState(null),b=n.useCallback(e=>{e!==k.current&&(k.current=e,h(e))},[]),y=n.useCallback(e=>{e!==C.current&&(C.current=e,v(e))},[]),w=o||x,j=i||g,k=n.useRef(null),C=n.useRef(null),N=n.useRef(u),S=null!=c,M=eV(c),D=eV(s),R=eV(d),I=n.useCallback(()=>{var e,n;let a,s,o;if(!k.current||!C.current)return;let i={placement:t,strategy:r,middleware:f};D.current&&(i.platform=D.current),(e=k.current,n=C.current,a=new Map,o={...(s={platform:e$,...i}).platform,_c:a},ee(e,n,{...s,platform:o})).then(e=>{let t={...e,isPositioned:!1!==R.current};E.current&&!eK(N.current,t)&&(N.current=t,eH.flushSync(()=>{p(t)}))})},[f,t,r,D,R]);eW(()=>{!1===d&&N.current.isPositioned&&(N.current.isPositioned=!1,p(e=>({...e,isPositioned:!1})))},[d]);let E=n.useRef(!1);eW(()=>(E.current=!0,()=>{E.current=!1}),[]),eW(()=>{if(w&&(k.current=w),j&&(C.current=j),w&&j){if(M.current)return M.current(w,j,I);I()}},[w,j,I,M,S]);let T=n.useMemo(()=>({reference:k,floating:C,setReference:b,setFloating:y}),[b,y]),L=n.useMemo(()=>({reference:w,floating:j}),[w,j]),A=n.useMemo(()=>{let e={position:r,left:0,top:0};if(!L.floating)return e;let t=eq(L.floating,u.x),n=eq(L.floating,u.y);return l?{...e,transform:"translate("+t+"px, "+n+"px)",...eB(L.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:t,top:n}},[r,l,L.floating,u.x,u.y]);return n.useMemo(()=>({...u,update:I,refs:T,elements:L,floatingStyles:A}),[u,I,T,L,A])}({strategy:"fixed",placement:S+("center"!==D?"-"+D:""),whileElementsMounted:(...e)=>(function(e,t,r,n){let a;void 0===n&&(n={});let{ancestorScroll:s=!0,ancestorResize:o=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:c=!1}=n,d=eM(e),u=s||o?[...d?eC(d):[],...t?eC(t):[]]:[];u.forEach(e=>{s&&e.addEventListener("scroll",r,{passive:!0}),o&&e.addEventListener("resize",r)});let p=d&&l?function(e,t){let r,n=null,a=el(e);function s(){var e;clearTimeout(r),null==(e=n)||e.disconnect(),n=null}return!function o(i,l){void 0===i&&(i=!1),void 0===l&&(l=1),s();let c=e.getBoundingClientRect(),{left:d,top:u,width:p,height:f}=c;if(i||t(),!p||!f)return;let m={rootMargin:-P(u)+"px "+-P(a.clientWidth-(d+p))+"px "+-P(a.clientHeight-(u+f))+"px "+-P(d)+"px",threshold:L(0,T(1,l))||1},x=!0;function h(t){let n=t[0].intersectionRatio;if(n!==l){if(!x)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}1!==n||eF(c,e.getBoundingClientRect())||o(),x=!1}try{n=new IntersectionObserver(h,{...m,root:a.ownerDocument})}catch(e){n=new IntersectionObserver(h,m)}n.observe(e)}(!0),s}(d,r):null,f=-1,m=null;i&&(m=new ResizeObserver(e=>{let[n]=e;n&&n.target===d&&m&&t&&(m.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;null==(e=m)||e.observe(t)})),r()}),d&&!c&&m.observe(d),t&&m.observe(t));let x=c?eE(e):null;return c&&function t(){let n=eE(e);x&&!eF(x,n)&&r(),x=n,a=requestAnimationFrame(t)}(),r(),()=>{var e;u.forEach(e=>{s&&e.removeEventListener("scroll",r),o&&e.removeEventListener("resize",r)}),null==p||p(),null==(e=m)||e.disconnect(),m=null,c&&cancelAnimationFrame(a)}})(...e,{animationFrame:"always"===Q}),elements:{reference:es.anchor},middleware:[{name:(g={name:"offset",options:s=a={mainAxis:M+em,alignmentAxis:R},async fn(e){var t,r;let{x:n,y:a,placement:o,middlewareData:i}=e,l=await ea(e,s);return o===(null==(t=i.offset)?void 0:t.placement)&&null!=(r=i.arrow)&&r.alignmentOffset?{}:{x:n+l.x,y:a+l.y,data:{...l,placement:o}}}}).name,fn:g.fn,options:[a,void 0]},E&&{name:(v={name:"shift",options:l=i={mainAxis:!0,crossAxis:!1,limiter:"partial"===O?{fn:(o=void 0,{options:o={},fn(e){let{x:t,y:r,placement:n,rects:a,middlewareData:s}=e,{offset:i=0,mainAxis:l=!0,crossAxis:c=!0}=z(o,e),d={x:t,y:r},u=W(n),p=U(u),f=d[p],m=d[u],x=z(i,e),h="number"==typeof x?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(l){let e="y"===p?"height":"width",t=a.reference[p]-a.floating[e]+h.mainAxis,r=a.reference[p]+a.reference[e]-h.mainAxis;f<t?f=t:f>r&&(f=r)}if(c){var g,v;let e="y"===p?"width":"height",t=en.has($(n)),r=a.reference[u]-a.floating[e]+(t&&(null==(g=s.offset)?void 0:g[u])||0)+(t?0:h.crossAxis),o=a.reference[u]+a.reference[e]+(t?0:(null==(v=s.offset)?void 0:v[u])||0)-(t?h.crossAxis:0);m<r?m=r:m>o&&(m=o)}return{[p]:f,[u]:m}}}).fn,options:[void 0,void 0]}:void 0,...ev},async fn(e){let{x:t,y:r,placement:n,platform:a}=e,{mainAxis:s=!0,crossAxis:o=!1,limiter:i={fn:e=>{let{x:t,y:r}=e;return{x:t,y:r}}},...c}=z(l,e),d={x:t,y:r},u=await a.detectOverflow(e,c),p=W($(n)),f=U(p),m=d[f],x=d[p];if(s){let e="y"===f?"top":"left",t="y"===f?"bottom":"right",r=m+u[e],n=m-u[t];m=L(r,T(m,n))}if(o){let e="y"===p?"top":"left",t="y"===p?"bottom":"right",r=x+u[e],n=x-u[t];x=L(r,T(x,n))}let h=i.fn({...e,[f]:m,[p]:x});return{...h,data:{x:h.x-t,y:h.y-r,enabled:{[f]:s,[p]:o}}}}}).name,fn:v.fn,options:[i,void 0]},E&&{name:(b={name:"flip",options:d=c={...ev},async fn(e){var t,r,n,a,s,o,i,l;let c,u,p,{placement:f,middlewareData:m,rects:x,initialPlacement:h,platform:g,elements:v}=e,{mainAxis:b=!0,crossAxis:y=!0,fallbackPlacements:w,fallbackStrategy:j="bestFit",fallbackAxisSideDirection:k="none",flipAlignment:C=!0,...N}=z(d,e);if(null!=(t=m.arrow)&&t.alignmentOffset)return{};let S=$(f),M=W(h),D=$(h)===h,R=await (null==g.isRTL?void 0:g.isRTL(v.floating)),I=w||(D||!C?[J(h)]:(c=J(h),[K(h),c,K(c)])),E="none"!==k;!w&&E&&I.push(...(u=F(h),p=function(e,t,r){switch(e){case"top":case"bottom":if(r)return t?q:B;return t?B:q;case"left":case"right":return t?V:G;default:return[]}}($(h),"start"===k,R),u&&(p=p.map(e=>e+"-"+u),C&&(p=p.concat(p.map(K)))),p));let T=[h,...I],L=await g.detectOverflow(e,N),A=[],P=(null==(r=m.flip)?void 0:r.overflows)||[];if(b&&A.push(L[S]),y){let e,t,r,n,a=(o=f,i=x,void 0===(l=R)&&(l=!1),e=F(o),r=H(t=U(W(o))),n="x"===t?e===(l?"end":"start")?"right":"left":"start"===e?"bottom":"top",i.reference[r]>i.floating[r]&&(n=J(n)),[n,J(n)]);A.push(L[a[0]],L[a[1]])}if(P=[...P,{placement:f,overflows:A}],!A.every(e=>e<=0)){let e=((null==(n=m.flip)?void 0:n.index)||0)+1,t=T[e];if(t&&("alignment"!==y||M===W(t)||P.every(e=>W(e.placement)!==M||e.overflows[0]>0)))return{data:{index:e,overflows:P},reset:{placement:t}};let r=null==(a=P.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:a.placement;if(!r)switch(j){case"bestFit":{let e=null==(s=P.filter(e=>{if(E){let t=W(e.placement);return t===M||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:s[0];e&&(r=e);break}case"initialPlacement":r=h}if(f!==r)return{reset:{placement:r}}}return{}}}).name,fn:b.fn,options:[c,void 0]},{name:(y={name:"size",options:p=u={...ev,apply:({elements:e,rects:t,availableWidth:r,availableHeight:n})=>{let{width:a,height:s}=t.reference,o=e.floating.style;o.setProperty("--radix-popper-available-width",`${r}px`),o.setProperty("--radix-popper-available-height",`${n}px`),o.setProperty("--radix-popper-anchor-width",`${a}px`),o.setProperty("--radix-popper-anchor-height",`${s}px`)}},async fn(e){var t,r;let n,a,{placement:s,rects:o,platform:i,elements:l}=e,{apply:c=()=>{},...d}=z(p,e),u=await i.detectOverflow(e,d),f=$(s),m=F(s),x="y"===W(s),{width:h,height:g}=o.floating;"top"===f||"bottom"===f?(n=f,a=m===(await (null==i.isRTL?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(a=f,n="end"===m?"top":"bottom");let v=g-u.top-u.bottom,b=h-u.left-u.right,y=T(g-u[n],v),w=T(h-u[a],b),j=!e.middlewareData.shift,k=y,C=w;if(null!=(t=e.middlewareData.shift)&&t.enabled.x&&(C=b),null!=(r=e.middlewareData.shift)&&r.enabled.y&&(k=v),j&&!m){let e=L(u.left,0),t=L(u.right,0),r=L(u.top,0),n=L(u.bottom,0);x?C=h-2*(0!==e||0!==t?e+t:L(u.left,u.right)):k=g-2*(0!==r||0!==n?r+n:L(u.top,u.bottom))}await c({...e,availableWidth:C,availableHeight:k});let N=await i.getDimensions(l.floating);return h!==N.width||g!==N.height?{reset:{rects:!0}}:{}}}).name,fn:y.fn,options:[u,void 0]},ed&&{name:(w={name:"arrow",options:m=f={element:ed,padding:I},fn(e){let{element:t,padding:r}="function"==typeof m?m(e):m;return t&&({}).hasOwnProperty.call(t,"current")?null!=t.current?eU({element:t.current,padding:r}).fn(e):{}:t?eU({element:t,padding:r}).fn(e):{}}}).name,fn:w.fn,options:[f,void 0]},tn({arrowWidth:ef,arrowHeight:em}),X&&{name:(j={name:"hide",options:h=x={strategy:"referenceHidden",...ev},async fn(e){let{rects:t,platform:r}=e,{strategy:n="referenceHidden",...a}=z(h,e);switch(n){case"referenceHidden":{let n=et(await r.detectOverflow(e,{...a,elementContext:"reference"}),t.reference);return{data:{referenceHiddenOffsets:n,referenceHidden:er(n)}}}case"escaped":{let n=et(await r.detectOverflow(e,{...a,altBoundary:!0}),t.floating);return{data:{escapedOffsets:n,escaped:er(n)}}}default:return{}}}}).name,fn:j.fn,options:[x,void 0]}]}),[eN,eS]=ta(ew),eD=(0,eJ.useCallbackRef)(Y);(0,eX.useLayoutEffect)(()=>{ej&&eD?.()},[ej,eD]);let eR=ek.arrow?.x,eI=ek.arrow?.y,eT=ek.arrow?.centerOffset!==0,[eL,eA]=n.useState();return(0,eX.useLayoutEffect)(()=>{eo&&eA(window.getComputedStyle(eo).zIndex)},[eo]),(0,r.jsx)("div",{ref:eb.setFloating,"data-radix-popper-content-wrapper":"",style:{...ey,transform:ej?ey.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:eL,"--radix-popper-transform-origin":[ek.transformOrigin?.x,ek.transformOrigin?.y].join(" "),...ek.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,r.jsx)(e8,{scope:C,placedSide:eN,onArrowChange:eu,arrowX:eR,arrowY:eI,shouldHideArrow:eT,children:(0,r.jsx)(k.Primitive.div,{"data-side":eN,"data-align":eS,...Z,ref:ec,style:{...Z.style,animation:ej?void 0:"none"}})})})});e7.displayName=e4;var e9="PopperArrow",te={top:"bottom",right:"left",bottom:"top",left:"right"},tt=n.forwardRef(function(e,t){let{__scopePopper:n,...a}=e,s=e6(e9,n),o=te[s.placedSide];return(0,r.jsx)("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:(0,r.jsx)(eG,{...a,ref:t,style:{...a.style,display:"block"}})})});function tr(e){return null!==e}tt.displayName=e9;var tn=e=>({name:"transformOrigin",options:e,fn(t){let{placement:r,rects:n,middlewareData:a}=t,s=a.arrow?.centerOffset!==0,o=s?0:e.arrowWidth,i=s?0:e.arrowHeight,[l,c]=ta(r),d={start:"0%",center:"50%",end:"100%"}[c],u=(a.arrow?.x??0)+o/2,p=(a.arrow?.y??0)+i/2,f="",m="";return"bottom"===l?(f=s?d:`${u}px`,m=`${-i}px`):"top"===l?(f=s?d:`${u}px`,m=`${n.floating.height+i}px`):"right"===l?(f=`${-i}px`,m=s?d:`${p}px`):"left"===l&&(f=`${n.floating.width+i}px`,m=s?d:`${p}px`),{data:{x:f,y:m}}}});function ta(e){let[t,r="center"]=e.split("-");return[t,r]}var ts=e.i(38805),to=e.i(69113),ti=e.i(39402),tl=e.i(39202),tc=e.i(19776),td=e.i(61624),tu=["Enter"," "],tp=["ArrowUp","PageDown","End"],tf=["ArrowDown","PageUp","Home",...tp],tm={ltr:[...tu,"ArrowRight"],rtl:[...tu,"ArrowLeft"]},tx={ltr:["ArrowLeft"],rtl:["ArrowRight"]},th="Menu",[tg,tv,tb]=(0,C.createCollection)(th),[ty,tw]=(0,j.createContextScope)(th,[tb,eZ,ti.createRovingFocusGroupScope]),tj=eZ(),tk=(0,ti.createRovingFocusGroupScope)(),[tC,tN]=ty(th),[tS,tM]=ty(th),tD=e=>{let{__scopeMenu:t,open:a=!1,children:s,dir:o,onOpenChange:i,modal:l=!0}=e,c=tj(t),[d,u]=n.useState(null),p=n.useRef(!1),f=(0,eJ.useCallbackRef)(i),m=(0,S.useDirection)(o);return n.useEffect(()=>{let e=()=>{p.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>p.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,r.jsx)(e2,{...c,children:(0,r.jsx)(tC,{scope:t,open:a,onOpenChange:f,content:d,onContentChange:u,children:(0,r.jsx)(tS,{scope:t,onClose:n.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:p,dir:m,modal:l,children:s})})})};tD.displayName=th;var tR=n.forwardRef((e,t)=>{let{__scopeMenu:n,...a}=e,s=tj(n);return(0,r.jsx)(e3,{...s,...a,ref:t})});tR.displayName="MenuAnchor";var tI="MenuPortal",[tE,tT]=ty(tI,{forceMount:void 0}),tL=e=>{let{__scopeMenu:t,forceMount:n,children:a,container:s}=e,o=tN(tI,t);return(0,r.jsx)(tE,{scope:t,forceMount:n,children:(0,r.jsx)(to.Presence,{present:n||o.open,children:(0,r.jsx)(ts.Portal,{asChild:!0,container:s,children:a})})})};tL.displayName=tI;var tA="MenuContent",[tP,t_]=ty(tA),tO=n.forwardRef((e,t)=>{let n=tT(tA,e.__scopeMenu),{forceMount:a=n.forceMount,...s}=e,o=tN(tA,e.__scopeMenu),i=tM(tA,e.__scopeMenu);return(0,r.jsx)(tg.Provider,{scope:e.__scopeMenu,children:(0,r.jsx)(to.Presence,{present:a||o.open,children:(0,r.jsx)(tg.Slot,{scope:e.__scopeMenu,children:i.modal?(0,r.jsx)(tz,{...s,ref:t}):(0,r.jsx)(t$,{...s,ref:t})})})})}),tz=n.forwardRef((e,t)=>{let a=tN(tA,e.__scopeMenu),s=n.useRef(null),o=(0,N.useComposedRefs)(t,s);return n.useEffect(()=>{let e=s.current;if(e)return(0,tc.hideOthers)(e)},[]),(0,r.jsx)(tU,{...e,ref:o,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:(0,w.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),t$=n.forwardRef((e,t)=>{let n=tN(tA,e.__scopeMenu);return(0,r.jsx)(tU,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),tF=(0,tl.createSlot)("MenuContent.ScrollLock"),tU=n.forwardRef((e,t)=>{let{__scopeMenu:a,loop:s=!1,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:l,disableOutsidePointerEvents:c,onEntryFocus:d,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:x,disableOutsideScroll:h,...g}=e,v=tN(tA,a),b=tM(tA,a),y=tj(a),j=tk(a),k=tv(a),[C,S]=n.useState(null),I=n.useRef(null),E=(0,N.useComposedRefs)(t,I,v.onContentChange),T=n.useRef(0),L=n.useRef(""),A=n.useRef(0),P=n.useRef(null),_=n.useRef("right"),O=n.useRef(0),z=h?td.RemoveScroll:n.Fragment;n.useEffect(()=>()=>window.clearTimeout(T.current),[]),(0,D.useFocusGuards)();let $=n.useCallback(e=>{var t,r;return _.current===P.current?.side&&(t=e,!!(r=P.current?.area)&&function(e,t){let{x:r,y:n}=e,a=!1;for(let e=0,s=t.length-1;e<t.length;s=e++){let o=t[e],i=t[s],l=o.x,c=o.y,d=i.x,u=i.y;c>n!=u>n&&r<(d-l)*(n-c)/(u-c)+l&&(a=!a)}return a}({x:t.clientX,y:t.clientY},r))},[]);return(0,r.jsx)(tP,{scope:a,searchRef:L,onItemEnter:n.useCallback(e=>{$(e)&&e.preventDefault()},[$]),onItemLeave:n.useCallback(e=>{$(e)||(I.current?.focus(),S(null))},[$]),onTriggerLeave:n.useCallback(e=>{$(e)&&e.preventDefault()},[$]),pointerGraceTimerRef:A,onPointerGraceIntentChange:n.useCallback(e=>{P.current=e},[]),children:(0,r.jsx)(z,{...h?{as:tF,allowPinchZoom:!0}:void 0,children:(0,r.jsx)(R.FocusScope,{asChild:!0,trapped:o,onMountAutoFocus:(0,w.composeEventHandlers)(i,e=>{e.preventDefault(),I.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:(0,r.jsx)(M.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:x,children:(0,r.jsx)(ti.Root,{asChild:!0,...j,dir:b.dir,orientation:"vertical",loop:s,currentTabStopId:C,onCurrentTabStopIdChange:S,onEntryFocus:(0,w.composeEventHandlers)(d,e=>{b.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,r.jsx)(e7,{role:"menu","aria-orientation":"vertical","data-state":rs(v.open),"data-radix-menu-content":"",dir:b.dir,...y,...g,ref:E,style:{outline:"none",...g.style},onKeyDown:(0,w.composeEventHandlers)(g.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,r=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;if(t){var a;let t,s,o,i,l,c;"Tab"===e.key&&e.preventDefault(),!r&&n&&(a=e.key,t=L.current+a,s=k().filter(e=>!e.disabled),o=document.activeElement,i=s.find(e=>e.ref.current===o)?.textValue,l=function(e,t,r){var n;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,s=r?e.indexOf(r):-1,o=(n=Math.max(s,0),e.map((t,r)=>e[(n+r)%e.length]));1===a.length&&(o=o.filter(e=>e!==r));let i=o.find(e=>e.toLowerCase().startsWith(a.toLowerCase()));return i!==r?i:void 0}(s.map(e=>e.textValue),t,i),c=s.find(e=>e.textValue===l)?.ref.current,function e(t){L.current=t,window.clearTimeout(T.current),""!==t&&(T.current=window.setTimeout(()=>e(""),1e3))}(t),c&&setTimeout(()=>c.focus()))}let s=I.current;if(e.target!==s||!tf.includes(e.key))return;e.preventDefault();let o=k().filter(e=>!e.disabled).map(e=>e.ref.current);tp.includes(e.key)&&o.reverse(),function(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}(o)}),onBlur:(0,w.composeEventHandlers)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(T.current),L.current="")}),onPointerMove:(0,w.composeEventHandlers)(e.onPointerMove,rl(e=>{let t=e.target,r=O.current!==e.clientX;e.currentTarget.contains(t)&&r&&(_.current=e.clientX>O.current?"right":"left",O.current=e.clientX)}))})})})})})})});tO.displayName=tA;var tH=n.forwardRef((e,t)=>{let{__scopeMenu:n,...a}=e;return(0,r.jsx)(k.Primitive.div,{role:"group",...a,ref:t})});tH.displayName="MenuGroup";var tW=n.forwardRef((e,t)=>{let{__scopeMenu:n,...a}=e;return(0,r.jsx)(k.Primitive.div,{...a,ref:t})});tW.displayName="MenuLabel";var tK="MenuItem",tB="menu.itemSelect",tq=n.forwardRef((e,t)=>{let{disabled:a=!1,onSelect:s,...o}=e,i=n.useRef(null),l=tM(tK,e.__scopeMenu),c=t_(tK,e.__scopeMenu),d=(0,N.useComposedRefs)(t,i),u=n.useRef(!1);return(0,r.jsx)(tV,{...o,ref:d,disabled:a,onClick:(0,w.composeEventHandlers)(e.onClick,()=>{let e=i.current;if(!a&&e){let t=new CustomEvent(tB,{bubbles:!0,cancelable:!0});e.addEventListener(tB,e=>s?.(e),{once:!0}),(0,k.dispatchDiscreteCustomEvent)(e,t),t.defaultPrevented?u.current=!1:l.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:(0,w.composeEventHandlers)(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:(0,w.composeEventHandlers)(e.onKeyDown,e=>{let t=""!==c.searchRef.current;a||t&&" "===e.key||tu.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});tq.displayName=tK;var tV=n.forwardRef((e,t)=>{let{__scopeMenu:a,disabled:s=!1,textValue:o,...i}=e,l=t_(tK,a),c=tk(a),d=n.useRef(null),u=(0,N.useComposedRefs)(t,d),[p,f]=n.useState(!1),[m,x]=n.useState("");return n.useEffect(()=>{let e=d.current;e&&x((e.textContent??"").trim())},[i.children]),(0,r.jsx)(tg.ItemSlot,{scope:a,disabled:s,textValue:o??m,children:(0,r.jsx)(ti.Item,{asChild:!0,...c,focusable:!s,children:(0,r.jsx)(k.Primitive.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":s||void 0,"data-disabled":s?"":void 0,...i,ref:u,onPointerMove:(0,w.composeEventHandlers)(e.onPointerMove,rl(e=>{s?l.onItemLeave(e):(l.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,w.composeEventHandlers)(e.onPointerLeave,rl(e=>l.onItemLeave(e))),onFocus:(0,w.composeEventHandlers)(e.onFocus,()=>f(!0)),onBlur:(0,w.composeEventHandlers)(e.onBlur,()=>f(!1))})})})}),tG=n.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:a,...s}=e;return(0,r.jsx)(t2,{scope:e.__scopeMenu,checked:n,children:(0,r.jsx)(tq,{role:"menuitemcheckbox","aria-checked":ro(n)?"mixed":n,...s,ref:t,"data-state":ri(n),onSelect:(0,w.composeEventHandlers)(s.onSelect,()=>a?.(!!ro(n)||!n),{checkForDefaultPrevented:!1})})})});tG.displayName="MenuCheckboxItem";var tJ="MenuRadioGroup",[tX,tQ]=ty(tJ,{value:void 0,onValueChange:()=>{}}),tY=n.forwardRef((e,t)=>{let{value:n,onValueChange:a,...s}=e,o=(0,eJ.useCallbackRef)(a);return(0,r.jsx)(tX,{scope:e.__scopeMenu,value:n,onValueChange:o,children:(0,r.jsx)(tH,{...s,ref:t})})});tY.displayName=tJ;var tZ="MenuRadioItem",t0=n.forwardRef((e,t)=>{let{value:n,...a}=e,s=tQ(tZ,e.__scopeMenu),o=n===s.value;return(0,r.jsx)(t2,{scope:e.__scopeMenu,checked:o,children:(0,r.jsx)(tq,{role:"menuitemradio","aria-checked":o,...a,ref:t,"data-state":ri(o),onSelect:(0,w.composeEventHandlers)(a.onSelect,()=>s.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});t0.displayName=tZ;var t1="MenuItemIndicator",[t2,t5]=ty(t1,{checked:!1}),t3=n.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:a,...s}=e,o=t5(t1,n);return(0,r.jsx)(to.Presence,{present:a||ro(o.checked)||!0===o.checked,children:(0,r.jsx)(k.Primitive.span,{...s,ref:t,"data-state":ri(o.checked)})})});t3.displayName=t1;var t4=n.forwardRef((e,t)=>{let{__scopeMenu:n,...a}=e;return(0,r.jsx)(k.Primitive.div,{role:"separator","aria-orientation":"horizontal",...a,ref:t})});t4.displayName="MenuSeparator";var t8=n.forwardRef((e,t)=>{let{__scopeMenu:n,...a}=e,s=tj(n);return(0,r.jsx)(tt,{...s,...a,ref:t})});t8.displayName="MenuArrow";var t6="MenuSub",[t7,t9]=ty(t6),re=e=>{let{__scopeMenu:t,children:a,open:s=!1,onOpenChange:o}=e,i=tN(t6,t),l=tj(t),[c,d]=n.useState(null),[u,p]=n.useState(null),f=(0,eJ.useCallbackRef)(o);return n.useEffect(()=>(!1===i.open&&f(!1),()=>f(!1)),[i.open,f]),(0,r.jsx)(e2,{...l,children:(0,r.jsx)(tC,{scope:t,open:s,onOpenChange:f,content:u,onContentChange:p,children:(0,r.jsx)(t7,{scope:t,contentId:(0,I.useId)(),triggerId:(0,I.useId)(),trigger:c,onTriggerChange:d,children:a})})})};re.displayName=t6;var rt="MenuSubTrigger",rr=n.forwardRef((e,t)=>{let a=tN(rt,e.__scopeMenu),s=tM(rt,e.__scopeMenu),o=t9(rt,e.__scopeMenu),i=t_(rt,e.__scopeMenu),l=n.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:d}=i,u={__scopeMenu:e.__scopeMenu},p=n.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return n.useEffect(()=>p,[p]),n.useEffect(()=>{let e=c.current;return()=>{window.clearTimeout(e),d(null)}},[c,d]),(0,r.jsx)(tR,{asChild:!0,...u,children:(0,r.jsx)(tV,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":o.contentId,"data-state":rs(a.open),...e,ref:(0,N.composeRefs)(t,o.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:(0,w.composeEventHandlers)(e.onPointerMove,rl(t=>{i.onItemEnter(t),!t.defaultPrevented&&(e.disabled||a.open||l.current||(i.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{a.onOpenChange(!0),p()},100)))})),onPointerLeave:(0,w.composeEventHandlers)(e.onPointerLeave,rl(e=>{p();let t=a.content?.getBoundingClientRect();if(t){let r=a.content?.dataset.side,n="right"===r,s=t[n?"left":"right"],o=t[n?"right":"left"];i.onPointerGraceIntentChange({area:[{x:e.clientX+(n?-5:5),y:e.clientY},{x:s,y:t.top},{x:o,y:t.top},{x:o,y:t.bottom},{x:s,y:t.bottom}],side:r}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.onPointerGraceIntentChange(null),300)}else{if(i.onTriggerLeave(e),e.defaultPrevented)return;i.onPointerGraceIntentChange(null)}})),onKeyDown:(0,w.composeEventHandlers)(e.onKeyDown,t=>{let r=""!==i.searchRef.current;e.disabled||r&&" "===t.key||tm[s.dir].includes(t.key)&&(a.onOpenChange(!0),a.content?.focus(),t.preventDefault())})})})});rr.displayName=rt;var rn="MenuSubContent",ra=n.forwardRef((e,t)=>{let a=tT(tA,e.__scopeMenu),{forceMount:s=a.forceMount,...o}=e,i=tN(tA,e.__scopeMenu),l=tM(tA,e.__scopeMenu),c=t9(rn,e.__scopeMenu),d=n.useRef(null),u=(0,N.useComposedRefs)(t,d);return(0,r.jsx)(tg.Provider,{scope:e.__scopeMenu,children:(0,r.jsx)(to.Presence,{present:s||i.open,children:(0,r.jsx)(tg.Slot,{scope:e.__scopeMenu,children:(0,r.jsx)(tU,{id:c.contentId,"aria-labelledby":c.triggerId,...o,ref:u,align:"start",side:"rtl"===l.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{l.isUsingKeyboardRef.current&&d.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,w.composeEventHandlers)(e.onFocusOutside,e=>{e.target!==c.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:(0,w.composeEventHandlers)(e.onEscapeKeyDown,e=>{l.onClose(),e.preventDefault()}),onKeyDown:(0,w.composeEventHandlers)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),r=tx[l.dir].includes(e.key);t&&r&&(i.onOpenChange(!1),c.trigger?.focus(),e.preventDefault())})})})})})});function rs(e){return e?"open":"closed"}function ro(e){return"indeterminate"===e}function ri(e){return ro(e)?"indeterminate":e?"checked":"unchecked"}function rl(e){return t=>"mouse"===t.pointerType?e(t):void 0}ra.displayName=rn;var rc=e.i(87782),rd="ContextMenu",[ru,rp]=(0,j.createContextScope)(rd,[tw]),rf=tw(),[rm,rx]=ru(rd),rh=e=>{let{__scopeContextMenu:t,children:a,onOpenChange:s,dir:o,modal:i=!0}=e,[l,c]=n.useState(!1),d=rf(t),u=(0,eJ.useCallbackRef)(s),p=n.useCallback(e=>{c(e),u(e)},[u]);return(0,r.jsx)(rm,{scope:t,open:l,onOpenChange:p,modal:i,children:(0,r.jsx)(tD,{...d,dir:o,open:l,onOpenChange:p,modal:i,children:a})})};rh.displayName=rd;var rg="ContextMenuTrigger",rv=n.forwardRef((e,t)=>{let{__scopeContextMenu:a,disabled:s=!1,...o}=e,i=rx(rg,a),l=rf(a),c=n.useRef({x:0,y:0}),d=n.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...c.current})}),u=n.useRef(0),p=n.useCallback(()=>window.clearTimeout(u.current),[]),f=e=>{c.current={x:e.clientX,y:e.clientY},i.onOpenChange(!0)};return n.useEffect(()=>p,[p]),n.useEffect(()=>void(s&&p()),[s,p]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(tR,{...l,virtualRef:d}),(0,r.jsx)(k.Primitive.span,{"data-state":i.open?"open":"closed","data-disabled":s?"":void 0,...o,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:s?e.onContextMenu:(0,w.composeEventHandlers)(e.onContextMenu,e=>{p(),f(e),e.preventDefault()}),onPointerDown:s?e.onPointerDown:(0,w.composeEventHandlers)(e.onPointerDown,rP(e=>{p(),u.current=window.setTimeout(()=>f(e),700)})),onPointerMove:s?e.onPointerMove:(0,w.composeEventHandlers)(e.onPointerMove,rP(p)),onPointerCancel:s?e.onPointerCancel:(0,w.composeEventHandlers)(e.onPointerCancel,rP(p)),onPointerUp:s?e.onPointerUp:(0,w.composeEventHandlers)(e.onPointerUp,rP(p))})]})});rv.displayName=rg;var rb=e=>{let{__scopeContextMenu:t,...n}=e,a=rf(t);return(0,r.jsx)(tL,{...a,...n})};rb.displayName="ContextMenuPortal";var ry="ContextMenuContent",rw=n.forwardRef((e,t)=>{let{__scopeContextMenu:a,...s}=e,o=rx(ry,a),i=rf(a),l=n.useRef(!1);return(0,r.jsx)(tO,{...i,...s,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&l.current&&t.preventDefault(),l.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||o.modal||(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});rw.displayName=ry;var rj=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(tH,{...s,...a,ref:t})});rj.displayName="ContextMenuGroup";var rk=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(tW,{...s,...a,ref:t})});rk.displayName="ContextMenuLabel";var rC=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(tq,{...s,...a,ref:t})});rC.displayName="ContextMenuItem";var rN=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(tG,{...s,...a,ref:t})});rN.displayName="ContextMenuCheckboxItem";var rS=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(tY,{...s,...a,ref:t})});rS.displayName="ContextMenuRadioGroup";var rM=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(t0,{...s,...a,ref:t})});rM.displayName="ContextMenuRadioItem";var rD=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(t3,{...s,...a,ref:t})});rD.displayName="ContextMenuItemIndicator";var rR=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(t4,{...s,...a,ref:t})});rR.displayName="ContextMenuSeparator";var rI=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(t8,{...s,...a,ref:t})});rI.displayName="ContextMenuArrow";var rE="ContextMenuSub",rT=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:a,open:s,defaultOpen:o}=e,i=rf(t),[l,c]=(0,rc.useControllableState)({prop:s,defaultProp:o??!1,onChange:a,caller:rE});return(0,r.jsx)(re,{...i,open:l,onOpenChange:c,children:n})};rT.displayName=rE;var rL=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(rr,{...s,...a,ref:t})});rL.displayName="ContextMenuSubTrigger";var rA=n.forwardRef((e,t)=>{let{__scopeContextMenu:n,...a}=e,s=rf(n);return(0,r.jsx)(ra,{...s,...a,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});function rP(e){return t=>"mouse"!==t.pointerType?e(t):void 0}rA.displayName="ContextMenuSubContent",e.s(["Arrow",0,rI,"CheckboxItem",0,rN,"Content",0,rw,"ContextMenu",0,rh,"ContextMenuArrow",0,rI,"ContextMenuCheckboxItem",0,rN,"ContextMenuContent",0,rw,"ContextMenuGroup",0,rj,"ContextMenuItem",0,rC,"ContextMenuItemIndicator",0,rD,"ContextMenuLabel",0,rk,"ContextMenuPortal",0,rb,"ContextMenuRadioGroup",0,rS,"ContextMenuRadioItem",0,rM,"ContextMenuSeparator",0,rR,"ContextMenuSub",0,rT,"ContextMenuSubContent",0,rA,"ContextMenuSubTrigger",0,rL,"ContextMenuTrigger",0,rv,"Group",0,rj,"Item",0,rC,"ItemIndicator",0,rD,"Label",0,rk,"Portal",0,rb,"RadioGroup",0,rS,"RadioItem",0,rM,"Root",0,rh,"Separator",0,rR,"Sub",0,rT,"SubContent",0,rA,"SubTrigger",0,rL,"Trigger",0,rv,"createContextMenuScope",0,rp],49415);var r_=e.i(49415),r_=r_,rO=e.i(47899);function rz({...e}){return(0,r.jsx)(r_.Root,{"data-slot":"context-menu",...e})}function r$({...e}){return(0,r.jsx)(r_.Trigger,{"data-slot":"context-menu-trigger",...e})}function rF({className:e,...t}){return(0,r.jsx)(r_.Portal,{children:(0,r.jsx)(r_.Content,{"data-slot":"context-menu-content",className:(0,rO.cn)("z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",e),...t})})}function rU({className:e,inset:t,variant:n="default",...a}){return(0,r.jsx)(r_.Item,{"data-slot":"context-menu-item","data-inset":t,"data-variant":n,className:(0,rO.cn)("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",e),...a})}function rH({className:e,...t}){return(0,r.jsx)(r_.Separator,{"data-slot":"context-menu-separator",className:(0,rO.cn)("-mx-1 my-1 h-px bg-border",e),...t})}var rW="DropdownMenu",[rK,rB]=(0,j.createContextScope)(rW,[tw]),rq=tw(),[rV,rG]=rK(rW),rJ=e=>{let{__scopeDropdownMenu:t,children:a,dir:s,open:o,defaultOpen:i,onOpenChange:l,modal:c=!0}=e,d=rq(t),u=n.useRef(null),[p,f]=(0,rc.useControllableState)({prop:o,defaultProp:i??!1,onChange:l,caller:rW});return(0,r.jsx)(rV,{scope:t,triggerId:(0,I.useId)(),triggerRef:u,contentId:(0,I.useId)(),open:p,onOpenChange:f,onOpenToggle:n.useCallback(()=>f(e=>!e),[f]),modal:c,children:(0,r.jsx)(tD,{...d,open:p,onOpenChange:f,dir:s,modal:c,children:a})})};rJ.displayName=rW;var rX="DropdownMenuTrigger",rQ=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:a=!1,...s}=e,o=rG(rX,n),i=rq(n);return(0,r.jsx)(tR,{asChild:!0,...i,children:(0,r.jsx)(k.Primitive.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":a?"":void 0,disabled:a,...s,ref:(0,N.composeRefs)(t,o.triggerRef),onPointerDown:(0,w.composeEventHandlers)(e.onPointerDown,e=>{!a&&0===e.button&&!1===e.ctrlKey&&(o.onOpenToggle(),o.open||e.preventDefault())}),onKeyDown:(0,w.composeEventHandlers)(e.onKeyDown,e=>{!a&&(["Enter"," "].includes(e.key)&&o.onOpenToggle(),"ArrowDown"===e.key&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});rQ.displayName=rX;var rY=e=>{let{__scopeDropdownMenu:t,...n}=e,a=rq(t);return(0,r.jsx)(tL,{...a,...n})};rY.displayName="DropdownMenuPortal";var rZ="DropdownMenuContent",r0=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...s}=e,o=rG(rZ,a),i=rq(a),l=n.useRef(!1);return(0,r.jsx)(tO,{id:o.contentId,"aria-labelledby":o.triggerId,...i,...s,ref:t,onCloseAutoFocus:(0,w.composeEventHandlers)(e.onCloseAutoFocus,e=>{l.current||o.triggerRef.current?.focus(),l.current=!1,e.preventDefault()}),onInteractOutside:(0,w.composeEventHandlers)(e.onInteractOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey,n=2===t.button||r;(!o.modal||n)&&(l.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});r0.displayName=rZ;var r1=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(tH,{...s,...a,ref:t})});r1.displayName="DropdownMenuGroup";var r2=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(tW,{...s,...a,ref:t})});r2.displayName="DropdownMenuLabel";var r5=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(tq,{...s,...a,ref:t})});r5.displayName="DropdownMenuItem";var r3=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(tG,{...s,...a,ref:t})});r3.displayName="DropdownMenuCheckboxItem";var r4=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(tY,{...s,...a,ref:t})});r4.displayName="DropdownMenuRadioGroup";var r8=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(t0,{...s,...a,ref:t})});r8.displayName="DropdownMenuRadioItem";var r6=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(t3,{...s,...a,ref:t})});r6.displayName="DropdownMenuItemIndicator";var r7=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(t4,{...s,...a,ref:t})});r7.displayName="DropdownMenuSeparator";var r9=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(t8,{...s,...a,ref:t})});r9.displayName="DropdownMenuArrow";var ne=e=>{let{__scopeDropdownMenu:t,children:n,open:a,onOpenChange:s,defaultOpen:o}=e,i=rq(t),[l,c]=(0,rc.useControllableState)({prop:a,defaultProp:o??!1,onChange:s,caller:"DropdownMenuSub"});return(0,r.jsx)(re,{...i,open:l,onOpenChange:c,children:n})},nt=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(rr,{...s,...a,ref:t})});nt.displayName="DropdownMenuSubTrigger";var nr=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,s=rq(n);return(0,r.jsx)(ra,{...s,...a,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});nr.displayName="DropdownMenuSubContent",e.s(["Arrow",0,r9,"CheckboxItem",0,r3,"Content",0,r0,"DropdownMenu",0,rJ,"DropdownMenuArrow",0,r9,"DropdownMenuCheckboxItem",0,r3,"DropdownMenuContent",0,r0,"DropdownMenuGroup",0,r1,"DropdownMenuItem",0,r5,"DropdownMenuItemIndicator",0,r6,"DropdownMenuLabel",0,r2,"DropdownMenuPortal",0,rY,"DropdownMenuRadioGroup",0,r4,"DropdownMenuRadioItem",0,r8,"DropdownMenuSeparator",0,r7,"DropdownMenuSub",0,ne,"DropdownMenuSubContent",0,nr,"DropdownMenuSubTrigger",0,nt,"DropdownMenuTrigger",0,rQ,"Group",0,r1,"Item",0,r5,"ItemIndicator",0,r6,"Label",0,r2,"Portal",0,rY,"RadioGroup",0,r4,"RadioItem",0,r8,"Root",0,rJ,"Separator",0,r7,"Sub",0,ne,"SubContent",0,nr,"SubTrigger",0,nt,"Trigger",0,rQ,"createDropdownMenuScope",0,rB],64274);var nn=e.i(64274),nn=nn;function na({...e}){return(0,r.jsx)(nn.Root,{"data-slot":"dropdown-menu",...e})}function ns({...e}){return(0,r.jsx)(nn.Trigger,{"data-slot":"dropdown-menu-trigger",...e})}function no({className:e,sideOffset:t=4,...n}){return(0,r.jsx)(nn.Portal,{children:(0,r.jsx)(nn.Content,{"data-slot":"dropdown-menu-content",sideOffset:t,className:(0,rO.cn)("z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",e),...n})})}function ni({className:e,inset:t,variant:n="default",...a}){return(0,r.jsx)(nn.Item,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":n,className:(0,rO.cn)("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",e),...a})}function nl({className:e,...t}){return(0,r.jsx)(nn.Separator,{"data-slot":"dropdown-menu-separator",className:(0,rO.cn)("-mx-1 my-1 h-px bg-border",e),...t})}var nc=e.i(74499),nd=e.i(53104);let nu="jinn-sidebar-collapsed",np="jinn-sidebar-expanded",nf="jinn-pinned-sessions";function nm(e){if(!e)return"";let t=new Date(e),r=Date.now()-t.getTime();return r<6e4?"now":r<36e5?`${Math.floor(r/6e4)}m`:r<864e5?new Date(e).toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}):r<1728e5?"yesterday":new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function nx(){try{let e=localStorage.getItem("jinn-read-sessions");return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}function nh(e){try{localStorage.setItem(nf,JSON.stringify(Array.from(e)))}catch{}}function ng(e){return"cron"===e.source||(e.sourceRef||"").startsWith("cron:")}function nv(e){return e.lastActivity||e.createdAt||""}function nb(e){return[...e].sort((e,t)=>nv(t).localeCompare(nv(e)))}function ny(e,t){return"running"===e.status?"var(--system-blue)":"error"===e.status?"var(--system-red)":t.has(e.id)?"var(--text-quaternary)":"var(--system-green)"}function nw({color:e,pulse:t=!1,className:n}){return(0,r.jsx)("span",{className:(0,rO.cn)("shrink-0 rounded-full",n),style:{background:e,animation:t?"sidebar-pulse 2s ease-in-out infinite":"none",boxShadow:t?`0 0 8px ${e}`:"none"}})}function nj({selectedId:e,onSelect:t,onNewChat:a,onDelete:o,onDuplicate:i,onSessionsLoaded:c,onEmployeeSessionsAvailable:w,onOrderComputed:j}){let{settings:k}=(0,v.useSettings)(),C=k.portalName??"Ryoko",N=C.toLowerCase(),{data:S,isLoading:M}=(0,y.useSessions)(),D=(0,y.useUpdateSession)(),R=(0,y.useDeleteSession)(),I=(0,y.useBulkDeleteSessions)(),E=(0,y.useDuplicateSession)(),T=(0,n.useMemo)(()=>{if(!S)return[];let e=S.filter(e=>"web"===e.source||"cron"===e.source||"whatsapp"===e.source||"discord"===e.source||!e.source);return e.sort((e,t)=>{let r=e.lastActivity||e.createdAt||"";return(t.lastActivity||t.createdAt||"").localeCompare(r)}),e},[S]),[L,A]=(0,n.useState)(""),[P,_]=(0,n.useState)(null),O=(0,n.useRef)(!1),[z,$]=(0,n.useState)(new Set),[F,U]=(0,n.useState)(new Set),[H,W]=(0,n.useState)(new Set),[K,B]=(0,n.useState)({}),[q,V]=(0,n.useState)({}),[G,J]=(0,n.useState)(null),X=(0,n.useRef)(null),[Q,Y]=(0,n.useState)(new Map),Z=(0,n.useRef)(c);(0,n.useEffect)(()=>{Z.current=c},[c]),(0,n.useEffect)(()=>{T.length>0&&(0,n.startTransition)(()=>{Z.current?.(T)})},[T]),(0,n.useEffect)(()=>{$(nx()),U(function(){try{let e=localStorage.getItem(nf);return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}()),W(function(){try{let e=localStorage.getItem(nu);return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}()),B(function(){try{let e=localStorage.getItem(np);return e?JSON.parse(e):{}}catch{return{}}}())},[]),(0,n.useEffect)(()=>{if(e){let t,r;(t=nx()).add(e),(r=Array.from(t)).length>500&&r.splice(0,r.length-500),localStorage.setItem("jinn-read-sessions",JSON.stringify(r)),$(t=>{let r=new Set(t);return r.add(e),r})}},[e]),(0,n.useEffect)(()=>{s.api.getOrg().then(e=>{let t=new Map;for(let r of e.employees)t.set(r.name,r);Y(t)}).catch(()=>{})},[]);let ee=(0,n.useCallback)(()=>{W(e=>{let t=new Set(e);t.has("cron")?t.delete("cron"):t.add("cron");try{localStorage.setItem(nu,JSON.stringify(Array.from(t)))}catch{}return t})},[]),et=(0,n.useCallback)(e=>{B(t=>{let r={...t,[e]:!t[e]};try{localStorage.setItem(np,JSON.stringify(r))}catch{}return r[e]||V(t=>{if(!t[e])return t;let{[e]:r,...n}=t;return n}),r})},[]),er=(0,n.useCallback)(e=>{U(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),nh(r),r})},[]),en=(0,n.useCallback)(e=>{let t=nx();for(let r of e)t.add(r.id);let r=Array.from(t);r.length>500&&r.splice(0,r.length-500),localStorage.setItem("jinn-read-sessions",JSON.stringify(r)),$(t=>{let r=new Set(t);for(let t of e)r.add(t.id);return r})},[]);async function ea(t,r){let s=r.map(e=>e.id);try{await I.mutateAsync(s),U(e=>{let r=new Set(e);for(let e of(r.delete(`emp:${t}`),s))r.delete(e);return nh(r),r}),(0,n.startTransition)(()=>{e&&s.includes(e)&&a()})}catch{}}async function es(r){let s=null;if(e===r){let e=[],t=t=>{for(let r of t){let t=r.employeeName,n=r.sessions||[];if(1===n.length)e.push(n[0].id);else if(K[t])for(let r of q[t]?n:n.slice(0,5))e.push(r.id);else n.length>0&&e.push(n[0].id)}};for(let r of(t(ep),t(ef),ex))e.push(r.id);let n=e.indexOf(r);-1!==n&&(n+1<e.length?s=e[n+1]:n-1>=0&&(s=e[n-1]))}try{await R.mutateAsync(r),U(e=>{if(!e.has(r))return e;let t=new Set(e);return t.delete(r),nh(t),t}),(0,n.startTransition)(()=>{s?t(s):o?o(r):e===r&&a()})}catch{}}async function eo(e){try{let r=await E.mutateAsync(e);r?.id&&(i?.(r.id),t(r.id),_(r.id),O.current=!1)}catch(e){window.alert(`Duplicate failed: ${e.message||"Unknown error"}`)}}let ei=L.trim()?T.filter(e=>{let t=L.toLowerCase(),r=e.employee?Q.get(e.employee):void 0;return e.id.toLowerCase().includes(t)||e.employee&&e.employee.toLowerCase().includes(t)||r?.displayName&&r.displayName.toLowerCase().includes(t)||e.title&&e.title.toLowerCase().includes(t)}):T,el=[],ec=[],ed=new Map;for(let e of ei)if(ng(e))el.push(e);else if(ng(e)||e.employee&&e.employee!==N){let t=e.employee;ed.has(t)||ed.set(t,[]),ed.get(t).push(e)}else ec.push(e);let eu=[];for(let[e,t]of ed){let r=nb(t);eu.push({type:"employee",employeeName:e,employeeData:Q.get(e),sessions:r,sortKey:nv(r[0]),pinKey:`emp:${e}`})}if(ec.length>0){let e=nb(ec);eu.push({type:"employee",employeeName:N,employeeData:{name:N,displayName:C,emoji:"💬",department:"direct",role:"",rank:"manager",engine:"",model:"",persona:""},sessions:e,sortKey:nv(e[0]),pinKey:`emp:${N}`})}let ep=eu.filter(e=>F.has(e.pinKey)).sort((e,t)=>t.sortKey.localeCompare(e.sortKey)),ef=eu.filter(e=>!F.has(e.pinKey)).sort((e,t)=>t.sortKey.localeCompare(e.sortKey)),em=H.has("cron"),ex=nb(el),eh=(0,n.useRef)(""),eg=(0,n.useMemo)(()=>{let e=[],t=[],r={};for(let n of[...ep,...ef]){let a=n.employeeName;t.push(a);let s=n.sessions.map(e=>e.id);r[a]=s,e.push(...s)}for(let t of ex)e.push(t.id);return{sessionIds:e,employeeNames:t,employeeSessionMap:r}},[ep,ef,ex]);function ev(n,a){var s,o;let i=n.id===e,l=ny(n,z),c="running"===n.status,d=(s=n.title,o=n.employee,s?"Jinn"!==C&&s.startsWith("Jinn - ")?C+s.slice(4):s:o||C),u=b(d)||d,m=nm(nv(n)),x=F.has(n.id),h=P===n.id;return(0,r.jsxs)(rz,{children:[(0,r.jsx)(r$,{asChild:!0,children:(0,r.jsxs)(h?"div":"button",{...!h&&{onClick:()=>{t(n.id),w?.(a??[n])}},className:(0,rO.cn)("group/session relative flex w-full items-center gap-2.5 border-l-2 px-4 py-2 text-left transition-colors",a?"pl-11":"pl-6",i?"border-l-[var(--accent)] bg-[var(--fill-secondary)]":"border-l-transparent hover:bg-accent"),children:[(0,r.jsx)(nw,{color:l,pulse:c,className:"size-1.5"}),h?(0,r.jsx)("input",{autoFocus:!0,maxLength:200,defaultValue:u,className:(0,rO.cn)("min-w-0 flex-1 truncate border-none bg-transparent text-xs outline-none ring-1 ring-[var(--accent)] rounded px-0.5",i?"font-semibold text-foreground":"text-[var(--text-secondary)]"),onFocus:e=>e.target.select(),onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Enter"===e.key?e.currentTarget.blur():"Escape"===e.key&&(O.current=!0,_(null))},onBlur:e=>{if(O.current){O.current=!1;return}let t=e.target.value.trim();t&&t!==u&&D.mutate({id:n.id,data:{title:t}}),_(null)}}):(0,r.jsx)("span",{className:(0,rO.cn)("min-w-0 flex-1 truncate text-xs",i?"font-semibold text-foreground":"text-[var(--text-secondary)]"),children:b(d)||"Untitled"}),x?(0,r.jsx)(f,{className:"size-3 shrink-0 text-[var(--accent)] group-hover/session:lg:hidden group-has-[[data-state=open]]/session:lg:hidden"}):null,(0,r.jsx)("span",{className:"shrink-0 text-[10px] text-[var(--text-quaternary)] group-hover/session:lg:hidden group-has-[[data-state=open]]/session:lg:hidden",children:m}),(0,r.jsxs)(na,{children:[(0,r.jsx)(ns,{asChild:!0,children:(0,r.jsx)("button",{onClick:e=>e.stopPropagation(),className:"hidden shrink-0 text-muted-foreground transition-colors hover:text-foreground group-hover/session:lg:block group-has-[[data-state=open]]/session:lg:block",children:(0,r.jsx)(p,{className:"size-3.5"})})}),(0,r.jsxs)(no,{align:"end",children:[(0,r.jsx)(ni,{onClick:()=>{O.current=!1,_(n.id)},children:"Rename"}),(0,r.jsx)(ni,{onClick:()=>er(n.id),children:x?"Unpin":"Pin"}),(0,r.jsx)(ni,{onClick:()=>eo(n.id),children:"Duplicate..."}),(0,r.jsx)(nl,{}),(0,r.jsx)(ni,{variant:"destructive",onClick:()=>J({type:"session",id:n.id,label:b(d)||"Untitled"}),children:"Delete session"})]})]})]})}),(0,r.jsxs)(rF,{children:[(0,r.jsx)(rU,{onClick:()=>{O.current=!1,_(n.id)},children:"Rename"}),(0,r.jsx)(rU,{onClick:()=>er(n.id),children:x?"Unpin":"Pin"}),(0,r.jsx)(rU,{onClick:()=>eo(n.id),children:"Duplicate..."}),(0,r.jsx)(rH,{}),(0,r.jsxs)(rU,{variant:"destructive",onClick:()=>J({type:"session",id:n.id,label:b(d)||"Untitled"}),children:[(0,r.jsx)("span",{className:"flex-1",children:"Delete session"}),(0,r.jsx)("kbd",{className:"ml-auto pl-3 font-mono text-[10px] text-[var(--text-quaternary)]",children:"⌫"})]})]})]},n.id)}function eb(n){let a=n.employeeName,s=n.sessions,o=s[0],i=n.employeeData,l=i?.displayName||a.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),c=i?.department||"",d=nm(nv(o)),u=ny(o,z),m="running"===o.status,x=s.some(t=>t.id===e),h=F.has(n.pinKey),v=s.length,b=K[a]||!1,y=s.some(e=>!z.has(e.id)&&"running"!==e.status&&"error"!==e.status);return(0,r.jsxs)("div",{children:[(0,r.jsxs)(rz,{children:[(0,r.jsx)(r$,{asChild:!0,children:(0,r.jsxs)("button",{onClick:()=>(function(e){let r=e.employeeName,n=e.sessions;if(n.length>1){let e=K[r]||!1;et(r),e||(t(n[0].id),w?.(n))}else t(n[0].id),w?.(n)})(n),className:(0,rO.cn)("group/emp relative flex w-full items-center gap-3 border-l-2 px-4 py-3 text-left transition-colors",x?"border-l-[var(--accent)] bg-[var(--fill-secondary)]":"border-l-transparent hover:bg-accent"),children:[(0,r.jsxs)("div",{className:"relative flex size-9 shrink-0 items-center justify-center",children:[(0,r.jsx)(g.EmployeeAvatar,{name:a,size:36}),(0,r.jsx)(nw,{color:u,pulse:m,className:"absolute -bottom-0.5 -right-0 size-2.5 border-2 border-[var(--sidebar-bg)]"})]}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"mb-0.5 flex items-baseline gap-2",children:[(0,r.jsx)("span",{className:(0,rO.cn)("min-w-0 flex-1 truncate text-[13px] tracking-[-0.2px] text-foreground",y||x?"font-semibold":"font-medium"),children:l}),(0,r.jsx)("span",{className:"shrink-0 text-[10px] text-[var(--text-tertiary)] group-hover/emp:lg:hidden group-has-[[data-state=open]]/emp:lg:hidden",children:d}),(0,r.jsxs)(na,{children:[(0,r.jsx)(ns,{asChild:!0,children:(0,r.jsx)("button",{onClick:e=>e.stopPropagation(),className:"hidden shrink-0 text-muted-foreground transition-colors hover:text-foreground group-hover/emp:lg:block group-has-[[data-state=open]]/emp:lg:block",children:(0,r.jsx)(p,{className:"size-3.5"})})}),(0,r.jsxs)(no,{align:"end",children:[(0,r.jsx)(ni,{onClick:()=>er(n.pinKey),children:h?"Unpin":"Pin"}),(0,r.jsx)(ni,{onClick:()=>en(s),children:"Mark all as read"}),(0,r.jsx)(nl,{}),(0,r.jsx)(ni,{variant:"destructive",onClick:()=>J({type:"employee",id:a,label:l,sessions:s}),children:"Delete all chats"})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 overflow-hidden text-[11px] text-[var(--text-tertiary)]",children:[c?(0,r.jsx)("span",{className:"truncate",children:c}):null,v>1?(0,r.jsxs)("span",{className:"shrink-0 rounded bg-[var(--fill-tertiary)] px-1.5 py-0.5 text-[10px]",children:[v," chats"]}):null,h?(0,r.jsx)(f,{className:"size-3 shrink-0 text-[var(--accent)]"}):null]})]})]})}),(0,r.jsxs)(rF,{children:[(0,r.jsx)(rU,{onClick:()=>er(n.pinKey),children:h?"Unpin":"Pin"}),(0,r.jsx)(rU,{onClick:()=>en(s),children:"Mark all as read"}),(0,r.jsx)(rH,{}),(0,r.jsx)(rU,{variant:"destructive",onClick:()=>J({type:"employee",id:a,label:l,sessions:s}),children:"Delete all chats"})]})]}),b&&v>1?q[a]?s.map(e=>ev(e,s)):s.slice(0,5).map(e=>ev(e,s)):null,b&&v>5&&!q[a]?(0,r.jsxs)("button",{onClick:()=>V(e=>({...e,[a]:!0})),className:"w-full cursor-pointer px-4 pb-2 pl-11 text-left text-[10px] text-[var(--text-quaternary)] transition-colors hover:text-[var(--text-secondary)]",children:["+",v-5," more"]}):null]},n.pinKey)}return(0,n.useEffect)(()=>{let e=eg.sessionIds.join(",");e!==eh.current&&(eh.current=e,j?.(eg))},[eg,j]),(0,r.jsxs)("div",{className:"jsx-fb767975a1bed37e flex h-full flex-col border-r border-border bg-[var(--sidebar-bg)]",children:[(0,r.jsxs)("div",{className:"jsx-fb767975a1bed37e shrink-0 border-b border-border bg-[var(--material-thick)] px-4 pb-3 pt-3",children:[(0,r.jsxs)("div",{className:"jsx-fb767975a1bed37e mb-2 flex items-center justify-between gap-3",children:[(0,r.jsxs)("div",{className:"jsx-fb767975a1bed37e",children:[(0,r.jsx)("h2",{className:"jsx-fb767975a1bed37e text-xl font-bold tracking-[-0.03em] text-foreground",children:"Chats"}),(0,r.jsx)("p",{className:"jsx-fb767975a1bed37e text-xs text-muted-foreground",children:"All conversations"})]}),(0,r.jsx)("div",{className:"jsx-fb767975a1bed37e flex items-center gap-1.5",children:(0,r.jsxs)(nc.Button,{size:"sm",className:"gap-1.5",onClick:a,title:"New chat (N)",children:[(0,r.jsx)(m.Plus,{className:"size-3.5"}),"New"]})})]}),(0,r.jsxs)("div",{className:"jsx-fb767975a1bed37e flex items-center gap-2 rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] px-3 py-2",children:[(0,r.jsx)(x.default,{className:"size-3.5 shrink-0 text-[var(--text-tertiary)]"}),(0,r.jsx)("input",{id:"chat-search",type:"text",value:L,onChange:e=>A(e.target.value),placeholder:"Search...","aria-label":"Search chats",className:"jsx-fb767975a1bed37e min-w-0 flex-1 bg-transparent text-sm text-foreground outline-none placeholder:text-[var(--text-tertiary)]"}),L.trim()?(0,r.jsx)("button",{onClick:()=>A(""),"aria-label":"Clear search",className:"jsx-fb767975a1bed37e rounded-full p-0.5 text-[var(--text-tertiary)] transition-colors hover:bg-[var(--fill-secondary)] hover:text-foreground",children:(0,r.jsx)(h.X,{className:"size-3"})}):null]})]}),(0,r.jsx)("div",{className:"jsx-fb767975a1bed37e flex-1 overflow-y-auto",children:M?(0,r.jsx)("div",{className:"jsx-fb767975a1bed37e px-4 py-8 text-center text-xs text-[var(--text-quaternary)]",children:"Loading sessions..."}):0===ep.length&&0===ef.length&&0===el.length?(0,r.jsx)("div",{className:"jsx-fb767975a1bed37e px-4 py-8 text-center text-xs text-[var(--text-quaternary)]",children:L.trim()?"No matching chats":"No conversations yet"}):(0,r.jsxs)(r.Fragment,{children:[ep.map(e=>eb(e)),ef.map(e=>eb(e)),el.length>0?(0,r.jsxs)("div",{className:"jsx-fb767975a1bed37e "+((0,rO.cn)("mt-2",0===ep.length&&0===ef.length&&"mt-0")||""),children:[(0,r.jsxs)("button",{onClick:ee,className:"jsx-fb767975a1bed37e flex w-full items-center gap-2 px-4 py-2 text-left transition-colors hover:bg-accent",children:[(0,r.jsx)(u,{className:"size-3.5 text-muted-foreground"}),(0,r.jsx)("span",{className:"jsx-fb767975a1bed37e text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground",children:"Scheduled"}),(0,r.jsx)("span",{className:"jsx-fb767975a1bed37e ml-auto rounded bg-[var(--fill-tertiary)] px-1.5 py-0.5 text-[10px] text-[var(--text-secondary)]",children:el.length}),(0,r.jsx)(d,{className:(0,rO.cn)("size-3.5 text-muted-foreground transition-transform",em&&"-rotate-90")})]}),em?null:ex.map(e=>ev(e))]}):null]})}),(0,r.jsx)(nd.Dialog,{open:!!G,onOpenChange:e=>{e||J(null)},children:(0,r.jsxs)(nd.DialogContent,{showCloseButton:!1,className:"max-w-sm",onOpenAutoFocus:e=>{e.preventDefault(),X.current?.focus()},children:[(0,r.jsxs)(nd.DialogHeader,{children:[(0,r.jsx)(nd.DialogTitle,{children:G?.type==="employee"?`Delete all chats with "${G.label}"?`:`Delete "${G?.label}"?`}),(0,r.jsx)(nd.DialogDescription,{children:G?.type==="employee"?`This will permanently delete ${G.sessions?.length??0} session(s) and all their messages. This cannot be undone.`:"This will permanently delete the session and all its messages. This cannot be undone."})]}),(0,r.jsxs)(nd.DialogFooter,{children:[(0,r.jsx)(nc.Button,{variant:"outline",onClick:()=>J(null),children:"Cancel"}),(0,r.jsx)(nc.Button,{ref:X,variant:"destructive",onClick:()=>{G&&("employee"===G.type&&G.sessions?ea(G.id,G.sessions):es(G.id),J(null))},children:"Delete"})]})]})}),(0,r.jsx)(l.default,{id:"fb767975a1bed37e",children:"@keyframes sidebar-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}"})]})}let nk=(0,c.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),nC=(0,c.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var nN=e.i(15587);let nS={running:"bg-blue-500 animate-pulse",error:"bg-red-500",idle:"bg-zinc-500"};function nM({tabs:e,activeIndex:t,onSwitch:a,onClose:s,onNew:o,onPin:i,onMove:l,toolbarActions:c,sidebarCollapsed:d,onToggleSidebar:u}){let p=(0,n.useRef)(null),[f,x]=(0,n.useState)(null),[v,y]=(0,n.useState)(null),w=e=>{e.currentTarget instanceof HTMLElement&&(e.currentTarget.style.opacity="1"),x(null),y(null)};return(0,r.jsxs)("div",{className:"relative z-[100] flex h-10 shrink-0 items-center border-b border-border bg-[var(--bg-secondary)]",children:[u&&(0,r.jsx)("button",{onClick:u,"aria-label":d?"Show sidebar":"Hide sidebar",className:"flex size-10 shrink-0 items-center justify-center border-r border-border text-muted-foreground transition-colors hover:bg-[var(--fill-quaternary)] hover:text-foreground",children:d?(0,r.jsx)(nk,{size:15}):(0,r.jsx)(nC,{size:15})}),e.length>0&&(0,r.jsx)("div",{ref:p,className:"flex min-w-0 flex-1 items-center overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.map((e,n)=>(0,r.jsxs)("button",{onClick:()=>a(n),onDoubleClick:()=>{i?.(n)},onMouseDown:e=>{1===e.button&&(e.preventDefault(),s(n))},draggable:!0,onDragStart:e=>{x(n),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",String(n)),e.currentTarget instanceof HTMLElement&&(e.currentTarget.style.opacity="0.5")},onDragEnd:w,onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move",n!==f&&y(n)},onDrop:e=>(e.preventDefault(),void(x(null),y(null),null!==f&&f!==n&&l?.(f,n))),className:(0,rO.cn)("group flex h-10 max-w-[180px] shrink-0 items-center gap-1.5 border-r border-border px-3 text-xs whitespace-nowrap transition-colors",n===t?"border-b-2 border-b-[var(--accent)] bg-background text-foreground":"text-muted-foreground hover:bg-[var(--fill-quaternary)] hover:text-foreground",e.unread&&n!==t&&"font-bold",v===n&&null!==f&&f!==n&&"border-l-2 border-l-[var(--accent)]"),children:[(0,r.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${nS[e.status]||nS.idle}`}),e.employeeName&&(0,r.jsx)(g.EmployeeAvatar,{name:e.employeeName,size:16}),(0,r.jsx)("span",{className:(0,rO.cn)("truncate",e.pinned?"font-medium":"font-normal italic"),children:b(e.label)}),(0,r.jsx)("span",{onClick:e=>{e.stopPropagation(),s(n)},className:"ml-auto rounded-sm p-0.5 opacity-0 transition-all hover:bg-accent hover:text-foreground group-hover:opacity-100",children:(0,r.jsx)(h.X,{size:12})})]},e.sessionId))}),0===e.length&&(0,r.jsx)("div",{className:"flex-1"}),(0,r.jsx)("button",{onClick:o,className:"flex size-10 shrink-0 items-center justify-center text-[var(--text-tertiary)] transition-colors hover:bg-[var(--fill-quaternary)] hover:text-foreground",title:"New Chat (N)",children:(0,r.jsx)(m.Plus,{size:14})}),c&&(0,r.jsxs)("div",{className:"hidden shrink-0 items-center gap-2 border-l border-border px-3 lg:flex",children:[c,(0,r.jsx)(nN.NotificationBell,{})]})]})}let nD="jinn-intermediate-";function nR(e){try{localStorage.removeItem(`${nD}${e}`)}catch{}}function nI({name:e,size:t,mimeType:n,url:a,isUser:s}){let o,i,l,c,d;return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-lg)",background:s?"var(--accent)":"var(--material-thin)",border:s?"none":"1px solid var(--separator)",maxWidth:280,minWidth:180},children:[(0,r.jsx)("div",{style:{width:36,height:36,borderRadius:"var(--radius-sm)",background:s?"rgba(0,0,0,0.15)":"var(--fill-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:s?"#000":"var(--text-secondary)"},children:(o=e?.split(".").pop()?.toLowerCase()||"",i="application/pdf"===n||"pdf"===o,l=["doc","docx"].includes(o)||n?.includes("wordprocessingml"),c=["txt","csv","json","md"].includes(o)||n?.startsWith("text/"),d=["zip","tar","gz","rar","7z"].includes(o),i?(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,r.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,r.jsx)("line",{x1:"9",y1:"15",x2:"15",y2:"15"})]}):l?(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,r.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,r.jsx)("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),(0,r.jsx)("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),(0,r.jsx)("polyline",{points:"10 9 9 9 8 9"})]}):c?(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,r.jsx)("polyline",{points:"14 2 14 8 20 8"})]}):d?(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M21 8v13H3V8"}),(0,r.jsx)("path",{d:"M1 3h22v5H1z"}),(0,r.jsx)("path",{d:"M10 12h4"})]}):(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"}),(0,r.jsx)("polyline",{points:"13 2 13 9 20 9"})]}))}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-footnote)",fontWeight:"var(--weight-medium)",color:s?"#000":"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),null!=t&&(0,r.jsx)("div",{style:{fontSize:"var(--text-caption2)",color:s?"rgba(0,0,0,0.5)":"var(--text-tertiary)",marginTop:1},children:t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(0)} KB`:`${(t/1048576).toFixed(1)} MB`})]}),(0,r.jsx)("a",{href:a,download:e,"aria-label":`Download ${e}`,style:{width:28,height:28,borderRadius:"50%",background:s?"rgba(0,0,0,0.15)":"var(--fill-secondary)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:s?"#000":"var(--text-secondary)",textDecoration:"none"},children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,r.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,r.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})]})}function nE({src:e,duration:t,waveform:a,isUser:s}){let o,i,l=(0,n.useRef)(null),[c,d]=(0,n.useState)(!1),[u,p]=(0,n.useState)(0),[f,m]=(0,n.useState)(0);(0,n.useEffect)(()=>{let t=new Audio(e);return l.current=t,t.addEventListener("timeupdate",()=>{t.duration&&isFinite(t.duration)&&(p(t.currentTime/t.duration),m(t.currentTime))}),t.addEventListener("ended",()=>{d(!1),p(0),m(0)}),t.addEventListener("pause",()=>d(!1)),t.addEventListener("play",()=>d(!0)),()=>{t.pause(),t.src=""}},[e]);let x=(0,n.useCallback)(()=>{let e=l.current;e&&(c?e.pause():e.play().catch(()=>{}))},[c]),h=a.length>0?a:Array(50).fill(.1),g=c?f:t;return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-lg)",background:s?"var(--accent)":"var(--material-thin)",border:s?"none":"1px solid var(--separator)",maxWidth:280,minWidth:200},children:[(0,r.jsx)("button",{onClick:x,"aria-label":c?"Pause":"Play",style:{width:28,height:28,borderRadius:"50%",background:s?"rgba(0,0,0,0.2)":"var(--fill-secondary)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:s?"#000":"var(--text-primary)"},children:c?(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:[(0,r.jsx)("rect",{x:"6",y:"4",width:"4",height:"16",rx:"1"}),(0,r.jsx)("rect",{x:"14",y:"4",width:"4",height:"16",rx:"1"})]}):(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,r.jsx)("polygon",{points:"6,4 20,12 6,20"})})}),(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",gap:2,height:28},children:h.map((e,t)=>{let n=t/h.length<=u;return(0,r.jsx)("div",{style:{width:3,borderRadius:1.5,height:`${Math.max(4,24*e)}px`,background:s?n?"rgba(0,0,0,0.7)":"rgba(0,0,0,0.25)":n?"var(--accent)":"var(--fill-primary)",transition:"background 100ms ease",flexShrink:0}},t)})}),(0,r.jsx)("span",{style:{fontSize:"var(--text-caption2)",color:s?"rgba(0,0,0,0.6)":"var(--text-tertiary)",fontVariantNumeric:"tabular-nums",flexShrink:0,minWidth:28,textAlign:"right"},children:(o=Math.floor(g/60),i=Math.floor(g%60),`${o}:${i.toString().padStart(2,"0")}`)})]})}function nT({msgs:e,isActive:t}){let[a,s]=(0,n.useState)(!1),o=e.every(e=>e.content.startsWith("Used ")),i=t&&!o?`${e.length} tool${1!==e.length?"s":""} running…`:`${e.length} tool${1!==e.length?"s":""} used`;return(0,r.jsxs)("div",{className:"px-[var(--space-4)] mb-[var(--space-1)]",children:[(0,r.jsxs)("button",{onClick:()=>s(e=>!e),className:"flex items-center gap-[var(--space-2)] py-[5px] px-[var(--space-3)] rounded-full bg-[var(--fill-secondary)] border border-[var(--separator)] text-[length:var(--text-caption1)] text-[var(--text-secondary)] cursor-pointer transition-[background] duration-150 ease-in-out hover:bg-[var(--fill-tertiary)]",children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-60",children:(0,r.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),i,t&&!o&&(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--system-blue)] animate-[jinn-pulse_1.4s_infinite]"}),(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:`transition-transform duration-150 ease-in-out opacity-50 ${a?"rotate-180":"rotate-0"}`,children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),a&&(0,r.jsx)("div",{className:"flex flex-wrap gap-[var(--space-1)] mt-[var(--space-1)] pl-[var(--space-1)]",children:e.map(e=>(0,r.jsx)("span",{className:"inline-flex items-center gap-1 py-0.5 px-2 rounded-full bg-[var(--fill-tertiary)] border border-[var(--separator)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:e.toolCall},e.id))})]})}function nL(e){let t,n=[],a=/\[([^\]]+)\]\(([^)]+)\)|(https?:\/\/[^\s<]+[^\s<.,;:!?)}\]'"])|(\*\*(.+?)\*\*)|(`([^`]+)`)|\*([^*]+)\*/g,s=0;for(;null!==(t=a.exec(e));)t.index>s&&n.push(e.slice(s,t.index)),t[1]&&t[2]?n.push((0,r.jsx)("a",{href:t[2],target:"_blank",rel:"noopener noreferrer",className:"text-[var(--system-blue)] underline underline-offset-2",children:t[1]},t.index)):t[3]?n.push((0,r.jsx)("a",{href:t[3],target:"_blank",rel:"noopener noreferrer",className:"text-[var(--system-blue)] underline underline-offset-2",children:t[3]},t.index)):t[4]?n.push((0,r.jsx)("strong",{className:"font-[var(--weight-bold)]",children:t[5]},t.index)):t[6]?n.push((0,r.jsx)("code",{className:"bg-[var(--fill-secondary)] border border-[var(--separator)] rounded-[5px] py-px px-[5px] text-[0.88em] font-['SF_Mono',Menlo,monospace] text-[var(--accent)]",children:t[7]},t.index)):t[8]&&n.push((0,r.jsx)("em",{className:"italic opacity-[0.85]",children:t[8]},t.index)),s=t.index+t[0].length;return s<e.length&&n.push(e.slice(s)),1===n.length?n[0]:(0,r.jsx)(r.Fragment,{children:n})}function nA({code:e,keyProp:t}){let[a,s]=(0,n.useState)(!1);return(0,r.jsxs)("div",{className:"relative my-2",children:[(0,r.jsx)("button",{onClick:function(){navigator.clipboard.writeText(e).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})},"aria-label":"Copy code",className:"absolute top-2 right-2 py-0.5 px-2 text-[11px] rounded-[var(--radius-sm)] bg-[var(--fill-secondary)] text-[var(--text-secondary)] border border-[var(--separator)] cursor-pointer",children:a?"Copied!":"Copy"}),(0,r.jsx)("pre",{className:"code-block bg-[var(--fill-tertiary)] border border-[var(--separator)] rounded-[var(--radius-md)] py-[var(--space-3)] px-[var(--space-4)] overflow-x-auto text-[13px] leading-normal font-['SF_Mono',Menlo,monospace] text-[var(--text-primary)]",children:(0,r.jsx)("code",{children:e})})]},t)}function nP(e){return/^\|[\s:|-]+\|$/.test(e.trim())}function n_(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(e=>e.trim())}function nO({headerLine:e,rows:t,keyProp:n}){let a=n_(e),s=t.map(n_);return(0,r.jsx)("div",{className:"my-2.5 rounded-[10px] border border-[var(--separator)] overflow-hidden",children:(0,r.jsx)("div",{className:"overflow-x-auto [WebkitOverflowScrolling:touch]",children:(0,r.jsxs)("table",{className:"border-collapse text-[length:var(--text-footnote)] leading-[1.6] w-full min-w-max",children:[(0,r.jsx)("thead",{children:(0,r.jsx)("tr",{className:"bg-[var(--fill-tertiary)]",children:a.map((e,t)=>(0,r.jsx)("th",{className:"text-left py-2.5 px-4 font-semibold text-[var(--text-primary)] border-b border-[var(--separator)] max-w-[280px] break-words",children:nL(e)},t))})}),(0,r.jsx)("tbody",{children:s.map((e,t)=>(0,r.jsx)("tr",{className:t%2==1?"bg-[var(--fill-quaternary,transparent)]":"bg-transparent",children:e.map((e,n)=>(0,r.jsx)("td",{className:`py-2.5 px-4 text-[var(--text-primary)] max-w-[280px] break-words ${t<s.length-1?"border-b border-[var(--separator)]":""}`,children:nL(e)},n))},t))})]})})},n)}function nz(e){if(!e)return null;let t=e.split("\n"),n=[],a=!1,s=[];for(let e=0;e<t.length;e++){let o=t[e];if(o.startsWith("```")){a?(a=!1,n.push((0,r.jsx)(nA,{keyProp:e,code:s.join("\n")},e))):a=!0,s=[];continue}if(a){s.push(o);continue}if(o.trim().startsWith("|")&&o.trim().endsWith("|")&&e+1<t.length&&nP(t[e+1])){e++;let a=[];for(;e+1<t.length&&t[e+1].trim().startsWith("|")&&t[e+1].trim().endsWith("|")&&!nP(t[e+1]);)e++,a.push(t[e]);n.push((0,r.jsx)(nO,{keyProp:e,headerLine:o,rows:a},`table-${e}`));continue}if(""===o.trim()){n.push((0,r.jsx)("div",{className:"h-1.5"},`space-${e}`));continue}if(o.match(/^[-*] /)){n.push((0,r.jsxs)("div",{className:"flex gap-[var(--space-2)] mb-0.5",children:[(0,r.jsx)("span",{className:"text-[var(--accent)] shrink-0 mt-px",children:"•"}),(0,r.jsx)("span",{children:nL(o.slice(2))})]},e));continue}if(o.match(/^\d+\. /)){let t=o.match(/^(\d+)\. /)?.[1];n.push((0,r.jsxs)("div",{className:"flex gap-[var(--space-2)] mb-0.5",children:[(0,r.jsxs)("span",{className:"text-[var(--accent)] shrink-0 font-[var(--weight-semibold)] min-w-4",children:[t,"."]}),(0,r.jsx)("span",{children:nL(o.replace(/^\d+\. /,""))})]},e));continue}if(o.startsWith("### ")){n.push((0,r.jsx)("div",{className:"font-[var(--weight-semibold)] text-[length:var(--text-footnote)] mt-[var(--space-2)] mb-0.5",children:nL(o.slice(4))},e));continue}if(o.startsWith("## ")){n.push((0,r.jsx)("div",{className:"font-[var(--weight-bold)] text-[length:var(--text-subheadline)] mt-[var(--space-3)] mb-[3px]",children:nL(o.slice(3))},e));continue}if(o.startsWith("# ")){n.push((0,r.jsx)("div",{className:"font-[var(--weight-bold)] text-[length:var(--text-body)] mt-[var(--space-3)] mb-[var(--space-1)]",children:nL(o.slice(2))},e));continue}n.push((0,r.jsx)("div",{className:"mb-px",children:nL(o)},e))}return a&&s.length>0&&n.push((0,r.jsx)(nA,{keyProp:999,code:s.join("\n")},"trailing-code")),(0,r.jsx)(r.Fragment,{children:n})}function n$(e){let t=new Date,r=new Date(e),n=t.toDateString()===r.toDateString(),a=new Date(t);a.setDate(a.getDate()-1);let s=a.toDateString()===r.toDateString(),o=r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return n?`Today ${o}`:s?`Yesterday ${o}`:r.toLocaleDateString("en-US",{month:"short",day:"numeric"})+` ${o}`}function nF(e,t){return 0===t||e[t].timestamp-e[t-1].timestamp>3e5}function nU(e,t){let n=e.filter(e=>"image"===e.type),a=e.filter(e=>"audio"===e.type),s=e.filter(e=>"file"===e.type);return(0,r.jsxs)(r.Fragment,{children:[n.map((e,t)=>(0,r.jsx)("div",{className:"mt-[var(--space-2)] rounded-[var(--radius-lg)] overflow-hidden max-w-[280px]",children:(0,r.jsx)("img",{src:e.url,alt:e.name||"Image",className:"w-full block rounded-[var(--radius-lg)] cursor-pointer",onClick:()=>window.open(e.url,"_blank")})},`img-${t}`)),a.map((e,n)=>(0,r.jsx)("div",{className:"mt-[var(--space-2)]",children:(0,r.jsx)(nE,{src:e.url,duration:e.duration||0,waveform:e.waveform||[],isUser:t})},`audio-${n}`)),s.map((e,n)=>(0,r.jsx)("div",{className:"mt-[var(--space-2)]",children:(0,r.jsx)(nI,{name:e.name||"File",size:e.size,mimeType:e.mimeType,url:e.url,isUser:t})},`file-${n}`))]})}function nH({messages:e,loading:t,streamingText:a}){let s=(0,n.useRef)(null),o=(0,n.useRef)(null),i=(0,n.useRef)(null),l=(0,n.useRef)(null),c=(0,n.useRef)(0),d=(0,n.useRef)(!0),[u,p]=(0,n.useState)(!1),f=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{let e=s.current,t=o.current;if(!e||!t)return;let r=new IntersectionObserver(([e])=>{d.current=e.isIntersecting,clearTimeout(f.current),f.current=setTimeout(()=>{p(!e.isIntersecting)},100)},{root:t,rootMargin:"0px 0px 80px 0px",threshold:0});return r.observe(e),()=>{r.disconnect(),clearTimeout(f.current)}},[]),(0,n.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(()=>{d.current&&s.current&&s.current.scrollIntoView({behavior:"auto"})});return t.observe(e),()=>t.disconnect()},[]),(0,n.useLayoutEffect)(()=>{if(0===e.length){c.current=0,l.current=null;return}let t=e[0]?.id||null,r=null!==l.current&&t!==l.current;(0===c.current&&e.length>0||r)&&(o.current&&(o.current.scrollTop=o.current.scrollHeight),d.current=!0,p(!1)),c.current=e.length,l.current=t},[e]);let m=(0,n.useCallback)(()=>{o.current&&(o.current.scrollTop=o.current.scrollHeight),d.current=!0,p(!1)},[]);return 0!==e.length||t?(0,r.jsxs)("div",{ref:o,className:"chat-messages-scroll relative flex-1 overflow-y-auto overflow-x-hidden bg-[var(--bg)] min-h-0",children:[(0,r.jsxs)("div",{ref:i,className:"py-[var(--space-3)] pb-[var(--space-6)]",children:[(function(e){let t=[],r=0;for(;r<e.length;)if("assistant"===e[r].role&&e[r].toolCall){let n=[],a=r;for(;r<e.length&&"assistant"===e[r].role&&e[r].toolCall;)n.push(e[r]),r++;t.push({kind:"tool-group",msgs:n,startIndex:a})}else t.push({kind:"message",msg:e[r],index:r}),r++;return t})(e).map(n=>{if("tool-group"===n.kind){let a=n.msgs[0],s=nF(e,n.startIndex),o=n.startIndex>0?e[n.startIndex-1]:null,i=t&&n.startIndex+n.msgs.length===e.length;return(0,r.jsxs)("div",{children:[s&&(0,r.jsx)("div",{className:"text-center py-[var(--space-3)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:n$(a.timestamp)}),!s&&o&&(0,r.jsx)("div",{className:"assistant"!==o.role?"h-[var(--space-4)]":"h-[var(--space-1)]"}),(0,r.jsx)(nT,{msgs:n.msgs,isActive:i})]},`tg-${n.startIndex}`)}let{msg:a,index:s}=n,o="user"===a.role,i="notification"===a.role,l=nF(e,s),c=a.media||function(e){let t,r=[],n=/!\[([^\]]*)\]\((https?:\/\/[^)]+\.(jpg|jpeg|png|gif|webp|svg)(\?[^)]*)?)\)/gi;for(;null!==(t=n.exec(e));)r.push({type:"image",url:t[2],name:t[1]||"Image"});let a=/(?<!\]\()https?:\/\/\S+\.(jpg|jpeg|png|gif|webp)(\?\S*)?\b/gi;for(;null!==(t=a.exec(e));){let e=t[0];r.find(t=>t.url===e)||r.push({type:"image",url:e})}let s=/https?:\/\/\S+\.(mp3|wav|ogg|m4a|aac)(\?\S*)?\b/gi;for(;null!==(t=s.exec(e));)r.push({type:"audio",url:t[0],name:t[0].split("/").pop()});return r}(a.content),d=a.content;return c.length>0&&!a.media&&(c.forEach(e=>{d=(d=d.replace(e.url,"")).replace(/!\[[^\]]*\]\([^)]+\)/g,"")}),d=d.trim()),a.media&&a.media.length>0&&d.startsWith("[")&&d.endsWith("]")&&(d=""),(0,r.jsxs)("div",{children:[l&&(0,r.jsx)("div",{className:"text-center py-[var(--space-3)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:n$(a.timestamp)}),!l&&s>0&&(0,r.jsx)("div",{className:e[s-1].role!==a.role?"h-[var(--space-4)]":"h-[var(--space-1)]"}),i&&(0,r.jsx)("div",{className:"flex justify-center px-[var(--space-4)] mb-[var(--space-1)]",children:(0,r.jsxs)("div",{className:"notification-msg-bubble flex items-start gap-[var(--space-2)] py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-md)] bg-[var(--fill-secondary)] border border-dashed border-[var(--separator)] text-[var(--text-secondary)] text-[length:var(--text-caption1)] leading-[var(--leading-relaxed)] max-w-[85%]",children:[(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"shrink-0 mt-0.5 opacity-60",children:[(0,r.jsx)("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),(0,r.jsx)("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})]}),(0,r.jsx)("span",{children:nz(d)})]})}),o&&(0,r.jsxs)("div",{className:"flex flex-col items-end px-[var(--space-4)] mb-[var(--space-1)]",children:[d&&(0,r.jsx)("div",{className:"user-msg-bubble py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-lg)_var(--radius-lg)_var(--radius-sm)_var(--radius-lg)] bg-[var(--accent)] text-[var(--accent-contrast)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)] font-[var(--weight-medium)] shadow-[var(--shadow-subtle)]",children:nz(d)}),c.length>0&&(0,r.jsx)("div",{className:"user-msg-bubble",children:nU(c,!0)})]}),!o&&!i&&(0,r.jsx)("div",{className:"assistant-msg-row flex justify-start px-[var(--space-4)] mb-[var(--space-1)]",children:(0,r.jsxs)("div",{className:"assistant-msg-bubble flex flex-col",children:[d&&(0,r.jsx)("div",{className:"py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-sm)_var(--radius-lg)_var(--radius-lg)_var(--radius-lg)] bg-[var(--material-thin)] border border-[var(--separator)] text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)]",children:nz(d)}),c.length>0&&nU(c,!1)]})})]},a.id||s)}),a&&(0,r.jsx)("div",{className:"assistant-msg-row flex justify-start px-[var(--space-4)] mb-[var(--space-1)]",children:(0,r.jsx)("div",{className:"assistant-msg-bubble flex flex-col",children:(0,r.jsx)("div",{className:"py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-sm)_var(--radius-lg)_var(--radius-lg)_var(--radius-lg)] bg-[var(--material-thin)] border border-[var(--separator)] text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)]",children:nz(function(e){let t=e,r=(t.match(/```/g)||[]).length;if(r%2!=0&&(t+="\n```"),r%2==0){let e=t.replace(/```[\s\S]*?```/g,"");(e.match(/`/g)||[]).length%2!=0&&(t+="`"),(e.match(/\*\*/g)||[]).length%2!=0&&(t+="**")}return t}(a))})})}),t&&!a&&e.length>0&&(0,r.jsxs)("div",{className:"flex items-center gap-1.5 py-1.5 px-[var(--space-4)] mt-[var(--space-1)]",children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--accent)] animate-[jinn-pulse_1.4s_infinite] shrink-0"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)]",children:"Thinking"})]}),(0,r.jsx)("div",{ref:s})]}),u&&(0,r.jsxs)("button",{onClick:m,"aria-label":"Scroll to bottom",className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex items-center gap-1.5 py-1.5 px-3 rounded-full bg-[var(--material-thick)] border border-[var(--separator)] text-[var(--text-secondary)] text-[length:var(--text-caption1)] shadow-[var(--shadow-elevated)] cursor-pointer transition-opacity duration-150 hover:bg-[var(--fill-secondary)]",children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})}),"New messages"]}),(0,r.jsx)("style",{children:`
|
|
2
|
+
@keyframes jinn-pulse {
|
|
3
|
+
0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }
|
|
4
|
+
40% { opacity: 1; transform: scale(1); }
|
|
5
|
+
}
|
|
6
|
+
.assistant-msg-bubble { max-width: 100%; overflow-wrap: break-word; word-break: break-word; }
|
|
7
|
+
.user-msg-bubble { max-width: 90%; overflow-wrap: break-word; word-break: break-word; }
|
|
8
|
+
.notification-msg-bubble { overflow-wrap: break-word; word-break: break-word; }
|
|
9
|
+
.assistant-msg-row { padding: 0 var(--space-2) !important; }
|
|
10
|
+
@media (min-width: 1024px) {
|
|
11
|
+
.assistant-msg-bubble { max-width: 75%; }
|
|
12
|
+
.user-msg-bubble { max-width: 75%; }
|
|
13
|
+
.assistant-msg-row { padding: 0 var(--space-4) !important; }
|
|
14
|
+
}
|
|
15
|
+
/* User message contrast fixes — ensure all child elements are visible on accent background */
|
|
16
|
+
.user-msg-bubble code {
|
|
17
|
+
background: rgba(255,255,255,0.2) !important;
|
|
18
|
+
border-color: rgba(255,255,255,0.3) !important;
|
|
19
|
+
color: inherit !important;
|
|
20
|
+
}
|
|
21
|
+
.user-msg-bubble .code-block,
|
|
22
|
+
.user-msg-bubble pre {
|
|
23
|
+
background: rgba(0,0,0,0.2) !important;
|
|
24
|
+
border-color: rgba(255,255,255,0.15) !important;
|
|
25
|
+
color: rgba(255,255,255,0.95) !important;
|
|
26
|
+
}
|
|
27
|
+
.user-msg-bubble a {
|
|
28
|
+
color: inherit !important;
|
|
29
|
+
text-decoration-color: rgba(255,255,255,0.6) !important;
|
|
30
|
+
}
|
|
31
|
+
.user-msg-bubble strong { color: inherit !important; }
|
|
32
|
+
.user-msg-bubble em { color: inherit !important; opacity: 0.9; }
|
|
33
|
+
.user-msg-bubble span { color: inherit !important; }
|
|
34
|
+
.user-msg-bubble div { color: inherit !important; }
|
|
35
|
+
.user-msg-bubble th, .user-msg-bubble td { color: inherit !important; }
|
|
36
|
+
.user-msg-bubble table { border-color: rgba(255,255,255,0.2) !important; }
|
|
37
|
+
.user-msg-bubble th { border-color: rgba(255,255,255,0.2) !important; }
|
|
38
|
+
.user-msg-bubble td { border-color: rgba(255,255,255,0.15) !important; }
|
|
39
|
+
.user-msg-bubble tr { background: transparent !important; }
|
|
40
|
+
.user-msg-bubble thead tr { background: rgba(255,255,255,0.1) !important; }
|
|
41
|
+
/* Selection visibility for user messages */
|
|
42
|
+
.user-msg-bubble ::selection {
|
|
43
|
+
background: rgba(255,255,255,0.35);
|
|
44
|
+
color: inherit;
|
|
45
|
+
}
|
|
46
|
+
.user-msg-bubble ::-moz-selection {
|
|
47
|
+
background: rgba(255,255,255,0.35);
|
|
48
|
+
color: inherit;
|
|
49
|
+
}
|
|
50
|
+
`})]}):(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-tertiary)]",children:"Start a conversation"}),(0,r.jsx)("div",{className:"text-[length:var(--text-footnote)] text-[var(--text-quaternary)] mt-[var(--space-2)]",children:"Send a message or use /new to begin"})]})})}function nW({attachments:e,onRemove:t}){return 0===e.length?null:(0,r.jsx)("div",{style:{display:"flex",gap:"var(--space-2)",padding:"var(--space-2) var(--space-3)",overflowX:"auto",overflowY:"hidden"},children:e.map((e,n)=>(0,r.jsxs)("div",{style:{position:"relative",width:56,height:56,flexShrink:0,borderRadius:"var(--radius-sm)",overflow:"hidden",background:"var(--fill-tertiary)",border:"1px solid var(--separator)"},children:["image"===e.type?(0,r.jsx)("img",{src:e.url,alt:e.name||"Preview",style:{width:"100%",height:"100%",objectFit:"cover"}}):(0,r.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,padding:4},children:["audio"===e.type?(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M9 18V5l12-2v13"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("circle",{cx:"18",cy:"16",r:"3"})]}):(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"}),(0,r.jsx)("polyline",{points:"13 2 13 9 20 9"})]}),(0,r.jsx)("span",{style:{fontSize:8,color:"var(--text-quaternary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%",textAlign:"center"},children:e.name?.split(".").pop()?.toUpperCase()||e.type.toUpperCase()})]}),(0,r.jsx)("button",{onClick:()=>t(n),"aria-label":"Remove attachment",style:{position:"absolute",top:2,right:2,width:18,height:18,borderRadius:"50%",background:"rgba(0,0,0,0.6)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:11,lineHeight:1,padding:0},children:(0,r.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",children:[(0,r.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,r.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},n))})}function nK({open:e,progress:t,onDownload:n,onCancel:a}){if(!e)return null;let s=null!==t;return(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 z-[60] flex items-center justify-center",onClick:s?void 0:a,children:(0,r.jsxs)("div",{className:"bg-[var(--bg)] rounded-[var(--radius-lg)] p-[var(--space-6)] max-w-[400px] w-[90%] shadow-[var(--shadow-overlay)]",onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("div",{className:"w-12 h-12 rounded-[var(--radius-md)] bg-[var(--fill-secondary)] flex items-center justify-center mb-[var(--space-4)]",children:(0,r.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"}),(0,r.jsx)("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),(0,r.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"23"}),(0,r.jsx)("line",{x1:"8",y1:"23",x2:"16",y2:"23"})]})}),(0,r.jsx)("h3",{className:"text-[length:var(--text-headline)] font-[var(--weight-bold)] text-[var(--text-primary)] mb-[var(--space-2)]",children:"Enable voice input?"}),(0,r.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-secondary)] mb-[var(--space-5)] leading-[var(--leading-relaxed)]",children:"This will download a speech recognition model (~500MB). Transcription runs locally on your server — no data leaves your network."}),s&&(0,r.jsxs)("div",{className:"mb-[var(--space-5)]",children:[(0,r.jsxs)("div",{className:"flex justify-between mb-[var(--space-2)] text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:[(0,r.jsx)("span",{children:"Downloading model…"}),(0,r.jsxs)("span",{children:[t,"%"]})]}),(0,r.jsx)("div",{className:"h-1.5 rounded-[3px] bg-[var(--fill-tertiary)] overflow-hidden",children:(0,r.jsx)("div",{className:"h-full rounded-[3px] bg-[var(--accent)] transition-[width] duration-300 ease-in-out",style:{width:`${t}%`}})})]}),(0,r.jsxs)("div",{className:"flex gap-[var(--space-3)] justify-end",children:[!s&&(0,r.jsx)("button",{onClick:a,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] text-[var(--text-primary)] border-none cursor-pointer text-[length:var(--text-body)]",children:"Cancel"}),(0,r.jsx)("button",{onClick:n,disabled:s,className:`px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] border-none text-[length:var(--text-body)] font-[var(--weight-semibold)] ${s?"bg-[var(--fill-tertiary)] text-[var(--text-tertiary)] cursor-default":"bg-[var(--accent)] text-black cursor-pointer"}`,children:s?"Downloading…":"Download"})]})]})})}function nB({analyser:e,width:t=64,height:a=32,color:s="var(--system-red)"}){let o=(0,n.useRef)(null),i=(0,n.useRef)(0);return(0,n.useEffect)(()=>{let r=o.current;if(!r||!e)return;let n=r.getContext("2d");if(!n)return;let l=e.frequencyBinCount,c=new Uint8Array(l),d=(t-22)/12;return!function r(){i.current=requestAnimationFrame(r),e.getByteFrequencyData(c),n.clearRect(0,0,t,a);for(let e=0;e<12;e++){let t=Math.max(3,c[Math.floor(e/12*(.6*l))]/255*a),r=e*(d+2),o=(a-t)/2;n.fillStyle=s,n.beginPath(),n.roundRect(r,o,d,t,1.5),n.fill()}}(),()=>{cancelAnimationFrame(i.current)}},[e,t,a,s]),(0,r.jsx)("canvas",{ref:o,width:t,height:a,style:{width:t,height:a,display:"block"}})}let nq=[{name:"new",description:"Start a new chat session"},{name:"status",description:"Show current session info"}];async function nV(e){let t,r=e.type.startsWith("image/"),n=e.type.startsWith("audio/");if(r)t=await new Promise((t,r)=>{let n=new Image,a=URL.createObjectURL(e);n.onload=()=>{URL.revokeObjectURL(a);let{width:s,height:o}=n;if(s>1200||o>1200){let e=1200/Math.max(s,o);s=Math.round(s*e),o=Math.round(o*e)}let i=document.createElement("canvas");i.width=s,i.height=o;let l=i.getContext("2d");if(!l)return void r(Error("no canvas context"));l.drawImage(n,0,0,s,o);let c=e.size>5e4?"image/jpeg":"image/png";t(i.toDataURL(c,"image/jpeg"===c?.85:void 0))},n.onerror=()=>{URL.revokeObjectURL(a),r(Error("image load failed"))},n.src=a});else t=await new Promise((t,r)=>{let n=new FileReader;n.onloadend=()=>t(n.result),n.onerror=r,n.readAsDataURL(e)});return{type:r?"image":n?"audio":"file",url:t,name:e.name,mimeType:e.type,size:e.size,file:e}}function nG({disabled:e,loading:t,onSend:a,onInterrupt:o,onNewSession:i,onStatusRequest:l,skillsVersion:c,events:d,droppedFiles:u,onDroppedFilesConsumed:p,focusTrigger:f,onShortcutsClick:m}){let[x,h]=(0,n.useState)(""),[v,b]=(0,n.useState)([]),[y,w]=(0,n.useState)(!1),[j,k]=(0,n.useState)(""),[C,N]=(0,n.useState)(0),[S,M]=(0,n.useState)(nq),[D,R]=(0,n.useState)(!1),[I,E]=(0,n.useState)(""),[T,L]=(0,n.useState)(0),[A,P]=(0,n.useState)([]),_=(0,n.useRef)(null),O=(0,n.useRef)(null);(0,n.useEffect)(()=>{f&&f>0&&_.current?.focus()},[f]);let z=(0,n.useRef)(new Map),$=function(e,t){let[r,a]=(0,n.useState)("idle"),[o,i]=(0,n.useState)(null),[l,c]=(0,n.useState)(null),[d,u]=(0,n.useState)(null),[p,f]=(0,n.useState)(["en"]),[m,x]=(0,n.useState)(null),[h,g]=(0,n.useState)(()=>localStorage.getItem("stt-language")||"en"),v=(0,n.useRef)(h);v.current=h;let b=(0,n.useRef)(null),y=(0,n.useRef)(null),w=(0,n.useRef)(null),j=(0,n.useRef)([]),k=(0,n.useRef)(null),C=(0,n.useRef)(null),N=(0,n.useRef)(t);N.current=t,(0,n.useEffect)(()=>{if(!e||0===e.length)return;let t=e[e.length-1];if(!t.event.startsWith("stt:"))return;let r=t.payload;"stt:download:progress"===t.event&&c(Number(r.progress)||0),"stt:download:complete"===t.event&&(c(null),i(!0),a("idle")),"stt:download:error"===t.event&&(c(null),a("idle"))},[e]);let S=(0,n.useCallback)(()=>{w.current?.getTracks().forEach(e=>e.stop()),w.current=null,y.current?.close().catch(()=>{}),y.current=null,u(null),b.current=null},[]);(0,n.useEffect)(()=>()=>{k.current&&clearTimeout(k.current),b.current?.state==="recording"&&b.current.stop(),w.current?.getTracks().forEach(e=>e.stop()),y.current?.close().catch(()=>{})},[]);let M=(0,n.useCallback)(async()=>{try{let e=await s.api.sttStatus();return i(e.available),e.downloading&&c(e.progress),e.languages?.length>0&&(f(e.languages),g(t=>{if(!e.languages.includes(t)){let t=e.languages[0];return localStorage.setItem("stt-language",t),t}return t})),e.available}catch{return i(!1),!1}},[]),D=(0,n.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});w.current=e;let t=new AudioContext;y.current=t;let r=t.createMediaStreamSource(e),n=t.createAnalyser();n.fftSize=128,r.connect(n),u(n);let o=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/mp4")?"audio/mp4":"",i=new MediaRecorder(e,o?{mimeType:o}:void 0);b.current=i,j.current=[],i.ondataavailable=e=>{e.data.size>0&&j.current.push(e.data)},i.onstop=async()=>{S(),a("transcribing");let e=new Blob(j.current,{type:i.mimeType||"audio/webm"});if(j.current=[],0===e.size){a("idle"),C.current?.(null),C.current=null;return}try{let t=(await s.api.sttTranscribe(e,v.current)).text||null;a("idle"),x(null),C.current?(C.current(t),C.current=null):t&&N.current&&N.current(t)}catch(t){let e=t instanceof Error?t.message:"Transcription failed";x(e),a("error"),C.current&&(C.current(null),C.current=null)}},i.start(5e3),a("recording"),k.current=setTimeout(()=>{b.current?.state==="recording"&&b.current.stop()},18e5)}catch{S(),a("idle")}},[S]),R=(0,n.useCallback)(async()=>{"recording"===r||"transcribing"===r||("error"===r&&(x(null),a("idle")),await M()?await D():a("no-model"))},[r,M,D]),I=(0,n.useCallback)(async()=>{await D()},[D]),E=(0,n.useCallback)(async()=>b.current&&"inactive"!==b.current.state?(k.current&&(clearTimeout(k.current),k.current=null),new Promise(e=>{C.current=e,b.current?.state==="recording"?b.current.stop():(S(),a("idle"),C.current=null,e(null))})):(a("idle"),null),[S]),T=(0,n.useCallback)(()=>{k.current&&(clearTimeout(k.current),k.current=null),b.current?.state==="recording"&&b.current.stop(),S(),j.current=[],a("idle")},[S]),L=(0,n.useCallback)(()=>{c(0),s.api.sttDownload().catch(()=>{c(null)})},[]),A=(0,n.useCallback)(()=>{a("idle"),c(null)},[]),P=(0,n.useCallback)(()=>{a("idle"),x(null)},[]),_=(0,n.useCallback)(()=>{g(e=>{let t=p.indexOf(e),r=p[(t+1)%p.length];return localStorage.setItem("stt-language",r),r})},[p]);return{state:r,available:o,downloadProgress:l,analyser:d,languages:p,selectedLanguage:h,error:m,cycleLanguage:_,handleMicClick:R,startRecording:I,stopRecording:E,cancelRecording:T,startDownload:L,dismissDownload:A,dismissError:P}}(d,e=>{e&&h(t=>t?t+" "+e:e)}),F=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{u&&0!==u.length&&F.current!==u&&(F.current=u,(async()=>{let e=[];for(let t of u)e.push(await nV(t));P(t=>[...t,...e]),p?.()})())},[u,p]),(0,n.useEffect)(()=>{s.api.getOrg().then(e=>{Array.isArray(e.employees)&&b(e.employees.map(e=>({name:e.name,displayName:e.displayName,department:e.department,rank:e.rank,engine:e.engine})))}).catch(()=>{})},[]),(0,n.useEffect)(()=>{s.api.getSkills().then(e=>{if(!Array.isArray(e))return;let t=e.filter(e=>!nq.some(t=>t.name===e.name)).map(e=>({name:e.name,description:e.description||"",needsEmployee:"sync"===e.name}));M([...nq,...t])}).catch(()=>{})},[c]);let U=(0,n.useCallback)(e=>{let t=x.lastIndexOf("@");-1!==t&&h(x.slice(0,t)+"@"+e+" "),w(!1),_.current?.focus()},[x]),H=(0,n.useCallback)(e=>{e.needsEmployee?(h("/"+e.name+" @"),R(!1),k(""),N(0),w(!0)):(h("/"+e.name),R(!1)),_.current?.focus()},[]);function W(){let t=x.trim(),r=A.length>0;if(!t&&!r||e)return;if("/new"===t){h(""),i();return}if("/status"===t){h(""),l();return}let n=r?[...A]:void 0;h(""),P([]),w(!1),R(!1),_.current&&(_.current.style.height="auto"),a(t,n,!1)}async function K(e){let t=e.target.files;if(!t||0===t.length)return;let r=[];for(let e=0;e<t.length;e++)r.push(await nV(t[e]));P(e=>[...e,...r]),e.target.value=""}async function B(e){let t=e.clipboardData?.items;if(t){for(let r=0;r<t.length;r++)if(t[r].type.startsWith("image/")){e.preventDefault();let n=t[r].getAsFile();if(n){let e=await nV(n);P(t=>[...t,e])}return}}}let q=(0,n.useCallback)(e=>{e&&h(t=>t?t+" "+e:e)},[]);async function V(){"recording"===$.state?(q(await $.stopRecording()??""),_.current?.focus()):"transcribing"===$.state||$.handleMicClick()}(0,n.useEffect)(()=>{_.current&&(_.current.style.height="auto",_.current.style.height=Math.min(_.current.scrollHeight,120)+"px")},[x]);let G=S.filter(e=>e.name?.toLowerCase().startsWith(I)),J=v.filter(e=>e.name?.toLowerCase().includes(j)),X=x.trim().length>0||A.length>0;return(0,r.jsxs)("div",{className:"px-3 sm:px-4 pt-[var(--space-3)] pb-[var(--space-3)] border-t border-t-[var(--separator)] bg-[var(--material-regular)] shrink-0 relative",children:[D&&G.length>0&&(0,r.jsx)("div",{className:"absolute bottom-full left-[var(--space-4)] right-[var(--space-4)] mb-1 bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[var(--shadow-lg)] max-h-60 overflow-y-auto z-10",children:G.map((e,t)=>{let n=t===T;return(0,r.jsxs)("button",{ref:e=>{n&&e&&e.scrollIntoView({block:"nearest"})},onClick:()=>H(e),className:`w-full text-left py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-footnote)] ${n?"bg-[var(--fill-secondary)]":"bg-transparent"} border-none cursor-pointer flex items-center gap-[var(--space-2)] text-[var(--text-primary)]`,children:[(0,r.jsxs)("span",{className:"font-[family-name:var(--font-mono)] font-[var(--weight-semibold)] text-[var(--accent)] text-[length:var(--text-footnote)]",children:["/",e.name]}),(0,r.jsx)("span",{className:"text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:e.description})]},e.name)})}),y&&J.length>0&&(0,r.jsx)("div",{className:"absolute bottom-full left-[var(--space-4)] right-[var(--space-4)] mb-1 bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[var(--shadow-lg)] max-h-40 overflow-y-auto z-10",children:J.slice(0,8).map((e,t)=>{let n=t===C;return(0,r.jsxs)("button",{ref:e=>{e?z.current.set(t,e):z.current.delete(t),n&&e&&e.scrollIntoView({block:"nearest"})},onClick:()=>U(e.name),className:`w-full text-left py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-footnote)] ${n?"bg-[var(--fill-secondary)]":"bg-transparent"} border-none cursor-pointer flex items-center gap-[var(--space-2)] text-[var(--text-primary)]`,children:[(0,r.jsx)(g.EmployeeAvatar,{name:e.name,size:20}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,r.jsx)("span",{className:"font-[var(--weight-semibold)]",children:e.displayName||e.name}),(0,r.jsxs)("span",{className:"font-[family-name:var(--font-mono)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:["@",e.name]})]}),e.department&&(0,r.jsxs)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] flex gap-[var(--space-2)] mt-px",children:[(0,r.jsx)("span",{children:e.department}),e.engine&&(0,r.jsx)("span",{className:"text-[var(--accent)] font-[var(--weight-medium)]",children:e.engine})]})]})]},e.name)})}),A.length>0&&(0,r.jsx)("div",{className:"mb-[var(--space-2)]",children:(0,r.jsx)(nW,{attachments:A,onRemove:function(e){P(t=>t.filter((t,r)=>r!==e))}})}),(0,r.jsxs)("div",{className:`flex items-center gap-[var(--space-2)] bg-[var(--fill-secondary)] rounded-[var(--radius-lg)] py-1.5 px-[var(--space-3)] min-h-11 transition-[border-color] duration-200 ease-in-out border ${t?"border-[var(--accent)]":"border-[var(--separator)]"}`,children:[(0,r.jsx)("button",{"aria-label":"Attach file",onClick:()=>O.current?.click(),className:"w-8 h-8 shrink-0 rounded-[var(--radius-sm)] flex items-center justify-center bg-transparent border-none cursor-pointer text-[var(--text-secondary)] mb-0",children:(0,r.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),(0,r.jsx)("input",{ref:O,type:"file",accept:"image/*,audio/*,.pdf,.doc,.docx,.txt,.csv,.json,.zip",multiple:!0,className:"hidden",onChange:K}),(0,r.jsx)("textarea",{id:"chat-textarea",ref:_,value:x,onChange:function(e){let t=e.target.value;if(h(t),t.startsWith("/")&&!t.includes(" ")){E(t.slice(1).toLowerCase()),L(0),R(!0),w(!1);return}R(!1);let r=t.lastIndexOf("@");if(-1!==r){let e=t.slice(r+1);if(!e.includes(" ")&&!e.includes("\n")){k(e.toLowerCase()),N(0),w(!0);return}}w(!1)},onKeyDown:function(e){if(!e.nativeEvent.isComposing&&229!==e.keyCode){if(D&&G.length>0){let t=G.length;if("ArrowDown"===e.key){e.preventDefault(),L(e=>(e+1)%t);return}if("ArrowUp"===e.key){e.preventDefault(),L(e=>(e-1+t)%t);return}if("Tab"===e.key||"Enter"===e.key){e.preventDefault(),H(G[T]);return}if("Escape"===e.key){e.preventDefault(),R(!1);return}}if(y&&J.length>0){let t=Math.min(J.length,8);if("ArrowDown"===e.key){e.preventDefault(),N(e=>(e+1)%t);return}if("ArrowUp"===e.key){e.preventDefault(),N(e=>(e-1+t)%t);return}if("Tab"===e.key||"Enter"===e.key){e.preventDefault(),U(J[C].name);return}if("Escape"===e.key){e.preventDefault(),w(!1);return}}"Enter"!==e.key||e.shiftKey||(e.preventDefault(),W())}},onPaste:B,placeholder:e?"Waiting for response...":"Type a message...",rows:1,disabled:e,className:`flex-1 bg-transparent border-none outline-none resize-none text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-5 max-h-30 min-h-5 h-5 p-0 m-0 ${e?"opacity-50":"opacity-100"}`,onInput:e=>{let t=e.target;t.style.height="auto",t.style.height=Math.min(t.scrollHeight,120)+"px"}}),$.languages.length>1&&(0,r.jsx)("button",{"aria-label":`STT language: ${$.selectedLanguage.toUpperCase()}. Click to switch.`,onClick:$.cycleLanguage,className:"h-6 px-1.5 shrink-0 rounded-[var(--radius-sm)] flex items-center justify-center bg-[var(--fill-tertiary)] border-none cursor-pointer text-[var(--text-secondary)] text-[11px] font-semibold font-[family-name:var(--font-mono)] tracking-[0.5px] uppercase transition-all duration-150 ease-in-out",title:`Transcription language: ${$.selectedLanguage.toUpperCase()}. Click to cycle.`,children:$.selectedLanguage}),(0,r.jsx)("button",{"aria-label":"recording"===$.state?"Stop recording":"transcribing"===$.state?"Transcribing…":"Voice input",onClick:V,disabled:"transcribing"===$.state,className:`w-8 h-8 shrink-0 flex items-center justify-center border-none transition-all duration-150 ease-in-out ${"recording"===$.state?"rounded-full bg-[var(--system-red)] text-white cursor-pointer":`rounded-[var(--radius-sm)] bg-transparent text-[var(--text-secondary)] ${"transcribing"===$.state?"cursor-wait":"cursor-pointer"}`}`,title:"recording"===$.state?"Stop recording":"transcribing"===$.state?"Transcribing…":"Voice input",children:"transcribing"===$.state?(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"animate-[stt-spin_1s_linear_infinite]",children:(0,r.jsx)("path",{d:"M12 2a10 10 0 0 1 10 10"})}):(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"}),(0,r.jsx)("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),(0,r.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"23"}),(0,r.jsx)("line",{x1:"8",y1:"23",x2:"16",y2:"23"})]})}),"recording"===$.state&&$.analyser&&(0,r.jsx)(nB,{analyser:$.analyser,width:64,height:28}),t&&o&&(0,r.jsx)("button",{onClick:o,"aria-label":"Stop",className:"w-8 h-8 rounded-full bg-[var(--system-red)] text-white border-none cursor-pointer flex items-center justify-center shrink-0 transition-all duration-150 ease-in-out",children:(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,r.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})})}),(0,r.jsx)("button",{onClick:W,disabled:!X||e,"aria-label":"Send message",className:`w-8 h-8 rounded-full border-none flex items-center justify-center shrink-0 transition-all duration-150 ease-in-out ${X?"bg-[var(--accent)] text-[var(--accent-contrast)] cursor-pointer":"bg-[var(--fill-tertiary)] text-[var(--text-quaternary)] cursor-default"}`,children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),(0,r.jsx)("polyline",{points:"5 12 12 5 19 12"})]})})]}),(0,r.jsxs)("div",{className:"hidden sm:flex text-[length:var(--text-caption2)] text-[var(--text-quaternary)] text-center mt-[var(--space-1)] justify-center gap-[var(--space-3)]",children:[(0,r.jsx)("span",{children:"Enter to send"}),(0,r.jsx)("span",{children:"/ - commands"}),(0,r.jsx)("span",{children:"@name - mention"}),m&&(0,r.jsxs)("button",{onClick:m,className:"flex items-center gap-1 text-[length:var(--text-caption2)] text-[var(--text-quaternary)] hover:text-[var(--text-tertiary)] transition-colors bg-transparent border-none cursor-pointer p-0 font-[inherit]",children:[(0,r.jsx)("kbd",{className:"rounded bg-[var(--fill-tertiary)] px-1 py-0.5 font-mono text-[10px] leading-none",children:"?"}),(0,r.jsx)("span",{children:"shortcuts"})]})]}),"error"===$.state&&$.error&&(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mt-[var(--space-2)] py-[var(--space-2)] px-[var(--space-3)] rounded-[var(--radius-sm)] text-[length:var(--text-caption1)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 12%, transparent)"},children:[(0,r.jsxs)("span",{className:"flex-1",children:["Voice input error: ",$.error]}),(0,r.jsx)("button",{onClick:$.dismissError,className:"bg-none border-none cursor-pointer text-[var(--system-red)] text-[length:var(--text-caption1)] font-semibold py-0.5 px-1.5",children:"Dismiss"})]}),(0,r.jsx)(nK,{open:"no-model"===$.state,progress:$.downloadProgress,onDownload:$.startDownload,onCancel:$.dismissDownload}),(0,r.jsx)("style",{children:`
|
|
51
|
+
@keyframes stt-spin {
|
|
52
|
+
from { transform: rotate(0deg); }
|
|
53
|
+
to { transform: rotate(360deg); }
|
|
54
|
+
}
|
|
55
|
+
`})]})}let nJ={executive:"Exec",manager:"Mgr",senior:"Sr",employee:""};function nX({employees:e,selectedEmployee:t,onSelect:a,portalName:s}){let[o,i]=(0,n.useState)(""),[l,c]=(0,n.useState)(-1),d=(0,n.useRef)(null),u=(0,n.useRef)(null),p=(0,n.useMemo)(()=>{if(!o.trim())return e;let t=o.toLowerCase();return e.filter(e=>e.name?.toLowerCase().includes(t)||e.displayName?.toLowerCase().includes(t)||e.department?.toLowerCase().includes(t))},[e,o]),f=(0,n.useMemo)(()=>{let e=new Map;for(let t of p){let r=t.department||"other";e.has(r)||e.set(r,[]),e.get(r).push(t)}return e},[p]),m=(0,n.useMemo)(()=>{let e=[];for(let t of f.values())e.push(...t);return e},[f]);(0,n.useEffect)(()=>{c(-1)},[o]),(0,n.useEffect)(()=>{if(!d.current)return;let e=d.current.querySelectorAll("[data-picker-option]")[l+1];e&&"function"==typeof e.scrollIntoView&&e.scrollIntoView({block:"nearest"})},[l]);let x=(0,n.useCallback)(e=>{"ArrowDown"===e.key?(e.preventDefault(),c(e=>Math.min(e+1,m.length-1))):"ArrowUp"===e.key?(e.preventDefault(),c(e=>Math.max(e-1,-1))):"Enter"===e.key&&(e.preventDefault(),-1===l?a(null):m[l]&&a(m[l].name))},[l,m,a]);return(0,r.jsxs)("div",{className:"flex flex-col items-center gap-3 px-4 w-full max-w-md mx-auto",children:[(0,r.jsx)("p",{className:"text-sm text-[var(--text-secondary)]",children:"Who do you want to talk to?"}),(0,r.jsx)("div",{className:"w-full",children:(0,r.jsx)("input",{ref:u,type:"text",placeholder:"Search employees...",value:o,onChange:e=>i(e.target.value),className:"w-full py-2 px-3 text-[length:var(--text-footnote)] border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] text-[var(--text-primary)] outline-none font-[inherit] placeholder:text-[var(--text-tertiary)]"})}),(0,r.jsxs)("div",{ref:d,role:"listbox",tabIndex:0,onKeyDown:x,className:"w-full max-h-[360px] overflow-y-auto rounded-[var(--radius-md)] border border-[var(--separator)] bg-[var(--fill-quaternary)]",children:[(0,r.jsxs)("div",{role:"option","aria-selected":null===t,"aria-label":s,"data-picker-option":!0,onClick:()=>a(null),onMouseEnter:()=>c(-1),className:(0,rO.cn)("flex items-center gap-3 px-3 py-2.5 cursor-pointer transition-colors border-b border-[var(--separator)]",-1===l&&"bg-[var(--fill-secondary)]",null===t?"bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]":""),children:[(0,r.jsx)("span",{className:"text-xl shrink-0",children:"🧞"}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:s})}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--accent)] bg-[color-mix(in_srgb,var(--accent)_12%,transparent)] rounded-[var(--radius-sm)] px-1.5 py-px font-[var(--weight-medium)] shrink-0",children:"COO"})]}),Array.from(f.entries()).map(([e,n])=>(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"px-3 py-1.5 text-[length:var(--text-caption2)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] uppercase tracking-wider bg-[var(--fill-tertiary)]",children:e}),n.map(e=>{let n=m.indexOf(e),s=t===e.name,o=l===n;return(0,r.jsxs)("div",{role:"option","aria-selected":s,"data-picker-option":!0,onClick:()=>a(e.name),onMouseEnter:()=>c(n),className:(0,rO.cn)("flex items-center gap-3 px-3 py-2 cursor-pointer transition-colors",o&&"bg-[var(--fill-secondary)]",s&&"bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]"),children:[(0,r.jsx)(g.EmployeeAvatar,{name:e.name,size:28}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-medium)] text-[var(--text-primary)] overflow-hidden text-ellipsis whitespace-nowrap block",children:e.displayName})}),nJ[e.rank]&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] px-1.5 py-px shrink-0",children:nJ[e.rank]}),s&&(0,r.jsx)("span",{className:"text-[var(--accent)] text-[13px] shrink-0",children:"✓"})]},e.name)})]},e)),0===p.length&&(0,r.jsxs)("div",{className:"p-4 text-center text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:["No employees match “",o,"”"]})]})]})}let nQ=(0,c.default)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]),nY=(0,c.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);var nZ=e.i(38524);function n0({sessionId:e,events:t,paused:a=!1}){let[o,i]=(0,n.useState)([]),[l,c]=(0,n.useState)(a),d=(0,n.useCallback)(async()=>{if(e)try{let t=await s.api.getSessionQueue(e);i(t)}catch{}},[e]);(0,n.useEffect)(()=>{d()},[d]),(0,n.useEffect)(()=>{if(!t.length)return;let e=t[t.length-1];if("queue:updated"===e.event){d();let t=e.payload;"boolean"==typeof t?.paused&&c(t.paused)}},[t,d]);let u=o.filter(e=>"pending"===e.status);if(!e||0===u.length)return null;async function p(t){if(e)try{await s.api.cancelQueueItem(e,t),await d()}catch{}}async function f(){if(e)try{await s.api.clearSessionQueue(e),i([])}catch{}}async function m(){if(e)try{l?(await s.api.resumeSessionQueue(e),c(!1)):(await s.api.pauseSessionQueue(e),c(!0))}catch{}}return(0,r.jsxs)("div",{className:"border-t border-[var(--separator)] px-[var(--space-4)] py-[var(--space-2)] bg-[var(--fill-quaternary)] shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-[var(--space-1)]",children:[(0,r.jsxs)("span",{className:"text-[length:var(--text-caption2)] font-semibold text-[var(--text-secondary)] uppercase tracking-[0.5px]",children:[u.length," queued ",l&&"· Paused"]}),(0,r.jsxs)("div",{className:"flex gap-[var(--space-1)]",children:[(0,r.jsx)("button",{onClick:m,title:l?"Resume queue":"Pause queue",className:"bg-transparent border-none cursor-pointer text-[var(--text-secondary)] p-0.5 flex items-center",children:l?(0,r.jsx)(nY,{size:13}):(0,r.jsx)(nQ,{size:13})}),(0,r.jsx)("button",{onClick:f,title:"Clear all queued messages",className:"bg-transparent border-none cursor-pointer text-[var(--text-secondary)] p-0.5 flex items-center",children:(0,r.jsx)(nZ.Trash2,{size:13})})]})]}),(0,r.jsx)("div",{className:"flex flex-col gap-0.5",children:u.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] px-[var(--space-2)] py-[3px] rounded-[var(--radius-sm)] bg-[var(--fill-tertiary)]",children:[(0,r.jsxs)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] min-w-4",children:[e.position,"."]}),(0,r.jsx)("span",{className:"flex-1 text-[length:var(--text-caption1)] text-[var(--text-secondary)] overflow-hidden text-ellipsis whitespace-nowrap",children:e.prompt.length>60?e.prompt.slice(0,57)+"...":e.prompt}),(0,r.jsx)("button",{onClick:()=>p(e.id),title:"Cancel this message",className:"bg-transparent border-none cursor-pointer text-[var(--text-tertiary)] p-px flex items-center shrink-0",children:(0,r.jsx)(h.X,{size:11})})]},e.id))})]})}function n1({input:e}){let[t,a]=(0,n.useState)(!1),s=JSON.stringify(e,null,2);return s.length>300?(0,r.jsxs)("div",{children:[(0,r.jsx)("button",{onClick:()=>a(e=>!e),className:"mt-1 px-2 py-0.5 text-[11px] rounded bg-white/[0.08] border border-white/[0.12] text-[var(--text-tertiary)] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:t?"collapse input":`show input (${s.length} chars)`}),t&&(0,r.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/5 rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-secondary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[400px] overflow-y-auto",children:s})]}):(0,r.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/5 rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-secondary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto",children:s})}function n2({text:e}){let[t,a]=(0,n.useState)(!1);return(0,r.jsxs)("div",{className:"mb-1.5",children:[(0,r.jsx)("button",{onClick:()=>a(e=>!e),className:"px-2 py-0.5 text-[11px] rounded bg-white/[0.06] border border-white/10 text-[var(--text-quaternary,var(--text-tertiary))] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace] italic",children:t?"hide thinking":"show thinking"}),t&&(0,r.jsx)("div",{className:"mt-1 px-3 py-2 bg-white/[0.04] border-l-2 border-white/10 text-xs leading-relaxed text-[var(--text-quaternary,var(--text-tertiary))] italic whitespace-pre-wrap break-words font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:e})]})}function n5({text:e}){let[t,a]=(0,n.useState)(!1);return e.length>500?(0,r.jsxs)("div",{children:[(0,r.jsx)("button",{onClick:()=>a(e=>!e),className:"mt-1 px-2 py-0.5 text-[11px] rounded bg-white/[0.08] border border-white/[0.12] text-[var(--text-tertiary)] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:t?"collapse output":`show output (${e.length} chars)`}),t&&(0,r.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/[0.04] rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[400px] overflow-y-auto",children:e})]}):(0,r.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/[0.04] rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[300px] overflow-y-auto",children:e||"(empty)"})}function n3({block:e}){return"thinking"===e.type?(0,r.jsx)(n2,{text:e.text||""}):"tool_use"===e.type?(0,r.jsxs)("div",{className:"mb-2 px-2.5 py-1.5 bg-[rgba(99,179,237,0.08)] border border-[rgba(99,179,237,0.2)] rounded-md",children:[(0,r.jsxs)("div",{className:"text-[11px] font-semibold text-[rgba(99,179,237,0.9)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] mb-0.5 uppercase tracking-wide",children:["tool: ",e.name]}),e.input&&Object.keys(e.input).length>0&&(0,r.jsx)(n1,{input:e.input})]}):"tool_result"===e.type?(0,r.jsxs)("div",{className:"mb-2 px-2.5 py-1.5 bg-white/[0.03] border border-white/[0.08] rounded-md",children:[(0,r.jsx)("div",{className:"text-[11px] font-semibold text-[rgba(160,160,160,0.7)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] mb-0.5 uppercase tracking-wide",children:"result"}),(0,r.jsx)(n5,{text:e.text||""})]}):(0,r.jsx)("div",{className:"whitespace-pre-wrap break-words leading-relaxed text-[var(--text-primary)] mb-1",children:e.text})}function n4({entry:e}){let t="user"===e.role;return(0,r.jsxs)("div",{className:"flex gap-2.5 py-2.5 border-b border-white/[0.04]",children:[(0,r.jsx)("div",{className:"shrink-0 w-4 text-[13px] font-bold font-[SF_Mono,Menlo,Cascadia_Code,monospace] pt-px",style:{color:t?"var(--accent)":"rgba(110, 231, 183, 0.8)"},children:t?">":"$"}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:e.content.map((e,t)=>(0,r.jsx)(n3,{block:e},t))})]})}function n8({sessionId:e}){let[t,a]=(0,n.useState)([]),[o,i]=(0,n.useState)(!0),[l,c]=(0,n.useState)(null),d=(0,n.useRef)(null);return((0,n.useEffect)(()=>{e&&(i(!0),c(null),s.api.getSessionTranscript(e).then(e=>{a(e),i(!1)}).catch(e=>{c(e instanceof Error?e.message:"Failed to load transcript"),i(!1)}))},[e]),(0,n.useEffect)(()=>{d.current?.scrollIntoView({behavior:"instant"})},[t]),o)?(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:"loading transcript..."}):l?(0,r.jsxs)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--system-red)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:["error: ",l]}):0===t.length?(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:"no transcript available"}):(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto overflow-x-hidden bg-[var(--bg-primary,var(--bg))] p-[var(--space-4)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px] leading-normal min-h-0",children:[t.map((e,t)=>(0,r.jsx)(n4,{entry:e},t)),(0,r.jsx)("div",{ref:d})]})}function n6({sessionId:e,isActive:t,onFocus:a,onSessionCreated:o,onSessionMetaChange:i,onRefresh:l,portalName:c="Jinn",subscribe:d,connectionSeq:u,skillsVersion:p,events:f,viewMode:m="chat",getOnboardingPrompt:x,isStubSession:h,onStubCleared:g,focusTrigger:v,onShortcutsClick:b}){let[y,w]=(0,n.useState)([]),[j,k]=(0,n.useState)(!1),C=(0,n.useRef)(""),[N,S]=(0,n.useState)(""),M=(0,n.useRef)(-1),[D,R]=(0,n.useState)(null),I=(0,n.useRef)(e),[E,T]=(0,n.useState)(null),[L,A]=(0,n.useState)([]),P=(0,n.useRef)(!1);(0,n.useEffect)(()=>{e||P.current&&L.length>0||s.api.getOrg().then(e=>{Array.isArray(e.employees)&&(A(e.employees.map(e=>({name:e.name,displayName:e.displayName,department:e.department,rank:e.rank}))),P.current=!0)}).catch(()=>{})},[e,L.length]),(0,n.useEffect)(()=>{I.current=e},[e]);let _=(0,n.useCallback)((e,t)=>{if(!t)return;let r=M.current;if(r<0)return;let n=e.slice(r);n.length>0&&function(e,t){try{localStorage.setItem(`${nD}${e}`,JSON.stringify(t))}catch{}}(t,n)},[]);(0,n.useEffect)(()=>d((e,t)=>{let r=I.current;if(r&&t.sessionId===r){if("session:delta"===e){let e=String(t.type||"text");if("text"===e){let e=String(t.content||"");C.current+=e,S(C.current)}else if("text_snapshot"===e){let e=String(t.content||"");e.length>=C.current.length&&(C.current=e,S(e))}else if("tool_use"===e){if(C.current){let e=C.current;C.current="",S(""),w(t=>{M.current<0&&(M.current=t.length);let n=[...t,{id:crypto.randomUUID(),role:"assistant",content:e,timestamp:Date.now()}];return _(n,r),n})}let e=String(t.toolName||"tool");w(t=>{M.current<0&&(M.current=t.length);let n=[...t,{id:crypto.randomUUID(),role:"assistant",content:`Using ${e}`,timestamp:Date.now(),toolCall:e}];return _(n,r),n})}else"tool_result"===e&&w(e=>{let t=[...e],n=t[t.length-1];return n&&"assistant"===n.role&&n.toolCall&&(t[t.length-1]={...n,content:`Used ${n.toolCall}`}),_(t,r),t})}if("session:notification"===e){let e=String(t.message||"");e&&w(t=>[...t,{id:crypto.randomUUID(),role:"notification",content:e,timestamp:Date.now()}])}if("session:interrupted"===e&&(C.current="",S("")),"session:stopped"===e&&(k(!1),S("")),"session:completed"===e){C.current="",S(""),k(!1),M.current=-1;let e=r||(t.sessionId?String(t.sessionId):null);e&&nR(e),t.result&&w(e=>{let r=[...e],n=r[r.length-1];return n&&"assistant"===n.role&&!n.toolCall&&r.pop(),[...r,{id:crypto.randomUUID(),role:"assistant",content:String(t.result),timestamp:Date.now()}]}),t.error&&!t.result&&w(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:`Error: ${t.error}`,timestamp:Date.now()}]),l?.()}}}),[d,_,l]);let O=(0,n.useCallback)(async e=>{try{let t=await s.api.getSession(e);R(t);let r={engine:t.engine?String(t.engine):void 0,engineSessionId:t.engineSessionId?String(t.engineSessionId):void 0,model:t.model?String(t.model):void 0,title:t.title?String(t.title):void 0,employee:t.employee?String(t.employee):void 0};i?.(r);let n=t.messages||t.history||[],a=Array.isArray(n)?n.map(e=>({id:crypto.randomUUID(),role:e.role||"assistant",content:String(e.content||e.text||""),timestamp:e.timestamp?Number(e.timestamp):Date.now()})):[];if("error"===t.status&&t.lastError){let e=a[a.length-1],r=`Error: ${String(t.lastError)}`;e&&"assistant"===e.role&&e.content===r||a.push({id:crypto.randomUUID(),role:"assistant",content:r,timestamp:Date.now()})}if("running"===t.status){let t=function(e){try{let t=localStorage.getItem(`${nD}${e}`);return t?JSON.parse(t):[]}catch{return[]}}(e);t.length>0?(M.current=a.length,w([...a,...t])):(M.current=a.length,w(a)),k(!0)}else nR(e),M.current=-1,w(a)}catch{w([]),R(null),M.current=-1}},[i]);(0,n.useEffect)(()=>{if(!e){w([]),k(!1),R(null),C.current="",S(""),M.current=-1,T(null);return}C.current="",S(""),k(!1),O(e)},[e,O]),(0,n.useEffect)(()=>{u&&e&&O(e)},[u,e,O]),(0,n.useEffect)(()=>{if(!e||!j)return;let t=setInterval(async()=>{try{let t=await s.api.getSession(e);"running"!==t.status&&(await O(e),k(!1))}catch{}},5e3);return()=>clearInterval(t)},[e,j,O]);let z=(0,n.useCallback)(async()=>{if(e)try{await s.api.stopSession(e)}catch{}},[e]),$=(0,n.useCallback)(async(t,r,n)=>{let a={id:crypto.randomUUID(),role:"user",content:t,timestamp:Date.now(),media:r};w(e=>(M.current=e.length+1,[...e,a])),k(!0);try{let a;if(r&&r.length>0){let e=r.filter(e=>e.file).map(e=>s.api.uploadFile(e.file));e.length>0&&(a=(await Promise.all(e)).map(e=>e.id))}let c=e;if(c&&h&&x){g?.();let e=x(t);await s.api.sendMessage(c,{message:e,attachments:a}),l?.()}else if(c)await s.api.sendMessage(c,{message:t,interrupt:n||void 0,attachments:a}),l?.();else{var i;let e,r=(i={message:t,selectedEmployee:E,attachmentIds:a},e={source:"web",prompt:i.message},i.selectedEmployee&&(e.employee=i.selectedEmployee),i.attachmentIds&&i.attachmentIds.length>0&&(e.attachments=i.attachmentIds),e),n=await s.api.createSession(r);c=String(n.id),o?.(c),l?.()}}catch(e){k(!1),w(t=>[...t,{id:crypto.randomUUID(),role:"assistant",content:`Error: ${e instanceof Error?e.message:"Failed to send message"}`,timestamp:Date.now()}])}},[e,E,h,x,g,o,l]),F=(0,n.useCallback)(async()=>{if(!e)return void w(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"No active session. Send a message to start one.",timestamp:Date.now()}]);try{let t=await s.api.getSession(e),r=["**Session Info**",`ID: \`${t.id}\``,`Status: ${t.status||"unknown"}`,t.employee?`Employee: ${t.employee}`:null,t.engine?`Engine: ${t.engine}`:null,t.model?`Model: ${t.model}`:null,t.createdAt?`Created: ${t.createdAt}`:null].filter(Boolean).join("\n");w(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:r,timestamp:Date.now()}])}catch{w(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"Failed to fetch session status.",timestamp:Date.now()}])}},[e]),U=(0,n.useCallback)(()=>{w([]),k(!1),R(null),C.current="",S(""),M.current=-1},[]),[H,W]=(0,n.useState)(!1),[K,B]=(0,n.useState)(),q=(0,n.useRef)(0),V=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),q.current++,e.dataTransfer.types.includes("Files")&&W(!0)},[]),G=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),q.current--,0===q.current&&W(!1)},[]),J=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),X=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),q.current=0,W(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&B(t)},[]);return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden",background:"var(--bg)",position:"relative"},onClick:a,onDragEnter:V,onDragLeave:G,onDragOver:J,onDrop:X,children:[H&&(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",background:"color-mix(in srgb, var(--bg) 85%, transparent)",backdropFilter:"blur(4px)",transition:"opacity 150ms ease-in-out"},children:(0,r.jsxs)("div",{style:{border:"2px dashed var(--accent)",borderRadius:"var(--radius-lg)",padding:"48px 64px",display:"flex",flexDirection:"column",alignItems:"center",gap:"12px"},children:[(0,r.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,r.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,r.jsx)("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),(0,r.jsx)("span",{style:{color:"var(--text-secondary)",fontSize:"var(--text-body)"},children:"Drop files here"})]})}),!e&&0===y.length&&"chat"===m&&(0,r.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,r.jsx)(nX,{employees:L,selectedEmployee:E,onSelect:T,portalName:c})}),"cli"===m&&e?(0,r.jsx)(n8,{sessionId:e}):e||y.length>0?(0,r.jsx)(nH,{messages:y,loading:j,streamingText:N}):null,"chat"===m&&(0,r.jsx)(n0,{sessionId:e,events:f,paused:D?.paused??!1}),"chat"===m&&(0,r.jsx)(nG,{disabled:!1,loading:j,onSend:$,onInterrupt:z,onNewSession:U,onStatusRequest:F,skillsVersion:p,events:f,droppedFiles:K,onDroppedFilesConsumed:()=>B(void 0),focusTrigger:v,onShortcutsClick:b})]})}let n7={meta:"⌘",shift:"⇧",alt:"⌥"},n9=["Navigation","Actions","Help"];function ae({shortcuts:e,onClose:t}){let a=(0,n.useRef)(null),[s,o]=(0,n.useState)(!1),i=(0,n.useCallback)(()=>{o(!0),setTimeout(()=>t(),150)},[t]);(0,n.useEffect)(()=>{function e(e){a.current&&!a.current.contains(e.target)&&i()}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[i]);let l=e.filter(e=>!1!==e.enabled),c=n9.map(e=>({category:e,items:l.filter(t=>t.category===e)})).filter(e=>e.items.length>0);return(0,r.jsxs)("div",{ref:a,role:"complementary","aria-label":"Keyboard shortcuts",className:`fixed bottom-4 right-4 z-40 w-[280px] overflow-hidden rounded-[var(--radius-lg)] border border-border bg-[var(--material-thick)] shadow-[var(--shadow-overlay)] backdrop-blur-xl transition-opacity duration-150 ${s?"opacity-0":"animate-fade-in"}`,children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2.5 border-b border-border",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground",children:"Keyboard Shortcuts"}),(0,r.jsx)("button",{onClick:i,className:"rounded-sm p-0.5 text-muted-foreground transition-colors hover:text-foreground","aria-label":"Close",children:(0,r.jsx)(h.X,{className:"size-3.5"})})]}),(0,r.jsx)("div",{className:"px-3 py-2 max-h-[60vh] overflow-y-auto",children:c.map((e,t)=>(0,r.jsxs)("div",{className:t>0?"mt-3":"",children:[(0,r.jsx)("div",{className:"mb-1.5 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:e.category}),(0,r.jsx)("div",{className:"space-y-1",children:e.items.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2 py-0.5",children:[(0,r.jsx)("kbd",{className:"inline-flex min-w-[24px] items-center justify-center rounded-[var(--radius-sm)] bg-[var(--fill-tertiary)] px-1.5 py-0.5 font-mono text-xs font-medium text-foreground",children:function(e){let t=[];for(let r of e.modifiers??[])t.push(n7[r]??r);let r=1===e.key.length?e.key.toUpperCase():e.key;return t.push(r),t.join("")}(e)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:e.description})]},e.key+(e.modifiers?.join("")??"")))})]},e.category))})]})}let at="jinn-chat-tabs",ar="jinn-chat-draft-";var an=e.i(78821),aa=e.i(97478),as=e.i(40765),ao=e.i(33941);class ai extends n.default.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("[ChatErrorBoundary]",e.message,"\nComponent stack:",t.componentStack)}render(){return this.state.error?(0,r.jsx)(i.PageLayout,{children:(0,r.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-4 p-8 text-center",children:[(0,r.jsx)("p",{className:"text-lg font-semibold text-[var(--system-red)]",children:"Chat crashed"}),(0,r.jsxs)("pre",{className:"max-w-lg overflow-auto rounded-lg bg-[var(--bg-tertiary)] p-4 text-left text-xs text-muted-foreground",children:[this.state.error.message,"\n",this.state.error.stack?.split("\n").slice(0,5).join("\n")]}),(0,r.jsx)("button",{onClick:()=>{this.setState({error:null}),window.location.reload()},className:"rounded-md bg-[var(--accent)] px-4 py-2 text-sm font-medium text-white",children:"Reload"})]})}):this.props.children}}function al(){let{settings:e}=(0,v.useSettings)(),t=e.portalName??"Ryoko",[l,c]=(0,n.useState)(null),[d,u]=(0,n.useState)("sidebar"),[f,m]=(0,n.useState)(null),[x,h]=(0,n.useState)([]),g=(0,n.useRef)(!1),[b,w]=(0,n.useState)(()=>"true"===localStorage.getItem("jinn-chat-sidebar-collapsed")),j=(0,n.useCallback)(()=>{window.innerWidth<1024?u(e=>"sidebar"===e?"chat":"sidebar"):w(e=>{let t=!e;return localStorage.setItem("jinn-chat-sidebar-collapsed",String(t)),t})},[]),[k,C]=(0,n.useState)("chat"),[N,S]=(0,n.useState)(!1),[M,D]=(0,n.useState)(!1),[R,I]=(0,n.useState)(null),[E,T]=(0,n.useState)(0),L=(0,n.useRef)(null),A=(0,n.useRef)(null),{events:P,connectionSeq:_,skillsVersion:O,subscribe:z}=(0,o.useGateway)(),$=function(){let[{tabs:e,activeIndex:t},r]=(0,n.useState)({tabs:[],activeIndex:-1});(0,n.useEffect)(()=>{r(function(){try{let t=localStorage.getItem(at);if(t){var e;return e=JSON.parse(t),0===e.tabs.length?{tabs:[],activeIndex:-1}:e.activeIndex<0||e.activeIndex>=e.tabs.length?{tabs:e.tabs,activeIndex:0}:e}}catch{}return{tabs:[],activeIndex:-1}}())},[]),(0,n.useEffect)(()=>{localStorage.setItem(at,JSON.stringify({tabs:e,activeIndex:t}))},[e,t]);let a=t>=0?e[t]:null,s=(0,n.useCallback)(e=>{r(t=>{let r=t.tabs.findIndex(t=>t.sessionId===e.sessionId);if(r>=0)return{...t,activeIndex:r};if(!e.pinned){let r=t.tabs.findIndex(e=>!e.pinned);if(r>=0){let n=[...t.tabs];return n[r]={...e,pinned:!1},{tabs:n,activeIndex:r}}}if(t.tabs.length>=12){let r=t.tabs.findIndex(e=>!e.pinned);if(r>=0){let n=[...t.tabs];return n[r]=e,{tabs:n,activeIndex:r}}}return{tabs:[...t.tabs,e],activeIndex:t.tabs.length}})},[]),o=(0,n.useCallback)(e=>{r(t=>{if(e<0||e>=t.tabs.length||t.tabs[e].pinned)return t;let r=t.tabs.map((t,r)=>r===e?{...t,pinned:!0}:t);return{...t,tabs:r}})},[]),i=(0,n.useCallback)(e=>{r(t=>{let r=t.tabs[e]?.sessionId;r&&localStorage.removeItem(ar+r);let n=t.tabs.filter((t,r)=>r!==e);if(0===n.length)return{tabs:[],activeIndex:-1};let a=t.activeIndex;return t.activeIndex===e?a=Math.min(e,n.length-1):t.activeIndex>e&&(a=t.activeIndex-1),{tabs:n,activeIndex:a}})},[]),l=(0,n.useCallback)(e=>{r(t=>e<0||e>=t.tabs.length?t:{...t,activeIndex:e})},[e.length]),c=(0,n.useCallback)((e,t)=>{r(r=>{if(e===t||e<0||e>=r.tabs.length||t<0||t>=r.tabs.length)return r;let n=[...r.tabs],[a]=n.splice(e,1);n.splice(t,0,a);let s=r.activeIndex;return r.activeIndex===e?s=t:e<r.activeIndex&&t>=r.activeIndex?s=r.activeIndex-1:e>r.activeIndex&&t<=r.activeIndex&&(s=r.activeIndex+1),{tabs:n,activeIndex:s}})},[]),d=(0,n.useCallback)(()=>{r(e=>0===e.tabs.length?e:{...e,activeIndex:(e.activeIndex+1+e.tabs.length)%e.tabs.length})},[e.length]),u=(0,n.useCallback)(()=>{r(e=>0===e.tabs.length?e:{...e,activeIndex:(e.activeIndex-1+e.tabs.length)%e.tabs.length})},[e.length]),p=(0,n.useCallback)(()=>{r(e=>({...e,activeIndex:-1}))},[]),f=(0,n.useCallback)((e,t)=>{t.trim()?localStorage.setItem(ar+e,t):localStorage.removeItem(ar+e)},[]),m=(0,n.useCallback)(e=>localStorage.getItem(ar+e)||"",[]),x=(0,n.useCallback)((e,t)=>{r(r=>{let n=r.tabs.findIndex(t=>t.sessionId===e);if(n<0)return r;let a=r.tabs[n];if(Object.keys(t).every(e=>a[e]===t[e]))return r;let s=r.tabs.map((e,r)=>r===n?{...e,...t}:e);return{...r,tabs:s}})},[]);return(0,n.useMemo)(()=>({tabs:e,activeTab:a,activeIndex:t,openTab:s,closeTab:i,switchTab:l,nextTab:d,prevTab:u,pinTab:o,moveTab:c,clearActiveTab:p,saveDraft:f,loadDraft:m,updateTabStatus:x}),[e,a,t,s,i,l,d,u,o,c,p,f,m,x])}(),F=(0,a.useSearchParams)(),U=(0,n.useRef)(!1),H=(0,n.useRef)(!1),W=(0,y.useDeleteSession)(),K=(0,y.useDuplicateSession)(),B=(0,an.useQueryClient)(),[q,V]=(0,n.useState)(!1),G=(0,n.useRef)({sessionIds:[],employeeNames:[],employeeSessionMap:{}}),J=(0,n.useCallback)(e=>{G.current=e},[]);(0,n.useEffect)(()=>{if(N||M)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){N&&L.current&&!L.current.contains(e.target)&&S(!1),M&&A.current&&!A.current.contains(e.target)&&D(!1)}},[N,M]);let X=(0,n.useCallback)((e,t)=>{navigator.clipboard.writeText(e),I(t),S(!1),setTimeout(()=>I(null),1500)},[]);function Q(){s.api.createStubSession({greeting:"Hey! 👋 Say hi when you're ready to get started.",title:"Welcome"}).then(e=>{let t=String(e.id);H.current=!0,c(t),B.invalidateQueries({queryKey:aa.queryKeys.sessions.all})}).catch(()=>{})}(0,n.useEffect)(()=>{U.current||("1"===F.get("onboarding")?(U.current=!0,Q()):s.api.getOnboarding().then(e=>{e.needed&&!U.current&&(U.current=!0,Q())}).catch(()=>{}))},[F]);let{updateTabStatus:Y}=$;(0,n.useEffect)(()=>{l&&f&&Y(l,{label:f.title||f.employee||t,employeeName:f.employee||void 0})},[l,f,t,Y]);let Z=(0,n.useCallback)(e=>{h(e.length>1?e:[])},[]),ee=(0,n.useCallback)(e=>{g.current=!1,H.current=!1,c(e),u("chat"),C("chat"),$.openTab({sessionId:e,label:"Loading...",status:"idle",unread:!1})},[$]),et=(0,n.useCallback)(()=>{g.current=!0,c(null),m(null),u("chat"),h([]),$.clearActiveTab(),T(e=>e+1)},[$]),er=(0,n.useCallback)(e=>{l||U.current||g.current||!(e.length>0)||ee(e[0].id)},[l,ee]),en=(0,n.useCallback)(async e=>{try{await W.mutateAsync(e)}catch{}l===e&&(c(null),m(null)),nR(e),$.closeTab($.tabs.findIndex(t=>t.sessionId===e)),S(!1),B.invalidateQueries({queryKey:aa.queryKeys.sessions.all})},[l,$,W,B]),ea=(0,n.useCallback)(async e=>{try{let t=await K.mutateAsync(e);t?.id&&(c(t.id),$.openTab({sessionId:t.id,label:t.title||"Duplicated Chat",status:"idle",unread:!1,pinned:!0,employeeName:t.employee||void 0}),S(!1),B.invalidateQueries({queryKey:aa.queryKeys.sessions.all}))}catch(e){window.alert(`Duplicate failed: ${e.message||"Unknown error"}`)}},[$,K,B]),es=(0,n.useCallback)(e=>{$.openTab({sessionId:e,label:"Duplicated Chat",status:"idle",unread:!1,pinned:!0}),B.invalidateQueries({queryKey:aa.queryKeys.sessions.all})},[$,B]),eo=(0,n.useCallback)(e=>{c(e),$.openTab({sessionId:e,label:"New Chat",status:"running",unread:!1,pinned:!0}),B.invalidateQueries({queryKey:aa.queryKeys.sessions.all})},[$,B]),ei=(0,n.useCallback)(e=>{m(e)},[]),el=(0,n.useCallback)(()=>{B.invalidateQueries({queryKey:aa.queryKeys.sessions.all})},[B]),ec=(0,n.useCallback)(e=>`This is your first time being activated. The user just set up ${t} and opened the web dashboard for the first time.
|
|
56
|
+
|
|
57
|
+
Read your CLAUDE.md instructions and the onboarding skill at ~/.jinn/skills/onboarding/SKILL.md, then follow the onboarding flow:
|
|
58
|
+
- Greet the user warmly and introduce yourself as ${t}
|
|
59
|
+
- Briefly explain what you can do (manage cron jobs, hire AI employees, connect to Slack, etc.)
|
|
60
|
+
- Ask the user what they'd like to set up first
|
|
61
|
+
|
|
62
|
+
The user said: "${e}"`,[t]),ed=(0,n.useCallback)(()=>{H.current=!1},[]),eu=(0,n.useCallback)(e=>{let{sessionIds:t}=G.current;if(0===t.length)return;if(!l)return void ee(1===e?t[0]:t[t.length-1]);let r=t.indexOf(l);if(-1===r)return void ee(1===e?t[0]:t[t.length-1]);let n=(r+e+t.length)%t.length;ee(t[n])},[l,ee]),ep=(0,n.useCallback)(()=>{let{employeeNames:e,employeeSessionMap:t}=G.current;if(0===e.length)return;let r=f?.employee??null,n=((r?e.indexOf(r):-1)+1)%e.length,a=e[n],s=t[a]?.[0];s&&ee(s)},[f,ee]),ef=(0,n.useCallback)(async()=>{if(l)try{let e=((await s.api.getSession(l)).messages??[]).filter(e=>"user"===e.role||"assistant"===e.role).map(e=>`[${e.role}]: ${e.content}`).join("\n\n");await navigator.clipboard.writeText(e),I("chat"),setTimeout(()=>I(null),1500)}catch{}},[l]),em=(0,n.useMemo)(()=>[{key:"n",category:"Actions",description:"New chat",action:et},{key:"j",category:"Navigation",description:"Next session",action:()=>eu(1)},{key:"k",category:"Navigation",description:"Previous session",action:()=>eu(-1)},{key:"e",category:"Navigation",description:"Next employee",action:ep},{key:"Backspace",category:"Actions",description:"Delete session",action:()=>{l&&window.confirm("Delete this session?")&&en(l)},enabled:!!l},{key:"Delete",category:"Actions",description:"Delete session",action:()=>{l&&window.confirm("Delete this session?")&&en(l)},enabled:!!l},{key:"c",category:"Actions",description:"Copy chat",action:ef,enabled:!!l},{key:"Escape",category:"Navigation",description:"Close overlay",action:()=>{q?V(!1):N&&S(!1)}},{key:"/",category:"Actions",description:"Focus chat",action:()=>{let e=document.getElementById("chat-textarea");e&&e.focus()}},{key:"?",category:"Help",description:"Keyboard shortcuts",action:()=>V(e=>!e)},{key:"w",modifiers:["meta"],category:"Actions",description:"Close tab",action:()=>{$.activeIndex>=0&&$.closeTab($.activeIndex)}},{key:"[",modifiers:["meta","shift"],category:"Navigation",description:"Previous tab",action:()=>$.prevTab()},{key:"]",modifiers:["meta","shift"],category:"Navigation",description:"Next tab",action:()=>$.nextTab()},...Array.from({length:9},(e,t)=>({key:String(t+1),modifiers:["meta","alt"],category:"Navigation",description:`Tab ${t+1}`,action:()=>$.switchTab(t)}))],[et,eu,ep,ef,l,q,N,$]);!function(e,t={}){(0,n.useEffect)(()=>{function r(r){r.key;let n=document.activeElement,a=n?.tagName?.toLowerCase()??"",s="input"===a||"textarea"===a||n?.isContentEditable===!0;for(let n of e){if(!1===n.enabled||!function(e,t){let r=t.modifiers??[],n=r.includes("meta"),a=r.includes("shift"),s=r.includes("alt");return"?"===t.key?"?"===e.key&&!e.metaKey&&!e.altKey&&!e.ctrlKey:(1===e.key.length?e.key.toLowerCase():e.key)===(1===t.key.length?t.key.toLowerCase():t.key)&&n===e.metaKey&&a===e.shiftKey&&s===e.altKey&&(!e.ctrlKey||!!n)}(r,n))continue;let e=(n.modifiers??[]).length>0,a="Escape"===n.key;if((!t.isModalOpen||a)&&(!s||e||a)){r.preventDefault(),n.action();return}}}return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[e,t.isModalOpen])}(em),(0,n.useEffect)(()=>{if($.activeTab&&$.activeTab.sessionId!==l){c($.activeTab.sessionId),C("chat");return}$.activeTab||!l||g.current||(c(null),m(null),h([]))},[$.activeTab,l]);let ex=l?(0,r.jsxs)("div",{ref:L,className:"relative",children:[(0,r.jsx)("button",{onClick:()=>S(e=>!e),"aria-label":"More options",className:"flex items-center rounded-md p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,r.jsx)(p,{className:"size-[18px]"})}),N&&(0,r.jsxs)("div",{className:"absolute right-0 top-full z-[200] mt-1 min-w-[220px] overflow-hidden rounded-[var(--radius-md)] border border-border bg-[var(--material-thick)] shadow-[var(--shadow-overlay)] backdrop-blur-xl",children:[(0,r.jsx)("button",{onClick:()=>X(l,"id"),className:"block w-full px-3 py-2 text-left text-sm text-foreground transition-colors hover:bg-accent",children:"Copy Session ID"}),f?.engineSessionId&&(0,r.jsx)("button",{onClick:()=>{let e="codex"===f.engine?"codex":"claude";X(`${e} --resume ${f.engineSessionId}`,"cli")},className:"block w-full px-3 py-2 text-left text-sm text-foreground transition-colors hover:bg-accent",children:"Copy CLI Resume Command"}),(0,r.jsxs)("button",{onClick:()=>{l&&ea(l)},disabled:K.isPending,className:"flex w-full items-center gap-2 px-3 py-2 text-left text-sm text-foreground transition-colors hover:bg-accent disabled:opacity-50",children:[(0,r.jsx)(ao.Copy,{className:"size-3.5"}),(0,r.jsx)("span",{className:"flex-1",children:K.isPending?"Duplicating...":"Duplicate..."})]}),(0,r.jsx)("div",{className:"my-0.5 border-t border-border"}),(0,r.jsxs)("button",{onClick:()=>{S(!1),l&&window.confirm("Delete this session?")&&en(l)},className:"flex w-full items-center gap-2 px-3 py-2 text-left text-sm text-[var(--system-red)] transition-colors hover:bg-accent",children:[(0,r.jsx)(nZ.Trash2,{className:"size-3.5"}),(0,r.jsx)("span",{className:"flex-1",children:"Delete Session"}),(0,r.jsx)("kbd",{className:"font-mono text-[10px] text-[var(--text-quaternary)]",children:"⌫"})]})]})]}):null,eh=(0,r.jsxs)(r.Fragment,{children:[l&&(0,r.jsxs)("div",{className:"flex items-center gap-0.5 rounded-full bg-[var(--fill-tertiary)] p-0.5",children:[(0,r.jsx)("button",{onClick:()=>C("chat"),className:(0,rO.cn)("rounded-full px-2.5 py-1 text-[11px] font-medium transition-all","chat"===k?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"Chat"}),(0,r.jsx)("button",{onClick:()=>C("cli"),className:(0,rO.cn)("rounded-full px-2.5 py-1 font-mono text-[11px] font-medium transition-all","cli"===k?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"CLI"})]}),(0,r.jsx)("div",{className:"hidden lg:block",children:ex}),R&&(0,r.jsxs)("div",{className:"flex items-center gap-1 whitespace-nowrap text-xs font-medium text-[var(--accent)]",children:[(0,r.jsx)(as.Check,{className:"size-3"}),"Copied!"]})]});return(0,r.jsxs)(i.PageLayout,{mobileHeaderActions:ex,children:[(0,r.jsxs)("div",{className:"flex overflow-hidden h-full",children:[(0,r.jsx)("div",{className:"hidden h-full shrink-0 overflow-hidden lg:block",style:{width:280*!b,transition:"width 200ms ease-in-out"},children:(0,r.jsx)("div",{className:"h-full w-[280px]",children:(0,r.jsx)(nj,{selectedId:l,onSelect:ee,onNewChat:et,onDelete:en,onDuplicate:es,onSessionsLoaded:er,onEmployeeSessionsAvailable:Z,onOrderComputed:J})})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1 flex-col overflow-hidden bg-background flex",children:[(0,r.jsx)(nM,{tabs:$.tabs,activeIndex:$.activeIndex,onSwitch:$.switchTab,onClose:$.closeTab,onNew:et,onPin:$.pinTab,onMove:$.moveTab,toolbarActions:eh,sidebarCollapsed:"chat"===d||b,onToggleSidebar:j}),(0,r.jsx)("div",{className:"sidebar"===d?"flex-1 overflow-hidden lg:hidden":"hidden",children:(0,r.jsx)(nj,{selectedId:l,onSelect:ee,onNewChat:et,onDelete:en,onDuplicate:es,onSessionsLoaded:er,onEmployeeSessionsAvailable:Z,onOrderComputed:J})}),(0,r.jsx)("div",{className:(0,rO.cn)("flex-1 overflow-hidden flex flex-col","sidebar"===d?"hidden lg:flex":"flex"),children:(0,r.jsx)(n6,{sessionId:l,isActive:!0,onFocus:()=>{},onSessionCreated:eo,onSessionMetaChange:ei,onRefresh:el,portalName:t,subscribe:z,connectionSeq:_,skillsVersion:O,events:P,viewMode:k,getOnboardingPrompt:H.current?ec:void 0,isStubSession:H.current,onStubCleared:ed,focusTrigger:E,onShortcutsClick:()=>V(!0)})})]})]}),q&&(0,r.jsx)(ae,{shortcuts:em,onClose:()=>V(!1)})]})}e.s(["default",0,function(){return(0,r.jsx)(ai,{children:(0,r.jsx)(n.Suspense,{fallback:(0,r.jsx)(i.PageLayout,{children:(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:"Loading..."})}),children:(0,r.jsx)(al,{})})})}],91549)}]);
|