@overlordai/server 1.0.134 → 1.0.135

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/adapters/help-text.js +1 -1
  2. package/package.json +4 -4
  3. package/public/assets/{AccessTokensPage-BoVgUrzP.js → AccessTokensPage-B790MOSI.js} +1 -1
  4. package/public/assets/{AdminPage-P2z0Fl0Y.js → AdminPage-bj1Ceucs.js} +1 -1
  5. package/public/assets/{AgentCliPage-C7GiYV6z.js → AgentCliPage-C3m17Vxw.js} +1 -1
  6. package/public/assets/{ApiReferencePage-Kzj97VkN.js → ApiReferencePage-CU5KWW5b.js} +1 -1
  7. package/public/assets/{ArchitecturePage-Dj1I7Lif.js → ArchitecturePage-B3NO9ams.js} +1 -1
  8. package/public/assets/{AuditLogPage-D1OTE5S1.js → AuditLogPage-CSYmdRqM.js} +1 -1
  9. package/public/assets/{BindPlatformPage-CUbHhfZo.js → BindPlatformPage-BhC8I1M6.js} +1 -1
  10. package/public/assets/{BotIntegrationPage-Cz1-B_ag.js → BotIntegrationPage-B4NhIhTq.js} +1 -1
  11. package/public/assets/{BotManage-DGCb_1uD.js → BotManage-BVx8Zpyb.js} +1 -1
  12. package/public/assets/{BotSetupPage-DEj-NMfd.js → BotSetupPage-DVqBgyjG.js} +1 -1
  13. package/public/assets/{ChangelogPage-DerOZcUF.js → ChangelogPage-DgAkPSte.js} +1 -1
  14. package/public/assets/{CliReferencePage-kHDw2pA7.js → CliReferencePage-ChEAiOWL.js} +1 -1
  15. package/public/assets/{DeploymentPage-B5XPM33m.js → DeploymentPage-DUlfbHwk.js} +1 -1
  16. package/public/assets/{DevWorkflowPage-CdyR3M_a.js → DevWorkflowPage-CHQifk0Y.js} +1 -1
  17. package/public/assets/{DeveloperManage-CADxGSzH.js → DeveloperManage-BOzhPppl.js} +1 -1
  18. package/public/assets/{DeveloperSetupPage-TGy2mo4p.js → DeveloperSetupPage-rpsOayJX.js} +1 -1
  19. package/public/assets/{DocsIndexPage-CKLFPHA9.js → DocsIndexPage-BMIn54Zl.js} +1 -1
  20. package/public/assets/{DocsLayout-j09z0-2-.js → DocsLayout-FmrCA5RW.js} +1 -1
  21. package/public/assets/{DocsPrimitives-BjKzQarf.js → DocsPrimitives-ppeWCX0i.js} +1 -1
  22. package/public/assets/{EditProjectPage-YrALdZ6_.js → EditProjectPage-CLPYjvAQ.js} +1 -1
  23. package/public/assets/{EmptyState-c4IsGUGS.js → EmptyState-Q0YM1iFk.js} +1 -1
  24. package/public/assets/{EnvVariablesPage-DUV5GbgH.js → EnvVariablesPage-CLafcR2k.js} +1 -1
  25. package/public/assets/{HomePage-Bd0qbwuy.js → HomePage-B-rfwBdn.js} +1 -1
  26. package/public/assets/{InfoRow-OjQK-lfD.js → InfoRow-D8AsUcSn.js} +1 -1
  27. package/public/assets/{InstallationPage-QKu8ZH_9.js → InstallationPage-BbXh-Y77.js} +1 -1
  28. package/public/assets/{LandingPage-9OL5ViAD.js → LandingPage-DqLbP1Ry.js} +1 -1
  29. package/public/assets/{LocalDevelopmentPage-DktRuJdo.js → LocalDevelopmentPage-CY7dB3hK.js} +1 -1
  30. package/public/assets/{LoginPage-zjkljmUG.js → LoginPage-BoXUe_Xx.js} +1 -1
  31. package/public/assets/{MetricBar-Ct-6XoF8.js → MetricBar-D9ZLrw38.js} +1 -1
  32. package/public/assets/{NotFoundPage-DpUSdTHq.js → NotFoundPage-4pE6QH1R.js} +1 -1
  33. package/public/assets/{OnboardingGuide-DniYFVLU.js → OnboardingGuide-Bo4Ljo4i.js} +1 -1
  34. package/public/assets/{PermissionsPage-AtbdWCh6.js → PermissionsPage-DvWGCh32.js} +1 -1
  35. package/public/assets/{PipelineConfigPage-ByKxXAqM.js → PipelineConfigPage-CeU0o917.js} +1 -1
  36. package/public/assets/{PipelineEditorPage-BmkHpPoJ.js → PipelineEditorPage-CdHuwLmJ.js} +1 -1
  37. package/public/assets/{ProfilePage-D3DWeoQM.js → ProfilePage-8kc8fiZV.js} +1 -1
  38. package/public/assets/{ProjectDetailPage-DcxPgXCF.js → ProjectDetailPage-CaASFvS0.js} +1 -1
  39. package/public/assets/{ProjectListPage-B2LJx5SB.js → ProjectListPage-r28OozXz.js} +1 -1
  40. package/public/assets/{PtyTerminal-BQ2UYeLe.js → PtyTerminal-DzMsSJAu.js} +1 -1
  41. package/public/assets/{QuickAuth-DbXnLBbA.js → QuickAuth-Cds5x6Z3.js} +1 -1
  42. package/public/assets/{RemoveMemberConfirmDialog-DgXwrcbD.js → RemoveMemberConfirmDialog-Do2l0kib.js} +1 -1
  43. package/public/assets/{Select-CKozUJa5.js → Select-DRCu2nu0.js} +1 -1
  44. package/public/assets/{SettingsPage-Dc7kQQ-U.js → SettingsPage-CZywaGc9.js} +1 -1
  45. package/public/assets/{Skeleton-1CByoX9G.js → Skeleton-BWkXyrSG.js} +1 -1
  46. package/public/assets/{SkillPage-C5bC1S4B.js → SkillPage-Bn53Yjiu.js} +1 -1
  47. package/public/assets/{TaskDetailPage-Bci7hNZD.js → TaskDetailPage-Bgd8Ogvq.js} +1 -1
  48. package/public/assets/{TaskListPage-CysAqfJ7.js → TaskListPage-Ca0mxJ_o.js} +1 -1
  49. package/public/assets/{TaskStatusBadge-BQr1iwes.js → TaskStatusBadge-fDYhxtHY.js} +1 -1
  50. package/public/assets/{TerminalHomePage-AG4elUye.js → TerminalHomePage-DE4Fra73.js} +1 -1
  51. package/public/assets/{TokenManage-CaQAVdV3.js → TokenManage-CL6Dgoac.js} +1 -1
  52. package/public/assets/{Tooltip-D_CBrTO_.js → Tooltip-CZtlcHYf.js} +1 -1
  53. package/public/assets/{TotpSetupPage-hm7e8ja5.js → TotpSetupPage-BeStxglO.js} +1 -1
  54. package/public/assets/{WorkerDetailPage-B1Dx_37R.js → WorkerDetailPage-B5lirrH3.js} +1 -1
  55. package/public/assets/{WorkerListPage-BS3r46aW.js → WorkerListPage-DRx_FX1c.js} +1 -1
  56. package/public/assets/{WorkerOperationsPage-EplOzeIS.js → WorkerOperationsPage-0fj-txrI.js} +1 -1
  57. package/public/assets/{WorkerSetupGuidePage-Bj7AFF_z.js → WorkerSetupGuidePage-CpWSvLWw.js} +1 -1
  58. package/public/assets/{WorkerSetupPage-C3mkq4zM.js → WorkerSetupPage-CX2IKTBz.js} +1 -1
  59. package/public/assets/{agent-type-options-DUkN669t.js → agent-type-options-BztKEaBi.js} +1 -1
  60. package/public/assets/{arrow-left-BPE0QXvK.js → arrow-left-CiH58ODj.js} +1 -1
  61. package/public/assets/{arrow-right-BdXr5iFo.js → arrow-right-Dq2t8ts3.js} +1 -1
  62. package/public/assets/{bot-CNZBTp4c.js → bot-C1cnPjRw.js} +1 -1
  63. package/public/assets/{chevron-left-BhcTbOUx.js → chevron-left-CM3Ljmsh.js} +1 -1
  64. package/public/assets/{chevron-right-BuhDQxo4.js → chevron-right-OQgRbmpb.js} +1 -1
  65. package/public/assets/{copy-cloBpe4U.js → copy-DO7PDfZF.js} +1 -1
  66. package/public/assets/{download-BxlPrmML.js → download-Cd-BBoI7.js} +1 -1
  67. package/public/assets/{external-link-Clr8ygf6.js → external-link-COzchqIG.js} +1 -1
  68. package/public/assets/{file-text-KFjDZaJL.js → file-text-DTpqny43.js} +1 -1
  69. package/public/assets/{git-fork-CBlyXbge.js → git-fork-BWs-fYTb.js} +1 -1
  70. package/public/assets/{index-DJl-vKpg.js → index-01l9VFB2.js} +2 -2
  71. package/public/assets/index-3ccyrL7z.css +1 -0
  72. package/public/assets/{key-BwIOi-0U.js → key-Chc2kr14.js} +1 -1
  73. package/public/assets/{loader-circle-CF4O3sgn.js → loader-circle-D5ClDQ9h.js} +1 -1
  74. package/public/assets/{pencil-BKwPd_Fv.js → pencil-DBqi31EH.js} +1 -1
  75. package/public/assets/{plus-Dy384KeJ.js → plus-ucRIgQZK.js} +1 -1
  76. package/public/assets/{rotate-ccw-BqKuF1OZ.js → rotate-ccw-CHaUzlWE.js} +1 -1
  77. package/public/assets/{scroll-text-BQnKZlDZ.js → scroll-text-DBPeZU4l.js} +1 -1
  78. package/public/assets/{settings-iP7F66C4.js → settings-JXcSTf0A.js} +1 -1
  79. package/public/assets/{status-colors-D3fj6h6e.js → status-colors-kQDPD0wO.js} +1 -1
  80. package/public/assets/{task-constants-q2zc7hX5.js → task-constants-DXxUAApA.js} +1 -1
  81. package/public/assets/{trash-2-CYF0CqNA.js → trash-2-WA_mdBf9.js} +1 -1
  82. package/public/assets/{useFetch-CyCGABKu.js → useFetch-DWa3GeJN.js} +1 -1
  83. package/public/assets/{users-BQ-sAhp6.js → users-CUx2h4Ml.js} +1 -1
  84. package/public/assets/{wifi-DKdwzLvS.js → wifi-DtCZMvdz.js} +1 -1
  85. package/public/assets/{workflow-DlF_hAtY.js → workflow-DvpyWOk6.js} +1 -1
  86. package/public/index.html +2 -2
  87. package/public/sw.js +1 -1
  88. package/public/assets/index-D6SjJWkw.css +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LandingPage-9OL5ViAD.js","assets/arrow-right-BdXr5iFo.js","assets/bot-CNZBTp4c.js","assets/workflow-DlF_hAtY.js","assets/users-BQ-sAhp6.js","assets/copy-cloBpe4U.js","assets/HomePage-Bd0qbwuy.js","assets/TaskStatusBadge-BQr1iwes.js","assets/status-colors-D3fj6h6e.js","assets/Skeleton-1CByoX9G.js","assets/OnboardingGuide-DniYFVLU.js","assets/chevron-right-BuhDQxo4.js","assets/date-RFA7-ZGs.js","assets/useFetch-CyCGABKu.js","assets/Tooltip-D_CBrTO_.js","assets/TerminalHomePage-AG4elUye.js","assets/PtyTerminal-BQ2UYeLe.js","assets/PtyTerminal-Beg8tuEN.css","assets/task-constants-q2zc7hX5.js","assets/agent-type-options-DUkN669t.js","assets/Select-CKozUJa5.js","assets/plus-Dy384KeJ.js","assets/rotate-ccw-BqKuF1OZ.js","assets/wifi-DKdwzLvS.js","assets/TaskListPage-CysAqfJ7.js","assets/git-fork-CBlyXbge.js","assets/EmptyState-c4IsGUGS.js","assets/chevron-left-BhcTbOUx.js","assets/TaskDetailPage-Bci7hNZD.js","assets/arrow-left-BPE0QXvK.js","assets/external-link-Clr8ygf6.js","assets/loader-circle-CF4O3sgn.js","assets/file-text-KFjDZaJL.js","assets/WorkerListPage-BS3r46aW.js","assets/MetricBar-Ct-6XoF8.js","assets/WorkerSetupGuidePage-Bj7AFF_z.js","assets/key-BwIOi-0U.js","assets/download-BxlPrmML.js","assets/settings-iP7F66C4.js","assets/WorkerDetailPage-B1Dx_37R.js","assets/InfoRow-OjQK-lfD.js","assets/trash-2-CYF0CqNA.js","assets/ProjectListPage-B2LJx5SB.js","assets/ProjectDetailPage-DcxPgXCF.js","assets/RemoveMemberConfirmDialog-DgXwrcbD.js","assets/pencil-BKwPd_Fv.js","assets/EditProjectPage-YrALdZ6_.js","assets/PipelineEditorPage-BmkHpPoJ.js","assets/ProfilePage-D3DWeoQM.js","assets/password-CHk45-jw.js","assets/AccessTokensPage-BoVgUrzP.js","assets/CliReferencePage-kHDw2pA7.js","assets/QuickAuth-DbXnLBbA.js","assets/ApiReferencePage-Kzj97VkN.js","assets/SkillPage-C5bC1S4B.js","assets/DocsPrimitives-BjKzQarf.js","assets/DocsLayout-j09z0-2-.js","assets/InstallationPage-QKu8ZH_9.js","assets/DeveloperSetupPage-TGy2mo4p.js","assets/WorkerSetupPage-C3mkq4zM.js","assets/BotSetupPage-DEj-NMfd.js","assets/LocalDevelopmentPage-DktRuJdo.js","assets/DeploymentPage-B5XPM33m.js","assets/PipelineConfigPage-ByKxXAqM.js","assets/DevWorkflowPage-CdyR3M_a.js","assets/EnvVariablesPage-DUV5GbgH.js","assets/ArchitecturePage-Dj1I7Lif.js","assets/AgentCliPage-C7GiYV6z.js","assets/DocsIndexPage-CKLFPHA9.js","assets/AdminPage-P2z0Fl0Y.js","assets/scroll-text-BQnKZlDZ.js","assets/DeveloperManage-CADxGSzH.js","assets/BotManage-DGCb_1uD.js","assets/TokenManage-CaQAVdV3.js","assets/AuditLogPage-D1OTE5S1.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LandingPage-DqLbP1Ry.js","assets/arrow-right-Dq2t8ts3.js","assets/bot-C1cnPjRw.js","assets/workflow-DvpyWOk6.js","assets/users-CUx2h4Ml.js","assets/copy-DO7PDfZF.js","assets/HomePage-B-rfwBdn.js","assets/TaskStatusBadge-fDYhxtHY.js","assets/status-colors-kQDPD0wO.js","assets/Skeleton-BWkXyrSG.js","assets/OnboardingGuide-Bo4Ljo4i.js","assets/chevron-right-OQgRbmpb.js","assets/date-RFA7-ZGs.js","assets/useFetch-DWa3GeJN.js","assets/Tooltip-CZtlcHYf.js","assets/TerminalHomePage-DE4Fra73.js","assets/PtyTerminal-DzMsSJAu.js","assets/PtyTerminal-Beg8tuEN.css","assets/task-constants-DXxUAApA.js","assets/agent-type-options-BztKEaBi.js","assets/Select-DRCu2nu0.js","assets/plus-ucRIgQZK.js","assets/rotate-ccw-CHaUzlWE.js","assets/wifi-DtCZMvdz.js","assets/TaskListPage-Ca0mxJ_o.js","assets/git-fork-BWs-fYTb.js","assets/EmptyState-Q0YM1iFk.js","assets/chevron-left-CM3Ljmsh.js","assets/TaskDetailPage-Bgd8Ogvq.js","assets/arrow-left-CiH58ODj.js","assets/external-link-COzchqIG.js","assets/loader-circle-D5ClDQ9h.js","assets/file-text-DTpqny43.js","assets/WorkerListPage-DRx_FX1c.js","assets/MetricBar-D9ZLrw38.js","assets/WorkerSetupGuidePage-CpWSvLWw.js","assets/key-Chc2kr14.js","assets/download-Cd-BBoI7.js","assets/settings-JXcSTf0A.js","assets/WorkerDetailPage-B5lirrH3.js","assets/InfoRow-D8AsUcSn.js","assets/trash-2-WA_mdBf9.js","assets/ProjectListPage-r28OozXz.js","assets/ProjectDetailPage-CaASFvS0.js","assets/RemoveMemberConfirmDialog-Do2l0kib.js","assets/pencil-DBqi31EH.js","assets/EditProjectPage-CLPYjvAQ.js","assets/PipelineEditorPage-CdHuwLmJ.js","assets/ProfilePage-8kc8fiZV.js","assets/password-CHk45-jw.js","assets/AccessTokensPage-B790MOSI.js","assets/CliReferencePage-ChEAiOWL.js","assets/QuickAuth-Cds5x6Z3.js","assets/ApiReferencePage-CU5KWW5b.js","assets/SkillPage-Bn53Yjiu.js","assets/DocsPrimitives-ppeWCX0i.js","assets/DocsLayout-FmrCA5RW.js","assets/InstallationPage-BbXh-Y77.js","assets/DeveloperSetupPage-rpsOayJX.js","assets/WorkerSetupPage-CX2IKTBz.js","assets/BotSetupPage-DVqBgyjG.js","assets/LocalDevelopmentPage-CY7dB3hK.js","assets/DeploymentPage-DUlfbHwk.js","assets/PipelineConfigPage-CeU0o917.js","assets/DevWorkflowPage-CHQifk0Y.js","assets/EnvVariablesPage-CLafcR2k.js","assets/ArchitecturePage-B3NO9ams.js","assets/AgentCliPage-C3m17Vxw.js","assets/DocsIndexPage-BMIn54Zl.js","assets/AdminPage-bj1Ceucs.js","assets/scroll-text-DBPeZU4l.js","assets/DeveloperManage-BOzhPppl.js","assets/BotManage-BVx8Zpyb.js","assets/TokenManage-CL6Dgoac.js","assets/AuditLogPage-CSYmdRqM.js"])))=>i.map(i=>d[i]);
2
2
  var ev=Object.defineProperty;var Pm=i=>{throw TypeError(i)};var tv=(i,u,s)=>u in i?ev(i,u,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[u]=s;var Ve=(i,u,s)=>tv(i,typeof u!="symbol"?u+"":u,s),vs=(i,u,s)=>u.has(i)||Pm("Cannot "+s);var q=(i,u,s)=>(vs(i,u,"read from private field"),s?s.call(i):u.get(i)),Pt=(i,u,s)=>u.has(i)?Pm("Cannot add the same private member more than once"):u instanceof WeakSet?u.add(i):u.set(i,s),Kt=(i,u,s,o)=>(vs(i,u,"write to private field"),o?o.call(i,s):u.set(i,s),s),Ee=(i,u,s)=>(vs(i,u,"access private method"),s);var eh=(i,u,s,o)=>({set _(f){Kt(i,u,f,s)},get _(){return q(i,u,o)}});(function(){const u=document.createElement("link").relList;if(u&&u.supports&&u.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))o(f);new MutationObserver(f=>{for(const m of f)if(m.type==="childList")for(const y of m.addedNodes)y.tagName==="LINK"&&y.rel==="modulepreload"&&o(y)}).observe(document,{childList:!0,subtree:!0});function s(f){const m={};return f.integrity&&(m.integrity=f.integrity),f.referrerPolicy&&(m.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?m.credentials="include":f.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function o(f){if(f.ep)return;f.ep=!0;const m=s(f);fetch(f.href,m)}})();function av(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var _s={exports:{}},ti={};/**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.js
@@ -239,4 +239,4 @@ overlord install`,setup_step_1_link:"installation guide",setup_step_2_title:"reg
239
239
  overlord setup worker`,setup_step_2_link:"worker setup guide",setup_step_3_title:"connect as developer",setup_step_3_desc:"install the developer cli to create tasks, attach to running sessions, and monitor progress from your terminal.",setup_step_3_command:`npm install -g @overlordai/developer-cli
240
240
  ov login https://overlord.yourdomain.com`,setup_step_3_link:"development workflow",go_to_app:"open app",documentation:"documentation",api:"api",copy_install_command:"copy install command"},docs:{quick_start:"// quick start",developer_cli:"developer cli (ov)",admin_cli:"admin cli (overlord)",authentication:"// authentication",usage:"usage",flags:"flags",example:"example",request_body:"request body",response:"response",quick_start_with_token:"// quick start with your token",replace_token_hint:"// replace <your-token> with the actual token value from your access tokens page",cli_tools_desc:"// overlord provides two cli tools: {ov} (developer cli) and {overlord} (admin/ops cli)",api_base_url_desc:"// base url: {url} · all endpoints return json · auth via bearer token in authorization header",docs_nav_getting_started:"// getting started",docs_nav_guides:"// guides",docs_nav_reference:"// reference",docs_nav_other:"// other",docs_installation:"installation",docs_developer_setup:"developer setup",docs_worker_setup:"worker setup",docs_bot_setup:"bot setup",docs_local_dev:"local development",docs_worker_ops:"worker operations",docs_deployment:"deployment",docs_bot_integration:"bot integration",docs_pipeline:"pipeline config",docs_dev_workflow:"dev workflow",docs_cli:"cli reference",docs_api:"api reference",docs_skill:"skill reference",docs_permissions:"permissions & roles",docs_env_vars:"environment variables",docs_architecture:"architecture",docs_changelog:"changelog",docs_back:"< back",docs_all_title:"// all documentation",docs_all_subtitle:"browse all guides, references, and resources",docs_desc_installation:"install overlord server and cli tools",docs_desc_developer_setup:"set up your local development environment",docs_desc_worker_setup:"register and configure worker machines",docs_desc_bot_setup:"connect lark or slack bots to overlord",docs_desc_local_dev:"run and debug overlord locally",docs_desc_worker_ops:"manage worker lifecycle and monitoring",docs_desc_deployment:"deploy overlord to production servers",docs_desc_bot_integration:"interactive cards, adapter pattern, troubleshooting",docs_desc_pipeline:"define multi-stage task pipelines",docs_desc_dev_workflow:"git workflow, branching, and merge requests",docs_desc_cli:"cli command reference",docs_desc_api:"http api endpoint reference",docs_desc_skill:"custom skill definitions and configuration",docs_desc_permissions:"roles, access control, and authorization",docs_desc_env_vars:"environment variables for server and worker",docs_desc_architecture:"system architecture and component overview",docs_desc_changelog:"version history and release notes",docs_agent_cli:"agent cli",docs_desc_agent_cli:"claude, cursor, and codex cli integration and flag mapping"},onboarding:{getting_started:"// getting started",dismiss:"dismiss",all_done:"all set! you're ready to go.",admin_create_project_title:"create your first project",admin_create_project_desc:"set up a project with a git repo and pipeline",admin_register_worker_title:"register a worker",admin_register_worker_desc:"generate a token and set up a worker to run tasks",admin_create_developer_title:"create a developer account",admin_create_developer_desc:"add team members who can create and monitor tasks",admin_configure_bot_title:"configure a chat bot",admin_configure_bot_desc:"register a Lark or Slack bot to enable task management via chat",admin_first_task_title:"create your first task",admin_first_task_desc:"verify the full pipeline works end-to-end",lead_view_projects_title:"view your projects",lead_view_projects_desc:"check the projects assigned to you",lead_configure_pipeline_title:"configure a pipeline",lead_configure_pipeline_desc:"set up stages for your project workflow",lead_add_member_title:"add a team member",lead_add_member_desc:"invite developers to your project",lead_first_task_title:"create your first task",lead_first_task_desc:"submit a task and watch it execute",dev_install_cli_title:"install the ov cli",dev_install_cli_desc:"npm install -g @overlordai/developer-cli",dev_setup_cli_title:"run ov setup",dev_setup_cli_desc:"connect to the server and authenticate",dev_link_chat_title:"link your chat account",dev_link_chat_desc:'send "bind" to the bot in Lark or Slack to connect your account',dev_view_projects_title:"explore projects",dev_view_projects_desc:"browse available projects and their pipelines",dev_first_task_title:"create your first task",dev_first_task_desc:"submit a task via web or cli",go_to_projects:"go to projects",go_to_workers:"go to workers",go_to_tasks:"go to tasks",go_to_bots:"manage bots",manage_developers:"manage developers",cli:"cli",setup_guide:"setup guide"},bind:{title:"// link platform account",linking:"linking your account...",success:"account linked successfully!",success_detail:"your {platform} account has been connected. you can now use bot commands.",error:"failed to link account",invalid_token:'this link is invalid or has expired. send "bind" to the bot again to get a new link.',back_to_home:"go to dashboard",no_token:"no bind token provided."},pwa_install:{title:"overlord://install",command:"overlord --install",desc_1:"add to home screen for standalone app experience",desc_2:"works offline · full-screen · instant launch",install:"y — install",skip:"n — skip",ios_command:"install --manual",ios_step_1:"tap share button in safari toolbar",ios_step_2:'scroll down → tap "add to home screen"',ios_step_3:'tap "add" to confirm'},pwa_update:{message:"new version available",reload:"reload"},terminal_home:{title:"terminal",select_project:"project...",all_projects:"all projects",task_description_placeholder:"describe the task...",new_task:"new task",no_active_tasks:"no active tasks",create_task_hint:"create a task using the bar above to get started",confirm_create_title:"create task",confirm_create_message:`create a [{taskType}] task in project [{projectKey}]?
241
241
 
242
- "{description}"`}};function Ab(i,u){const s=u.split(".");let o=i;for(const f of s){if(o==null||typeof o!="object")return u;o=o[f]}return typeof o=="string"?o:u}function zb(i,u){return u?i.replace(/\{(\w+)\}/g,(s,o)=>u[o]!=null?String(u[o]):`{${o}}`):i}function Yr(i,u){return zb(Ab(Rb,i),u)}function Vt(){return{t:g.useCallback((u,s)=>Yr(u,s),[])}}function cp(){const{theme:i,setTheme:u}=sp(),{t:s}=Vt(),o=i==="dark"||i==="system"&&typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches;function f(){u(o?"light":"dark")}return h.jsx("button",{onClick:f,className:"flex items-center gap-1.5 rounded-[4px] p-2 text-[var(--text-secondary)] transition-colors hover:bg-[var(--border)] hover:text-[var(--text-primary)]","aria-label":s(o?"common.switch_to_light":"common.switch_to_dark"),title:s(o?"common.light_mode":"common.dark_mode"),children:o?h.jsx(vb,{size:16}):h.jsx(mb,{size:16})})}class Ns extends Error{constructor(s,o,f){const m=s.status||s.status===0?s.status:"",y=s.statusText??"",b=`${m} ${y}`.trim(),v=b?`status code ${b}`:"an unknown error";super(`Request failed with ${v}: ${o.method} ${o.url}`);Ve(this,"response");Ve(this,"request");Ve(this,"options");this.name="HTTPError",this.response=s,this.request=o,this.options=f}}class fp extends Error{constructor(s){let o="Non-error value was thrown";try{typeof s=="string"?o=s:s&&typeof s=="object"&&"message"in s&&typeof s.message=="string"&&(o=s.message)}catch{}super(o);Ve(this,"name","NonError");Ve(this,"value");this.value=s}}class As extends Error{constructor(s){const o=s!=null&&s.cause?s.cause instanceof Error?s.cause:new fp(s.cause):void 0;super(s!=null&&s.code?`Forced retry: ${s.code}`:"Forced retry",o?{cause:o}:void 0);Ve(this,"name","ForceRetryError");Ve(this,"customDelay");Ve(this,"code");Ve(this,"customRequest");this.customDelay=s==null?void 0:s.delay,this.code=s==null?void 0:s.code,this.customRequest=s==null?void 0:s.request}}const Sh=(()=>{let i=!1,u=!1;const s=typeof globalThis.ReadableStream=="function",o=typeof globalThis.Request=="function";if(s&&o)try{u=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return i=!0,"half"}}).headers.has("Content-Type")}catch(f){if(f instanceof Error&&f.message==="unsupported BodyInit type")return!1;throw f}return i&&!u})(),Ob=typeof globalThis.AbortController=="function",dp=typeof globalThis.AbortSignal=="function"&&typeof globalThis.AbortSignal.any=="function",Cb=typeof globalThis.ReadableStream=="function",Db=typeof globalThis.FormData=="function",mp=["get","post","put","patch","head","delete"],Nb={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*",bytes:"*/*"},zs=2147483647,Mb=new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length,hp=Symbol("stop");class pp{constructor(u){Ve(this,"options");this.options=u}}const Ub=i=>new pp(i),qb={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Lb={next:!0},Hb={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0},Bb=i=>{if(!i)return 0;if(i instanceof FormData){let u=0;for(const[s,o]of i)u+=Mb,u+=new TextEncoder().encode(`Content-Disposition: form-data; name="${s}"`).length,u+=typeof o=="string"?new TextEncoder().encode(o).length:o.size;return u}if(i instanceof Blob)return i.size;if(i instanceof ArrayBuffer)return i.byteLength;if(typeof i=="string")return new TextEncoder().encode(i).length;if(i instanceof URLSearchParams)return new TextEncoder().encode(i.toString()).length;if("byteLength"in i)return i.byteLength;if(typeof i=="object"&&i!==null)try{const u=JSON.stringify(i);return new TextEncoder().encode(u).length}catch{return 0}return 0},yp=(i,u,s)=>{let o,f=0;return i.pipeThrough(new TransformStream({transform(m,y){if(y.enqueue(m),o){f+=o.byteLength;let b=u===0?0:f/u;b>=1&&(b=1-Number.EPSILON),s==null||s({percent:b,totalBytes:Math.max(u,f),transferredBytes:f},o)}o=m},flush(){o&&(f+=o.byteLength,s==null||s({percent:1,totalBytes:Math.max(u,f),transferredBytes:f},o))}}))},Yb=(i,u)=>{if(!i.body)return i;if(i.status===204)return new Response(null,{status:i.status,statusText:i.statusText,headers:i.headers});const s=Math.max(0,Number(i.headers.get("content-length"))||0);return new Response(yp(i.body,s,u),{status:i.status,statusText:i.statusText,headers:i.headers})},Gb=(i,u,s)=>{if(!i.body)return i;const o=Bb(s??i.body);return new Request(i,{duplex:"half",body:yp(i.body,o,u)})},vn=i=>i!==null&&typeof i=="object",Dr=(...i)=>{for(const u of i)if((!vn(u)||Array.isArray(u))&&u!==void 0)throw new TypeError("The `options` argument must be an object");return Ws({},...i)},gp=(i={},u={})=>{const s=new globalThis.Headers(i),o=u instanceof globalThis.Headers,f=new globalThis.Headers(u);for(const[m,y]of f.entries())o&&y==="undefined"||y===void 0?s.delete(m):s.set(m,y);return s};function Nr(i,u,s){return Object.hasOwn(u,s)&&u[s]===void 0?[]:Ws(i[s]??[],u[s]??[])}const vp=(i={},u={})=>({beforeRequest:Nr(i,u,"beforeRequest"),beforeRetry:Nr(i,u,"beforeRetry"),afterResponse:Nr(i,u,"afterResponse"),beforeError:Nr(i,u,"beforeError")}),Vb=(i,u)=>{const s=new URLSearchParams;for(const o of[i,u])if(o!==void 0)if(o instanceof URLSearchParams)for(const[f,m]of o.entries())s.append(f,m);else if(Array.isArray(o))for(const f of o){if(!Array.isArray(f)||f.length!==2)throw new TypeError("Array search parameters must be provided in [[key, value], ...] format");s.append(String(f[0]),String(f[1]))}else if(vn(o))for(const[f,m]of Object.entries(o))m!==void 0&&s.append(f,String(m));else{const f=new URLSearchParams(o);for(const[m,y]of f.entries())s.append(m,y)}return s},Ws=(...i)=>{let u={},s={},o={},f;const m=[];for(const y of i)if(Array.isArray(y))Array.isArray(u)||(u=[]),u=[...u,...y];else if(vn(y)){for(let[b,v]of Object.entries(y)){if(b==="signal"&&v instanceof globalThis.AbortSignal){m.push(v);continue}if(b==="context"){if(v!=null&&(!vn(v)||Array.isArray(v)))throw new TypeError("The `context` option must be an object");u={...u,context:v==null?{}:{...u.context,...v}};continue}if(b==="searchParams"){v==null?f=void 0:f=f===void 0?v:Vb(f,v);continue}vn(v)&&b in u&&(v=Ws(u[b],v)),u={...u,[b]:v}}vn(y.hooks)&&(o=vp(o,y.hooks),u.hooks=o),vn(y.headers)&&(s=gp(s,y.headers),u.headers=s)}return f!==void 0&&(u.searchParams=f),m.length>0&&(m.length===1?u.signal=m[0]:dp?u.signal=AbortSignal.any(m):u.signal=m.at(-1)),u},Xb=i=>mp.includes(i)?i.toUpperCase():i,Qb=["get","put","head","delete","options","trace"],Zb=[408,413,429,500,502,503,504],Kb=[413,429,503],Eh={limit:2,methods:Qb,statusCodes:Zb,afterStatusCodes:Kb,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:i=>.3*2**(i-1)*1e3,jitter:void 0,retryOnTimeout:!1},Jb=(i={})=>{if(typeof i=="number")return{...Eh,limit:i};if(i.methods&&!Array.isArray(i.methods))throw new Error("retry.methods must be an array");if(i.methods&&(i.methods=i.methods.map(s=>s.toLowerCase())),i.statusCodes&&!Array.isArray(i.statusCodes))throw new Error("retry.statusCodes must be an array");const u=Object.fromEntries(Object.entries(i).filter(([,s])=>s!==void 0));return{...Eh,...u}};class Ms extends Error{constructor(s){super(`Request timed out: ${s.method} ${s.url}`);Ve(this,"request");this.name="TimeoutError",this.request=s}}async function $b(i,u,s,o){return new Promise((f,m)=>{const y=setTimeout(()=>{s&&s.abort(),m(new Ms(i))},o.timeout);o.fetch(i,u).then(f).catch(m).then(()=>{clearTimeout(y)})})}async function Wb(i,{signal:u}){return new Promise((s,o)=>{u&&(u.throwIfAborted(),u.addEventListener("abort",f,{once:!0}));function f(){clearTimeout(m),o(u.reason)}const m=setTimeout(()=>{u==null||u.removeEventListener("abort",f),s()},i)})}const Fb=(i,u)=>{const s={};for(const o in u)Object.hasOwn(u,o)&&!(o in Hb)&&!(o in qb)&&(!(o in i)||o in Lb)&&(s[o]=u[o]);return s},Ib=i=>i===void 0?!1:Array.isArray(i)?i.length>0:i instanceof URLSearchParams?i.size>0:typeof i=="object"?Object.keys(i).length>0:typeof i=="string"?i.trim().length>0:!!i;function Pb(i){return i instanceof Ns||(i==null?void 0:i.name)===Ns.name}function e0(i){return i instanceof Ms||(i==null?void 0:i.name)===Ms.name}var Jr,_p,Jt,Bt,rt,Q,$a,ea,_n,oe,Gr,bp,Us,Vr,Ja,qs,xp,ii,Xr,Ls;const ri=class ri{constructor(u,s={}){Pt(this,oe);Ve(this,"request");Pt(this,Jt);Pt(this,Bt,0);Pt(this,rt);Pt(this,Q);Pt(this,$a);Pt(this,ea);Pt(this,_n);var f,m,y;if(Kt(this,rt,u),Kt(this,Q,{...s,headers:gp(q(this,rt).headers,s.headers),hooks:vp({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},s.hooks),method:Xb(s.method??q(this,rt).method??"GET"),prefixUrl:String(s.prefixUrl||""),retry:Jb(s.retry),throwHttpErrors:s.throwHttpErrors??!0,timeout:s.timeout??1e4,fetch:s.fetch??globalThis.fetch.bind(globalThis),context:s.context??{}}),typeof q(this,rt)!="string"&&!(q(this,rt)instanceof URL||q(this,rt)instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(q(this,Q).prefixUrl&&typeof q(this,rt)=="string"){if(q(this,rt).startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");q(this,Q).prefixUrl.endsWith("/")||(q(this,Q).prefixUrl+="/"),Kt(this,rt,q(this,Q).prefixUrl+q(this,rt))}Ob&&dp&&(Kt(this,ea,q(this,Q).signal??q(this,rt).signal),Kt(this,Jt,new globalThis.AbortController),q(this,Q).signal=q(this,ea)?AbortSignal.any([q(this,ea),q(this,Jt).signal]):q(this,Jt).signal),Sh&&(q(this,Q).duplex="half"),q(this,Q).json!==void 0&&(q(this,Q).body=((m=(f=q(this,Q)).stringifyJson)==null?void 0:m.call(f,q(this,Q).json))??JSON.stringify(q(this,Q).json),q(this,Q).headers.set("content-type",q(this,Q).headers.get("content-type")??"application/json"));const o=s.headers&&new globalThis.Headers(s.headers).has("content-type");if(q(this,rt)instanceof globalThis.Request&&(Db&&q(this,Q).body instanceof globalThis.FormData||q(this,Q).body instanceof URLSearchParams)&&!o&&q(this,Q).headers.delete("content-type"),this.request=new globalThis.Request(q(this,rt),q(this,Q)),Ib(q(this,Q).searchParams)){const v="?"+(typeof q(this,Q).searchParams=="string"?q(this,Q).searchParams.replace(/^\?/,""):new URLSearchParams(Ee(y=ri,Jr,_p).call(y,q(this,Q).searchParams)).toString()),p=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,v);this.request=new globalThis.Request(p,q(this,Q))}if(q(this,Q).onUploadProgress){if(typeof q(this,Q).onUploadProgress!="function")throw new TypeError("The `onUploadProgress` option must be a function");if(!Sh)throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request=Ee(this,oe,Ls).call(this,this.request,q(this,Q).body??void 0)}}static create(u,s){var y,b,v;const o=new ri(u,s),f=async()=>{var w,E,N,Y,L,H,B,U,K,X,ue,ce;if(typeof q(o,Q).timeout=="number"&&q(o,Q).timeout>zs)throw new RangeError(`The \`timeout\` option cannot be greater than ${zs}`);await Promise.resolve();let p=await Ee(w=o,oe,xp).call(w);for(const ye of q(o,Q).hooks.afterResponse){const F=Ee(E=o,oe,Us).call(E,p.clone());let W;try{W=await ye(o.request,Ee(N=o,oe,ii).call(N),F,{retryCount:q(o,Bt)})}catch(Pe){throw Ee(Y=o,oe,Ja).call(Y,F),Ee(L=o,oe,Ja).call(L,p),Pe}if(W instanceof pp)throw Ee(H=o,oe,Ja).call(H,F),Ee(B=o,oe,Ja).call(B,p),new As(W.options);const se=W instanceof globalThis.Response?W:p;F!==se&&Ee(U=o,oe,Ja).call(U,F),p!==se&&Ee(K=o,oe,Ja).call(K,p),p=se}if(Ee(X=o,oe,Us).call(X,p),!p.ok&&(typeof q(o,Q).throwHttpErrors=="function"?q(o,Q).throwHttpErrors(p.status):q(o,Q).throwHttpErrors)){let ye=new Ns(p,o.request,Ee(ue=o,oe,ii).call(ue));for(const F of q(o,Q).hooks.beforeError)ye=await F(ye,{retryCount:q(o,Bt)});throw ye}if(q(o,Q).onDownloadProgress){if(typeof q(o,Q).onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!Cb)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");const ye=p.clone();return Ee(ce=o,oe,Ja).call(ce,p),Yb(ye,q(o,Q).onDownloadProgress)}return p},m=Ee(y=o,oe,qs).call(y,f).finally(()=>{var w,E;const p=q(o,$a);Ee(w=o,oe,Vr).call(w,(p==null?void 0:p.body)??void 0),Ee(E=o,oe,Vr).call(E,o.request.body??void 0)});for(const[p,w]of Object.entries(Nb))p==="bytes"&&typeof((v=(b=globalThis.Response)==null?void 0:b.prototype)==null?void 0:v.bytes)!="function"||(m[p]=async()=>{o.request.headers.set("accept",o.request.headers.get("accept")||w);const E=await m;if(p==="json"){if(E.status===204)return"";const N=await E.text();return N===""?"":s.parseJson?s.parseJson(N):JSON.parse(N)}return E[p]()});return m}};Jr=new WeakSet,_p=function(u){return u&&typeof u=="object"&&!Array.isArray(u)&&!(u instanceof URLSearchParams)?Object.fromEntries(Object.entries(u).filter(([,s])=>s!==void 0)):u},Jt=new WeakMap,Bt=new WeakMap,rt=new WeakMap,Q=new WeakMap,$a=new WeakMap,ea=new WeakMap,_n=new WeakMap,oe=new WeakSet,Gr=function(){const u=q(this,Q).retry.delay(q(this,Bt));let s=u;q(this,Q).retry.jitter===!0?s=Math.random()*u:typeof q(this,Q).retry.jitter=="function"&&(s=q(this,Q).retry.jitter(u),(!Number.isFinite(s)||s<0)&&(s=u));const o=q(this,Q).retry.backoffLimit??Number.POSITIVE_INFINITY;return Math.min(o,s)},bp=async function(u){if(eh(this,Bt)._++,q(this,Bt)>q(this,Q).retry.limit)throw u;const s=u instanceof Error?u:new fp(u);if(s instanceof As)return s.customDelay??Ee(this,oe,Gr).call(this);if(!q(this,Q).retry.methods.includes(this.request.method.toLowerCase()))throw u;if(q(this,Q).retry.shouldRetry!==void 0){const o=await q(this,Q).retry.shouldRetry({error:s,retryCount:q(this,Bt)});if(o===!1)throw u;if(o===!0)return Ee(this,oe,Gr).call(this)}if(e0(u)&&!q(this,Q).retry.retryOnTimeout)throw u;if(Pb(u)){if(!q(this,Q).retry.statusCodes.includes(u.response.status))throw u;const o=u.response.headers.get("Retry-After")??u.response.headers.get("RateLimit-Reset")??u.response.headers.get("X-RateLimit-Retry-After")??u.response.headers.get("X-RateLimit-Reset")??u.response.headers.get("X-Rate-Limit-Reset");if(o&&q(this,Q).retry.afterStatusCodes.includes(u.response.status)){let f=Number(o)*1e3;Number.isNaN(f)?f=Date.parse(o)-Date.now():f>=Date.parse("2024-01-01")&&(f-=Date.now());const m=q(this,Q).retry.maxRetryAfter??f;return f<m?f:m}if(u.response.status===413)throw u}return Ee(this,oe,Gr).call(this)},Us=function(u){return q(this,Q).parseJson&&(u.json=async()=>q(this,Q).parseJson(await u.text())),u},Vr=function(u){u&&u.cancel().catch(()=>{})},Ja=function(u){Ee(this,oe,Vr).call(this,u.body??void 0)},qs=async function(u){try{return await u()}catch(s){const o=Math.min(await Ee(this,oe,bp).call(this,s),zs);if(q(this,Bt)<1)throw s;if(await Wb(o,q(this,ea)?{signal:q(this,ea)}:{}),s instanceof As&&s.customRequest){const f=q(this,Q).signal?new globalThis.Request(s.customRequest,{signal:q(this,Q).signal}):new globalThis.Request(s.customRequest);Ee(this,oe,Xr).call(this,f)}for(const f of q(this,Q).hooks.beforeRetry){const m=await f({request:this.request,options:Ee(this,oe,ii).call(this),error:s,retryCount:q(this,Bt)});if(m instanceof globalThis.Request){Ee(this,oe,Xr).call(this,m);break}if(m instanceof globalThis.Response)return m;if(m===hp)return}return Ee(this,oe,qs).call(this,u)}},xp=async function(){var s;(s=q(this,Jt))!=null&&s.signal.aborted&&(Kt(this,Jt,new globalThis.AbortController),q(this,Q).signal=q(this,ea)?AbortSignal.any([q(this,ea),q(this,Jt).signal]):q(this,Jt).signal,this.request=new globalThis.Request(this.request,{signal:q(this,Q).signal}));for(const o of q(this,Q).hooks.beforeRequest){const f=await o(this.request,Ee(this,oe,ii).call(this),{retryCount:q(this,Bt)});if(f instanceof Response)return f;if(f instanceof globalThis.Request){Ee(this,oe,Xr).call(this,f);break}}const u=Fb(this.request,q(this,Q));return Kt(this,$a,this.request),this.request=q(this,$a).clone(),q(this,Q).timeout===!1?q(this,Q).fetch(q(this,$a),u):$b(q(this,$a),u,q(this,Jt),q(this,Q))},ii=function(){if(!q(this,_n)){const{hooks:u,...s}=q(this,Q);Kt(this,_n,Object.freeze(s))}return q(this,_n)},Xr=function(u){Kt(this,_n,void 0),this.request=Ee(this,oe,Ls).call(this,u)},Ls=function(u,s){return!q(this,Q).onUploadProgress||!u.body?u:Gb(u,q(this,Q).onUploadProgress,s??q(this,Q).body??void 0)},Pt(ri,Jr);let Kr=ri;/*! MIT License © Sindre Sorhus */const Hs=i=>{const u=(s,o)=>Kr.create(s,Dr(i,o));for(const s of mp)u[s]=(o,f)=>Kr.create(o,Dr(i,f,{method:s}));return u.create=s=>Hs(Dr(s)),u.extend=s=>(typeof s=="function"&&(s=s(i??{})),Hs(Dr(i,s))),u.stop=hp,u.retry=Ub,u},kh=Hs();let Mr=null;const Qr=kh.create({prefixUrl:"/api",timeout:3e4,hooks:{beforeRequest:[i=>{const u=xa.getState().accessToken;u&&i.headers.set("Authorization",`Bearer ${u}`)}],afterResponse:[async(i,u,s)=>{if(s.status===401&&!i.headers.has("X-Retry-After-Refresh")){Mr||(Mr=xa.getState().refresh().finally(()=>{Mr=null}));try{await Mr}catch{throw s}const o=xa.getState().accessToken;return o&&i.headers.set("Authorization",`Bearer ${o}`),i.headers.set("X-Retry-After-Refresh","1"),kh(i,u)}}]}}),t0=3e4;function a0(i){if(i.link)return i.link;const u=(i.title+" "+i.body).match(/task\s*#?(\d+)/i);if(u)return`/tasks/${u[1]}`;const s=(i.title+" "+i.body).match(/worker\s+(\S+)/i);return s?`/workers/${s[1]}`:null}function Sp(){const i=Fa(),[u,s]=g.useState([]),[o,f]=g.useState(0),[m,y]=g.useState(!1),[b,v]=g.useState(!1),p=g.useRef(null),{t:w}=Vt(),E=g.useRef(async()=>{try{v(!0);const H=(await Qr.get("web/notifications",{searchParams:{limit:"20"}}).json()).data,B=H.filter(U=>!U.isRead).length;s(U=>U.length===H.length&&U.every((K,X)=>K.id===H[X].id&&K.isRead===H[X].isRead)?U:H),f(U=>U===B?U:B)}catch{}finally{v(!1)}});g.useEffect(()=>{E.current();const L=setInterval(()=>E.current(),t0);return()=>clearInterval(L)},[]),g.useEffect(()=>{function L(H){p.current&&!p.current.contains(H.target)&&y(!1)}return document.addEventListener("mousedown",L),()=>document.removeEventListener("mousedown",L)},[]);async function N(L){try{await Qr.post(`web/notifications/${L}/read`),s(H=>H.map(B=>B.id===L?{...B,isRead:!0}:B)),f(H=>Math.max(0,H-1))}catch{}}async function Y(){try{await Qr.post("web/notifications/read-all"),s(L=>L.map(H=>({...H,isRead:!0}))),f(0)}catch{}}return h.jsxs("div",{className:"relative",ref:p,children:[h.jsxs("button",{type:"button",onClick:()=>y(L=>!L),"aria-label":w("common.notifications"),className:"relative inline-flex items-center justify-center rounded-[4px] p-2 text-[var(--text-secondary)] transition-colors hover:bg-[var(--border)] hover:text-[var(--text-primary)]",children:[h.jsx(F_,{size:16}),o>0&&h.jsx("span",{className:"absolute right-0 top-0 flex h-3 min-w-3 items-center justify-center rounded-full bg-[var(--destructive)] px-0.5 text-[8px] font-semibold leading-none text-white",children:o})]}),m&&h.jsxs("div",{className:"absolute right-0 top-full z-50 mt-2 w-[min(320px,calc(100vw-2rem))] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] shadow-lg",children:[h.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-4 py-3",children:[h.jsx("span",{className:"text-sm font-semibold",children:w("common.notifications")}),o>0&&h.jsxs("button",{type:"button",onClick:Y,"aria-label":w("common.mark_all_read"),className:"inline-flex items-center gap-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[h.jsx(I_,{className:"h-3.5 w-3.5"}),w("common.mark_all_read")]})]}),h.jsx("div",{className:"max-h-80 overflow-y-auto",children:b&&u.length===0?h.jsx("div",{className:"flex justify-center py-8",children:h.jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-[var(--border)] border-t-[var(--accent)]"})}):u.length===0?h.jsxs("div",{className:"flex flex-col items-center gap-3 py-8",children:[h.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),h.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:w("common.no_notifications")})]}):u.map(L=>{const H=a0(L);return h.jsxs("div",{className:`flex items-start gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0 transition-colors ${H?"cursor-pointer hover:bg-[var(--bg-input)]":""} ${L.isRead?"opacity-60":"bg-[var(--accent)]/5"}`,onClick:()=>{H&&(L.isRead||N(L.id),y(!1),i(H))},children:[h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("p",{className:"truncate text-sm font-medium",title:L.title,children:L.title}),h.jsx("p",{className:"truncate text-xs text-[var(--text-secondary)]",title:L.body,children:L.body}),h.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)] opacity-60",children:new Date(L.createdAt).toLocaleString()})]}),!L.isRead&&h.jsx("button",{type:"button",onClick:B=>{B.stopPropagation(),N(L.id)},"aria-label":w("common.mark_as_read"),className:"shrink-0 rounded-[4px] p-1 text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:h.jsx(P_,{className:"h-3.5 w-3.5"})})]},L.id)})})]})]})}function n0(i){return i&&i.trim().length>0?i:null}function Ep(i,u=50){return n0(i.name)??Wh(i.description,u)}function l0(i){return i.description}function kp(i){return`#${i.id} ${l0(i)}`}function K1(i,u=100){return{text:`#${i.id} ${Ep(i,u)}`,title:kp(i)}}function i0(i){return{tasks:i.tasks.map(u=>({type:"task",id:u.id,title:`#${u.id} ${Ep(u)}`,subtitle:`${u.status} · ${u.project_key}`,hoverTitle:kp(u)})),workers:(i.workers??[]).map(u=>({type:"worker",id:u.id,title:u.name,subtitle:`${u.hostname} · ${u.status}`})),projects:i.projects.map(u=>({type:"project",id:u.key,title:u.name,subtitle:u.repository}))}}const r0=300,wh={tasks:gb,workers:ap,projects:ib},u0={tasks:"tasks",workers:"workers",projects:"projects"};function wp({renderTrigger:i}={}){const[u,s]=g.useState(""),[o,f]=g.useState({tasks:[],workers:[],projects:[]}),[m,y]=g.useState(!1),[b,v]=g.useState(!1),[p,w]=g.useState(0),E=g.useRef(null),N=g.useRef(null),Y=g.useRef(void 0),L=g.useRef(void 0),H=Fa(),{t:B}=Vt(),U=g.useMemo(()=>[...o.tasks,...o.workers,...o.projects],[o]),K=g.useCallback(async W=>{var Pe;if(!W.trim()){f({tasks:[],workers:[],projects:[]});return}(Pe=L.current)==null||Pe.abort();const se=new AbortController;L.current=se;try{y(!0);const Je=await Qr.get("web/search",{searchParams:{q:W},signal:se.signal}).json();f(i0(Je)),w(0)}catch(Je){if(Je instanceof DOMException&&Je.name==="AbortError")return}finally{se.signal.aborted||y(!1)}},[]);g.useEffect(()=>(Y.current&&clearTimeout(Y.current),Y.current=setTimeout(()=>K(u),r0),()=>{Y.current&&clearTimeout(Y.current)}),[u,K]),g.useEffect(()=>{function W(se){se.key==="/"&&!b&&!(se.target instanceof HTMLInputElement||se.target instanceof HTMLTextAreaElement)&&(se.preventDefault(),v(!0)),se.key==="Escape"&&b&&(se.preventDefault(),X())}return document.addEventListener("keydown",W),()=>document.removeEventListener("keydown",W)},[b]),g.useEffect(()=>{b&&setTimeout(()=>{var W;return(W=N.current)==null?void 0:W.focus()},50)},[b]);function X(){v(!1),s(""),f({tasks:[],workers:[],projects:[]}),w(0)}function ue(W){switch(X(),W.type){case"task":H(`/tasks/${W.id}`);break;case"worker":H(`/workers/${W.id}`);break;case"project":H(`/projects/${W.id}`);break}}function ce(W){W.key==="ArrowDown"?(W.preventDefault(),w(se=>Math.min(se+1,U.length-1))):W.key==="ArrowUp"?(W.preventDefault(),w(se=>Math.max(se-1,0))):W.key==="Enter"&&U[p]&&(W.preventDefault(),ue(U[p]))}const ye=U.length>0;let F=0;return h.jsxs(h.Fragment,{children:[i?i(()=>v(!0)):h.jsxs("button",{type:"button",onClick:()=>v(!0),className:"flex items-center gap-2 rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-1.5 text-xs text-[var(--text-muted)] transition-colors hover:border-[var(--text-muted)]",children:[h.jsx(tp,{className:"h-3.5 w-3.5"}),h.jsx("span",{children:B("common.search_placeholder")}),h.jsx("kbd",{className:"ml-2 rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] px-1.5 py-0.5 text-[11px] text-[var(--text-muted)]",children:"/"})]}),b&&h.jsx("div",{ref:E,className:"fixed inset-0 z-[100] flex items-start justify-center pt-[calc(var(--safe-area-top,0px)+16px)] md:pt-[15vh]",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},onClick:W=>{W.target===E.current&&X()},children:h.jsxs("div",{className:"mx-3 w-full max-w-[640px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] shadow-2xl sm:mx-4 md:mx-0",children:[h.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--border)] px-4 py-3",children:[h.jsx("span",{className:"text-sm text-[var(--accent)]",children:"/"}),h.jsx("input",{ref:N,type:"text",placeholder:B("common.search_input_placeholder"),value:u,onChange:W=>s(W.target.value),onKeyDown:ce,className:"flex-1 bg-transparent text-sm text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none"}),m&&h.jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-[var(--border)] border-t-[var(--accent)]"})]}),h.jsx("div",{className:"max-h-[50vh] overflow-y-auto sm:max-h-[60vh] md:max-h-[400px]",children:u.trim()&&!ye&&!m?h.jsx("div",{className:"py-10 text-center text-xs text-[var(--text-muted)]",children:B("common.no_search_results",{query:u})}):Object.keys(wh).map(W=>{const se=o[W];if(se.length===0)return null;const Pe=wh[W],Je=F;return F+=se.length,h.jsxs("div",{children:[h.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 text-[var(--text-muted)]",children:[h.jsx(Pe,{className:"h-3 w-3"}),h.jsx("span",{className:"text-[11px] lowercase tracking-wider",children:u0[W]})]}),se.map((Ce,At)=>{const ut=Je+At,Me=ut===p;return h.jsxs("button",{type:"button",className:`flex w-full items-center gap-3 px-4 py-2.5 text-left transition-colors ${Me?"bg-[var(--accent)]/10 text-[var(--accent)]":"hover:bg-[var(--bg-input)]"}`,onClick:()=>ue(Ce),onMouseEnter:()=>w(ut),children:[h.jsx("span",{className:`text-xs ${Me?"text-[var(--accent)]":"text-[var(--text-muted)]"}`,children:Me?">":" "}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("p",{className:"truncate text-sm",title:Ce.hoverTitle??Ce.title,children:Ce.title}),Ce.subtitle&&h.jsx("p",{className:"truncate text-xs text-[var(--text-muted)]",title:Ce.subtitle,children:Ce.subtitle})]})]},`${Ce.type}-${Ce.id}`)})]},W)})}),h.jsxs("div",{className:"hidden items-center gap-4 border-t border-[var(--border)] px-4 py-2 md:flex",children:[h.jsxs("span",{className:"flex items-center gap-1 text-[11px] text-[var(--text-muted)]",children:[h.jsx("kbd",{className:"rounded-[4px] border border-[var(--border)] px-1",children:"↑↓"})," ",B("common.navigate_hint")]}),h.jsxs("span",{className:"flex items-center gap-1 text-[11px] text-[var(--text-muted)]",children:[h.jsx("kbd",{className:"rounded-[4px] border border-[var(--border)] px-1",children:"↵"})," ",B("common.select_hint")]}),h.jsxs("span",{className:"flex items-center gap-1 text-[11px] text-[var(--text-muted)]",children:[h.jsx("kbd",{className:"rounded-[4px] border border-[var(--border)] px-1",children:"esc"})," ",B("common.close_hint")]})]})]})})]})}const o0={danger:"var(--destructive)",warning:"var(--warning)",accent:"var(--accent)"};function Th(i){return Array.from(i.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'))}function s0({isOpen:i,onClose:u,onConfirm:s,title:o,message:f,confirmLabel:m,cancelLabel:y,confirmVariant:b="danger",isLoading:v,children:p}){const{t:w}=Vt(),E=g.useId(),N=m??w("common.confirm"),Y=y??w("common.cancel"),L=g.useRef(null),H=g.useRef(null),B=o0[b];g.useEffect(()=>{if(!i)return;H.current=document.activeElement;const K=requestAnimationFrame(()=>{if(L.current){const X=Th(L.current);X.length>0&&X[0].focus()}});return()=>{var X;cancelAnimationFrame(K),(X=H.current)==null||X.focus()}},[i]);const U=g.useCallback(K=>{if(K.key==="Escape"){u();return}if(K.key==="Tab"&&L.current){const X=Th(L.current);if(X.length===0)return;const ue=X[0],ce=X[X.length-1];K.shiftKey?document.activeElement===ue&&(K.preventDefault(),ce.focus()):document.activeElement===ce&&(K.preventDefault(),ue.focus())}},[u]);return i?h.jsx("div",{onClick:u,style:{position:"fixed",inset:0,zIndex:50,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"max(1rem, 10vh)",paddingLeft:"1rem",paddingRight:"1rem",backgroundColor:"var(--modal-backdrop, rgba(12,12,12,0.6))"},children:h.jsxs("div",{ref:L,role:"dialog","aria-modal":"true","aria-labelledby":E,onClick:K=>K.stopPropagation(),onKeyDown:U,style:{width:"100%",maxWidth:"480px",backgroundColor:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"4px",padding:"1.5rem"},children:[h.jsx("div",{style:{marginBottom:"1.25rem"},children:h.jsxs("div",{id:E,style:{color:"var(--accent)",fontSize:"0.875rem",fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:[h.jsx(np,{style:{width:"1rem",height:"1rem"}}),o]})}),h.jsxs("div",{style:{marginBottom:"1.25rem"},children:[h.jsx("p",{style:{color:"var(--text-muted)",fontSize:"0.75rem",lineHeight:"1.5"},children:f}),p]}),h.jsxs("div",{style:{display:"flex",gap:"0.75rem"},children:[h.jsx("button",{type:"button",onClick:u,disabled:v,className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:border-[var(--text-muted)]",style:{flex:1,padding:"0.5rem",backgroundColor:"transparent",border:"1px solid var(--border)",borderRadius:"4px",fontSize:"0.75rem",cursor:v?"not-allowed":"pointer",opacity:v?.7:1,transition:"color 0.15s, border-color 0.15s"},children:Y}),h.jsx("button",{type:"button",onClick:s,disabled:v,style:{flex:1,padding:"0.5rem",backgroundColor:B,color:"#0C0C0C",border:"none",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600,cursor:v?"not-allowed":"pointer",opacity:v?.7:1},children:v?w("common.processing"):N})]})]})}):null}const jh="overlord-pwa-install-dismissed";function c0(){const i=navigator.userAgent;return/iP(hone|od|ad)/.test(i)&&/WebKit/.test(i)&&!/(CriOS|FxiOS|OPiOS|mercury)/.test(i)}function f0(){return navigator.standalone===!0||window.matchMedia("(display-mode: standalone)").matches}function d0(){const{t:i}=Vt(),[u,s]=g.useState("hidden"),[o,f]=g.useState(!1),m=g.useRef(null),y=g.useRef(void 0);g.useEffect(()=>{if(f0()||localStorage.getItem(jh)||window.innerWidth>=768)return;const p=E=>{E.preventDefault(),m.current=E};window.addEventListener("beforeinstallprompt",p);const w=setTimeout(()=>s("visible"),1e3);return()=>{window.removeEventListener("beforeinstallprompt",p),clearTimeout(w),clearTimeout(y.current)}},[]);function b(){localStorage.setItem(jh,"1"),s("dismissing"),y.current=setTimeout(()=>s("hidden"),200)}async function v(){if(m.current){await m.current.prompt();const{outcome:p}=await m.current.userChoice;p==="accepted"&&b(),m.current=null}else c0()&&f(!0)}return u==="hidden"?null:h.jsx("div",{className:`fixed bottom-4 left-4 right-4 z-40 md:hidden ${u==="dismissing"?"animate-slide-down":"animate-slide-up"}`,role:"dialog","aria-label":i("pwa_install.title"),children:h.jsxs("div",{className:"overflow-hidden rounded-[4px] border border-[var(--accent)]/40 bg-[var(--bg-card)] shadow-[0_8px_32px_rgba(0,0,0,0.2)]",children:[h.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--accent)]/20 bg-[var(--accent)]/[0.06] px-3 py-1.5",children:[h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx("div",{className:"h-1.5 w-1.5 rounded-full bg-[var(--accent)]"}),h.jsx("span",{className:"text-[9px] font-medium text-[var(--accent)]",children:i("pwa_install.title")})]}),h.jsx("button",{onClick:b,className:"p-1 text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)]",children:h.jsx(lp,{size:14})})]}),h.jsx("div",{className:"px-3.5 py-3",children:o?h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[h.jsx("span",{className:"text-[var(--accent)]",children:"$"})," ",i("pwa_install.ios_command")]}),h.jsx("div",{className:"mt-2.5 flex flex-col gap-2.5",children:[i("pwa_install.ios_step_1"),i("pwa_install.ios_step_2"),i("pwa_install.ios_step_3")].map((p,w)=>h.jsxs("div",{className:"flex items-center gap-2.5",children:[h.jsx("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-[4px] bg-[var(--accent)]/[0.08]",children:h.jsx("span",{className:"text-xs font-semibold text-[var(--accent)]",children:w+1})}),h.jsxs("span",{className:"text-[10px] leading-snug text-[var(--text-secondary)]",children:[w===0&&h.jsx(hb,{size:12,className:"mr-1 inline-block align-text-bottom text-[var(--text-muted)]"}),p]})]},w))})]}):h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[h.jsx("span",{className:"text-[var(--accent)]",children:"$"})," ",i("pwa_install.command")]}),h.jsxs("div",{className:"mt-1.5 text-[10px] leading-relaxed text-[var(--text-secondary)]",children:["→ ",i("pwa_install.desc_1"),h.jsx("br",{}),"→ ",i("pwa_install.desc_2")]}),h.jsxs("div",{className:"mt-2.5 flex gap-2",children:[h.jsx("button",{onClick:v,className:"rounded-[4px] bg-[var(--accent)] px-4 py-1.5 text-[10px] font-semibold text-black transition-all hover:brightness-110",children:i("pwa_install.install")}),h.jsx("button",{onClick:b,className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-[10px] text-[var(--text-muted)] transition-colors hover:border-[var(--text-muted)]",children:i("pwa_install.skip")})]})]})})]})})}function m0(){const{t:i}=Vt(),[u,s]=g.useState(!1);return g.useEffect(()=>{if(!("serviceWorker"in navigator))return;let o=!1,f=null,m=null,y=null,b=null;function v(){o||s(!0)}navigator.serviceWorker.addEventListener("controllerchange",v);function p(E){if(f=E,E.waiting){s(!0);return}y=()=>{const N=E.installing;N&&(m=N,b=()=>{N.state==="installed"&&navigator.serviceWorker.controller&&(o||s(!0))},N.addEventListener("statechange",b))},E.addEventListener("updatefound",y)}navigator.serviceWorker.getRegistration().then(E=>{E&&!o&&p(E)});const w=setInterval(()=>{navigator.serviceWorker.getRegistration().then(E=>{!E||o||(E.update().catch(()=>{}),E.waiting&&s(!0))})},3e4);return()=>{o=!0,clearInterval(w),navigator.serviceWorker.removeEventListener("controllerchange",v),f&&y&&f.removeEventListener("updatefound",y),m&&b&&m.removeEventListener("statechange",b)}},[]),u?h.jsx("div",{className:"animate-slide-up fixed bottom-20 left-4 right-4 z-50 md:bottom-4 md:left-auto md:right-4 md:w-80",children:h.jsxs("div",{className:"flex items-center gap-3 rounded-[4px] border border-[var(--accent)]/40 bg-[var(--bg-card)] px-3.5 py-3 shadow-[0_8px_32px_rgba(0,0,0,0.2)]",children:[h.jsx(ep,{size:14,className:"shrink-0 text-[var(--accent)]"}),h.jsx("span",{className:"flex-1 text-[10px] text-[var(--text-secondary)]",children:i("pwa_update.message")}),h.jsx("button",{onClick:()=>window.location.reload(),className:"shrink-0 rounded-[4px] bg-[var(--accent)] px-3 py-1 text-[10px] font-semibold text-black transition-all hover:brightness-110",children:i("pwa_update.reload")})]})}):null}const Ur=64,h0=96,Rh=32;function p0({children:i,className:u}){const s=g.useRef(null),o=g.useRef(0),f=g.useRef("idle"),[m,y]=g.useState(0),[b,v]=g.useState("idle"),p=g.useCallback(U=>{f.current=U,v(U)},[]),w=g.useCallback(()=>{const U=s.current;return U?U.scrollTop<=0:!0},[]),E=g.useCallback(U=>{if(!w()){o.current=0;return}o.current=U.touches[0].clientY},[w]),N=g.useCallback(U=>{if(f.current==="refreshing"||o.current===0)return;const X=U.touches[0].clientY-o.current;if(X<=0){f.current!=="idle"&&(y(0),p("idle"));return}if(!w())return;U.preventDefault();const ue=Math.min(X*.5,h0);y(ue),p(ue>=Ur?"ready":"pulling")},[w,p]),Y=g.useCallback(()=>{f.current!=="refreshing"&&(f.current==="ready"?(p("refreshing"),y(Ur),setTimeout(()=>{window.location.reload()},300)):(y(0),p("idle")),o.current=0)},[p]);g.useEffect(()=>{const U=s.current;if(U)return U.addEventListener("touchstart",E,{passive:!0}),U.addEventListener("touchmove",N,{passive:!1}),U.addEventListener("touchend",Y,{passive:!0}),()=>{U.removeEventListener("touchstart",E),U.removeEventListener("touchmove",N),U.removeEventListener("touchend",Y)}},[E,N,Y]);const L=Math.min(m/Ur,1),H=b==="refreshing"?0:m/Ur*180,B=m>0||b==="refreshing";return h.jsxs("div",{ref:s,className:u,style:{overscrollBehaviorY:"contain"},children:[B&&h.jsx("div",{className:"pointer-events-none flex items-center justify-center md:hidden",style:{height:m,transition:b==="idle"?"height 200ms ease-out":void 0},children:h.jsx("div",{className:"flex items-center justify-center rounded-full bg-[var(--bg-card)] border border-[var(--border)]",style:{width:Rh,height:Rh,opacity:L,transition:b==="idle"?"opacity 200ms ease-out":void 0},children:b==="refreshing"?h.jsxs("svg",{width:16,height:16,viewBox:"0 0 16 16",className:"animate-spin",style:{color:"var(--accent)"},children:[h.jsx("circle",{cx:"8",cy:"8",r:"6",fill:"none",stroke:"currentColor",strokeWidth:"2",opacity:"0.3"}),h.jsx("path",{d:"M8 2a6 6 0 0 1 6 6",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):h.jsx("svg",{width:16,height:16,viewBox:"0 0 16 16",style:{color:b==="ready"?"var(--accent)":"var(--text-muted)",transform:`rotate(${H}deg)`,transition:"color 150ms"},children:h.jsx("path",{d:"M8 3v8M5 8l3 3 3-3",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}),i]})}const Tp=g.createContext({setActions:()=>{}});function J1(i){const{setActions:u}=g.useContext(Tp);g.useEffect(()=>(u(i),()=>u(null)),[i,u])}const jp=g.createContext({setSubtitle:()=>{}});function $1(i){const{setSubtitle:u}=g.useContext(jp),s=typeof i=="string"?i:(i==null?void 0:i.text)??null,o=typeof i=="string"?i:(i==null?void 0:i.title)??(i==null?void 0:i.text)??null;g.useEffect(()=>s?(u(o&&o!==s?{text:s,title:o}:s),()=>u(null)):(u(null),()=>u(null)),[s,o,u])}const y0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:Ph},{to:"/dashboard",label:"dashboard",icon:Ih}],g0=[{to:"/workers",label:"workers",icon:ap},{to:"/projects",label:"projects",icon:rb},{to:"/access-tokens",label:"tokens",icon:ob}],v0=[{to:"/docs/cli",label:"cli",icon:$s},{to:"/docs/api",label:"api",icon:lb},{to:"/docs/bot",label:"bot",icon:db},{to:"/docs/skill",label:"skill",icon:yb},{to:"/docs/all",label:"all",icon:sb}],_0=[{to:"/admin",label:"admin",icon:pb}],b0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:Ph},{to:"/dashboard",label:"dashboard",icon:Ih}],qr={"/home":{title:"common.breadcrumb_terminal",subtitle:"common.breadcrumb_terminal_sub"},"/dashboard":{title:"common.breadcrumb_dashboard",subtitle:"common.breadcrumb_dashboard_sub"},"/tasks":{title:"common.breadcrumb_tasks",subtitle:"common.breadcrumb_tasks_sub"},"/workers":{title:"common.breadcrumb_workers",subtitle:"common.breadcrumb_workers_sub"},"/projects":{title:"common.breadcrumb_projects",subtitle:"common.breadcrumb_projects_sub"},"/admin":{title:"common.breadcrumb_admin",subtitle:"common.breadcrumb_admin_sub"},"/profile":{title:"common.breadcrumb_profile",subtitle:"common.breadcrumb_profile_sub"},"/access-tokens":{title:"common.breadcrumb_tokens",subtitle:"common.breadcrumb_tokens_sub"},"/docs":{title:"common.breadcrumb_docs",subtitle:"common.breadcrumb_docs_sub"},"/docs/cli":{title:"common.breadcrumb_docs_cli",subtitle:"common.breadcrumb_docs_cli_sub"},"/docs/api":{title:"common.breadcrumb_docs_api",subtitle:"common.breadcrumb_docs_api_sub"},"/docs/skill":{title:"common.breadcrumb_docs_skill",subtitle:"common.breadcrumb_docs_skill_sub"},"/docs/bot":{title:"common.breadcrumb_docs",subtitle:"common.breadcrumb_docs_bot_sub"},"/docs/all":{title:"common.breadcrumb_docs",subtitle:"common.breadcrumb_docs_all_sub"}};function x0(i){const{t:u}=Vt();if(qr[i]){const o=qr[i];return{title:u(o.title),subtitle:u(o.subtitle)}}const s="/"+i.split("/").filter(Boolean)[0];if(qr[s]){const o=qr[s],f=i.split("/").filter(Boolean).slice(1).join(" / ");return{title:u(o.title),subtitle:f||u(o.subtitle)}}return{title:i.slice(1).replace(/\//g," // ")||"home"}}function S0(i,u){return i==="/home"?u==="/home":i==="/dashboard"?u==="/dashboard":u.startsWith(i)}function E0(){const i=gt(),{t:u}=Vt(),s={terminal:u("terminal_home.title"),dashboard:u("dashboard.title"),tasks:u("tasks.title"),workers:u("workers.title")};return h.jsxs("nav",{className:"flex items-center justify-around border-t border-[var(--border)] bg-[var(--bg-card)]",style:{height:48,paddingTop:4},children:[b0.map(({to:o,label:f,icon:m})=>{const y=S0(o,i.pathname);return h.jsxs(Js,{to:o,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(m,{size:18,className:y?"text-[var(--accent)]":"text-[var(--text-muted)]"}),h.jsx("span",{className:`text-[11px] lowercase ${y?"font-bold text-[var(--accent)]":"text-[var(--text-muted)]"}`,children:s[f]??f})]},o)}),h.jsx(wp,{renderTrigger:o=>h.jsxs("button",{type:"button",onClick:o,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(tp,{size:18,className:"text-[var(--text-muted)]"}),h.jsx("span",{className:"text-[11px] lowercase text-[var(--text-muted)]",children:u("common.search_placeholder")})]})})]})}function k0(){const i=Fa(),{t:u}=Vt();return h.jsxs("header",{className:"flex items-center justify-between border-b border-[var(--border)] bg-[var(--bg-card)] px-4 md:hidden",style:{height:"calc(56px + env(safe-area-inset-top, 0px))",minHeight:"calc(56px + env(safe-area-inset-top, 0px))",paddingTop:"env(safe-area-inset-top, 0px)"},children:[h.jsxs("button",{onClick:()=>i("/home"),className:"flex items-center gap-2",style:{background:"none",border:"none",padding:0},children:[h.jsx("div",{className:"flex h-6 w-6 items-center justify-center rounded-[4px] bg-[var(--accent)]",children:h.jsx("span",{className:"text-sm font-semibold",style:{color:"#0C0C0C"},children:"~"})}),h.jsx("span",{className:"text-sm font-bold lowercase text-[var(--text-primary)]",children:u("common.overlord")})]}),h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx("button",{onClick:()=>i("/profile"),className:"p-2 text-[var(--text-secondary)] transition-colors hover:text-[var(--text-primary)]","aria-label":u("common.profile"),children:h.jsx(_b,{size:18})}),h.jsx(Sp,{}),h.jsx(cp,{})]})]})}function Lr({label:i,items:u,collapsed:s}){return h.jsxs("div",{className:"mt-4 first:mt-0",children:[!s&&h.jsx("div",{className:"mb-2 px-3 text-xs lowercase",style:{color:"var(--text-muted)"},children:i}),u.map(({to:o,label:f,icon:m})=>h.jsx(Js,{to:o,className:({isActive:y})=>`flex items-center text-sm lowercase transition-colors ${s?"justify-center py-3":"gap-2.5 px-3 py-1.5"} ${y?"text-[var(--accent)] bg-[var(--accent)]/5":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:({isActive:y})=>h.jsxs(h.Fragment,{children:[h.jsx(m,{size:14,style:{flexShrink:0}}),!s&&h.jsx("span",{children:y?`> ${f}`:` ${f}`})]})},o))]})}function w0(){const{user:i,logout:u}=xa(),s=Fa(),[o,f]=g.useState(!1),m=Eb(),{t:y}=Vt(),{sidebarCollapsed:b,toggleSidebar:v}=wb();function p(){u(),s("/login")}return h.jsxs("aside",{className:"hidden md:flex flex-col border-r border-[var(--border)] transition-[width,min-width] duration-300 overflow-hidden",style:{width:b?56:240,minWidth:b?56:240,backgroundColor:"var(--bg-card)"},children:[h.jsx("div",{className:"flex items-center px-5",style:{height:48},children:h.jsxs("button",{onClick:()=>s("/home"),className:"flex items-center gap-2.5",style:{background:"none",border:"none",padding:0},children:[h.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-[4px] bg-[var(--accent)]",style:{flexShrink:0},children:h.jsx("span",{className:"text-lg font-semibold",style:{color:"#0C0C0C"},children:"~"})}),!b&&h.jsx("span",{className:"text-base font-bold lowercase tracking-tight",style:{color:"var(--text-primary)"},children:y("common.overlord")})]})}),h.jsxs("nav",{className:"flex-1 px-3 pt-2",children:[h.jsx(Lr,{label:y("common.tasks_section"),items:y0,collapsed:b}),h.jsx(Lr,{label:y("common.fleet_section"),items:g0,collapsed:b}),h.jsx(Lr,{label:y("common.docs_section"),items:v0,collapsed:b}),m&&h.jsx(Lr,{label:y("common.admin_section"),items:_0,collapsed:b})]}),h.jsx("div",{className:`px-3 py-1 ${b?"flex justify-center":""}`,children:h.jsx("button",{onClick:v,className:"flex items-center justify-center w-full py-1.5 rounded-[4px] text-[var(--text-secondary)] transition-colors hover:text-[var(--accent)] hover:bg-[var(--accent)]/5","aria-label":b?"expand sidebar":"collapse sidebar",children:b?h.jsx(tb,{size:14}):h.jsx(eb,{size:14})})}),h.jsx("div",{className:"border-t border-[var(--border)] p-3",children:h.jsxs("div",{className:`flex items-center py-2 ${b?"justify-center":"gap-3 px-3"}`,children:[h.jsx("button",{onClick:()=>s("/profile"),className:"flex h-7 w-7 items-center justify-center text-xs font-bold text-black transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",borderRadius:4,flexShrink:0},title:y("common.profile"),children:((i==null?void 0:i.username)??"u")[0].toUpperCase()}),!b&&h.jsxs(h.Fragment,{children:[h.jsxs("button",{onClick:()=>s("/profile"),className:"min-w-0 flex-1 text-left transition-colors hover:opacity-80",title:y("common.profile"),children:[h.jsx("div",{className:"truncate text-sm lowercase",style:{color:"var(--text-primary)"},children:(i==null?void 0:i.username)??"user"}),h.jsx("div",{className:"truncate text-xs lowercase",style:{color:"var(--text-muted)"},children:(i==null?void 0:i.role)??"user"})]}),h.jsx("button",{onClick:()=>f(!0),className:"p-1 text-[var(--text-secondary)] transition-colors hover:text-[var(--accent)]","aria-label":y("common.log_out"),children:h.jsx(fb,{size:14})})]})]})}),h.jsx(s0,{isOpen:o,onClose:()=>f(!1),onConfirm:p,title:y("common.logout_title"),message:y("common.logout_message"),confirmLabel:y("common.logout"),confirmVariant:"warning"})]})}function T0({headerActions:i,subtitleOverride:u}){const s=gt(),{title:o,subtitle:f}=x0(s.pathname),m=u??f,y=typeof m=="string"?m:m==null?void 0:m.text,b=typeof m=="string"?m:(m==null?void 0:m.title)??(m==null?void 0:m.text);return h.jsxs("header",{className:"hidden md:flex items-center justify-between border-b border-[var(--border)] px-5",style:{height:48,minHeight:48,backgroundColor:"var(--bg-card)"},children:[h.jsxs("div",{className:"text-sm lowercase",children:[h.jsx("span",{style:{color:"var(--text-primary)"},children:o}),y&&h.jsxs("span",{style:{color:"var(--text-muted)"},title:b,children:[" ","// ",Wh(y,40)]})]}),h.jsxs("div",{className:"flex items-center gap-3",children:[i,h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx(wp,{}),h.jsx(Sp,{}),h.jsx(cp,{})]})]})]})}function j0(){const[i,u]=g.useState(null),[s,o]=g.useState(null),f=gt(),m=f.pathname==="/home",y=/^\/tasks\/\d+$/.test(f.pathname),b=f.pathname.startsWith("/docs");return g.useEffect(()=>up.getState().init(),[]),h.jsxs("div",{className:"fixed inset-x-0 top-0 flex w-full overflow-hidden font-mono md:flex-row",style:{height:"var(--app-height, 100dvh)",minHeight:"var(--app-height, 100dvh)"},children:[h.jsx(w0,{}),h.jsxs("div",{"data-testid":"app-main-column",className:"flex min-h-0 flex-1 flex-col overflow-hidden pb-[calc(48px+var(--safe-area-bottom,0px))] md:pb-0",children:[h.jsx(k0,{}),!b&&h.jsx(T0,{headerActions:i,subtitleOverride:s}),h.jsx(p0,{className:m||y?"min-h-0 flex-1 overflow-hidden bg-[var(--bg-primary)]":"min-h-0 flex-1 overflow-auto bg-[var(--bg-primary)] p-4 pb-6 md:p-6 md:pb-6",children:h.jsx(Tp.Provider,{value:{setActions:u},children:h.jsx(jp.Provider,{value:{setSubtitle:o},children:h.jsx(d_,{})})})}),h.jsx(d0,{}),h.jsx(m0,{}),h.jsx("div",{className:"safe-area-bottom-fill fixed inset-x-0 bottom-0 z-30 bg-[var(--bg-card)] md:hidden",children:h.jsx(E0,{})})]})]})}function Ah(i){var s;const u=(s=i.state)==null?void 0:s.from;return u?{from:u}:{from:{pathname:i.pathname,search:i.search}}}function li({children:i,requireAdmin:u=!1}){const{accessToken:s,user:o,requireTotpSetup:f,initializing:m}=xa(),y=gt();if(m)return h.jsx("div",{className:"flex h-screen items-center justify-center",children:h.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-[var(--border)] border-t-[var(--accent)]"})});if(!s)return h.jsx(ll,{to:"/login",state:Ah(y),replace:!0});if(f){const b=Ah(y);return y.pathname!=="/totp-setup"&&y.pathname!=="/bind"?h.jsx(ll,{to:"/totp-setup",state:b,replace:!0}):y.pathname==="/bind"?(sessionStorage.setItem("overlord_bind_redirect",JSON.stringify(b.from)),h.jsx(ll,{to:"/totp-setup",state:b,replace:!0})):h.jsx(h.Fragment,{children:i})}return u&&(o==null?void 0:o.role)!==ip.ADMIN?h.jsx(ll,{to:"/home",replace:!0}):h.jsx(h.Fragment,{children:i})}function R0({children:i}){const{theme:u,resolved:s,setResolved:o}=sp();return g.useEffect(()=>{if(u!=="system"){o(u);return}const f=window.matchMedia("(prefers-color-scheme: dark)");o(f.matches?"dark":"light");const m=y=>o(y.matches?"dark":"light");return f.addEventListener("change",m),()=>f.removeEventListener("change",m)},[u,o]),g.useEffect(()=>{document.documentElement.classList.toggle("dark",s==="dark")},[s]),h.jsx(h.Fragment,{children:i})}class A0 extends g.Component{constructor(u){super(u),this.state={hasError:!1,error:null}}static getDerivedStateFromError(u){return{hasError:!0,error:u}}render(){var u;return this.state.hasError?h.jsxs("div",{className:"flex h-full min-h-[300px] flex-col items-center justify-center gap-4 p-8 font-mono",children:[h.jsx("span",{className:"text-lg font-bold text-[var(--destructive)]",children:Yr("common.runtime_error")}),h.jsx("p",{className:"max-w-md text-center text-xs text-[var(--text-muted)]",children:((u=this.state.error)==null?void 0:u.message)||Yr("common.an_unexpected_error_occurred")}),h.jsxs("button",{onClick:()=>{this.setState({hasError:!1,error:null}),window.location.reload()},className:"flex items-center gap-1.5 rounded-[4px] border border-[var(--border)] px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[h.jsx(ep,{className:"h-3.5 w-3.5"}),Yr("common.reload")]})]}):this.props.children}}function z0({isOpen:i}){const u=Fa(),{logout:s,setSessionExpired:o}=xa(),{t:f}=Vt();function m(){s(),o(!1),u("/login")}return i?h.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[h.jsx("div",{className:"fixed inset-0 bg-[var(--modal-backdrop)]"}),h.jsx("div",{className:"relative z-10 w-full max-w-[480px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:h.jsxs("div",{className:"flex flex-col items-center px-8 py-10",children:[h.jsx("div",{className:"mb-5 flex h-14 w-14 items-center justify-center rounded-full bg-[var(--warning)]/10",children:h.jsx(cb,{className:"h-7 w-7 text-[var(--warning)]"})}),h.jsx("h3",{className:"mb-2 text-base font-bold text-[var(--text-primary)]",children:f("auth.session_expired")}),h.jsx("p",{className:"mb-8 text-center text-xs text-[var(--text-secondary)]",children:f("auth.session_expired_message")}),h.jsx("button",{type:"button",className:"w-full rounded-[4px] bg-[var(--accent)] px-3 py-2.5 text-xs font-medium text-black hover:opacity-90 transition-opacity",onClick:m,children:f("auth.go_to_login")})]})})]}):null}const zh=5;let ba=[];const Bs=new Set;function Rp(){Bs.forEach(i=>i())}function O0(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function Wa(i,u,s=4e3){const o=O0();return ba=[...ba,{id:o,variant:i,message:u,duration:s}],ba.length>zh&&(ba=ba.slice(ba.length-zh)),Rp(),o}Wa.success=(i,u)=>Wa("success",i,u);Wa.error=(i,u)=>Wa("error",i,u);Wa.warning=(i,u)=>Wa("warning",i,u);Wa.info=(i,u)=>Wa("info",i,u);function C0(i){ba=ba.filter(u=>u.id!==i),Rp()}function D0(){const[,i]=g.useState(0);return g.useEffect(()=>{const u=()=>i(s=>s+1);return Bs.add(u),()=>{Bs.delete(u)}},[]),ba}const N0={success:{icon:ab,borderColor:"var(--accent)"},error:{icon:nb,borderColor:"var(--destructive)"},warning:{icon:np,borderColor:"var(--warning)"},info:{icon:ub,borderColor:"var(--info)"}};function M0({item:i}){const u=N0[i.variant],s=u.icon,{t:o}=Vt(),f=g.useCallback(()=>C0(i.id),[i.id]);return g.useEffect(()=>{if(!i.duration)return;const m=setTimeout(f,i.duration);return()=>clearTimeout(m)},[i.duration,f]),h.jsxs("div",{className:"flex items-center gap-3 rounded-[4px] bg-[var(--bg-card)] px-4 py-3 shadow-lg",style:{borderLeft:`3px solid ${u.borderColor}`},role:"alert",children:[h.jsx(s,{className:"h-4 w-4 shrink-0",style:{color:u.borderColor}}),h.jsx("p",{className:"flex-1 text-xs text-[var(--text-primary)]",children:i.message}),h.jsx("button",{onClick:f,className:"shrink-0 rounded-[4px] p-0.5 text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)]","aria-label":o("common.dismiss_notification"),children:h.jsx(lp,{className:"h-3.5 w-3.5"})})]})}function U0(){const i=D0();return i.length===0?null:h.jsx("div",{className:"pointer-events-none fixed right-4 top-4 z-[9999] flex w-80 max-w-[calc(100vw-2rem)] flex-col gap-2",children:i.map(u=>h.jsx("div",{className:"pointer-events-auto",children:h.jsx(M0,{item:u})},u.id))})}const q0=g.lazy(()=>ne(()=>import("./LandingPage-9OL5ViAD.js"),__vite__mapDeps([0,1,2,3,4,5]))),L0=g.lazy(()=>ne(()=>import("./LoginPage-zjkljmUG.js"),[])),H0=g.lazy(()=>ne(()=>import("./TotpSetupPage-hm7e8ja5.js"),[])),B0=g.lazy(()=>ne(()=>import("./NotFoundPage-DpUSdTHq.js"),[])),Y0=g.lazy(()=>ne(()=>import("./HomePage-Bd0qbwuy.js"),__vite__mapDeps([6,7,8,9,10,11,12,13,14,1]))),G0=g.lazy(()=>ne(()=>import("./TerminalHomePage-AG4elUye.js"),__vite__mapDeps([15,16,17,18,19,10,11,20,8,12,13,21,22,23]))),V0=g.lazy(()=>ne(()=>import("./TaskListPage-CysAqfJ7.js"),__vite__mapDeps([24,18,19,7,8,12,14,25,20,5,26,9,21,27,11]))),X0=g.lazy(()=>ne(()=>import("./TaskDetailPage-Bci7hNZD.js"),__vite__mapDeps([28,18,19,16,17,12,20,8,14,29,22,25,30,31,32]))),Q0=g.lazy(()=>ne(()=>import("./WorkerListPage-BS3r46aW.js"),__vite__mapDeps([33,8,34,35,36,37,38,23,5,31,20,26,9,13,21]))),Z0=g.lazy(()=>ne(()=>import("./WorkerDetailPage-B1Dx_37R.js"),__vite__mapDeps([39,12,8,40,34,13,14,41,29]))),K0=g.lazy(()=>ne(()=>import("./WorkerSetupGuidePage-Bj7AFF_z.js"),__vite__mapDeps([35,36,37,38,23]))),J0=g.lazy(()=>ne(()=>import("./ProjectListPage-B2LJx5SB.js"),__vite__mapDeps([42,20,19,26,9,12,13,21]))),$0=g.lazy(()=>ne(()=>import("./ProjectDetailPage-DcxPgXCF.js"),__vite__mapDeps([43,44,20,14,12,8,40,13,45,41,21]))),W0=g.lazy(()=>ne(()=>import("./EditProjectPage-YrALdZ6_.js"),__vite__mapDeps([46,20,44,19,21]))),F0=g.lazy(()=>ne(()=>import("./PipelineEditorPage-BmkHpPoJ.js"),__vite__mapDeps([47,20]))),I0=g.lazy(()=>ne(()=>import("./ProfilePage-D3DWeoQM.js"),__vite__mapDeps([48,49,40,13]))),P0=g.lazy(()=>ne(()=>import("./BindPlatformPage-CUbHhfZo.js"),[])),e1=g.lazy(()=>ne(()=>import("./AccessTokensPage-BoVgUrzP.js"),__vite__mapDeps([50,20,26,9,12,13,21,5,41]))),t1=g.lazy(()=>ne(()=>import("./CliReferencePage-kHDw2pA7.js"),__vite__mapDeps([51,52,5,21]))),a1=g.lazy(()=>ne(()=>import("./ApiReferencePage-Kzj97VkN.js"),__vite__mapDeps([53,52,5,21]))),n1=g.lazy(()=>ne(()=>import("./SkillPage-C5bC1S4B.js"),__vite__mapDeps([54,55,5,30]))),l1=g.lazy(()=>ne(()=>import("./DocsLayout-j09z0-2-.js"),__vite__mapDeps([56,29]))),i1=g.lazy(()=>ne(()=>import("./InstallationPage-QKu8ZH_9.js"),__vite__mapDeps([57,55,5]))),r1=g.lazy(()=>ne(()=>import("./DeveloperSetupPage-TGy2mo4p.js"),__vite__mapDeps([58,55,5]))),u1=g.lazy(()=>ne(()=>import("./WorkerSetupPage-C3mkq4zM.js"),__vite__mapDeps([59,55,5]))),o1=g.lazy(()=>ne(()=>import("./BotSetupPage-DEj-NMfd.js"),__vite__mapDeps([60,55,5]))),s1=g.lazy(()=>ne(()=>import("./LocalDevelopmentPage-DktRuJdo.js"),__vite__mapDeps([61,55,5]))),c1=g.lazy(()=>ne(()=>import("./WorkerOperationsPage-EplOzeIS.js"),[])),f1=g.lazy(()=>ne(()=>import("./DeploymentPage-B5XPM33m.js"),__vite__mapDeps([62,55,5]))),Oh=g.lazy(()=>ne(()=>import("./BotIntegrationPage-Cz1-B_ag.js"),[])),d1=g.lazy(()=>ne(()=>import("./PipelineConfigPage-ByKxXAqM.js"),__vite__mapDeps([63,55,5]))),m1=g.lazy(()=>ne(()=>import("./DevWorkflowPage-CdyR3M_a.js"),__vite__mapDeps([64,55,5]))),h1=g.lazy(()=>ne(()=>import("./PermissionsPage-AtbdWCh6.js"),[])),p1=g.lazy(()=>ne(()=>import("./EnvVariablesPage-DUV5GbgH.js"),__vite__mapDeps([65,55,5]))),y1=g.lazy(()=>ne(()=>import("./ArchitecturePage-Dj1I7Lif.js"),__vite__mapDeps([66,55,5]))),g1=g.lazy(()=>ne(()=>import("./ChangelogPage-DerOZcUF.js"),[])),v1=g.lazy(()=>ne(()=>import("./AgentCliPage-C7GiYV6z.js"),__vite__mapDeps([67,55,5]))),_1=g.lazy(()=>ne(()=>import("./DocsIndexPage-CKLFPHA9.js"),__vite__mapDeps([68,37,2,3,38,32]))),b1=g.lazy(()=>ne(()=>import("./AdminPage-P2z0Fl0Y.js"),__vite__mapDeps([69,4,2,70,38]))),x1=g.lazy(()=>ne(()=>import("./DeveloperManage-CADxGSzH.js"),__vite__mapDeps([71,20,49,26,9,13,8,21,4,45,22]))),S1=g.lazy(()=>ne(()=>import("./BotManage-DGCb_1uD.js"),__vite__mapDeps([72,20,55,5,41,21,26,9,13,8,2,45]))),E1=g.lazy(()=>ne(()=>import("./TokenManage-CaQAVdV3.js"),__vite__mapDeps([73,36,5,30,26,9,13,8,21]))),k1=g.lazy(()=>ne(()=>import("./AuditLogPage-D1OTE5S1.js"),__vite__mapDeps([74,20,26,9,70,27,11]))),w1=g.lazy(()=>ne(()=>import("./SettingsPage-Dc7kQQ-U.js"),[]));function T1(){return h.jsx("div",{className:"flex h-full items-center justify-center",children:h.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-[var(--border)] border-t-[var(--accent)]"})})}function j1(){const i=xa(u=>u.sessionExpired);return h.jsxs(R0,{children:[h.jsx(U0,{}),h.jsx(A0,{children:h.jsxs(H_,{children:[h.jsx(z0,{isOpen:i}),h.jsx(g.Suspense,{fallback:h.jsx(T1,{}),children:h.jsxs(h_,{children:[h.jsx(ee,{path:"/",element:h.jsx(q0,{})}),h.jsx(ee,{path:"/login",element:h.jsx(L0,{})}),h.jsx(ee,{path:"/totp-setup",element:h.jsx(li,{children:h.jsx(H0,{})})}),h.jsx(ee,{path:"/bind",element:h.jsx(li,{children:h.jsx(P0,{})})}),h.jsxs(ee,{element:h.jsx(li,{children:h.jsx(j0,{})}),children:[h.jsx(ee,{path:"/home",element:h.jsx(G0,{})}),h.jsx(ee,{path:"/dashboard",element:h.jsx(Y0,{})}),h.jsx(ee,{path:"/tasks",element:h.jsx(V0,{})}),h.jsx(ee,{path:"/tasks/:id",element:h.jsx(X0,{})}),h.jsx(ee,{path:"/workers",element:h.jsx(Q0,{})}),h.jsx(ee,{path:"/workers/setup",element:h.jsx(li,{requireAdmin:!0,children:h.jsx(K0,{})})}),h.jsx(ee,{path:"/workers/:id",element:h.jsx(Z0,{})}),h.jsx(ee,{path:"/projects",element:h.jsx(J0,{})}),h.jsx(ee,{path:"/projects/:key",element:h.jsx($0,{})}),h.jsx(ee,{path:"/projects/:key/edit",element:h.jsx(W0,{})}),h.jsx(ee,{path:"/projects/:key/pipeline",element:h.jsx(F0,{})}),h.jsx(ee,{path:"/profile",element:h.jsx(I0,{})}),h.jsx(ee,{path:"/access-tokens",element:h.jsx(e1,{})}),h.jsxs(ee,{path:"/docs",element:h.jsx(l1,{}),children:[h.jsx(ee,{index:!0,element:h.jsx(ll,{to:"cli",replace:!0})}),h.jsx(ee,{path:"cli",element:h.jsx(t1,{})}),h.jsx(ee,{path:"api",element:h.jsx(a1,{})}),h.jsx(ee,{path:"bot",element:h.jsx(Oh,{})}),h.jsx(ee,{path:"all",element:h.jsx(_1,{})}),h.jsx(ee,{path:"skill",element:h.jsx(n1,{})}),h.jsx(ee,{path:"installation",element:h.jsx(i1,{})}),h.jsx(ee,{path:"developer-setup",element:h.jsx(r1,{})}),h.jsx(ee,{path:"worker-setup",element:h.jsx(u1,{})}),h.jsx(ee,{path:"bot-setup",element:h.jsx(o1,{})}),h.jsx(ee,{path:"local-development",element:h.jsx(s1,{})}),h.jsx(ee,{path:"worker-operations",element:h.jsx(c1,{})}),h.jsx(ee,{path:"deployment",element:h.jsx(f1,{})}),h.jsx(ee,{path:"bot-integration",element:h.jsx(Oh,{})}),h.jsx(ee,{path:"pipeline-config",element:h.jsx(d1,{})}),h.jsx(ee,{path:"dev-workflow",element:h.jsx(m1,{})}),h.jsx(ee,{path:"permissions",element:h.jsx(h1,{})}),h.jsx(ee,{path:"env-variables",element:h.jsx(p1,{})}),h.jsx(ee,{path:"architecture",element:h.jsx(y1,{})}),h.jsx(ee,{path:"agent-cli",element:h.jsx(v1,{})}),h.jsx(ee,{path:"changelog",element:h.jsx(g1,{})})]}),h.jsxs(ee,{path:"/admin",element:h.jsx(li,{requireAdmin:!0,children:h.jsx(b1,{})}),children:[h.jsx(ee,{index:!0,element:h.jsx(ll,{to:"developers",replace:!0})}),h.jsx(ee,{path:"developers",element:h.jsx(x1,{})}),h.jsx(ee,{path:"bots",element:h.jsx(S1,{})}),h.jsx(ee,{path:"tokens",element:h.jsx(E1,{})}),h.jsx(ee,{path:"audit-logs",element:h.jsx(k1,{})}),h.jsx(ee,{path:"settings",element:h.jsx(w1,{})})]})]}),h.jsx(ee,{path:"*",element:h.jsx(B0,{})})]})})]})})]})}function Ap(i=window){var u,s;return((u=i.matchMedia)==null?void 0:u.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}async function R1(i=window,u="portrait"){var o,f;if(!Ap(i))return!1;const s=(f=(o=i.screen)==null?void 0:o.orientation)==null?void 0:f.lock;if(typeof s!="function")return!1;try{return await s.call(i.screen.orientation,u),!0}catch{return!1}}function A1(i){var u,s;return((u=i.matchMedia)==null?void 0:u.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}function z1(i){var s,o;const u=((s=i.navigator)==null?void 0:s.userAgent)??"";return/iPhone|iPad|iPod/i.test(u)||/Macintosh/i.test(u)&&(((o=i.navigator)==null?void 0:o.maxTouchPoints)??0)>1}function O1(i){const u=i.activeElement;if(!(u instanceof HTMLElement))return!1;const s=u.tagName;return u.isContentEditable||s==="INPUT"||s==="TEXTAREA"||s==="SELECT"}function C1(i){const u=i.screen;if(!u)return null;const s=Math.round(u.width),o=Math.round(u.height);return i.innerHeight>=i.innerWidth?Math.max(s,o):Math.min(s,o)}function D1(i=window,u=document){const s=u.documentElement,o=i.visualViewport??null;let f=-1;const m=()=>{const y=Math.round((o==null?void 0:o.height)??0),b=Math.round(i.innerHeight);let v=y>0?y:b;if(A1(i)&&z1(i)&&!O1(u)){const p=C1(i);p!==null&&(v=Math.max(v,b,p))}v!==f&&(f=v,s.style.setProperty("--app-height",`${v}px`))};return m(),i.addEventListener("resize",m),i.addEventListener("orientationchange",m),o==null||o.addEventListener("resize",m),()=>{i.removeEventListener("resize",m),i.removeEventListener("orientationchange",m),o==null||o.removeEventListener("resize",m)}}xa.getState().initialize();D1(window,document);const zp=window,N1=Ap(zp);R1(zp);if(N1){document.documentElement.classList.add("pwa-standalone");const i=window.matchMedia("(prefers-color-scheme: dark)").matches,u=localStorage.getItem("overlord-theme"),s=u==="dark"||u!=="light"&&i;document.body.style.backgroundColor=s?"#171717":"#FFFFFF",new MutationObserver(()=>{const o=document.documentElement.classList.contains("dark");document.body.style.backgroundColor=o?"#171717":"#FFFFFF"}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}dv.createRoot(document.getElementById("root")).render(h.jsx(g.StrictMode,{children:h.jsx(j1,{})}));export{yb as $,U1 as A,q1 as B,P_ as C,ip as D,ab as E,Y1 as F,V1 as G,Ns as H,np as I,B1 as J,ep as K,Jh as L,db as M,ll as N,sv as O,d0 as P,Wh as Q,Rr as R,ap as S,cp as T,_b as U,ob as V,H1 as W,lp as X,fb as Y,G1 as Z,lb as _,Vt as a,Js as a0,d_ as a1,X1 as a2,Q1 as a3,nb as a4,$s as b,xe as c,pb as d,sb as e,Fa as f,gt as g,Qr as h,Eb as i,h as j,up as k,Ep as l,kp as m,l0 as n,Ir as o,L1 as p,$1 as q,g as r,K1 as s,Wa as t,xa as u,s0 as v,J1 as w,tp as x,Ph as y,Z1 as z};
242
+ "{description}"`}};function Ab(i,u){const s=u.split(".");let o=i;for(const f of s){if(o==null||typeof o!="object")return u;o=o[f]}return typeof o=="string"?o:u}function zb(i,u){return u?i.replace(/\{(\w+)\}/g,(s,o)=>u[o]!=null?String(u[o]):`{${o}}`):i}function Yr(i,u){return zb(Ab(Rb,i),u)}function Vt(){return{t:g.useCallback((u,s)=>Yr(u,s),[])}}function cp(){const{theme:i,setTheme:u}=sp(),{t:s}=Vt(),o=i==="dark"||i==="system"&&typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches;function f(){u(o?"light":"dark")}return h.jsx("button",{onClick:f,className:"flex items-center gap-1.5 rounded-[4px] p-2 text-[var(--text-secondary)] transition-colors hover:bg-[var(--border)] hover:text-[var(--text-primary)]","aria-label":s(o?"common.switch_to_light":"common.switch_to_dark"),title:s(o?"common.light_mode":"common.dark_mode"),children:o?h.jsx(vb,{size:16}):h.jsx(mb,{size:16})})}class Ns extends Error{constructor(s,o,f){const m=s.status||s.status===0?s.status:"",y=s.statusText??"",b=`${m} ${y}`.trim(),v=b?`status code ${b}`:"an unknown error";super(`Request failed with ${v}: ${o.method} ${o.url}`);Ve(this,"response");Ve(this,"request");Ve(this,"options");this.name="HTTPError",this.response=s,this.request=o,this.options=f}}class fp extends Error{constructor(s){let o="Non-error value was thrown";try{typeof s=="string"?o=s:s&&typeof s=="object"&&"message"in s&&typeof s.message=="string"&&(o=s.message)}catch{}super(o);Ve(this,"name","NonError");Ve(this,"value");this.value=s}}class As extends Error{constructor(s){const o=s!=null&&s.cause?s.cause instanceof Error?s.cause:new fp(s.cause):void 0;super(s!=null&&s.code?`Forced retry: ${s.code}`:"Forced retry",o?{cause:o}:void 0);Ve(this,"name","ForceRetryError");Ve(this,"customDelay");Ve(this,"code");Ve(this,"customRequest");this.customDelay=s==null?void 0:s.delay,this.code=s==null?void 0:s.code,this.customRequest=s==null?void 0:s.request}}const Sh=(()=>{let i=!1,u=!1;const s=typeof globalThis.ReadableStream=="function",o=typeof globalThis.Request=="function";if(s&&o)try{u=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return i=!0,"half"}}).headers.has("Content-Type")}catch(f){if(f instanceof Error&&f.message==="unsupported BodyInit type")return!1;throw f}return i&&!u})(),Ob=typeof globalThis.AbortController=="function",dp=typeof globalThis.AbortSignal=="function"&&typeof globalThis.AbortSignal.any=="function",Cb=typeof globalThis.ReadableStream=="function",Db=typeof globalThis.FormData=="function",mp=["get","post","put","patch","head","delete"],Nb={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*",bytes:"*/*"},zs=2147483647,Mb=new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length,hp=Symbol("stop");class pp{constructor(u){Ve(this,"options");this.options=u}}const Ub=i=>new pp(i),qb={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Lb={next:!0},Hb={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0},Bb=i=>{if(!i)return 0;if(i instanceof FormData){let u=0;for(const[s,o]of i)u+=Mb,u+=new TextEncoder().encode(`Content-Disposition: form-data; name="${s}"`).length,u+=typeof o=="string"?new TextEncoder().encode(o).length:o.size;return u}if(i instanceof Blob)return i.size;if(i instanceof ArrayBuffer)return i.byteLength;if(typeof i=="string")return new TextEncoder().encode(i).length;if(i instanceof URLSearchParams)return new TextEncoder().encode(i.toString()).length;if("byteLength"in i)return i.byteLength;if(typeof i=="object"&&i!==null)try{const u=JSON.stringify(i);return new TextEncoder().encode(u).length}catch{return 0}return 0},yp=(i,u,s)=>{let o,f=0;return i.pipeThrough(new TransformStream({transform(m,y){if(y.enqueue(m),o){f+=o.byteLength;let b=u===0?0:f/u;b>=1&&(b=1-Number.EPSILON),s==null||s({percent:b,totalBytes:Math.max(u,f),transferredBytes:f},o)}o=m},flush(){o&&(f+=o.byteLength,s==null||s({percent:1,totalBytes:Math.max(u,f),transferredBytes:f},o))}}))},Yb=(i,u)=>{if(!i.body)return i;if(i.status===204)return new Response(null,{status:i.status,statusText:i.statusText,headers:i.headers});const s=Math.max(0,Number(i.headers.get("content-length"))||0);return new Response(yp(i.body,s,u),{status:i.status,statusText:i.statusText,headers:i.headers})},Gb=(i,u,s)=>{if(!i.body)return i;const o=Bb(s??i.body);return new Request(i,{duplex:"half",body:yp(i.body,o,u)})},vn=i=>i!==null&&typeof i=="object",Dr=(...i)=>{for(const u of i)if((!vn(u)||Array.isArray(u))&&u!==void 0)throw new TypeError("The `options` argument must be an object");return Ws({},...i)},gp=(i={},u={})=>{const s=new globalThis.Headers(i),o=u instanceof globalThis.Headers,f=new globalThis.Headers(u);for(const[m,y]of f.entries())o&&y==="undefined"||y===void 0?s.delete(m):s.set(m,y);return s};function Nr(i,u,s){return Object.hasOwn(u,s)&&u[s]===void 0?[]:Ws(i[s]??[],u[s]??[])}const vp=(i={},u={})=>({beforeRequest:Nr(i,u,"beforeRequest"),beforeRetry:Nr(i,u,"beforeRetry"),afterResponse:Nr(i,u,"afterResponse"),beforeError:Nr(i,u,"beforeError")}),Vb=(i,u)=>{const s=new URLSearchParams;for(const o of[i,u])if(o!==void 0)if(o instanceof URLSearchParams)for(const[f,m]of o.entries())s.append(f,m);else if(Array.isArray(o))for(const f of o){if(!Array.isArray(f)||f.length!==2)throw new TypeError("Array search parameters must be provided in [[key, value], ...] format");s.append(String(f[0]),String(f[1]))}else if(vn(o))for(const[f,m]of Object.entries(o))m!==void 0&&s.append(f,String(m));else{const f=new URLSearchParams(o);for(const[m,y]of f.entries())s.append(m,y)}return s},Ws=(...i)=>{let u={},s={},o={},f;const m=[];for(const y of i)if(Array.isArray(y))Array.isArray(u)||(u=[]),u=[...u,...y];else if(vn(y)){for(let[b,v]of Object.entries(y)){if(b==="signal"&&v instanceof globalThis.AbortSignal){m.push(v);continue}if(b==="context"){if(v!=null&&(!vn(v)||Array.isArray(v)))throw new TypeError("The `context` option must be an object");u={...u,context:v==null?{}:{...u.context,...v}};continue}if(b==="searchParams"){v==null?f=void 0:f=f===void 0?v:Vb(f,v);continue}vn(v)&&b in u&&(v=Ws(u[b],v)),u={...u,[b]:v}}vn(y.hooks)&&(o=vp(o,y.hooks),u.hooks=o),vn(y.headers)&&(s=gp(s,y.headers),u.headers=s)}return f!==void 0&&(u.searchParams=f),m.length>0&&(m.length===1?u.signal=m[0]:dp?u.signal=AbortSignal.any(m):u.signal=m.at(-1)),u},Xb=i=>mp.includes(i)?i.toUpperCase():i,Qb=["get","put","head","delete","options","trace"],Zb=[408,413,429,500,502,503,504],Kb=[413,429,503],Eh={limit:2,methods:Qb,statusCodes:Zb,afterStatusCodes:Kb,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:i=>.3*2**(i-1)*1e3,jitter:void 0,retryOnTimeout:!1},Jb=(i={})=>{if(typeof i=="number")return{...Eh,limit:i};if(i.methods&&!Array.isArray(i.methods))throw new Error("retry.methods must be an array");if(i.methods&&(i.methods=i.methods.map(s=>s.toLowerCase())),i.statusCodes&&!Array.isArray(i.statusCodes))throw new Error("retry.statusCodes must be an array");const u=Object.fromEntries(Object.entries(i).filter(([,s])=>s!==void 0));return{...Eh,...u}};class Ms extends Error{constructor(s){super(`Request timed out: ${s.method} ${s.url}`);Ve(this,"request");this.name="TimeoutError",this.request=s}}async function $b(i,u,s,o){return new Promise((f,m)=>{const y=setTimeout(()=>{s&&s.abort(),m(new Ms(i))},o.timeout);o.fetch(i,u).then(f).catch(m).then(()=>{clearTimeout(y)})})}async function Wb(i,{signal:u}){return new Promise((s,o)=>{u&&(u.throwIfAborted(),u.addEventListener("abort",f,{once:!0}));function f(){clearTimeout(m),o(u.reason)}const m=setTimeout(()=>{u==null||u.removeEventListener("abort",f),s()},i)})}const Fb=(i,u)=>{const s={};for(const o in u)Object.hasOwn(u,o)&&!(o in Hb)&&!(o in qb)&&(!(o in i)||o in Lb)&&(s[o]=u[o]);return s},Ib=i=>i===void 0?!1:Array.isArray(i)?i.length>0:i instanceof URLSearchParams?i.size>0:typeof i=="object"?Object.keys(i).length>0:typeof i=="string"?i.trim().length>0:!!i;function Pb(i){return i instanceof Ns||(i==null?void 0:i.name)===Ns.name}function e0(i){return i instanceof Ms||(i==null?void 0:i.name)===Ms.name}var Jr,_p,Jt,Bt,rt,Q,$a,ea,_n,oe,Gr,bp,Us,Vr,Ja,qs,xp,ii,Xr,Ls;const ri=class ri{constructor(u,s={}){Pt(this,oe);Ve(this,"request");Pt(this,Jt);Pt(this,Bt,0);Pt(this,rt);Pt(this,Q);Pt(this,$a);Pt(this,ea);Pt(this,_n);var f,m,y;if(Kt(this,rt,u),Kt(this,Q,{...s,headers:gp(q(this,rt).headers,s.headers),hooks:vp({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},s.hooks),method:Xb(s.method??q(this,rt).method??"GET"),prefixUrl:String(s.prefixUrl||""),retry:Jb(s.retry),throwHttpErrors:s.throwHttpErrors??!0,timeout:s.timeout??1e4,fetch:s.fetch??globalThis.fetch.bind(globalThis),context:s.context??{}}),typeof q(this,rt)!="string"&&!(q(this,rt)instanceof URL||q(this,rt)instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(q(this,Q).prefixUrl&&typeof q(this,rt)=="string"){if(q(this,rt).startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");q(this,Q).prefixUrl.endsWith("/")||(q(this,Q).prefixUrl+="/"),Kt(this,rt,q(this,Q).prefixUrl+q(this,rt))}Ob&&dp&&(Kt(this,ea,q(this,Q).signal??q(this,rt).signal),Kt(this,Jt,new globalThis.AbortController),q(this,Q).signal=q(this,ea)?AbortSignal.any([q(this,ea),q(this,Jt).signal]):q(this,Jt).signal),Sh&&(q(this,Q).duplex="half"),q(this,Q).json!==void 0&&(q(this,Q).body=((m=(f=q(this,Q)).stringifyJson)==null?void 0:m.call(f,q(this,Q).json))??JSON.stringify(q(this,Q).json),q(this,Q).headers.set("content-type",q(this,Q).headers.get("content-type")??"application/json"));const o=s.headers&&new globalThis.Headers(s.headers).has("content-type");if(q(this,rt)instanceof globalThis.Request&&(Db&&q(this,Q).body instanceof globalThis.FormData||q(this,Q).body instanceof URLSearchParams)&&!o&&q(this,Q).headers.delete("content-type"),this.request=new globalThis.Request(q(this,rt),q(this,Q)),Ib(q(this,Q).searchParams)){const v="?"+(typeof q(this,Q).searchParams=="string"?q(this,Q).searchParams.replace(/^\?/,""):new URLSearchParams(Ee(y=ri,Jr,_p).call(y,q(this,Q).searchParams)).toString()),p=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,v);this.request=new globalThis.Request(p,q(this,Q))}if(q(this,Q).onUploadProgress){if(typeof q(this,Q).onUploadProgress!="function")throw new TypeError("The `onUploadProgress` option must be a function");if(!Sh)throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request=Ee(this,oe,Ls).call(this,this.request,q(this,Q).body??void 0)}}static create(u,s){var y,b,v;const o=new ri(u,s),f=async()=>{var w,E,N,Y,L,H,B,U,K,X,ue,ce;if(typeof q(o,Q).timeout=="number"&&q(o,Q).timeout>zs)throw new RangeError(`The \`timeout\` option cannot be greater than ${zs}`);await Promise.resolve();let p=await Ee(w=o,oe,xp).call(w);for(const ye of q(o,Q).hooks.afterResponse){const F=Ee(E=o,oe,Us).call(E,p.clone());let W;try{W=await ye(o.request,Ee(N=o,oe,ii).call(N),F,{retryCount:q(o,Bt)})}catch(Pe){throw Ee(Y=o,oe,Ja).call(Y,F),Ee(L=o,oe,Ja).call(L,p),Pe}if(W instanceof pp)throw Ee(H=o,oe,Ja).call(H,F),Ee(B=o,oe,Ja).call(B,p),new As(W.options);const se=W instanceof globalThis.Response?W:p;F!==se&&Ee(U=o,oe,Ja).call(U,F),p!==se&&Ee(K=o,oe,Ja).call(K,p),p=se}if(Ee(X=o,oe,Us).call(X,p),!p.ok&&(typeof q(o,Q).throwHttpErrors=="function"?q(o,Q).throwHttpErrors(p.status):q(o,Q).throwHttpErrors)){let ye=new Ns(p,o.request,Ee(ue=o,oe,ii).call(ue));for(const F of q(o,Q).hooks.beforeError)ye=await F(ye,{retryCount:q(o,Bt)});throw ye}if(q(o,Q).onDownloadProgress){if(typeof q(o,Q).onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!Cb)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");const ye=p.clone();return Ee(ce=o,oe,Ja).call(ce,p),Yb(ye,q(o,Q).onDownloadProgress)}return p},m=Ee(y=o,oe,qs).call(y,f).finally(()=>{var w,E;const p=q(o,$a);Ee(w=o,oe,Vr).call(w,(p==null?void 0:p.body)??void 0),Ee(E=o,oe,Vr).call(E,o.request.body??void 0)});for(const[p,w]of Object.entries(Nb))p==="bytes"&&typeof((v=(b=globalThis.Response)==null?void 0:b.prototype)==null?void 0:v.bytes)!="function"||(m[p]=async()=>{o.request.headers.set("accept",o.request.headers.get("accept")||w);const E=await m;if(p==="json"){if(E.status===204)return"";const N=await E.text();return N===""?"":s.parseJson?s.parseJson(N):JSON.parse(N)}return E[p]()});return m}};Jr=new WeakSet,_p=function(u){return u&&typeof u=="object"&&!Array.isArray(u)&&!(u instanceof URLSearchParams)?Object.fromEntries(Object.entries(u).filter(([,s])=>s!==void 0)):u},Jt=new WeakMap,Bt=new WeakMap,rt=new WeakMap,Q=new WeakMap,$a=new WeakMap,ea=new WeakMap,_n=new WeakMap,oe=new WeakSet,Gr=function(){const u=q(this,Q).retry.delay(q(this,Bt));let s=u;q(this,Q).retry.jitter===!0?s=Math.random()*u:typeof q(this,Q).retry.jitter=="function"&&(s=q(this,Q).retry.jitter(u),(!Number.isFinite(s)||s<0)&&(s=u));const o=q(this,Q).retry.backoffLimit??Number.POSITIVE_INFINITY;return Math.min(o,s)},bp=async function(u){if(eh(this,Bt)._++,q(this,Bt)>q(this,Q).retry.limit)throw u;const s=u instanceof Error?u:new fp(u);if(s instanceof As)return s.customDelay??Ee(this,oe,Gr).call(this);if(!q(this,Q).retry.methods.includes(this.request.method.toLowerCase()))throw u;if(q(this,Q).retry.shouldRetry!==void 0){const o=await q(this,Q).retry.shouldRetry({error:s,retryCount:q(this,Bt)});if(o===!1)throw u;if(o===!0)return Ee(this,oe,Gr).call(this)}if(e0(u)&&!q(this,Q).retry.retryOnTimeout)throw u;if(Pb(u)){if(!q(this,Q).retry.statusCodes.includes(u.response.status))throw u;const o=u.response.headers.get("Retry-After")??u.response.headers.get("RateLimit-Reset")??u.response.headers.get("X-RateLimit-Retry-After")??u.response.headers.get("X-RateLimit-Reset")??u.response.headers.get("X-Rate-Limit-Reset");if(o&&q(this,Q).retry.afterStatusCodes.includes(u.response.status)){let f=Number(o)*1e3;Number.isNaN(f)?f=Date.parse(o)-Date.now():f>=Date.parse("2024-01-01")&&(f-=Date.now());const m=q(this,Q).retry.maxRetryAfter??f;return f<m?f:m}if(u.response.status===413)throw u}return Ee(this,oe,Gr).call(this)},Us=function(u){return q(this,Q).parseJson&&(u.json=async()=>q(this,Q).parseJson(await u.text())),u},Vr=function(u){u&&u.cancel().catch(()=>{})},Ja=function(u){Ee(this,oe,Vr).call(this,u.body??void 0)},qs=async function(u){try{return await u()}catch(s){const o=Math.min(await Ee(this,oe,bp).call(this,s),zs);if(q(this,Bt)<1)throw s;if(await Wb(o,q(this,ea)?{signal:q(this,ea)}:{}),s instanceof As&&s.customRequest){const f=q(this,Q).signal?new globalThis.Request(s.customRequest,{signal:q(this,Q).signal}):new globalThis.Request(s.customRequest);Ee(this,oe,Xr).call(this,f)}for(const f of q(this,Q).hooks.beforeRetry){const m=await f({request:this.request,options:Ee(this,oe,ii).call(this),error:s,retryCount:q(this,Bt)});if(m instanceof globalThis.Request){Ee(this,oe,Xr).call(this,m);break}if(m instanceof globalThis.Response)return m;if(m===hp)return}return Ee(this,oe,qs).call(this,u)}},xp=async function(){var s;(s=q(this,Jt))!=null&&s.signal.aborted&&(Kt(this,Jt,new globalThis.AbortController),q(this,Q).signal=q(this,ea)?AbortSignal.any([q(this,ea),q(this,Jt).signal]):q(this,Jt).signal,this.request=new globalThis.Request(this.request,{signal:q(this,Q).signal}));for(const o of q(this,Q).hooks.beforeRequest){const f=await o(this.request,Ee(this,oe,ii).call(this),{retryCount:q(this,Bt)});if(f instanceof Response)return f;if(f instanceof globalThis.Request){Ee(this,oe,Xr).call(this,f);break}}const u=Fb(this.request,q(this,Q));return Kt(this,$a,this.request),this.request=q(this,$a).clone(),q(this,Q).timeout===!1?q(this,Q).fetch(q(this,$a),u):$b(q(this,$a),u,q(this,Jt),q(this,Q))},ii=function(){if(!q(this,_n)){const{hooks:u,...s}=q(this,Q);Kt(this,_n,Object.freeze(s))}return q(this,_n)},Xr=function(u){Kt(this,_n,void 0),this.request=Ee(this,oe,Ls).call(this,u)},Ls=function(u,s){return!q(this,Q).onUploadProgress||!u.body?u:Gb(u,q(this,Q).onUploadProgress,s??q(this,Q).body??void 0)},Pt(ri,Jr);let Kr=ri;/*! MIT License © Sindre Sorhus */const Hs=i=>{const u=(s,o)=>Kr.create(s,Dr(i,o));for(const s of mp)u[s]=(o,f)=>Kr.create(o,Dr(i,f,{method:s}));return u.create=s=>Hs(Dr(s)),u.extend=s=>(typeof s=="function"&&(s=s(i??{})),Hs(Dr(i,s))),u.stop=hp,u.retry=Ub,u},kh=Hs();let Mr=null;const Qr=kh.create({prefixUrl:"/api",timeout:3e4,hooks:{beforeRequest:[i=>{const u=xa.getState().accessToken;u&&i.headers.set("Authorization",`Bearer ${u}`)}],afterResponse:[async(i,u,s)=>{if(s.status===401&&!i.headers.has("X-Retry-After-Refresh")){Mr||(Mr=xa.getState().refresh().finally(()=>{Mr=null}));try{await Mr}catch{throw s}const o=xa.getState().accessToken;return o&&i.headers.set("Authorization",`Bearer ${o}`),i.headers.set("X-Retry-After-Refresh","1"),kh(i,u)}}]}}),t0=3e4;function a0(i){if(i.link)return i.link;const u=(i.title+" "+i.body).match(/task\s*#?(\d+)/i);if(u)return`/tasks/${u[1]}`;const s=(i.title+" "+i.body).match(/worker\s+(\S+)/i);return s?`/workers/${s[1]}`:null}function Sp(){const i=Fa(),[u,s]=g.useState([]),[o,f]=g.useState(0),[m,y]=g.useState(!1),[b,v]=g.useState(!1),p=g.useRef(null),{t:w}=Vt(),E=g.useRef(async()=>{try{v(!0);const H=(await Qr.get("web/notifications",{searchParams:{limit:"20"}}).json()).data,B=H.filter(U=>!U.isRead).length;s(U=>U.length===H.length&&U.every((K,X)=>K.id===H[X].id&&K.isRead===H[X].isRead)?U:H),f(U=>U===B?U:B)}catch{}finally{v(!1)}});g.useEffect(()=>{E.current();const L=setInterval(()=>E.current(),t0);return()=>clearInterval(L)},[]),g.useEffect(()=>{function L(H){p.current&&!p.current.contains(H.target)&&y(!1)}return document.addEventListener("mousedown",L),()=>document.removeEventListener("mousedown",L)},[]);async function N(L){try{await Qr.post(`web/notifications/${L}/read`),s(H=>H.map(B=>B.id===L?{...B,isRead:!0}:B)),f(H=>Math.max(0,H-1))}catch{}}async function Y(){try{await Qr.post("web/notifications/read-all"),s(L=>L.map(H=>({...H,isRead:!0}))),f(0)}catch{}}return h.jsxs("div",{className:"relative",ref:p,children:[h.jsxs("button",{type:"button",onClick:()=>y(L=>!L),"aria-label":w("common.notifications"),className:"relative inline-flex items-center justify-center rounded-[4px] p-2 text-[var(--text-secondary)] transition-colors hover:bg-[var(--border)] hover:text-[var(--text-primary)]",children:[h.jsx(F_,{size:16}),o>0&&h.jsx("span",{className:"absolute right-0 top-0 flex h-3 min-w-3 items-center justify-center rounded-full bg-[var(--destructive)] px-0.5 text-[8px] font-semibold leading-none text-white",children:o})]}),m&&h.jsxs("div",{className:"absolute right-0 top-full z-50 mt-2 w-[min(320px,calc(100vw-2rem))] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] shadow-lg",children:[h.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-4 py-3",children:[h.jsx("span",{className:"text-sm font-semibold",children:w("common.notifications")}),o>0&&h.jsxs("button",{type:"button",onClick:Y,"aria-label":w("common.mark_all_read"),className:"inline-flex items-center gap-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[h.jsx(I_,{className:"h-3.5 w-3.5"}),w("common.mark_all_read")]})]}),h.jsx("div",{className:"max-h-80 overflow-y-auto",children:b&&u.length===0?h.jsx("div",{className:"flex justify-center py-8",children:h.jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-[var(--border)] border-t-[var(--accent)]"})}):u.length===0?h.jsxs("div",{className:"flex flex-col items-center gap-3 py-8",children:[h.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),h.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:w("common.no_notifications")})]}):u.map(L=>{const H=a0(L);return h.jsxs("div",{className:`flex items-start gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0 transition-colors ${H?"cursor-pointer hover:bg-[var(--bg-input)]":""} ${L.isRead?"opacity-60":"bg-[var(--accent)]/5"}`,onClick:()=>{H&&(L.isRead||N(L.id),y(!1),i(H))},children:[h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("p",{className:"truncate text-sm font-medium",title:L.title,children:L.title}),h.jsx("p",{className:"truncate text-xs text-[var(--text-secondary)]",title:L.body,children:L.body}),h.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)] opacity-60",children:new Date(L.createdAt).toLocaleString()})]}),!L.isRead&&h.jsx("button",{type:"button",onClick:B=>{B.stopPropagation(),N(L.id)},"aria-label":w("common.mark_as_read"),className:"shrink-0 rounded-[4px] p-1 text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:h.jsx(P_,{className:"h-3.5 w-3.5"})})]},L.id)})})]})]})}function n0(i){return i&&i.trim().length>0?i:null}function Ep(i,u=50){return n0(i.name)??Wh(i.description,u)}function l0(i){return i.description}function kp(i){return`#${i.id} ${l0(i)}`}function K1(i,u=100){return{text:`#${i.id} ${Ep(i,u)}`,title:kp(i)}}function i0(i){return{tasks:i.tasks.map(u=>({type:"task",id:u.id,title:`#${u.id} ${Ep(u)}`,subtitle:`${u.status} · ${u.project_key}`,hoverTitle:kp(u)})),workers:(i.workers??[]).map(u=>({type:"worker",id:u.id,title:u.name,subtitle:`${u.hostname} · ${u.status}`})),projects:i.projects.map(u=>({type:"project",id:u.key,title:u.name,subtitle:u.repository}))}}const r0=300,wh={tasks:gb,workers:ap,projects:ib},u0={tasks:"tasks",workers:"workers",projects:"projects"};function wp({renderTrigger:i}={}){const[u,s]=g.useState(""),[o,f]=g.useState({tasks:[],workers:[],projects:[]}),[m,y]=g.useState(!1),[b,v]=g.useState(!1),[p,w]=g.useState(0),E=g.useRef(null),N=g.useRef(null),Y=g.useRef(void 0),L=g.useRef(void 0),H=Fa(),{t:B}=Vt(),U=g.useMemo(()=>[...o.tasks,...o.workers,...o.projects],[o]),K=g.useCallback(async W=>{var Pe;if(!W.trim()){f({tasks:[],workers:[],projects:[]});return}(Pe=L.current)==null||Pe.abort();const se=new AbortController;L.current=se;try{y(!0);const Je=await Qr.get("web/search",{searchParams:{q:W},signal:se.signal}).json();f(i0(Je)),w(0)}catch(Je){if(Je instanceof DOMException&&Je.name==="AbortError")return}finally{se.signal.aborted||y(!1)}},[]);g.useEffect(()=>(Y.current&&clearTimeout(Y.current),Y.current=setTimeout(()=>K(u),r0),()=>{Y.current&&clearTimeout(Y.current)}),[u,K]),g.useEffect(()=>{function W(se){se.key==="/"&&!b&&!(se.target instanceof HTMLInputElement||se.target instanceof HTMLTextAreaElement)&&(se.preventDefault(),v(!0)),se.key==="Escape"&&b&&(se.preventDefault(),X())}return document.addEventListener("keydown",W),()=>document.removeEventListener("keydown",W)},[b]),g.useEffect(()=>{b&&setTimeout(()=>{var W;return(W=N.current)==null?void 0:W.focus()},50)},[b]);function X(){v(!1),s(""),f({tasks:[],workers:[],projects:[]}),w(0)}function ue(W){switch(X(),W.type){case"task":H(`/tasks/${W.id}`);break;case"worker":H(`/workers/${W.id}`);break;case"project":H(`/projects/${W.id}`);break}}function ce(W){W.key==="ArrowDown"?(W.preventDefault(),w(se=>Math.min(se+1,U.length-1))):W.key==="ArrowUp"?(W.preventDefault(),w(se=>Math.max(se-1,0))):W.key==="Enter"&&U[p]&&(W.preventDefault(),ue(U[p]))}const ye=U.length>0;let F=0;return h.jsxs(h.Fragment,{children:[i?i(()=>v(!0)):h.jsxs("button",{type:"button",onClick:()=>v(!0),className:"flex items-center gap-2 rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-1.5 text-xs text-[var(--text-muted)] transition-colors hover:border-[var(--text-muted)]",children:[h.jsx(tp,{className:"h-3.5 w-3.5"}),h.jsx("span",{children:B("common.search_placeholder")}),h.jsx("kbd",{className:"ml-2 rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] px-1.5 py-0.5 text-[11px] text-[var(--text-muted)]",children:"/"})]}),b&&h.jsx("div",{ref:E,className:"fixed inset-0 z-[100] flex items-start justify-center pt-[calc(var(--safe-area-top,0px)+16px)] md:pt-[15vh]",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},onClick:W=>{W.target===E.current&&X()},children:h.jsxs("div",{className:"mx-3 w-full max-w-[640px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] shadow-2xl sm:mx-4 md:mx-0",children:[h.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--border)] px-4 py-3",children:[h.jsx("span",{className:"text-sm text-[var(--accent)]",children:"/"}),h.jsx("input",{ref:N,type:"text",placeholder:B("common.search_input_placeholder"),value:u,onChange:W=>s(W.target.value),onKeyDown:ce,className:"flex-1 bg-transparent text-sm text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none"}),m&&h.jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-[var(--border)] border-t-[var(--accent)]"})]}),h.jsx("div",{className:"max-h-[50vh] overflow-y-auto sm:max-h-[60vh] md:max-h-[400px]",children:u.trim()&&!ye&&!m?h.jsx("div",{className:"py-10 text-center text-xs text-[var(--text-muted)]",children:B("common.no_search_results",{query:u})}):Object.keys(wh).map(W=>{const se=o[W];if(se.length===0)return null;const Pe=wh[W],Je=F;return F+=se.length,h.jsxs("div",{children:[h.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 text-[var(--text-muted)]",children:[h.jsx(Pe,{className:"h-3 w-3"}),h.jsx("span",{className:"text-[11px] lowercase tracking-wider",children:u0[W]})]}),se.map((Ce,At)=>{const ut=Je+At,Me=ut===p;return h.jsxs("button",{type:"button",className:`flex w-full items-center gap-3 px-4 py-2.5 text-left transition-colors ${Me?"bg-[var(--accent)]/10 text-[var(--accent)]":"hover:bg-[var(--bg-input)]"}`,onClick:()=>ue(Ce),onMouseEnter:()=>w(ut),children:[h.jsx("span",{className:`text-xs ${Me?"text-[var(--accent)]":"text-[var(--text-muted)]"}`,children:Me?">":" "}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("p",{className:"truncate text-sm",title:Ce.hoverTitle??Ce.title,children:Ce.title}),Ce.subtitle&&h.jsx("p",{className:"truncate text-xs text-[var(--text-muted)]",title:Ce.subtitle,children:Ce.subtitle})]})]},`${Ce.type}-${Ce.id}`)})]},W)})}),h.jsxs("div",{className:"hidden items-center gap-4 border-t border-[var(--border)] px-4 py-2 md:flex",children:[h.jsxs("span",{className:"flex items-center gap-1 text-[11px] text-[var(--text-muted)]",children:[h.jsx("kbd",{className:"rounded-[4px] border border-[var(--border)] px-1",children:"↑↓"})," ",B("common.navigate_hint")]}),h.jsxs("span",{className:"flex items-center gap-1 text-[11px] text-[var(--text-muted)]",children:[h.jsx("kbd",{className:"rounded-[4px] border border-[var(--border)] px-1",children:"↵"})," ",B("common.select_hint")]}),h.jsxs("span",{className:"flex items-center gap-1 text-[11px] text-[var(--text-muted)]",children:[h.jsx("kbd",{className:"rounded-[4px] border border-[var(--border)] px-1",children:"esc"})," ",B("common.close_hint")]})]})]})})]})}const o0={danger:"var(--destructive)",warning:"var(--warning)",accent:"var(--accent)"};function Th(i){return Array.from(i.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'))}function s0({isOpen:i,onClose:u,onConfirm:s,title:o,message:f,confirmLabel:m,cancelLabel:y,confirmVariant:b="danger",isLoading:v,children:p}){const{t:w}=Vt(),E=g.useId(),N=m??w("common.confirm"),Y=y??w("common.cancel"),L=g.useRef(null),H=g.useRef(null),B=o0[b];g.useEffect(()=>{if(!i)return;H.current=document.activeElement;const K=requestAnimationFrame(()=>{if(L.current){const X=Th(L.current);X.length>0&&X[0].focus()}});return()=>{var X;cancelAnimationFrame(K),(X=H.current)==null||X.focus()}},[i]);const U=g.useCallback(K=>{if(K.key==="Escape"){u();return}if(K.key==="Tab"&&L.current){const X=Th(L.current);if(X.length===0)return;const ue=X[0],ce=X[X.length-1];K.shiftKey?document.activeElement===ue&&(K.preventDefault(),ce.focus()):document.activeElement===ce&&(K.preventDefault(),ue.focus())}},[u]);return i?h.jsx("div",{onClick:u,style:{position:"fixed",inset:0,zIndex:50,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"max(1rem, 10vh)",paddingLeft:"1rem",paddingRight:"1rem",backgroundColor:"var(--modal-backdrop, rgba(12,12,12,0.6))"},children:h.jsxs("div",{ref:L,role:"dialog","aria-modal":"true","aria-labelledby":E,onClick:K=>K.stopPropagation(),onKeyDown:U,style:{width:"100%",maxWidth:"480px",backgroundColor:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"4px",padding:"1.5rem"},children:[h.jsx("div",{style:{marginBottom:"1.25rem"},children:h.jsxs("div",{id:E,style:{color:"var(--accent)",fontSize:"0.875rem",fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:[h.jsx(np,{style:{width:"1rem",height:"1rem"}}),o]})}),h.jsxs("div",{style:{marginBottom:"1.25rem"},children:[h.jsx("p",{style:{color:"var(--text-muted)",fontSize:"0.75rem",lineHeight:"1.5"},children:f}),p]}),h.jsxs("div",{style:{display:"flex",gap:"0.75rem"},children:[h.jsx("button",{type:"button",onClick:u,disabled:v,className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:border-[var(--text-muted)]",style:{flex:1,padding:"0.5rem",backgroundColor:"transparent",border:"1px solid var(--border)",borderRadius:"4px",fontSize:"0.75rem",cursor:v?"not-allowed":"pointer",opacity:v?.7:1,transition:"color 0.15s, border-color 0.15s"},children:Y}),h.jsx("button",{type:"button",onClick:s,disabled:v,style:{flex:1,padding:"0.5rem",backgroundColor:B,color:"#0C0C0C",border:"none",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600,cursor:v?"not-allowed":"pointer",opacity:v?.7:1},children:v?w("common.processing"):N})]})]})}):null}const jh="overlord-pwa-install-dismissed";function c0(){const i=navigator.userAgent;return/iP(hone|od|ad)/.test(i)&&/WebKit/.test(i)&&!/(CriOS|FxiOS|OPiOS|mercury)/.test(i)}function f0(){return navigator.standalone===!0||window.matchMedia("(display-mode: standalone)").matches}function d0(){const{t:i}=Vt(),[u,s]=g.useState("hidden"),[o,f]=g.useState(!1),m=g.useRef(null),y=g.useRef(void 0);g.useEffect(()=>{if(f0()||localStorage.getItem(jh)||window.innerWidth>=768)return;const p=E=>{E.preventDefault(),m.current=E};window.addEventListener("beforeinstallprompt",p);const w=setTimeout(()=>s("visible"),1e3);return()=>{window.removeEventListener("beforeinstallprompt",p),clearTimeout(w),clearTimeout(y.current)}},[]);function b(){localStorage.setItem(jh,"1"),s("dismissing"),y.current=setTimeout(()=>s("hidden"),200)}async function v(){if(m.current){await m.current.prompt();const{outcome:p}=await m.current.userChoice;p==="accepted"&&b(),m.current=null}else c0()&&f(!0)}return u==="hidden"?null:h.jsx("div",{className:`fixed bottom-4 left-4 right-4 z-40 md:hidden ${u==="dismissing"?"animate-slide-down":"animate-slide-up"}`,role:"dialog","aria-label":i("pwa_install.title"),children:h.jsxs("div",{className:"overflow-hidden rounded-[4px] border border-[var(--accent)]/40 bg-[var(--bg-card)] shadow-[0_8px_32px_rgba(0,0,0,0.2)]",children:[h.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--accent)]/20 bg-[var(--accent)]/[0.06] px-3 py-1.5",children:[h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx("div",{className:"h-1.5 w-1.5 rounded-full bg-[var(--accent)]"}),h.jsx("span",{className:"text-[9px] font-medium text-[var(--accent)]",children:i("pwa_install.title")})]}),h.jsx("button",{onClick:b,className:"p-1 text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)]",children:h.jsx(lp,{size:14})})]}),h.jsx("div",{className:"px-3.5 py-3",children:o?h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[h.jsx("span",{className:"text-[var(--accent)]",children:"$"})," ",i("pwa_install.ios_command")]}),h.jsx("div",{className:"mt-2.5 flex flex-col gap-2.5",children:[i("pwa_install.ios_step_1"),i("pwa_install.ios_step_2"),i("pwa_install.ios_step_3")].map((p,w)=>h.jsxs("div",{className:"flex items-center gap-2.5",children:[h.jsx("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-[4px] bg-[var(--accent)]/[0.08]",children:h.jsx("span",{className:"text-xs font-semibold text-[var(--accent)]",children:w+1})}),h.jsxs("span",{className:"text-[10px] leading-snug text-[var(--text-secondary)]",children:[w===0&&h.jsx(hb,{size:12,className:"mr-1 inline-block align-text-bottom text-[var(--text-muted)]"}),p]})]},w))})]}):h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"text-[10px] text-[var(--text-muted)]",children:[h.jsx("span",{className:"text-[var(--accent)]",children:"$"})," ",i("pwa_install.command")]}),h.jsxs("div",{className:"mt-1.5 text-[10px] leading-relaxed text-[var(--text-secondary)]",children:["→ ",i("pwa_install.desc_1"),h.jsx("br",{}),"→ ",i("pwa_install.desc_2")]}),h.jsxs("div",{className:"mt-2.5 flex gap-2",children:[h.jsx("button",{onClick:v,className:"rounded-[4px] bg-[var(--accent)] px-4 py-1.5 text-[10px] font-semibold text-black transition-all hover:brightness-110",children:i("pwa_install.install")}),h.jsx("button",{onClick:b,className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-[10px] text-[var(--text-muted)] transition-colors hover:border-[var(--text-muted)]",children:i("pwa_install.skip")})]})]})})]})})}function m0(){const{t:i}=Vt(),[u,s]=g.useState(!1);return g.useEffect(()=>{if(!("serviceWorker"in navigator))return;let o=!1,f=null,m=null,y=null,b=null;function v(){o||s(!0)}navigator.serviceWorker.addEventListener("controllerchange",v);function p(E){if(f=E,E.waiting){s(!0);return}y=()=>{const N=E.installing;N&&(m=N,b=()=>{N.state==="installed"&&navigator.serviceWorker.controller&&(o||s(!0))},N.addEventListener("statechange",b))},E.addEventListener("updatefound",y)}navigator.serviceWorker.getRegistration().then(E=>{E&&!o&&p(E)});const w=setInterval(()=>{navigator.serviceWorker.getRegistration().then(E=>{!E||o||(E.update().catch(()=>{}),E.waiting&&s(!0))})},3e4);return()=>{o=!0,clearInterval(w),navigator.serviceWorker.removeEventListener("controllerchange",v),f&&y&&f.removeEventListener("updatefound",y),m&&b&&m.removeEventListener("statechange",b)}},[]),u?h.jsx("div",{className:"animate-slide-up fixed bottom-20 left-4 right-4 z-50 md:bottom-4 md:left-auto md:right-4 md:w-80",children:h.jsxs("div",{className:"flex items-center gap-3 rounded-[4px] border border-[var(--accent)]/40 bg-[var(--bg-card)] px-3.5 py-3 shadow-[0_8px_32px_rgba(0,0,0,0.2)]",children:[h.jsx(ep,{size:14,className:"shrink-0 text-[var(--accent)]"}),h.jsx("span",{className:"flex-1 text-[10px] text-[var(--text-secondary)]",children:i("pwa_update.message")}),h.jsx("button",{onClick:()=>window.location.reload(),className:"shrink-0 rounded-[4px] bg-[var(--accent)] px-3 py-1 text-[10px] font-semibold text-black transition-all hover:brightness-110",children:i("pwa_update.reload")})]})}):null}const Ur=64,h0=96,Rh=32;function p0({children:i,className:u}){const s=g.useRef(null),o=g.useRef(0),f=g.useRef("idle"),[m,y]=g.useState(0),[b,v]=g.useState("idle"),p=g.useCallback(U=>{f.current=U,v(U)},[]),w=g.useCallback(()=>{const U=s.current;return U?U.scrollTop<=0:!0},[]),E=g.useCallback(U=>{if(!w()){o.current=0;return}o.current=U.touches[0].clientY},[w]),N=g.useCallback(U=>{if(f.current==="refreshing"||o.current===0)return;const X=U.touches[0].clientY-o.current;if(X<=0){f.current!=="idle"&&(y(0),p("idle"));return}if(!w())return;U.preventDefault();const ue=Math.min(X*.5,h0);y(ue),p(ue>=Ur?"ready":"pulling")},[w,p]),Y=g.useCallback(()=>{f.current!=="refreshing"&&(f.current==="ready"?(p("refreshing"),y(Ur),setTimeout(()=>{window.location.reload()},300)):(y(0),p("idle")),o.current=0)},[p]);g.useEffect(()=>{const U=s.current;if(U)return U.addEventListener("touchstart",E,{passive:!0}),U.addEventListener("touchmove",N,{passive:!1}),U.addEventListener("touchend",Y,{passive:!0}),()=>{U.removeEventListener("touchstart",E),U.removeEventListener("touchmove",N),U.removeEventListener("touchend",Y)}},[E,N,Y]);const L=Math.min(m/Ur,1),H=b==="refreshing"?0:m/Ur*180,B=m>0||b==="refreshing";return h.jsxs("div",{ref:s,className:u,style:{overscrollBehaviorY:"contain"},children:[B&&h.jsx("div",{className:"pointer-events-none flex items-center justify-center md:hidden",style:{height:m,transition:b==="idle"?"height 200ms ease-out":void 0},children:h.jsx("div",{className:"flex items-center justify-center rounded-full bg-[var(--bg-card)] border border-[var(--border)]",style:{width:Rh,height:Rh,opacity:L,transition:b==="idle"?"opacity 200ms ease-out":void 0},children:b==="refreshing"?h.jsxs("svg",{width:16,height:16,viewBox:"0 0 16 16",className:"animate-spin",style:{color:"var(--accent)"},children:[h.jsx("circle",{cx:"8",cy:"8",r:"6",fill:"none",stroke:"currentColor",strokeWidth:"2",opacity:"0.3"}),h.jsx("path",{d:"M8 2a6 6 0 0 1 6 6",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):h.jsx("svg",{width:16,height:16,viewBox:"0 0 16 16",style:{color:b==="ready"?"var(--accent)":"var(--text-muted)",transform:`rotate(${H}deg)`,transition:"color 150ms"},children:h.jsx("path",{d:"M8 3v8M5 8l3 3 3-3",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}),i]})}const Tp=g.createContext({setActions:()=>{}});function J1(i){const{setActions:u}=g.useContext(Tp);g.useEffect(()=>(u(i),()=>u(null)),[i,u])}const jp=g.createContext({setSubtitle:()=>{}});function $1(i){const{setSubtitle:u}=g.useContext(jp),s=typeof i=="string"?i:(i==null?void 0:i.text)??null,o=typeof i=="string"?i:(i==null?void 0:i.title)??(i==null?void 0:i.text)??null;g.useEffect(()=>s?(u(o&&o!==s?{text:s,title:o}:s),()=>u(null)):(u(null),()=>u(null)),[s,o,u])}const y0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:Ph},{to:"/dashboard",label:"dashboard",icon:Ih}],g0=[{to:"/workers",label:"workers",icon:ap},{to:"/projects",label:"projects",icon:rb},{to:"/access-tokens",label:"tokens",icon:ob}],v0=[{to:"/docs/cli",label:"cli",icon:$s},{to:"/docs/api",label:"api",icon:lb},{to:"/docs/bot",label:"bot",icon:db},{to:"/docs/skill",label:"skill",icon:yb},{to:"/docs/all",label:"all",icon:sb}],_0=[{to:"/admin",label:"admin",icon:pb}],b0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:Ph},{to:"/dashboard",label:"dashboard",icon:Ih}],qr={"/home":{title:"common.breadcrumb_terminal",subtitle:"common.breadcrumb_terminal_sub"},"/dashboard":{title:"common.breadcrumb_dashboard",subtitle:"common.breadcrumb_dashboard_sub"},"/tasks":{title:"common.breadcrumb_tasks",subtitle:"common.breadcrumb_tasks_sub"},"/workers":{title:"common.breadcrumb_workers",subtitle:"common.breadcrumb_workers_sub"},"/projects":{title:"common.breadcrumb_projects",subtitle:"common.breadcrumb_projects_sub"},"/admin":{title:"common.breadcrumb_admin",subtitle:"common.breadcrumb_admin_sub"},"/profile":{title:"common.breadcrumb_profile",subtitle:"common.breadcrumb_profile_sub"},"/access-tokens":{title:"common.breadcrumb_tokens",subtitle:"common.breadcrumb_tokens_sub"},"/docs":{title:"common.breadcrumb_docs",subtitle:"common.breadcrumb_docs_sub"},"/docs/cli":{title:"common.breadcrumb_docs_cli",subtitle:"common.breadcrumb_docs_cli_sub"},"/docs/api":{title:"common.breadcrumb_docs_api",subtitle:"common.breadcrumb_docs_api_sub"},"/docs/skill":{title:"common.breadcrumb_docs_skill",subtitle:"common.breadcrumb_docs_skill_sub"},"/docs/bot":{title:"common.breadcrumb_docs",subtitle:"common.breadcrumb_docs_bot_sub"},"/docs/all":{title:"common.breadcrumb_docs",subtitle:"common.breadcrumb_docs_all_sub"}};function x0(i){const{t:u}=Vt();if(qr[i]){const o=qr[i];return{title:u(o.title),subtitle:u(o.subtitle)}}const s="/"+i.split("/").filter(Boolean)[0];if(qr[s]){const o=qr[s],f=i.split("/").filter(Boolean).slice(1).join(" / ");return{title:u(o.title),subtitle:f||u(o.subtitle)}}return{title:i.slice(1).replace(/\//g," // ")||"home"}}function S0(i,u){return i==="/home"?u==="/home":i==="/dashboard"?u==="/dashboard":u.startsWith(i)}function E0(){const i=gt(),{t:u}=Vt(),s={terminal:u("terminal_home.title"),dashboard:u("dashboard.title"),tasks:u("tasks.title"),workers:u("workers.title")};return h.jsxs("nav",{className:"flex items-center justify-around border-t border-[var(--border)] bg-[var(--bg-card)]",style:{height:48,paddingTop:4},children:[b0.map(({to:o,label:f,icon:m})=>{const y=S0(o,i.pathname);return h.jsxs(Js,{to:o,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(m,{size:18,className:y?"text-[var(--accent)]":"text-[var(--text-muted)]"}),h.jsx("span",{className:`text-[11px] lowercase ${y?"font-bold text-[var(--accent)]":"text-[var(--text-muted)]"}`,children:s[f]??f})]},o)}),h.jsx(wp,{renderTrigger:o=>h.jsxs("button",{type:"button",onClick:o,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(tp,{size:18,className:"text-[var(--text-muted)]"}),h.jsx("span",{className:"text-[11px] lowercase text-[var(--text-muted)]",children:u("common.search_placeholder")})]})})]})}function k0(){const i=Fa(),{t:u}=Vt();return h.jsxs("header",{className:"flex items-center justify-between border-b border-[var(--border)] bg-[var(--bg-card)] px-4 md:hidden",style:{height:"calc(56px + env(safe-area-inset-top, 0px))",minHeight:"calc(56px + env(safe-area-inset-top, 0px))",paddingTop:"env(safe-area-inset-top, 0px)"},children:[h.jsxs("button",{onClick:()=>i("/home"),className:"flex items-center gap-2",style:{background:"none",border:"none",padding:0},children:[h.jsx("div",{className:"flex h-6 w-6 items-center justify-center rounded-[4px] bg-[var(--accent)]",children:h.jsx("span",{className:"text-sm font-semibold",style:{color:"#0C0C0C"},children:"~"})}),h.jsx("span",{className:"text-sm font-bold lowercase text-[var(--text-primary)]",children:u("common.overlord")})]}),h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx("button",{onClick:()=>i("/profile"),className:"p-2 text-[var(--text-secondary)] transition-colors hover:text-[var(--text-primary)]","aria-label":u("common.profile"),children:h.jsx(_b,{size:18})}),h.jsx(Sp,{}),h.jsx(cp,{})]})]})}function Lr({label:i,items:u,collapsed:s}){return h.jsxs("div",{className:"mt-4 first:mt-0",children:[h.jsx("div",{className:`overflow-hidden transition-all duration-300 ${s?"max-h-0 mb-0 opacity-0":"max-h-6 mb-2 opacity-100"}`,children:h.jsx("div",{className:"px-3 text-xs lowercase",style:{color:"var(--text-muted)"},children:i})}),u.map(({to:o,label:f,icon:m})=>h.jsx(Js,{to:o,className:({isActive:y})=>`flex items-center text-sm lowercase transition-all duration-300 ${s?"justify-center py-3":"gap-2.5 px-3 py-1.5"} ${y?"text-[var(--accent)] bg-[var(--accent)]/5":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:({isActive:y})=>h.jsxs(h.Fragment,{children:[h.jsx(m,{size:14,style:{flexShrink:0}}),!s&&h.jsx("span",{children:y?`> ${f}`:` ${f}`})]})},o))]})}function w0(){const{user:i,logout:u}=xa(),s=Fa(),[o,f]=g.useState(!1),m=Eb(),{t:y}=Vt(),{sidebarCollapsed:b,toggleSidebar:v}=wb();function p(){u(),s("/login")}return h.jsxs("aside",{className:"hidden md:flex flex-col border-r border-[var(--border)] transition-[width,min-width] duration-300 overflow-hidden",style:{width:b?56:240,minWidth:b?56:240,backgroundColor:"var(--bg-card)"},children:[h.jsx("div",{className:"flex items-center px-5",style:{height:48},children:h.jsxs("button",{onClick:()=>s("/home"),className:"flex items-center gap-2.5",style:{background:"none",border:"none",padding:0},children:[h.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-[4px] bg-[var(--accent)]",style:{flexShrink:0},children:h.jsx("span",{className:"text-lg font-semibold",style:{color:"#0C0C0C"},children:"~"})}),!b&&h.jsx("span",{className:"text-base font-bold lowercase tracking-tight",style:{color:"var(--text-primary)"},children:y("common.overlord")})]})}),h.jsxs("nav",{className:"flex-1 px-3 pt-2",children:[h.jsx(Lr,{label:y("common.tasks_section"),items:y0,collapsed:b}),h.jsx(Lr,{label:y("common.fleet_section"),items:g0,collapsed:b}),h.jsx(Lr,{label:y("common.docs_section"),items:v0,collapsed:b}),m&&h.jsx(Lr,{label:y("common.admin_section"),items:_0,collapsed:b})]}),h.jsx("div",{className:"flex px-3 py-1",children:h.jsx("button",{onClick:v,className:"flex items-center justify-center w-full py-1.5 rounded-[4px] text-[var(--text-secondary)] transition-colors hover:text-[var(--accent)] hover:bg-[var(--accent)]/5","aria-label":b?"expand sidebar":"collapse sidebar",children:b?h.jsx(tb,{size:14}):h.jsx(eb,{size:14})})}),h.jsx("div",{className:"border-t border-[var(--border)] p-3",children:h.jsxs("div",{className:`flex items-center py-2 transition-all duration-300 ${b?"justify-center":"gap-3 px-3"}`,children:[h.jsx("button",{onClick:()=>s("/profile"),className:"flex h-7 w-7 items-center justify-center text-xs font-bold text-black transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",borderRadius:4,flexShrink:0},title:y("common.profile"),children:((i==null?void 0:i.username)??"u")[0].toUpperCase()}),!b&&h.jsxs(h.Fragment,{children:[h.jsxs("button",{onClick:()=>s("/profile"),className:"min-w-0 flex-1 text-left transition-colors hover:opacity-80",title:y("common.profile"),children:[h.jsx("div",{className:"truncate text-sm lowercase",style:{color:"var(--text-primary)"},children:(i==null?void 0:i.username)??"user"}),h.jsx("div",{className:"truncate text-xs lowercase",style:{color:"var(--text-muted)"},children:(i==null?void 0:i.role)??"user"})]}),h.jsx("button",{onClick:()=>f(!0),className:"p-1 text-[var(--text-secondary)] transition-colors hover:text-[var(--accent)]","aria-label":y("common.log_out"),children:h.jsx(fb,{size:14})})]})]})}),h.jsx(s0,{isOpen:o,onClose:()=>f(!1),onConfirm:p,title:y("common.logout_title"),message:y("common.logout_message"),confirmLabel:y("common.logout"),confirmVariant:"warning"})]})}function T0({headerActions:i,subtitleOverride:u}){const s=gt(),{title:o,subtitle:f}=x0(s.pathname),m=u??f,y=typeof m=="string"?m:m==null?void 0:m.text,b=typeof m=="string"?m:(m==null?void 0:m.title)??(m==null?void 0:m.text);return h.jsxs("header",{className:"hidden md:flex items-center justify-between border-b border-[var(--border)] px-5",style:{height:48,minHeight:48,backgroundColor:"var(--bg-card)"},children:[h.jsxs("div",{className:"text-sm lowercase",children:[h.jsx("span",{style:{color:"var(--text-primary)"},children:o}),y&&h.jsxs("span",{style:{color:"var(--text-muted)"},title:b,children:[" ","// ",Wh(y,40)]})]}),h.jsxs("div",{className:"flex items-center gap-3",children:[i,h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx(wp,{}),h.jsx(Sp,{}),h.jsx(cp,{})]})]})]})}function j0(){const[i,u]=g.useState(null),[s,o]=g.useState(null),f=gt(),m=f.pathname==="/home",y=/^\/tasks\/\d+$/.test(f.pathname),b=f.pathname.startsWith("/docs");return g.useEffect(()=>up.getState().init(),[]),h.jsxs("div",{className:"fixed inset-x-0 top-0 flex w-full overflow-hidden font-mono md:flex-row",style:{height:"var(--app-height, 100dvh)",minHeight:"var(--app-height, 100dvh)"},children:[h.jsx(w0,{}),h.jsxs("div",{"data-testid":"app-main-column",className:"flex min-h-0 flex-1 flex-col overflow-hidden pb-[calc(48px+var(--safe-area-bottom,0px))] md:pb-0",children:[h.jsx(k0,{}),!b&&h.jsx(T0,{headerActions:i,subtitleOverride:s}),h.jsx(p0,{className:m||y?"min-h-0 flex-1 overflow-hidden bg-[var(--bg-primary)]":"min-h-0 flex-1 overflow-auto bg-[var(--bg-primary)] p-4 pb-6 md:p-6 md:pb-6",children:h.jsx(Tp.Provider,{value:{setActions:u},children:h.jsx(jp.Provider,{value:{setSubtitle:o},children:h.jsx(d_,{})})})}),h.jsx(d0,{}),h.jsx(m0,{}),h.jsx("div",{className:"safe-area-bottom-fill fixed inset-x-0 bottom-0 z-30 bg-[var(--bg-card)] md:hidden",children:h.jsx(E0,{})})]})]})}function Ah(i){var s;const u=(s=i.state)==null?void 0:s.from;return u?{from:u}:{from:{pathname:i.pathname,search:i.search}}}function li({children:i,requireAdmin:u=!1}){const{accessToken:s,user:o,requireTotpSetup:f,initializing:m}=xa(),y=gt();if(m)return h.jsx("div",{className:"flex h-screen items-center justify-center",children:h.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-[var(--border)] border-t-[var(--accent)]"})});if(!s)return h.jsx(ll,{to:"/login",state:Ah(y),replace:!0});if(f){const b=Ah(y);return y.pathname!=="/totp-setup"&&y.pathname!=="/bind"?h.jsx(ll,{to:"/totp-setup",state:b,replace:!0}):y.pathname==="/bind"?(sessionStorage.setItem("overlord_bind_redirect",JSON.stringify(b.from)),h.jsx(ll,{to:"/totp-setup",state:b,replace:!0})):h.jsx(h.Fragment,{children:i})}return u&&(o==null?void 0:o.role)!==ip.ADMIN?h.jsx(ll,{to:"/home",replace:!0}):h.jsx(h.Fragment,{children:i})}function R0({children:i}){const{theme:u,resolved:s,setResolved:o}=sp();return g.useEffect(()=>{if(u!=="system"){o(u);return}const f=window.matchMedia("(prefers-color-scheme: dark)");o(f.matches?"dark":"light");const m=y=>o(y.matches?"dark":"light");return f.addEventListener("change",m),()=>f.removeEventListener("change",m)},[u,o]),g.useEffect(()=>{document.documentElement.classList.toggle("dark",s==="dark")},[s]),h.jsx(h.Fragment,{children:i})}class A0 extends g.Component{constructor(u){super(u),this.state={hasError:!1,error:null}}static getDerivedStateFromError(u){return{hasError:!0,error:u}}render(){var u;return this.state.hasError?h.jsxs("div",{className:"flex h-full min-h-[300px] flex-col items-center justify-center gap-4 p-8 font-mono",children:[h.jsx("span",{className:"text-lg font-bold text-[var(--destructive)]",children:Yr("common.runtime_error")}),h.jsx("p",{className:"max-w-md text-center text-xs text-[var(--text-muted)]",children:((u=this.state.error)==null?void 0:u.message)||Yr("common.an_unexpected_error_occurred")}),h.jsxs("button",{onClick:()=>{this.setState({hasError:!1,error:null}),window.location.reload()},className:"flex items-center gap-1.5 rounded-[4px] border border-[var(--border)] px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[h.jsx(ep,{className:"h-3.5 w-3.5"}),Yr("common.reload")]})]}):this.props.children}}function z0({isOpen:i}){const u=Fa(),{logout:s,setSessionExpired:o}=xa(),{t:f}=Vt();function m(){s(),o(!1),u("/login")}return i?h.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[h.jsx("div",{className:"fixed inset-0 bg-[var(--modal-backdrop)]"}),h.jsx("div",{className:"relative z-10 w-full max-w-[480px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:h.jsxs("div",{className:"flex flex-col items-center px-8 py-10",children:[h.jsx("div",{className:"mb-5 flex h-14 w-14 items-center justify-center rounded-full bg-[var(--warning)]/10",children:h.jsx(cb,{className:"h-7 w-7 text-[var(--warning)]"})}),h.jsx("h3",{className:"mb-2 text-base font-bold text-[var(--text-primary)]",children:f("auth.session_expired")}),h.jsx("p",{className:"mb-8 text-center text-xs text-[var(--text-secondary)]",children:f("auth.session_expired_message")}),h.jsx("button",{type:"button",className:"w-full rounded-[4px] bg-[var(--accent)] px-3 py-2.5 text-xs font-medium text-black hover:opacity-90 transition-opacity",onClick:m,children:f("auth.go_to_login")})]})})]}):null}const zh=5;let ba=[];const Bs=new Set;function Rp(){Bs.forEach(i=>i())}function O0(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function Wa(i,u,s=4e3){const o=O0();return ba=[...ba,{id:o,variant:i,message:u,duration:s}],ba.length>zh&&(ba=ba.slice(ba.length-zh)),Rp(),o}Wa.success=(i,u)=>Wa("success",i,u);Wa.error=(i,u)=>Wa("error",i,u);Wa.warning=(i,u)=>Wa("warning",i,u);Wa.info=(i,u)=>Wa("info",i,u);function C0(i){ba=ba.filter(u=>u.id!==i),Rp()}function D0(){const[,i]=g.useState(0);return g.useEffect(()=>{const u=()=>i(s=>s+1);return Bs.add(u),()=>{Bs.delete(u)}},[]),ba}const N0={success:{icon:ab,borderColor:"var(--accent)"},error:{icon:nb,borderColor:"var(--destructive)"},warning:{icon:np,borderColor:"var(--warning)"},info:{icon:ub,borderColor:"var(--info)"}};function M0({item:i}){const u=N0[i.variant],s=u.icon,{t:o}=Vt(),f=g.useCallback(()=>C0(i.id),[i.id]);return g.useEffect(()=>{if(!i.duration)return;const m=setTimeout(f,i.duration);return()=>clearTimeout(m)},[i.duration,f]),h.jsxs("div",{className:"flex items-center gap-3 rounded-[4px] bg-[var(--bg-card)] px-4 py-3 shadow-lg",style:{borderLeft:`3px solid ${u.borderColor}`},role:"alert",children:[h.jsx(s,{className:"h-4 w-4 shrink-0",style:{color:u.borderColor}}),h.jsx("p",{className:"flex-1 text-xs text-[var(--text-primary)]",children:i.message}),h.jsx("button",{onClick:f,className:"shrink-0 rounded-[4px] p-0.5 text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)]","aria-label":o("common.dismiss_notification"),children:h.jsx(lp,{className:"h-3.5 w-3.5"})})]})}function U0(){const i=D0();return i.length===0?null:h.jsx("div",{className:"pointer-events-none fixed right-4 top-4 z-[9999] flex w-80 max-w-[calc(100vw-2rem)] flex-col gap-2",children:i.map(u=>h.jsx("div",{className:"pointer-events-auto",children:h.jsx(M0,{item:u})},u.id))})}const q0=g.lazy(()=>ne(()=>import("./LandingPage-DqLbP1Ry.js"),__vite__mapDeps([0,1,2,3,4,5]))),L0=g.lazy(()=>ne(()=>import("./LoginPage-BoXUe_Xx.js"),[])),H0=g.lazy(()=>ne(()=>import("./TotpSetupPage-BeStxglO.js"),[])),B0=g.lazy(()=>ne(()=>import("./NotFoundPage-4pE6QH1R.js"),[])),Y0=g.lazy(()=>ne(()=>import("./HomePage-B-rfwBdn.js"),__vite__mapDeps([6,7,8,9,10,11,12,13,14,1]))),G0=g.lazy(()=>ne(()=>import("./TerminalHomePage-DE4Fra73.js"),__vite__mapDeps([15,16,17,18,19,10,11,20,8,12,13,21,22,23]))),V0=g.lazy(()=>ne(()=>import("./TaskListPage-Ca0mxJ_o.js"),__vite__mapDeps([24,18,19,7,8,12,14,25,20,5,26,9,21,27,11]))),X0=g.lazy(()=>ne(()=>import("./TaskDetailPage-Bgd8Ogvq.js"),__vite__mapDeps([28,18,19,16,17,12,20,8,14,29,22,25,30,31,32]))),Q0=g.lazy(()=>ne(()=>import("./WorkerListPage-DRx_FX1c.js"),__vite__mapDeps([33,8,34,35,36,37,38,23,5,31,20,26,9,13,21]))),Z0=g.lazy(()=>ne(()=>import("./WorkerDetailPage-B5lirrH3.js"),__vite__mapDeps([39,12,8,40,34,13,14,41,29]))),K0=g.lazy(()=>ne(()=>import("./WorkerSetupGuidePage-CpWSvLWw.js"),__vite__mapDeps([35,36,37,38,23]))),J0=g.lazy(()=>ne(()=>import("./ProjectListPage-r28OozXz.js"),__vite__mapDeps([42,20,19,26,9,12,13,21]))),$0=g.lazy(()=>ne(()=>import("./ProjectDetailPage-CaASFvS0.js"),__vite__mapDeps([43,44,20,14,12,8,40,13,45,41,21]))),W0=g.lazy(()=>ne(()=>import("./EditProjectPage-CLPYjvAQ.js"),__vite__mapDeps([46,20,44,19,21]))),F0=g.lazy(()=>ne(()=>import("./PipelineEditorPage-CdHuwLmJ.js"),__vite__mapDeps([47,20]))),I0=g.lazy(()=>ne(()=>import("./ProfilePage-8kc8fiZV.js"),__vite__mapDeps([48,49,40,13]))),P0=g.lazy(()=>ne(()=>import("./BindPlatformPage-BhC8I1M6.js"),[])),e1=g.lazy(()=>ne(()=>import("./AccessTokensPage-B790MOSI.js"),__vite__mapDeps([50,20,26,9,12,13,21,5,41]))),t1=g.lazy(()=>ne(()=>import("./CliReferencePage-ChEAiOWL.js"),__vite__mapDeps([51,52,5,21]))),a1=g.lazy(()=>ne(()=>import("./ApiReferencePage-CU5KWW5b.js"),__vite__mapDeps([53,52,5,21]))),n1=g.lazy(()=>ne(()=>import("./SkillPage-Bn53Yjiu.js"),__vite__mapDeps([54,55,5,30]))),l1=g.lazy(()=>ne(()=>import("./DocsLayout-FmrCA5RW.js"),__vite__mapDeps([56,29]))),i1=g.lazy(()=>ne(()=>import("./InstallationPage-BbXh-Y77.js"),__vite__mapDeps([57,55,5]))),r1=g.lazy(()=>ne(()=>import("./DeveloperSetupPage-rpsOayJX.js"),__vite__mapDeps([58,55,5]))),u1=g.lazy(()=>ne(()=>import("./WorkerSetupPage-CX2IKTBz.js"),__vite__mapDeps([59,55,5]))),o1=g.lazy(()=>ne(()=>import("./BotSetupPage-DVqBgyjG.js"),__vite__mapDeps([60,55,5]))),s1=g.lazy(()=>ne(()=>import("./LocalDevelopmentPage-CY7dB3hK.js"),__vite__mapDeps([61,55,5]))),c1=g.lazy(()=>ne(()=>import("./WorkerOperationsPage-0fj-txrI.js"),[])),f1=g.lazy(()=>ne(()=>import("./DeploymentPage-DUlfbHwk.js"),__vite__mapDeps([62,55,5]))),Oh=g.lazy(()=>ne(()=>import("./BotIntegrationPage-B4NhIhTq.js"),[])),d1=g.lazy(()=>ne(()=>import("./PipelineConfigPage-CeU0o917.js"),__vite__mapDeps([63,55,5]))),m1=g.lazy(()=>ne(()=>import("./DevWorkflowPage-CHQifk0Y.js"),__vite__mapDeps([64,55,5]))),h1=g.lazy(()=>ne(()=>import("./PermissionsPage-DvWGCh32.js"),[])),p1=g.lazy(()=>ne(()=>import("./EnvVariablesPage-CLafcR2k.js"),__vite__mapDeps([65,55,5]))),y1=g.lazy(()=>ne(()=>import("./ArchitecturePage-B3NO9ams.js"),__vite__mapDeps([66,55,5]))),g1=g.lazy(()=>ne(()=>import("./ChangelogPage-DgAkPSte.js"),[])),v1=g.lazy(()=>ne(()=>import("./AgentCliPage-C3m17Vxw.js"),__vite__mapDeps([67,55,5]))),_1=g.lazy(()=>ne(()=>import("./DocsIndexPage-BMIn54Zl.js"),__vite__mapDeps([68,37,2,3,38,32]))),b1=g.lazy(()=>ne(()=>import("./AdminPage-bj1Ceucs.js"),__vite__mapDeps([69,4,2,70,38]))),x1=g.lazy(()=>ne(()=>import("./DeveloperManage-BOzhPppl.js"),__vite__mapDeps([71,20,49,26,9,13,8,21,4,45,22]))),S1=g.lazy(()=>ne(()=>import("./BotManage-BVx8Zpyb.js"),__vite__mapDeps([72,20,55,5,41,21,26,9,13,8,2,45]))),E1=g.lazy(()=>ne(()=>import("./TokenManage-CL6Dgoac.js"),__vite__mapDeps([73,36,5,30,26,9,13,8,21]))),k1=g.lazy(()=>ne(()=>import("./AuditLogPage-CSYmdRqM.js"),__vite__mapDeps([74,20,26,9,70,27,11]))),w1=g.lazy(()=>ne(()=>import("./SettingsPage-CZywaGc9.js"),[]));function T1(){return h.jsx("div",{className:"flex h-full items-center justify-center",children:h.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-[var(--border)] border-t-[var(--accent)]"})})}function j1(){const i=xa(u=>u.sessionExpired);return h.jsxs(R0,{children:[h.jsx(U0,{}),h.jsx(A0,{children:h.jsxs(H_,{children:[h.jsx(z0,{isOpen:i}),h.jsx(g.Suspense,{fallback:h.jsx(T1,{}),children:h.jsxs(h_,{children:[h.jsx(ee,{path:"/",element:h.jsx(q0,{})}),h.jsx(ee,{path:"/login",element:h.jsx(L0,{})}),h.jsx(ee,{path:"/totp-setup",element:h.jsx(li,{children:h.jsx(H0,{})})}),h.jsx(ee,{path:"/bind",element:h.jsx(li,{children:h.jsx(P0,{})})}),h.jsxs(ee,{element:h.jsx(li,{children:h.jsx(j0,{})}),children:[h.jsx(ee,{path:"/home",element:h.jsx(G0,{})}),h.jsx(ee,{path:"/dashboard",element:h.jsx(Y0,{})}),h.jsx(ee,{path:"/tasks",element:h.jsx(V0,{})}),h.jsx(ee,{path:"/tasks/:id",element:h.jsx(X0,{})}),h.jsx(ee,{path:"/workers",element:h.jsx(Q0,{})}),h.jsx(ee,{path:"/workers/setup",element:h.jsx(li,{requireAdmin:!0,children:h.jsx(K0,{})})}),h.jsx(ee,{path:"/workers/:id",element:h.jsx(Z0,{})}),h.jsx(ee,{path:"/projects",element:h.jsx(J0,{})}),h.jsx(ee,{path:"/projects/:key",element:h.jsx($0,{})}),h.jsx(ee,{path:"/projects/:key/edit",element:h.jsx(W0,{})}),h.jsx(ee,{path:"/projects/:key/pipeline",element:h.jsx(F0,{})}),h.jsx(ee,{path:"/profile",element:h.jsx(I0,{})}),h.jsx(ee,{path:"/access-tokens",element:h.jsx(e1,{})}),h.jsxs(ee,{path:"/docs",element:h.jsx(l1,{}),children:[h.jsx(ee,{index:!0,element:h.jsx(ll,{to:"cli",replace:!0})}),h.jsx(ee,{path:"cli",element:h.jsx(t1,{})}),h.jsx(ee,{path:"api",element:h.jsx(a1,{})}),h.jsx(ee,{path:"bot",element:h.jsx(Oh,{})}),h.jsx(ee,{path:"all",element:h.jsx(_1,{})}),h.jsx(ee,{path:"skill",element:h.jsx(n1,{})}),h.jsx(ee,{path:"installation",element:h.jsx(i1,{})}),h.jsx(ee,{path:"developer-setup",element:h.jsx(r1,{})}),h.jsx(ee,{path:"worker-setup",element:h.jsx(u1,{})}),h.jsx(ee,{path:"bot-setup",element:h.jsx(o1,{})}),h.jsx(ee,{path:"local-development",element:h.jsx(s1,{})}),h.jsx(ee,{path:"worker-operations",element:h.jsx(c1,{})}),h.jsx(ee,{path:"deployment",element:h.jsx(f1,{})}),h.jsx(ee,{path:"bot-integration",element:h.jsx(Oh,{})}),h.jsx(ee,{path:"pipeline-config",element:h.jsx(d1,{})}),h.jsx(ee,{path:"dev-workflow",element:h.jsx(m1,{})}),h.jsx(ee,{path:"permissions",element:h.jsx(h1,{})}),h.jsx(ee,{path:"env-variables",element:h.jsx(p1,{})}),h.jsx(ee,{path:"architecture",element:h.jsx(y1,{})}),h.jsx(ee,{path:"agent-cli",element:h.jsx(v1,{})}),h.jsx(ee,{path:"changelog",element:h.jsx(g1,{})})]}),h.jsxs(ee,{path:"/admin",element:h.jsx(li,{requireAdmin:!0,children:h.jsx(b1,{})}),children:[h.jsx(ee,{index:!0,element:h.jsx(ll,{to:"developers",replace:!0})}),h.jsx(ee,{path:"developers",element:h.jsx(x1,{})}),h.jsx(ee,{path:"bots",element:h.jsx(S1,{})}),h.jsx(ee,{path:"tokens",element:h.jsx(E1,{})}),h.jsx(ee,{path:"audit-logs",element:h.jsx(k1,{})}),h.jsx(ee,{path:"settings",element:h.jsx(w1,{})})]})]}),h.jsx(ee,{path:"*",element:h.jsx(B0,{})})]})})]})})]})}function Ap(i=window){var u,s;return((u=i.matchMedia)==null?void 0:u.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}async function R1(i=window,u="portrait"){var o,f;if(!Ap(i))return!1;const s=(f=(o=i.screen)==null?void 0:o.orientation)==null?void 0:f.lock;if(typeof s!="function")return!1;try{return await s.call(i.screen.orientation,u),!0}catch{return!1}}function A1(i){var u,s;return((u=i.matchMedia)==null?void 0:u.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}function z1(i){var s,o;const u=((s=i.navigator)==null?void 0:s.userAgent)??"";return/iPhone|iPad|iPod/i.test(u)||/Macintosh/i.test(u)&&(((o=i.navigator)==null?void 0:o.maxTouchPoints)??0)>1}function O1(i){const u=i.activeElement;if(!(u instanceof HTMLElement))return!1;const s=u.tagName;return u.isContentEditable||s==="INPUT"||s==="TEXTAREA"||s==="SELECT"}function C1(i){const u=i.screen;if(!u)return null;const s=Math.round(u.width),o=Math.round(u.height);return i.innerHeight>=i.innerWidth?Math.max(s,o):Math.min(s,o)}function D1(i=window,u=document){const s=u.documentElement,o=i.visualViewport??null;let f=-1;const m=()=>{const y=Math.round((o==null?void 0:o.height)??0),b=Math.round(i.innerHeight);let v=y>0?y:b;if(A1(i)&&z1(i)&&!O1(u)){const p=C1(i);p!==null&&(v=Math.max(v,b,p))}v!==f&&(f=v,s.style.setProperty("--app-height",`${v}px`))};return m(),i.addEventListener("resize",m),i.addEventListener("orientationchange",m),o==null||o.addEventListener("resize",m),()=>{i.removeEventListener("resize",m),i.removeEventListener("orientationchange",m),o==null||o.removeEventListener("resize",m)}}xa.getState().initialize();D1(window,document);const zp=window,N1=Ap(zp);R1(zp);if(N1){document.documentElement.classList.add("pwa-standalone");const i=window.matchMedia("(prefers-color-scheme: dark)").matches,u=localStorage.getItem("overlord-theme"),s=u==="dark"||u!=="light"&&i;document.body.style.backgroundColor=s?"#171717":"#FFFFFF",new MutationObserver(()=>{const o=document.documentElement.classList.contains("dark");document.body.style.backgroundColor=o?"#171717":"#FFFFFF"}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}dv.createRoot(document.getElementById("root")).render(h.jsx(g.StrictMode,{children:h.jsx(j1,{})}));export{yb as $,U1 as A,q1 as B,P_ as C,ip as D,ab as E,Y1 as F,V1 as G,Ns as H,np as I,B1 as J,ep as K,Jh as L,db as M,ll as N,sv as O,d0 as P,Wh as Q,Rr as R,ap as S,cp as T,_b as U,ob as V,H1 as W,lp as X,fb as Y,G1 as Z,lb as _,Vt as a,Js as a0,d_ as a1,X1 as a2,Q1 as a3,nb as a4,$s as b,xe as c,pb as d,sb as e,Fa as f,gt as g,Qr as h,Eb as i,h as j,up as k,Ep as l,kp as m,l0 as n,Ir as o,L1 as p,$1 as q,g as r,K1 as s,Wa as t,xa as u,s0 as v,J1 as w,tp as x,Ph as y,Z1 as z};
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-blue-400:oklch(70.7% .165 254.624);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-40{top:calc(var(--spacing) * -40)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-20{bottom:calc(var(--spacing) * 20)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-5\.5{margin-left:calc(var(--spacing) * 5.5)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-\[600px\]{height:600px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-6{max-height:calc(var(--spacing) * 6)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[44px\]{min-height:44px}.min-h-\[100px\]{min-height:100px}.min-h-\[200px\]{min-height:200px}.min-h-\[300px\]{min-height:300px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-80{width:calc(var(--spacing) * 80)}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[280px\]{width:280px}.w-\[360px\]{width:360px}.w-\[420px\]{width:420px}.w-\[900px\]{width:900px}.w-\[min\(320px\,calc\(100vw-2rem\)\)\]{width:min(320px,100vw - 2rem)}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[60\%\]{max-width:60%}.max-w-\[80px\]{max-width:80px}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[200px\]{max-width:200px}.max-w-\[340px\]{max-width:340px}.max-w-\[380px\]{max-width:380px}.max-w-\[400px\]{max-width:400px}.max-w-\[480px\]{max-width:480px}.max-w-\[600px\]{max-width:600px}.max-w-\[640px\]{max-width:640px}.max-w-\[1080px\]{max-width:1080px}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-3{min-width:calc(var(--spacing) * 3)}.min-w-\[44px\]{min-width:44px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[2px\]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[18px\]{--tw-translate-x:18px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[36px_90px_1fr_120px_60px_80px\]{grid-template-columns:36px 90px 1fr 120px 60px 80px}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.-space-x-1\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * -1.5) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * -1.5) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing) * 1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[var\(--border\)\]>:not(:last-child)){border-color:var(--border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--accent\)\],.border-\[var\(--accent\)\]\/20{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--accent\)\]\/20{border-color:color-mix(in oklab,var(--accent) 20%,transparent)}}.border-\[var\(--accent\)\]\/30{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--accent\)\]\/30{border-color:color-mix(in oklab,var(--accent) 30%,transparent)}}.border-\[var\(--accent\)\]\/40{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--accent\)\]\/40{border-color:color-mix(in oklab,var(--accent) 40%,transparent)}}.border-\[var\(--bg-card\)\]{border-color:var(--bg-card)}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--border-row\)\]{border-color:var(--border-row)}.border-\[var\(--destructive\)\],.border-\[var\(--destructive\)\]\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--destructive\)\]\/30{border-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.border-\[var\(--destructive\)\]\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--destructive\)\]\/40{border-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.border-\[var\(--text-muted\)\]\/40{border-color:var(--text-muted)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--text-muted\)\]\/40{border-color:color-mix(in oklab,var(--text-muted) 40%,transparent)}}.border-\[var\(--warning\)\],.border-\[var\(--warning\)\]\/30{border-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--warning\)\]\/30{border-color:color-mix(in oklab,var(--warning) 30%,transparent)}}.border-\[var\(--warning\)\]\/40{border-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--warning\)\]\/40{border-color:color-mix(in oklab,var(--warning) 40%,transparent)}}.border-amber-500{border-color:var(--color-amber-500)}.border-black\/30{border-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.border-black\/30{border-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.border-green-500\/20{border-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500) 30%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-red-900{border-color:var(--color-red-900)}.border-transparent{border-color:#0000}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500) 30%,transparent)}}.border-t-\[var\(--accent\)\]{border-top-color:var(--accent)}.border-t-black{border-top-color:var(--color-black)}.border-t-transparent{border-top-color:#0000}.bg-\[\#0C0C0C\],.bg-\[\#0c0c0c\]{background-color:#0c0c0c}.bg-\[\#1a1a1a\]{background-color:#1a1a1a}.bg-\[\#2a1515\]{background-color:#2a1515}.bg-\[\#525252\]{background-color:#525252}.bg-\[var\(--accent\)\],.bg-\[var\(--accent\)\]\/5{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--accent\)\]\/5{background-color:color-mix(in oklab,var(--accent) 5%,transparent)}}.bg-\[var\(--accent\)\]\/10{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--accent\)\]\/10{background-color:color-mix(in oklab,var(--accent) 10%,transparent)}}.bg-\[var\(--accent\)\]\/15{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--accent\)\]\/15{background-color:color-mix(in oklab,var(--accent) 15%,transparent)}}.bg-\[var\(--accent\)\]\/20{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--accent\)\]\/20{background-color:color-mix(in oklab,var(--accent) 20%,transparent)}}.bg-\[var\(--accent\)\]\/\[0\.06\]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--accent\)\]\/\[0\.06\]{background-color:color-mix(in oklab,var(--accent) 6%,transparent)}}.bg-\[var\(--accent\)\]\/\[0\.08\]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--accent\)\]\/\[0\.08\]{background-color:color-mix(in oklab,var(--accent) 8%,transparent)}}.bg-\[var\(--bg-card\)\]{background-color:var(--bg-card)}.bg-\[var\(--bg-input\)\]{background-color:var(--bg-input)}.bg-\[var\(--bg-primary\)\],.bg-\[var\(--bg-primary\)\]\/60{background-color:var(--bg-primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--bg-primary\)\]\/60{background-color:color-mix(in oklab,var(--bg-primary) 60%,transparent)}}.bg-\[var\(--bg-primary\)\]\/80{background-color:var(--bg-primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--bg-primary\)\]\/80{background-color:color-mix(in oklab,var(--bg-primary) 80%,transparent)}}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-\[var\(--destructive\)\],.bg-\[var\(--destructive\)\]\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--destructive\)\]\/5{background-color:color-mix(in oklab,var(--destructive) 5%,transparent)}}.bg-\[var\(--destructive\)\]\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--destructive\)\]\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-\[var\(--modal-backdrop\)\]{background-color:var(--modal-backdrop)}.bg-\[var\(--text-muted\)\]\/10{background-color:var(--text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--text-muted\)\]\/10{background-color:color-mix(in oklab,var(--text-muted) 10%,transparent)}}.bg-\[var\(--warning\)\],.bg-\[var\(--warning\)\]\/5{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--warning\)\]\/5{background-color:color-mix(in oklab,var(--warning) 5%,transparent)}}.bg-\[var\(--warning\)\]\/10{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--warning\)\]\/10{background-color:color-mix(in oklab,var(--warning) 10%,transparent)}}.bg-\[var\(--warning\)\]\/20{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--warning\)\]\/20{background-color:color-mix(in oklab,var(--warning) 20%,transparent)}}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/5{background-color:color-mix(in oklab,var(--color-green-500) 5%,transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-950{background-color:var(--color-red-950)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.bg-yellow-600{background-color:var(--color-yellow-600)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pt-\[calc\(var\(--safe-area-top\,0px\)\+16px\)\]{padding-top:calc(var(--safe-area-top,0px) + 16px)}.pt-\[var\(--safe-area-top\,0px\)\]{padding-top:var(--safe-area-top,0px)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-\[calc\(48px\+var\(--safe-area-bottom\,0px\)\)\]{padding-bottom:calc(48px + var(--safe-area-bottom,0px))}.pl-0{padding-left:calc(var(--spacing) * 0)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0c0c0c\]{color:#0c0c0c}.text-\[\#555\]{color:#555}.text-\[\#525252\]{color:#525252}.text-\[\#e4e4e4\]{color:#e4e4e4}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--border\)\]{color:var(--border)}.text-\[var\(--destructive\)\]{color:var(--destructive)}.text-\[var\(--info\)\]{color:var(--info)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--warning\)\],.text-\[var\(--warning\)\]\/70{color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.text-\[var\(--warning\)\]\/70{color:color-mix(in oklab,var(--warning) 70%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-black{color:var(--color-black)}.text-blue-400{color:var(--color-blue-400)}.text-green-400{color:var(--color-green-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow-\[var\(--accent\)\]\/25{--tw-shadow-alpha:25%;--tw-shadow:var(--accent);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_32px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,min-width\]{transition-property:width,min-width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:flex:is(:where(.group):hover *){display:flex}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:border-\[var\(--accent\)\]:hover,.hover\:border-\[var\(--accent\)\]\/40:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-\[var\(--accent\)\]\/40:hover{border-color:color-mix(in oklab,var(--accent) 40%,transparent)}}.hover\:border-\[var\(--destructive\)\]:hover{border-color:var(--destructive)}.hover\:border-\[var\(--text-muted\)\]:hover{border-color:var(--text-muted)}.hover\:bg-\[var\(--accent\)\]:hover,.hover\:bg-\[var\(--accent\)\]\/5:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--accent\)\]\/5:hover{background-color:color-mix(in oklab,var(--accent) 5%,transparent)}}.hover\:bg-\[var\(--accent\)\]\/10:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--accent\)\]\/10:hover{background-color:color-mix(in oklab,var(--accent) 10%,transparent)}}.hover\:bg-\[var\(--bg-input\)\]:hover{background-color:var(--bg-input)}.hover\:bg-\[var\(--bg-secondary\)\]:hover{background-color:var(--bg-secondary)}.hover\:bg-\[var\(--border\)\]:hover{background-color:var(--border)}.hover\:bg-\[var\(--destructive\)\]:hover,.hover\:bg-\[var\(--destructive\)\]\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--destructive\)\]\/10:hover{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.hover\:bg-\[var\(--warning\)\]:hover,.hover\:bg-\[var\(--warning\)\]\/10:hover{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--warning\)\]\/10:hover{background-color:color-mix(in oklab,var(--warning) 10%,transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.hover\:bg-white\/\[0\.05\]:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.05\]:hover{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.hover\:text-\[var\(--accent\)\]:hover{color:var(--accent)}.hover\:text-\[var\(--destructive\)\]:hover{color:var(--destructive)}.hover\:text-\[var\(--info\)\]:hover{color:var(--info)}.hover\:text-\[var\(--text-primary\)\]:hover{color:var(--text-primary)}.hover\:text-\[var\(--text-secondary\)\]:hover{color:var(--text-secondary)}.hover\:text-black:hover{color:var(--color-black)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-\[var\(--accent\)\]:focus{border-color:var(--accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.active\:bg-\[var\(--bg-input\)\]:active{background-color:var(--bg-input)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:mx-4{margin-inline:calc(var(--spacing) * 4)}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:max-h-\[60vh\]{max-height:60vh}.sm\:w-36{width:calc(var(--spacing) * 36)}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:flex-shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-28{padding-block:calc(var(--spacing) * 28)}.sm\:pt-2{padding-top:calc(var(--spacing) * 2)}.sm\:pt-32{padding-top:calc(var(--spacing) * 32)}.sm\:pb-28{padding-bottom:calc(var(--spacing) * 28)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}@media(min-width:48rem){.md\:right-4{right:calc(var(--spacing) * 4)}.md\:bottom-4{bottom:calc(var(--spacing) * 4)}.md\:left-auto{left:auto}.md\:mx-0{margin-inline:calc(var(--spacing) * 0)}.md\:mx-2{margin-inline:calc(var(--spacing) * 2)}.md\:mb-5{margin-bottom:calc(var(--spacing) * 5)}.md\:mb-8{margin-bottom:calc(var(--spacing) * 8)}.md\:ml-auto{margin-left:auto}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:table{display:table}.md\:h-2\.5{height:calc(var(--spacing) * 2.5)}.md\:h-7{height:calc(var(--spacing) * 7)}.md\:h-8{height:calc(var(--spacing) * 8)}.md\:max-h-\[400px\]{max-height:400px}.md\:min-h-0{min-height:calc(var(--spacing) * 0)}.md\:w-2\.5{width:calc(var(--spacing) * 2.5)}.md\:w-7{width:calc(var(--spacing) * 7)}.md\:w-16{width:calc(var(--spacing) * 16)}.md\:w-28{width:calc(var(--spacing) * 28)}.md\:w-40{width:calc(var(--spacing) * 40)}.md\:w-52{width:calc(var(--spacing) * 52)}.md\:w-80{width:calc(var(--spacing) * 80)}.md\:max-w-\[120px\]{max-width:120px}.md\:max-w-\[200px\]{max-width:200px}.md\:max-w-xs{max-width:var(--container-xs)}.md\:min-w-0{min-width:calc(var(--spacing) * 0)}.md\:flex-none{flex:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-wrap{flex-wrap:wrap}.md\:items-center{align-items:center}.md\:items-start{align-items:flex-start}.md\:gap-0{gap:calc(var(--spacing) * 0)}.md\:gap-3{gap:calc(var(--spacing) * 3)}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:gap-5{gap:calc(var(--spacing) * 5)}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md\:rounded-none{border-radius:0}.md\:border{border-style:var(--tw-border-style);border-width:1px}.md\:border-0{border-style:var(--tw-border-style);border-width:0}.md\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.md\:border-\[var\(--border-row\)\]{border-color:var(--border-row)}.md\:p-0{padding:calc(var(--spacing) * 0)}.md\:p-1\.5{padding:calc(var(--spacing) * 1.5)}.md\:p-4{padding:calc(var(--spacing) * 4)}.md\:p-5{padding:calc(var(--spacing) * 5)}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:px-0{padding-inline:calc(var(--spacing) * 0)}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-2{padding-block:calc(var(--spacing) * 2)}.md\:py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.md\:py-6{padding-block:calc(var(--spacing) * 6)}.md\:pt-0{padding-top:calc(var(--spacing) * 0)}.md\:pt-\[15vh\]{padding-top:15vh}.md\:pr-0{padding-right:calc(var(--spacing) * 0)}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}.md\:pb-4{padding-bottom:calc(var(--spacing) * 4)}.md\:pb-6{padding-bottom:calc(var(--spacing) * 6)}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.md\:leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.last\:md\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}.lg\:grid-cols-\[1fr_400px\]{grid-template-columns:1fr 400px}.lg\:p-8{padding:calc(var(--spacing) * 8)}}}:root{--bg-primary:#fafafa;--bg-card:#fff;--bg-input:#f5f5f5;--border:#e5e5e5;--border-row:#d4d4d4;--accent:#22c55e;--destructive:#dc2626;--warning:#d97706;--info:#2563eb;--purple:#9333ea;--muted:#6b7280;--text-primary:#171717;--text-secondary:#525252;--text-muted:#737373;--bg-secondary:#f0f0f0;--modal-backdrop:#0c0c0c99;--content-padding-y:32px;--content-padding-x:40px;--section-gap:32px;--card-gap:16px;--radius:4px;--app-height:100vh}.dark{--bg-primary:#0c0c0c;--bg-card:#171717;--bg-input:#1a1a1a;--border:#1f1f1f;--border-row:#252525;--accent:#22c55e;--destructive:#ef4444;--warning:#f59e0b;--info:#3b82f6;--purple:#a855f7;--muted:#6b7280;--text-primary:#e5e5e5;--text-secondary:#a3a3a3;--bg-secondary:#1f1f1f;--text-muted:#737373}*,:before,:after{border-radius:var(--radius)}html{text-transform:lowercase;font-family:JetBrains Mono,monospace}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:JetBrains Mono,monospace}#root{height:100%;min-height:var(--app-height,100dvh)}code,pre,kbd,samp,input[type=password]{text-transform:none}button,[role=button],a,select,label[for],summary,[tabindex]:not([tabindex="-1"]){cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-color:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.75rem;padding-right:1.75rem!important}select:focus{border-color:var(--accent);outline:none}select option{background-color:var(--bg-card);color:var(--text-primary);font-family:JetBrains Mono,monospace}table{border-collapse:collapse}table tr{border-bottom:1px solid var(--border-row)}table tr:last-child{border-bottom:none}[data-status]{background:0 0!important;border:none!important;padding:0!important}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}@supports (padding:env(safe-area-inset-top)){:root{--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--safe-area-right:env(safe-area-inset-right,0px)}}@media(display-mode:standalone){body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain}main,article,.selectable{-webkit-user-select:text;user-select:text}}.pwa-standalone body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain;background-color:var(--bg-card)}.pwa-standalone main,.pwa-standalone article,.pwa-standalone .selectable{-webkit-user-select:text;user-select:text}@supports (height:100dvh){:root{--app-height:100dvh}#root{min-height:var(--app-height,100dvh)}}.safe-area-bottom-fill{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom,0px)}@media(pointer:coarse){button:not(:disabled):active,[role=button]:not([aria-disabled=true]):active,a:active{opacity:.7;transition:opacity .1s}html{touch-action:manipulation}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.animate-slide-up{animation:.2s ease-out slide-up}.animate-slide-down{animation:.2s ease-in forwards slide-down}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DJl-vKpg.js";/**
1
+ import{c as e}from"./index-01l9VFB2.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DJl-vKpg.js";/**
1
+ import{c as e}from"./index-01l9VFB2.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DJl-vKpg.js";/**
1
+ import{c as a}from"./index-01l9VFB2.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DJl-vKpg.js";/**
1
+ import{c as e}from"./index-01l9VFB2.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as t}from"./index-DJl-vKpg.js";/**
1
+ import{c as t}from"./index-01l9VFB2.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DJl-vKpg.js";/**
1
+ import{c as a}from"./index-01l9VFB2.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DJl-vKpg.js";/**
1
+ import{c as a}from"./index-01l9VFB2.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{W as r,p as e,a2 as s,a3 as u,Z as a}from"./index-DJl-vKpg.js";const n={[e.QUEUED]:"var(--text-muted)",[e.ASSIGNED]:"#60a5fa",[e.RUNNING]:"var(--accent)",[e.SUSPENDED]:"var(--warning)",[e.COMPLETED]:"var(--info)",[e.FAILED]:"var(--destructive)",[e.CANCELLED]:"var(--text-muted)"};function v(t){return n[t]??"var(--text-muted)"}const o={[r.ONLINE]:"var(--accent)",[r.OFFLINE]:"var(--destructive)",[r.DRAINING]:"var(--warning)",[r.DECOMMISSIONED]:"var(--text-muted)"};function E(t){return o[t]??"var(--text-muted)"}function x(t){switch(t){case s.ACTIVE:return"text-green-400";case s.DISABLED:return"text-red-400";default:return"text-[var(--text-muted)]"}}function S(t){switch(t){case a.ACTIVE:return"text-green-400";case a.USED:return"text-blue-400";case a.REVOKED:return"text-red-400";case a.EXPIRED:return"text-[var(--text-muted)]";default:return"text-[var(--text-muted)]"}}function d(t){switch(t){case u.ACTIVE:return"text-green-400";case"error":return"text-red-400";default:return"text-[var(--text-muted)]"}}function i(t){return t>.8?"var(--destructive)":t>.6?"var(--warning)":"var(--accent)"}export{v as a,i as b,x as c,d,S as e,E as g,n as t,o as w};
1
+ import{W as r,p as e,a2 as s,a3 as u,Z as a}from"./index-01l9VFB2.js";const n={[e.QUEUED]:"var(--text-muted)",[e.ASSIGNED]:"#60a5fa",[e.RUNNING]:"var(--accent)",[e.SUSPENDED]:"var(--warning)",[e.COMPLETED]:"var(--info)",[e.FAILED]:"var(--destructive)",[e.CANCELLED]:"var(--text-muted)"};function v(t){return n[t]??"var(--text-muted)"}const o={[r.ONLINE]:"var(--accent)",[r.OFFLINE]:"var(--destructive)",[r.DRAINING]:"var(--warning)",[r.DECOMMISSIONED]:"var(--text-muted)"};function E(t){return o[t]??"var(--text-muted)"}function x(t){switch(t){case s.ACTIVE:return"text-green-400";case s.DISABLED:return"text-red-400";default:return"text-[var(--text-muted)]"}}function S(t){switch(t){case a.ACTIVE:return"text-green-400";case a.USED:return"text-blue-400";case a.REVOKED:return"text-red-400";case a.EXPIRED:return"text-[var(--text-muted)]";default:return"text-[var(--text-muted)]"}}function d(t){switch(t){case u.ACTIVE:return"text-green-400";case"error":return"text-red-400";default:return"text-[var(--text-muted)]"}}function i(t){return t>.8?"var(--destructive)":t>.6?"var(--warning)":"var(--accent)"}export{v as a,i as b,x as c,d,S as e,E as g,n as t,o as w};