@overlordai/server 1.0.165 → 1.0.166

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 (108) hide show
  1. package/package.json +4 -4
  2. package/public/assets/{AccessTokensPage-C-0-8g_T.js → AccessTokensPage-BGCTBtnS.js} +1 -1
  3. package/public/assets/{AdminPage-BbX7qN2o.js → AdminPage-C3bkaQfU.js} +1 -1
  4. package/public/assets/{AgentCliPage-CUTIRp3e.js → AgentCliPage-cbbNvIVh.js} +1 -1
  5. package/public/assets/{ApiReferencePage-CTyI9Wmo.js → ApiReferencePage-Dl3szXej.js} +1 -1
  6. package/public/assets/{ArchitecturePage-BYO1rOR1.js → ArchitecturePage-CeJCvHOO.js} +1 -1
  7. package/public/assets/{AuditLogPage-D41BIlg7.js → AuditLogPage-DZ7lTNZe.js} +1 -1
  8. package/public/assets/{AutomationCreatePage-BTkebXYp.js → AutomationCreatePage-BhTa8X7N.js} +1 -1
  9. package/public/assets/{AutomationDetailPage-C1826zDY.js → AutomationDetailPage-vL5NdOD5.js} +1 -1
  10. package/public/assets/{AutomationEditPage-75n4wJnY.js → AutomationEditPage-D-JIVF7y.js} +1 -1
  11. package/public/assets/{AutomationListPage-DEDMrWmT.js → AutomationListPage-yAPq7YGs.js} +1 -1
  12. package/public/assets/{AutomationRunDetailPage-B8J16r3p.js → AutomationRunDetailPage-CUrjN0ru.js} +1 -1
  13. package/public/assets/{BindPlatformPage-1ywl8297.js → BindPlatformPage-SZjEpxLM.js} +1 -1
  14. package/public/assets/{BotIntegrationPage-DL1Majjx.js → BotIntegrationPage-CxlKRS86.js} +1 -1
  15. package/public/assets/{BotManage-B1fNY07Y.js → BotManage-D0N_YDie.js} +1 -1
  16. package/public/assets/{BotSetupPage-DD461ngC.js → BotSetupPage-CoWn4EVN.js} +1 -1
  17. package/public/assets/ChangelogPage-DeqTi2vt.js +1 -0
  18. package/public/assets/{Checkbox-BTcgiBPg.js → Checkbox-MszKFKP5.js} +1 -1
  19. package/public/assets/{CliReferencePage-CS05YYd3.js → CliReferencePage-BELtla-b.js} +1 -1
  20. package/public/assets/{ConfirmStageDialog-CFrpX3HN.js → ConfirmStageDialog-B6GWCClQ.js} +1 -1
  21. package/public/assets/{DeploymentPage-B5Q0AFAu.js → DeploymentPage-BX0bJ84s.js} +1 -1
  22. package/public/assets/{DevWorkflowPage-pR3fCVwd.js → DevWorkflowPage-F4dPunD_.js} +1 -1
  23. package/public/assets/{DeveloperManage-B6RDaLkR.js → DeveloperManage-Ch5Cuhb0.js} +1 -1
  24. package/public/assets/{DeveloperSetupPage-D0M9TTiz.js → DeveloperSetupPage-DezO-dy9.js} +1 -1
  25. package/public/assets/{DocsIndexPage-BVlrV6PX.js → DocsIndexPage-mz6j61H9.js} +1 -1
  26. package/public/assets/{DocsLayout-CmMw8RvJ.js → DocsLayout-ByC0rFb9.js} +1 -1
  27. package/public/assets/{DocsPrimitives-BrDugynd.js → DocsPrimitives-Sl_VYTFo.js} +1 -1
  28. package/public/assets/{EditProjectPage-DKCZrdQs.js → EditProjectPage-Co7Mmqr-.js} +1 -1
  29. package/public/assets/{EmptyState-D5CEvlzr.js → EmptyState-BA9x5xQN.js} +1 -1
  30. package/public/assets/{EnvVariablesPage-C2PfAaQL.js → EnvVariablesPage-BB8UDIHK.js} +1 -1
  31. package/public/assets/{HomePage-Hf6Q8V2e.js → HomePage-iL4h_KbB.js} +1 -1
  32. package/public/assets/{InfoRow-D5UCrISX.js → InfoRow-BcJ15QpV.js} +1 -1
  33. package/public/assets/{InstallationPage-iSGHskwz.js → InstallationPage-3Mg3EwDu.js} +1 -1
  34. package/public/assets/{LandingPage-CD46Z2JC.js → LandingPage-BjaDEysn.js} +1 -1
  35. package/public/assets/{LocalDevelopmentPage-bFW_mRS1.js → LocalDevelopmentPage-D4hmOnyv.js} +1 -1
  36. package/public/assets/{LoginPage-BKOzdz7P.js → LoginPage-Dim7DvNx.js} +1 -1
  37. package/public/assets/{MetricBar-Bh5I5oKg.js → MetricBar-BKYj77zw.js} +1 -1
  38. package/public/assets/{MultiSelect-Bb4HJSAN.js → MultiSelect-COkT47FA.js} +1 -1
  39. package/public/assets/{NotFoundPage-689QOjXQ.js → NotFoundPage-Diq4DFT7.js} +1 -1
  40. package/public/assets/{OnboardingGuide-DptWURF7.js → OnboardingGuide-BdvsQUOR.js} +1 -1
  41. package/public/assets/{PermissionsPage-BVPkbbMI.js → PermissionsPage-CuZ4R205.js} +1 -1
  42. package/public/assets/{PipelineConfigPage-D4YM9Dbc.js → PipelineConfigPage-Bc59v8FH.js} +1 -1
  43. package/public/assets/{PipelineEditorPage-CsR5Ixk1.js → PipelineEditorPage-BYMUgYAp.js} +1 -1
  44. package/public/assets/{PlanPage-rWkuPQED.js → PlanPage-Cad0WoFq.js} +1 -1
  45. package/public/assets/{ProfilePage-Goz5xk1F.js → ProfilePage-CAONXEJn.js} +1 -1
  46. package/public/assets/{ProjectDetailPage-SJ1bULdn.js → ProjectDetailPage-Dz2MtkqV.js} +1 -1
  47. package/public/assets/{ProjectListPage-DbJy_Oc6.js → ProjectListPage-QLDq1Cd0.js} +1 -1
  48. package/public/assets/{PtyTerminal-BLkrZtf8.js → PtyTerminal-DZZw0V7P.js} +1 -1
  49. package/public/assets/{QuickAuth-BzNdCwsM.js → QuickAuth-DB27kLvg.js} +1 -1
  50. package/public/assets/{RemoveMemberConfirmDialog-BCPztuNz.js → RemoveMemberConfirmDialog-DZ2BIQVO.js} +1 -1
  51. package/public/assets/{ReviewAggregatePage-D2lNd4eh.js → ReviewAggregatePage-BiNX4CLc.js} +1 -1
  52. package/public/assets/{ReviewPage-DFNXIf3V.js → ReviewPage-Ggq_3chi.js} +1 -1
  53. package/public/assets/{Select-O36ifNjw.js → Select-tnanVDGG.js} +1 -1
  54. package/public/assets/{SettingsPage-TOtaLjjI.js → SettingsPage-BufRJ5IF.js} +1 -1
  55. package/public/assets/{Skeleton-C3hKV7kJ.js → Skeleton-Dv9dOtKo.js} +1 -1
  56. package/public/assets/{SkillPage-B_OlG2Lu.js → SkillPage-nwAKYwKF.js} +1 -1
  57. package/public/assets/TaskDetailPage-COMP6EC1.js +21 -0
  58. package/public/assets/{TaskGuidePage-ehGnB445.js → TaskGuidePage-v3d8H2Rw.js} +1 -1
  59. package/public/assets/{TaskListPage-1JmD5R00.js → TaskListPage-dV0t-q8c.js} +1 -1
  60. package/public/assets/{TaskStatusBadge-3HhHPj-4.js → TaskStatusBadge-BbcEINkn.js} +1 -1
  61. package/public/assets/{TerminalHomePage-Cjs2ESbL.js → TerminalHomePage-252i-Ub-.js} +1 -1
  62. package/public/assets/{TokenManage-Dqya1d3n.js → TokenManage-BCoS8_VA.js} +1 -1
  63. package/public/assets/{Tooltip-BHFpbnTf.js → Tooltip-BzmNCQBI.js} +1 -1
  64. package/public/assets/{TotpSetupPage-PaSNj1Vp.js → TotpSetupPage-onfqQ2Tg.js} +1 -1
  65. package/public/assets/{WorkerDetailPage-W7OzDMjo.js → WorkerDetailPage-DzDX_IED.js} +1 -1
  66. package/public/assets/{WorkerListPage-BlPPImaB.js → WorkerListPage-DyQqRYyL.js} +1 -1
  67. package/public/assets/{WorkerOperationsPage-DrfCoaEl.js → WorkerOperationsPage-M05K6-Uh.js} +1 -1
  68. package/public/assets/{WorkerSetupGuidePage-DWVXczXP.js → WorkerSetupGuidePage-Dsvy4cWd.js} +1 -1
  69. package/public/assets/{WorkerSetupPage-DHtihc61.js → WorkerSetupPage-QfPSikXC.js} +1 -1
  70. package/public/assets/{agent-type-options-DubeBncx.js → agent-type-options-D5TWJHLL.js} +1 -1
  71. package/public/assets/{arrow-left-g7TOa7aF.js → arrow-left-DB4r4i1M.js} +1 -1
  72. package/public/assets/{arrow-right-wT3FVH8D.js → arrow-right-D2JA1tPb.js} +1 -1
  73. package/public/assets/{bot-DUzuNjZF.js → bot-DxIEfbm7.js} +1 -1
  74. package/public/assets/{chevron-down-Bm0RXzLE.js → chevron-down-DfH1OlZR.js} +1 -1
  75. package/public/assets/{chevron-left-DNFZom2A.js → chevron-left-HX8XUd9Z.js} +1 -1
  76. package/public/assets/{chevron-right-k9Y539yL.js → chevron-right-QFYBmRJj.js} +1 -1
  77. package/public/assets/{chevron-up-Cxjw28Mn.js → chevron-up-BKrbfyCk.js} +1 -1
  78. package/public/assets/{circle-alert-ChLxlsDX.js → circle-alert-DkXfme-N.js} +1 -1
  79. package/public/assets/{clock-Cy1Js2Dt.js → clock-BesNqyTN.js} +1 -1
  80. package/public/assets/{copy-7k2-aSPF.js → copy-DYDGVR2b.js} +1 -1
  81. package/public/assets/{download-DECvB0VG.js → download-4aSi3sMZ.js} +1 -1
  82. package/public/assets/{external-link-BWGj2ovK.js → external-link-CgFswils.js} +1 -1
  83. package/public/assets/{git-fork-CySs5AmY.js → git-fork-DkBwDY6U.js} +1 -1
  84. package/public/assets/{index-CTiyb7yJ.js → index-OBVbDpAB.js} +2 -2
  85. package/public/assets/{key-BthWL-sa.js → key-Kz42y-uQ.js} +1 -1
  86. package/public/assets/{loader-circle-CsI7JHTw.js → loader-circle-Dy8GY3V5.js} +1 -1
  87. package/public/assets/{pencil-Bm1Ln0FX.js → pencil-3qtLy37N.js} +1 -1
  88. package/public/assets/{play-B7Id2WyV.js → play-CU_iG5kJ.js} +1 -1
  89. package/public/assets/{plus-Ce55RcwK.js → plus-D8LQpkpb.js} +1 -1
  90. package/public/assets/{rotate-ccw-C4xEcJju.js → rotate-ccw-_DB8ITHt.js} +1 -1
  91. package/public/assets/{scroll-text-B0k4ESJb.js → scroll-text-EAFmJm7K.js} +1 -1
  92. package/public/assets/{settings-kIgYE_n9.js → settings-CZcnVo6Q.js} +1 -1
  93. package/public/assets/{skip-forward-BuxHL_QR.js → skip-forward-mTKsd11B.js} +1 -1
  94. package/public/assets/{status-colors-BWRmmvZ-.js → status-colors-DripE1Ev.js} +1 -1
  95. package/public/assets/{task-agent-DetMKF5G.js → task-agent-DuXLBDpr.js} +1 -1
  96. package/public/assets/{task-constants-DCUOs6Oc.js → task-constants-_gH05-lN.js} +1 -1
  97. package/public/assets/{task.store-Buv1GNnt.js → task.store-BfXY08-9.js} +1 -1
  98. package/public/assets/{timer-DI-oKdvl.js → timer-BrmpjJhI.js} +1 -1
  99. package/public/assets/{trash-2-CjjldDF6.js → trash-2-DoiDLdk5.js} +1 -1
  100. package/public/assets/{useFetch-DS1eW-jy.js → useFetch-BJHAN5c6.js} +1 -1
  101. package/public/assets/{users-CvKRug18.js → users-D_2oemG4.js} +1 -1
  102. package/public/assets/{wifi-CT0EjbhU.js → wifi-CanKStX-.js} +1 -1
  103. package/public/assets/{workflow-DUtpMno5.js → workflow-BDFil6MC.js} +1 -1
  104. package/public/assets/{zap-DTEOEzhR.js → zap-DhI_j1gt.js} +1 -1
  105. package/public/index.html +1 -1
  106. package/public/sw.js +1 -1
  107. package/public/assets/ChangelogPage-WG_Wgb66.js +0 -1
  108. package/public/assets/TaskDetailPage-BCpOOndz.js +0 -21
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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}from"./index-CTiyb7yJ.js";/**
1
+ import{c}from"./index-OBVbDpAB.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}from"./index-CTiyb7yJ.js";/**
1
+ import{c}from"./index-OBVbDpAB.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 o}from"./index-CTiyb7yJ.js";/**
1
+ import{c as o}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as a}from"./index-OBVbDpAB.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}from"./index-CTiyb7yJ.js";/**
1
+ import{c}from"./index-OBVbDpAB.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
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LandingPage-CD46Z2JC.js","assets/arrow-right-wT3FVH8D.js","assets/zap-DTEOEzhR.js","assets/bot-DUzuNjZF.js","assets/workflow-DUtpMno5.js","assets/users-CvKRug18.js","assets/copy-7k2-aSPF.js","assets/HomePage-Hf6Q8V2e.js","assets/TaskStatusBadge-3HhHPj-4.js","assets/status-colors-BWRmmvZ-.js","assets/Skeleton-C3hKV7kJ.js","assets/OnboardingGuide-DptWURF7.js","assets/chevron-right-k9Y539yL.js","assets/date-CmcdoD87.js","assets/useFetch-DS1eW-jy.js","assets/Tooltip-BHFpbnTf.js","assets/TerminalHomePage-Cjs2ESbL.js","assets/task-agent-DetMKF5G.js","assets/task.store-Buv1GNnt.js","assets/PtyTerminal-BLkrZtf8.js","assets/PtyTerminal-6GBZ9nXN.css","assets/ConfirmStageDialog-CFrpX3HN.js","assets/clock-Cy1Js2Dt.js","assets/Select-O36ifNjw.js","assets/chevron-down-Bm0RXzLE.js","assets/task-constants-DCUOs6Oc.js","assets/agent-type-options-DubeBncx.js","assets/plus-Ce55RcwK.js","assets/chevron-up-Cxjw28Mn.js","assets/rotate-ccw-C4xEcJju.js","assets/wifi-CT0EjbhU.js","assets/TaskListPage-1JmD5R00.js","assets/git-fork-CySs5AmY.js","assets/EmptyState-D5CEvlzr.js","assets/chevron-left-DNFZom2A.js","assets/TaskDetailPage-BCpOOndz.js","assets/Checkbox-BTcgiBPg.js","assets/arrow-left-g7TOa7aF.js","assets/play-B7Id2WyV.js","assets/external-link-BWGj2ovK.js","assets/loader-circle-CsI7JHTw.js","assets/skip-forward-BuxHL_QR.js","assets/PlanPage-rWkuPQED.js","assets/ReviewPage-DFNXIf3V.js","assets/ReviewAggregatePage-D2lNd4eh.js","assets/circle-alert-ChLxlsDX.js","assets/WorkerListPage-BlPPImaB.js","assets/MetricBar-Bh5I5oKg.js","assets/WorkerSetupGuidePage-DWVXczXP.js","assets/key-BthWL-sa.js","assets/download-DECvB0VG.js","assets/settings-kIgYE_n9.js","assets/WorkerDetailPage-W7OzDMjo.js","assets/InfoRow-D5UCrISX.js","assets/trash-2-CjjldDF6.js","assets/ProjectListPage-DbJy_Oc6.js","assets/ProjectDetailPage-SJ1bULdn.js","assets/RemoveMemberConfirmDialog-BCPztuNz.js","assets/pencil-Bm1Ln0FX.js","assets/EditProjectPage-DKCZrdQs.js","assets/PipelineEditorPage-CsR5Ixk1.js","assets/AutomationListPage-DEDMrWmT.js","assets/MultiSelect-Bb4HJSAN.js","assets/automationFindings-CnN7yNaM.js","assets/timer-DI-oKdvl.js","assets/AutomationCreatePage-BTkebXYp.js","assets/AutomationDetailPage-C1826zDY.js","assets/AutomationEditPage-75n4wJnY.js","assets/AutomationRunDetailPage-B8J16r3p.js","assets/ProfilePage-Goz5xk1F.js","assets/password-CHk45-jw.js","assets/AccessTokensPage-C-0-8g_T.js","assets/CliReferencePage-CS05YYd3.js","assets/DocsPrimitives-BrDugynd.js","assets/QuickAuth-BzNdCwsM.js","assets/ApiReferencePage-CTyI9Wmo.js","assets/SkillPage-B_OlG2Lu.js","assets/DocsLayout-CmMw8RvJ.js","assets/InstallationPage-iSGHskwz.js","assets/DeveloperSetupPage-D0M9TTiz.js","assets/WorkerSetupPage-DHtihc61.js","assets/BotSetupPage-DD461ngC.js","assets/LocalDevelopmentPage-bFW_mRS1.js","assets/DeploymentPage-B5Q0AFAu.js","assets/PipelineConfigPage-D4YM9Dbc.js","assets/DevWorkflowPage-pR3fCVwd.js","assets/EnvVariablesPage-C2PfAaQL.js","assets/ArchitecturePage-BYO1rOR1.js","assets/AgentCliPage-CUTIRp3e.js","assets/TaskGuidePage-ehGnB445.js","assets/DocsIndexPage-BVlrV6PX.js","assets/AdminPage-BbX7qN2o.js","assets/scroll-text-B0k4ESJb.js","assets/DeveloperManage-B6RDaLkR.js","assets/BotManage-B1fNY07Y.js","assets/TokenManage-Dqya1d3n.js","assets/AuditLogPage-D41BIlg7.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LandingPage-BjaDEysn.js","assets/arrow-right-D2JA1tPb.js","assets/zap-DhI_j1gt.js","assets/bot-DxIEfbm7.js","assets/workflow-BDFil6MC.js","assets/users-D_2oemG4.js","assets/copy-DYDGVR2b.js","assets/HomePage-iL4h_KbB.js","assets/TaskStatusBadge-BbcEINkn.js","assets/status-colors-DripE1Ev.js","assets/Skeleton-Dv9dOtKo.js","assets/OnboardingGuide-BdvsQUOR.js","assets/chevron-right-QFYBmRJj.js","assets/date-CmcdoD87.js","assets/useFetch-BJHAN5c6.js","assets/Tooltip-BzmNCQBI.js","assets/TerminalHomePage-252i-Ub-.js","assets/task-agent-DuXLBDpr.js","assets/task.store-BfXY08-9.js","assets/PtyTerminal-DZZw0V7P.js","assets/PtyTerminal-6GBZ9nXN.css","assets/ConfirmStageDialog-B6GWCClQ.js","assets/clock-BesNqyTN.js","assets/Select-tnanVDGG.js","assets/chevron-down-DfH1OlZR.js","assets/task-constants-_gH05-lN.js","assets/agent-type-options-D5TWJHLL.js","assets/plus-D8LQpkpb.js","assets/chevron-up-BKrbfyCk.js","assets/rotate-ccw-_DB8ITHt.js","assets/wifi-CanKStX-.js","assets/TaskListPage-dV0t-q8c.js","assets/git-fork-DkBwDY6U.js","assets/EmptyState-BA9x5xQN.js","assets/chevron-left-HX8XUd9Z.js","assets/TaskDetailPage-COMP6EC1.js","assets/Checkbox-MszKFKP5.js","assets/arrow-left-DB4r4i1M.js","assets/play-CU_iG5kJ.js","assets/external-link-CgFswils.js","assets/loader-circle-Dy8GY3V5.js","assets/skip-forward-mTKsd11B.js","assets/PlanPage-Cad0WoFq.js","assets/ReviewPage-Ggq_3chi.js","assets/ReviewAggregatePage-BiNX4CLc.js","assets/circle-alert-DkXfme-N.js","assets/WorkerListPage-DyQqRYyL.js","assets/MetricBar-BKYj77zw.js","assets/WorkerSetupGuidePage-Dsvy4cWd.js","assets/key-Kz42y-uQ.js","assets/download-4aSi3sMZ.js","assets/settings-CZcnVo6Q.js","assets/WorkerDetailPage-DzDX_IED.js","assets/InfoRow-BcJ15QpV.js","assets/trash-2-DoiDLdk5.js","assets/ProjectListPage-QLDq1Cd0.js","assets/ProjectDetailPage-Dz2MtkqV.js","assets/RemoveMemberConfirmDialog-DZ2BIQVO.js","assets/pencil-3qtLy37N.js","assets/EditProjectPage-Co7Mmqr-.js","assets/PipelineEditorPage-BYMUgYAp.js","assets/AutomationListPage-yAPq7YGs.js","assets/MultiSelect-COkT47FA.js","assets/automationFindings-CnN7yNaM.js","assets/timer-BrmpjJhI.js","assets/AutomationCreatePage-BhTa8X7N.js","assets/AutomationDetailPage-vL5NdOD5.js","assets/AutomationEditPage-D-JIVF7y.js","assets/AutomationRunDetailPage-CUrjN0ru.js","assets/ProfilePage-CAONXEJn.js","assets/password-CHk45-jw.js","assets/AccessTokensPage-BGCTBtnS.js","assets/CliReferencePage-BELtla-b.js","assets/DocsPrimitives-Sl_VYTFo.js","assets/QuickAuth-DB27kLvg.js","assets/ApiReferencePage-Dl3szXej.js","assets/SkillPage-nwAKYwKF.js","assets/DocsLayout-ByC0rFb9.js","assets/InstallationPage-3Mg3EwDu.js","assets/DeveloperSetupPage-DezO-dy9.js","assets/WorkerSetupPage-QfPSikXC.js","assets/BotSetupPage-CoWn4EVN.js","assets/LocalDevelopmentPage-D4hmOnyv.js","assets/DeploymentPage-BX0bJ84s.js","assets/PipelineConfigPage-Bc59v8FH.js","assets/DevWorkflowPage-F4dPunD_.js","assets/EnvVariablesPage-BB8UDIHK.js","assets/ArchitecturePage-CeJCvHOO.js","assets/AgentCliPage-cbbNvIVh.js","assets/TaskGuidePage-v3d8H2Rw.js","assets/DocsIndexPage-mz6j61H9.js","assets/AdminPage-C3bkaQfU.js","assets/scroll-text-EAFmJm7K.js","assets/DeveloperManage-Ch5Cuhb0.js","assets/BotManage-D0N_YDie.js","assets/TokenManage-BCoS8_VA.js","assets/AuditLogPage-DZ7lTNZe.js"])))=>i.map(i=>d[i]);
2
2
  var ay=Object.defineProperty;var eh=i=>{throw TypeError(i)};var ny=(i,o,s)=>o in i?ay(i,o,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[o]=s;var Ve=(i,o,s)=>ny(i,typeof o!="symbol"?o+"":o,s),ys=(i,o,s)=>o.has(i)||eh("Cannot "+s);var L=(i,o,s)=>(ys(i,o,"read from private field"),s?s.call(i):o.get(i)),ea=(i,o,s)=>o.has(i)?eh("Cannot add the same private member more than once"):o instanceof WeakSet?o.add(i):o.set(i,s),Jt=(i,o,s,u)=>(ys(i,o,"write to private field"),u?u.call(i,s):o.set(i,s),s),ke=(i,o,s)=>(ys(i,o,"access private method"),s);var th=(i,o,s,u)=>({set _(f){Jt(i,o,f,s)},get _(){return L(i,o,u)}});(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))u(f);new MutationObserver(f=>{for(const d of f)if(d.type==="childList")for(const p of d.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&u(p)}).observe(document,{childList:!0,subtree:!0});function s(f){const d={};return f.integrity&&(d.integrity=f.integrity),f.referrerPolicy&&(d.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?d.credentials="include":f.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function u(f){if(f.ep)return;f.ep=!0;const d=s(f);fetch(f.href,d)}})();function ly(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var vs={exports:{}},ai={};/**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.js
@@ -259,4 +259,4 @@ overlord install`,setup_step_1_link:"installation guide",setup_step_2_title:"reg
259
259
  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
260
260
  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_changelog:"// changelog",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_task_guide:"task guide",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_task_guide:"task modes, task types, forks, and task relationships",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}]?
261
261
 
262
- "{description}"`},plan:{title:"plan",create:"create plan",description_placeholder:"describe what you want to build...",spec_generated:"spec generated",decompose:"decompose into tasks",save_only:"save spec only",no_plans:"no plan tasks yet",view_spec:"view spec"},automation:{title:"automations",new_automation:"new automation",tab_inbox:"inbox",tab_automations:"automations",tab_templates:"templates",no_unread_findings:"no unread findings",inbox_description:"automation runs with findings will appear here",select_all:"select all",deselect_all:"deselect all",mark_all_read:"mark all read",marked_as_read:"marked as read",failed_mark_read:"failed to mark as read",archived:"archived",failed_archive:"failed to archive",marked_n_read:"marked {n} as read",failed_batch_update:"failed to batch update",run_label:"run #{id} -- automation #{automationId}",finding_count:"{count} finding",findings_count:"{count} findings",mark_read:"mark read",archive:"archive",no_automations:"no automations",create_first_description:"create your first automation to get started",automation_disabled:"automation disabled",automation_enabled:"automation enabled",failed_toggle:"failed to toggle automation",last_run:"last run: {time}",next_run:"next run: {time}",no_runs_yet:"no runs yet",no_templates:"no templates",templates_description:"builtin and project templates will appear here once available",templates_suggested:"suggested",templates_suggested_title:"start from a template instead of a blank automation",templates_suggested_description:"pick one of the built-in automations below, then tune the schedule, project, and execution mode to match how your team works.",templates_ready_count:"{count} templates ready",templates_browse:"browse by category",templates_browse_description:"jump to the automation set that matches the workflow you want to automate.",template_preview:"template preview",template_prompt:"automation prompt",template_source_builtin:"builtin",template_source_custom:"custom",template_category_status_reports:"status reports",template_category_status_reports_description:"summaries, digests, and weekly rollups that turn repository activity into updates people can actually read.",template_category_release_prep:"release prep",template_category_release_prep_description:"release notes, pre-flight checks, and changelog work that help teams ship with fewer surprises.",template_category_incidents_triage:"incidents & triage",template_category_incidents_triage_description:"ci investigations and failure summaries that help you separate signal from operational noise.",template_category_code_quality:"code quality",template_category_code_quality_description:"bug scans, coverage work, security reviews, and invariants that keep changes from quietly eroding reliability.",template_category_repo_maintenance:"repo maintenance",template_category_repo_maintenance_description:"feature-flag cleanup, dependency upkeep, docs refreshes, and recurring chores that usually slip between releases.",template_category_growth_exploration:"growth & exploration",template_category_growth_exploration_description:"performance audits and coaching prompts that help teams find their next high-leverage improvement.",template_category_other:"other",template_category_other_description:"templates without a stronger home still show up here so they remain easy to discover.",use_template:"use template",create_title:"new automation",project:"project",select_project:"select project",name:"name",name_placeholder:"e.g. nightly security scan",name_required:"name is required",description:"description",description_placeholder:"describe what the automation agent should do. use {{project_name}}, {{date}}, {{trigger_event}} as needed.",template_vars:"template vars: {{date}}, {{time}}, {{weekday}}, {{project_name}}, {{trigger_event}}, {{source_task_id}}",trigger_type:"trigger type",cron_config:"cron config",preset:"preset",cron_expression:"cron expression",cron_expression_required:"cron expression is required",cron_expression_invalid:"invalid cron expression: must have 5 or 6 space-separated fields",timezone:"timezone",task_event_config:"task event config",event_type:"event type",all_projects:"all projects",filter_project_key:"filter project key (optional)",filter_task_mode:"filter task mode (optional)",all_modes:"all modes",execution_mode:"execution mode",writable_hint:"agent can create branches and merge requests",readonly_hint:"agent runs in read-only mode, reports findings only",agent_type:"agent type",notify_project_chats:"notify default chats",notify_project_chats_hint:"send completion and failure cards to each bot's notify-default chat for this project",notify_project_chats_enabled:"notifications on",notify_project_chats_disabled:"notifications off",project_required:"project is required",creating:"creating...",create_from_template:"create from template",create_automation:"create automation",cancel:"cancel",automation_created:"automation created",failed_create:"failed to create automation",failed_load_projects:"failed to load projects",edit_title:"edit automation",saving:"saving...",save_changes:"save changes",automation_updated:"automation updated",failed_update:"failed to update automation",automation_not_found:"automation not found",enabled:"enabled",disabled:"disabled",disable:"disable",enable:"enable",edit:"edit",trigger_now:"trigger now",delete:"delete",configuration:"// configuration",schedule:"schedule",event:"event",automation_triggered:"automation triggered",failed_trigger:"failed to trigger automation",automation_deleted:"automation deleted",failed_delete:"failed to delete automation",run_history:"// run history",no_runs:"no runs yet",col_time:"time",col_status:"status",col_findings:"findings",col_task:"task",delete_title:"delete automation",delete_confirm:'are you sure you want to delete "{name}"? this action cannot be undone.',run_title:"run #{id}",run_not_found:"run not found",run_metadata:"// run metadata",status:"status",triggered_at:"triggered at",duration:"duration",task_label:"task #{id}",merge_request:"merge request",findings_title:"// findings ({count})",no_findings:"no findings"},review:{title:"review",pending:"pending review",in_progress:"in progress",history:"history",launch:"launch review",launch_short:"review",select_agents:"select review agents",approve_fix:"fix issues",skip_fix:"no fix needed",review_again:"review again",round:"round",no_reviews:"no reviews yet",issues_summary:"{critical} critical · {warning} warning · {suggestion} suggestion",description_placeholder:"review instructions (optional)...",empty_report_warning:"review completed but no structured report was produced. check the terminal output for details.",fix_push_info:"selected agent will push fixes to the source branch",waiting_agents:"waiting for review agents to finish...",skip_fix_label:"review only (skip fix stage)"}};function l0(i,o){const s=o.split(".");let u=i;for(const f of s){if(u==null||typeof u!="object")return o;u=u[f]}return typeof u=="string"?u:o}function i0(i,o){return o?i.replace(/\{(\w+)\}/g,(s,u)=>o[u]!=null?String(o[u]):`{${u}}`):i}function Zr(i,o){return i0(l0(n0,i),o)}function Xt(){return{t:g.useCallback((o,s)=>Zr(o,s),[])}}function kp(){const{theme:i,setTheme:o}=Sp(),{t:s}=Xt(),u=i==="dark"||i==="system"&&typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches;function f(){o(u?"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(u?"common.switch_to_light":"common.switch_to_dark"),title:s(u?"common.light_mode":"common.dark_mode"),children:u?h.jsx(kb,{size:16}):h.jsx(gb,{size:16})})}const r0=3e4;function o0(i){if(i.link)return i.link;const o=(i.title+" "+i.body).match(/task\s*#?(\d+)/i);if(o)return`/tasks/${o[1]}`;const s=(i.title+" "+i.body).match(/worker\s+(\S+)/i);return s?`/workers/${s[1]}`:null}function Ep(){const i=Ia(),[o,s]=g.useState([]),[u,f]=g.useState(0),[d,p]=g.useState(!1),[v,y]=g.useState(!1),_=g.useRef(null),{t:w}=Xt(),S=g.useRef(async()=>{try{y(!0);const H=(await We.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{y(!1)}});g.useEffect(()=>{S.current();const q=setInterval(()=>S.current(),r0);return()=>clearInterval(q)},[]),g.useEffect(()=>{function q(H){_.current&&!_.current.contains(H.target)&&p(!1)}return document.addEventListener("mousedown",q),()=>document.removeEventListener("mousedown",q)},[]);async function D(q){try{await We.post(`web/notifications/${q}/read`),s(H=>H.map(B=>B.id===q?{...B,isRead:!0}:B)),f(H=>Math.max(0,H-1))}catch{}}async function Y(){try{await We.post("web/notifications/read-all"),s(q=>q.map(H=>({...H,isRead:!0}))),f(0)}catch{}}return h.jsxs("div",{className:"relative",ref:_,children:[h.jsxs("button",{type:"button",onClick:()=>p(q=>!q),"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(Pv,{size:16}),u>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:u})]}),d&&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")}),u>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(eb,{className:"h-3.5 w-3.5"}),w("common.mark_all_read")]})]}),h.jsx("div",{className:"max-h-80 overflow-y-auto",children:v&&o.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)]"})}):o.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")})]}):o.map(q=>{const H=o0(q);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)]":""} ${q.isRead?"opacity-60":"bg-[var(--accent)]/5"}`,onClick:()=>{H&&(q.isRead||D(q.id),p(!1),i(H))},children:[h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("p",{className:"truncate text-sm font-medium",title:q.title,children:q.title}),h.jsx("p",{className:"truncate text-xs text-[var(--text-secondary)]",title:q.body,children:q.body}),h.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)] opacity-60",children:new Date(q.createdAt).toLocaleString()})]}),!q.isRead&&h.jsx("button",{type:"button",onClick:B=>{B.stopPropagation(),D(q.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(tb,{className:"h-3.5 w-3.5"})})]},q.id)})})]})]})}function u0(i){return i&&i.trim().length>0?i:null}function wp(i,o=50){return u0(i.name)??Fh(i.description,o)}function Tp(i){return`#${i.id} ${i.description}`}function cx(i,o=100){return{text:`#${i.id} ${wp(i,o)}`,title:Tp(i)}}function s0(i){return{tasks:i.tasks.map(o=>({type:"task",id:o.id,title:`#${o.id} ${wp(o)}`,subtitle:`${o.status} · ${o.project_key}`,hoverTitle:Tp(o)})),workers:(i.workers??[]).map(o=>({type:"worker",id:o.id,title:o.name,subtitle:`${o.hostname} · ${o.status}`})),projects:i.projects.map(o=>({type:"project",id:o.key,title:o.name,subtitle:o.repository}))}}const c0=300,Th={tasks:Sb,workers:lp,projects:sb},f0={tasks:"tasks",workers:"workers",projects:"projects"};function jp({renderTrigger:i}={}){const[o,s]=g.useState(""),[u,f]=g.useState({tasks:[],workers:[],projects:[]}),[d,p]=g.useState(!1),[v,y]=g.useState(!1),[_,w]=g.useState(0),S=g.useRef(null),D=g.useRef(null),Y=g.useRef(void 0),q=g.useRef(void 0),H=Ia(),{t:B}=Xt(),U=g.useMemo(()=>[...u.tasks,...u.workers,...u.projects],[u]),K=g.useCallback(async F=>{var et;if(!F.trim()){f({tasks:[],workers:[],projects:[]});return}(et=q.current)==null||et.abort();const se=new AbortController;q.current=se;try{p(!0);const Je=await We.get("web/search",{searchParams:{q:F},signal:se.signal}).json();f(s0(Je)),w(0)}catch(Je){if(Je instanceof DOMException&&Je.name==="AbortError")return}finally{se.signal.aborted||p(!1)}},[]);g.useEffect(()=>(Y.current&&clearTimeout(Y.current),Y.current=setTimeout(()=>K(o),c0),()=>{Y.current&&clearTimeout(Y.current)}),[o,K]),g.useEffect(()=>{function F(se){se.key==="/"&&!v&&!(se.target instanceof HTMLInputElement||se.target instanceof HTMLTextAreaElement)&&(se.preventDefault(),y(!0)),se.key==="Escape"&&v&&(se.preventDefault(),X())}return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[v]),g.useEffect(()=>{v&&setTimeout(()=>{var F;return(F=D.current)==null?void 0:F.focus()},50)},[v]);function X(){y(!1),s(""),f({tasks:[],workers:[],projects:[]}),w(0)}function oe(F){switch(X(),F.type){case"task":H(`/tasks/${F.id}`);break;case"worker":H(`/workers/${F.id}`);break;case"project":H(`/projects/${F.id}`);break}}function ce(F){F.key==="ArrowDown"?(F.preventDefault(),w(se=>Math.min(se+1,U.length-1))):F.key==="ArrowUp"?(F.preventDefault(),w(se=>Math.max(se-1,0))):F.key==="Enter"&&U[_]&&(F.preventDefault(),oe(U[_]))}const _e=U.length>0;let I=0;return h.jsxs(h.Fragment,{children:[i?i(()=>y(!0)):h.jsxs("button",{type:"button",onClick:()=>y(!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(np,{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:"/"})]}),v&&h.jsx("div",{ref:S,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:F=>{F.target===S.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:D,type:"text",placeholder:B("common.search_input_placeholder"),value:o,onChange:F=>s(F.target.value),onKeyDown:ce,className:"flex-1 bg-transparent text-sm text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none"}),d&&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:o.trim()&&!_e&&!d?h.jsx("div",{className:"py-10 text-center text-xs text-[var(--text-muted)]",children:B("common.no_search_results",{query:o})}):Object.keys(Th).map(F=>{const se=u[F];if(se.length===0)return null;const et=Th[F],Je=I;return I+=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(et,{className:"h-3 w-3"}),h.jsx("span",{className:"text-[11px] lowercase tracking-wider",children:f0[F]})]}),se.map((Oe,zt)=>{const ut=Je+zt,Me=ut===_;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:()=>oe(Oe),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 preserve-case",title:Oe.hoverTitle??Oe.title,children:Oe.title}),Oe.subtitle&&h.jsx("p",{className:"truncate text-xs text-[var(--text-muted)]",title:Oe.subtitle,children:Oe.subtitle})]})]},`${Oe.type}-${Oe.id}`)})]},F)})}),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")]})]})]})})]})}function d0(i){g.useEffect(()=>{if(!i)return;function o(s){s.preventDefault(),s.returnValue=""}return window.addEventListener("beforeunload",o),()=>window.removeEventListener("beforeunload",o)},[i])}const m0={danger:"var(--destructive)",warning:"var(--warning)",accent:"var(--accent)"};function jh(i){return Array.from(i.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'))}function h0({isOpen:i,onClose:o,onConfirm:s,title:u,message:f,confirmLabel:d,cancelLabel:p,confirmVariant:v="danger",isLoading:y,children:_}){const{t:w}=Xt(),S=g.useId(),D=d??w("common.confirm"),Y=p??w("common.cancel"),q=g.useRef(null),H=g.useRef(null),B=m0[v];d0(i),g.useEffect(()=>{if(!i)return;H.current=document.activeElement;const K=requestAnimationFrame(()=>{if(q.current){const X=jh(q.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"&&!y){o();return}if(K.key==="Tab"&&q.current){const X=jh(q.current);if(X.length===0)return;const oe=X[0],ce=X[X.length-1];K.shiftKey?document.activeElement===oe&&(K.preventDefault(),ce.focus()):document.activeElement===ce&&(K.preventDefault(),oe.focus())}},[o,y]);return i?h.jsx("div",{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:q,role:"dialog","aria-modal":"true","aria-labelledby":S,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:S,style:{color:"var(--accent)",fontSize:"0.875rem",fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:[h.jsx(ip,{style:{width:"1rem",height:"1rem"}}),u]})}),h.jsxs("div",{style:{marginBottom:"1.25rem"},children:[h.jsx("p",{style:{color:"var(--text-muted)",fontSize:"0.75rem",lineHeight:"1.5"},children:f}),_]}),h.jsxs("div",{style:{display:"flex",gap:"0.75rem"},children:[h.jsx("button",{type:"button",onClick:o,disabled:y,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:y?"not-allowed":"pointer",opacity:y?.7:1,transition:"color 0.15s, border-color 0.15s"},children:Y}),h.jsx("button",{type:"button",onClick:s,disabled:y,style:{flex:1,padding:"0.5rem",backgroundColor:B,color:"#0C0C0C",border:"none",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600,cursor:y?"not-allowed":"pointer",opacity:y?.7:1},children:y?w("common.processing"):D})]})]})}):null}const Rh="overlord-pwa-install-dismissed";function p0(){const i=navigator.userAgent;return/iP(hone|od|ad)/.test(i)&&/WebKit/.test(i)&&!/(CriOS|FxiOS|OPiOS|mercury)/.test(i)}function _0(){return navigator.standalone===!0||window.matchMedia("(display-mode: standalone)").matches}function g0(){const{t:i}=Xt(),[o,s]=g.useState("hidden"),[u,f]=g.useState(!1),d=g.useRef(null),p=g.useRef(void 0);g.useEffect(()=>{if(_0()||localStorage.getItem(Rh)||window.innerWidth>=768)return;const _=S=>{S.preventDefault(),d.current=S};window.addEventListener("beforeinstallprompt",_);const w=setTimeout(()=>s("visible"),1e3);return()=>{window.removeEventListener("beforeinstallprompt",_),clearTimeout(w),clearTimeout(p.current)}},[]);function v(){localStorage.setItem(Rh,"1"),s("dismissing"),p.current=setTimeout(()=>s("hidden"),200)}async function y(){if(d.current){await d.current.prompt();const{outcome:_}=await d.current.userChoice;_==="accepted"&&v(),d.current=null}else p0()&&f(!0)}return o==="hidden"?null:h.jsx("div",{className:`fixed bottom-4 left-4 right-4 z-40 md:hidden ${o==="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:v,className:"p-1 text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)]",children:h.jsx(rp,{size:14})})]}),h.jsx("div",{className:"px-3.5 py-3",children:u?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((_,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(vb,{size:12,className:"mr-1 inline-block align-text-bottom text-[var(--text-muted)]"}),_]})]},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:y,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:v,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 y0(){const{t:i}=Xt(),[o,s]=g.useState(!1);return g.useEffect(()=>{if(!("serviceWorker"in navigator))return;let u=!1,f=null,d=null,p=null,v=null;function y(){u||s(!0)}navigator.serviceWorker.addEventListener("controllerchange",y);function _(S){if(f=S,S.waiting){s(!0);return}p=()=>{const D=S.installing;D&&(d=D,v=()=>{D.state==="installed"&&navigator.serviceWorker.controller&&(u||s(!0))},D.addEventListener("statechange",v))},S.addEventListener("updatefound",p)}navigator.serviceWorker.getRegistration().then(S=>{S&&!u&&_(S)});const w=setInterval(()=>{navigator.serviceWorker.getRegistration().then(S=>{!S||u||(S.update().catch(()=>{}),S.waiting&&s(!0))})},3e4);return()=>{u=!0,clearInterval(w),navigator.serviceWorker.removeEventListener("controllerchange",y),f&&p&&f.removeEventListener("updatefound",p),d&&v&&d.removeEventListener("statechange",v)}},[]),o?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(ap,{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 Hr=64,v0=96,Ah=32;function b0({children:i,className:o}){const s=g.useRef(null),u=g.useRef(0),f=g.useRef("idle"),[d,p]=g.useState(0),[v,y]=g.useState("idle"),_=g.useCallback(U=>{f.current=U,y(U)},[]),w=g.useCallback(()=>{const U=s.current;return U?U.scrollTop<=0:!0},[]),S=g.useCallback(U=>{if(!w()){u.current=0;return}u.current=U.touches[0].clientY},[w]),D=g.useCallback(U=>{if(f.current==="refreshing"||u.current===0)return;const X=U.touches[0].clientY-u.current;if(X<=0){f.current!=="idle"&&(p(0),_("idle"));return}if(!w())return;U.preventDefault();const oe=Math.min(X*.5,v0);p(oe),_(oe>=Hr?"ready":"pulling")},[w,_]),Y=g.useCallback(()=>{f.current!=="refreshing"&&(f.current==="ready"?(_("refreshing"),p(Hr),setTimeout(()=>{window.location.reload()},300)):(p(0),_("idle")),u.current=0)},[_]);g.useEffect(()=>{const U=s.current;if(U)return U.addEventListener("touchstart",S,{passive:!0}),U.addEventListener("touchmove",D,{passive:!1}),U.addEventListener("touchend",Y,{passive:!0}),()=>{U.removeEventListener("touchstart",S),U.removeEventListener("touchmove",D),U.removeEventListener("touchend",Y)}},[S,D,Y]);const q=Math.min(d/Hr,1),H=v==="refreshing"?0:d/Hr*180,B=d>0||v==="refreshing";return h.jsxs("div",{ref:s,className:o,style:{overscrollBehaviorY:"contain"},children:[B&&h.jsx("div",{className:"pointer-events-none flex items-center justify-center md:hidden",style:{height:d,transition:v==="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:Ah,height:Ah,opacity:q,transition:v==="idle"?"opacity 200ms ease-out":void 0},children:v==="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:v==="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 Rp=g.createContext({setActions:()=>{}});function fx(i){const{setActions:o}=g.useContext(Rp);g.useEffect(()=>(o(i),()=>o(null)),[i,o])}const Ap=g.createContext({setSubtitle:()=>{}});function dx(i){const{setSubtitle:o}=g.useContext(Ap),s=typeof i=="string"?i:(i==null?void 0:i.text)??null,u=typeof i=="string"?i:(i==null?void 0:i.title)??(i==null?void 0:i.text)??null;g.useEffect(()=>s?(o(u&&u!==s?{text:s,title:u}:s),()=>o(null)):(o(null),()=>o(null)),[s,u,o])}const x0=[{to:"/plan",label:"plan",icon:rb},{to:"/review",label:"review",icon:Ph},{to:"/automations",label:"automations",icon:yb}],S0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:tp},{to:"/dashboard",label:"dashboard",icon:ep}],k0=[{to:"/workers",label:"workers",icon:lp},{to:"/projects",label:"projects",icon:cb},{to:"/access-tokens",label:"tokens",icon:db}],E0=[{to:"/docs/changelog",label:"changelog",icon:ub},{to:"/docs/cli",label:"cli",icon:$s},{to:"/docs/api",label:"api",icon:ob},{to:"/docs/bot",label:"bot",icon:_b},{to:"/docs/skill",label:"skill",icon:xb},{to:"/docs/all",label:"all",icon:mb}],w0=[{to:"/admin",label:"admin",icon:bb}],T0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:tp},{to:"/review",label:"review",icon:Ph},{to:"/dashboard",label:"dashboard",icon:ep}],Br={"/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"},"/plan":{title:"plan.title",subtitle:"plan.title"},"/review":{title:"review.title",subtitle:"review.title"},"/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 j0(i){const{t:o}=Xt();if(Br[i]){const u=Br[i];return{title:o(u.title),subtitle:o(u.subtitle)}}const s="/"+i.split("/").filter(Boolean)[0];if(Br[s]){const u=Br[s],f=i.split("/").filter(Boolean).slice(1).join(" / ");return{title:o(u.title),subtitle:f||o(u.subtitle)}}return{title:i.slice(1).replace(/\//g," // ")||"home"}}function R0(i,o){return i==="/home"?o==="/home":i==="/dashboard"?o==="/dashboard":o.startsWith(i)}function A0(){const i=yt(),{t:o}=Xt(),s={terminal:o("terminal_home.title"),dashboard:o("dashboard.title"),tasks:o("tasks.title"),workers:o("workers.title"),plan:o("plan.title"),review:o("review.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:[T0.map(({to:u,label:f,icon:d})=>{const p=R0(u,i.pathname);return h.jsxs(Js,{to:u,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(d,{size:18,className:p?"text-[var(--accent)]":"text-[var(--text-muted)]"}),h.jsx("span",{className:`text-[11px] lowercase ${p?"font-bold text-[var(--accent)]":"text-[var(--text-muted)]"}`,children:s[f]??f})]},u)}),h.jsx(jp,{renderTrigger:u=>h.jsxs("button",{type:"button",onClick:u,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(np,{size:18,className:"text-[var(--text-muted)]"}),h.jsx("span",{className:"text-[11px] lowercase text-[var(--text-muted)]",children:o("common.search_placeholder")})]})})]})}function z0(){const i=Ia(),{t:o}=Xt();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:o("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":o("common.profile"),children:h.jsx(Eb,{size:18})}),h.jsx(Ep,{}),h.jsx(kp,{})]})]})}function C0({collapsed:i}){const o=Fs(s=>s.inboxUnreadCount);return o<=0?null:i?h.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--accent)]"}):h.jsx("span",{className:"ml-auto flex h-4 min-w-[16px] items-center justify-center rounded-full bg-[var(--accent)] px-1 text-[10px] font-bold text-black",children:o>99?"99+":o})}function ii({label:i,items:o,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})}),o.map(({to:u,label:f,icon:d})=>h.jsx(Js,{to:u,className:({isActive:p})=>`flex items-center text-sm lowercase transition-all duration-300 ${s?"justify-center py-3":"gap-2.5 px-3 py-1.5"} ${p?"text-[var(--accent)] bg-[var(--accent)]/5":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:({isActive:p})=>h.jsxs(h.Fragment,{children:[h.jsx(d,{size:14,style:{flexShrink:0}}),!s&&h.jsx("span",{children:p?`> ${f}`:` ${f}`}),u==="/automations"&&h.jsx(C0,{collapsed:s})]})},u))]})}function O0(){const{user:i,logout:o}=Sa(),s=Ia(),[u,f]=g.useState(!1),d=Rb(),{t:p}=Xt(),{sidebarCollapsed:v,toggleSidebar:y}=zb();function _(){o(),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:v?56:240,minWidth:v?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:"~"})}),!v&&h.jsx("span",{className:"text-base font-bold lowercase tracking-tight",style:{color:"var(--text-primary)"},children:p("common.overlord")})]})}),h.jsxs("nav",{className:"flex-1 px-3 pt-2",children:[h.jsx(ii,{label:p("common.loop_section"),items:x0,collapsed:v}),h.jsx(ii,{label:p("common.tasks_section"),items:S0,collapsed:v}),h.jsx(ii,{label:p("common.fleet_section"),items:k0,collapsed:v}),h.jsx(ii,{label:p("common.docs_section"),items:E0,collapsed:v}),d&&h.jsx(ii,{label:p("common.admin_section"),items:w0,collapsed:v})]}),h.jsx("div",{className:"flex px-3 py-1",children:h.jsx("button",{onClick:y,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":v?"expand sidebar":"collapse sidebar",children:v?h.jsx(nb,{size:14}):h.jsx(ab,{size:14})})}),h.jsx("div",{className:"border-t border-[var(--border)] p-3",children:h.jsxs("div",{className:`flex min-h-[44px] items-center px-3 transition-[gap] duration-300 ${v?"gap-0":"gap-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:p("common.profile"),children:((i==null?void 0:i.username)??"u")[0].toUpperCase()}),h.jsxs("div",{className:`flex min-w-0 flex-1 items-center overflow-hidden transition-[max-width,opacity] duration-300 ${v?"pointer-events-none max-w-0 opacity-0":"max-w-[calc(100%-28px)] opacity-100"}`,"aria-hidden":v,children:[h.jsxs("button",{onClick:()=>s("/profile"),className:"min-w-0 flex-1 text-left transition-colors hover:opacity-80",title:p("common.profile"),tabIndex:v?-1:void 0,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:"ml-2 p-1 text-[var(--text-secondary)] transition-colors hover:text-[var(--accent)]","aria-label":p("common.log_out"),tabIndex:v?-1:void 0,children:h.jsx(pb,{size:14})})]})]})}),h.jsx(h0,{isOpen:u,onClose:()=>f(!1),onConfirm:_,title:p("common.logout_title"),message:p("common.logout_message"),confirmLabel:p("common.logout"),confirmVariant:"warning"})]})}function D0({headerActions:i,subtitleOverride:o}){const s=yt(),{title:u,subtitle:f}=j0(s.pathname),d=o??f,p=typeof d=="string"?d:d==null?void 0:d.text,v=typeof d=="string"?d:(d==null?void 0:d.title)??(d==null?void 0:d.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:u}),p&&h.jsxs("span",{style:{color:"var(--text-muted)"},title:v,children:[" ","// ",Fh(p,40)]})]}),h.jsxs("div",{className:"flex items-center gap-3",children:[i,h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx(jp,{}),h.jsx(Ep,{}),h.jsx(kp,{})]})]})]})}function N0(){const[i,o]=g.useState(null),[s,u]=g.useState(null),f=yt(),d=f.pathname==="/home",p=/^\/tasks\/\d+$/.test(f.pathname),v=f.pathname.startsWith("/docs");return g.useEffect(()=>bp.getState().init(),[]),g.useEffect(()=>{Fs.getState().initInbox()},[]),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(O0,{}),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(z0,{}),!v&&h.jsx(D0,{headerActions:i,subtitleOverride:s}),h.jsx(b0,{className:d||p?"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(Rp.Provider,{value:{setActions:o},children:h.jsx(Ap.Provider,{value:{setSubtitle:u},children:h.jsx(hv,{})})})}),h.jsx(g0,{}),h.jsx(y0,{}),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(A0,{})})]})]})}function zh(i){var s;const o=(s=i.state)==null?void 0:s.from;return o?{from:o}:{from:{pathname:i.pathname,search:i.search}}}function ri({children:i,requireAdmin:o=!1}){const{accessToken:s,user:u,requireTotpSetup:f,initializing:d}=Sa(),p=yt();if(d)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(il,{to:"/login",state:zh(p),replace:!0});if(f){const v=zh(p);return p.pathname!=="/totp-setup"&&p.pathname!=="/bind"?h.jsx(il,{to:"/totp-setup",state:v,replace:!0}):p.pathname==="/bind"?(sessionStorage.setItem("overlord_bind_redirect",JSON.stringify(v.from)),h.jsx(il,{to:"/totp-setup",state:v,replace:!0})):h.jsx(h.Fragment,{children:i})}return o&&(u==null?void 0:u.role)!==op.ADMIN?h.jsx(il,{to:"/home",replace:!0}):h.jsx(h.Fragment,{children:i})}function M0({children:i}){const{theme:o,resolved:s,setResolved:u}=Sp();return g.useEffect(()=>{if(o!=="system"){u(o);return}const f=window.matchMedia("(prefers-color-scheme: dark)");u(f.matches?"dark":"light");const d=p=>u(p.matches?"dark":"light");return f.addEventListener("change",d),()=>f.removeEventListener("change",d)},[o,u]),g.useEffect(()=>{document.documentElement.classList.toggle("dark",s==="dark")},[s]),h.jsx(h.Fragment,{children:i})}class U0 extends g.Component{constructor(o){super(o),this.state={hasError:!1,error:null}}static getDerivedStateFromError(o){return{hasError:!0,error:o}}render(){var o;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:Zr("common.runtime_error")}),h.jsx("p",{className:"max-w-md text-center text-xs text-[var(--text-muted)]",children:((o=this.state.error)==null?void 0:o.message)||Zr("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(ap,{className:"h-3.5 w-3.5"}),Zr("common.reload")]})]}):this.props.children}}function L0({isOpen:i}){const o=Ia(),{logout:s,setSessionExpired:u}=Sa(),{t:f}=Xt();function d(){s(),u(!1),o("/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(hb,{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:d,children:f("auth.go_to_login")})]})})]}):null}const Ch=5;let xa=[];const Bs=new Set;function zp(){Bs.forEach(i=>i())}function q0(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function Fa(i,o,s=4e3){const u=q0();return xa=[...xa,{id:u,variant:i,message:o,duration:s}],xa.length>Ch&&(xa=xa.slice(xa.length-Ch)),zp(),u}Fa.success=(i,o)=>Fa("success",i,o);Fa.error=(i,o)=>Fa("error",i,o);Fa.warning=(i,o)=>Fa("warning",i,o);Fa.info=(i,o)=>Fa("info",i,o);function H0(i){xa=xa.filter(o=>o.id!==i),zp()}function B0(){const[,i]=g.useState(0);return g.useEffect(()=>{const o=()=>i(s=>s+1);return Bs.add(o),()=>{Bs.delete(o)}},[]),xa}const Y0={success:{icon:lb,borderColor:"var(--accent)"},error:{icon:ib,borderColor:"var(--destructive)"},warning:{icon:ip,borderColor:"var(--warning)"},info:{icon:fb,borderColor:"var(--info)"}};function G0({item:i}){const o=Y0[i.variant],s=o.icon,{t:u}=Xt(),f=g.useCallback(()=>H0(i.id),[i.id]);return g.useEffect(()=>{if(!i.duration)return;const d=setTimeout(f,i.duration);return()=>clearTimeout(d)},[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 ${o.borderColor}`},role:"alert",children:[h.jsx(s,{className:"h-4 w-4 shrink-0",style:{color:o.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":u("common.dismiss_notification"),children:h.jsx(rp,{className:"h-3.5 w-3.5"})})]})}function V0(){const i=B0();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(o=>h.jsx("div",{className:"pointer-events-auto",children:h.jsx(G0,{item:o})},o.id))})}const X0=g.lazy(()=>ee(()=>import("./LandingPage-CD46Z2JC.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),Q0=g.lazy(()=>ee(()=>import("./LoginPage-BKOzdz7P.js"),[])),Z0=g.lazy(()=>ee(()=>import("./TotpSetupPage-PaSNj1Vp.js"),[])),K0=g.lazy(()=>ee(()=>import("./NotFoundPage-689QOjXQ.js"),[])),J0=g.lazy(()=>ee(()=>import("./HomePage-Hf6Q8V2e.js"),__vite__mapDeps([7,8,9,10,11,12,13,14,15,1]))),$0=g.lazy(()=>ee(()=>import("./TerminalHomePage-Cjs2ESbL.js"),__vite__mapDeps([16,17,18,19,20,11,12,21,13,22,23,24,9,25,26,14,27,28,29,30]))),W0=g.lazy(()=>ee(()=>import("./TaskListPage-1JmD5R00.js"),__vite__mapDeps([31,18,8,9,13,15,32,23,24,25,26,6,33,10,27,34,12]))),F0=g.lazy(()=>ee(()=>import("./TaskDetailPage-BCpOOndz.js"),__vite__mapDeps([35,18,19,20,21,13,22,36,23,24,9,17,26,25,15,37,29,32,38,39,40,41]))),I0=g.lazy(()=>ee(()=>import("./PlanPage-rWkuPQED.js"),__vite__mapDeps([42,33,10,21,13,22,23,24,27,39,34,12]))),P0=g.lazy(()=>ee(()=>import("./ReviewPage-DFNXIf3V.js"),__vite__mapDeps([43,33,10,36,23,24,13,15,26,25,27,38,34,12]))),e1=g.lazy(()=>ee(()=>import("./ReviewAggregatePage-D2lNd4eh.js"),__vite__mapDeps([44,19,20,10,36,13,26,25,37,40,38,41,29,28,24,45]))),t1=g.lazy(()=>ee(()=>import("./WorkerListPage-BlPPImaB.js"),__vite__mapDeps([46,9,47,48,49,50,51,38,30,6,40,23,24,33,10,14,27,37]))),a1=g.lazy(()=>ee(()=>import("./WorkerDetailPage-W7OzDMjo.js"),__vite__mapDeps([52,13,9,53,47,14,15,54,37,34,12]))),n1=g.lazy(()=>ee(()=>import("./WorkerSetupGuidePage-DWVXczXP.js"),__vite__mapDeps([48,49,50,51,38,30]))),l1=g.lazy(()=>ee(()=>import("./ProjectListPage-DbJy_Oc6.js"),__vite__mapDeps([55,23,24,26,33,10,13,14,27,37]))),i1=g.lazy(()=>ee(()=>import("./ProjectDetailPage-SJ1bULdn.js"),__vite__mapDeps([56,57,23,24,15,13,9,53,14,58,54,37,27]))),r1=g.lazy(()=>ee(()=>import("./EditProjectPage-DKCZrdQs.js"),__vite__mapDeps([59,23,24,57,26,27]))),o1=g.lazy(()=>ee(()=>import("./PipelineEditorPage-CsR5Ixk1.js"),__vite__mapDeps([60,23,24]))),u1=g.lazy(()=>ee(()=>import("./AutomationListPage-DEDMrWmT.js"),__vite__mapDeps([61,33,10,8,9,13,23,24,62,36,63,27,38,2,64,22,12]))),s1=g.lazy(()=>ee(()=>import("./AutomationCreatePage-BTkebXYp.js"),__vite__mapDeps([65,23,24,62,36,37]))),c1=g.lazy(()=>ee(()=>import("./AutomationDetailPage-C1826zDY.js"),__vite__mapDeps([66,33,10,13,63,22,37,38,54,64,2,39]))),f1=g.lazy(()=>ee(()=>import("./AutomationEditPage-75n4wJnY.js"),__vite__mapDeps([67,23,24,62,36,10,33,22,37]))),d1=g.lazy(()=>ee(()=>import("./AutomationRunDetailPage-B8J16r3p.js"),__vite__mapDeps([68,33,10,13,63,22,37,39,45]))),m1=g.lazy(()=>ee(()=>import("./ProfilePage-Goz5xk1F.js"),__vite__mapDeps([69,70,53,14]))),h1=g.lazy(()=>ee(()=>import("./BindPlatformPage-1ywl8297.js"),[])),p1=g.lazy(()=>ee(()=>import("./AccessTokensPage-C-0-8g_T.js"),__vite__mapDeps([71,23,24,33,10,13,14,27,6,54]))),_1=g.lazy(()=>ee(()=>import("./CliReferencePage-CS05YYd3.js"),__vite__mapDeps([72,73,6,74,27]))),g1=g.lazy(()=>ee(()=>import("./ApiReferencePage-CTyI9Wmo.js"),__vite__mapDeps([75,74,6,27]))),y1=g.lazy(()=>ee(()=>import("./SkillPage-B_OlG2Lu.js"),__vite__mapDeps([76,73,6,39]))),v1=g.lazy(()=>ee(()=>import("./DocsLayout-CmMw8RvJ.js"),__vite__mapDeps([77,37]))),b1=g.lazy(()=>ee(()=>import("./InstallationPage-iSGHskwz.js"),__vite__mapDeps([78,73,6]))),x1=g.lazy(()=>ee(()=>import("./DeveloperSetupPage-D0M9TTiz.js"),__vite__mapDeps([79,73,6]))),S1=g.lazy(()=>ee(()=>import("./WorkerSetupPage-DHtihc61.js"),__vite__mapDeps([80,73,6]))),k1=g.lazy(()=>ee(()=>import("./BotSetupPage-DD461ngC.js"),__vite__mapDeps([81,73,6]))),E1=g.lazy(()=>ee(()=>import("./LocalDevelopmentPage-bFW_mRS1.js"),__vite__mapDeps([82,73,6]))),w1=g.lazy(()=>ee(()=>import("./WorkerOperationsPage-DrfCoaEl.js"),[])),T1=g.lazy(()=>ee(()=>import("./DeploymentPage-B5Q0AFAu.js"),__vite__mapDeps([83,73,6]))),Oh=g.lazy(()=>ee(()=>import("./BotIntegrationPage-DL1Majjx.js"),[])),j1=g.lazy(()=>ee(()=>import("./PipelineConfigPage-D4YM9Dbc.js"),__vite__mapDeps([84,73,6]))),R1=g.lazy(()=>ee(()=>import("./DevWorkflowPage-pR3fCVwd.js"),__vite__mapDeps([85,73,6]))),A1=g.lazy(()=>ee(()=>import("./PermissionsPage-BVPkbbMI.js"),[])),z1=g.lazy(()=>ee(()=>import("./EnvVariablesPage-C2PfAaQL.js"),__vite__mapDeps([86,73,6]))),C1=g.lazy(()=>ee(()=>import("./ArchitecturePage-BYO1rOR1.js"),__vite__mapDeps([87,73,6]))),O1=g.lazy(()=>ee(()=>import("./ChangelogPage-WG_Wgb66.js"),[])),D1=g.lazy(()=>ee(()=>import("./AgentCliPage-CUTIRp3e.js"),__vite__mapDeps([88,73,6]))),N1=g.lazy(()=>ee(()=>import("./TaskGuidePage-ehGnB445.js"),__vite__mapDeps([89,73,6]))),M1=g.lazy(()=>ee(()=>import("./DocsIndexPage-BVlrV6PX.js"),__vite__mapDeps([90,50,3,4,51]))),U1=g.lazy(()=>ee(()=>import("./AdminPage-BbX7qN2o.js"),__vite__mapDeps([91,5,3,92,51]))),L1=g.lazy(()=>ee(()=>import("./DeveloperManage-B6RDaLkR.js"),__vite__mapDeps([93,23,24,70,33,10,14,9,27,5,58,29]))),q1=g.lazy(()=>ee(()=>import("./BotManage-B1fNY07Y.js"),__vite__mapDeps([94,23,24,73,6,54,27,33,10,14,9,3,58]))),H1=g.lazy(()=>ee(()=>import("./TokenManage-Dqya1d3n.js"),__vite__mapDeps([95,49,6,39,33,10,14,9,27]))),B1=g.lazy(()=>ee(()=>import("./AuditLogPage-D41BIlg7.js"),__vite__mapDeps([96,23,24,33,10,92,34,12]))),Y1=g.lazy(()=>ee(()=>import("./SettingsPage-TOtaLjjI.js"),[]));function G1(){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 V1(){const i=Sa(o=>o.sessionExpired);return h.jsxs(M0,{children:[h.jsx(V0,{}),h.jsx(U0,{children:h.jsxs(Yv,{children:[h.jsx(L0,{isOpen:i}),h.jsx(g.Suspense,{fallback:h.jsx(G1,{}),children:h.jsxs(_v,{children:[h.jsx(W,{path:"/",element:h.jsx(X0,{})}),h.jsx(W,{path:"/login",element:h.jsx(Q0,{})}),h.jsx(W,{path:"/totp-setup",element:h.jsx(ri,{children:h.jsx(Z0,{})})}),h.jsx(W,{path:"/bind",element:h.jsx(ri,{children:h.jsx(h1,{})})}),h.jsxs(W,{element:h.jsx(ri,{children:h.jsx(N0,{})}),children:[h.jsx(W,{path:"/home",element:h.jsx($0,{})}),h.jsx(W,{path:"/dashboard",element:h.jsx(J0,{})}),h.jsx(W,{path:"/tasks",element:h.jsx(W0,{})}),h.jsx(W,{path:"/tasks/:id",element:h.jsx(F0,{})}),h.jsx(W,{path:"/plan",element:h.jsx(I0,{})}),h.jsx(W,{path:"/review",element:h.jsx(P0,{})}),h.jsx(W,{path:"/review/:sourceTaskId",element:h.jsx(e1,{})}),h.jsx(W,{path:"/automations",element:h.jsx(u1,{})}),h.jsx(W,{path:"/automations/new",element:h.jsx(s1,{})}),h.jsx(W,{path:"/automations/runs/:runId",element:h.jsx(d1,{})}),h.jsx(W,{path:"/automations/:id",element:h.jsx(c1,{})}),h.jsx(W,{path:"/automations/:id/edit",element:h.jsx(f1,{})}),h.jsx(W,{path:"/workers",element:h.jsx(t1,{})}),h.jsx(W,{path:"/workers/setup",element:h.jsx(ri,{requireAdmin:!0,children:h.jsx(n1,{})})}),h.jsx(W,{path:"/workers/:id",element:h.jsx(a1,{})}),h.jsx(W,{path:"/projects",element:h.jsx(l1,{})}),h.jsx(W,{path:"/projects/:key",element:h.jsx(i1,{})}),h.jsx(W,{path:"/projects/:key/edit",element:h.jsx(r1,{})}),h.jsx(W,{path:"/projects/:key/pipeline",element:h.jsx(o1,{})}),h.jsx(W,{path:"/profile",element:h.jsx(m1,{})}),h.jsx(W,{path:"/access-tokens",element:h.jsx(p1,{})}),h.jsxs(W,{path:"/docs",element:h.jsx(v1,{}),children:[h.jsx(W,{index:!0,element:h.jsx(il,{to:"cli",replace:!0})}),h.jsx(W,{path:"cli",element:h.jsx(_1,{})}),h.jsx(W,{path:"api",element:h.jsx(g1,{})}),h.jsx(W,{path:"bot",element:h.jsx(Oh,{})}),h.jsx(W,{path:"all",element:h.jsx(M1,{})}),h.jsx(W,{path:"skill",element:h.jsx(y1,{})}),h.jsx(W,{path:"installation",element:h.jsx(b1,{})}),h.jsx(W,{path:"developer-setup",element:h.jsx(x1,{})}),h.jsx(W,{path:"worker-setup",element:h.jsx(S1,{})}),h.jsx(W,{path:"bot-setup",element:h.jsx(k1,{})}),h.jsx(W,{path:"local-development",element:h.jsx(E1,{})}),h.jsx(W,{path:"worker-operations",element:h.jsx(w1,{})}),h.jsx(W,{path:"deployment",element:h.jsx(T1,{})}),h.jsx(W,{path:"bot-integration",element:h.jsx(Oh,{})}),h.jsx(W,{path:"pipeline-config",element:h.jsx(j1,{})}),h.jsx(W,{path:"dev-workflow",element:h.jsx(R1,{})}),h.jsx(W,{path:"permissions",element:h.jsx(A1,{})}),h.jsx(W,{path:"env-variables",element:h.jsx(z1,{})}),h.jsx(W,{path:"architecture",element:h.jsx(C1,{})}),h.jsx(W,{path:"task-guide",element:h.jsx(N1,{})}),h.jsx(W,{path:"agent-cli",element:h.jsx(D1,{})}),h.jsx(W,{path:"changelog",element:h.jsx(O1,{})})]}),h.jsxs(W,{path:"/admin",element:h.jsx(ri,{requireAdmin:!0,children:h.jsx(U1,{})}),children:[h.jsx(W,{index:!0,element:h.jsx(il,{to:"developers",replace:!0})}),h.jsx(W,{path:"developers",element:h.jsx(L1,{})}),h.jsx(W,{path:"bots",element:h.jsx(q1,{})}),h.jsx(W,{path:"tokens",element:h.jsx(H1,{})}),h.jsx(W,{path:"audit-logs",element:h.jsx(B1,{})}),h.jsx(W,{path:"settings",element:h.jsx(Y1,{})})]})]}),h.jsx(W,{path:"*",element:h.jsx(K0,{})})]})})]})})]})}function Cp(i=window){var o,s;return((o=i.matchMedia)==null?void 0:o.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}async function X1(i=window,o="portrait"){var u,f;if(!Cp(i))return!1;const s=(f=(u=i.screen)==null?void 0:u.orientation)==null?void 0:f.lock;if(typeof s!="function")return!1;try{return await s.call(i.screen.orientation,o),!0}catch{return!1}}function Q1(i){var o,s;return((o=i.matchMedia)==null?void 0:o.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}function Z1(i){var s,u;const o=((s=i.navigator)==null?void 0:s.userAgent)??"";return/iPhone|iPad|iPod/i.test(o)||/Macintosh/i.test(o)&&(((u=i.navigator)==null?void 0:u.maxTouchPoints)??0)>1}function K1(i){const o=i.activeElement;if(!(o instanceof HTMLElement))return!1;const s=o.tagName;return o.isContentEditable||s==="INPUT"||s==="TEXTAREA"||s==="SELECT"}function J1(i){const o=i.screen;if(!o)return null;const s=Math.round(o.width),u=Math.round(o.height);return i.innerHeight>=i.innerWidth?Math.max(s,u):Math.min(s,u)}function $1(i=window,o=document){const s=o.documentElement,u=i.visualViewport??null;let f=-1;const d=()=>{const p=Math.round((u==null?void 0:u.height)??0),v=Math.round(i.innerHeight);let y=p>0?p:v;if(Q1(i)&&Z1(i)&&!K1(o)){const _=J1(i);_!==null&&(y=Math.max(y,v,_))}y!==f&&(f=y,s.style.setProperty("--app-height",`${y}px`))};return d(),i.addEventListener("resize",d),i.addEventListener("orientationchange",d),u==null||u.addEventListener("resize",d),()=>{i.removeEventListener("resize",d),i.removeEventListener("orientationchange",d),u==null||u.removeEventListener("resize",d)}}Sa.getState().initialize();$1(window,document);const Op=window,W1=Cp(Op);X1(Op);if(W1){document.documentElement.classList.add("pwa-standalone");const i=window.matchMedia("(prefers-color-scheme: dark)").matches,o=localStorage.getItem("overlord-theme"),s=o==="dark"||o!=="light"&&i;document.body.style.backgroundColor=s?"#171717":"#FFFFFF",new MutationObserver(()=>{const u=document.documentElement.classList.contains("dark");document.body.style.backgroundColor=u?"#171717":"#FFFFFF"}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}hy.createRoot(document.getElementById("root")).render(h.jsx(g.StrictMode,{children:h.jsx(V1,{})}));export{fy as $,sx as A,I1 as B,tb as C,op as D,Ph as E,P1 as F,ub as G,Ns as H,ix as I,lb as J,rb as K,$h as L,ob as M,il as N,_b as O,g0 as P,nx as Q,Cr as R,lp as S,kp as T,Eb as U,ip as V,tx as W,rp as X,fb as Y,ax as Z,ap as _,Xt as a,Fh as a0,Fs as a1,Mr as a2,eb as a3,yb as a4,xb as a5,db as a6,pb as a7,lx as a8,Js as a9,hv as aa,rx as ab,ox as ac,ib as ad,$s as b,ye as c,bb as d,mb as e,Ia as f,yt as g,We as h,Rb as i,h as j,bp as k,wp as l,Tp as m,di as n,ex as o,dx as p,cx as q,g as r,h0 as s,Fa as t,Sa as u,d0 as v,ux as w,fx as x,np as y,tp as z};
262
+ "{description}"`},plan:{title:"plan",create:"create plan",description_placeholder:"describe what you want to build...",spec_generated:"spec generated",decompose:"decompose into tasks",save_only:"save spec only",no_plans:"no plan tasks yet",view_spec:"view spec"},automation:{title:"automations",new_automation:"new automation",tab_inbox:"inbox",tab_automations:"automations",tab_templates:"templates",no_unread_findings:"no unread findings",inbox_description:"automation runs with findings will appear here",select_all:"select all",deselect_all:"deselect all",mark_all_read:"mark all read",marked_as_read:"marked as read",failed_mark_read:"failed to mark as read",archived:"archived",failed_archive:"failed to archive",marked_n_read:"marked {n} as read",failed_batch_update:"failed to batch update",run_label:"run #{id} -- automation #{automationId}",finding_count:"{count} finding",findings_count:"{count} findings",mark_read:"mark read",archive:"archive",no_automations:"no automations",create_first_description:"create your first automation to get started",automation_disabled:"automation disabled",automation_enabled:"automation enabled",failed_toggle:"failed to toggle automation",last_run:"last run: {time}",next_run:"next run: {time}",no_runs_yet:"no runs yet",no_templates:"no templates",templates_description:"builtin and project templates will appear here once available",templates_suggested:"suggested",templates_suggested_title:"start from a template instead of a blank automation",templates_suggested_description:"pick one of the built-in automations below, then tune the schedule, project, and execution mode to match how your team works.",templates_ready_count:"{count} templates ready",templates_browse:"browse by category",templates_browse_description:"jump to the automation set that matches the workflow you want to automate.",template_preview:"template preview",template_prompt:"automation prompt",template_source_builtin:"builtin",template_source_custom:"custom",template_category_status_reports:"status reports",template_category_status_reports_description:"summaries, digests, and weekly rollups that turn repository activity into updates people can actually read.",template_category_release_prep:"release prep",template_category_release_prep_description:"release notes, pre-flight checks, and changelog work that help teams ship with fewer surprises.",template_category_incidents_triage:"incidents & triage",template_category_incidents_triage_description:"ci investigations and failure summaries that help you separate signal from operational noise.",template_category_code_quality:"code quality",template_category_code_quality_description:"bug scans, coverage work, security reviews, and invariants that keep changes from quietly eroding reliability.",template_category_repo_maintenance:"repo maintenance",template_category_repo_maintenance_description:"feature-flag cleanup, dependency upkeep, docs refreshes, and recurring chores that usually slip between releases.",template_category_growth_exploration:"growth & exploration",template_category_growth_exploration_description:"performance audits and coaching prompts that help teams find their next high-leverage improvement.",template_category_other:"other",template_category_other_description:"templates without a stronger home still show up here so they remain easy to discover.",use_template:"use template",create_title:"new automation",project:"project",select_project:"select project",name:"name",name_placeholder:"e.g. nightly security scan",name_required:"name is required",description:"description",description_placeholder:"describe what the automation agent should do. use {{project_name}}, {{date}}, {{trigger_event}} as needed.",template_vars:"template vars: {{date}}, {{time}}, {{weekday}}, {{project_name}}, {{trigger_event}}, {{source_task_id}}",trigger_type:"trigger type",cron_config:"cron config",preset:"preset",cron_expression:"cron expression",cron_expression_required:"cron expression is required",cron_expression_invalid:"invalid cron expression: must have 5 or 6 space-separated fields",timezone:"timezone",task_event_config:"task event config",event_type:"event type",all_projects:"all projects",filter_project_key:"filter project key (optional)",filter_task_mode:"filter task mode (optional)",all_modes:"all modes",execution_mode:"execution mode",writable_hint:"agent can create branches and merge requests",readonly_hint:"agent runs in read-only mode, reports findings only",agent_type:"agent type",notify_project_chats:"notify default chats",notify_project_chats_hint:"send completion and failure cards to each bot's notify-default chat for this project",notify_project_chats_enabled:"notifications on",notify_project_chats_disabled:"notifications off",project_required:"project is required",creating:"creating...",create_from_template:"create from template",create_automation:"create automation",cancel:"cancel",automation_created:"automation created",failed_create:"failed to create automation",failed_load_projects:"failed to load projects",edit_title:"edit automation",saving:"saving...",save_changes:"save changes",automation_updated:"automation updated",failed_update:"failed to update automation",automation_not_found:"automation not found",enabled:"enabled",disabled:"disabled",disable:"disable",enable:"enable",edit:"edit",trigger_now:"trigger now",delete:"delete",configuration:"// configuration",schedule:"schedule",event:"event",automation_triggered:"automation triggered",failed_trigger:"failed to trigger automation",automation_deleted:"automation deleted",failed_delete:"failed to delete automation",run_history:"// run history",no_runs:"no runs yet",col_time:"time",col_status:"status",col_findings:"findings",col_task:"task",delete_title:"delete automation",delete_confirm:'are you sure you want to delete "{name}"? this action cannot be undone.',run_title:"run #{id}",run_not_found:"run not found",run_metadata:"// run metadata",status:"status",triggered_at:"triggered at",duration:"duration",task_label:"task #{id}",merge_request:"merge request",findings_title:"// findings ({count})",no_findings:"no findings"},review:{title:"review",pending:"pending review",in_progress:"in progress",history:"history",launch:"launch review",launch_short:"review",select_agents:"select review agents",approve_fix:"fix issues",skip_fix:"no fix needed",review_again:"review again",round:"round",no_reviews:"no reviews yet",issues_summary:"{critical} critical · {warning} warning · {suggestion} suggestion",description_placeholder:"review instructions (optional)...",empty_report_warning:"review completed but no structured report was produced. check the terminal output for details.",fix_push_info:"selected agent will push fixes to the source branch",waiting_agents:"waiting for review agents to finish...",skip_fix_label:"review only (skip fix stage)"}};function l0(i,o){const s=o.split(".");let u=i;for(const f of s){if(u==null||typeof u!="object")return o;u=u[f]}return typeof u=="string"?u:o}function i0(i,o){return o?i.replace(/\{(\w+)\}/g,(s,u)=>o[u]!=null?String(o[u]):`{${u}}`):i}function Zr(i,o){return i0(l0(n0,i),o)}function Xt(){return{t:g.useCallback((o,s)=>Zr(o,s),[])}}function kp(){const{theme:i,setTheme:o}=Sp(),{t:s}=Xt(),u=i==="dark"||i==="system"&&typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches;function f(){o(u?"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(u?"common.switch_to_light":"common.switch_to_dark"),title:s(u?"common.light_mode":"common.dark_mode"),children:u?h.jsx(kb,{size:16}):h.jsx(gb,{size:16})})}const r0=3e4;function o0(i){if(i.link)return i.link;const o=(i.title+" "+i.body).match(/task\s*#?(\d+)/i);if(o)return`/tasks/${o[1]}`;const s=(i.title+" "+i.body).match(/worker\s+(\S+)/i);return s?`/workers/${s[1]}`:null}function Ep(){const i=Ia(),[o,s]=g.useState([]),[u,f]=g.useState(0),[d,p]=g.useState(!1),[v,y]=g.useState(!1),_=g.useRef(null),{t:w}=Xt(),S=g.useRef(async()=>{try{y(!0);const H=(await We.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{y(!1)}});g.useEffect(()=>{S.current();const q=setInterval(()=>S.current(),r0);return()=>clearInterval(q)},[]),g.useEffect(()=>{function q(H){_.current&&!_.current.contains(H.target)&&p(!1)}return document.addEventListener("mousedown",q),()=>document.removeEventListener("mousedown",q)},[]);async function D(q){try{await We.post(`web/notifications/${q}/read`),s(H=>H.map(B=>B.id===q?{...B,isRead:!0}:B)),f(H=>Math.max(0,H-1))}catch{}}async function Y(){try{await We.post("web/notifications/read-all"),s(q=>q.map(H=>({...H,isRead:!0}))),f(0)}catch{}}return h.jsxs("div",{className:"relative",ref:_,children:[h.jsxs("button",{type:"button",onClick:()=>p(q=>!q),"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(Pv,{size:16}),u>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:u})]}),d&&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")}),u>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(eb,{className:"h-3.5 w-3.5"}),w("common.mark_all_read")]})]}),h.jsx("div",{className:"max-h-80 overflow-y-auto",children:v&&o.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)]"})}):o.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")})]}):o.map(q=>{const H=o0(q);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)]":""} ${q.isRead?"opacity-60":"bg-[var(--accent)]/5"}`,onClick:()=>{H&&(q.isRead||D(q.id),p(!1),i(H))},children:[h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsx("p",{className:"truncate text-sm font-medium",title:q.title,children:q.title}),h.jsx("p",{className:"truncate text-xs text-[var(--text-secondary)]",title:q.body,children:q.body}),h.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)] opacity-60",children:new Date(q.createdAt).toLocaleString()})]}),!q.isRead&&h.jsx("button",{type:"button",onClick:B=>{B.stopPropagation(),D(q.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(tb,{className:"h-3.5 w-3.5"})})]},q.id)})})]})]})}function u0(i){return i&&i.trim().length>0?i:null}function wp(i,o=50){return u0(i.name)??Fh(i.description,o)}function Tp(i){return`#${i.id} ${i.description}`}function cx(i,o=100){return{text:`#${i.id} ${wp(i,o)}`,title:Tp(i)}}function s0(i){return{tasks:i.tasks.map(o=>({type:"task",id:o.id,title:`#${o.id} ${wp(o)}`,subtitle:`${o.status} · ${o.project_key}`,hoverTitle:Tp(o)})),workers:(i.workers??[]).map(o=>({type:"worker",id:o.id,title:o.name,subtitle:`${o.hostname} · ${o.status}`})),projects:i.projects.map(o=>({type:"project",id:o.key,title:o.name,subtitle:o.repository}))}}const c0=300,Th={tasks:Sb,workers:lp,projects:sb},f0={tasks:"tasks",workers:"workers",projects:"projects"};function jp({renderTrigger:i}={}){const[o,s]=g.useState(""),[u,f]=g.useState({tasks:[],workers:[],projects:[]}),[d,p]=g.useState(!1),[v,y]=g.useState(!1),[_,w]=g.useState(0),S=g.useRef(null),D=g.useRef(null),Y=g.useRef(void 0),q=g.useRef(void 0),H=Ia(),{t:B}=Xt(),U=g.useMemo(()=>[...u.tasks,...u.workers,...u.projects],[u]),K=g.useCallback(async F=>{var et;if(!F.trim()){f({tasks:[],workers:[],projects:[]});return}(et=q.current)==null||et.abort();const se=new AbortController;q.current=se;try{p(!0);const Je=await We.get("web/search",{searchParams:{q:F},signal:se.signal}).json();f(s0(Je)),w(0)}catch(Je){if(Je instanceof DOMException&&Je.name==="AbortError")return}finally{se.signal.aborted||p(!1)}},[]);g.useEffect(()=>(Y.current&&clearTimeout(Y.current),Y.current=setTimeout(()=>K(o),c0),()=>{Y.current&&clearTimeout(Y.current)}),[o,K]),g.useEffect(()=>{function F(se){se.key==="/"&&!v&&!(se.target instanceof HTMLInputElement||se.target instanceof HTMLTextAreaElement)&&(se.preventDefault(),y(!0)),se.key==="Escape"&&v&&(se.preventDefault(),X())}return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[v]),g.useEffect(()=>{v&&setTimeout(()=>{var F;return(F=D.current)==null?void 0:F.focus()},50)},[v]);function X(){y(!1),s(""),f({tasks:[],workers:[],projects:[]}),w(0)}function oe(F){switch(X(),F.type){case"task":H(`/tasks/${F.id}`);break;case"worker":H(`/workers/${F.id}`);break;case"project":H(`/projects/${F.id}`);break}}function ce(F){F.key==="ArrowDown"?(F.preventDefault(),w(se=>Math.min(se+1,U.length-1))):F.key==="ArrowUp"?(F.preventDefault(),w(se=>Math.max(se-1,0))):F.key==="Enter"&&U[_]&&(F.preventDefault(),oe(U[_]))}const _e=U.length>0;let I=0;return h.jsxs(h.Fragment,{children:[i?i(()=>y(!0)):h.jsxs("button",{type:"button",onClick:()=>y(!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(np,{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:"/"})]}),v&&h.jsx("div",{ref:S,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:F=>{F.target===S.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:D,type:"text",placeholder:B("common.search_input_placeholder"),value:o,onChange:F=>s(F.target.value),onKeyDown:ce,className:"flex-1 bg-transparent text-sm text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none"}),d&&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:o.trim()&&!_e&&!d?h.jsx("div",{className:"py-10 text-center text-xs text-[var(--text-muted)]",children:B("common.no_search_results",{query:o})}):Object.keys(Th).map(F=>{const se=u[F];if(se.length===0)return null;const et=Th[F],Je=I;return I+=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(et,{className:"h-3 w-3"}),h.jsx("span",{className:"text-[11px] lowercase tracking-wider",children:f0[F]})]}),se.map((Oe,zt)=>{const ut=Je+zt,Me=ut===_;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:()=>oe(Oe),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 preserve-case",title:Oe.hoverTitle??Oe.title,children:Oe.title}),Oe.subtitle&&h.jsx("p",{className:"truncate text-xs text-[var(--text-muted)]",title:Oe.subtitle,children:Oe.subtitle})]})]},`${Oe.type}-${Oe.id}`)})]},F)})}),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")]})]})]})})]})}function d0(i){g.useEffect(()=>{if(!i)return;function o(s){s.preventDefault(),s.returnValue=""}return window.addEventListener("beforeunload",o),()=>window.removeEventListener("beforeunload",o)},[i])}const m0={danger:"var(--destructive)",warning:"var(--warning)",accent:"var(--accent)"};function jh(i){return Array.from(i.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'))}function h0({isOpen:i,onClose:o,onConfirm:s,title:u,message:f,confirmLabel:d,cancelLabel:p,confirmVariant:v="danger",isLoading:y,children:_}){const{t:w}=Xt(),S=g.useId(),D=d??w("common.confirm"),Y=p??w("common.cancel"),q=g.useRef(null),H=g.useRef(null),B=m0[v];d0(i),g.useEffect(()=>{if(!i)return;H.current=document.activeElement;const K=requestAnimationFrame(()=>{if(q.current){const X=jh(q.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"&&!y){o();return}if(K.key==="Tab"&&q.current){const X=jh(q.current);if(X.length===0)return;const oe=X[0],ce=X[X.length-1];K.shiftKey?document.activeElement===oe&&(K.preventDefault(),ce.focus()):document.activeElement===ce&&(K.preventDefault(),oe.focus())}},[o,y]);return i?h.jsx("div",{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:q,role:"dialog","aria-modal":"true","aria-labelledby":S,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:S,style:{color:"var(--accent)",fontSize:"0.875rem",fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:[h.jsx(ip,{style:{width:"1rem",height:"1rem"}}),u]})}),h.jsxs("div",{style:{marginBottom:"1.25rem"},children:[h.jsx("p",{style:{color:"var(--text-muted)",fontSize:"0.75rem",lineHeight:"1.5"},children:f}),_]}),h.jsxs("div",{style:{display:"flex",gap:"0.75rem"},children:[h.jsx("button",{type:"button",onClick:o,disabled:y,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:y?"not-allowed":"pointer",opacity:y?.7:1,transition:"color 0.15s, border-color 0.15s"},children:Y}),h.jsx("button",{type:"button",onClick:s,disabled:y,style:{flex:1,padding:"0.5rem",backgroundColor:B,color:"#0C0C0C",border:"none",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600,cursor:y?"not-allowed":"pointer",opacity:y?.7:1},children:y?w("common.processing"):D})]})]})}):null}const Rh="overlord-pwa-install-dismissed";function p0(){const i=navigator.userAgent;return/iP(hone|od|ad)/.test(i)&&/WebKit/.test(i)&&!/(CriOS|FxiOS|OPiOS|mercury)/.test(i)}function _0(){return navigator.standalone===!0||window.matchMedia("(display-mode: standalone)").matches}function g0(){const{t:i}=Xt(),[o,s]=g.useState("hidden"),[u,f]=g.useState(!1),d=g.useRef(null),p=g.useRef(void 0);g.useEffect(()=>{if(_0()||localStorage.getItem(Rh)||window.innerWidth>=768)return;const _=S=>{S.preventDefault(),d.current=S};window.addEventListener("beforeinstallprompt",_);const w=setTimeout(()=>s("visible"),1e3);return()=>{window.removeEventListener("beforeinstallprompt",_),clearTimeout(w),clearTimeout(p.current)}},[]);function v(){localStorage.setItem(Rh,"1"),s("dismissing"),p.current=setTimeout(()=>s("hidden"),200)}async function y(){if(d.current){await d.current.prompt();const{outcome:_}=await d.current.userChoice;_==="accepted"&&v(),d.current=null}else p0()&&f(!0)}return o==="hidden"?null:h.jsx("div",{className:`fixed bottom-4 left-4 right-4 z-40 md:hidden ${o==="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:v,className:"p-1 text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)]",children:h.jsx(rp,{size:14})})]}),h.jsx("div",{className:"px-3.5 py-3",children:u?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((_,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(vb,{size:12,className:"mr-1 inline-block align-text-bottom text-[var(--text-muted)]"}),_]})]},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:y,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:v,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 y0(){const{t:i}=Xt(),[o,s]=g.useState(!1);return g.useEffect(()=>{if(!("serviceWorker"in navigator))return;let u=!1,f=null,d=null,p=null,v=null;function y(){u||s(!0)}navigator.serviceWorker.addEventListener("controllerchange",y);function _(S){if(f=S,S.waiting){s(!0);return}p=()=>{const D=S.installing;D&&(d=D,v=()=>{D.state==="installed"&&navigator.serviceWorker.controller&&(u||s(!0))},D.addEventListener("statechange",v))},S.addEventListener("updatefound",p)}navigator.serviceWorker.getRegistration().then(S=>{S&&!u&&_(S)});const w=setInterval(()=>{navigator.serviceWorker.getRegistration().then(S=>{!S||u||(S.update().catch(()=>{}),S.waiting&&s(!0))})},3e4);return()=>{u=!0,clearInterval(w),navigator.serviceWorker.removeEventListener("controllerchange",y),f&&p&&f.removeEventListener("updatefound",p),d&&v&&d.removeEventListener("statechange",v)}},[]),o?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(ap,{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 Hr=64,v0=96,Ah=32;function b0({children:i,className:o}){const s=g.useRef(null),u=g.useRef(0),f=g.useRef("idle"),[d,p]=g.useState(0),[v,y]=g.useState("idle"),_=g.useCallback(U=>{f.current=U,y(U)},[]),w=g.useCallback(()=>{const U=s.current;return U?U.scrollTop<=0:!0},[]),S=g.useCallback(U=>{if(!w()){u.current=0;return}u.current=U.touches[0].clientY},[w]),D=g.useCallback(U=>{if(f.current==="refreshing"||u.current===0)return;const X=U.touches[0].clientY-u.current;if(X<=0){f.current!=="idle"&&(p(0),_("idle"));return}if(!w())return;U.preventDefault();const oe=Math.min(X*.5,v0);p(oe),_(oe>=Hr?"ready":"pulling")},[w,_]),Y=g.useCallback(()=>{f.current!=="refreshing"&&(f.current==="ready"?(_("refreshing"),p(Hr),setTimeout(()=>{window.location.reload()},300)):(p(0),_("idle")),u.current=0)},[_]);g.useEffect(()=>{const U=s.current;if(U)return U.addEventListener("touchstart",S,{passive:!0}),U.addEventListener("touchmove",D,{passive:!1}),U.addEventListener("touchend",Y,{passive:!0}),()=>{U.removeEventListener("touchstart",S),U.removeEventListener("touchmove",D),U.removeEventListener("touchend",Y)}},[S,D,Y]);const q=Math.min(d/Hr,1),H=v==="refreshing"?0:d/Hr*180,B=d>0||v==="refreshing";return h.jsxs("div",{ref:s,className:o,style:{overscrollBehaviorY:"contain"},children:[B&&h.jsx("div",{className:"pointer-events-none flex items-center justify-center md:hidden",style:{height:d,transition:v==="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:Ah,height:Ah,opacity:q,transition:v==="idle"?"opacity 200ms ease-out":void 0},children:v==="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:v==="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 Rp=g.createContext({setActions:()=>{}});function fx(i){const{setActions:o}=g.useContext(Rp);g.useEffect(()=>(o(i),()=>o(null)),[i,o])}const Ap=g.createContext({setSubtitle:()=>{}});function dx(i){const{setSubtitle:o}=g.useContext(Ap),s=typeof i=="string"?i:(i==null?void 0:i.text)??null,u=typeof i=="string"?i:(i==null?void 0:i.title)??(i==null?void 0:i.text)??null;g.useEffect(()=>s?(o(u&&u!==s?{text:s,title:u}:s),()=>o(null)):(o(null),()=>o(null)),[s,u,o])}const x0=[{to:"/plan",label:"plan",icon:rb},{to:"/review",label:"review",icon:Ph},{to:"/automations",label:"automations",icon:yb}],S0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:tp},{to:"/dashboard",label:"dashboard",icon:ep}],k0=[{to:"/workers",label:"workers",icon:lp},{to:"/projects",label:"projects",icon:cb},{to:"/access-tokens",label:"tokens",icon:db}],E0=[{to:"/docs/changelog",label:"changelog",icon:ub},{to:"/docs/cli",label:"cli",icon:$s},{to:"/docs/api",label:"api",icon:ob},{to:"/docs/bot",label:"bot",icon:_b},{to:"/docs/skill",label:"skill",icon:xb},{to:"/docs/all",label:"all",icon:mb}],w0=[{to:"/admin",label:"admin",icon:bb}],T0=[{to:"/home",label:"terminal",icon:$s},{to:"/tasks",label:"tasks",icon:tp},{to:"/review",label:"review",icon:Ph},{to:"/dashboard",label:"dashboard",icon:ep}],Br={"/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"},"/plan":{title:"plan.title",subtitle:"plan.title"},"/review":{title:"review.title",subtitle:"review.title"},"/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 j0(i){const{t:o}=Xt();if(Br[i]){const u=Br[i];return{title:o(u.title),subtitle:o(u.subtitle)}}const s="/"+i.split("/").filter(Boolean)[0];if(Br[s]){const u=Br[s],f=i.split("/").filter(Boolean).slice(1).join(" / ");return{title:o(u.title),subtitle:f||o(u.subtitle)}}return{title:i.slice(1).replace(/\//g," // ")||"home"}}function R0(i,o){return i==="/home"?o==="/home":i==="/dashboard"?o==="/dashboard":o.startsWith(i)}function A0(){const i=yt(),{t:o}=Xt(),s={terminal:o("terminal_home.title"),dashboard:o("dashboard.title"),tasks:o("tasks.title"),workers:o("workers.title"),plan:o("plan.title"),review:o("review.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:[T0.map(({to:u,label:f,icon:d})=>{const p=R0(u,i.pathname);return h.jsxs(Js,{to:u,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(d,{size:18,className:p?"text-[var(--accent)]":"text-[var(--text-muted)]"}),h.jsx("span",{className:`text-[11px] lowercase ${p?"font-bold text-[var(--accent)]":"text-[var(--text-muted)]"}`,children:s[f]??f})]},u)}),h.jsx(jp,{renderTrigger:u=>h.jsxs("button",{type:"button",onClick:u,className:"flex flex-1 flex-col items-center gap-1",children:[h.jsx(np,{size:18,className:"text-[var(--text-muted)]"}),h.jsx("span",{className:"text-[11px] lowercase text-[var(--text-muted)]",children:o("common.search_placeholder")})]})})]})}function z0(){const i=Ia(),{t:o}=Xt();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:o("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":o("common.profile"),children:h.jsx(Eb,{size:18})}),h.jsx(Ep,{}),h.jsx(kp,{})]})]})}function C0({collapsed:i}){const o=Fs(s=>s.inboxUnreadCount);return o<=0?null:i?h.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--accent)]"}):h.jsx("span",{className:"ml-auto flex h-4 min-w-[16px] items-center justify-center rounded-full bg-[var(--accent)] px-1 text-[10px] font-bold text-black",children:o>99?"99+":o})}function ii({label:i,items:o,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})}),o.map(({to:u,label:f,icon:d})=>h.jsx(Js,{to:u,className:({isActive:p})=>`flex items-center text-sm lowercase transition-all duration-300 ${s?"justify-center py-3":"gap-2.5 px-3 py-1.5"} ${p?"text-[var(--accent)] bg-[var(--accent)]/5":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:({isActive:p})=>h.jsxs(h.Fragment,{children:[h.jsx(d,{size:14,style:{flexShrink:0}}),!s&&h.jsx("span",{children:p?`> ${f}`:` ${f}`}),u==="/automations"&&h.jsx(C0,{collapsed:s})]})},u))]})}function O0(){const{user:i,logout:o}=Sa(),s=Ia(),[u,f]=g.useState(!1),d=Rb(),{t:p}=Xt(),{sidebarCollapsed:v,toggleSidebar:y}=zb();function _(){o(),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:v?56:240,minWidth:v?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:"~"})}),!v&&h.jsx("span",{className:"text-base font-bold lowercase tracking-tight",style:{color:"var(--text-primary)"},children:p("common.overlord")})]})}),h.jsxs("nav",{className:"flex-1 px-3 pt-2",children:[h.jsx(ii,{label:p("common.loop_section"),items:x0,collapsed:v}),h.jsx(ii,{label:p("common.tasks_section"),items:S0,collapsed:v}),h.jsx(ii,{label:p("common.fleet_section"),items:k0,collapsed:v}),h.jsx(ii,{label:p("common.docs_section"),items:E0,collapsed:v}),d&&h.jsx(ii,{label:p("common.admin_section"),items:w0,collapsed:v})]}),h.jsx("div",{className:"flex px-3 py-1",children:h.jsx("button",{onClick:y,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":v?"expand sidebar":"collapse sidebar",children:v?h.jsx(nb,{size:14}):h.jsx(ab,{size:14})})}),h.jsx("div",{className:"border-t border-[var(--border)] p-3",children:h.jsxs("div",{className:`flex min-h-[44px] items-center px-3 transition-[gap] duration-300 ${v?"gap-0":"gap-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:p("common.profile"),children:((i==null?void 0:i.username)??"u")[0].toUpperCase()}),h.jsxs("div",{className:`flex min-w-0 flex-1 items-center overflow-hidden transition-[max-width,opacity] duration-300 ${v?"pointer-events-none max-w-0 opacity-0":"max-w-[calc(100%-28px)] opacity-100"}`,"aria-hidden":v,children:[h.jsxs("button",{onClick:()=>s("/profile"),className:"min-w-0 flex-1 text-left transition-colors hover:opacity-80",title:p("common.profile"),tabIndex:v?-1:void 0,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:"ml-2 p-1 text-[var(--text-secondary)] transition-colors hover:text-[var(--accent)]","aria-label":p("common.log_out"),tabIndex:v?-1:void 0,children:h.jsx(pb,{size:14})})]})]})}),h.jsx(h0,{isOpen:u,onClose:()=>f(!1),onConfirm:_,title:p("common.logout_title"),message:p("common.logout_message"),confirmLabel:p("common.logout"),confirmVariant:"warning"})]})}function D0({headerActions:i,subtitleOverride:o}){const s=yt(),{title:u,subtitle:f}=j0(s.pathname),d=o??f,p=typeof d=="string"?d:d==null?void 0:d.text,v=typeof d=="string"?d:(d==null?void 0:d.title)??(d==null?void 0:d.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:u}),p&&h.jsxs("span",{style:{color:"var(--text-muted)"},title:v,children:[" ","// ",Fh(p,40)]})]}),h.jsxs("div",{className:"flex items-center gap-3",children:[i,h.jsxs("div",{className:"flex items-center gap-1",children:[h.jsx(jp,{}),h.jsx(Ep,{}),h.jsx(kp,{})]})]})]})}function N0(){const[i,o]=g.useState(null),[s,u]=g.useState(null),f=yt(),d=f.pathname==="/home",p=/^\/tasks\/\d+$/.test(f.pathname),v=f.pathname.startsWith("/docs");return g.useEffect(()=>bp.getState().init(),[]),g.useEffect(()=>{Fs.getState().initInbox()},[]),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(O0,{}),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(z0,{}),!v&&h.jsx(D0,{headerActions:i,subtitleOverride:s}),h.jsx(b0,{className:d||p?"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(Rp.Provider,{value:{setActions:o},children:h.jsx(Ap.Provider,{value:{setSubtitle:u},children:h.jsx(hv,{})})})}),h.jsx(g0,{}),h.jsx(y0,{}),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(A0,{})})]})]})}function zh(i){var s;const o=(s=i.state)==null?void 0:s.from;return o?{from:o}:{from:{pathname:i.pathname,search:i.search}}}function ri({children:i,requireAdmin:o=!1}){const{accessToken:s,user:u,requireTotpSetup:f,initializing:d}=Sa(),p=yt();if(d)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(il,{to:"/login",state:zh(p),replace:!0});if(f){const v=zh(p);return p.pathname!=="/totp-setup"&&p.pathname!=="/bind"?h.jsx(il,{to:"/totp-setup",state:v,replace:!0}):p.pathname==="/bind"?(sessionStorage.setItem("overlord_bind_redirect",JSON.stringify(v.from)),h.jsx(il,{to:"/totp-setup",state:v,replace:!0})):h.jsx(h.Fragment,{children:i})}return o&&(u==null?void 0:u.role)!==op.ADMIN?h.jsx(il,{to:"/home",replace:!0}):h.jsx(h.Fragment,{children:i})}function M0({children:i}){const{theme:o,resolved:s,setResolved:u}=Sp();return g.useEffect(()=>{if(o!=="system"){u(o);return}const f=window.matchMedia("(prefers-color-scheme: dark)");u(f.matches?"dark":"light");const d=p=>u(p.matches?"dark":"light");return f.addEventListener("change",d),()=>f.removeEventListener("change",d)},[o,u]),g.useEffect(()=>{document.documentElement.classList.toggle("dark",s==="dark")},[s]),h.jsx(h.Fragment,{children:i})}class U0 extends g.Component{constructor(o){super(o),this.state={hasError:!1,error:null}}static getDerivedStateFromError(o){return{hasError:!0,error:o}}render(){var o;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:Zr("common.runtime_error")}),h.jsx("p",{className:"max-w-md text-center text-xs text-[var(--text-muted)]",children:((o=this.state.error)==null?void 0:o.message)||Zr("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(ap,{className:"h-3.5 w-3.5"}),Zr("common.reload")]})]}):this.props.children}}function L0({isOpen:i}){const o=Ia(),{logout:s,setSessionExpired:u}=Sa(),{t:f}=Xt();function d(){s(),u(!1),o("/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(hb,{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:d,children:f("auth.go_to_login")})]})})]}):null}const Ch=5;let xa=[];const Bs=new Set;function zp(){Bs.forEach(i=>i())}function q0(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function Fa(i,o,s=4e3){const u=q0();return xa=[...xa,{id:u,variant:i,message:o,duration:s}],xa.length>Ch&&(xa=xa.slice(xa.length-Ch)),zp(),u}Fa.success=(i,o)=>Fa("success",i,o);Fa.error=(i,o)=>Fa("error",i,o);Fa.warning=(i,o)=>Fa("warning",i,o);Fa.info=(i,o)=>Fa("info",i,o);function H0(i){xa=xa.filter(o=>o.id!==i),zp()}function B0(){const[,i]=g.useState(0);return g.useEffect(()=>{const o=()=>i(s=>s+1);return Bs.add(o),()=>{Bs.delete(o)}},[]),xa}const Y0={success:{icon:lb,borderColor:"var(--accent)"},error:{icon:ib,borderColor:"var(--destructive)"},warning:{icon:ip,borderColor:"var(--warning)"},info:{icon:fb,borderColor:"var(--info)"}};function G0({item:i}){const o=Y0[i.variant],s=o.icon,{t:u}=Xt(),f=g.useCallback(()=>H0(i.id),[i.id]);return g.useEffect(()=>{if(!i.duration)return;const d=setTimeout(f,i.duration);return()=>clearTimeout(d)},[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 ${o.borderColor}`},role:"alert",children:[h.jsx(s,{className:"h-4 w-4 shrink-0",style:{color:o.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":u("common.dismiss_notification"),children:h.jsx(rp,{className:"h-3.5 w-3.5"})})]})}function V0(){const i=B0();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(o=>h.jsx("div",{className:"pointer-events-auto",children:h.jsx(G0,{item:o})},o.id))})}const X0=g.lazy(()=>ee(()=>import("./LandingPage-BjaDEysn.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),Q0=g.lazy(()=>ee(()=>import("./LoginPage-Dim7DvNx.js"),[])),Z0=g.lazy(()=>ee(()=>import("./TotpSetupPage-onfqQ2Tg.js"),[])),K0=g.lazy(()=>ee(()=>import("./NotFoundPage-Diq4DFT7.js"),[])),J0=g.lazy(()=>ee(()=>import("./HomePage-iL4h_KbB.js"),__vite__mapDeps([7,8,9,10,11,12,13,14,15,1]))),$0=g.lazy(()=>ee(()=>import("./TerminalHomePage-252i-Ub-.js"),__vite__mapDeps([16,17,18,19,20,11,12,21,13,22,23,24,9,25,26,14,27,28,29,30]))),W0=g.lazy(()=>ee(()=>import("./TaskListPage-dV0t-q8c.js"),__vite__mapDeps([31,18,8,9,13,15,32,23,24,25,26,6,33,10,27,34,12]))),F0=g.lazy(()=>ee(()=>import("./TaskDetailPage-COMP6EC1.js"),__vite__mapDeps([35,18,19,20,21,13,22,36,23,24,9,17,26,25,15,37,29,32,38,39,40,41]))),I0=g.lazy(()=>ee(()=>import("./PlanPage-Cad0WoFq.js"),__vite__mapDeps([42,33,10,21,13,22,23,24,27,39,34,12]))),P0=g.lazy(()=>ee(()=>import("./ReviewPage-Ggq_3chi.js"),__vite__mapDeps([43,33,10,36,23,24,13,15,26,25,27,38,34,12]))),e1=g.lazy(()=>ee(()=>import("./ReviewAggregatePage-BiNX4CLc.js"),__vite__mapDeps([44,19,20,10,36,13,26,25,37,40,38,41,29,28,24,45]))),t1=g.lazy(()=>ee(()=>import("./WorkerListPage-DyQqRYyL.js"),__vite__mapDeps([46,9,47,48,49,50,51,38,30,6,40,23,24,33,10,14,27,37]))),a1=g.lazy(()=>ee(()=>import("./WorkerDetailPage-DzDX_IED.js"),__vite__mapDeps([52,13,9,53,47,14,15,54,37,34,12]))),n1=g.lazy(()=>ee(()=>import("./WorkerSetupGuidePage-Dsvy4cWd.js"),__vite__mapDeps([48,49,50,51,38,30]))),l1=g.lazy(()=>ee(()=>import("./ProjectListPage-QLDq1Cd0.js"),__vite__mapDeps([55,23,24,26,33,10,13,14,27,37]))),i1=g.lazy(()=>ee(()=>import("./ProjectDetailPage-Dz2MtkqV.js"),__vite__mapDeps([56,57,23,24,15,13,9,53,14,58,54,37,27]))),r1=g.lazy(()=>ee(()=>import("./EditProjectPage-Co7Mmqr-.js"),__vite__mapDeps([59,23,24,57,26,27]))),o1=g.lazy(()=>ee(()=>import("./PipelineEditorPage-BYMUgYAp.js"),__vite__mapDeps([60,23,24]))),u1=g.lazy(()=>ee(()=>import("./AutomationListPage-yAPq7YGs.js"),__vite__mapDeps([61,33,10,8,9,13,23,24,62,36,63,27,38,2,64,22,12]))),s1=g.lazy(()=>ee(()=>import("./AutomationCreatePage-BhTa8X7N.js"),__vite__mapDeps([65,23,24,62,36,37]))),c1=g.lazy(()=>ee(()=>import("./AutomationDetailPage-vL5NdOD5.js"),__vite__mapDeps([66,33,10,13,63,22,37,38,54,64,2,39]))),f1=g.lazy(()=>ee(()=>import("./AutomationEditPage-D-JIVF7y.js"),__vite__mapDeps([67,23,24,62,36,10,33,22,37]))),d1=g.lazy(()=>ee(()=>import("./AutomationRunDetailPage-CUrjN0ru.js"),__vite__mapDeps([68,33,10,13,63,22,37,39,45]))),m1=g.lazy(()=>ee(()=>import("./ProfilePage-CAONXEJn.js"),__vite__mapDeps([69,70,53,14]))),h1=g.lazy(()=>ee(()=>import("./BindPlatformPage-SZjEpxLM.js"),[])),p1=g.lazy(()=>ee(()=>import("./AccessTokensPage-BGCTBtnS.js"),__vite__mapDeps([71,23,24,33,10,13,14,27,6,54]))),_1=g.lazy(()=>ee(()=>import("./CliReferencePage-BELtla-b.js"),__vite__mapDeps([72,73,6,74,27]))),g1=g.lazy(()=>ee(()=>import("./ApiReferencePage-Dl3szXej.js"),__vite__mapDeps([75,74,6,27]))),y1=g.lazy(()=>ee(()=>import("./SkillPage-nwAKYwKF.js"),__vite__mapDeps([76,73,6,39]))),v1=g.lazy(()=>ee(()=>import("./DocsLayout-ByC0rFb9.js"),__vite__mapDeps([77,37]))),b1=g.lazy(()=>ee(()=>import("./InstallationPage-3Mg3EwDu.js"),__vite__mapDeps([78,73,6]))),x1=g.lazy(()=>ee(()=>import("./DeveloperSetupPage-DezO-dy9.js"),__vite__mapDeps([79,73,6]))),S1=g.lazy(()=>ee(()=>import("./WorkerSetupPage-QfPSikXC.js"),__vite__mapDeps([80,73,6]))),k1=g.lazy(()=>ee(()=>import("./BotSetupPage-CoWn4EVN.js"),__vite__mapDeps([81,73,6]))),E1=g.lazy(()=>ee(()=>import("./LocalDevelopmentPage-D4hmOnyv.js"),__vite__mapDeps([82,73,6]))),w1=g.lazy(()=>ee(()=>import("./WorkerOperationsPage-M05K6-Uh.js"),[])),T1=g.lazy(()=>ee(()=>import("./DeploymentPage-BX0bJ84s.js"),__vite__mapDeps([83,73,6]))),Oh=g.lazy(()=>ee(()=>import("./BotIntegrationPage-CxlKRS86.js"),[])),j1=g.lazy(()=>ee(()=>import("./PipelineConfigPage-Bc59v8FH.js"),__vite__mapDeps([84,73,6]))),R1=g.lazy(()=>ee(()=>import("./DevWorkflowPage-F4dPunD_.js"),__vite__mapDeps([85,73,6]))),A1=g.lazy(()=>ee(()=>import("./PermissionsPage-CuZ4R205.js"),[])),z1=g.lazy(()=>ee(()=>import("./EnvVariablesPage-BB8UDIHK.js"),__vite__mapDeps([86,73,6]))),C1=g.lazy(()=>ee(()=>import("./ArchitecturePage-CeJCvHOO.js"),__vite__mapDeps([87,73,6]))),O1=g.lazy(()=>ee(()=>import("./ChangelogPage-DeqTi2vt.js"),[])),D1=g.lazy(()=>ee(()=>import("./AgentCliPage-cbbNvIVh.js"),__vite__mapDeps([88,73,6]))),N1=g.lazy(()=>ee(()=>import("./TaskGuidePage-v3d8H2Rw.js"),__vite__mapDeps([89,73,6]))),M1=g.lazy(()=>ee(()=>import("./DocsIndexPage-mz6j61H9.js"),__vite__mapDeps([90,50,3,4,51]))),U1=g.lazy(()=>ee(()=>import("./AdminPage-C3bkaQfU.js"),__vite__mapDeps([91,5,3,92,51]))),L1=g.lazy(()=>ee(()=>import("./DeveloperManage-Ch5Cuhb0.js"),__vite__mapDeps([93,23,24,70,33,10,14,9,27,5,58,29]))),q1=g.lazy(()=>ee(()=>import("./BotManage-D0N_YDie.js"),__vite__mapDeps([94,23,24,73,6,54,27,33,10,14,9,3,58]))),H1=g.lazy(()=>ee(()=>import("./TokenManage-BCoS8_VA.js"),__vite__mapDeps([95,49,6,39,33,10,14,9,27]))),B1=g.lazy(()=>ee(()=>import("./AuditLogPage-DZ7lTNZe.js"),__vite__mapDeps([96,23,24,33,10,92,34,12]))),Y1=g.lazy(()=>ee(()=>import("./SettingsPage-BufRJ5IF.js"),[]));function G1(){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 V1(){const i=Sa(o=>o.sessionExpired);return h.jsxs(M0,{children:[h.jsx(V0,{}),h.jsx(U0,{children:h.jsxs(Yv,{children:[h.jsx(L0,{isOpen:i}),h.jsx(g.Suspense,{fallback:h.jsx(G1,{}),children:h.jsxs(_v,{children:[h.jsx(W,{path:"/",element:h.jsx(X0,{})}),h.jsx(W,{path:"/login",element:h.jsx(Q0,{})}),h.jsx(W,{path:"/totp-setup",element:h.jsx(ri,{children:h.jsx(Z0,{})})}),h.jsx(W,{path:"/bind",element:h.jsx(ri,{children:h.jsx(h1,{})})}),h.jsxs(W,{element:h.jsx(ri,{children:h.jsx(N0,{})}),children:[h.jsx(W,{path:"/home",element:h.jsx($0,{})}),h.jsx(W,{path:"/dashboard",element:h.jsx(J0,{})}),h.jsx(W,{path:"/tasks",element:h.jsx(W0,{})}),h.jsx(W,{path:"/tasks/:id",element:h.jsx(F0,{})}),h.jsx(W,{path:"/plan",element:h.jsx(I0,{})}),h.jsx(W,{path:"/review",element:h.jsx(P0,{})}),h.jsx(W,{path:"/review/:sourceTaskId",element:h.jsx(e1,{})}),h.jsx(W,{path:"/automations",element:h.jsx(u1,{})}),h.jsx(W,{path:"/automations/new",element:h.jsx(s1,{})}),h.jsx(W,{path:"/automations/runs/:runId",element:h.jsx(d1,{})}),h.jsx(W,{path:"/automations/:id",element:h.jsx(c1,{})}),h.jsx(W,{path:"/automations/:id/edit",element:h.jsx(f1,{})}),h.jsx(W,{path:"/workers",element:h.jsx(t1,{})}),h.jsx(W,{path:"/workers/setup",element:h.jsx(ri,{requireAdmin:!0,children:h.jsx(n1,{})})}),h.jsx(W,{path:"/workers/:id",element:h.jsx(a1,{})}),h.jsx(W,{path:"/projects",element:h.jsx(l1,{})}),h.jsx(W,{path:"/projects/:key",element:h.jsx(i1,{})}),h.jsx(W,{path:"/projects/:key/edit",element:h.jsx(r1,{})}),h.jsx(W,{path:"/projects/:key/pipeline",element:h.jsx(o1,{})}),h.jsx(W,{path:"/profile",element:h.jsx(m1,{})}),h.jsx(W,{path:"/access-tokens",element:h.jsx(p1,{})}),h.jsxs(W,{path:"/docs",element:h.jsx(v1,{}),children:[h.jsx(W,{index:!0,element:h.jsx(il,{to:"cli",replace:!0})}),h.jsx(W,{path:"cli",element:h.jsx(_1,{})}),h.jsx(W,{path:"api",element:h.jsx(g1,{})}),h.jsx(W,{path:"bot",element:h.jsx(Oh,{})}),h.jsx(W,{path:"all",element:h.jsx(M1,{})}),h.jsx(W,{path:"skill",element:h.jsx(y1,{})}),h.jsx(W,{path:"installation",element:h.jsx(b1,{})}),h.jsx(W,{path:"developer-setup",element:h.jsx(x1,{})}),h.jsx(W,{path:"worker-setup",element:h.jsx(S1,{})}),h.jsx(W,{path:"bot-setup",element:h.jsx(k1,{})}),h.jsx(W,{path:"local-development",element:h.jsx(E1,{})}),h.jsx(W,{path:"worker-operations",element:h.jsx(w1,{})}),h.jsx(W,{path:"deployment",element:h.jsx(T1,{})}),h.jsx(W,{path:"bot-integration",element:h.jsx(Oh,{})}),h.jsx(W,{path:"pipeline-config",element:h.jsx(j1,{})}),h.jsx(W,{path:"dev-workflow",element:h.jsx(R1,{})}),h.jsx(W,{path:"permissions",element:h.jsx(A1,{})}),h.jsx(W,{path:"env-variables",element:h.jsx(z1,{})}),h.jsx(W,{path:"architecture",element:h.jsx(C1,{})}),h.jsx(W,{path:"task-guide",element:h.jsx(N1,{})}),h.jsx(W,{path:"agent-cli",element:h.jsx(D1,{})}),h.jsx(W,{path:"changelog",element:h.jsx(O1,{})})]}),h.jsxs(W,{path:"/admin",element:h.jsx(ri,{requireAdmin:!0,children:h.jsx(U1,{})}),children:[h.jsx(W,{index:!0,element:h.jsx(il,{to:"developers",replace:!0})}),h.jsx(W,{path:"developers",element:h.jsx(L1,{})}),h.jsx(W,{path:"bots",element:h.jsx(q1,{})}),h.jsx(W,{path:"tokens",element:h.jsx(H1,{})}),h.jsx(W,{path:"audit-logs",element:h.jsx(B1,{})}),h.jsx(W,{path:"settings",element:h.jsx(Y1,{})})]})]}),h.jsx(W,{path:"*",element:h.jsx(K0,{})})]})})]})})]})}function Cp(i=window){var o,s;return((o=i.matchMedia)==null?void 0:o.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}async function X1(i=window,o="portrait"){var u,f;if(!Cp(i))return!1;const s=(f=(u=i.screen)==null?void 0:u.orientation)==null?void 0:f.lock;if(typeof s!="function")return!1;try{return await s.call(i.screen.orientation,o),!0}catch{return!1}}function Q1(i){var o,s;return((o=i.matchMedia)==null?void 0:o.call(i,"(display-mode: standalone)").matches)===!0||((s=i.navigator)==null?void 0:s.standalone)===!0}function Z1(i){var s,u;const o=((s=i.navigator)==null?void 0:s.userAgent)??"";return/iPhone|iPad|iPod/i.test(o)||/Macintosh/i.test(o)&&(((u=i.navigator)==null?void 0:u.maxTouchPoints)??0)>1}function K1(i){const o=i.activeElement;if(!(o instanceof HTMLElement))return!1;const s=o.tagName;return o.isContentEditable||s==="INPUT"||s==="TEXTAREA"||s==="SELECT"}function J1(i){const o=i.screen;if(!o)return null;const s=Math.round(o.width),u=Math.round(o.height);return i.innerHeight>=i.innerWidth?Math.max(s,u):Math.min(s,u)}function $1(i=window,o=document){const s=o.documentElement,u=i.visualViewport??null;let f=-1;const d=()=>{const p=Math.round((u==null?void 0:u.height)??0),v=Math.round(i.innerHeight);let y=p>0?p:v;if(Q1(i)&&Z1(i)&&!K1(o)){const _=J1(i);_!==null&&(y=Math.max(y,v,_))}y!==f&&(f=y,s.style.setProperty("--app-height",`${y}px`))};return d(),i.addEventListener("resize",d),i.addEventListener("orientationchange",d),u==null||u.addEventListener("resize",d),()=>{i.removeEventListener("resize",d),i.removeEventListener("orientationchange",d),u==null||u.removeEventListener("resize",d)}}Sa.getState().initialize();$1(window,document);const Op=window,W1=Cp(Op);X1(Op);if(W1){document.documentElement.classList.add("pwa-standalone");const i=window.matchMedia("(prefers-color-scheme: dark)").matches,o=localStorage.getItem("overlord-theme"),s=o==="dark"||o!=="light"&&i;document.body.style.backgroundColor=s?"#171717":"#FFFFFF",new MutationObserver(()=>{const u=document.documentElement.classList.contains("dark");document.body.style.backgroundColor=u?"#171717":"#FFFFFF"}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}hy.createRoot(document.getElementById("root")).render(h.jsx(g.StrictMode,{children:h.jsx(V1,{})}));export{fy as $,sx as A,I1 as B,tb as C,op as D,Ph as E,P1 as F,ub as G,Ns as H,ix as I,lb as J,rb as K,$h as L,ob as M,il as N,_b as O,g0 as P,nx as Q,Cr as R,lp as S,kp as T,Eb as U,ip as V,tx as W,rp as X,fb as Y,ax as Z,ap as _,Xt as a,Fh as a0,Fs as a1,Mr as a2,eb as a3,yb as a4,xb as a5,db as a6,pb as a7,lx as a8,Js as a9,hv as aa,rx as ab,ox as ac,ib as ad,$s as b,ye as c,bb as d,mb as e,Ia as f,yt as g,We as h,Rb as i,h as j,bp as k,wp as l,Tp as m,di as n,ex as o,dx as p,cx as q,g as r,h0 as s,Fa as t,Sa as u,d0 as v,ux as w,fx as x,np as y,tp as z};
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as a}from"./index-OBVbDpAB.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 o}from"./index-CTiyb7yJ.js";/**
1
+ import{c as o}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as t}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as a}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as a}from"./index-OBVbDpAB.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 o}from"./index-CTiyb7yJ.js";/**
1
+ import{c as o}from"./index-OBVbDpAB.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,o as e,ab as s,ac as u,a8 as a}from"./index-CTiyb7yJ.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,o as e,ab as s,ac as u,a8 as a}from"./index-OBVbDpAB.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,4 +1,4 @@
1
- import{c as t}from"./index-CTiyb7yJ.js";/**
1
+ import{c as t}from"./index-OBVbDpAB.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{o as a,Q as t}from"./index-CTiyb7yJ.js";import{a as l}from"./agent-type-options-DubeBncx.js";const r=[a.COMPLETED,a.FAILED,a.CANCELLED],E=[{value:"feat",label:"feat"},{value:"fix",label:"fix"},{value:"refactor",label:"refactor"},{value:"docs",label:"docs"},{value:"chore",label:"chore"}],o=l(e=>e);[...o];function c(e){return(e??t.CLAUDE).toLowerCase()}export{r as T,E as a,c as g};
1
+ import{o as a,Q as t}from"./index-OBVbDpAB.js";import{a as l}from"./agent-type-options-D5TWJHLL.js";const r=[a.COMPLETED,a.FAILED,a.CANCELLED],E=[{value:"feat",label:"feat"},{value:"fix",label:"fix"},{value:"refactor",label:"refactor"},{value:"docs",label:"docs"},{value:"chore",label:"chore"}],o=l(e=>e);[...o];function c(e){return(e??t.CLAUDE).toLowerCase()}export{r as T,E as a,c as g};
@@ -1 +1 @@
1
- import{n as i,h as c}from"./index-CTiyb7yJ.js";const k=i((a,o)=>({tasks:[],currentTask:null,loading:!1,error:null,nextCursor:null,_fetchTasksAbort:null,_fetchTasksRequestId:0,fetchTasks:async s=>{const t=o()._fetchTasksAbort;t&&t.abort();const e=new AbortController,n=o()._fetchTasksRequestId+1;a({loading:!0,error:null,_fetchTasksAbort:e,_fetchTasksRequestId:n});try{const r={};s!=null&&s.status&&(r.status=s.status),s!=null&&s.projectKey&&(r.projectKey=s.projectKey),s!=null&&s.developerId&&(r.developerId=s.developerId),s!=null&&s.taskMode&&(r.taskMode=s.taskMode),s!=null&&s.cursor&&(r.cursor=s.cursor),s!=null&&s.limit&&(r.limit=String(s.limit));const l=await c.get("web/tasks",{searchParams:r,signal:e.signal}).json();if(o()._fetchTasksRequestId!==n)return;a({tasks:l.data,nextCursor:l.nextCursor??null,_fetchTasksAbort:null})}catch(r){if(r instanceof DOMException&&r.name==="AbortError")return;o()._fetchTasksRequestId===n&&a({error:r instanceof Error?r.message:"Failed to fetch tasks"})}finally{o()._fetchTasksRequestId===n&&a({loading:!1,_fetchTasksAbort:null})}},fetchTask:async s=>{a({loading:!0,error:null});try{const t=await c.get(`web/tasks/${s}`).json();a({currentTask:t})}catch(t){a({error:t instanceof Error?t.message:"Failed to fetch task"})}finally{a({loading:!1})}},createTask:async s=>{a({error:null});try{const t=await c.post("web/tasks",{json:s}).json();return a(e=>({tasks:[t,...e.tasks]})),t}catch(t){throw a({error:t instanceof Error?t.message:"Failed to create task"}),t}},cancelTask:async s=>{a({error:null});try{await c.post(`web/tasks/${s}/cancel`);const{currentTask:t}=o();(t==null?void 0:t.id)===s&&await o().fetchTask(s)}catch(t){throw a({error:t instanceof Error?t.message:"Failed to cancel task"}),t}},reset:()=>{a({tasks:[],currentTask:null,loading:!1,error:null,nextCursor:null,_fetchTasksAbort:null,_fetchTasksRequestId:0})}}));export{k as u};
1
+ import{n as i,h as c}from"./index-OBVbDpAB.js";const k=i((a,o)=>({tasks:[],currentTask:null,loading:!1,error:null,nextCursor:null,_fetchTasksAbort:null,_fetchTasksRequestId:0,fetchTasks:async s=>{const t=o()._fetchTasksAbort;t&&t.abort();const e=new AbortController,n=o()._fetchTasksRequestId+1;a({loading:!0,error:null,_fetchTasksAbort:e,_fetchTasksRequestId:n});try{const r={};s!=null&&s.status&&(r.status=s.status),s!=null&&s.projectKey&&(r.projectKey=s.projectKey),s!=null&&s.developerId&&(r.developerId=s.developerId),s!=null&&s.taskMode&&(r.taskMode=s.taskMode),s!=null&&s.cursor&&(r.cursor=s.cursor),s!=null&&s.limit&&(r.limit=String(s.limit));const l=await c.get("web/tasks",{searchParams:r,signal:e.signal}).json();if(o()._fetchTasksRequestId!==n)return;a({tasks:l.data,nextCursor:l.nextCursor??null,_fetchTasksAbort:null})}catch(r){if(r instanceof DOMException&&r.name==="AbortError")return;o()._fetchTasksRequestId===n&&a({error:r instanceof Error?r.message:"Failed to fetch tasks"})}finally{o()._fetchTasksRequestId===n&&a({loading:!1,_fetchTasksAbort:null})}},fetchTask:async s=>{a({loading:!0,error:null});try{const t=await c.get(`web/tasks/${s}`).json();a({currentTask:t})}catch(t){a({error:t instanceof Error?t.message:"Failed to fetch task"})}finally{a({loading:!1})}},createTask:async s=>{a({error:null});try{const t=await c.post("web/tasks",{json:s}).json();return a(e=>({tasks:[t,...e.tasks]})),t}catch(t){throw a({error:t instanceof Error?t.message:"Failed to create task"}),t}},cancelTask:async s=>{a({error:null});try{await c.post(`web/tasks/${s}/cancel`);const{currentTask:t}=o();(t==null?void 0:t.id)===s&&await o().fetchTask(s)}catch(t){throw a({error:t instanceof Error?t.message:"Failed to cancel task"}),t}},reset:()=>{a({tasks:[],currentTask:null,loading:!1,error:null,nextCursor:null,_fetchTasksAbort:null,_fetchTasksRequestId:0})}}));export{k as u};
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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{r as e}from"./index-CTiyb7yJ.js";function p(s,l){const[i,d]=e.useState(null),[R,a]=e.useState(!0),[m,o]=e.useState(null),f=e.useRef(s);f.current=s;const r=e.useRef(0),t=e.useRef(!0),u=e.useCallback(async()=>{const c=++r.current;a(!0),o(null);try{const n=await f.current();t.current&&c===r.current&&d(n)}catch(n){if(t.current&&c===r.current){const E=n instanceof Error?n.message:"An unexpected error occurred";o(E)}}finally{t.current&&c===r.current&&a(!1)}},l);return e.useEffect(()=>{u()},[u]),e.useEffect(()=>()=>{t.current=!1,r.current+=1},[]),{data:i,loading:R,error:m,refetch:u}}export{p as u};
1
+ import{r as e}from"./index-OBVbDpAB.js";function p(s,l){const[i,d]=e.useState(null),[R,a]=e.useState(!0),[m,o]=e.useState(null),f=e.useRef(s);f.current=s;const r=e.useRef(0),t=e.useRef(!0),u=e.useCallback(async()=>{const c=++r.current;a(!0),o(null);try{const n=await f.current();t.current&&c===r.current&&d(n)}catch(n){if(t.current&&c===r.current){const E=n instanceof Error?n.message:"An unexpected error occurred";o(E)}}finally{t.current&&c===r.current&&a(!1)}},l);return e.useEffect(()=>{u()},[u]),e.useEffect(()=>()=>{t.current=!1,r.current+=1},[]),{data:i,loading:R,error:m,refetch:u}}export{p as u};
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as e}from"./index-OBVbDpAB.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}from"./index-CTiyb7yJ.js";/**
1
+ import{c}from"./index-OBVbDpAB.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-CTiyb7yJ.js";/**
1
+ import{c as a}from"./index-OBVbDpAB.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
package/public/index.html CHANGED
@@ -28,7 +28,7 @@
28
28
  href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap"
29
29
  rel="stylesheet"
30
30
  />
31
- <script type="module" crossorigin src="/assets/index-CTiyb7yJ.js"></script>
31
+ <script type="module" crossorigin src="/assets/index-OBVbDpAB.js"></script>
32
32
  <link rel="stylesheet" crossorigin href="/assets/index-B40ZH6vh.css">
33
33
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
34
34
  <body>