maestro-flow 0.4.8 → 0.4.10

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 (280) hide show
  1. package/.agy/agents/cli-explore-agent.md +186 -0
  2. package/.agy/agents/conceptual-planning-agent.md +244 -0
  3. package/.agy/agents/impeccable-agent.md +97 -0
  4. package/.agy/agents/team-supervisor.md +142 -0
  5. package/.agy/agents/team-worker.md +236 -0
  6. package/.agy/agents/ui-design-agent.md +286 -0
  7. package/.agy/agents/workflow-analyzer.md +114 -0
  8. package/.agy/agents/workflow-codebase-mapper.md +76 -0
  9. package/.agy/agents/workflow-collab-planner.md +142 -0
  10. package/.agy/agents/workflow-debugger.md +102 -0
  11. package/.agy/agents/workflow-executor.md +131 -0
  12. package/.agy/agents/workflow-external-researcher.md +86 -0
  13. package/.agy/agents/workflow-integration-checker.md +82 -0
  14. package/.agy/agents/workflow-nyquist-auditor.md +84 -0
  15. package/.agy/agents/workflow-phase-researcher.md +84 -0
  16. package/.agy/agents/workflow-plan-checker.md +89 -0
  17. package/.agy/agents/workflow-planner.md +194 -0
  18. package/.agy/agents/workflow-project-researcher.md +73 -0
  19. package/.agy/agents/workflow-research-synthesizer.md +70 -0
  20. package/.agy/agents/workflow-reviewer.md +81 -0
  21. package/.agy/agents/workflow-roadmapper.md +81 -0
  22. package/.agy/agents/workflow-verifier.md +119 -0
  23. package/.agy/skills/codify-to-knowhow/SKILL.md +172 -0
  24. package/.agy/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
  25. package/.agy/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
  26. package/.agy/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
  27. package/.agy/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
  28. package/.agy/skills/learn-decompose/SKILL.md +118 -0
  29. package/.agy/skills/learn-follow/SKILL.md +129 -0
  30. package/.agy/skills/learn-investigate/SKILL.md +154 -0
  31. package/.agy/skills/learn-retro/SKILL.md +159 -0
  32. package/.agy/skills/learn-second-opinion/SKILL.md +124 -0
  33. package/.agy/skills/maestro/SKILL.md +221 -0
  34. package/.agy/skills/maestro-amend/SKILL.md +162 -0
  35. package/.agy/skills/maestro-analyze/SKILL.md +135 -0
  36. package/.agy/skills/maestro-brainstorm/SKILL.md +118 -0
  37. package/.agy/skills/maestro-collab/SKILL.md +174 -0
  38. package/.agy/skills/maestro-composer/SKILL.md +180 -0
  39. package/.agy/skills/maestro-execute/SKILL.md +133 -0
  40. package/.agy/skills/maestro-fork/SKILL.md +88 -0
  41. package/.agy/skills/maestro-guard/SKILL.md +101 -0
  42. package/.agy/skills/maestro-help/SKILL.md +267 -0
  43. package/.agy/skills/maestro-help/index/catalog.json +184 -0
  44. package/.agy/skills/maestro-help/phases/01-parse-intent.md +122 -0
  45. package/.agy/skills/maestro-help/phases/02-search-present.md +181 -0
  46. package/.agy/skills/maestro-help/phases/03-workflow-guide.md +186 -0
  47. package/.agy/skills/maestro-impeccable/SKILL.md +250 -0
  48. package/.agy/skills/maestro-init/SKILL.md +80 -0
  49. package/.agy/skills/maestro-learn/SKILL.md +142 -0
  50. package/.agy/skills/maestro-merge/SKILL.md +66 -0
  51. package/.agy/skills/maestro-milestone-audit/SKILL.md +70 -0
  52. package/.agy/skills/maestro-milestone-complete/SKILL.md +77 -0
  53. package/.agy/skills/maestro-milestone-release/SKILL.md +98 -0
  54. package/.agy/skills/maestro-overlay/SKILL.md +177 -0
  55. package/.agy/skills/maestro-plan/SKILL.md +172 -0
  56. package/.agy/skills/maestro-player/SKILL.md +176 -0
  57. package/.agy/skills/maestro-quick/SKILL.md +67 -0
  58. package/.agy/skills/maestro-ralph/SKILL.md +546 -0
  59. package/.agy/skills/maestro-ralph-execute/SKILL.md +255 -0
  60. package/.agy/skills/maestro-roadmap/SKILL.md +170 -0
  61. package/.agy/skills/maestro-tools-execute/SKILL.md +119 -0
  62. package/.agy/skills/maestro-tools-register/SKILL.md +159 -0
  63. package/.agy/skills/maestro-ui-codify/SKILL.md +81 -0
  64. package/.agy/skills/maestro-update/SKILL.md +175 -0
  65. package/.agy/skills/maestro-verify/SKILL.md +111 -0
  66. package/.agy/skills/manage-codebase-rebuild/SKILL.md +77 -0
  67. package/.agy/skills/manage-codebase-refresh/SKILL.md +59 -0
  68. package/.agy/skills/manage-harvest/SKILL.md +96 -0
  69. package/.agy/skills/manage-issue/SKILL.md +72 -0
  70. package/.agy/skills/manage-issue-discover/SKILL.md +83 -0
  71. package/.agy/skills/manage-knowhow/SKILL.md +76 -0
  72. package/.agy/skills/manage-knowhow-capture/SKILL.md +78 -0
  73. package/.agy/skills/manage-learn/SKILL.md +64 -0
  74. package/.agy/skills/manage-status/SKILL.md +51 -0
  75. package/.agy/skills/manage-wiki/SKILL.md +61 -0
  76. package/.agy/skills/quality-auto-test/SKILL.md +135 -0
  77. package/.agy/skills/quality-debug/SKILL.md +122 -0
  78. package/.agy/skills/quality-refactor/SKILL.md +69 -0
  79. package/.agy/skills/quality-retrospective/SKILL.md +79 -0
  80. package/.agy/skills/quality-review/SKILL.md +130 -0
  81. package/.agy/skills/quality-sync/SKILL.md +53 -0
  82. package/.agy/skills/quality-test/SKILL.md +119 -0
  83. package/.agy/skills/security-audit/SKILL.md +157 -0
  84. package/.agy/skills/skill-iter-tune/SKILL.md +381 -0
  85. package/.agy/skills/skill-iter-tune/phases/01-setup.md +144 -0
  86. package/.agy/skills/skill-iter-tune/phases/02-execute.md +292 -0
  87. package/.agy/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
  88. package/.agy/skills/skill-iter-tune/phases/04-improve.md +198 -0
  89. package/.agy/skills/skill-iter-tune/phases/05-report.md +166 -0
  90. package/.agy/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
  91. package/.agy/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
  92. package/.agy/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
  93. package/.agy/skills/spec-add/SKILL.md +67 -0
  94. package/.agy/skills/spec-load/SKILL.md +70 -0
  95. package/.agy/skills/spec-remove/SKILL.md +50 -0
  96. package/.agy/skills/spec-setup/SKILL.md +47 -0
  97. package/.agy/skills/team-coordinate/SKILL.md +267 -0
  98. package/.agy/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
  99. package/.agy/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
  100. package/.agy/skills/team-coordinate/roles/coordinator/commands/monitor.md +348 -0
  101. package/.agy/skills/team-coordinate/roles/coordinator/role.md +362 -0
  102. package/.agy/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
  103. package/.agy/skills/team-coordinate/specs/pipelines.md +97 -0
  104. package/.agy/skills/team-coordinate/specs/quality-gates.md +112 -0
  105. package/.agy/skills/team-coordinate/specs/role-spec-template.md +198 -0
  106. package/.agy/skills/team-executor/SKILL.md +180 -0
  107. package/.agy/skills/team-executor/roles/executor/commands/monitor.md +235 -0
  108. package/.agy/skills/team-executor/roles/executor/role.md +171 -0
  109. package/.agy/skills/team-executor/specs/session-schema.md +264 -0
  110. package/.agy/skills/team-lifecycle-v4/SKILL.md +189 -0
  111. package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +92 -0
  112. package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
  113. package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
  114. package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
  115. package/.agy/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
  116. package/.agy/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
  117. package/.agy/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
  118. package/.agy/skills/team-lifecycle-v4/roles/executor/role.md +64 -0
  119. package/.agy/skills/team-lifecycle-v4/roles/planner/role.md +82 -0
  120. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
  121. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
  122. package/.agy/skills/team-lifecycle-v4/roles/reviewer/role.md +65 -0
  123. package/.agy/skills/team-lifecycle-v4/roles/supervisor/role.md +188 -0
  124. package/.agy/skills/team-lifecycle-v4/roles/tester/role.md +84 -0
  125. package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +92 -0
  126. package/.agy/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
  127. package/.agy/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
  128. package/.agy/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
  129. package/.agy/skills/team-lifecycle-v4/templates/architecture.md +254 -0
  130. package/.agy/skills/team-lifecycle-v4/templates/epics.md +196 -0
  131. package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
  132. package/.agy/skills/team-lifecycle-v4/templates/requirements.md +224 -0
  133. package/.agy/skills/team-quality-assurance/SKILL.md +148 -0
  134. package/.agy/skills/team-quality-assurance/roles/analyst/role.md +85 -0
  135. package/.agy/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
  136. package/.agy/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
  137. package/.agy/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +235 -0
  138. package/.agy/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
  139. package/.agy/skills/team-quality-assurance/roles/executor/role.md +62 -0
  140. package/.agy/skills/team-quality-assurance/roles/generator/role.md +65 -0
  141. package/.agy/skills/team-quality-assurance/roles/scout/role.md +72 -0
  142. package/.agy/skills/team-quality-assurance/roles/strategist/role.md +69 -0
  143. package/.agy/skills/team-quality-assurance/specs/pipelines.md +115 -0
  144. package/.agy/skills/team-quality-assurance/specs/team-config.json +131 -0
  145. package/.agy/skills/team-review/SKILL.md +149 -0
  146. package/.agy/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
  147. package/.agy/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
  148. package/.agy/skills/team-review/roles/coordinator/commands/monitor.md +209 -0
  149. package/.agy/skills/team-review/roles/coordinator/role.md +132 -0
  150. package/.agy/skills/team-review/roles/fixer/role.md +74 -0
  151. package/.agy/skills/team-review/roles/reviewer/role.md +66 -0
  152. package/.agy/skills/team-review/roles/scanner/role.md +77 -0
  153. package/.agy/skills/team-review/specs/dimensions.md +82 -0
  154. package/.agy/skills/team-review/specs/finding-schema.json +82 -0
  155. package/.agy/skills/team-review/specs/pipelines.md +102 -0
  156. package/.agy/skills/team-review/specs/team-config.json +27 -0
  157. package/.agy/skills/team-tech-debt/SKILL.md +133 -0
  158. package/.agy/skills/team-tech-debt/roles/assessor/role.md +76 -0
  159. package/.agy/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
  160. package/.agy/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
  161. package/.agy/skills/team-tech-debt/roles/coordinator/commands/monitor.md +198 -0
  162. package/.agy/skills/team-tech-debt/roles/coordinator/role.md +123 -0
  163. package/.agy/skills/team-tech-debt/roles/executor/role.md +76 -0
  164. package/.agy/skills/team-tech-debt/roles/planner/role.md +68 -0
  165. package/.agy/skills/team-tech-debt/roles/scanner/role.md +90 -0
  166. package/.agy/skills/team-tech-debt/roles/validator/role.md +78 -0
  167. package/.agy/skills/team-tech-debt/specs/pipelines.md +47 -0
  168. package/.agy/skills/team-tech-debt/specs/team-config.json +129 -0
  169. package/.agy/skills/team-testing/SKILL.md +144 -0
  170. package/.agy/skills/team-testing/roles/analyst/role.md +101 -0
  171. package/.agy/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
  172. package/.agy/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
  173. package/.agy/skills/team-testing/roles/coordinator/commands/monitor.md +242 -0
  174. package/.agy/skills/team-testing/roles/coordinator/role.md +134 -0
  175. package/.agy/skills/team-testing/roles/executor/role.md +95 -0
  176. package/.agy/skills/team-testing/roles/generator/role.md +95 -0
  177. package/.agy/skills/team-testing/roles/strategist/role.md +81 -0
  178. package/.agy/skills/team-testing/specs/pipelines.md +101 -0
  179. package/.agy/skills/team-testing/specs/team-config.json +93 -0
  180. package/.agy/skills/wiki-connect/SKILL.md +64 -0
  181. package/.agy/skills/wiki-digest/SKILL.md +70 -0
  182. package/.agy/skills/workflow-skill-designer/SKILL.md +506 -0
  183. package/.agy/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
  184. package/.agy/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
  185. package/.agy/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
  186. package/.agy/skills/workflow-skill-designer/phases/04-validation.md +471 -0
  187. package/dashboard/dist/assets/{ArtifactsPage-CVh0Z2I2.js → ArtifactsPage-BLvAqQlQ.js} +1 -1
  188. package/dashboard/dist/assets/{ChatInput-CBI3qHQQ.js → ChatInput-DU9YGZKX.js} +1 -1
  189. package/dashboard/dist/assets/{ChatPage-BjJ9CYox.js → ChatPage-DYHfheXC.js} +1 -1
  190. package/dashboard/dist/assets/{CollabPage-CprGGO9y.js → CollabPage-CSlmvEa-.js} +1 -1
  191. package/dashboard/dist/assets/{ExecutionPanel-CClxD7cH.js → ExecutionPanel-RYWf0dYC.js} +1 -1
  192. package/dashboard/dist/assets/{KanbanPage-copqjdPg.js → KanbanPage-N55Iv0-X.js} +1 -1
  193. package/dashboard/dist/assets/{MaestroCoordinatePage-CioZjQ9N.js → MaestroCoordinatePage-BxwZ6yy5.js} +1 -1
  194. package/dashboard/dist/assets/{MarkdownRenderer-CtUhoxCT.js → MarkdownRenderer-ZGtOY7Ti.js} +1 -1
  195. package/dashboard/dist/assets/{McpPage-BcPPcJpr.js → McpPage-Im6s4pGR.js} +1 -1
  196. package/dashboard/dist/assets/{MeetingRoomPage-BgmAKxU-.js → MeetingRoomPage-CxHRn1xx.js} +1 -1
  197. package/dashboard/dist/assets/{OutputPanel-DgT3gMyp.js → OutputPanel-DaL8c1i5.js} +1 -1
  198. package/dashboard/dist/assets/{ProblemsPanel-BmG7rxoG.js → ProblemsPanel-BQTd5812.js} +1 -1
  199. package/dashboard/dist/assets/{RequirementBoardPage-k8YoeQ0r.js → RequirementBoardPage-22y9u1qh.js} +1 -1
  200. package/dashboard/dist/assets/{RequirementPage-Da2354px.js → RequirementPage-_mO743Xm.js} +1 -1
  201. package/dashboard/dist/assets/{RoomsPage-BtqDiYaU.js → RoomsPage-CExTbOGr.js} +1 -1
  202. package/dashboard/dist/assets/{SpecsPage-ByPVH_M3.js → SpecsPage-gr4KX51-.js} +1 -1
  203. package/dashboard/dist/assets/{TeamsPage-sFDLN30L.js → TeamsPage-BxEXLb5g.js} +1 -1
  204. package/dashboard/dist/assets/{TreeBrowser-oEx8YJXV.js → TreeBrowser-CVtPF5C9.js} +1 -1
  205. package/dashboard/dist/assets/{WorkflowPage-JrX7CVHh.js → WorkflowPage-BoN18Lhs.js} +1 -1
  206. package/dashboard/dist/assets/{arrow-left-DYvgSdIH.js → arrow-left-C5ROg97G.js} +1 -1
  207. package/dashboard/dist/assets/{check-jcgYBWVR.js → check-Bs8PM0tQ.js} +1 -1
  208. package/dashboard/dist/assets/{chevron-right-DvZ5sMOg.js → chevron-right-SmErd_1F.js} +1 -1
  209. package/dashboard/dist/assets/{circle-DYT-zoRZ.js → circle-CjpslL_D.js} +1 -1
  210. package/dashboard/dist/assets/{circle-alert-Bfbv3gt4.js → circle-alert-CuzAg2fd.js} +1 -1
  211. package/dashboard/dist/assets/{circle-check-D82WnpbI.js → circle-check-BIkDU5D5.js} +1 -1
  212. package/dashboard/dist/assets/{circle-check-big-CPVD1GKF.js → circle-check-big-CYctV8bK.js} +1 -1
  213. package/dashboard/dist/assets/{code-B3bKFGI4.js → code-DoB7rfxt.js} +1 -1
  214. package/dashboard/dist/assets/{columns-3-BeMAQCix.js → columns-3-Ch5KIyRa.js} +1 -1
  215. package/dashboard/dist/assets/{download-BCtpoWYB.js → download-DadtG2Nr.js} +1 -1
  216. package/dashboard/dist/assets/{folder-CTj6SNNu.js → folder-B8ODoZfb.js} +1 -1
  217. package/dashboard/dist/assets/{index-BxR_3IbJ.js → index-BL4h1OKY.js} +1 -1
  218. package/dashboard/dist/assets/{index-DpcPd-UG.js → index-DQIlX2w_.js} +4 -4
  219. package/dashboard/dist/assets/{index-CWBJLu42.js → index-DaFwSmVJ.js} +10 -10
  220. package/dashboard/dist/assets/{list-BMv8pIQn.js → list-CI-XIPZh.js} +1 -1
  221. package/dashboard/dist/assets/{loader-DdM4VOgF.js → loader-DpdMoQvh.js} +1 -1
  222. package/dashboard/dist/assets/{minus-D15s2E__.js → minus-BVbfXGrC.js} +1 -1
  223. package/dashboard/dist/assets/{pen-line-DO6o4xWz.js → pen-line-CR8GaHt-.js} +1 -1
  224. package/dashboard/dist/assets/{pencil-qGxg9jOe.js → pencil-I7GE0y29.js} +1 -1
  225. package/dashboard/dist/assets/{proxy-DOffTzwA.js → proxy-CcYyZZWI.js} +1 -1
  226. package/dashboard/dist/assets/{refresh-cw-C9UNdLCy.js → refresh-cw-BG9V_T4R.js} +1 -1
  227. package/dashboard/dist/assets/{rows-2-CifAA5SL.js → rows-2-DP6NjQFk.js} +1 -1
  228. package/dashboard/dist/assets/{search-pe7pU1YN.js → search-b78eLlw2.js} +1 -1
  229. package/dashboard/dist/assets/{shallow-r7YynQYA.js → shallow-CJEesgtu.js} +1 -1
  230. package/dashboard/dist/assets/{table-Bh772iIw.js → table-B_lk-a1d.js} +1 -1
  231. package/dashboard/dist/assets/{team-types-C_HqX2p2.js → team-types-Se7f9LfJ.js} +1 -1
  232. package/dashboard/dist/assets/{terminal-EpmtGBlw.js → terminal-DXx4tvzq.js} +1 -1
  233. package/dashboard/dist/assets/{trash-2-Xen46iNQ.js → trash-2-CVh9mnRj.js} +1 -1
  234. package/dashboard/dist/assets/{users-BLueDPxF.js → users-Da9zGME5.js} +1 -1
  235. package/dashboard/dist/assets/{zap-DsQCPF61.js → zap-C0zaC7gJ.js} +1 -1
  236. package/dashboard/dist/index.html +1 -1
  237. package/dashboard/dist-server/dashboard/src/server/agents/adapter-factory.js +4 -0
  238. package/dashboard/dist-server/dashboard/src/server/agents/adapter-factory.js.map +1 -1
  239. package/dashboard/dist-server/dashboard/src/server/agents/agy-adapter.d.ts +39 -0
  240. package/dashboard/dist-server/dashboard/src/server/agents/agy-adapter.js +423 -0
  241. package/dashboard/dist-server/dashboard/src/server/agents/agy-adapter.js.map +1 -0
  242. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.d.ts +6 -0
  243. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +109 -0
  244. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
  245. package/dashboard/dist-server/dashboard/src/shared/constants.js +2 -0
  246. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  247. package/dashboard/dist-server/shared/agent-types.d.ts +1 -1
  248. package/dist/shared/agent-types.d.ts +1 -1
  249. package/dist/shared/agent-types.d.ts.map +1 -1
  250. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  251. package/dist/src/agents/cli-agent-runner.js +3 -0
  252. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  253. package/dist/src/commands/hooks.d.ts +64 -0
  254. package/dist/src/commands/hooks.d.ts.map +1 -1
  255. package/dist/src/commands/hooks.js +107 -0
  256. package/dist/src/commands/hooks.js.map +1 -1
  257. package/dist/src/commands/install.d.ts.map +1 -1
  258. package/dist/src/commands/install.js +17 -3
  259. package/dist/src/commands/install.js.map +1 -1
  260. package/dist/src/commands/update.d.ts.map +1 -1
  261. package/dist/src/commands/update.js +53 -0
  262. package/dist/src/commands/update.js.map +1 -1
  263. package/dist/src/config/cli-tools-config.d.ts +19 -5
  264. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  265. package/dist/src/config/cli-tools-config.js +77 -32
  266. package/dist/src/config/cli-tools-config.js.map +1 -1
  267. package/dist/src/config/cli-tools-defaults.json +2 -1
  268. package/dist/src/core/component-defs.d.ts.map +1 -1
  269. package/dist/src/core/component-defs.js +53 -0
  270. package/dist/src/core/component-defs.js.map +1 -1
  271. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  272. package/dist/src/tui/install-ui/InstallExecution.js +5 -3
  273. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  274. package/dist/src/utils/update-notices.d.ts +62 -0
  275. package/dist/src/utils/update-notices.d.ts.map +1 -0
  276. package/dist/src/utils/update-notices.js +178 -0
  277. package/dist/src/utils/update-notices.js.map +1 -0
  278. package/package.json +84 -82
  279. package/shared/agent-types.ts +1 -1
  280. package/workflows/agy-instructions.md +124 -0
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KanbanPage-copqjdPg.js","assets/shallow-r7YynQYA.js","assets/table-Bh772iIw.js","assets/circle-check-big-CPVD1GKF.js","assets/ChatInput-CBI3qHQQ.js","assets/index-CWBJLu42.js","assets/zap-DsQCPF61.js","assets/MarkdownRenderer-CtUhoxCT.js","assets/chevron-right-DvZ5sMOg.js","assets/terminal-EpmtGBlw.js","assets/circle-alert-Bfbv3gt4.js","assets/refresh-cw-C9UNdLCy.js","assets/download-BCtpoWYB.js","assets/ArtifactsPage-CVh0Z2I2.js","assets/code-B3bKFGI4.js","assets/search-pe7pU1YN.js","assets/TreeBrowser-oEx8YJXV.js","assets/folder-CTj6SNNu.js","assets/circle-DYT-zoRZ.js","assets/circle-check-D82WnpbI.js","assets/index-BxR_3IbJ.js","assets/proxy-DOffTzwA.js","assets/ChatPage-BjJ9CYox.js","assets/rows-2-CifAA5SL.js","assets/pencil-qGxg9jOe.js","assets/trash-2-Xen46iNQ.js","assets/WorkflowPage-JrX7CVHh.js","assets/check-jcgYBWVR.js","assets/list-BMv8pIQn.js","assets/columns-3-BeMAQCix.js","assets/McpPage-BcPPcJpr.js","assets/pen-line-DO6o4xWz.js","assets/minus-D15s2E__.js","assets/SpecsPage-ByPVH_M3.js","assets/TeamsPage-sFDLN30L.js","assets/team-types-C_HqX2p2.js","assets/arrow-left-DYvgSdIH.js","assets/users-BLueDPxF.js","assets/loader-DdM4VOgF.js","assets/RequirementPage-Da2354px.js","assets/RequirementBoardPage-k8YoeQ0r.js","assets/MaestroCoordinatePage-CioZjQ9N.js","assets/CollabPage-CprGGO9y.js","assets/MeetingRoomPage-BgmAKxU-.js","assets/RoomsPage-BtqDiYaU.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KanbanPage-N55Iv0-X.js","assets/shallow-CJEesgtu.js","assets/table-B_lk-a1d.js","assets/circle-check-big-CYctV8bK.js","assets/ChatInput-DU9YGZKX.js","assets/index-DaFwSmVJ.js","assets/zap-C0zaC7gJ.js","assets/MarkdownRenderer-ZGtOY7Ti.js","assets/chevron-right-SmErd_1F.js","assets/terminal-DXx4tvzq.js","assets/circle-alert-CuzAg2fd.js","assets/refresh-cw-BG9V_T4R.js","assets/download-DadtG2Nr.js","assets/ArtifactsPage-BLvAqQlQ.js","assets/code-DoB7rfxt.js","assets/search-b78eLlw2.js","assets/TreeBrowser-CVtPF5C9.js","assets/folder-B8ODoZfb.js","assets/circle-CjpslL_D.js","assets/circle-check-BIkDU5D5.js","assets/index-BL4h1OKY.js","assets/proxy-CcYyZZWI.js","assets/ChatPage-DYHfheXC.js","assets/rows-2-DP6NjQFk.js","assets/pencil-I7GE0y29.js","assets/trash-2-CVh9mnRj.js","assets/WorkflowPage-BoN18Lhs.js","assets/check-Bs8PM0tQ.js","assets/list-CI-XIPZh.js","assets/columns-3-Ch5KIyRa.js","assets/McpPage-Im6s4pGR.js","assets/pen-line-CR8GaHt-.js","assets/minus-BVbfXGrC.js","assets/SpecsPage-gr4KX51-.js","assets/TeamsPage-BxEXLb5g.js","assets/team-types-Se7f9LfJ.js","assets/arrow-left-C5ROg97G.js","assets/users-Da9zGME5.js","assets/loader-DpdMoQvh.js","assets/RequirementPage-_mO743Xm.js","assets/RequirementBoardPage-22y9u1qh.js","assets/MaestroCoordinatePage-BxwZ6yy5.js","assets/CollabPage-CSlmvEa-.js","assets/MeetingRoomPage-CxHRn1xx.js","assets/RoomsPage-CExTbOGr.js"])))=>i.map(i=>d[i]);
2
2
  function Yy(n,i){for(var s=0;s<i.length;s++){const r=i[s];if(typeof r!="string"&&!Array.isArray(r)){for(const d in r)if(d!=="default"&&!(d in n)){const f=Object.getOwnPropertyDescriptor(r,d);f&&Object.defineProperty(n,d,f.get?f:{enumerable:!0,get:()=>r[d]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))r(d);new MutationObserver(d=>{for(const f of d)if(f.type==="childList")for(const p of f.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&r(p)}).observe(document,{childList:!0,subtree:!0});function s(d){const f={};return d.integrity&&(f.integrity=d.integrity),d.referrerPolicy&&(f.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?f.credentials="include":d.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function r(d){if(d.ep)return;d.ep=!0;const f=s(d);fetch(d.href,f)}})();function ag(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var su={exports:{}},Us={};/**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.js
@@ -74,7 +74,7 @@ Error generating stack: `+l.message+`
74
74
  * LICENSE.md file in the root directory of this source tree.
75
75
  *
76
76
  * @license MIT
77
- */function zi(){return zi=Object.assign?Object.assign.bind():function(n){for(var i=1;i<arguments.length;i++){var s=arguments[i];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(n[r]=s[r])}return n},zi.apply(this,arguments)}function hg(n,i){if(n==null)return{};var s={},r=Object.keys(n),d,f;for(f=0;f<r.length;f++)d=r[f],!(i.indexOf(d)>=0)&&(s[d]=n[d]);return s}function e0(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function t0(n,i){return n.button===0&&(!i||i==="_self")&&!e0(n)}const a0=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],n0=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],l0="6";try{window.__reactRouterVersion=l0}catch{}const s0=v.createContext({isTransitioning:!1}),r0="startTransition",yh=Vu[r0];function i0(n){let{basename:i,children:s,future:r,window:d}=n,f=v.useRef();f.current==null&&(f.current=ib({window:d,v5Compat:!0}));let p=f.current,[h,x]=v.useState({action:p.action,location:p.location}),{v7_startTransition:g}=r||{},S=v.useCallback(b=>{g&&yh?yh(()=>x(b)):x(b)},[x,g]);return v.useLayoutEffect(()=>p.listen(S),[p,S]),v.useEffect(()=>Jb(r),[r]),v.createElement($b,{basename:i,children:s,location:h.location,navigationType:h.action,navigator:p,future:r})}const o0=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",c0=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,gg=v.forwardRef(function(i,s){let{onClick:r,relative:d,reloadDocument:f,replace:p,state:h,target:x,to:g,preventScrollReset:S,viewTransition:b}=i,E=hg(i,a0),{basename:w}=v.useContext(Ba),C,A=!1;if(typeof g=="string"&&c0.test(g)&&(C=g,o0))try{let Y=new URL(window.location.href),P=g.startsWith("//")?new URL(Y.protocol+g):new URL(g),Z=ql(P.pathname,w);P.origin===Y.origin&&Z!=null?g=Z+P.search+P.hash:A=!0}catch{}let O=Mb(g,{relative:d}),T=f0(g,{replace:p,state:h,target:x,preventScrollReset:S,relative:d,viewTransition:b});function X(Y){r&&r(Y),Y.defaultPrevented||T(Y)}return v.createElement("a",zi({},E,{href:C||O,onClick:A||f?r:X,ref:s,target:x}))}),u0=v.forwardRef(function(i,s){let{"aria-current":r="page",caseSensitive:d=!1,className:f="",end:p=!1,style:h,to:x,viewTransition:g,children:S}=i,b=hg(i,n0),E=qi(x,{relative:b.relative}),w=Ha(),C=v.useContext(cg),{navigator:A,basename:O}=v.useContext(Ba),T=C!=null&&m0(E)&&g===!0,X=A.encodeLocation?A.encodeLocation(E).pathname:E.pathname,Y=w.pathname,P=C&&C.navigation&&C.navigation.location?C.navigation.location.pathname:null;d||(Y=Y.toLowerCase(),P=P?P.toLowerCase():null,X=X.toLowerCase()),P&&O&&(P=ql(P,O)||P);const Z=X!=="/"&&X.endsWith("/")?X.length-1:X.length;let te=Y===X||!p&&Y.startsWith(X)&&Y.charAt(Z)==="/",H=P!=null&&(P===X||!p&&P.startsWith(X)&&P.charAt(X.length)==="/"),Q={isActive:te,isPending:H,isTransitioning:T},fe=te?r:void 0,He;typeof f=="function"?He=f(Q):He=[f,te?"active":null,H?"pending":null,T?"transitioning":null].filter(Boolean).join(" ");let Ae=typeof h=="function"?h(Q):h;return v.createElement(gg,zi({},b,{"aria-current":fe,className:He,ref:s,style:Ae,to:x,viewTransition:g}),typeof S=="function"?S(Q):S)});var Mu;(function(n){n.UseScrollRestoration="useScrollRestoration",n.UseSubmit="useSubmit",n.UseSubmitFetcher="useSubmitFetcher",n.UseFetcher="useFetcher",n.useViewTransitionState="useViewTransitionState"})(Mu||(Mu={}));var bh;(function(n){n.UseFetcher="useFetcher",n.UseFetchers="useFetchers",n.UseScrollRestoration="useScrollRestoration"})(bh||(bh={}));function d0(n){let i=v.useContext(Bi);return i||Ze(!1),i}function f0(n,i){let{target:s,replace:r,state:d,preventScrollReset:f,relative:p,viewTransition:h}=i===void 0?{}:i,x=Gi(),g=Ha(),S=qi(n,{relative:p});return v.useCallback(b=>{if(t0(b,s)){b.preventDefault();let E=r!==void 0?r:Ri(g)===Ri(S);x(n,{replace:E,state:d,preventScrollReset:f,relative:p,viewTransition:h})}},[g,x,S,r,d,s,n,f,p,h])}function m0(n,i){i===void 0&&(i={});let s=v.useContext(s0);s==null&&Ze(!1);let{basename:r}=d0(Mu.useViewTransitionState),d=qi(n,{relative:i.relative});if(!s.isTransitioning)return!1;let f=ql(s.currentLocation.pathname,r)||s.currentLocation.pathname,p=ql(s.nextLocation.pathname,r)||s.nextLocation.pathname;return Ou(d.pathname,p)!=null||Ou(d.pathname,f)!=null}const Sh=n=>{let i;const s=new Set,r=(g,S)=>{const b=typeof g=="function"?g(i):g;if(!Object.is(b,i)){const E=i;i=S??(typeof b!="object"||b===null)?b:Object.assign({},i,b),s.forEach(w=>w(i,E))}},d=()=>i,h={setState:r,getState:d,getInitialState:()=>x,subscribe:g=>(s.add(g),()=>s.delete(g))},x=i=n(r,d,h);return h},p0=(n=>n?Sh(n):Sh),h0=n=>n;function g0(n,i=h0){const s=Vs.useSyncExternalStore(n.subscribe,Vs.useCallback(()=>i(n.getState()),[n,i]),Vs.useCallback(()=>i(n.getInitialState()),[n,i]));return Vs.useDebugValue(s),s}const Eh=n=>{const i=p0(n),s=r=>g0(i,r);return Object.assign(s,i),s},_t=(n=>n?Eh(n):Eh);function pu(n){return Array.isArray(n)?n.map(i=>{if(typeof i=="string")return i;if(i&&typeof i=="object"){const s=i;if(typeof s.description=="string")return s.description;if(typeof s.requirement=="string")return s.requirement;if(typeof s.text=="string")return s.text;if(typeof s.id=="string")return`Gap ${s.id}`}return String(i)}):[]}function wh(n){const i=n,s=i.verification??{},r=i.validation??{},d=i.uat??{};return{...n,goal:n.goal??"",success_criteria:n.success_criteria??[],requirements:n.requirements??[],spec_ref:n.spec_ref??null,plan:n.plan??{task_ids:[],task_count:0,complexity:null,waves:[]},execution:n.execution??{method:"",started_at:null,completed_at:null,tasks_completed:0,tasks_total:0,current_wave:0,commits:[]},verification:{status:String(s.status??"pending"),verified_at:s.verified_at??null,must_haves:Array.isArray(s.must_haves)?s.must_haves:[],gaps:pu(s.gaps)},validation:{status:String(r.status??"pending"),test_coverage:typeof r.test_coverage=="number"||r.test_coverage&&typeof r.test_coverage=="object"?r.test_coverage:null,gaps:pu(r.gaps)},uat:{status:String(d.status??"pending"),test_count:typeof d.test_count=="number"?d.test_count:0,passed:typeof d.passed=="number"?d.passed:0,gaps:pu(d.gaps)},reflection:i.reflection??{rounds:0,strategy_adjustments:[]}}}const Vt=_t(n=>({board:null,connected:!1,selectedPhase:null,workspace:null,setBoard:i=>{i&&(i={...i,phases:i.phases.map(s=>wh(s))}),n({board:i})},updatePhase:(i,s)=>n(r=>{if(!r.board)return r;const d=r.board.phases.map(f=>f.phase===i?wh({...f,...s}):f);return{board:{...r.board,phases:d}}}),updateTask:(i,s)=>n(r=>{if(!r.board)return r;const d=r.board.phases.map(f=>f.plan.task_ids.indexOf(i)===-1?f:{...f,updated_at:new Date().toISOString()});return{board:{...r.board,phases:d}}}),setConnected:i=>n({connected:i}),setSelectedPhase:i=>n({selectedPhase:i}),setWorkspace:i=>n({workspace:i})})),ki={pollIntervalMs:3e4,maxConcurrentWorkers:3,stallTimeoutMs:3e5,maxRetries:2,retryBackoffMs:6e4,decisionModel:"sonnet",assessMaxTurns:5,autoApproveThreshold:"low",defaultExecutor:"claude-code",safety:{eventDebounceMs:5e3,circuitBreakerThreshold:3,maxTicksPerHour:120,maxTokensPerHour:5e5,protectedPaths:[".env",".env.*","*.key","*.pem","credentials.*"]},workspace:{enabled:!1,useWorktree:!0,autoCleanup:!0,strict:!1},profile:"development"},vg={"claude-code":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},codex:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},"codex-server":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},gemini:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},"gemini-a2a":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},qwen:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},opencode:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},"agent-sdk":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""}},vi={general:{theme:"system",language:"en",hiddenNavItems:["/maestro-coordinate","/requirement","/rooms"]},agents:vg,cliTools:"{}",linear:{apiKey:""},searchTool:"mcp__ace-tool__search_context",commander:ki};function Hs(n){return JSON.parse(JSON.stringify(n))}const pe=_t((n,i)=>({open:!1,activeSection:"general",config:null,draft:null,loading:!1,saving:!1,error:null,chineseResponse:null,setOpen:s=>{n({open:s}),s&&!i().config&&i().loadConfig()},setActiveSection:s=>n({activeSection:s}),loadConfig:async()=>{n({loading:!0,error:null});try{const s=await fetch("/api/settings");if(!s.ok)throw new Error(`Failed to load settings: ${s.status}`);const r=await s.json(),d=Object.fromEntries(Object.entries(vg).map(([S,b])=>{var E;return[S,{...b,...((E=r.agents)==null?void 0:E[S])||{}}]})),f=typeof r.searchTool=="string"?r.searchTool:vi.searchTool,p=r.commander,h={...ki,...p,safety:{...ki.safety,...p==null?void 0:p.safety},workspace:{...ki.workspace,...p==null?void 0:p.workspace}},x={...vi.general,...r.general},g={...vi,...r,general:x,agents:d,searchTool:f,commander:h};n({config:g,draft:Hs(g),loading:!1})}catch(s){const r=Hs(vi);n({config:r,draft:Hs(r),loading:!1,error:String(s)})}},updateDraft:(s,r)=>{const{draft:d}=i();d&&n({draft:{...d,[s]:r}})},saveConfig:async s=>{const{draft:r}=i();if(r){n({saving:!0,error:null});try{const d=s==="cliTools"?"/api/settings/cli-tools":s==="searchTool"?"/api/settings/search-tool":`/api/settings/${s}`,f=s==="searchTool"?{name:r[s]}:r[s],p=await fetch(d,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(typeof f=="string"?{content:f}:f)});if(!p.ok)throw new Error(`Failed to save: ${p.status}`);const{config:h}=i();if(h){const x={...h,[s]:Hs(r[s])};n({config:x,saving:!1})}else n({saving:!1})}catch(d){n({saving:!1,error:String(d)})}}},discardDraft:s=>{const{config:r,draft:d}=i();!r||!d||n({draft:{...d,[s]:Hs(r[s])}})},isDirty:s=>{const{config:r,draft:d}=i();return!r||!d?!1:JSON.stringify(r[s])!==JSON.stringify(d[s])},loadChineseResponse:async()=>{try{const s=await fetch("/api/language/chinese-response");if(!s.ok)return;const r=await s.json();n({chineseResponse:r})}catch{}},toggleChineseResponse:async(s,r)=>{try{const d=await fetch("/api/language/chinese-response",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:s,target:r})});if(!d.ok)throw new Error(`Failed: ${d.status}`);await i().loadChineseResponse()}catch(d){n({error:String(d)})}}}));function hu(n){return JSON.parse(JSON.stringify(n))}const ia=_t((n,i)=>({open:!1,config:null,draft:null,loading:!1,saving:!1,error:null,setOpen:s=>{n({open:s}),s&&!i().config&&i().loadConfig()},loadConfig:async()=>{n({loading:!0,error:null});try{const s=await fetch("/api/workflow-config");if(!s.ok)throw new Error(`Failed to load: ${s.status}`);const r=await s.json();n({config:r,draft:hu(r),loading:!1})}catch(s){n({config:null,draft:null,loading:!1,error:String(s)})}},updateDraft:(s,r)=>{const{draft:d}=i();d&&n({draft:{...d,[s]:r}})},save:async()=>{const{draft:s}=i();if(s){n({saving:!0,error:null});try{const r=await fetch("/api/workflow-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!r.ok)throw new Error(`Failed to save: ${r.status}`);n({config:hu(s),saving:!1})}catch(r){n({saving:!1,error:String(r)})}}},discard:()=>{const{config:s}=i();s&&n({draft:hu(s)})},isDirty:()=>{const{config:s,draft:r}=i();return!s||!r?!1:JSON.stringify(s)!==JSON.stringify(r)}})),xg=v.createContext({config:null,register:()=>{},unregister:()=>{}});function v0(){const[n,i]=v.useState(null),s=v.useCallback(d=>i(d),[]),r=v.useCallback(()=>i(null),[]);return{config:n,register:s,unregister:r}}function x0(){return v.useContext(xg).config}function y0(){const n=x0();return v.useEffect(()=>{if(!n)return;function i(s){if(s.target instanceof HTMLInputElement||s.target instanceof HTMLTextAreaElement)return;const r=parseInt(s.key,10);r>=1&&r<=n.items.length&&n.onSwitch(r-1)}return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[n]),!n||n.items.length===0?null:c.jsx("div",{className:"inline-flex items-center bg-bg-tertiary rounded-[10px] p-[3px] gap-[2px]",children:n.items.map((i,s)=>{const r=s===n.activeIndex;return c.jsxs("button",{type:"button",onClick:()=>n.onSwitch(s),className:["relative flex items-center gap-[var(--spacing-1-5)] px-[var(--spacing-3)] py-[var(--spacing-1)] rounded-[8px]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",r?"text-text-primary":"text-text-tertiary hover:text-text-secondary"].join(" "),children:[c.jsx("div",{className:"absolute inset-0 rounded-[8px] shadow-sm",style:{backgroundColor:r?"var(--color-bg-card)":"transparent",opacity:r?1:0,transition:"opacity 150ms ease, background-color 150ms ease"}}),c.jsxs("span",{className:"relative z-10 flex items-center gap-[var(--spacing-1-5)]",children:[c.jsx("span",{className:"w-[14px] h-[14px] flex items-center justify-center",children:i.icon}),c.jsx("span",{children:i.label}),c.jsx("kbd",{className:"text-[length:9px] text-text-placeholder font-mono ml-[var(--spacing-0-5)]",children:i.shortcut})]})]},i.label)})})}const yg="maestro.recentWorkspaces",b0=5;function S0(n){return n.split(/[\\/]/).filter(Boolean).at(-1)??n}function bg(){try{const n=localStorage.getItem(yg);if(!n)return[];const i=JSON.parse(n);return Array.isArray(i)?i:[]}catch{return[]}}function E0(n){try{localStorage.setItem(yg,JSON.stringify(n))}catch{}}function w0(n){const i=bg().filter(s=>s!==n);i.unshift(n),E0(i.slice(0,b0))}function j0(){const n=Vt(H=>H.workspace),i=Vt(H=>H.setWorkspace),[s,r]=v.useState(!1),[d,f]=v.useState(""),[p,h]=v.useState(null),[x,g]=v.useState(!1),[S,b]=v.useState([]),[E,w]=v.useState(!1),[C,A]=v.useState(null),[O,T]=v.useState(!1),X=v.useRef(null);v.useEffect(()=>{s&&(b(bg()),f(""),h(null),w(!1),A(null))},[s]),v.useEffect(()=>{if(!s)return;function H(Q){X.current&&!X.current.contains(Q.target)&&r(!1)}return document.addEventListener("mousedown",H),()=>document.removeEventListener("mousedown",H)},[s]);const Y=v.useCallback(async H=>{if(H.trim()){g(!0),h(null);try{const Q=await fetch("/api/workspace",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:H.trim()})});if(!Q.ok){const fe=await Q.json().catch(()=>({}));h(fe.error??`Error ${Q.status}`);return}w0(H.trim()),i(H.trim()),r(!1)}catch(Q){h(Q instanceof Error?Q.message:"Network error")}finally{g(!1)}}},[i]),P=v.useCallback(async H=>{T(!0);try{const Q=H?`/api/workspace/browse?path=${encodeURIComponent(H)}`:"/api/workspace/browse",fe=await fetch(Q);if(!fe.ok){h("Failed to browse directory");return}const He=await fe.json();A(He),w(!0)}catch{h("Failed to browse directory")}finally{T(!1)}},[]),Z=v.useCallback(H=>{H.key==="Escape"&&(E?w(!1):r(!1))},[E]),te=n?S0(n):"—";return c.jsxs("div",{ref:X,className:"relative flex items-center",onKeyDown:Z,children:[c.jsxs("button",{type:"button",onClick:()=>r(H=>!H),className:["flex items-center gap-[var(--spacing-1)] px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] text-text-secondary","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","hover:bg-bg-hover hover:text-text-primary","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),"aria-haspopup":"listbox","aria-expanded":s,children:[c.jsx("span",{className:"text-text-placeholder",children:"/"}),c.jsx("span",{className:"max-w-[160px] truncate",children:te}),c.jsx("span",{className:"text-[length:9px] text-text-placeholder ml-[2px]",children:"▼"})]}),s&&c.jsx("div",{role:"dialog","aria-label":"Switch workspace",className:["absolute top-full left-0 mt-[4px] w-[360px] z-50","bg-bg-secondary border border-border rounded-[var(--radius-md)]","shadow-[var(--shadow-lg,0_8px_24px_rgba(0,0,0,0.18))]","p-[var(--spacing-2)]"].join(" "),children:E&&C?c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)] mb-[var(--spacing-2)] px-[var(--spacing-1)]",children:[c.jsx("button",{type:"button",onClick:()=>w(!1),className:"text-[length:var(--font-size-xs)] text-text-secondary hover:text-text-primary px-[var(--spacing-1)] py-[2px] rounded-[var(--radius-sm)] hover:bg-bg-hover",children:"← Back"}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-placeholder truncate flex-1 text-right",children:C.current})]}),C.parent&&c.jsxs("button",{type:"button",onClick:()=>P(C.parent),disabled:O,className:["w-full text-left flex items-center gap-[var(--spacing-2)]","px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] text-text-secondary","transition-colors duration-[var(--duration-fast)]","hover:bg-bg-hover cursor-pointer"].join(" "),children:[c.jsx("span",{className:"text-text-placeholder text-[length:var(--font-size-xs)]",children:"📂"}),c.jsx("span",{children:".."})]}),c.jsx("div",{className:"max-h-[240px] overflow-y-auto",children:C.entries.length===0?c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-placeholder px-[var(--spacing-2)] py-[var(--spacing-2)] text-center",children:"No subdirectories"}):C.entries.map(H=>c.jsxs("div",{className:"flex items-center gap-[2px]",children:[c.jsxs("button",{type:"button",onClick:()=>P(H.path),disabled:O,className:["flex-1 text-left flex items-center gap-[var(--spacing-2)]","px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)]","transition-colors duration-[var(--duration-fast)]","hover:bg-bg-hover cursor-pointer",H.hasWorkflow?"text-text-primary":"text-text-secondary"].join(" "),children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)]",children:H.hasWorkflow?"📂":"📁"}),c.jsx("span",{className:"truncate",children:H.name}),H.hasWorkflow&&c.jsx("span",{className:"text-[length:9px] text-accent-blue bg-[rgba(55,120,220,0.1)] px-[4px] py-[1px] rounded-[3px] shrink-0",children:".workflow"})]}),H.hasWorkflow&&c.jsx("button",{type:"button",onClick:()=>Y(H.path),disabled:x,className:["shrink-0 px-[var(--spacing-1-5)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] text-accent-blue","hover:bg-[rgba(55,120,220,0.1)] cursor-pointer","transition-colors duration-[var(--duration-fast)]"].join(" "),children:"Open"})]},H.path))})]}):c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"mb-[var(--spacing-2)]",children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-placeholder px-[var(--spacing-2)] mb-[var(--spacing-1)]",children:"Recent"}),S.length>0?c.jsx("ul",{role:"listbox",children:S.map(H=>c.jsx("li",{children:c.jsxs("button",{type:"button",role:"option","aria-selected":H===n,onClick:()=>Y(H),disabled:x,className:["w-full text-left flex items-center gap-[var(--spacing-2)]","px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)]","transition-colors duration-[var(--duration-fast)]","hover:bg-bg-hover focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",H===n?"text-text-primary":"text-text-secondary",x?"opacity-50 cursor-not-allowed":"cursor-pointer"].join(" "),children:[c.jsx("span",{className:"text-text-placeholder text-[length:var(--font-size-xs)]",children:"📁"}),c.jsx("span",{className:"truncate flex-1",children:H}),H===n&&c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-placeholder shrink-0",children:"current"})]})},H))}):c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-placeholder px-[var(--spacing-2)] py-[var(--spacing-1)] italic",children:"No recent workspaces"}),c.jsx("div",{className:"border-t border-border mt-[var(--spacing-2)] mb-[var(--spacing-2)]"})]}),c.jsxs("div",{className:"px-[var(--spacing-1)] flex flex-col gap-[var(--spacing-2)]",children:[c.jsx("label",{className:"text-[length:var(--font-size-xs)] text-text-placeholder",children:"Path"}),c.jsxs("div",{className:"flex gap-[var(--spacing-1)]",children:[c.jsx("input",{type:"text",value:d,onChange:H=>f(H.target.value),onKeyDown:H=>{H.key==="Enter"&&Y(d)},placeholder:"/path/to/workspace",autoFocus:!0,className:["flex-1 min-w-0 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","bg-bg-tertiary border border-border","text-[length:var(--font-size-sm)] text-text-primary placeholder:text-text-placeholder","focus:outline-none focus:border-accent-blue","transition-colors duration-[var(--duration-fast)]"].join(" ")}),c.jsx("button",{type:"button",onClick:()=>P(d.trim()||void 0),disabled:O,title:"Browse folders",className:["shrink-0 flex items-center justify-center w-[32px] rounded-[var(--radius-sm)]","bg-bg-tertiary border border-border text-text-secondary","hover:bg-bg-hover hover:text-text-primary cursor-pointer","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),children:c.jsx("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})})})]}),p&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked px-[var(--spacing-1)]",children:p}),c.jsx("button",{type:"button",onClick:()=>Y(d),disabled:x||!d.trim(),className:["w-full px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","bg-bg-tertiary border border-border text-text-secondary","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",x||!d.trim()?"opacity-40 cursor-not-allowed":"hover:bg-bg-hover hover:text-text-primary cursor-pointer"].join(" "),children:x?"Switching...":"Switch workspace"})]})]})})]})}const Pj=[{id:"backlog",label:"Backlog",statuses:["not_started"]},{id:"triage",label:"Triage",statuses:[]},{id:"in-progress",label:"In Progress",statuses:["planning","executing"]},{id:"review",label:"Review",statuses:["verifying","reviewing"]},{id:"done",label:"Done",statuses:["completed","blocked"]},{id:"deferred",label:"Deferred",statuses:[]}],jh={HEALTH:"/api/health",BOARD:"/api/board",PROJECT:"/api/project",PHASES:"/api/phases",PHASE:"/api/phases/:n",PHASE_TASKS:"/api/phases/:n/tasks",ARTIFACTS:"/api/artifacts",SCRATCH:"/api/scratch",SETTINGS:"/api/settings",SETTINGS_GENERAL:"/api/settings/general",SETTINGS_AGENTS:"/api/settings/agents",SETTINGS_CLI_TOOLS:"/api/settings/cli-tools",SETTINGS_SPECS:"/api/settings/specs"},Zj={SPECS:"/api/specs",SPECS_FILES:"/api/specs/files",SPECS_FILE:"/api/specs/file/:name"},Jj={WIKI:"/api/wiki",WIKI_STATS:"/api/wiki/stats",WIKI_HEALTH:"/api/wiki/health",WIKI_GRAPH:"/api/wiki/graph",WIKI_ORPHANS:"/api/wiki/orphans",WIKI_HUBS:"/api/wiki/hubs",WIKI_DETAIL:"/api/wiki/:id",WIKI_BACKLINKS:"/api/wiki/:id/backlinks",WIKI_FORWARD:"/api/wiki/:id/forward"},Fj={CONFIG:"/api/mcp-config",TOGGLE:"/api/mcp-toggle",COPY_SERVER:"/api/mcp-copy-server",REMOVE_SERVER:"/api/mcp-remove-server",ADD_GLOBAL:"/api/mcp-add-global-server",REMOVE_GLOBAL:"/api/mcp-remove-global-server",UPDATE_SERVER:"/api/mcp-update-server",INSTALL_MAESTRO:"/api/mcp-install-maestro",CODEX_CONFIG:"/api/codex-mcp-config",CODEX_ADD:"/api/codex-mcp-add",CODEX_REMOVE:"/api/codex-mcp-remove",CODEX_TOGGLE:"/api/codex-mcp-toggle",TEMPLATES:"/api/mcp-templates",TEMPLATES_SEARCH:"/api/mcp-templates/search",TEMPLATES_CATEGORIES:"/api/mcp-templates/categories",TEMPLATES_INSTALL:"/api/mcp-templates/install",DETECT_COMMANDS:"/api/mcp/detect-commands"},ge={AGENT_SPAWNED:"agent:spawned",AGENT_ENTRY:"agent:entry",AGENT_APPROVAL:"agent:approval",AGENT_STATUS:"agent:status",AGENT_STOPPED:"agent:stopped",AGENT_THOUGHT:"agent:thought",AGENT_STREAMING:"agent:streaming",EXECUTION_STARTED:"execution:started",EXECUTION_COMPLETED:"execution:completed",EXECUTION_FAILED:"execution:failed",EXECUTION_SCHEDULER_STATUS:"execution:scheduler_status",SUPERVISOR_STATUS:"supervisor:status",COMMANDER_STATUS:"commander:status",COMMANDER_DECISION:"commander:decision",COORDINATE_STATUS:"coordinate:status",COORDINATE_STEP:"coordinate:step",COORDINATE_ANALYSIS:"coordinate:analysis",COORDINATE_CLARIFICATION_NEEDED:"coordinate:clarification_needed",REQUIREMENT_EXPANDED:"requirement:expanded",REQUIREMENT_COMMITTED:"requirement:committed",REQUIREMENT_PROGRESS:"requirement:progress",BOARD_FULL:"board:full",PHASE_UPDATED:"phase:updated",TASK_UPDATED:"task:updated",PROJECT_UPDATED:"project:updated",HEARTBEAT:"heartbeat",CONNECTED:"connected",TEAM_MESSAGE:"team:message",TEAM_DISPATCH:"team:dispatch",TEAM_PHASE:"team:phase",TEAM_AGENT_STATUS:"team:agent_status",ROOM_CREATED:"room:created",ROOM_CLOSED:"room:closed",ROOM_AGENT_JOINED:"room:agent_joined",ROOM_AGENT_LEFT:"room:agent_left",ROOM_AGENT_STATUS:"room:agent_status",ROOM_MESSAGE:"room:message",ROOM_BROADCAST:"room:broadcast",ROOM_TASK_CREATED:"room:task_created",ROOM_TASK_UPDATED:"room:task_updated",ROOM_SNAPSHOT:"room:snapshot"},Gs={ISSUES:"/api/issues",ISSUE:"/api/issues/:id"},gu={STATUS:"/api/linear/status",TEAMS:"/api/linear/teams",BOARD:"/api/linear/board",IMPORT:"/api/linear/import",EXPORT:"/api/linear/export"},vu={SESSIONS:"/api/teams/sessions",SESSION:"/api/teams/sessions/:sessionId",SESSION_MESSAGES:"/api/teams/sessions/:sessionId/messages",SESSION_FILE:"/api/teams/sessions/:sessionId/files"},Rl={MEMBERS:"/api/collab/members",ACTIVITY:"/api/collab/activity",STATUS:"/api/collab/status",AGGREGATED:"/api/collab/activity/aggregated",PREFLIGHT:"/api/collab/preflight"},$j={DETECT:"/api/install/detect",EXECUTE:"/api/install/execute",MANIFESTS:"/api/install/manifests",ADDONS:"/api/install/addons",ADDON_INSTALL:"/api/install/addon"},Sg={not_started:"#A09D97",planning:"#9178B5",executing:"#B89540",verifying:"#C8863A",reviewing:"#5B8DB8",completed:"#5A9E78",blocked:"#C46555"},Eg={"claude-code":"var(--color-accent-purple)",codex:"var(--color-accent-green)","codex-server":"var(--color-accent-green)",gemini:"var(--color-accent-blue)","gemini-a2a":"var(--color-accent-blue)",qwen:"var(--color-accent-orange)",opencode:"var(--color-text-tertiary)","agent-sdk":"var(--color-accent-purple)"},Wj={"claude-code":"Claude Code",codex:"Codex","codex-server":"Codex Server",gemini:"Gemini","gemini-a2a":"Gemini (A2A)",qwen:"Qwen",opencode:"OpenCode","agent-sdk":"Agent SDK"},e2={open:"#A09D97",registered:"#C8863A",analyzing:"#5B8DB8",planned:"#9178B5",in_progress:"#B89540",resolved:"#5A9E78",closed:"#6B6966",deferred:"#8B8685"};function t2(n){switch(n.status){case"closed":return"closed";case"resolved":return"resolved";case"in_progress":return"in_progress";case"deferred":return"deferred";case"registered":return n.solution?"planned":n.analysis?"analyzing":"registered";case"open":return n.solution?"planned":n.analysis?"analyzing":"open";default:return"open"}}const xi=_t((n,i)=>({members:[],activity:[],presence:[],aggregated:[],tasks:[],loading:!1,error:null,activeTab:"overview",statusFilter:"all",typeFilter:"all",memberFilter:"all",taskStatusFilter:"all",taskAssigneeFilter:"all",selectedTaskId:null,fetchMembers:async()=>{n({loading:!0,error:null});try{const s=await fetch(Rl.MEMBERS);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({members:r,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},fetchActivity:async(s,r)=>{n({loading:!0,error:null});try{const d=new URLSearchParams;s!==void 0&&d.set("limit",String(s)),r!==void 0&&d.set("since",r);const f=d.toString(),p=f?`${Rl.ACTIVITY}?${f}`:Rl.ACTIVITY,h=await fetch(p);if(!h.ok)throw new Error(`Failed: ${h.status}`);const x=await h.json();n({activity:x,loading:!1})}catch(d){n({loading:!1,error:String(d)})}},fetchPresence:async()=>{n({loading:!0,error:null});try{const s=await fetch(Rl.STATUS);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json(),d=Array.isArray(r)?r:r.members??[];n({presence:d,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},fetchAggregated:async()=>{n({loading:!0,error:null});try{const s=await fetch(Rl.AGGREGATED);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({aggregated:r,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},fetchPreflight:async()=>{try{const s=await fetch(Rl.PREFLIGHT);if(!s.ok)throw new Error(`Failed: ${s.status}`);return await s.json()}catch(s){return n({error:String(s)}),null}},fetchTasks:async()=>{try{const s=await fetch("/api/collab/tasks");if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({tasks:r})}catch{}},createTask:async(s,r,d,f)=>{try{const p=await fetch("/api/collab/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:s,description:r,priority:d,tags:f})}),h=await p.json();return p.ok?(await i().fetchTasks(),{success:!0}):{success:!1,error:h.error??`HTTP ${p.status}`}}catch(p){return{success:!1,error:String(p)}}},updateTaskStatus:async(s,r)=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:r})}),await i().fetchTasks()}catch{}},assignTask:async(s,r)=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({assignee:r})}),await i().fetchTasks()}catch{}},deleteTask:async s=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}`,{method:"DELETE"}),await i().fetchTasks()}catch{}},addTaskCheck:async(s,r,d)=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}/checks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:r,comment:d})}),await i().fetchTasks()}catch{}},initCollab:async()=>{try{const s=await fetch("/api/collab/init",{method:"POST"}),r=await s.json();return s.ok?{success:!0}:{success:!1,error:r.error??`HTTP ${s.status}`}}catch(s){return{success:!1,error:String(s)}}},disableCollab:async()=>{try{const s=await fetch("/api/collab/disable",{method:"POST"}),r=await s.json();return s.ok?(i().clearAll(),{success:!0}):{success:!1,error:r.error??`HTTP ${s.status}`}}catch(s){return{success:!1,error:String(s)}}},addMember:async(s,r,d)=>{try{const f=await fetch("/api/collab/members",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s,email:r||"",role:d||"member"})}),p=await f.json();return f.ok?(await i().fetchMembers(),{success:!0}):{success:!1,error:p.error??`HTTP ${f.status}`}}catch(f){return{success:!1,error:String(f)}}},removeMember:async s=>{try{const r=await fetch(`/api/collab/members/${encodeURIComponent(s)}`,{method:"DELETE"}),d=await r.json();return r.ok?(await i().fetchMembers(),{success:!0}):{success:!1,error:d.error??`HTTP ${r.status}`}}catch(r){return{success:!1,error:String(r)}}},setActiveTab:s=>n({activeTab:s}),setStatusFilter:s=>n({statusFilter:s}),setTypeFilter:s=>n({typeFilter:s}),setMemberFilter:s=>n({memberFilter:s}),setTaskStatusFilter:s=>n({taskStatusFilter:s}),setTaskAssigneeFilter:s=>n({taskAssigneeFilter:s}),setSelectedTaskId:s=>n({selectedTaskId:s}),filteredMembers:()=>{const{members:s,statusFilter:r}=i();return r==="all"?s:s.filter(d=>d.status===r)},filteredActivity:()=>{const{activity:s,typeFilter:r,memberFilter:d}=i();let f=s;return r!=="all"&&(f=f.filter(p=>p.action===r)),d!=="all"&&(f=f.filter(p=>p.user===d)),f},recentActivity:s=>{const{activity:r}=i();return r.slice(-s)},tasksByColumn:()=>{const{tasks:s,taskStatusFilter:r,taskAssigneeFilter:d}=i(),f=new Map;for(const p of s){if(r!=="all"&&p.status!==r||d===""&&p.assignee!==null||d!=="all"&&d!==""&&p.assignee!==d)continue;const h=f.get(p.status);h?h.push(p):f.set(p.status,[p])}return f},clearAll:()=>n({members:[],activity:[],presence:[],aggregated:[],tasks:[],loading:!1,error:null,activeTab:"overview",statusFilter:"all",typeFilter:"all",memberFilter:"all",taskStatusFilter:"all",taskAssigneeFilter:"all",selectedTaskId:null})})),N0={online:"#22c55e",offline:"#9ca3af",away:"#eab308"},a2={join:"#22c55e",phase_change:"#a78bfa",task_update:"#34d399",message:"#60a5fa",discussion:"#60a5fa",report:"#f59e0b",sync:"#06b6d4"},Nh=4,yi=32,_h=-8,_0=6e4,Ch=N0;function C0(){const n=xi(b=>b.presence),i=xi(b=>b.fetchPreflight),s=xi(b=>b.fetchPresence),r=xi(b=>b.disableCollab),[d,f]=v.useState(null),[p,h]=v.useState(!1);if(v.useEffect(()=>{let b=!1;return(async()=>{const E=await i();if(b)return;const w=(E==null?void 0:E.exists)??!1;f(w),w&&s()})(),()=>{b=!0}},[]),v.useEffect(()=>{if(!d)return;const b=setInterval(()=>{s()},_0);return()=>clearInterval(b)},[d,s]),!d||n.length===0)return null;const x=n.slice(0,Nh),g=n.length-Nh;async function S(){h(!1),(await r()).success&&f(!1)}return c.jsxs("div",{className:"relative flex items-center flex-shrink-0",children:[c.jsxs("button",{type:"button",onClick:()=>h(b=>!b),className:"flex items-center cursor-pointer",role:"group","aria-label":"Online members",children:[x.map((b,E)=>c.jsxs("div",{title:`${b.name} — ${b.status}`,className:"relative rounded-full border-2 border-bg-secondary",style:{width:yi,height:yi,marginLeft:E===0?0:_h,backgroundColor:"#6b7280",zIndex:x.length-E},children:[c.jsx("span",{className:"absolute inset-0 flex items-center justify-center text-white text-[10px] font-semibold select-none",children:b.name.charAt(0).toUpperCase()}),c.jsx("span",{className:"absolute bottom-0 right-0 w-2 h-2 rounded-full border-[1.5px] border-bg-secondary",style:{backgroundColor:Ch[b.status]}})]},b.uid)),g>0&&c.jsx("div",{className:"relative flex items-center justify-center rounded-full border-2 border-bg-secondary bg-bg-hover",style:{width:yi,height:yi,marginLeft:_h,zIndex:0},children:c.jsxs("span",{className:"text-text-secondary text-[9px] font-semibold",children:["+",g]})})]}),p&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>h(!1)}),c.jsxs("div",{className:"absolute right-0 top-full mt-1 z-50 min-w-[180px] rounded-[var(--radius-md,6px)] border border-border bg-bg-primary shadow-lg py-1",children:[c.jsxs("div",{className:"px-3 py-1.5 text-[10px] text-text-quaternary uppercase tracking-wider",children:["Team (",n.length,")"]}),n.map(b=>c.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5",children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{backgroundColor:Ch[b.status]}}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-primary truncate",children:b.name}),c.jsx("span",{className:"text-[10px] text-text-quaternary ml-auto",children:b.status})]},b.uid)),c.jsx("div",{className:"h-px bg-border my-1"}),c.jsx("button",{type:"button",onClick:S,className:"w-full text-left px-3 py-1.5 text-[length:var(--font-size-xs)] text-accent-red hover:bg-bg-hover transition-colors",children:"Disable Team Mode"})]})]})]})}function wg(n){var i,s,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n)){var d=n.length;for(i=0;i<d;i++)n[i]&&(s=wg(n[i]))&&(r&&(r+=" "),r+=s)}else for(s in n)n[s]&&(r&&(r+=" "),r+=s);return r}function T0(){for(var n,i,s=0,r="",d=arguments.length;s<d;s++)(n=arguments[s])&&(i=wg(n))&&(r&&(r+=" "),r+=i);return r}const A0=(n,i)=>{const s=new Array(n.length+i.length);for(let r=0;r<n.length;r++)s[r]=n[r];for(let r=0;r<i.length;r++)s[n.length+r]=i[r];return s},k0=(n,i)=>({classGroupId:n,validator:i}),jg=(n=new Map,i=null,s)=>({nextPart:n,validators:i,classGroupId:s}),Li="-",Th=[],O0="arbitrary..",D0=n=>{const i=R0(n),{conflictingClassGroups:s,conflictingClassGroupModifiers:r}=n;return{getClassGroupId:p=>{if(p.startsWith("[")&&p.endsWith("]"))return M0(p);const h=p.split(Li),x=h[0]===""&&h.length>1?1:0;return Ng(h,x,i)},getConflictingClassGroupIds:(p,h)=>{if(h){const x=r[p],g=s[p];return x?g?A0(g,x):x:g||Th}return s[p]||Th}}},Ng=(n,i,s)=>{if(n.length-i===0)return s.classGroupId;const d=n[i],f=s.nextPart.get(d);if(f){const g=Ng(n,i+1,f);if(g)return g}const p=s.validators;if(p===null)return;const h=i===0?n.join(Li):n.slice(i).join(Li),x=p.length;for(let g=0;g<x;g++){const S=p[g];if(S.validator(h))return S.classGroupId}},M0=n=>n.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const i=n.slice(1,-1),s=i.indexOf(":"),r=i.slice(0,s);return r?O0+r:void 0})(),R0=n=>{const{theme:i,classGroups:s}=n;return z0(s,i)},z0=(n,i)=>{const s=jg();for(const r in n){const d=n[r];Zu(d,s,r,i)}return s},Zu=(n,i,s,r)=>{const d=n.length;for(let f=0;f<d;f++){const p=n[f];L0(p,i,s,r)}},L0=(n,i,s,r)=>{if(typeof n=="string"){U0(n,i,s);return}if(typeof n=="function"){B0(n,i,s,r);return}H0(n,i,s,r)},U0=(n,i,s)=>{const r=n===""?i:_g(i,n);r.classGroupId=s},B0=(n,i,s,r)=>{if(G0(n)){Zu(n(r),i,s,r);return}i.validators===null&&(i.validators=[]),i.validators.push(k0(s,n))},H0=(n,i,s,r)=>{const d=Object.entries(n),f=d.length;for(let p=0;p<f;p++){const[h,x]=d[p];Zu(x,_g(i,h),s,r)}},_g=(n,i)=>{let s=n;const r=i.split(Li),d=r.length;for(let f=0;f<d;f++){const p=r[f];let h=s.nextPart.get(p);h||(h=jg(),s.nextPart.set(p,h)),s=h}return s},G0=n=>"isThemeGetter"in n&&n.isThemeGetter===!0,q0=n=>{if(n<1)return{get:()=>{},set:()=>{}};let i=0,s=Object.create(null),r=Object.create(null);const d=(f,p)=>{s[f]=p,i++,i>n&&(i=0,r=s,s=Object.create(null))};return{get(f){let p=s[f];if(p!==void 0)return p;if((p=r[f])!==void 0)return d(f,p),p},set(f,p){f in s?s[f]=p:d(f,p)}}},Ru="!",Ah=":",I0=[],kh=(n,i,s,r,d)=>({modifiers:n,hasImportantModifier:i,baseClassName:s,maybePostfixModifierPosition:r,isExternal:d}),K0=n=>{const{prefix:i,experimentalParseClassName:s}=n;let r=d=>{const f=[];let p=0,h=0,x=0,g;const S=d.length;for(let A=0;A<S;A++){const O=d[A];if(p===0&&h===0){if(O===Ah){f.push(d.slice(x,A)),x=A+1;continue}if(O==="/"){g=A;continue}}O==="["?p++:O==="]"?p--:O==="("?h++:O===")"&&h--}const b=f.length===0?d:d.slice(x);let E=b,w=!1;b.endsWith(Ru)?(E=b.slice(0,-1),w=!0):b.startsWith(Ru)&&(E=b.slice(1),w=!0);const C=g&&g>x?g-x:void 0;return kh(f,w,E,C)};if(i){const d=i+Ah,f=r;r=p=>p.startsWith(d)?f(p.slice(d.length)):kh(I0,!1,p,void 0,!0)}if(s){const d=r;r=f=>s({className:f,parseClassName:d})}return r},Y0=n=>{const i=new Map;return n.orderSensitiveModifiers.forEach((s,r)=>{i.set(s,1e6+r)}),s=>{const r=[];let d=[];for(let f=0;f<s.length;f++){const p=s[f],h=p[0]==="[",x=i.has(p);h||x?(d.length>0&&(d.sort(),r.push(...d),d=[]),r.push(p)):d.push(p)}return d.length>0&&(d.sort(),r.push(...d)),r}},V0=n=>({cache:q0(n.cacheSize),parseClassName:K0(n),sortModifiers:Y0(n),...D0(n)}),X0=/\s+/,Q0=(n,i)=>{const{parseClassName:s,getClassGroupId:r,getConflictingClassGroupIds:d,sortModifiers:f}=i,p=[],h=n.trim().split(X0);let x="";for(let g=h.length-1;g>=0;g-=1){const S=h[g],{isExternal:b,modifiers:E,hasImportantModifier:w,baseClassName:C,maybePostfixModifierPosition:A}=s(S);if(b){x=S+(x.length>0?" "+x:x);continue}let O=!!A,T=r(O?C.substring(0,A):C);if(!T){if(!O){x=S+(x.length>0?" "+x:x);continue}if(T=r(C),!T){x=S+(x.length>0?" "+x:x);continue}O=!1}const X=E.length===0?"":E.length===1?E[0]:f(E).join(":"),Y=w?X+Ru:X,P=Y+T;if(p.indexOf(P)>-1)continue;p.push(P);const Z=d(T,O);for(let te=0;te<Z.length;++te){const H=Z[te];p.push(Y+H)}x=S+(x.length>0?" "+x:x)}return x},P0=(...n)=>{let i=0,s,r,d="";for(;i<n.length;)(s=n[i++])&&(r=Cg(s))&&(d&&(d+=" "),d+=r);return d},Cg=n=>{if(typeof n=="string")return n;let i,s="";for(let r=0;r<n.length;r++)n[r]&&(i=Cg(n[r]))&&(s&&(s+=" "),s+=i);return s},Z0=(n,...i)=>{let s,r,d,f;const p=x=>{const g=i.reduce((S,b)=>b(S),n());return s=V0(g),r=s.cache.get,d=s.cache.set,f=h,h(x)},h=x=>{const g=r(x);if(g)return g;const S=Q0(x,s);return d(x,S),S};return f=p,(...x)=>f(P0(...x))},J0=[],ct=n=>{const i=s=>s[n]||J0;return i.isThemeGetter=!0,i},Tg=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ag=/^\((?:(\w[\w-]*):)?(.+)\)$/i,F0=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,$0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,W0=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,e1=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,t1=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,a1=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mn=n=>F0.test(n),ye=n=>!!n&&!Number.isNaN(Number(n)),pn=n=>!!n&&Number.isInteger(Number(n)),xu=n=>n.endsWith("%")&&ye(n.slice(0,-1)),La=n=>$0.test(n),kg=()=>!0,n1=n=>W0.test(n)&&!e1.test(n),Ju=()=>!1,l1=n=>t1.test(n),s1=n=>a1.test(n),r1=n=>!le(n)&&!se(n),i1=n=>bn(n,Mg,Ju),le=n=>Tg.test(n),Gn=n=>bn(n,Rg,n1),Oh=n=>bn(n,h1,ye),o1=n=>bn(n,Lg,kg),c1=n=>bn(n,zg,Ju),Dh=n=>bn(n,Og,Ju),u1=n=>bn(n,Dg,s1),bi=n=>bn(n,Ug,l1),se=n=>Ag.test(n),qs=n=>Xn(n,Rg),d1=n=>Xn(n,zg),Mh=n=>Xn(n,Og),f1=n=>Xn(n,Mg),m1=n=>Xn(n,Dg),Si=n=>Xn(n,Ug,!0),p1=n=>Xn(n,Lg,!0),bn=(n,i,s)=>{const r=Tg.exec(n);return r?r[1]?i(r[1]):s(r[2]):!1},Xn=(n,i,s=!1)=>{const r=Ag.exec(n);return r?r[1]?i(r[1]):s:!1},Og=n=>n==="position"||n==="percentage",Dg=n=>n==="image"||n==="url",Mg=n=>n==="length"||n==="size"||n==="bg-size",Rg=n=>n==="length",h1=n=>n==="number",zg=n=>n==="family-name",Lg=n=>n==="number"||n==="weight",Ug=n=>n==="shadow",g1=()=>{const n=ct("color"),i=ct("font"),s=ct("text"),r=ct("font-weight"),d=ct("tracking"),f=ct("leading"),p=ct("breakpoint"),h=ct("container"),x=ct("spacing"),g=ct("radius"),S=ct("shadow"),b=ct("inset-shadow"),E=ct("text-shadow"),w=ct("drop-shadow"),C=ct("blur"),A=ct("perspective"),O=ct("aspect"),T=ct("ease"),X=ct("animate"),Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],P=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Z=()=>[...P(),se,le],te=()=>["auto","hidden","clip","visible","scroll"],H=()=>["auto","contain","none"],Q=()=>[se,le,x],fe=()=>[mn,"full","auto",...Q()],He=()=>[pn,"none","subgrid",se,le],Ae=()=>["auto",{span:["full",pn,se,le]},pn,se,le],ze=()=>[pn,"auto",se,le],F=()=>["auto","min","max","fr",se,le],Te=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],qe=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...Q()],J=()=>[mn,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...Q()],ie=()=>[mn,"screen","full","dvw","lvw","svw","min","max","fit",...Q()],be=()=>[mn,"screen","full","lh","dvh","lvh","svh","min","max","fit",...Q()],$=()=>[n,se,le],N=()=>[...P(),Mh,Dh,{position:[se,le]}],I=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ee=()=>["auto","cover","contain",f1,i1,{size:[se,le]}],D=()=>[xu,qs,Gn],B=()=>["","none","full",g,se,le],q=()=>["",ye,qs,Gn],ae=()=>["solid","dashed","dotted","double"],Se=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],oe=()=>[ye,xu,Mh,Dh],Ie=()=>["","none",C,se,le],je=()=>["none",ye,se,le],Qe=()=>["none",ye,se,le],it=()=>[ye,se,le],$e=()=>[mn,"full",...Q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[La],breakpoint:[La],color:[kg],container:[La],"drop-shadow":[La],ease:["in","out","in-out"],font:[r1],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[La],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[La],shadow:[La],spacing:["px",ye],text:[La],"text-shadow":[La],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",mn,le,se,O]}],container:["container"],columns:[{columns:[ye,le,se,h]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Z()}],overflow:[{overflow:te()}],"overflow-x":[{"overflow-x":te()}],"overflow-y":[{"overflow-y":te()}],overscroll:[{overscroll:H()}],"overscroll-x":[{"overscroll-x":H()}],"overscroll-y":[{"overscroll-y":H()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:fe()}],"inset-x":[{"inset-x":fe()}],"inset-y":[{"inset-y":fe()}],start:[{"inset-s":fe(),start:fe()}],end:[{"inset-e":fe(),end:fe()}],"inset-bs":[{"inset-bs":fe()}],"inset-be":[{"inset-be":fe()}],top:[{top:fe()}],right:[{right:fe()}],bottom:[{bottom:fe()}],left:[{left:fe()}],visibility:["visible","invisible","collapse"],z:[{z:[pn,"auto",se,le]}],basis:[{basis:[mn,"full","auto",h,...Q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ye,mn,"auto","initial","none",le]}],grow:[{grow:["",ye,se,le]}],shrink:[{shrink:["",ye,se,le]}],order:[{order:[pn,"first","last","none",se,le]}],"grid-cols":[{"grid-cols":He()}],"col-start-end":[{col:Ae()}],"col-start":[{"col-start":ze()}],"col-end":[{"col-end":ze()}],"grid-rows":[{"grid-rows":He()}],"row-start-end":[{row:Ae()}],"row-start":[{"row-start":ze()}],"row-end":[{"row-end":ze()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":F()}],"auto-rows":[{"auto-rows":F()}],gap:[{gap:Q()}],"gap-x":[{"gap-x":Q()}],"gap-y":[{"gap-y":Q()}],"justify-content":[{justify:[...Te(),"normal"]}],"justify-items":[{"justify-items":[...qe(),"normal"]}],"justify-self":[{"justify-self":["auto",...qe()]}],"align-content":[{content:["normal",...Te()]}],"align-items":[{items:[...qe(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...qe(),{baseline:["","last"]}]}],"place-content":[{"place-content":Te()}],"place-items":[{"place-items":[...qe(),"baseline"]}],"place-self":[{"place-self":["auto",...qe()]}],p:[{p:Q()}],px:[{px:Q()}],py:[{py:Q()}],ps:[{ps:Q()}],pe:[{pe:Q()}],pbs:[{pbs:Q()}],pbe:[{pbe:Q()}],pt:[{pt:Q()}],pr:[{pr:Q()}],pb:[{pb:Q()}],pl:[{pl:Q()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mbs:[{mbs:L()}],mbe:[{mbe:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":Q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":Q()}],"space-y-reverse":["space-y-reverse"],size:[{size:J()}],"inline-size":[{inline:["auto",...ie()]}],"min-inline-size":[{"min-inline":["auto",...ie()]}],"max-inline-size":[{"max-inline":["none",...ie()]}],"block-size":[{block:["auto",...be()]}],"min-block-size":[{"min-block":["auto",...be()]}],"max-block-size":[{"max-block":["none",...be()]}],w:[{w:[h,"screen",...J()]}],"min-w":[{"min-w":[h,"screen","none",...J()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[p]},...J()]}],h:[{h:["screen","lh",...J()]}],"min-h":[{"min-h":["screen","lh","none",...J()]}],"max-h":[{"max-h":["screen","lh",...J()]}],"font-size":[{text:["base",s,qs,Gn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,p1,o1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",xu,le]}],"font-family":[{font:[d1,c1,i]}],"font-features":[{"font-features":[le]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[d,se,le]}],"line-clamp":[{"line-clamp":[ye,"none",se,Oh]}],leading:[{leading:[f,...Q()]}],"list-image":[{"list-image":["none",se,le]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",se,le]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:$()}],"text-color":[{text:$()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[ye,"from-font","auto",se,Gn]}],"text-decoration-color":[{decoration:$()}],"underline-offset":[{"underline-offset":[ye,"auto",se,le]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:Q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",se,le]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",se,le]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:N()}],"bg-repeat":[{bg:I()}],"bg-size":[{bg:ee()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},pn,se,le],radial:["",se,le],conic:[pn,se,le]},m1,u1]}],"bg-color":[{bg:$()}],"gradient-from-pos":[{from:D()}],"gradient-via-pos":[{via:D()}],"gradient-to-pos":[{to:D()}],"gradient-from":[{from:$()}],"gradient-via":[{via:$()}],"gradient-to":[{to:$()}],rounded:[{rounded:B()}],"rounded-s":[{"rounded-s":B()}],"rounded-e":[{"rounded-e":B()}],"rounded-t":[{"rounded-t":B()}],"rounded-r":[{"rounded-r":B()}],"rounded-b":[{"rounded-b":B()}],"rounded-l":[{"rounded-l":B()}],"rounded-ss":[{"rounded-ss":B()}],"rounded-se":[{"rounded-se":B()}],"rounded-ee":[{"rounded-ee":B()}],"rounded-es":[{"rounded-es":B()}],"rounded-tl":[{"rounded-tl":B()}],"rounded-tr":[{"rounded-tr":B()}],"rounded-br":[{"rounded-br":B()}],"rounded-bl":[{"rounded-bl":B()}],"border-w":[{border:q()}],"border-w-x":[{"border-x":q()}],"border-w-y":[{"border-y":q()}],"border-w-s":[{"border-s":q()}],"border-w-e":[{"border-e":q()}],"border-w-bs":[{"border-bs":q()}],"border-w-be":[{"border-be":q()}],"border-w-t":[{"border-t":q()}],"border-w-r":[{"border-r":q()}],"border-w-b":[{"border-b":q()}],"border-w-l":[{"border-l":q()}],"divide-x":[{"divide-x":q()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":q()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ae(),"hidden","none"]}],"divide-style":[{divide:[...ae(),"hidden","none"]}],"border-color":[{border:$()}],"border-color-x":[{"border-x":$()}],"border-color-y":[{"border-y":$()}],"border-color-s":[{"border-s":$()}],"border-color-e":[{"border-e":$()}],"border-color-bs":[{"border-bs":$()}],"border-color-be":[{"border-be":$()}],"border-color-t":[{"border-t":$()}],"border-color-r":[{"border-r":$()}],"border-color-b":[{"border-b":$()}],"border-color-l":[{"border-l":$()}],"divide-color":[{divide:$()}],"outline-style":[{outline:[...ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ye,se,le]}],"outline-w":[{outline:["",ye,qs,Gn]}],"outline-color":[{outline:$()}],shadow:[{shadow:["","none",S,Si,bi]}],"shadow-color":[{shadow:$()}],"inset-shadow":[{"inset-shadow":["none",b,Si,bi]}],"inset-shadow-color":[{"inset-shadow":$()}],"ring-w":[{ring:q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:$()}],"ring-offset-w":[{"ring-offset":[ye,Gn]}],"ring-offset-color":[{"ring-offset":$()}],"inset-ring-w":[{"inset-ring":q()}],"inset-ring-color":[{"inset-ring":$()}],"text-shadow":[{"text-shadow":["none",E,Si,bi]}],"text-shadow-color":[{"text-shadow":$()}],opacity:[{opacity:[ye,se,le]}],"mix-blend":[{"mix-blend":[...Se(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Se()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ye]}],"mask-image-linear-from-pos":[{"mask-linear-from":oe()}],"mask-image-linear-to-pos":[{"mask-linear-to":oe()}],"mask-image-linear-from-color":[{"mask-linear-from":$()}],"mask-image-linear-to-color":[{"mask-linear-to":$()}],"mask-image-t-from-pos":[{"mask-t-from":oe()}],"mask-image-t-to-pos":[{"mask-t-to":oe()}],"mask-image-t-from-color":[{"mask-t-from":$()}],"mask-image-t-to-color":[{"mask-t-to":$()}],"mask-image-r-from-pos":[{"mask-r-from":oe()}],"mask-image-r-to-pos":[{"mask-r-to":oe()}],"mask-image-r-from-color":[{"mask-r-from":$()}],"mask-image-r-to-color":[{"mask-r-to":$()}],"mask-image-b-from-pos":[{"mask-b-from":oe()}],"mask-image-b-to-pos":[{"mask-b-to":oe()}],"mask-image-b-from-color":[{"mask-b-from":$()}],"mask-image-b-to-color":[{"mask-b-to":$()}],"mask-image-l-from-pos":[{"mask-l-from":oe()}],"mask-image-l-to-pos":[{"mask-l-to":oe()}],"mask-image-l-from-color":[{"mask-l-from":$()}],"mask-image-l-to-color":[{"mask-l-to":$()}],"mask-image-x-from-pos":[{"mask-x-from":oe()}],"mask-image-x-to-pos":[{"mask-x-to":oe()}],"mask-image-x-from-color":[{"mask-x-from":$()}],"mask-image-x-to-color":[{"mask-x-to":$()}],"mask-image-y-from-pos":[{"mask-y-from":oe()}],"mask-image-y-to-pos":[{"mask-y-to":oe()}],"mask-image-y-from-color":[{"mask-y-from":$()}],"mask-image-y-to-color":[{"mask-y-to":$()}],"mask-image-radial":[{"mask-radial":[se,le]}],"mask-image-radial-from-pos":[{"mask-radial-from":oe()}],"mask-image-radial-to-pos":[{"mask-radial-to":oe()}],"mask-image-radial-from-color":[{"mask-radial-from":$()}],"mask-image-radial-to-color":[{"mask-radial-to":$()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":P()}],"mask-image-conic-pos":[{"mask-conic":[ye]}],"mask-image-conic-from-pos":[{"mask-conic-from":oe()}],"mask-image-conic-to-pos":[{"mask-conic-to":oe()}],"mask-image-conic-from-color":[{"mask-conic-from":$()}],"mask-image-conic-to-color":[{"mask-conic-to":$()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:N()}],"mask-repeat":[{mask:I()}],"mask-size":[{mask:ee()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",se,le]}],filter:[{filter:["","none",se,le]}],blur:[{blur:Ie()}],brightness:[{brightness:[ye,se,le]}],contrast:[{contrast:[ye,se,le]}],"drop-shadow":[{"drop-shadow":["","none",w,Si,bi]}],"drop-shadow-color":[{"drop-shadow":$()}],grayscale:[{grayscale:["",ye,se,le]}],"hue-rotate":[{"hue-rotate":[ye,se,le]}],invert:[{invert:["",ye,se,le]}],saturate:[{saturate:[ye,se,le]}],sepia:[{sepia:["",ye,se,le]}],"backdrop-filter":[{"backdrop-filter":["","none",se,le]}],"backdrop-blur":[{"backdrop-blur":Ie()}],"backdrop-brightness":[{"backdrop-brightness":[ye,se,le]}],"backdrop-contrast":[{"backdrop-contrast":[ye,se,le]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ye,se,le]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ye,se,le]}],"backdrop-invert":[{"backdrop-invert":["",ye,se,le]}],"backdrop-opacity":[{"backdrop-opacity":[ye,se,le]}],"backdrop-saturate":[{"backdrop-saturate":[ye,se,le]}],"backdrop-sepia":[{"backdrop-sepia":["",ye,se,le]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":Q()}],"border-spacing-x":[{"border-spacing-x":Q()}],"border-spacing-y":[{"border-spacing-y":Q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",se,le]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ye,"initial",se,le]}],ease:[{ease:["linear","initial",T,se,le]}],delay:[{delay:[ye,se,le]}],animate:[{animate:["none",X,se,le]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[A,se,le]}],"perspective-origin":[{"perspective-origin":Z()}],rotate:[{rotate:je()}],"rotate-x":[{"rotate-x":je()}],"rotate-y":[{"rotate-y":je()}],"rotate-z":[{"rotate-z":je()}],scale:[{scale:Qe()}],"scale-x":[{"scale-x":Qe()}],"scale-y":[{"scale-y":Qe()}],"scale-z":[{"scale-z":Qe()}],"scale-3d":["scale-3d"],skew:[{skew:it()}],"skew-x":[{"skew-x":it()}],"skew-y":[{"skew-y":it()}],transform:[{transform:[se,le,"","none","gpu","cpu"]}],"transform-origin":[{origin:Z()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:$e()}],"translate-x":[{"translate-x":$e()}],"translate-y":[{"translate-y":$e()}],"translate-z":[{"translate-z":$e()}],"translate-none":["translate-none"],accent:[{accent:$()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:$()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",se,le]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":Q()}],"scroll-mx":[{"scroll-mx":Q()}],"scroll-my":[{"scroll-my":Q()}],"scroll-ms":[{"scroll-ms":Q()}],"scroll-me":[{"scroll-me":Q()}],"scroll-mbs":[{"scroll-mbs":Q()}],"scroll-mbe":[{"scroll-mbe":Q()}],"scroll-mt":[{"scroll-mt":Q()}],"scroll-mr":[{"scroll-mr":Q()}],"scroll-mb":[{"scroll-mb":Q()}],"scroll-ml":[{"scroll-ml":Q()}],"scroll-p":[{"scroll-p":Q()}],"scroll-px":[{"scroll-px":Q()}],"scroll-py":[{"scroll-py":Q()}],"scroll-ps":[{"scroll-ps":Q()}],"scroll-pe":[{"scroll-pe":Q()}],"scroll-pbs":[{"scroll-pbs":Q()}],"scroll-pbe":[{"scroll-pbe":Q()}],"scroll-pt":[{"scroll-pt":Q()}],"scroll-pr":[{"scroll-pr":Q()}],"scroll-pb":[{"scroll-pb":Q()}],"scroll-pl":[{"scroll-pl":Q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",se,le]}],fill:[{fill:["none",...$()]}],"stroke-w":[{stroke:[ye,qs,Gn,Oh]}],stroke:[{stroke:["none",...$()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},v1=Z0(g1);function me(...n){return v1(T0(n))}const x1={mode:[{value:"interactive",label:"Interactive"},{value:"auto",label:"Auto"},{value:"review",label:"Review"}],granularity:[{value:"minimal",label:"Minimal"},{value:"standard",label:"Standard"},{value:"detailed",label:"Detailed"}],model_profile:[{value:"fast",label:"Fast"},{value:"balanced",label:"Balanced"},{value:"quality",label:"Quality"}],"execution.method":[{value:"agent",label:"Agent"},{value:"direct",label:"Direct"}],"git.branching":[{value:"none",label:"None"},{value:"per-milestone",label:"Per Milestone"},{value:"per-phase",label:"Per Phase"}]};function y1({label:n,checked:i,onChange:s}){return c.jsxs("div",{className:"flex items-center justify-between py-[3px]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary truncate mr-2",children:n}),c.jsx("button",{type:"button",onClick:()=>s(!i),className:me("relative inline-flex h-[18px] w-[32px] shrink-0 cursor-pointer rounded-full border-2 border-transparent","transition-colors duration-[var(--duration-fast)]",i?"bg-accent-blue":"bg-border"),children:c.jsx("span",{className:me("pointer-events-none inline-block h-[14px] w-[14px] rounded-full bg-white shadow-sm","transition-transform duration-[var(--duration-fast)]",i?"translate-x-[14px]":"translate-x-0")})})]})}function b1({value:n,onChange:i,options:s}){return c.jsx("select",{value:n,onChange:r=>i(r.target.value),className:me("px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)]","border border-border bg-bg-primary text-text-primary","focus:outline-none focus:border-accent-blue"),children:s.map(r=>c.jsx("option",{value:r.value,children:r.label},r.value))})}function S1({value:n,onChange:i}){return c.jsx("input",{type:"number",value:n,onChange:s=>i(Number(s.target.value)),className:me("w-16 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)]","border border-border bg-bg-primary text-text-primary text-right","focus:outline-none focus:border-accent-blue")})}function E1({value:n,onChange:i}){return c.jsx("input",{type:"text",value:n,onChange:s=>i(s.target.value),className:me("w-28 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)]","border border-border bg-bg-primary text-text-primary","focus:outline-none focus:border-accent-blue")})}function Ei({label:n,children:i}){return c.jsxs("div",{className:"flex items-center justify-between py-[3px]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary truncate mr-2",children:n}),i]})}function Fu(){const{t:n}=St();return(i,s)=>{const r=n(i);return r===i?s.replace(/_/g," ").replace(/\b\w/g,d=>d.toUpperCase()):r}}function Bg({fieldKey:n,value:i,path:s,onChange:r}){const d=Fu(),f=`workflow_config.${s}`,p=d(f,n);if(typeof i=="boolean")return c.jsx(y1,{label:p,checked:i,onChange:r});if(typeof i=="number")return c.jsx(Ei,{label:p,children:c.jsx(S1,{value:i,onChange:h=>r(h)})});if(typeof i=="string"){const h=x1[s];return h?c.jsx(Ei,{label:p,children:c.jsx(b1,{value:i,onChange:r,options:h})}):c.jsx(Ei,{label:p,children:c.jsx(E1,{value:i,onChange:r})})}return c.jsx(Ei,{label:p,children:c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:String(i)})})}function Hg({sectionKey:n,obj:i,parentPath:s,onChange:r}){const d=Fu(),f=`workflow_config.${s}.title`,p=d(f,n);return c.jsxs("div",{children:[c.jsx("h4",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary mb-[var(--spacing-1)] uppercase tracking-wide",children:p}),c.jsx("div",{className:"flex flex-col",children:Object.entries(i).map(([h,x])=>{const g=`${s}.${h}`;return x!==null&&typeof x=="object"&&!Array.isArray(x)?c.jsx(Hg,{sectionKey:h,obj:x,parentPath:g,onChange:S=>r({...i,[h]:S})},h):c.jsx(Bg,{fieldKey:h,value:x,path:g,onChange:S=>r({...i,[h]:S})},h)})})]})}function w1(){const{t:n}=St(),i=ia(C=>C.open),s=ia(C=>C.setOpen),r=ia(C=>C.draft),d=ia(C=>C.loading),f=ia(C=>C.saving),p=ia(C=>C.isDirty()),h=ia(C=>C.updateDraft),x=ia(C=>C.save),g=ia(C=>C.discard),S=v.useRef(null),b=v.useCallback(C=>{if(S.current&&!S.current.contains(C.target)){if(C.target.closest("[data-workflow-config-trigger]"))return;s(!1)}},[s]);if(v.useEffect(()=>{if(i)return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[i,b]),v.useEffect(()=>{if(!i)return;const C=A=>{A.key==="Escape"&&s(!1)};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[i,s]),!i)return null;const E=Fu(),w=r&&Object.keys(r).length>0;return c.jsxs("div",{ref:S,className:me("absolute top-[calc(var(--size-topbar-height)+4px)] right-[var(--spacing-4)] z-50","w-[340px] max-h-[calc(100vh-var(--size-topbar-height)-40px)]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-[var(--style-modal-shadow)]","flex flex-col overflow-hidden","animate-in fade-in-0 zoom-in-95 duration-150"),children:[c.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-3)] py-[var(--spacing-2)] border-b border-border shrink-0",children:[c.jsx("h3",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:n("workflow_config.title")}),c.jsx("button",{type:"button",onClick:()=>s(!1),className:"w-6 h-6 flex items-center justify-center rounded-[var(--radius-sm)] text-text-secondary hover:text-text-primary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",children:c.jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),c.jsx("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-3)] py-[var(--spacing-2)] space-y-[var(--spacing-3)]",children:d&&!r?c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-secondary text-center py-4",children:n("workflow_config.loading")}):w?c.jsxs(c.Fragment,{children:[(()=>{const C=Object.entries(r).filter(([,A])=>A===null||typeof A!="object");return C.length===0?null:c.jsxs("div",{children:[c.jsx("h4",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary mb-[var(--spacing-1)] uppercase tracking-wide",children:E("workflow_config.top.title","Profile")}),c.jsx("div",{className:"flex flex-col",children:C.map(([A,O])=>c.jsx(Bg,{fieldKey:A,value:O,path:A,onChange:T=>h(A,T)},A))})]})})(),Object.entries(r).filter(([,C])=>C!==null&&typeof C=="object"&&!Array.isArray(C)).map(([C,A])=>c.jsx(Hg,{sectionKey:C,obj:A,parentPath:C,onChange:O=>h(C,O)},C))]}):c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-secondary text-center py-4",children:n("workflow_config.empty")})}),p&&c.jsxs("div",{className:"flex items-center justify-end gap-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] border-t border-border shrink-0 bg-bg-secondary/95",children:[c.jsx("button",{type:"button",onClick:g,disabled:f,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","border border-border text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50"),children:n("workflow_config.discard")}),c.jsx("button",{type:"button",onClick:()=>void x(),disabled:f,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","bg-accent-blue text-white hover:opacity-90","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50"),children:n(f?"workflow_config.saving":"workflow_config.save")})]})]})}function j1(){const n=Vt(S=>S.board),i=Vt(S=>S.connected),s=pe(S=>S.setOpen),r=ia(S=>S.open),d=ia(S=>S.setOpen),{t:f,locale:p,setLocale:h}=St(),x=n==null?void 0:n.project,g=()=>{h(p==="en"?"zh-CN":"en")};return c.jsxs("header",{role:"banner",className:"relative flex items-center justify-between px-[var(--spacing-4)] h-[var(--size-topbar-height)] bg-bg-secondary border-b border-border shrink-0",children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)]",children:[c.jsx("span",{className:"font-[800] text-[length:var(--font-size-base)] text-text-primary tracking-[-0.02em]","aria-hidden":"true",children:"Maestro"}),c.jsx(j0,{}),x&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"text-text-placeholder text-[length:var(--font-size-sm)]",children:"·"}),c.jsx("span",{className:"text-text-secondary text-[length:var(--font-size-sm)] truncate max-w-[200px]",children:x.current_milestone||x.project_name})]})]}),c.jsx("div",{className:"flex-1 flex justify-center",children:c.jsx(y0,{})}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-4)]",children:[c.jsxs("button",{type:"button",onClick:g,"aria-label":f("language_switcher.aria_label"),className:["flex items-center gap-[var(--spacing-1-5)] px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","transition-all duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]","hover:bg-bg-hover",p==="zh-CN"?"text-accent-blue":"text-text-secondary"].join(" "),children:[c.jsx("span",{className:"tabular-nums",children:f(p==="en"?"language_switcher.en":"language_switcher.zh")}),c.jsx("span",{className:"text-text-tertiary",children:"/"}),c.jsx("span",{className:"tabular-nums",children:f(p==="en"?"language_switcher.zh":"language_switcher.en")})]}),x&&c.jsx(C0,{}),x&&c.jsxs("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary transition-opacity duration-[var(--duration-normal)] ease-[var(--ease-in-out)] hidden sm:inline",children:[f("topbar.phase")," ",x.current_phase," ",f("topbar.of")," ",x.phases_summary.total]}),c.jsx("button",{type:"button","data-workflow-config-trigger":!0,onClick:()=>d(!r),"aria-label":f("workflow_config.btn_aria"),className:["flex items-center justify-center w-8 h-8 rounded-[var(--radius-sm)]",r?"text-accent-blue bg-accent-blue/10":"text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),children:c.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"4",y1:"21",x2:"4",y2:"14"}),c.jsx("line",{x1:"4",y1:"10",x2:"4",y2:"3"}),c.jsx("line",{x1:"12",y1:"21",x2:"12",y2:"12"}),c.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"3"}),c.jsx("line",{x1:"20",y1:"21",x2:"20",y2:"16"}),c.jsx("line",{x1:"20",y1:"12",x2:"20",y2:"3"}),c.jsx("line",{x1:"1",y1:"14",x2:"7",y2:"14"}),c.jsx("line",{x1:"9",y1:"8",x2:"15",y2:"8"}),c.jsx("line",{x1:"17",y1:"16",x2:"23",y2:"16"})]})}),c.jsx("button",{type:"button",onClick:()=>s(!0),"aria-label":"Open settings",className:["flex items-center justify-center w-8 h-8 rounded-[var(--radius-sm)]","text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),children:c.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("circle",{cx:"12",cy:"12",r:"3"}),c.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]})}),c.jsxs("span",{role:"status","aria-live":"polite","aria-label":f(i?"topbar.connection.aria_connected":"topbar.connection.aria_disconnected"),className:["flex items-center gap-[5px] text-[length:10px] font-[var(--font-weight-semibold)] px-[10px] py-[3px] rounded-full","transition-colors duration-[var(--duration-smooth)] ease-[var(--ease-notion)]",i?"bg-[rgba(90,158,120,0.12)] text-status-completed":"bg-[rgba(196,101,85,0.12)] text-status-blocked"].join(" "),children:[c.jsx("span",{className:`w-1.5 h-1.5 rounded-full bg-current ${i?"animate-pulse":""}`}),f(i?"topbar.connection.connected":"topbar.connection.disconnected")]})]}),c.jsx(w1,{})]})}/**
77
+ */function zi(){return zi=Object.assign?Object.assign.bind():function(n){for(var i=1;i<arguments.length;i++){var s=arguments[i];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(n[r]=s[r])}return n},zi.apply(this,arguments)}function hg(n,i){if(n==null)return{};var s={},r=Object.keys(n),d,f;for(f=0;f<r.length;f++)d=r[f],!(i.indexOf(d)>=0)&&(s[d]=n[d]);return s}function e0(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function t0(n,i){return n.button===0&&(!i||i==="_self")&&!e0(n)}const a0=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],n0=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],l0="6";try{window.__reactRouterVersion=l0}catch{}const s0=v.createContext({isTransitioning:!1}),r0="startTransition",yh=Vu[r0];function i0(n){let{basename:i,children:s,future:r,window:d}=n,f=v.useRef();f.current==null&&(f.current=ib({window:d,v5Compat:!0}));let p=f.current,[h,x]=v.useState({action:p.action,location:p.location}),{v7_startTransition:g}=r||{},S=v.useCallback(b=>{g&&yh?yh(()=>x(b)):x(b)},[x,g]);return v.useLayoutEffect(()=>p.listen(S),[p,S]),v.useEffect(()=>Jb(r),[r]),v.createElement($b,{basename:i,children:s,location:h.location,navigationType:h.action,navigator:p,future:r})}const o0=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",c0=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,gg=v.forwardRef(function(i,s){let{onClick:r,relative:d,reloadDocument:f,replace:p,state:h,target:x,to:g,preventScrollReset:S,viewTransition:b}=i,E=hg(i,a0),{basename:w}=v.useContext(Ba),C,A=!1;if(typeof g=="string"&&c0.test(g)&&(C=g,o0))try{let Y=new URL(window.location.href),P=g.startsWith("//")?new URL(Y.protocol+g):new URL(g),Z=ql(P.pathname,w);P.origin===Y.origin&&Z!=null?g=Z+P.search+P.hash:A=!0}catch{}let O=Mb(g,{relative:d}),T=f0(g,{replace:p,state:h,target:x,preventScrollReset:S,relative:d,viewTransition:b});function X(Y){r&&r(Y),Y.defaultPrevented||T(Y)}return v.createElement("a",zi({},E,{href:C||O,onClick:A||f?r:X,ref:s,target:x}))}),u0=v.forwardRef(function(i,s){let{"aria-current":r="page",caseSensitive:d=!1,className:f="",end:p=!1,style:h,to:x,viewTransition:g,children:S}=i,b=hg(i,n0),E=qi(x,{relative:b.relative}),w=Ha(),C=v.useContext(cg),{navigator:A,basename:O}=v.useContext(Ba),T=C!=null&&m0(E)&&g===!0,X=A.encodeLocation?A.encodeLocation(E).pathname:E.pathname,Y=w.pathname,P=C&&C.navigation&&C.navigation.location?C.navigation.location.pathname:null;d||(Y=Y.toLowerCase(),P=P?P.toLowerCase():null,X=X.toLowerCase()),P&&O&&(P=ql(P,O)||P);const Z=X!=="/"&&X.endsWith("/")?X.length-1:X.length;let te=Y===X||!p&&Y.startsWith(X)&&Y.charAt(Z)==="/",H=P!=null&&(P===X||!p&&P.startsWith(X)&&P.charAt(X.length)==="/"),Q={isActive:te,isPending:H,isTransitioning:T},fe=te?r:void 0,He;typeof f=="function"?He=f(Q):He=[f,te?"active":null,H?"pending":null,T?"transitioning":null].filter(Boolean).join(" ");let Ae=typeof h=="function"?h(Q):h;return v.createElement(gg,zi({},b,{"aria-current":fe,className:He,ref:s,style:Ae,to:x,viewTransition:g}),typeof S=="function"?S(Q):S)});var Mu;(function(n){n.UseScrollRestoration="useScrollRestoration",n.UseSubmit="useSubmit",n.UseSubmitFetcher="useSubmitFetcher",n.UseFetcher="useFetcher",n.useViewTransitionState="useViewTransitionState"})(Mu||(Mu={}));var bh;(function(n){n.UseFetcher="useFetcher",n.UseFetchers="useFetchers",n.UseScrollRestoration="useScrollRestoration"})(bh||(bh={}));function d0(n){let i=v.useContext(Bi);return i||Ze(!1),i}function f0(n,i){let{target:s,replace:r,state:d,preventScrollReset:f,relative:p,viewTransition:h}=i===void 0?{}:i,x=Gi(),g=Ha(),S=qi(n,{relative:p});return v.useCallback(b=>{if(t0(b,s)){b.preventDefault();let E=r!==void 0?r:Ri(g)===Ri(S);x(n,{replace:E,state:d,preventScrollReset:f,relative:p,viewTransition:h})}},[g,x,S,r,d,s,n,f,p,h])}function m0(n,i){i===void 0&&(i={});let s=v.useContext(s0);s==null&&Ze(!1);let{basename:r}=d0(Mu.useViewTransitionState),d=qi(n,{relative:i.relative});if(!s.isTransitioning)return!1;let f=ql(s.currentLocation.pathname,r)||s.currentLocation.pathname,p=ql(s.nextLocation.pathname,r)||s.nextLocation.pathname;return Ou(d.pathname,p)!=null||Ou(d.pathname,f)!=null}const Sh=n=>{let i;const s=new Set,r=(g,S)=>{const b=typeof g=="function"?g(i):g;if(!Object.is(b,i)){const E=i;i=S??(typeof b!="object"||b===null)?b:Object.assign({},i,b),s.forEach(w=>w(i,E))}},d=()=>i,h={setState:r,getState:d,getInitialState:()=>x,subscribe:g=>(s.add(g),()=>s.delete(g))},x=i=n(r,d,h);return h},p0=(n=>n?Sh(n):Sh),h0=n=>n;function g0(n,i=h0){const s=Vs.useSyncExternalStore(n.subscribe,Vs.useCallback(()=>i(n.getState()),[n,i]),Vs.useCallback(()=>i(n.getInitialState()),[n,i]));return Vs.useDebugValue(s),s}const Eh=n=>{const i=p0(n),s=r=>g0(i,r);return Object.assign(s,i),s},_t=(n=>n?Eh(n):Eh);function pu(n){return Array.isArray(n)?n.map(i=>{if(typeof i=="string")return i;if(i&&typeof i=="object"){const s=i;if(typeof s.description=="string")return s.description;if(typeof s.requirement=="string")return s.requirement;if(typeof s.text=="string")return s.text;if(typeof s.id=="string")return`Gap ${s.id}`}return String(i)}):[]}function wh(n){const i=n,s=i.verification??{},r=i.validation??{},d=i.uat??{};return{...n,goal:n.goal??"",success_criteria:n.success_criteria??[],requirements:n.requirements??[],spec_ref:n.spec_ref??null,plan:n.plan??{task_ids:[],task_count:0,complexity:null,waves:[]},execution:n.execution??{method:"",started_at:null,completed_at:null,tasks_completed:0,tasks_total:0,current_wave:0,commits:[]},verification:{status:String(s.status??"pending"),verified_at:s.verified_at??null,must_haves:Array.isArray(s.must_haves)?s.must_haves:[],gaps:pu(s.gaps)},validation:{status:String(r.status??"pending"),test_coverage:typeof r.test_coverage=="number"||r.test_coverage&&typeof r.test_coverage=="object"?r.test_coverage:null,gaps:pu(r.gaps)},uat:{status:String(d.status??"pending"),test_count:typeof d.test_count=="number"?d.test_count:0,passed:typeof d.passed=="number"?d.passed:0,gaps:pu(d.gaps)},reflection:i.reflection??{rounds:0,strategy_adjustments:[]}}}const Vt=_t(n=>({board:null,connected:!1,selectedPhase:null,workspace:null,setBoard:i=>{i&&(i={...i,phases:i.phases.map(s=>wh(s))}),n({board:i})},updatePhase:(i,s)=>n(r=>{if(!r.board)return r;const d=r.board.phases.map(f=>f.phase===i?wh({...f,...s}):f);return{board:{...r.board,phases:d}}}),updateTask:(i,s)=>n(r=>{if(!r.board)return r;const d=r.board.phases.map(f=>f.plan.task_ids.indexOf(i)===-1?f:{...f,updated_at:new Date().toISOString()});return{board:{...r.board,phases:d}}}),setConnected:i=>n({connected:i}),setSelectedPhase:i=>n({selectedPhase:i}),setWorkspace:i=>n({workspace:i})})),ki={pollIntervalMs:3e4,maxConcurrentWorkers:3,stallTimeoutMs:3e5,maxRetries:2,retryBackoffMs:6e4,decisionModel:"sonnet",assessMaxTurns:5,autoApproveThreshold:"low",defaultExecutor:"claude-code",safety:{eventDebounceMs:5e3,circuitBreakerThreshold:3,maxTicksPerHour:120,maxTokensPerHour:5e5,protectedPaths:[".env",".env.*","*.key","*.pem","credentials.*"]},workspace:{enabled:!1,useWorktree:!0,autoCleanup:!0,strict:!1},profile:"development"},vg={"claude-code":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},codex:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},"codex-server":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},gemini:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},"gemini-a2a":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},qwen:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},opencode:{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""},"agent-sdk":{model:"",approvalMode:"suggest",baseUrl:"",apiKey:"",settingsFile:"",envFile:""}},vi={general:{theme:"system",language:"en",hiddenNavItems:["/maestro-coordinate","/requirement","/rooms"]},agents:vg,cliTools:"{}",linear:{apiKey:""},searchTool:"mcp__ace-tool__search_context",commander:ki};function Hs(n){return JSON.parse(JSON.stringify(n))}const pe=_t((n,i)=>({open:!1,activeSection:"general",config:null,draft:null,loading:!1,saving:!1,error:null,chineseResponse:null,setOpen:s=>{n({open:s}),s&&!i().config&&i().loadConfig()},setActiveSection:s=>n({activeSection:s}),loadConfig:async()=>{n({loading:!0,error:null});try{const s=await fetch("/api/settings");if(!s.ok)throw new Error(`Failed to load settings: ${s.status}`);const r=await s.json(),d=Object.fromEntries(Object.entries(vg).map(([S,b])=>{var E;return[S,{...b,...((E=r.agents)==null?void 0:E[S])||{}}]})),f=typeof r.searchTool=="string"?r.searchTool:vi.searchTool,p=r.commander,h={...ki,...p,safety:{...ki.safety,...p==null?void 0:p.safety},workspace:{...ki.workspace,...p==null?void 0:p.workspace}},x={...vi.general,...r.general},g={...vi,...r,general:x,agents:d,searchTool:f,commander:h};n({config:g,draft:Hs(g),loading:!1})}catch(s){const r=Hs(vi);n({config:r,draft:Hs(r),loading:!1,error:String(s)})}},updateDraft:(s,r)=>{const{draft:d}=i();d&&n({draft:{...d,[s]:r}})},saveConfig:async s=>{const{draft:r}=i();if(r){n({saving:!0,error:null});try{const d=s==="cliTools"?"/api/settings/cli-tools":s==="searchTool"?"/api/settings/search-tool":`/api/settings/${s}`,f=s==="searchTool"?{name:r[s]}:r[s],p=await fetch(d,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(typeof f=="string"?{content:f}:f)});if(!p.ok)throw new Error(`Failed to save: ${p.status}`);const{config:h}=i();if(h){const x={...h,[s]:Hs(r[s])};n({config:x,saving:!1})}else n({saving:!1})}catch(d){n({saving:!1,error:String(d)})}}},discardDraft:s=>{const{config:r,draft:d}=i();!r||!d||n({draft:{...d,[s]:Hs(r[s])}})},isDirty:s=>{const{config:r,draft:d}=i();return!r||!d?!1:JSON.stringify(r[s])!==JSON.stringify(d[s])},loadChineseResponse:async()=>{try{const s=await fetch("/api/language/chinese-response");if(!s.ok)return;const r=await s.json();n({chineseResponse:r})}catch{}},toggleChineseResponse:async(s,r)=>{try{const d=await fetch("/api/language/chinese-response",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:s,target:r})});if(!d.ok)throw new Error(`Failed: ${d.status}`);await i().loadChineseResponse()}catch(d){n({error:String(d)})}}}));function hu(n){return JSON.parse(JSON.stringify(n))}const ia=_t((n,i)=>({open:!1,config:null,draft:null,loading:!1,saving:!1,error:null,setOpen:s=>{n({open:s}),s&&!i().config&&i().loadConfig()},loadConfig:async()=>{n({loading:!0,error:null});try{const s=await fetch("/api/workflow-config");if(!s.ok)throw new Error(`Failed to load: ${s.status}`);const r=await s.json();n({config:r,draft:hu(r),loading:!1})}catch(s){n({config:null,draft:null,loading:!1,error:String(s)})}},updateDraft:(s,r)=>{const{draft:d}=i();d&&n({draft:{...d,[s]:r}})},save:async()=>{const{draft:s}=i();if(s){n({saving:!0,error:null});try{const r=await fetch("/api/workflow-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!r.ok)throw new Error(`Failed to save: ${r.status}`);n({config:hu(s),saving:!1})}catch(r){n({saving:!1,error:String(r)})}}},discard:()=>{const{config:s}=i();s&&n({draft:hu(s)})},isDirty:()=>{const{config:s,draft:r}=i();return!s||!r?!1:JSON.stringify(s)!==JSON.stringify(r)}})),xg=v.createContext({config:null,register:()=>{},unregister:()=>{}});function v0(){const[n,i]=v.useState(null),s=v.useCallback(d=>i(d),[]),r=v.useCallback(()=>i(null),[]);return{config:n,register:s,unregister:r}}function x0(){return v.useContext(xg).config}function y0(){const n=x0();return v.useEffect(()=>{if(!n)return;function i(s){if(s.target instanceof HTMLInputElement||s.target instanceof HTMLTextAreaElement)return;const r=parseInt(s.key,10);r>=1&&r<=n.items.length&&n.onSwitch(r-1)}return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[n]),!n||n.items.length===0?null:c.jsx("div",{className:"inline-flex items-center bg-bg-tertiary rounded-[10px] p-[3px] gap-[2px]",children:n.items.map((i,s)=>{const r=s===n.activeIndex;return c.jsxs("button",{type:"button",onClick:()=>n.onSwitch(s),className:["relative flex items-center gap-[var(--spacing-1-5)] px-[var(--spacing-3)] py-[var(--spacing-1)] rounded-[8px]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",r?"text-text-primary":"text-text-tertiary hover:text-text-secondary"].join(" "),children:[c.jsx("div",{className:"absolute inset-0 rounded-[8px] shadow-sm",style:{backgroundColor:r?"var(--color-bg-card)":"transparent",opacity:r?1:0,transition:"opacity 150ms ease, background-color 150ms ease"}}),c.jsxs("span",{className:"relative z-10 flex items-center gap-[var(--spacing-1-5)]",children:[c.jsx("span",{className:"w-[14px] h-[14px] flex items-center justify-center",children:i.icon}),c.jsx("span",{children:i.label}),c.jsx("kbd",{className:"text-[length:9px] text-text-placeholder font-mono ml-[var(--spacing-0-5)]",children:i.shortcut})]})]},i.label)})})}const yg="maestro.recentWorkspaces",b0=5;function S0(n){return n.split(/[\\/]/).filter(Boolean).at(-1)??n}function bg(){try{const n=localStorage.getItem(yg);if(!n)return[];const i=JSON.parse(n);return Array.isArray(i)?i:[]}catch{return[]}}function E0(n){try{localStorage.setItem(yg,JSON.stringify(n))}catch{}}function w0(n){const i=bg().filter(s=>s!==n);i.unshift(n),E0(i.slice(0,b0))}function j0(){const n=Vt(H=>H.workspace),i=Vt(H=>H.setWorkspace),[s,r]=v.useState(!1),[d,f]=v.useState(""),[p,h]=v.useState(null),[x,g]=v.useState(!1),[S,b]=v.useState([]),[E,w]=v.useState(!1),[C,A]=v.useState(null),[O,T]=v.useState(!1),X=v.useRef(null);v.useEffect(()=>{s&&(b(bg()),f(""),h(null),w(!1),A(null))},[s]),v.useEffect(()=>{if(!s)return;function H(Q){X.current&&!X.current.contains(Q.target)&&r(!1)}return document.addEventListener("mousedown",H),()=>document.removeEventListener("mousedown",H)},[s]);const Y=v.useCallback(async H=>{if(H.trim()){g(!0),h(null);try{const Q=await fetch("/api/workspace",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:H.trim()})});if(!Q.ok){const fe=await Q.json().catch(()=>({}));h(fe.error??`Error ${Q.status}`);return}w0(H.trim()),i(H.trim()),r(!1)}catch(Q){h(Q instanceof Error?Q.message:"Network error")}finally{g(!1)}}},[i]),P=v.useCallback(async H=>{T(!0);try{const Q=H?`/api/workspace/browse?path=${encodeURIComponent(H)}`:"/api/workspace/browse",fe=await fetch(Q);if(!fe.ok){h("Failed to browse directory");return}const He=await fe.json();A(He),w(!0)}catch{h("Failed to browse directory")}finally{T(!1)}},[]),Z=v.useCallback(H=>{H.key==="Escape"&&(E?w(!1):r(!1))},[E]),te=n?S0(n):"—";return c.jsxs("div",{ref:X,className:"relative flex items-center",onKeyDown:Z,children:[c.jsxs("button",{type:"button",onClick:()=>r(H=>!H),className:["flex items-center gap-[var(--spacing-1)] px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] text-text-secondary","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","hover:bg-bg-hover hover:text-text-primary","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),"aria-haspopup":"listbox","aria-expanded":s,children:[c.jsx("span",{className:"text-text-placeholder",children:"/"}),c.jsx("span",{className:"max-w-[160px] truncate",children:te}),c.jsx("span",{className:"text-[length:9px] text-text-placeholder ml-[2px]",children:"▼"})]}),s&&c.jsx("div",{role:"dialog","aria-label":"Switch workspace",className:["absolute top-full left-0 mt-[4px] w-[360px] z-50","bg-bg-secondary border border-border rounded-[var(--radius-md)]","shadow-[var(--shadow-lg,0_8px_24px_rgba(0,0,0,0.18))]","p-[var(--spacing-2)]"].join(" "),children:E&&C?c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)] mb-[var(--spacing-2)] px-[var(--spacing-1)]",children:[c.jsx("button",{type:"button",onClick:()=>w(!1),className:"text-[length:var(--font-size-xs)] text-text-secondary hover:text-text-primary px-[var(--spacing-1)] py-[2px] rounded-[var(--radius-sm)] hover:bg-bg-hover",children:"← Back"}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-placeholder truncate flex-1 text-right",children:C.current})]}),C.parent&&c.jsxs("button",{type:"button",onClick:()=>P(C.parent),disabled:O,className:["w-full text-left flex items-center gap-[var(--spacing-2)]","px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] text-text-secondary","transition-colors duration-[var(--duration-fast)]","hover:bg-bg-hover cursor-pointer"].join(" "),children:[c.jsx("span",{className:"text-text-placeholder text-[length:var(--font-size-xs)]",children:"📂"}),c.jsx("span",{children:".."})]}),c.jsx("div",{className:"max-h-[240px] overflow-y-auto",children:C.entries.length===0?c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-placeholder px-[var(--spacing-2)] py-[var(--spacing-2)] text-center",children:"No subdirectories"}):C.entries.map(H=>c.jsxs("div",{className:"flex items-center gap-[2px]",children:[c.jsxs("button",{type:"button",onClick:()=>P(H.path),disabled:O,className:["flex-1 text-left flex items-center gap-[var(--spacing-2)]","px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)]","transition-colors duration-[var(--duration-fast)]","hover:bg-bg-hover cursor-pointer",H.hasWorkflow?"text-text-primary":"text-text-secondary"].join(" "),children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)]",children:H.hasWorkflow?"📂":"📁"}),c.jsx("span",{className:"truncate",children:H.name}),H.hasWorkflow&&c.jsx("span",{className:"text-[length:9px] text-accent-blue bg-[rgba(55,120,220,0.1)] px-[4px] py-[1px] rounded-[3px] shrink-0",children:".workflow"})]}),H.hasWorkflow&&c.jsx("button",{type:"button",onClick:()=>Y(H.path),disabled:x,className:["shrink-0 px-[var(--spacing-1-5)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] text-accent-blue","hover:bg-[rgba(55,120,220,0.1)] cursor-pointer","transition-colors duration-[var(--duration-fast)]"].join(" "),children:"Open"})]},H.path))})]}):c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"mb-[var(--spacing-2)]",children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-placeholder px-[var(--spacing-2)] mb-[var(--spacing-1)]",children:"Recent"}),S.length>0?c.jsx("ul",{role:"listbox",children:S.map(H=>c.jsx("li",{children:c.jsxs("button",{type:"button",role:"option","aria-selected":H===n,onClick:()=>Y(H),disabled:x,className:["w-full text-left flex items-center gap-[var(--spacing-2)]","px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)]","transition-colors duration-[var(--duration-fast)]","hover:bg-bg-hover focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",H===n?"text-text-primary":"text-text-secondary",x?"opacity-50 cursor-not-allowed":"cursor-pointer"].join(" "),children:[c.jsx("span",{className:"text-text-placeholder text-[length:var(--font-size-xs)]",children:"📁"}),c.jsx("span",{className:"truncate flex-1",children:H}),H===n&&c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-placeholder shrink-0",children:"current"})]})},H))}):c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-placeholder px-[var(--spacing-2)] py-[var(--spacing-1)] italic",children:"No recent workspaces"}),c.jsx("div",{className:"border-t border-border mt-[var(--spacing-2)] mb-[var(--spacing-2)]"})]}),c.jsxs("div",{className:"px-[var(--spacing-1)] flex flex-col gap-[var(--spacing-2)]",children:[c.jsx("label",{className:"text-[length:var(--font-size-xs)] text-text-placeholder",children:"Path"}),c.jsxs("div",{className:"flex gap-[var(--spacing-1)]",children:[c.jsx("input",{type:"text",value:d,onChange:H=>f(H.target.value),onKeyDown:H=>{H.key==="Enter"&&Y(d)},placeholder:"/path/to/workspace",autoFocus:!0,className:["flex-1 min-w-0 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","bg-bg-tertiary border border-border","text-[length:var(--font-size-sm)] text-text-primary placeholder:text-text-placeholder","focus:outline-none focus:border-accent-blue","transition-colors duration-[var(--duration-fast)]"].join(" ")}),c.jsx("button",{type:"button",onClick:()=>P(d.trim()||void 0),disabled:O,title:"Browse folders",className:["shrink-0 flex items-center justify-center w-[32px] rounded-[var(--radius-sm)]","bg-bg-tertiary border border-border text-text-secondary","hover:bg-bg-hover hover:text-text-primary cursor-pointer","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),children:c.jsx("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})})})]}),p&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked px-[var(--spacing-1)]",children:p}),c.jsx("button",{type:"button",onClick:()=>Y(d),disabled:x||!d.trim(),className:["w-full px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","bg-bg-tertiary border border-border text-text-secondary","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",x||!d.trim()?"opacity-40 cursor-not-allowed":"hover:bg-bg-hover hover:text-text-primary cursor-pointer"].join(" "),children:x?"Switching...":"Switch workspace"})]})]})})]})}const Pj=[{id:"backlog",label:"Backlog",statuses:["not_started"]},{id:"triage",label:"Triage",statuses:[]},{id:"in-progress",label:"In Progress",statuses:["planning","executing"]},{id:"review",label:"Review",statuses:["verifying","reviewing"]},{id:"done",label:"Done",statuses:["completed","blocked"]},{id:"deferred",label:"Deferred",statuses:[]}],jh={HEALTH:"/api/health",BOARD:"/api/board",PROJECT:"/api/project",PHASES:"/api/phases",PHASE:"/api/phases/:n",PHASE_TASKS:"/api/phases/:n/tasks",ARTIFACTS:"/api/artifacts",SCRATCH:"/api/scratch",SETTINGS:"/api/settings",SETTINGS_GENERAL:"/api/settings/general",SETTINGS_AGENTS:"/api/settings/agents",SETTINGS_CLI_TOOLS:"/api/settings/cli-tools",SETTINGS_SPECS:"/api/settings/specs"},Zj={SPECS:"/api/specs",SPECS_FILES:"/api/specs/files",SPECS_FILE:"/api/specs/file/:name"},Jj={WIKI:"/api/wiki",WIKI_STATS:"/api/wiki/stats",WIKI_HEALTH:"/api/wiki/health",WIKI_GRAPH:"/api/wiki/graph",WIKI_ORPHANS:"/api/wiki/orphans",WIKI_HUBS:"/api/wiki/hubs",WIKI_DETAIL:"/api/wiki/:id",WIKI_BACKLINKS:"/api/wiki/:id/backlinks",WIKI_FORWARD:"/api/wiki/:id/forward"},Fj={CONFIG:"/api/mcp-config",TOGGLE:"/api/mcp-toggle",COPY_SERVER:"/api/mcp-copy-server",REMOVE_SERVER:"/api/mcp-remove-server",ADD_GLOBAL:"/api/mcp-add-global-server",REMOVE_GLOBAL:"/api/mcp-remove-global-server",UPDATE_SERVER:"/api/mcp-update-server",INSTALL_MAESTRO:"/api/mcp-install-maestro",CODEX_CONFIG:"/api/codex-mcp-config",CODEX_ADD:"/api/codex-mcp-add",CODEX_REMOVE:"/api/codex-mcp-remove",CODEX_TOGGLE:"/api/codex-mcp-toggle",TEMPLATES:"/api/mcp-templates",TEMPLATES_SEARCH:"/api/mcp-templates/search",TEMPLATES_CATEGORIES:"/api/mcp-templates/categories",TEMPLATES_INSTALL:"/api/mcp-templates/install",DETECT_COMMANDS:"/api/mcp/detect-commands"},ge={AGENT_SPAWNED:"agent:spawned",AGENT_ENTRY:"agent:entry",AGENT_APPROVAL:"agent:approval",AGENT_STATUS:"agent:status",AGENT_STOPPED:"agent:stopped",AGENT_THOUGHT:"agent:thought",AGENT_STREAMING:"agent:streaming",EXECUTION_STARTED:"execution:started",EXECUTION_COMPLETED:"execution:completed",EXECUTION_FAILED:"execution:failed",EXECUTION_SCHEDULER_STATUS:"execution:scheduler_status",SUPERVISOR_STATUS:"supervisor:status",COMMANDER_STATUS:"commander:status",COMMANDER_DECISION:"commander:decision",COORDINATE_STATUS:"coordinate:status",COORDINATE_STEP:"coordinate:step",COORDINATE_ANALYSIS:"coordinate:analysis",COORDINATE_CLARIFICATION_NEEDED:"coordinate:clarification_needed",REQUIREMENT_EXPANDED:"requirement:expanded",REQUIREMENT_COMMITTED:"requirement:committed",REQUIREMENT_PROGRESS:"requirement:progress",BOARD_FULL:"board:full",PHASE_UPDATED:"phase:updated",TASK_UPDATED:"task:updated",PROJECT_UPDATED:"project:updated",HEARTBEAT:"heartbeat",CONNECTED:"connected",TEAM_MESSAGE:"team:message",TEAM_DISPATCH:"team:dispatch",TEAM_PHASE:"team:phase",TEAM_AGENT_STATUS:"team:agent_status",ROOM_CREATED:"room:created",ROOM_CLOSED:"room:closed",ROOM_AGENT_JOINED:"room:agent_joined",ROOM_AGENT_LEFT:"room:agent_left",ROOM_AGENT_STATUS:"room:agent_status",ROOM_MESSAGE:"room:message",ROOM_BROADCAST:"room:broadcast",ROOM_TASK_CREATED:"room:task_created",ROOM_TASK_UPDATED:"room:task_updated",ROOM_SNAPSHOT:"room:snapshot"},Gs={ISSUES:"/api/issues",ISSUE:"/api/issues/:id"},gu={STATUS:"/api/linear/status",TEAMS:"/api/linear/teams",BOARD:"/api/linear/board",IMPORT:"/api/linear/import",EXPORT:"/api/linear/export"},vu={SESSIONS:"/api/teams/sessions",SESSION:"/api/teams/sessions/:sessionId",SESSION_MESSAGES:"/api/teams/sessions/:sessionId/messages",SESSION_FILE:"/api/teams/sessions/:sessionId/files"},Rl={MEMBERS:"/api/collab/members",ACTIVITY:"/api/collab/activity",STATUS:"/api/collab/status",AGGREGATED:"/api/collab/activity/aggregated",PREFLIGHT:"/api/collab/preflight"},$j={DETECT:"/api/install/detect",EXECUTE:"/api/install/execute",MANIFESTS:"/api/install/manifests",ADDONS:"/api/install/addons",ADDON_INSTALL:"/api/install/addon"},Sg={not_started:"#A09D97",planning:"#9178B5",executing:"#B89540",verifying:"#C8863A",reviewing:"#5B8DB8",completed:"#5A9E78",blocked:"#C46555"},Eg={"claude-code":"var(--color-accent-purple)",codex:"var(--color-accent-green)","codex-server":"var(--color-accent-green)",gemini:"var(--color-accent-blue)","gemini-a2a":"var(--color-accent-blue)",qwen:"var(--color-accent-orange)",opencode:"var(--color-text-tertiary)",agy:"var(--color-accent-blue)","agent-sdk":"var(--color-accent-purple)"},Wj={"claude-code":"Claude Code",codex:"Codex","codex-server":"Codex Server",gemini:"Gemini","gemini-a2a":"Gemini (A2A)",qwen:"Qwen",opencode:"OpenCode",agy:"Antigravity","agent-sdk":"Agent SDK"},e2={open:"#A09D97",registered:"#C8863A",analyzing:"#5B8DB8",planned:"#9178B5",in_progress:"#B89540",resolved:"#5A9E78",closed:"#6B6966",deferred:"#8B8685"};function t2(n){switch(n.status){case"closed":return"closed";case"resolved":return"resolved";case"in_progress":return"in_progress";case"deferred":return"deferred";case"registered":return n.solution?"planned":n.analysis?"analyzing":"registered";case"open":return n.solution?"planned":n.analysis?"analyzing":"open";default:return"open"}}const xi=_t((n,i)=>({members:[],activity:[],presence:[],aggregated:[],tasks:[],loading:!1,error:null,activeTab:"overview",statusFilter:"all",typeFilter:"all",memberFilter:"all",taskStatusFilter:"all",taskAssigneeFilter:"all",selectedTaskId:null,fetchMembers:async()=>{n({loading:!0,error:null});try{const s=await fetch(Rl.MEMBERS);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({members:r,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},fetchActivity:async(s,r)=>{n({loading:!0,error:null});try{const d=new URLSearchParams;s!==void 0&&d.set("limit",String(s)),r!==void 0&&d.set("since",r);const f=d.toString(),p=f?`${Rl.ACTIVITY}?${f}`:Rl.ACTIVITY,h=await fetch(p);if(!h.ok)throw new Error(`Failed: ${h.status}`);const x=await h.json();n({activity:x,loading:!1})}catch(d){n({loading:!1,error:String(d)})}},fetchPresence:async()=>{n({loading:!0,error:null});try{const s=await fetch(Rl.STATUS);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json(),d=Array.isArray(r)?r:r.members??[];n({presence:d,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},fetchAggregated:async()=>{n({loading:!0,error:null});try{const s=await fetch(Rl.AGGREGATED);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({aggregated:r,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},fetchPreflight:async()=>{try{const s=await fetch(Rl.PREFLIGHT);if(!s.ok)throw new Error(`Failed: ${s.status}`);return await s.json()}catch(s){return n({error:String(s)}),null}},fetchTasks:async()=>{try{const s=await fetch("/api/collab/tasks");if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({tasks:r})}catch{}},createTask:async(s,r,d,f)=>{try{const p=await fetch("/api/collab/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:s,description:r,priority:d,tags:f})}),h=await p.json();return p.ok?(await i().fetchTasks(),{success:!0}):{success:!1,error:h.error??`HTTP ${p.status}`}}catch(p){return{success:!1,error:String(p)}}},updateTaskStatus:async(s,r)=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:r})}),await i().fetchTasks()}catch{}},assignTask:async(s,r)=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({assignee:r})}),await i().fetchTasks()}catch{}},deleteTask:async s=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}`,{method:"DELETE"}),await i().fetchTasks()}catch{}},addTaskCheck:async(s,r,d)=>{try{await fetch(`/api/collab/tasks/${encodeURIComponent(s)}/checks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:r,comment:d})}),await i().fetchTasks()}catch{}},initCollab:async()=>{try{const s=await fetch("/api/collab/init",{method:"POST"}),r=await s.json();return s.ok?{success:!0}:{success:!1,error:r.error??`HTTP ${s.status}`}}catch(s){return{success:!1,error:String(s)}}},disableCollab:async()=>{try{const s=await fetch("/api/collab/disable",{method:"POST"}),r=await s.json();return s.ok?(i().clearAll(),{success:!0}):{success:!1,error:r.error??`HTTP ${s.status}`}}catch(s){return{success:!1,error:String(s)}}},addMember:async(s,r,d)=>{try{const f=await fetch("/api/collab/members",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s,email:r||"",role:d||"member"})}),p=await f.json();return f.ok?(await i().fetchMembers(),{success:!0}):{success:!1,error:p.error??`HTTP ${f.status}`}}catch(f){return{success:!1,error:String(f)}}},removeMember:async s=>{try{const r=await fetch(`/api/collab/members/${encodeURIComponent(s)}`,{method:"DELETE"}),d=await r.json();return r.ok?(await i().fetchMembers(),{success:!0}):{success:!1,error:d.error??`HTTP ${r.status}`}}catch(r){return{success:!1,error:String(r)}}},setActiveTab:s=>n({activeTab:s}),setStatusFilter:s=>n({statusFilter:s}),setTypeFilter:s=>n({typeFilter:s}),setMemberFilter:s=>n({memberFilter:s}),setTaskStatusFilter:s=>n({taskStatusFilter:s}),setTaskAssigneeFilter:s=>n({taskAssigneeFilter:s}),setSelectedTaskId:s=>n({selectedTaskId:s}),filteredMembers:()=>{const{members:s,statusFilter:r}=i();return r==="all"?s:s.filter(d=>d.status===r)},filteredActivity:()=>{const{activity:s,typeFilter:r,memberFilter:d}=i();let f=s;return r!=="all"&&(f=f.filter(p=>p.action===r)),d!=="all"&&(f=f.filter(p=>p.user===d)),f},recentActivity:s=>{const{activity:r}=i();return r.slice(-s)},tasksByColumn:()=>{const{tasks:s,taskStatusFilter:r,taskAssigneeFilter:d}=i(),f=new Map;for(const p of s){if(r!=="all"&&p.status!==r||d===""&&p.assignee!==null||d!=="all"&&d!==""&&p.assignee!==d)continue;const h=f.get(p.status);h?h.push(p):f.set(p.status,[p])}return f},clearAll:()=>n({members:[],activity:[],presence:[],aggregated:[],tasks:[],loading:!1,error:null,activeTab:"overview",statusFilter:"all",typeFilter:"all",memberFilter:"all",taskStatusFilter:"all",taskAssigneeFilter:"all",selectedTaskId:null})})),N0={online:"#22c55e",offline:"#9ca3af",away:"#eab308"},a2={join:"#22c55e",phase_change:"#a78bfa",task_update:"#34d399",message:"#60a5fa",discussion:"#60a5fa",report:"#f59e0b",sync:"#06b6d4"},Nh=4,yi=32,_h=-8,_0=6e4,Ch=N0;function C0(){const n=xi(b=>b.presence),i=xi(b=>b.fetchPreflight),s=xi(b=>b.fetchPresence),r=xi(b=>b.disableCollab),[d,f]=v.useState(null),[p,h]=v.useState(!1);if(v.useEffect(()=>{let b=!1;return(async()=>{const E=await i();if(b)return;const w=(E==null?void 0:E.exists)??!1;f(w),w&&s()})(),()=>{b=!0}},[]),v.useEffect(()=>{if(!d)return;const b=setInterval(()=>{s()},_0);return()=>clearInterval(b)},[d,s]),!d||n.length===0)return null;const x=n.slice(0,Nh),g=n.length-Nh;async function S(){h(!1),(await r()).success&&f(!1)}return c.jsxs("div",{className:"relative flex items-center flex-shrink-0",children:[c.jsxs("button",{type:"button",onClick:()=>h(b=>!b),className:"flex items-center cursor-pointer",role:"group","aria-label":"Online members",children:[x.map((b,E)=>c.jsxs("div",{title:`${b.name} — ${b.status}`,className:"relative rounded-full border-2 border-bg-secondary",style:{width:yi,height:yi,marginLeft:E===0?0:_h,backgroundColor:"#6b7280",zIndex:x.length-E},children:[c.jsx("span",{className:"absolute inset-0 flex items-center justify-center text-white text-[10px] font-semibold select-none",children:b.name.charAt(0).toUpperCase()}),c.jsx("span",{className:"absolute bottom-0 right-0 w-2 h-2 rounded-full border-[1.5px] border-bg-secondary",style:{backgroundColor:Ch[b.status]}})]},b.uid)),g>0&&c.jsx("div",{className:"relative flex items-center justify-center rounded-full border-2 border-bg-secondary bg-bg-hover",style:{width:yi,height:yi,marginLeft:_h,zIndex:0},children:c.jsxs("span",{className:"text-text-secondary text-[9px] font-semibold",children:["+",g]})})]}),p&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>h(!1)}),c.jsxs("div",{className:"absolute right-0 top-full mt-1 z-50 min-w-[180px] rounded-[var(--radius-md,6px)] border border-border bg-bg-primary shadow-lg py-1",children:[c.jsxs("div",{className:"px-3 py-1.5 text-[10px] text-text-quaternary uppercase tracking-wider",children:["Team (",n.length,")"]}),n.map(b=>c.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5",children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{backgroundColor:Ch[b.status]}}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-primary truncate",children:b.name}),c.jsx("span",{className:"text-[10px] text-text-quaternary ml-auto",children:b.status})]},b.uid)),c.jsx("div",{className:"h-px bg-border my-1"}),c.jsx("button",{type:"button",onClick:S,className:"w-full text-left px-3 py-1.5 text-[length:var(--font-size-xs)] text-accent-red hover:bg-bg-hover transition-colors",children:"Disable Team Mode"})]})]})]})}function wg(n){var i,s,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n)){var d=n.length;for(i=0;i<d;i++)n[i]&&(s=wg(n[i]))&&(r&&(r+=" "),r+=s)}else for(s in n)n[s]&&(r&&(r+=" "),r+=s);return r}function T0(){for(var n,i,s=0,r="",d=arguments.length;s<d;s++)(n=arguments[s])&&(i=wg(n))&&(r&&(r+=" "),r+=i);return r}const A0=(n,i)=>{const s=new Array(n.length+i.length);for(let r=0;r<n.length;r++)s[r]=n[r];for(let r=0;r<i.length;r++)s[n.length+r]=i[r];return s},k0=(n,i)=>({classGroupId:n,validator:i}),jg=(n=new Map,i=null,s)=>({nextPart:n,validators:i,classGroupId:s}),Li="-",Th=[],O0="arbitrary..",D0=n=>{const i=R0(n),{conflictingClassGroups:s,conflictingClassGroupModifiers:r}=n;return{getClassGroupId:p=>{if(p.startsWith("[")&&p.endsWith("]"))return M0(p);const h=p.split(Li),x=h[0]===""&&h.length>1?1:0;return Ng(h,x,i)},getConflictingClassGroupIds:(p,h)=>{if(h){const x=r[p],g=s[p];return x?g?A0(g,x):x:g||Th}return s[p]||Th}}},Ng=(n,i,s)=>{if(n.length-i===0)return s.classGroupId;const d=n[i],f=s.nextPart.get(d);if(f){const g=Ng(n,i+1,f);if(g)return g}const p=s.validators;if(p===null)return;const h=i===0?n.join(Li):n.slice(i).join(Li),x=p.length;for(let g=0;g<x;g++){const S=p[g];if(S.validator(h))return S.classGroupId}},M0=n=>n.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const i=n.slice(1,-1),s=i.indexOf(":"),r=i.slice(0,s);return r?O0+r:void 0})(),R0=n=>{const{theme:i,classGroups:s}=n;return z0(s,i)},z0=(n,i)=>{const s=jg();for(const r in n){const d=n[r];Zu(d,s,r,i)}return s},Zu=(n,i,s,r)=>{const d=n.length;for(let f=0;f<d;f++){const p=n[f];L0(p,i,s,r)}},L0=(n,i,s,r)=>{if(typeof n=="string"){U0(n,i,s);return}if(typeof n=="function"){B0(n,i,s,r);return}H0(n,i,s,r)},U0=(n,i,s)=>{const r=n===""?i:_g(i,n);r.classGroupId=s},B0=(n,i,s,r)=>{if(G0(n)){Zu(n(r),i,s,r);return}i.validators===null&&(i.validators=[]),i.validators.push(k0(s,n))},H0=(n,i,s,r)=>{const d=Object.entries(n),f=d.length;for(let p=0;p<f;p++){const[h,x]=d[p];Zu(x,_g(i,h),s,r)}},_g=(n,i)=>{let s=n;const r=i.split(Li),d=r.length;for(let f=0;f<d;f++){const p=r[f];let h=s.nextPart.get(p);h||(h=jg(),s.nextPart.set(p,h)),s=h}return s},G0=n=>"isThemeGetter"in n&&n.isThemeGetter===!0,q0=n=>{if(n<1)return{get:()=>{},set:()=>{}};let i=0,s=Object.create(null),r=Object.create(null);const d=(f,p)=>{s[f]=p,i++,i>n&&(i=0,r=s,s=Object.create(null))};return{get(f){let p=s[f];if(p!==void 0)return p;if((p=r[f])!==void 0)return d(f,p),p},set(f,p){f in s?s[f]=p:d(f,p)}}},Ru="!",Ah=":",I0=[],kh=(n,i,s,r,d)=>({modifiers:n,hasImportantModifier:i,baseClassName:s,maybePostfixModifierPosition:r,isExternal:d}),K0=n=>{const{prefix:i,experimentalParseClassName:s}=n;let r=d=>{const f=[];let p=0,h=0,x=0,g;const S=d.length;for(let A=0;A<S;A++){const O=d[A];if(p===0&&h===0){if(O===Ah){f.push(d.slice(x,A)),x=A+1;continue}if(O==="/"){g=A;continue}}O==="["?p++:O==="]"?p--:O==="("?h++:O===")"&&h--}const b=f.length===0?d:d.slice(x);let E=b,w=!1;b.endsWith(Ru)?(E=b.slice(0,-1),w=!0):b.startsWith(Ru)&&(E=b.slice(1),w=!0);const C=g&&g>x?g-x:void 0;return kh(f,w,E,C)};if(i){const d=i+Ah,f=r;r=p=>p.startsWith(d)?f(p.slice(d.length)):kh(I0,!1,p,void 0,!0)}if(s){const d=r;r=f=>s({className:f,parseClassName:d})}return r},Y0=n=>{const i=new Map;return n.orderSensitiveModifiers.forEach((s,r)=>{i.set(s,1e6+r)}),s=>{const r=[];let d=[];for(let f=0;f<s.length;f++){const p=s[f],h=p[0]==="[",x=i.has(p);h||x?(d.length>0&&(d.sort(),r.push(...d),d=[]),r.push(p)):d.push(p)}return d.length>0&&(d.sort(),r.push(...d)),r}},V0=n=>({cache:q0(n.cacheSize),parseClassName:K0(n),sortModifiers:Y0(n),...D0(n)}),X0=/\s+/,Q0=(n,i)=>{const{parseClassName:s,getClassGroupId:r,getConflictingClassGroupIds:d,sortModifiers:f}=i,p=[],h=n.trim().split(X0);let x="";for(let g=h.length-1;g>=0;g-=1){const S=h[g],{isExternal:b,modifiers:E,hasImportantModifier:w,baseClassName:C,maybePostfixModifierPosition:A}=s(S);if(b){x=S+(x.length>0?" "+x:x);continue}let O=!!A,T=r(O?C.substring(0,A):C);if(!T){if(!O){x=S+(x.length>0?" "+x:x);continue}if(T=r(C),!T){x=S+(x.length>0?" "+x:x);continue}O=!1}const X=E.length===0?"":E.length===1?E[0]:f(E).join(":"),Y=w?X+Ru:X,P=Y+T;if(p.indexOf(P)>-1)continue;p.push(P);const Z=d(T,O);for(let te=0;te<Z.length;++te){const H=Z[te];p.push(Y+H)}x=S+(x.length>0?" "+x:x)}return x},P0=(...n)=>{let i=0,s,r,d="";for(;i<n.length;)(s=n[i++])&&(r=Cg(s))&&(d&&(d+=" "),d+=r);return d},Cg=n=>{if(typeof n=="string")return n;let i,s="";for(let r=0;r<n.length;r++)n[r]&&(i=Cg(n[r]))&&(s&&(s+=" "),s+=i);return s},Z0=(n,...i)=>{let s,r,d,f;const p=x=>{const g=i.reduce((S,b)=>b(S),n());return s=V0(g),r=s.cache.get,d=s.cache.set,f=h,h(x)},h=x=>{const g=r(x);if(g)return g;const S=Q0(x,s);return d(x,S),S};return f=p,(...x)=>f(P0(...x))},J0=[],ct=n=>{const i=s=>s[n]||J0;return i.isThemeGetter=!0,i},Tg=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ag=/^\((?:(\w[\w-]*):)?(.+)\)$/i,F0=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,$0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,W0=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,e1=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,t1=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,a1=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mn=n=>F0.test(n),ye=n=>!!n&&!Number.isNaN(Number(n)),pn=n=>!!n&&Number.isInteger(Number(n)),xu=n=>n.endsWith("%")&&ye(n.slice(0,-1)),La=n=>$0.test(n),kg=()=>!0,n1=n=>W0.test(n)&&!e1.test(n),Ju=()=>!1,l1=n=>t1.test(n),s1=n=>a1.test(n),r1=n=>!le(n)&&!se(n),i1=n=>bn(n,Mg,Ju),le=n=>Tg.test(n),Gn=n=>bn(n,Rg,n1),Oh=n=>bn(n,h1,ye),o1=n=>bn(n,Lg,kg),c1=n=>bn(n,zg,Ju),Dh=n=>bn(n,Og,Ju),u1=n=>bn(n,Dg,s1),bi=n=>bn(n,Ug,l1),se=n=>Ag.test(n),qs=n=>Xn(n,Rg),d1=n=>Xn(n,zg),Mh=n=>Xn(n,Og),f1=n=>Xn(n,Mg),m1=n=>Xn(n,Dg),Si=n=>Xn(n,Ug,!0),p1=n=>Xn(n,Lg,!0),bn=(n,i,s)=>{const r=Tg.exec(n);return r?r[1]?i(r[1]):s(r[2]):!1},Xn=(n,i,s=!1)=>{const r=Ag.exec(n);return r?r[1]?i(r[1]):s:!1},Og=n=>n==="position"||n==="percentage",Dg=n=>n==="image"||n==="url",Mg=n=>n==="length"||n==="size"||n==="bg-size",Rg=n=>n==="length",h1=n=>n==="number",zg=n=>n==="family-name",Lg=n=>n==="number"||n==="weight",Ug=n=>n==="shadow",g1=()=>{const n=ct("color"),i=ct("font"),s=ct("text"),r=ct("font-weight"),d=ct("tracking"),f=ct("leading"),p=ct("breakpoint"),h=ct("container"),x=ct("spacing"),g=ct("radius"),S=ct("shadow"),b=ct("inset-shadow"),E=ct("text-shadow"),w=ct("drop-shadow"),C=ct("blur"),A=ct("perspective"),O=ct("aspect"),T=ct("ease"),X=ct("animate"),Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],P=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Z=()=>[...P(),se,le],te=()=>["auto","hidden","clip","visible","scroll"],H=()=>["auto","contain","none"],Q=()=>[se,le,x],fe=()=>[mn,"full","auto",...Q()],He=()=>[pn,"none","subgrid",se,le],Ae=()=>["auto",{span:["full",pn,se,le]},pn,se,le],ze=()=>[pn,"auto",se,le],F=()=>["auto","min","max","fr",se,le],Te=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],qe=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...Q()],J=()=>[mn,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...Q()],ie=()=>[mn,"screen","full","dvw","lvw","svw","min","max","fit",...Q()],be=()=>[mn,"screen","full","lh","dvh","lvh","svh","min","max","fit",...Q()],$=()=>[n,se,le],N=()=>[...P(),Mh,Dh,{position:[se,le]}],I=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ee=()=>["auto","cover","contain",f1,i1,{size:[se,le]}],D=()=>[xu,qs,Gn],B=()=>["","none","full",g,se,le],q=()=>["",ye,qs,Gn],ae=()=>["solid","dashed","dotted","double"],Se=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],oe=()=>[ye,xu,Mh,Dh],Ie=()=>["","none",C,se,le],je=()=>["none",ye,se,le],Qe=()=>["none",ye,se,le],it=()=>[ye,se,le],$e=()=>[mn,"full",...Q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[La],breakpoint:[La],color:[kg],container:[La],"drop-shadow":[La],ease:["in","out","in-out"],font:[r1],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[La],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[La],shadow:[La],spacing:["px",ye],text:[La],"text-shadow":[La],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",mn,le,se,O]}],container:["container"],columns:[{columns:[ye,le,se,h]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Z()}],overflow:[{overflow:te()}],"overflow-x":[{"overflow-x":te()}],"overflow-y":[{"overflow-y":te()}],overscroll:[{overscroll:H()}],"overscroll-x":[{"overscroll-x":H()}],"overscroll-y":[{"overscroll-y":H()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:fe()}],"inset-x":[{"inset-x":fe()}],"inset-y":[{"inset-y":fe()}],start:[{"inset-s":fe(),start:fe()}],end:[{"inset-e":fe(),end:fe()}],"inset-bs":[{"inset-bs":fe()}],"inset-be":[{"inset-be":fe()}],top:[{top:fe()}],right:[{right:fe()}],bottom:[{bottom:fe()}],left:[{left:fe()}],visibility:["visible","invisible","collapse"],z:[{z:[pn,"auto",se,le]}],basis:[{basis:[mn,"full","auto",h,...Q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ye,mn,"auto","initial","none",le]}],grow:[{grow:["",ye,se,le]}],shrink:[{shrink:["",ye,se,le]}],order:[{order:[pn,"first","last","none",se,le]}],"grid-cols":[{"grid-cols":He()}],"col-start-end":[{col:Ae()}],"col-start":[{"col-start":ze()}],"col-end":[{"col-end":ze()}],"grid-rows":[{"grid-rows":He()}],"row-start-end":[{row:Ae()}],"row-start":[{"row-start":ze()}],"row-end":[{"row-end":ze()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":F()}],"auto-rows":[{"auto-rows":F()}],gap:[{gap:Q()}],"gap-x":[{"gap-x":Q()}],"gap-y":[{"gap-y":Q()}],"justify-content":[{justify:[...Te(),"normal"]}],"justify-items":[{"justify-items":[...qe(),"normal"]}],"justify-self":[{"justify-self":["auto",...qe()]}],"align-content":[{content:["normal",...Te()]}],"align-items":[{items:[...qe(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...qe(),{baseline:["","last"]}]}],"place-content":[{"place-content":Te()}],"place-items":[{"place-items":[...qe(),"baseline"]}],"place-self":[{"place-self":["auto",...qe()]}],p:[{p:Q()}],px:[{px:Q()}],py:[{py:Q()}],ps:[{ps:Q()}],pe:[{pe:Q()}],pbs:[{pbs:Q()}],pbe:[{pbe:Q()}],pt:[{pt:Q()}],pr:[{pr:Q()}],pb:[{pb:Q()}],pl:[{pl:Q()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mbs:[{mbs:L()}],mbe:[{mbe:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":Q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":Q()}],"space-y-reverse":["space-y-reverse"],size:[{size:J()}],"inline-size":[{inline:["auto",...ie()]}],"min-inline-size":[{"min-inline":["auto",...ie()]}],"max-inline-size":[{"max-inline":["none",...ie()]}],"block-size":[{block:["auto",...be()]}],"min-block-size":[{"min-block":["auto",...be()]}],"max-block-size":[{"max-block":["none",...be()]}],w:[{w:[h,"screen",...J()]}],"min-w":[{"min-w":[h,"screen","none",...J()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[p]},...J()]}],h:[{h:["screen","lh",...J()]}],"min-h":[{"min-h":["screen","lh","none",...J()]}],"max-h":[{"max-h":["screen","lh",...J()]}],"font-size":[{text:["base",s,qs,Gn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,p1,o1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",xu,le]}],"font-family":[{font:[d1,c1,i]}],"font-features":[{"font-features":[le]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[d,se,le]}],"line-clamp":[{"line-clamp":[ye,"none",se,Oh]}],leading:[{leading:[f,...Q()]}],"list-image":[{"list-image":["none",se,le]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",se,le]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:$()}],"text-color":[{text:$()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[ye,"from-font","auto",se,Gn]}],"text-decoration-color":[{decoration:$()}],"underline-offset":[{"underline-offset":[ye,"auto",se,le]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:Q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",se,le]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",se,le]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:N()}],"bg-repeat":[{bg:I()}],"bg-size":[{bg:ee()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},pn,se,le],radial:["",se,le],conic:[pn,se,le]},m1,u1]}],"bg-color":[{bg:$()}],"gradient-from-pos":[{from:D()}],"gradient-via-pos":[{via:D()}],"gradient-to-pos":[{to:D()}],"gradient-from":[{from:$()}],"gradient-via":[{via:$()}],"gradient-to":[{to:$()}],rounded:[{rounded:B()}],"rounded-s":[{"rounded-s":B()}],"rounded-e":[{"rounded-e":B()}],"rounded-t":[{"rounded-t":B()}],"rounded-r":[{"rounded-r":B()}],"rounded-b":[{"rounded-b":B()}],"rounded-l":[{"rounded-l":B()}],"rounded-ss":[{"rounded-ss":B()}],"rounded-se":[{"rounded-se":B()}],"rounded-ee":[{"rounded-ee":B()}],"rounded-es":[{"rounded-es":B()}],"rounded-tl":[{"rounded-tl":B()}],"rounded-tr":[{"rounded-tr":B()}],"rounded-br":[{"rounded-br":B()}],"rounded-bl":[{"rounded-bl":B()}],"border-w":[{border:q()}],"border-w-x":[{"border-x":q()}],"border-w-y":[{"border-y":q()}],"border-w-s":[{"border-s":q()}],"border-w-e":[{"border-e":q()}],"border-w-bs":[{"border-bs":q()}],"border-w-be":[{"border-be":q()}],"border-w-t":[{"border-t":q()}],"border-w-r":[{"border-r":q()}],"border-w-b":[{"border-b":q()}],"border-w-l":[{"border-l":q()}],"divide-x":[{"divide-x":q()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":q()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ae(),"hidden","none"]}],"divide-style":[{divide:[...ae(),"hidden","none"]}],"border-color":[{border:$()}],"border-color-x":[{"border-x":$()}],"border-color-y":[{"border-y":$()}],"border-color-s":[{"border-s":$()}],"border-color-e":[{"border-e":$()}],"border-color-bs":[{"border-bs":$()}],"border-color-be":[{"border-be":$()}],"border-color-t":[{"border-t":$()}],"border-color-r":[{"border-r":$()}],"border-color-b":[{"border-b":$()}],"border-color-l":[{"border-l":$()}],"divide-color":[{divide:$()}],"outline-style":[{outline:[...ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ye,se,le]}],"outline-w":[{outline:["",ye,qs,Gn]}],"outline-color":[{outline:$()}],shadow:[{shadow:["","none",S,Si,bi]}],"shadow-color":[{shadow:$()}],"inset-shadow":[{"inset-shadow":["none",b,Si,bi]}],"inset-shadow-color":[{"inset-shadow":$()}],"ring-w":[{ring:q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:$()}],"ring-offset-w":[{"ring-offset":[ye,Gn]}],"ring-offset-color":[{"ring-offset":$()}],"inset-ring-w":[{"inset-ring":q()}],"inset-ring-color":[{"inset-ring":$()}],"text-shadow":[{"text-shadow":["none",E,Si,bi]}],"text-shadow-color":[{"text-shadow":$()}],opacity:[{opacity:[ye,se,le]}],"mix-blend":[{"mix-blend":[...Se(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Se()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ye]}],"mask-image-linear-from-pos":[{"mask-linear-from":oe()}],"mask-image-linear-to-pos":[{"mask-linear-to":oe()}],"mask-image-linear-from-color":[{"mask-linear-from":$()}],"mask-image-linear-to-color":[{"mask-linear-to":$()}],"mask-image-t-from-pos":[{"mask-t-from":oe()}],"mask-image-t-to-pos":[{"mask-t-to":oe()}],"mask-image-t-from-color":[{"mask-t-from":$()}],"mask-image-t-to-color":[{"mask-t-to":$()}],"mask-image-r-from-pos":[{"mask-r-from":oe()}],"mask-image-r-to-pos":[{"mask-r-to":oe()}],"mask-image-r-from-color":[{"mask-r-from":$()}],"mask-image-r-to-color":[{"mask-r-to":$()}],"mask-image-b-from-pos":[{"mask-b-from":oe()}],"mask-image-b-to-pos":[{"mask-b-to":oe()}],"mask-image-b-from-color":[{"mask-b-from":$()}],"mask-image-b-to-color":[{"mask-b-to":$()}],"mask-image-l-from-pos":[{"mask-l-from":oe()}],"mask-image-l-to-pos":[{"mask-l-to":oe()}],"mask-image-l-from-color":[{"mask-l-from":$()}],"mask-image-l-to-color":[{"mask-l-to":$()}],"mask-image-x-from-pos":[{"mask-x-from":oe()}],"mask-image-x-to-pos":[{"mask-x-to":oe()}],"mask-image-x-from-color":[{"mask-x-from":$()}],"mask-image-x-to-color":[{"mask-x-to":$()}],"mask-image-y-from-pos":[{"mask-y-from":oe()}],"mask-image-y-to-pos":[{"mask-y-to":oe()}],"mask-image-y-from-color":[{"mask-y-from":$()}],"mask-image-y-to-color":[{"mask-y-to":$()}],"mask-image-radial":[{"mask-radial":[se,le]}],"mask-image-radial-from-pos":[{"mask-radial-from":oe()}],"mask-image-radial-to-pos":[{"mask-radial-to":oe()}],"mask-image-radial-from-color":[{"mask-radial-from":$()}],"mask-image-radial-to-color":[{"mask-radial-to":$()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":P()}],"mask-image-conic-pos":[{"mask-conic":[ye]}],"mask-image-conic-from-pos":[{"mask-conic-from":oe()}],"mask-image-conic-to-pos":[{"mask-conic-to":oe()}],"mask-image-conic-from-color":[{"mask-conic-from":$()}],"mask-image-conic-to-color":[{"mask-conic-to":$()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:N()}],"mask-repeat":[{mask:I()}],"mask-size":[{mask:ee()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",se,le]}],filter:[{filter:["","none",se,le]}],blur:[{blur:Ie()}],brightness:[{brightness:[ye,se,le]}],contrast:[{contrast:[ye,se,le]}],"drop-shadow":[{"drop-shadow":["","none",w,Si,bi]}],"drop-shadow-color":[{"drop-shadow":$()}],grayscale:[{grayscale:["",ye,se,le]}],"hue-rotate":[{"hue-rotate":[ye,se,le]}],invert:[{invert:["",ye,se,le]}],saturate:[{saturate:[ye,se,le]}],sepia:[{sepia:["",ye,se,le]}],"backdrop-filter":[{"backdrop-filter":["","none",se,le]}],"backdrop-blur":[{"backdrop-blur":Ie()}],"backdrop-brightness":[{"backdrop-brightness":[ye,se,le]}],"backdrop-contrast":[{"backdrop-contrast":[ye,se,le]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ye,se,le]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ye,se,le]}],"backdrop-invert":[{"backdrop-invert":["",ye,se,le]}],"backdrop-opacity":[{"backdrop-opacity":[ye,se,le]}],"backdrop-saturate":[{"backdrop-saturate":[ye,se,le]}],"backdrop-sepia":[{"backdrop-sepia":["",ye,se,le]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":Q()}],"border-spacing-x":[{"border-spacing-x":Q()}],"border-spacing-y":[{"border-spacing-y":Q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",se,le]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ye,"initial",se,le]}],ease:[{ease:["linear","initial",T,se,le]}],delay:[{delay:[ye,se,le]}],animate:[{animate:["none",X,se,le]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[A,se,le]}],"perspective-origin":[{"perspective-origin":Z()}],rotate:[{rotate:je()}],"rotate-x":[{"rotate-x":je()}],"rotate-y":[{"rotate-y":je()}],"rotate-z":[{"rotate-z":je()}],scale:[{scale:Qe()}],"scale-x":[{"scale-x":Qe()}],"scale-y":[{"scale-y":Qe()}],"scale-z":[{"scale-z":Qe()}],"scale-3d":["scale-3d"],skew:[{skew:it()}],"skew-x":[{"skew-x":it()}],"skew-y":[{"skew-y":it()}],transform:[{transform:[se,le,"","none","gpu","cpu"]}],"transform-origin":[{origin:Z()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:$e()}],"translate-x":[{"translate-x":$e()}],"translate-y":[{"translate-y":$e()}],"translate-z":[{"translate-z":$e()}],"translate-none":["translate-none"],accent:[{accent:$()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:$()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",se,le]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":Q()}],"scroll-mx":[{"scroll-mx":Q()}],"scroll-my":[{"scroll-my":Q()}],"scroll-ms":[{"scroll-ms":Q()}],"scroll-me":[{"scroll-me":Q()}],"scroll-mbs":[{"scroll-mbs":Q()}],"scroll-mbe":[{"scroll-mbe":Q()}],"scroll-mt":[{"scroll-mt":Q()}],"scroll-mr":[{"scroll-mr":Q()}],"scroll-mb":[{"scroll-mb":Q()}],"scroll-ml":[{"scroll-ml":Q()}],"scroll-p":[{"scroll-p":Q()}],"scroll-px":[{"scroll-px":Q()}],"scroll-py":[{"scroll-py":Q()}],"scroll-ps":[{"scroll-ps":Q()}],"scroll-pe":[{"scroll-pe":Q()}],"scroll-pbs":[{"scroll-pbs":Q()}],"scroll-pbe":[{"scroll-pbe":Q()}],"scroll-pt":[{"scroll-pt":Q()}],"scroll-pr":[{"scroll-pr":Q()}],"scroll-pb":[{"scroll-pb":Q()}],"scroll-pl":[{"scroll-pl":Q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",se,le]}],fill:[{fill:["none",...$()]}],"stroke-w":[{stroke:[ye,qs,Gn,Oh]}],stroke:[{stroke:["none",...$()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},v1=Z0(g1);function me(...n){return v1(T0(n))}const x1={mode:[{value:"interactive",label:"Interactive"},{value:"auto",label:"Auto"},{value:"review",label:"Review"}],granularity:[{value:"minimal",label:"Minimal"},{value:"standard",label:"Standard"},{value:"detailed",label:"Detailed"}],model_profile:[{value:"fast",label:"Fast"},{value:"balanced",label:"Balanced"},{value:"quality",label:"Quality"}],"execution.method":[{value:"agent",label:"Agent"},{value:"direct",label:"Direct"}],"git.branching":[{value:"none",label:"None"},{value:"per-milestone",label:"Per Milestone"},{value:"per-phase",label:"Per Phase"}]};function y1({label:n,checked:i,onChange:s}){return c.jsxs("div",{className:"flex items-center justify-between py-[3px]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary truncate mr-2",children:n}),c.jsx("button",{type:"button",onClick:()=>s(!i),className:me("relative inline-flex h-[18px] w-[32px] shrink-0 cursor-pointer rounded-full border-2 border-transparent","transition-colors duration-[var(--duration-fast)]",i?"bg-accent-blue":"bg-border"),children:c.jsx("span",{className:me("pointer-events-none inline-block h-[14px] w-[14px] rounded-full bg-white shadow-sm","transition-transform duration-[var(--duration-fast)]",i?"translate-x-[14px]":"translate-x-0")})})]})}function b1({value:n,onChange:i,options:s}){return c.jsx("select",{value:n,onChange:r=>i(r.target.value),className:me("px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)]","border border-border bg-bg-primary text-text-primary","focus:outline-none focus:border-accent-blue"),children:s.map(r=>c.jsx("option",{value:r.value,children:r.label},r.value))})}function S1({value:n,onChange:i}){return c.jsx("input",{type:"number",value:n,onChange:s=>i(Number(s.target.value)),className:me("w-16 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)]","border border-border bg-bg-primary text-text-primary text-right","focus:outline-none focus:border-accent-blue")})}function E1({value:n,onChange:i}){return c.jsx("input",{type:"text",value:n,onChange:s=>i(s.target.value),className:me("w-28 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)]","border border-border bg-bg-primary text-text-primary","focus:outline-none focus:border-accent-blue")})}function Ei({label:n,children:i}){return c.jsxs("div",{className:"flex items-center justify-between py-[3px]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary truncate mr-2",children:n}),i]})}function Fu(){const{t:n}=St();return(i,s)=>{const r=n(i);return r===i?s.replace(/_/g," ").replace(/\b\w/g,d=>d.toUpperCase()):r}}function Bg({fieldKey:n,value:i,path:s,onChange:r}){const d=Fu(),f=`workflow_config.${s}`,p=d(f,n);if(typeof i=="boolean")return c.jsx(y1,{label:p,checked:i,onChange:r});if(typeof i=="number")return c.jsx(Ei,{label:p,children:c.jsx(S1,{value:i,onChange:h=>r(h)})});if(typeof i=="string"){const h=x1[s];return h?c.jsx(Ei,{label:p,children:c.jsx(b1,{value:i,onChange:r,options:h})}):c.jsx(Ei,{label:p,children:c.jsx(E1,{value:i,onChange:r})})}return c.jsx(Ei,{label:p,children:c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:String(i)})})}function Hg({sectionKey:n,obj:i,parentPath:s,onChange:r}){const d=Fu(),f=`workflow_config.${s}.title`,p=d(f,n);return c.jsxs("div",{children:[c.jsx("h4",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary mb-[var(--spacing-1)] uppercase tracking-wide",children:p}),c.jsx("div",{className:"flex flex-col",children:Object.entries(i).map(([h,x])=>{const g=`${s}.${h}`;return x!==null&&typeof x=="object"&&!Array.isArray(x)?c.jsx(Hg,{sectionKey:h,obj:x,parentPath:g,onChange:S=>r({...i,[h]:S})},h):c.jsx(Bg,{fieldKey:h,value:x,path:g,onChange:S=>r({...i,[h]:S})},h)})})]})}function w1(){const{t:n}=St(),i=ia(C=>C.open),s=ia(C=>C.setOpen),r=ia(C=>C.draft),d=ia(C=>C.loading),f=ia(C=>C.saving),p=ia(C=>C.isDirty()),h=ia(C=>C.updateDraft),x=ia(C=>C.save),g=ia(C=>C.discard),S=v.useRef(null),b=v.useCallback(C=>{if(S.current&&!S.current.contains(C.target)){if(C.target.closest("[data-workflow-config-trigger]"))return;s(!1)}},[s]);if(v.useEffect(()=>{if(i)return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[i,b]),v.useEffect(()=>{if(!i)return;const C=A=>{A.key==="Escape"&&s(!1)};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[i,s]),!i)return null;const E=Fu(),w=r&&Object.keys(r).length>0;return c.jsxs("div",{ref:S,className:me("absolute top-[calc(var(--size-topbar-height)+4px)] right-[var(--spacing-4)] z-50","w-[340px] max-h-[calc(100vh-var(--size-topbar-height)-40px)]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-[var(--style-modal-shadow)]","flex flex-col overflow-hidden","animate-in fade-in-0 zoom-in-95 duration-150"),children:[c.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-3)] py-[var(--spacing-2)] border-b border-border shrink-0",children:[c.jsx("h3",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:n("workflow_config.title")}),c.jsx("button",{type:"button",onClick:()=>s(!1),className:"w-6 h-6 flex items-center justify-center rounded-[var(--radius-sm)] text-text-secondary hover:text-text-primary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",children:c.jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),c.jsx("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-3)] py-[var(--spacing-2)] space-y-[var(--spacing-3)]",children:d&&!r?c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-secondary text-center py-4",children:n("workflow_config.loading")}):w?c.jsxs(c.Fragment,{children:[(()=>{const C=Object.entries(r).filter(([,A])=>A===null||typeof A!="object");return C.length===0?null:c.jsxs("div",{children:[c.jsx("h4",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary mb-[var(--spacing-1)] uppercase tracking-wide",children:E("workflow_config.top.title","Profile")}),c.jsx("div",{className:"flex flex-col",children:C.map(([A,O])=>c.jsx(Bg,{fieldKey:A,value:O,path:A,onChange:T=>h(A,T)},A))})]})})(),Object.entries(r).filter(([,C])=>C!==null&&typeof C=="object"&&!Array.isArray(C)).map(([C,A])=>c.jsx(Hg,{sectionKey:C,obj:A,parentPath:C,onChange:O=>h(C,O)},C))]}):c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-secondary text-center py-4",children:n("workflow_config.empty")})}),p&&c.jsxs("div",{className:"flex items-center justify-end gap-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] border-t border-border shrink-0 bg-bg-secondary/95",children:[c.jsx("button",{type:"button",onClick:g,disabled:f,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","border border-border text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50"),children:n("workflow_config.discard")}),c.jsx("button",{type:"button",onClick:()=>void x(),disabled:f,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","bg-accent-blue text-white hover:opacity-90","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50"),children:n(f?"workflow_config.saving":"workflow_config.save")})]})]})}function j1(){const n=Vt(S=>S.board),i=Vt(S=>S.connected),s=pe(S=>S.setOpen),r=ia(S=>S.open),d=ia(S=>S.setOpen),{t:f,locale:p,setLocale:h}=St(),x=n==null?void 0:n.project,g=()=>{h(p==="en"?"zh-CN":"en")};return c.jsxs("header",{role:"banner",className:"relative flex items-center justify-between px-[var(--spacing-4)] h-[var(--size-topbar-height)] bg-bg-secondary border-b border-border shrink-0",children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)]",children:[c.jsx("span",{className:"font-[800] text-[length:var(--font-size-base)] text-text-primary tracking-[-0.02em]","aria-hidden":"true",children:"Maestro"}),c.jsx(j0,{}),x&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"text-text-placeholder text-[length:var(--font-size-sm)]",children:"·"}),c.jsx("span",{className:"text-text-secondary text-[length:var(--font-size-sm)] truncate max-w-[200px]",children:x.current_milestone||x.project_name})]})]}),c.jsx("div",{className:"flex-1 flex justify-center",children:c.jsx(y0,{})}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-4)]",children:[c.jsxs("button",{type:"button",onClick:g,"aria-label":f("language_switcher.aria_label"),className:["flex items-center gap-[var(--spacing-1-5)] px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","transition-all duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]","hover:bg-bg-hover",p==="zh-CN"?"text-accent-blue":"text-text-secondary"].join(" "),children:[c.jsx("span",{className:"tabular-nums",children:f(p==="en"?"language_switcher.en":"language_switcher.zh")}),c.jsx("span",{className:"text-text-tertiary",children:"/"}),c.jsx("span",{className:"tabular-nums",children:f(p==="en"?"language_switcher.zh":"language_switcher.en")})]}),x&&c.jsx(C0,{}),x&&c.jsxs("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary transition-opacity duration-[var(--duration-normal)] ease-[var(--ease-in-out)] hidden sm:inline",children:[f("topbar.phase")," ",x.current_phase," ",f("topbar.of")," ",x.phases_summary.total]}),c.jsx("button",{type:"button","data-workflow-config-trigger":!0,onClick:()=>d(!r),"aria-label":f("workflow_config.btn_aria"),className:["flex items-center justify-center w-8 h-8 rounded-[var(--radius-sm)]",r?"text-accent-blue bg-accent-blue/10":"text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),children:c.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"4",y1:"21",x2:"4",y2:"14"}),c.jsx("line",{x1:"4",y1:"10",x2:"4",y2:"3"}),c.jsx("line",{x1:"12",y1:"21",x2:"12",y2:"12"}),c.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"3"}),c.jsx("line",{x1:"20",y1:"21",x2:"20",y2:"16"}),c.jsx("line",{x1:"20",y1:"12",x2:"20",y2:"3"}),c.jsx("line",{x1:"1",y1:"14",x2:"7",y2:"14"}),c.jsx("line",{x1:"9",y1:"8",x2:"15",y2:"8"}),c.jsx("line",{x1:"17",y1:"16",x2:"23",y2:"16"})]})}),c.jsx("button",{type:"button",onClick:()=>s(!0),"aria-label":"Open settings",className:["flex items-center justify-center w-8 h-8 rounded-[var(--radius-sm)]","text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" "),children:c.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("circle",{cx:"12",cy:"12",r:"3"}),c.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]})}),c.jsxs("span",{role:"status","aria-live":"polite","aria-label":f(i?"topbar.connection.aria_connected":"topbar.connection.aria_disconnected"),className:["flex items-center gap-[5px] text-[length:10px] font-[var(--font-weight-semibold)] px-[10px] py-[3px] rounded-full","transition-colors duration-[var(--duration-smooth)] ease-[var(--ease-notion)]",i?"bg-[rgba(90,158,120,0.12)] text-status-completed":"bg-[rgba(196,101,85,0.12)] text-status-blocked"].join(" "),children:[c.jsx("span",{className:`w-1.5 h-1.5 rounded-full bg-current ${i?"animate-pulse":""}`}),f(i?"topbar.connection.connected":"topbar.connection.disconnected")]})]}),c.jsx(w1,{})]})}/**
78
78
  * @license lucide-react v0.577.0 - ISC
79
79
  *
80
80
  * This source code is licensed under the ISC license.
@@ -189,7 +189,7 @@ Error generating stack: `+l.message+`
189
189
  *
190
190
  * This source code is licensed under the ISC license.
191
191
  * See the LICENSE file in the root directory of this source tree.
192
- */const lS=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],sS=Ct("chevron-down",lS),zl=500,rS=1800*1e3,qg="maestro-session-titles";function iS(){try{const n=localStorage.getItem(qg);return n?JSON.parse(n):{}}catch{return{}}}function oS(n){try{localStorage.setItem(qg,JSON.stringify(n))}catch{}}const Ua=new Map,oa=_t(n=>({processes:{},entries:{},pendingApprovals:{},activeProcessId:null,processThoughts:{},processStreaming:{},processTokenUsage:{},selectedProcessIds:new Set,processTitles:iS(),addProcess:i=>n(s=>{var p;const r=s.entries[i.id];if(r&&r.length>0)return{processes:{...s.processes,[i.id]:i}};const d=(p=i.config)==null?void 0:p.prompt,f=d?[{id:`synth-user-${i.id}`,processId:i.id,timestamp:i.startedAt,type:"user_message",content:d}]:[];return{processes:{...s.processes,[i.id]:i},entries:{...s.entries,[i.id]:f}}}),removeProcess:i=>n(s=>{const{[i]:r,...d}=s.processes;return{processes:d}}),updateProcessStatus:(i,s)=>{if(s==="stopped"||s==="error"){if(!Ua.has(i)){const r=setTimeout(()=>{Ua.delete(i);const{processes:d,activeProcessId:f,dismissProcess:p}=oa.getState(),h=d[i];h&&(h.status==="stopped"||h.status==="error")&&f!==i&&p(i)},rS);Ua.set(i,r)}}else{const r=Ua.get(i);r&&(clearTimeout(r),Ua.delete(i))}n(r=>{const d=r.processes[i];return d?{processes:{...r.processes,[i]:{...d,status:s}}}:r})},addEntry:(i,s)=>n(r=>{const d=r.entries[i]??[];if(s.id&&d.some(p=>p.id===s.id))return r;let f;if(s.type==="assistant_message"){const p=d.length-1,h=p>=0?d[p]:null;if(s.partial&&(h==null?void 0:h.type)==="assistant_message"&&h.partial){const x={...h,content:h.content+s.content,id:s.id};f=d.slice(),f[p]=x}else!s.partial&&(h==null?void 0:h.type)==="assistant_message"&&h.partial?(f=d.slice(),f[p]=s):f=[...d,s]}else f=[...d,s];return{entries:{...r.entries,[i]:f.length>zl?f.slice(-zl):f}}}),setEntries:(i,s)=>n(r=>({entries:{...r.entries,[i]:s.length>zl?s.slice(-zl):s}})),batchAddEntries:i=>n(s=>{const r={...s.entries};for(const[d,f]of Object.entries(i)){const p=r[d]??[],h=new Set(p.map(S=>S.id).filter(Boolean)),x=f.filter(S=>!S.id||!h.has(S.id));if(x.length===0)continue;const g=[...p,...x];r[d]=g.length>zl?g.slice(-zl):g}return{entries:r}}),setApproval:i=>n(s=>({pendingApprovals:{...s.pendingApprovals,[i.id]:i}})),clearApproval:i=>n(s=>{const{[i]:r,...d}=s.pendingApprovals;return{pendingApprovals:d}}),setActiveProcessId:i=>n({activeProcessId:i}),setProcessThought:(i,s)=>n(r=>({processThoughts:{...r.processThoughts,[i]:s}})),setProcessStreaming:(i,s)=>n(r=>({processStreaming:{...r.processStreaming,[i]:s}})),updateProcessTokenUsage:(i,s,r,d,f)=>n(p=>{const h=p.processTokenUsage[i]??{input:0,output:0,cacheRead:0,cacheWrite:0};return{processTokenUsage:{...p.processTokenUsage,[i]:{input:h.input+s,output:h.output+r,cacheRead:h.cacheRead+d,cacheWrite:h.cacheWrite+f}}}}),dismissProcess:i=>{const s=Ua.get(i);if(s&&(clearTimeout(s),Ua.delete(i)),i.startsWith("cli-history-")){const r=i.slice(12);fetch(`/api/cli-history/${encodeURIComponent(r)}`,{method:"DELETE"}).catch(()=>{})}fetch(`/api/agents/${encodeURIComponent(i)}`,{method:"DELETE"}).catch(()=>{}),n(r=>{const{[i]:d,...f}=r.processes,{[i]:p,...h}=r.entries,{[i]:x,...g}=r.processThoughts,{[i]:S,...b}=r.processStreaming,{[i]:E,...w}=r.processTokenUsage,C={};for(const[A,O]of Object.entries(r.pendingApprovals))O.processId!==i&&(C[A]=O);return{processes:f,entries:h,processThoughts:g,processStreaming:b,processTokenUsage:w,pendingApprovals:C,activeProcessId:r.activeProcessId===i?null:r.activeProcessId}})},cleanupStaleProcesses:()=>{const{processes:i,activeProcessId:s,dismissProcess:r}=oa.getState();for(const[d,f]of Object.entries(i))(f.status==="stopped"||f.status==="error")&&s!==d&&r(d)},toggleProcessSelection:i=>n(s=>{const r=new Set(s.selectedProcessIds);return r.has(i)?r.delete(i):r.add(i),{selectedProcessIds:r}}),clearProcessSelection:()=>n({selectedProcessIds:new Set}),renameProcess:(i,s)=>n(r=>{const d={...r.processTitles,[i]:s};return oS(d),{processTitles:d}}),batchDismissProcesses:i=>{const{dismissProcess:s}=oa.getState();for(const r of i)s(r);n({selectedProcessIds:new Set})},getProcessTitle:i=>oa.getState().processTitles[i]||void 0,clearAll:()=>{for(const i of Ua.values())clearTimeout(i);Ua.clear(),n({processes:{},entries:{},pendingApprovals:{},activeProcessId:null,processThoughts:{},processStreaming:{},processTokenUsage:{},selectedProcessIds:new Set})}})),zu=_t((n,i)=>({issues:[],loading:!1,error:null,patchIssue:s=>n(r=>{const d=r.issues.findIndex(f=>f.id===s.id);if(d>=0){const f=[...r.issues];return f[d]=s,{issues:f}}return{issues:[...r.issues,s]}}),fetchIssues:async s=>{n({loading:!0,error:null});try{const r=new URLSearchParams;s!=null&&s.status&&r.set("status",s.status),s!=null&&s.type&&r.set("type",s.type);const d=r.toString(),f=Gs.ISSUES+(d?`?${d}`:""),p=await fetch(f);if(!p.ok)throw new Error(`Failed to fetch issues: ${p.status}`);const h=await p.json();n({issues:h,loading:!1})}catch(r){n({loading:!1,error:String(r)})}},createIssue:async s=>{n({error:null});try{const r=await fetch(Gs.ISSUES,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!r.ok){const f=await r.json().catch(()=>({error:`HTTP ${r.status}`}));throw new Error(f.error)}const d=await r.json();return n(f=>({issues:[...f.issues,d]})),d}catch(r){return n({error:String(r)}),null}},updateIssue:async(s,r)=>{n({error:null});const d=i().issues;n(f=>({issues:f.issues.map(p=>p.id===s?{...p,...r,updated_at:new Date().toISOString()}:p)}));try{const f=Gs.ISSUES+`/${s}`,p=await fetch(f,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!p.ok)throw new Error(`Failed to update issue: ${p.status}`);const h=await p.json();n(x=>({issues:x.issues.map(g=>g.id===s?h:g)}))}catch(f){n({issues:d,error:String(f)})}},deleteIssue:async s=>{n({error:null});const r=i().issues;n(d=>({issues:d.issues.filter(f=>f.id!==s)}));try{const d=Gs.ISSUES+`/${s}`,f=await fetch(d,{method:"DELETE"});if(!f.ok)throw new Error(`Failed to delete issue: ${f.status}`)}catch(d){n({issues:r,error:String(d)})}},addSupplement:async(s,r,d,f)=>{const p=i().issues.find(S=>S.id===s);if(!p)return;const h=p.supplements??[],x={content:r,stage:d,author:f,created_at:new Date().toISOString()},g=[...h,x];n(S=>({issues:S.issues.map(b=>b.id===s?{...b,supplements:g,updated_at:new Date().toISOString()}:b)}));try{const S=Gs.ISSUES+`/${s}`;await fetch(S,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({supplements:g})})}catch(S){n({error:String(S)})}}})),cS=[],uS=[{labelKey:"nav.kanban",tooltipKey:"dock.kanban_tooltip",path:"/kanban",icon:"kanban",shortcut:"K"},{labelKey:"nav.artifacts",tooltipKey:"dock.artifacts_tooltip",path:"/artifacts",icon:"artifacts",shortcut:"A"},{labelKey:"nav.chat",tooltipKey:"dock.chat_tooltip",path:"/chat",icon:"chat",shortcut:"C"},{labelKey:"nav.workflow",tooltipKey:"dock.workflow_tooltip",path:"/workflow",icon:"workflow",shortcut:"W"},{labelKey:"nav.mcp",tooltipKey:"dock.mcp_tooltip",path:"/mcp",icon:"mcp",shortcut:"M"},{labelKey:"nav.specs",tooltipKey:"dock.specs_tooltip",path:"/specs",icon:"specs",shortcut:"S"},{labelKey:"nav.teams",tooltipKey:"dock.teams_tooltip",path:"/teams",icon:"teams",shortcut:"T"},{labelKey:"nav.collab",tooltipKey:"dock.collab_tooltip",path:"/collab",icon:"collab",shortcut:"L"},{labelKey:"nav.requirement",tooltipKey:"dock.requirement_tooltip",path:"/requirement",icon:"requirement",shortcut:"R"},{labelKey:"nav.maestro_coordinate",tooltipKey:"dock.maestro_coordinate_tooltip",path:"/maestro-coordinate",icon:"maestro-coordinate",shortcut:"V"},{labelKey:"nav.rooms",tooltipKey:"dock.rooms_tooltip",path:"/rooms",icon:"rooms",shortcut:"O"}];function dS({isPinned:n,onTogglePin:i}){const{t:s}=St(),r=Vt(F=>{var Te;return((Te=F.board)==null?void 0:Te.phases)??cS}),d=oa(F=>F.processes),f=oa(F=>F.activeProcessId),p=Vt(F=>F.selectedPhase),h=Vt(F=>F.setSelectedPhase),x=zu(F=>F.issues),g=zu(F=>F.fetchIssues),S=Gi(),b=Ha();v.useEffect(()=>{g()},[g]);const E=v.useMemo(()=>{const F={open:0,in_progress:0,resolved:0,closed:0,total:0};for(const Te of x)F.total++,Te.status in F&&F[Te.status]++;return F},[x]),w=v.useRef(null),C=v.useRef(null),[A,O]=v.useState(!1),T=v.useMemo(()=>{const F=Date.now()-864e5;return Object.values(d).filter(Te=>new Date(Te.startedAt).getTime()>F)},[d]),X=pe(F=>{var qe,L,J,ie;return((L=(qe=F.draft)==null?void 0:qe.general)==null?void 0:L.hiddenNavItems)??((ie=(J=F.config)==null?void 0:J.general)==null?void 0:ie.hiddenNavItems)}),Y=v.useMemo(()=>["/maestro-coordinate","/requirement","/rooms"],[]),P=X??Y,Z=v.useMemo(()=>uS.filter(F=>!P.includes(F.path)),[P]),[te,H]=v.useState(!1),Q=5,fe=v.useCallback(()=>{n||O(!0)},[n]),He=v.useCallback(F=>{var Te;!n&&!(F.relatedTarget instanceof Node&&((Te=C.current)!=null&&Te.contains(F.relatedTarget)))&&O(!1)},[n]),Ae=v.useCallback(F=>{var Te;!n&&!(F.relatedTarget instanceof Node&&((Te=w.current)!=null&&Te.contains(F.relatedTarget)))&&O(!1)},[n]),ze=v.useCallback(F=>{S(F),O(!1)},[S]);return c.jsxs("div",{className:"relative flex",children:[c.jsxs("nav",{ref:w,role:"navigation","aria-label":s("nav.views"),className:"w-[var(--size-rail-width)] bg-bg-secondary border-r border-border flex-shrink-0 flex flex-col items-center pt-2 gap-0.5 z-50",onMouseEnter:fe,onMouseLeave:He,children:[Z.map(F=>c.jsx(fS,{item:F,isActive:b.pathname.startsWith(F.path),onActivate:()=>ze(F.path),t:s},F.path)),c.jsx("div",{className:"w-6 h-px bg-border-divider my-1.5","aria-hidden":"true"}),c.jsx("div",{className:"flex flex-col items-center gap-1.5 py-1",role:"list","aria-label":s("dock.phases_label"),children:T.length>0?T.slice(0,Q).map(F=>c.jsx(hS,{process:F,isActive:F.id===f,onSelect:()=>{oa.getState().setActiveProcessId(F.id),S("/chat")}},F.id)):r.map(F=>c.jsx(gS,{phase:F,t:s},F.phase))}),c.jsx("button",{type:"button",onClick:i,"aria-label":s("dock.toggle_sidebar"),className:["mt-auto mb-2 flex items-center justify-center w-9 h-9 rounded-[6px]","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",n?"text-text-primary bg-bg-active":"text-text-tertiary hover:bg-bg-hover hover:text-text-primary"].join(" "),children:c.jsx(W1,{size:16,strokeWidth:1.8})})]}),c.jsxs("aside",{ref:C,"aria-label":s("dock.views_label"),className:["dock-floating-panel","absolute left-[var(--size-rail-width)] top-0 bottom-0","w-[calc(var(--size-panel-width)-var(--size-rail-width))]","bg-bg-secondary border-r border-border overflow-y-auto z-40","shadow-[4px_0_16px_rgba(0,0,0,0.06)]","transition-[transform,opacity] duration-[200ms] ease-[var(--ease-spring)]",n||A?"translate-x-0 opacity-100 pointer-events-auto":"-translate-x-full opacity-0 pointer-events-none"].join(" "),onMouseLeave:Ae,children:[c.jsxs("div",{className:"px-2 py-2.5 border-b border-border-divider",children:[c.jsx("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)] px-2 mb-1",children:s("dock.views_label")}),c.jsx("nav",{className:"flex flex-col gap-0.5",children:Z.map(F=>c.jsx(yS,{item:F,t:s},F.path))})]}),T.length>0&&c.jsxs("div",{className:"px-2 py-2.5 border-b border-border-divider",children:[c.jsxs("div",{className:"flex items-center justify-between px-2 mb-1",children:[c.jsxs("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)]",children:["Sessions",T.length>Q&&c.jsx("span",{className:"ml-1 font-normal text-text-placeholder",children:T.length})]}),c.jsx("button",{type:"button",className:"w-[18px] h-[18px] rounded flex items-center justify-center border-none bg-transparent cursor-pointer transition-all duration-100",style:{color:"var(--color-text-placeholder)"},onMouseEnter:F=>{F.currentTarget.style.color="var(--color-text-primary)",F.currentTarget.style.backgroundColor="var(--color-bg-hover)"},onMouseLeave:F=>{F.currentTarget.style.color="var(--color-text-placeholder)",F.currentTarget.style.backgroundColor="transparent"},"aria-label":"New session",children:c.jsx(tS,{size:12,strokeWidth:2})})]}),c.jsx("nav",{className:"flex flex-col gap-0.5",children:(te?T:T.slice(0,Q)).map(F=>c.jsx(vS,{process:F,isActive:F.id===f},F.id))}),T.length>Q&&c.jsxs("button",{type:"button",onClick:()=>H(F=>!F),className:"flex items-center gap-1 px-2 py-1 mt-0.5 w-full text-[10px] text-text-placeholder hover:text-text-secondary transition-colors",children:[c.jsx(sS,{size:12,strokeWidth:2,className:`transition-transform duration-150 ${te?"rotate-180":""}`}),c.jsx("span",{children:te?"Show less":`${T.length-Q} more…`})]})]}),x.length>0&&c.jsxs("div",{className:"px-2 py-2.5 border-b border-border-divider",children:[c.jsx("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)] px-2 mb-1",children:"Issues"}),c.jsxs("button",{type:"button",onClick:()=>{S("/kanban"),O(!1)},className:"flex items-center gap-2 px-2 py-1.5 rounded-[var(--radius-default)] text-left text-[length:var(--font-size-sm)] w-full hover:bg-bg-hover transition-colors",children:[c.jsxs("span",{className:"flex-1 text-text-secondary",children:[E.total," issues"]}),c.jsxs("span",{className:"flex items-center gap-2 text-[10px]",children:[E.open>0&&c.jsxs("span",{style:{color:"var(--color-accent-blue)"},children:[E.open," open"]}),E.in_progress>0&&c.jsxs("span",{style:{color:"var(--color-accent-yellow)"},children:[E.in_progress," active"]}),E.resolved>0&&c.jsxs("span",{style:{color:"var(--color-accent-green)"},children:[E.resolved," done"]})]})]})]}),c.jsxs("div",{className:"px-2 py-2.5",children:[c.jsx("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)] px-2 mb-1",children:s("dock.phases_label")}),c.jsxs("nav",{className:"flex flex-col gap-0.5","aria-label":"Project phases",children:[r.map(F=>c.jsx(bS,{phase:F,selected:p===F.phase,onSelect:()=>{h(p===F.phase?null:F.phase),O(!1)}},F.phase)),r.length===0&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-secondary italic px-2",children:s("sidebar.no_phases_loaded")})]})]})]})]})}function fS({item:n,isActive:i,onActivate:s,t:r}){return c.jsx("button",{type:"button",onClick:s,"aria-label":r(n.tooltipKey),"aria-current":i?"page":void 0,className:["relative flex items-center justify-center w-9 h-9 rounded-[8px]","transition-colors duration-150","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",i?"bg-bg-active text-text-primary":"text-text-tertiary hover:bg-bg-hover hover:text-text-primary"].join(" "),children:c.jsx(pS,{icon:n.icon})})}const mS={kanban:O1,artifacts:M1,chat:z1,workflow:U1,mcp:H1,specs:q1,teams:K1,requirement:V1,"maestro-coordinate":Q1,collab:Z1,rooms:F1};function pS({icon:n}){const i=mS[n];return c.jsx(i,{size:18,strokeWidth:1.8})}function hS({process:n,isActive:i,onSelect:s}){const r=Eg[n.type]??"var(--color-text-tertiary)",d=n.status==="running"||n.status==="spawning",f=n.id.startsWith("cli-history-");return c.jsx("span",{role:"listitem",title:`${n.type}${f?" — async delegate":""} — ${n.status}`,onClick:s,className:["relative w-2 h-2 rounded-full cursor-pointer transition-transform duration-150 hover:scale-[1.4]",i?"ring-2 ring-offset-2 ring-offset-bg-secondary":""].join(" "),style:{backgroundColor:d?r:"var(--color-text-placeholder)",color:r,...i?{boxShadow:`0 0 0 2px var(--color-bg-secondary), 0 0 0 3.5px ${r}`}:{}},children:d&&c.jsx("span",{className:"absolute inset-[-2px] rounded-full animate-[sdot-ping_2s_ease_infinite]",style:{background:r,opacity:.4}})})}function gS({phase:n,t:i}){return c.jsx("span",{role:"listitem","aria-label":i("dock.phase_dot_aria",{phase:n.phase,title:n.title,status:n.status}),className:"w-[7px] h-[7px] rotate-45 rounded-[1px] cursor-pointer transition-transform duration-150 hover:scale-[1.4]",style:{backgroundColor:Sg[n.status]}})}function vS({process:n,isActive:i}){const s=Eg[n.type]??"var(--color-text-tertiary)",r=oa(x=>x.setActiveProcessId),d=oa(x=>x.removeProcess),f=Gi(),p=SS(n.startedAt),h=n.id.startsWith("cli-history-");return c.jsxs("div",{className:["group flex items-center gap-2 px-2.5 py-1.5 rounded-[8px] text-left text-[12px] w-full","transition-all duration-150 cursor-pointer",i?"bg-bg-active":"hover:bg-bg-hover"].join(" "),onClick:()=>{r(n.id),f("/chat")},children:[c.jsx("span",{className:"w-[7px] h-[7px] rounded-full shrink-0",style:{backgroundColor:s}}),c.jsx("span",{className:"flex-1 font-medium text-text-primary truncate",children:n.type}),h&&c.jsx("span",{className:"text-[9px] font-semibold px-[4px] py-[1px] rounded shrink-0",style:{backgroundColor:"var(--color-tint-exploring)",color:"var(--color-accent-blue)"},children:"ASYNC"}),c.jsx("span",{className:"text-[10px] text-text-placeholder shrink-0",children:p}),c.jsx("button",{type:"button",onClick:x=>{x.stopPropagation(),d(n.id)},className:"w-4 h-4 rounded flex items-center justify-center shrink-0 opacity-0 group-hover:opacity-100 text-text-placeholder hover:text-text-primary hover:bg-bg-active transition-all duration-100","aria-label":"Close session",children:c.jsx(nS,{size:10,strokeWidth:2})})]})}const xS=["flex items-center gap-2 px-2 py-1.5 rounded-[var(--radius-default)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] w-full","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" ");function yS({item:n,t:i}){return c.jsxs(u0,{to:n.path,className:({isActive:s})=>`${xS} ${s?"bg-bg-active text-text-primary font-semibold":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"}`,children:[c.jsx("span",{className:"truncate",children:i(n.labelKey)}),n.shortcut&&c.jsx("span",{className:"ml-auto text-[10px] text-text-placeholder",children:n.shortcut})]})}function bS({phase:n,selected:i,onSelect:s}){const r=Sg[n.status];return c.jsxs("button",{type:"button",onClick:s,"aria-current":i?"true":void 0,className:["flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-default)] text-left text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] w-full","transition-all duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]","disabled:opacity-[var(--opacity-disabled)] disabled:pointer-events-none",i?"bg-bg-active text-text-primary border-l-2 border-l-accent-blue":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"].join(" "),children:[c.jsx("span",{className:"w-2 h-2 rounded-full shrink-0","aria-hidden":"true",style:{backgroundColor:r}}),c.jsxs("span",{className:"truncate",children:[n.phase,". ",n.title]})]})}function SS(n){const i=Date.now()-new Date(n).getTime(),s=Math.floor(i/6e4);return s<1?"<1m":s<60?`${s}m`:`${Math.floor(s/60)}h`}const ES=["/maestro-coordinate","/chat","/meeting-room","/rooms"];function wS({children:n}){const{t:i}=St(),{pathname:s}=Ha(),r=ES.some(d=>s.startsWith(d));return c.jsx("main",{role:"main","aria-label":i("accessibility.main_content"),className:r?"flex-1 overflow-hidden bg-bg-primary":"flex-1 overflow-y-auto bg-bg-primary p-[var(--spacing-4)] sm:p-[var(--spacing-4)] max-sm:p-[var(--spacing-2)]",children:n})}const Ig="maestro-layout-state",jS=500,Kg=5;function Lu(n){return{type:"leaf",id:n,tabs:[],activeTabId:null}}function Yg(){return{version:Kg,primarySidebar:{visible:!0,width:260,activePanelId:"explorer"},secondarySidebar:{visible:!1,width:300,activePanelId:null},activityBar:{activePanelId:"explorer"},editorArea:Lu("editor-group-1"),panel:{visible:!1,height:200,activeTabId:null,isMaximized:!1},focusedGroupId:"editor-group-1",workspaceMode:"conversation"}}function NS(n){const i=n.version??0;let s=n;if(i<2&&(s={...s,secondarySidebar:s.secondarySidebar??{visible:!1,width:300,activePanelId:null},version:2}),s.version<3&&(s={...s,focusedGroupId:s.focusedGroupId??"editor-group-1",version:3}),s.version<4){const r=Yg();s={...r,...s,version:4,primarySidebar:{...r.primarySidebar,...s.primarySidebar},secondarySidebar:{...r.secondarySidebar,...s.secondarySidebar},activityBar:{...r.activityBar,...s.activityBar},panel:{...r.panel,...s.panel}}}return s.version<5&&(s={...s,workspaceMode:s.workspaceMode??"conversation",version:5}),s}function Qs(n,i){return n.type==="leaf"?n.id===i?n:null:Qs(n.first,i)??Qs(n.second,i)}let _S=2;function CS(){return`editor-group-${_S++}`}function TS(n,i){var s;switch(i.type){case"SET_SIDEBAR_VISIBLE":{const r=i.side==="primary"?"primarySidebar":"secondarySidebar";return{...n,[r]:{...n[r],visible:i.visible}}}case"SET_SIDEBAR_WIDTH":{const r=i.side==="primary"?"primarySidebar":"secondarySidebar";return{...n,[r]:{...n[r],width:i.width}}}case"SET_ACTIVE_PANEL":{const r=i.side==="primary"?"primarySidebar":"secondarySidebar";return{...n,[r]:{...n[r],activePanelId:i.panelId}}}case"SET_FOCUSED_GROUP":return{...n,focusedGroupId:i.groupId};case"SET_PANEL_VISIBLE":return{...n,panel:{...n.panel,visible:i.visible}};case"SET_PANEL_HEIGHT":return{...n,panel:{...n.panel,height:i.height}};case"SET_PANEL_ACTIVE_TAB":return{...n,panel:{...n.panel,activeTabId:i.tabId}};case"SET_PANEL_MAXIMIZED":return{...n,panel:{...n.panel,isMaximized:i.maximized}};case"OPEN_TAB":{const r=Qs(n.editorArea,i.groupId);return r?r.tabs.find(f=>f.id===i.tab.id)?{...n,focusedGroupId:i.groupId,editorArea:qn(n.editorArea,i.groupId,{activeTabId:i.tab.id})}:{...n,focusedGroupId:i.groupId,editorArea:qn(n.editorArea,i.groupId,{tabs:[...r.tabs,i.tab],activeTabId:i.tab.id})}:n}case"CLOSE_TAB":{const r=Qs(n.editorArea,i.groupId);if(!r)return n;const d=r.tabs.filter(p=>p.id!==i.tabId);if(d.length===r.tabs.length)return n;const f=r.activeTabId===i.tabId?((s=d[d.length-1])==null?void 0:s.id)??null:r.activeTabId;return{...n,editorArea:qn(n.editorArea,i.groupId,{tabs:d,activeTabId:f})}}case"SET_ACTIVE_TAB":return{...n,focusedGroupId:i.groupId,editorArea:qn(n.editorArea,i.groupId,{activeTabId:i.tabId})};case"SET_WORKSPACE_MODE":{let r={...n,workspaceMode:i.mode};switch(i.mode){case"conversation":r={...r,panel:{...r.panel,visible:!1}};break;case"files":r={...r,panel:{...r.panel,visible:!1}};break;case"fusion":r={...r,panel:{...r.panel,visible:!0}};break}return r}case"SPLIT_GROUP":{const r=CS(),d=Qs(n.editorArea,i.groupId);let f,p=n.editorArea;if(d&&d.activeTabId){const x=d.tabs.find(g=>g.id===d.activeTabId);if(x){f={type:"leaf",id:r,tabs:[x],activeTabId:x.id};const g=d.tabs.filter(b=>b.id!==d.activeTabId),S=g.length>0?g[g.length-1].id:null;p=qn(n.editorArea,i.groupId,{tabs:g,activeTabId:S})}else f=Lu(r)}else f=Lu(r);const h=Bu(p,i.groupId,i.direction,f);return h?{...n,editorArea:h,focusedGroupId:r}:n}case"CLOSE_GROUP":{const r=Hu(n.editorArea,i.groupId);return r?{...n,editorArea:r,focusedGroupId:Vg(r).id}:n}case"RESIZE_GROUP":{const r=Uu(n.editorArea,i.branchId,{ratio:i.ratio});return r?{...n,editorArea:r}:n}case"MOVE_PANEL":{const d=(i.toSide==="primary"?"secondary":"primary")==="primary"?"primarySidebar":"secondarySidebar",f={},p=n[d];return p.activePanelId===i.panelId&&(f[d]={...p,activePanelId:null}),{...n,...f}}case"RESTORE_STATE":return{...i.state,version:Kg};default:return n}}function qn(n,i,s){return n.type==="leaf"?n.id===i?{...n,...s}:n:{...n,first:qn(n.first,i,s),second:qn(n.second,i,s)}}function Uu(n,i,s){if(n.type==="leaf")return null;if(n.id===i)return{...n,...s};const r=Uu(n.first,i,s);if(r)return{...n,first:r};const d=Uu(n.second,i,s);return d?{...n,second:d}:null}function Bu(n,i,s,r){if(n.type==="leaf")return n.id!==i?null:{type:"branch",id:`branch-${i}`,direction:s,ratio:.5,first:n,second:r};const d=Bu(n.first,i,s,r);if(d)return{...n,first:d};const f=Bu(n.second,i,s,r);return f?{...n,second:f}:null}function Hu(n,i){if(n.type==="leaf")return null;if(n.first.type==="leaf"&&n.first.id===i)return n.second;if(n.second.type==="leaf"&&n.second.id===i)return n.first;const s=Hu(n.first,i);if(s)return{...n,first:s};const r=Hu(n.second,i);return r?{...n,second:r}:null}function Vg(n){return n.type==="leaf"?n:Vg(n.first)}const Xg=v.createContext(null);function AS(){try{const n=localStorage.getItem(Ig);if(!n)return null;const i=JSON.parse(n);return NS(i)}catch{return null}}function kS({children:n}){const[i,s]=v.useReducer(TS,null,()=>AS()??Yg()),r=v.useRef(null),d=v.useRef(i);return d.current=i,v.useEffect(()=>(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{try{localStorage.setItem(Ig,JSON.stringify(d.current))}catch{}},jS),()=>{r.current&&clearTimeout(r.current)}),[i]),c.jsx(Xg,{value:{state:i,dispatch:s},children:n})}function $u(){const n=v.useContext(Xg);if(!n)throw new Error("useLayoutContext must be used within a LayoutProvider");return n}function Xs(n){const{state:i}=$u();return n(i)}const OS=[];function zh(n){return OS.filter(i=>i.alignment===n).filter(i=>i.visible?i.visible():!0).sort((i,s)=>s.priority-i.priority)}function Lh({children:n,tooltip:i,clickable:s=!1,onClick:r}){const d=s&&r,f=["flex items-center gap-[var(--spacing-1)]","h-full px-[var(--spacing-1-5)]","text-[11px] font-medium leading-none whitespace-nowrap",d?"cursor-pointer hover:bg-bg-hover transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]":"cursor-default"].join(" ");return c.jsx("span",{role:d?"button":void 0,tabIndex:d?0:void 0,title:i,onClick:d?r:void 0,onKeyDown:d?p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),r(p))}:void 0,className:f,children:n})}function DS(){const{dispatch:n}=$u(),i=Xs(f=>f.panel.visible),s=zh("left"),r=zh("right");function d(f){f&&(n({type:"SET_PANEL_ACTIVE_TAB",tabId:f}),i||n({type:"SET_PANEL_VISIBLE",visible:!0}))}return c.jsxs("div",{role:"status","aria-live":"polite",className:["flex items-center justify-between shrink-0 select-none","h-[22px] bg-bg-secondary border-t border-border","text-text-secondary text-[11px] font-medium"].join(" "),children:[c.jsx("div",{className:"flex items-center h-full",children:s.map(f=>{const p=f.component,h=!!f.panelTabId;return c.jsx(Lh,{tooltip:f.id,clickable:h,onClick:h?()=>d(f.panelTabId):void 0,children:c.jsx(p,{})},f.id)})}),c.jsx("div",{className:"flex items-center h-full",children:r.map(f=>{const p=f.component,h=!!f.panelTabId;return c.jsx(Lh,{tooltip:f.id,clickable:h,onClick:h?()=>d(f.panelTabId):void 0,children:c.jsx(p,{})},f.id)})})]})}const MS=v.lazy(()=>ht(()=>import("./OutputPanel-DgT3gMyp.js"),[]).then(n=>({default:n.OutputPanel}))),RS=v.lazy(()=>ht(()=>import("./ProblemsPanel-BmG7rxoG.js"),[]).then(n=>({default:n.ProblemsPanel}))),zS=v.lazy(()=>ht(()=>import("./ExecutionPanel-CClxD7cH.js"),[]).then(n=>({default:n.ExecutionPanel}))),yu=[{id:"output",label:"Output",panel:MS},{id:"problems",label:"Problems",panel:RS},{id:"execution",label:"Execution",panel:zS}],LS=200,US=100,BS=500,HS=4;function GS(){const{dispatch:n}=$u(),i=Xs(T=>T.panel.visible),s=Xs(T=>T.panel.activeTabId),r=Xs(T=>T.panel.isMaximized),d=Xs(T=>T.panel.height),f=v.useRef(null),p=v.useRef(!1),h=v.useRef(0),x=v.useRef(0),g=s??"output",S=yu.find(T=>T.id===g)??yu[0];v.useEffect(()=>{function T(X){X.ctrlKey&&!X.shiftKey&&!X.altKey&&X.key==="j"&&(X.preventDefault(),n({type:"SET_PANEL_VISIBLE",visible:!i}))}return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[n,i]);const b=v.useCallback(()=>{n({type:"SET_PANEL_VISIBLE",visible:!1})},[n]),E=v.useCallback(()=>{n({type:"SET_PANEL_MAXIMIZED",maximized:!r})},[n,r]),w=v.useCallback(T=>{n({type:"SET_PANEL_ACTIVE_TAB",tabId:T})},[n]),C=v.useCallback(T=>{T.preventDefault(),p.current=!0,h.current=T.clientY,x.current=d;function X(P){if(!p.current)return;const Z=h.current-P.clientY,te=Math.max(US,Math.min(BS,x.current+Z));n({type:"SET_PANEL_HEIGHT",height:te})}function Y(){p.current=!1,document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",Y),document.body.style.cursor="",document.body.style.userSelect=""}document.body.style.cursor="ns-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",X),document.addEventListener("mouseup",Y)},[n,d]),A=v.useCallback(()=>{n({type:"SET_PANEL_HEIGHT",height:LS})},[n]);if(!i)return null;const O=r?"100%":`${d}px`;return c.jsxs("div",{ref:f,className:["flex flex-col shrink-0 border-t border-border bg-bg-primary",r?"absolute inset-0 z-10":""].join(" "),style:r?void 0:{height:O},children:[c.jsxs("div",{className:"flex items-center justify-between h-[30px] px-[var(--spacing-1)] border-b border-border shrink-0",children:[c.jsx("div",{role:"tablist","aria-label":"Panel tabs",className:"flex items-center h-full",children:yu.map(T=>c.jsx("button",{role:"tab",type:"button","aria-selected":T.id===g,"aria-controls":`panel-tabpanel-${T.id}`,id:`panel-tab-${T.id}`,onClick:()=>w(T.id),className:["h-full px-[var(--spacing-2)] text-[11px] font-medium transition-colors duration-[var(--duration-fast)]",T.id===g?"text-text-primary border-b-2 border-text-primary":"text-text-secondary hover:text-text-primary"].join(" "),children:T.label},T.id))}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-0-5)]",children:[c.jsx("button",{type:"button",onClick:E,title:r?"Restore Panel":"Maximize Panel",className:"flex items-center justify-center w-[22px] h-[22px] rounded-[var(--radius-sm)] text-text-secondary hover:text-text-primary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",children:r?c.jsx(IS,{}):c.jsx(qS,{})}),c.jsx("button",{type:"button",onClick:b,title:"Close Panel",className:"flex items-center justify-center w-[22px] h-[22px] rounded-[var(--radius-sm)] text-text-secondary hover:text-text-primary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",children:c.jsx(KS,{})})]})]}),c.jsx("div",{role:"tabpanel",id:`panel-tabpanel-${g}`,"aria-labelledby":`panel-tab-${g}`,className:"flex-1 overflow-hidden",children:c.jsx(v.Suspense,{fallback:c.jsx(YS,{}),children:i&&c.jsx(S.panel,{})})}),!r&&c.jsx("div",{className:"absolute top-0 left-0 right-0 cursor-ns-resize hover:bg-border-focused/30 transition-colors duration-[var(--duration-fast)]",style:{height:HS},onMouseDown:C,onDoubleClick:A,title:"Drag to resize. Double-click to reset."})]})}function qS(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:c.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"})})}function IS(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[c.jsx("rect",{x:"4",y:"1",width:"10",height:"10",rx:"1"}),c.jsx("rect",{x:"2",y:"5",width:"10",height:"10",rx:"1"})]})}function KS(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[c.jsx("line",{x1:"4",y1:"4",x2:"12",y2:"12"}),c.jsx("line",{x1:"12",y1:"4",x2:"4",y2:"12"})]})}function YS(){return c.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[11px] animate-pulse",children:"Loading..."})}const Gu=_t((n,i)=>({slots:{},queue:[],supervisorStatus:null,commanderState:null,commanderConfig:null,recentDecisions:[],selectedIssueIds:new Set,cliPanelIssueId:null,addSlot:s=>n(r=>({slots:{...r.slots,[s.processId]:s}})),removeSlot:s=>n(r=>{const{[s]:d,...f}=r.slots;return{slots:f}}),setQueue:s=>n({queue:s}),setSupervisorStatus:s=>n({supervisorStatus:s,queue:s.queued}),setCommanderState:s=>n({commanderState:s}),setCommanderConfig:s=>n({commanderConfig:s}),fetchCommanderConfig:async()=>{try{const s=await fetch("/api/commander/config");if(s.ok){const r=await s.json();n({commanderConfig:r})}}catch{}},toggleSupervisor:async s=>{try{const r=await fetch("/api/execution/supervisor",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:s})});if(r.ok){const d=await r.json();d.status&&n({supervisorStatus:d.status})}}catch{}},addDecision:s=>n(r=>{const d=[...r.recentDecisions,s];return d.length>20&&d.shift(),{recentDecisions:d}}),toggleSelect:s=>n(r=>{const d=new Set(r.selectedIssueIds);return d.has(s)?d.delete(s):d.add(s),{selectedIssueIds:d}}),selectAll:s=>n({selectedIssueIds:new Set(s)}),clearSelection:()=>n({selectedIssueIds:new Set}),openCliPanel:s=>n({cliPanelIssueId:s}),closeCliPanel:()=>n({cliPanelIssueId:null}),getSlotForIssue:s=>{const r=i().slots;for(const d of Object.values(r))if(d.issueId===s)return d},isIssueRunning:s=>{const r=i().slots;return Object.values(r).some(d=>d.issueId===s)}})),Qg=_t(n=>({session:null,selectedStepIndex:null,clarificationQuestion:null,currentGraph:null,selectedNodeId:null,onStatus:i=>n({session:i}),onStep:i=>n(s=>{if(!s.session||s.session.sessionId!==i.sessionId)return s;const r=[...s.session.steps],d=r.findIndex(f=>f.index===i.step.index);return d>=0?r[d]=i.step:r.push(i.step),{session:{...s.session,steps:r}}}),onAnalysis:i=>n(s=>{if(!s.session||s.session.sessionId!==i.sessionId)return s;const r=i.steps.map((d,f)=>({index:f,cmd:d.cmd,args:d.args,status:"pending",processId:null,analysis:null,summary:null}));return{session:{...s.session,chainName:i.chainName,intent:i.intent,steps:r}}}),onClarificationNeeded:i=>n(s=>!s.session||s.session.sessionId!==i.sessionId?s:{clarificationQuestion:i.question}),start:(i,s,r)=>{ca({action:"coordinate:start",intent:i,tool:s,autoMode:r})},stop:()=>{ca({action:"coordinate:stop"})},resume:i=>{var r;const s=i??((r=Qg.getState().session)==null?void 0:r.sessionId);ca({action:"coordinate:resume",sessionId:s})},sendClarification:(i,s)=>{ca({action:"coordinate:clarify",sessionId:i,response:s}),n({clarificationQuestion:null})},selectStep:i=>n({selectedStepIndex:i}),setCurrentGraph:i=>n({currentGraph:i}),selectNode:i=>n({selectedNodeId:i})}));function Uh(n,i){const s=n.findIndex(r=>r.id===i.id);if(s>=0){const r=[...n];return r[s]=i,r}return[i,...n]}const VS=_t((n,i)=>({currentRequirement:null,history:[],isLoading:!1,error:null,progressMessage:null,committedResult:null,continueFrom:null,expand:(s,r,d)=>{const f=i().continueFrom;n({isLoading:!0,error:null,progressMessage:null,committedResult:null,continueFrom:null,currentRequirement:{id:"",status:"expanding",userInput:s,title:"",summary:"",items:[],depth:r??"standard",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}});try{ca({action:"requirement:expand",text:s,depth:r,method:d??"sdk",...f?{previousRequirementId:f.id}:{}})}catch(p){n({isLoading:!1,error:p instanceof Error?p.message:String(p)})}},refine:s=>{const r=i().currentRequirement;if(r){n({isLoading:!0,error:null,progressMessage:null,currentRequirement:{...r,status:"expanding"}});try{ca({action:"requirement:refine",requirementId:r.id,feedback:s})}catch(d){n({isLoading:!1,error:d instanceof Error?d.message:String(d)})}}},commit:s=>{const r=i().currentRequirement;if(r){n({isLoading:!0,error:null,progressMessage:null,currentRequirement:{...r,status:"committing"}});try{ca({action:"requirement:commit",requirementId:r.id,mode:s})}catch(d){n({isLoading:!1,error:d instanceof Error?d.message:String(d)})}}},resetRequirement:()=>{n({currentRequirement:null,isLoading:!1,error:null,progressMessage:null,committedResult:null,continueFrom:null})},setContinueFrom:s=>{n({continueFrom:s})},loadHistory:s=>{const r=i().history.find(d=>d.id===s);r&&n({currentRequirement:r,isLoading:!1,error:null,progressMessage:null,committedResult:null})},fetchHistory:async()=>{try{const s=await fetch("/api/requirements");if(!s.ok)return;const r=await s.json();Array.isArray(r)&&r.length>0&&n({history:r})}catch{}},onProgress:s=>{n(r=>{const d=r.currentRequirement;if(!d)return r;const f=s.status==="failed";return{currentRequirement:{...d,status:s.status,...f&&s.message?{error:s.message}:{}},progressMessage:s.message??null,...f?{isLoading:!1,error:s.message??"Expansion failed"}:{}}})},onExpanded:s=>{n(r=>({currentRequirement:s.requirement,isLoading:!1,progressMessage:null,history:Uh(r.history,s.requirement)}))},onCommitted:s=>{n(r=>{const d=r.currentRequirement;if(!d||d.id!==s.requirementId)return r;const f={...d,status:"done"};return{currentRequirement:f,isLoading:!1,progressMessage:null,committedResult:{requirementId:s.requirementId,mode:s.mode,issueIds:s.issueIds,coordinateSessionId:s.coordinateSessionId},history:Uh(r.history,f)}})},onError:s=>{n(r=>{const d=r.currentRequirement;return{currentRequirement:d?{...d,status:"failed",error:s.error}:null,isLoading:!1,error:s.error,progressMessage:null}})},updateItem:(s,r)=>{n(d=>{const f=d.currentRequirement;return f?{currentRequirement:{...f,items:f.items.map(p=>p.id===s?{...p,...r}:p)}}:d})}})),XS=_t((n,i)=>({sessions:[],activeSession:null,activeSessionId:null,activeView:"cards",loading:!1,error:null,statusFilter:"all",skillFilter:null,searchQuery:"",mailboxMessages:[],phaseState:null,agentStatuses:[],roleToProcessMap:{},setActiveView:s=>n({activeView:s}),setStatusFilter:s=>n({statusFilter:s}),setSkillFilter:s=>n({skillFilter:s}),setSearchQuery:s=>n({searchQuery:s}),clearActiveSession:()=>n({activeSession:null,activeSessionId:null}),fetchSessions:async()=>{n({loading:!0,error:null});try{const s=await fetch(vu.SESSIONS);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({sessions:r,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},deleteSession:async s=>{const r=i().sessions;n(d=>({sessions:d.sessions.filter(f=>f.sessionId!==s)}));try{(await fetch(vu.SESSIONS+"/"+s,{method:"DELETE"})).ok||n({sessions:r})}catch{n({sessions:r})}},fetchSessionDetail:async s=>{n({loading:!0,error:null,activeSessionId:s});try{const r=await fetch(vu.SESSIONS+"/"+s);if(!r.ok)throw new Error(`Failed: ${r.status}`);const d=await r.json();n({activeSession:d,loading:!1})}catch(r){n({loading:!1,error:String(r)})}},filteredSessions:()=>{const{sessions:s,statusFilter:r,skillFilter:d,searchQuery:f}=i();let p=s;if(r!=="all"&&(p=p.filter(h=>h.status===r)),d&&(p=p.filter(h=>h.skill===d)),f){const h=f.toLowerCase();p=p.filter(x=>x.title.toLowerCase().includes(h)||x.sessionId.toLowerCase().includes(h)||x.roles.some(g=>g.toLowerCase().includes(h)))}return p},registerAgentProcess:(s,r,d)=>{n(f=>{const p=f.roleToProcessMap[s]??{};return{roleToProcessMap:{...f.roleToProcessMap,[s]:{...p,[r]:d}}}})},getProcessIdForRole:(s,r)=>{var d;return(d=i().roleToProcessMap[s])==null?void 0:d[r]},handleTeamMessage:s=>{n(r=>{const d=r.mailboxMessages.findIndex(f=>f.id===s.id);if(d>=0){const f=[...r.mailboxMessages];return f[d]=s,{mailboxMessages:f}}return{mailboxMessages:[...r.mailboxMessages,s]}})},handleDispatchUpdate:s=>{n(r=>{const d=r.mailboxMessages.findIndex(f=>f.id===s.id);if(d>=0){const f=[...r.mailboxMessages];return f[d]=s,{mailboxMessages:f}}return{mailboxMessages:[...r.mailboxMessages,s]}})},handlePhaseTransition:s=>{n({phaseState:s})},handleAgentStatusUpdate:s=>{n(r=>{const d=r.agentStatuses.findIndex(f=>f.role===s.role);if(d>=0){const f=[...r.agentStatuses];return f[d]=s,{agentStatuses:f}}return{agentStatuses:[...r.agentStatuses,s]}})}})),Bh={sessionId:null,sessionStatus:null,layoutMode:"split",terminalLayoutMode:"grid-2x2",expandedTerminals:[],splitRatio:60,inputTarget:{mode:"broadcast"},agents:[],messages:[],tasks:[]},QS=_t((n,i)=>({...Bh,setSessionId:s=>n({sessionId:s}),setSessionStatus:s=>n({sessionStatus:s}),setLayoutMode:s=>n({layoutMode:s}),setTerminalLayoutMode:s=>n({terminalLayoutMode:s}),expandTerminal:s=>n(r=>r.expandedTerminals.includes(s)?r:{expandedTerminals:[...r.expandedTerminals,s]}),collapseTerminal:s=>n(r=>({expandedTerminals:r.expandedTerminals.filter(d=>d!==s)})),setSplitRatio:s=>n({splitRatio:s}),setInputTarget:s=>n({inputTarget:s}),sendMessage:s=>{const{sessionId:r,inputTarget:d,agents:f}=i();if(!r||!s.trim())return;const p=s.trim(),h=p.match(/^@(\S+)\s+([\s\S]+)/);if(h){const x=h[1],g=h[2].trim();if(f.some(S=>S.role===x)&&g){ca({action:"room:send_message",sessionId:r,to:x,content:g});return}}d.mode==="broadcast"?ca({action:"room:broadcast",sessionId:r,content:p}):d.role&&ca({action:"room:send_message",sessionId:r,to:d.role,content:p})},handleSnapshot:s=>n({sessionId:s.sessionId,sessionStatus:s.status,agents:s.agents,messages:s.messages,tasks:s.tasks}),handleAgentJoined:s=>n(r=>r.agents.some(f=>f.role===s.role)?{agents:r.agents.map(f=>f.role===s.role?s:f)}:{agents:[...r.agents,s]}),handleAgentLeft:s=>n(r=>({agents:r.agents.filter(d=>d.role!==s)})),handleAgentStatus:(s,r)=>n(d=>({agents:d.agents.map(f=>f.role===s?{...f,status:r,lastActivityAt:new Date().toISOString()}:f)})),handleMessage:s=>n(r=>r.messages.some(f=>f.id===s.id)?r:{messages:[...r.messages,s]}),handleTaskCreated:s=>n(r=>({tasks:[...r.tasks,s]})),handleTaskUpdated:(s,r)=>n(d=>({tasks:d.tasks.map(f=>f.id===s?{...f,...r}:f)})),handleRoomClosed:()=>n({sessionStatus:"destroyed"}),reset:()=>n({...Bh,expandedTerminals:[]})})),PS=_t((n,i)=>({rooms:[],loading:!1,fetchRooms:async()=>{n({loading:!0});try{const s=await fetch("/api/rooms");if(s.ok){const r=await s.json();n({rooms:r,loading:!1})}else n({loading:!1})}catch{n({loading:!1})}},deleteRoom:async s=>{try{if((await fetch(`/api/rooms/${encodeURIComponent(s)}`,{method:"DELETE"})).ok)return n(d=>({rooms:d.rooms.filter(f=>f.sessionId!==s)})),!0}catch{}return!1},handleRoomCreated:s=>n(r=>r.rooms.some(d=>d.sessionId===s.sessionId)?r:{rooms:[...r.rooms,s]}),handleRoomClosed:s=>n(r=>({rooms:r.rooms.map(d=>d.sessionId===s?{...d,status:"destroyed"}:d)}))})),ZS=_t((n,i)=>({sessions:[],selectedDir:null,sessionDetail:null,isLoading:!1,error:null,fetchSessions:async()=>{n({isLoading:!0,error:null});try{const s=await fetch("/api/maestro-coordinate/sessions");if(!s.ok){n({error:`Failed to fetch sessions: ${s.status}`,isLoading:!1});return}const r=await s.json(),d=Array.isArray(r)?r:[];n({sessions:d,isLoading:!1,error:null})}catch(s){n({error:`Failed to fetch sessions: ${s instanceof Error?s.message:String(s)}`,isLoading:!1})}},fetchSessionDetail:async s=>{try{const r=await fetch(`/api/maestro-coordinate/sessions/${encodeURIComponent(s)}`);if(!r.ok){n({error:`Failed to fetch session detail: ${r.status}`});return}const d=await r.json();d&&typeof d=="object"&&"source"in d&&"data"in d&&n({sessionDetail:d,selectedDir:s,error:null})}catch(r){n({error:`Failed to fetch session detail: ${r instanceof Error?r.message:String(r)}`})}},selectSession:s=>{if(s===null){n({selectedDir:null,sessionDetail:null});return}const r=i().selectedDir;n({selectedDir:s}),r!==s&&i().fetchSessionDetail(s)},onSessionUpdated:s=>n(r=>{const d=s.session,f=r.sessions.findIndex(h=>h.dirName===d.dirName);let p;return f>=0?(p=[...r.sessions],p[f]=d):p=[d,...r.sessions],p.sort((h,x)=>new Date(x.updatedAt).getTime()-new Date(h.updatedAt).getTime()),r.selectedDir===d.dirName&&i().fetchSessionDetail(d.dirName),{sessions:p}}),clearError:()=>n({error:null})})),Hh=1e3,JS=3e4,FS=["# Analysis Mode Protocol","# Write Mode Protocol"];function $S(n){return FS.some(i=>n.trimStart().startsWith(i))}function WS(n,i){const s=[];for(const r of n){const d={...r,processId:i};if(d.type==="assistant_message"){const f=d.content??"";if($S(f))continue;d.partial=!1;const p=s[s.length-1];if(p&&p.type==="assistant_message"){p.content+=d.content;continue}}if(d.type==="tool_use"&&(d.status==="completed"||d.status==="failed")){const f=s.findLastIndex(p=>p.type==="tool_use"&&p.status==="running");if(f!==-1){const p=s[f];s[f]={...p,status:d.status,result:d.result??p.result,input:p.input&&Object.keys(p.input).length>0?p.input:d.input};continue}}s.push(d)}return s}let Ps=null;function ca(n){Ps?Ps(n):console.warn("[WS] Cannot send — no active WebSocket connection")}const Gh=new Set([ge.AGENT_APPROVAL]);function eE(){const n=v.useRef(null),i=v.useRef(null),s=v.useRef(Hh);v.useEffect(()=>{let r=!1,d=!1;const f=[];let p=[],h=null;const{setBoard:x,updatePhase:g,updateTask:S,setConnected:b}=Vt.getState(),{addProcess:E,removeProcess:w,updateProcessStatus:C,addEntry:A,setApproval:O,setProcessThought:T,setProcessStreaming:X,updateProcessTokenUsage:Y}=oa.getState(),{addSlot:P,removeSlot:Z,setSupervisorStatus:te,setCommanderState:H,addDecision:Q}=Gu.getState(),{onStatus:fe,onStep:He,onAnalysis:Ae,onClarificationNeeded:ze}=Qg.getState(),{fetchIssues:F,patchIssue:Te}=zu.getState(),{onProgress:qe,onExpanded:L,onCommitted:J,onError:ie}=VS.getState(),{handleTeamMessage:be,handleDispatchUpdate:$,handlePhaseTransition:N,handleAgentStatusUpdate:I,registerAgentProcess:ee}=XS.getState(),{handleSnapshot:D,handleAgentJoined:B,handleAgentLeft:q,handleAgentStatus:ae,handleMessage:Se,handleTaskCreated:oe,handleTaskUpdated:Ie,handleRoomClosed:je}=QS.getState(),{handleRoomCreated:Qe,handleRoomClosed:it}=PS.getState();function $e(){if(r)return;const Sn=window.location.protocol==="https:"?"wss:":"ws:",na=new WebSocket(`${Sn}//${window.location.host}/ws`);n.current=na,Ps=ce=>{na.readyState===WebSocket.OPEN&&na.send(JSON.stringify(ce))},na.onopen=()=>{b(!0),s.current=Hh,d=!1;const ce=fetch("/api/board").then(tt=>tt.ok?tt.json():null).then(tt=>{tt&&x(tt)}).catch(()=>{}),ut=fetch("/api/agents").then(tt=>tt.ok?tt.json():null).then(async tt=>{if(!Array.isArray(tt))return;let W=[];try{const Ve=await fetch("/api/cli-history?limit=50");Ve.ok&&(W=await Ve.json())}catch{}const jt=new Map(W.map(Ve=>[Ve.execId,Ve]));for(const Ve of tt){const Et=Ve,Zn=Et.id.startsWith("cli-history-");if(Et.status==="stopped"||Et.status,Zn&&Et.status==="running"){const Xt=Et.id.slice(12),dt=jt.get(Xt);dt!=null&&dt.completedAt&&(Et.status=dt.exitCode!=null&&dt.exitCode!==0?"error":"stopped")}if(E(Et),!(Zn&&(Et.status==="stopped"||Et.status==="error")))if(Zn){const Xt=Et.id.slice(12);fetch(`/api/cli-history/${encodeURIComponent(Xt)}/entries`).then(dt=>dt.ok?dt.json():null).then(dt=>{const Yl=Array.isArray(dt)?dt:[],er=WS(Yl,Et.id);for(const Vi of er)A(Et.id,Vi)}).catch(()=>{})}else fetch(`/api/agents/${encodeURIComponent(Et.id)}/entries`).then(Xt=>Xt.ok?Xt.json():null).then(Xt=>{const dt=Array.isArray(Xt)?Xt:[];for(const Yl of dt)A(Et.id,Yl)}).catch(()=>{})}}).catch(()=>{});Promise.all([ce,ut]).finally(()=>{d=!0;const tt=f.splice(0);for(const W of tt)Pn(W)})};function Pn(ce){var ut,tt;switch(ce.type){case ge.BOARD_FULL:x(ce.data);break;case ge.PHASE_UPDATED:{const W=ce.data;g(W.phase,W);break}case ge.TASK_UPDATED:{const W=ce.data;W.id&&S(W.id,W);break}case ge.PROJECT_UPDATED:{const W=ce.data,jt=Vt.getState().board;jt&&x({...jt,project:W});break}case ge.HEARTBEAT:case ge.CONNECTED:break;case ge.AGENT_SPAWNED:{const W=ce.data;E(W);const jt=(ut=W.metadata)==null?void 0:ut.teamSessionId,Ve=(tt=W.metadata)==null?void 0:tt.teamRole;jt&&Ve&&ee(jt,Ve,W.id);break}case ge.AGENT_ENTRY:{const W=ce.data;if(A(W.processId,W),W.type==="token_usage"){const jt=W;Y(jt.processId,jt.inputTokens,jt.outputTokens,jt.cacheReadTokens??0,jt.cacheWriteTokens??0)}break}case ge.AGENT_APPROVAL:O(ce.data);break;case ge.AGENT_STATUS:{const W=ce.data;C(W.processId,W.status);break}case ge.AGENT_STOPPED:{const W=ce.data;C(W.processId,"stopped");break}case ge.AGENT_THOUGHT:{const W=ce.data;T(W.processId,W.thought);break}case ge.AGENT_STREAMING:{const W=ce.data;X(W.processId,W.streaming);break}case ge.EXECUTION_STARTED:{const W=ce.data;P({issueId:W.issueId,processId:W.processId,executor:W.executor,startedAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),turnNumber:1,maxTurns:3}),W.issue?Te(W.issue):F();break}case ge.EXECUTION_COMPLETED:{const W=ce.data;Z(W.processId),W.issue?Te(W.issue):F();break}case ge.EXECUTION_FAILED:{const W=ce.data;Z(W.processId),W.issue?Te(W.issue):F();break}case ge.SUPERVISOR_STATUS:case ge.EXECUTION_SCHEDULER_STATUS:{const W=ce.data;te(W);break}case ge.COMMANDER_STATUS:{const W=ce.data;H(W);break}case ge.COMMANDER_DECISION:{const W=ce.data;Q(W);break}case ge.COORDINATE_STATUS:{const W=ce.data;fe(W.session);break}case ge.COORDINATE_STEP:{const W=ce.data;He(W);break}case ge.COORDINATE_ANALYSIS:{const W=ce.data;Ae(W);break}case ge.COORDINATE_CLARIFICATION_NEEDED:{const W=ce.data;ze(W);break}case ge.REQUIREMENT_PROGRESS:qe(ce.data);break;case ge.REQUIREMENT_EXPANDED:L(ce.data);break;case ge.REQUIREMENT_COMMITTED:J(ce.data);break;case ge.TEAM_MESSAGE:be(ce.data);break;case ge.TEAM_DISPATCH:$(ce.data);break;case ge.TEAM_PHASE:N(ce.data);break;case ge.TEAM_AGENT_STATUS:I(ce.data);break;case ge.ROOM_CREATED:Qe(ce.data);break;case ge.ROOM_SNAPSHOT:D(ce.data);break;case ge.ROOM_AGENT_JOINED:{const W=ce.data;B(W.agent);break}case ge.ROOM_AGENT_LEFT:{const W=ce.data;q(W.role);break}case ge.ROOM_AGENT_STATUS:{const W=ce.data;ae(W.role,W.status);break}case ge.ROOM_MESSAGE:case ge.ROOM_BROADCAST:{const W=ce.data;Se(W.message);break}case ge.ROOM_TASK_CREATED:{const W=ce.data;oe(W.task);break}case ge.ROOM_TASK_UPDATED:{const W=ce.data;Ie(W.task.id,W.task);break}case ge.ROOM_CLOSED:{const W=ce.data;je(),it(W.sessionId);break}case ge.MAESTRO_SESSION_UPDATED:{const W=ce.data;ZS.getState().onSessionUpdated(W);break}}}function Ws(){if(p.length===0)return;const ce=p;p=[];for(const ut of ce)Pn(ut)}h=setInterval(Ws,100),na.onmessage=ce=>{let ut;try{ut=JSON.parse(ce.data)}catch{console.warn("[WS] Failed to parse message",ce.data);return}if(!d){Gh.has(ut.type)?Pn(ut):f.push(ut);return}if(Gh.has(ut.type)){Pn(ut);return}p.push(ut)},na.onclose=()=>{if(r)return;b(!1),n.current=null,Ps=null,h&&(clearInterval(h),h=null),p=[],f.length=0,d=!1;const ce=s.current;s.current=Math.min(ce*2,JS),i.current=setTimeout($e,ce)},na.onerror=()=>{}}return $e(),()=>{r=!0,Ps=null,h&&(clearInterval(h),h=null),i.current&&clearTimeout(i.current),n.current&&(n.current.onopen=null,n.current.onmessage=null,n.current.onerror=null,n.current.onclose=null,n.current.close(),n.current=null),b(!1)}},[])}function yn(n,i,{checkForDefaultPrevented:s=!0}={}){return function(d){if(n==null||n(d),s===!1||!d.defaultPrevented)return i==null?void 0:i(d)}}function qh(n,i){if(typeof n=="function")return n(i);n!=null&&(n.current=i)}function Wu(...n){return i=>{let s=!1;const r=n.map(d=>{const f=qh(d,i);return!s&&typeof f=="function"&&(s=!0),f});if(s)return()=>{for(let d=0;d<r.length;d++){const f=r[d];typeof f=="function"?f():qh(n[d],null)}}}}function Qn(...n){return v.useCallback(Wu(...n),n)}function tE(n,i){const s=v.createContext(i),r=f=>{const{children:p,...h}=f,x=v.useMemo(()=>h,Object.values(h));return c.jsx(s.Provider,{value:x,children:p})};r.displayName=n+"Provider";function d(f){const p=v.useContext(s);if(p)return p;if(i!==void 0)return i;throw new Error(`\`${f}\` must be used within \`${n}\``)}return[r,d]}function aE(n,i=[]){let s=[];function r(f,p){const h=v.createContext(p),x=s.length;s=[...s,p];const g=b=>{var T;const{scope:E,children:w,...C}=b,A=((T=E==null?void 0:E[n])==null?void 0:T[x])||h,O=v.useMemo(()=>C,Object.values(C));return c.jsx(A.Provider,{value:O,children:w})};g.displayName=f+"Provider";function S(b,E){var A;const w=((A=E==null?void 0:E[n])==null?void 0:A[x])||h,C=v.useContext(w);if(C)return C;if(p!==void 0)return p;throw new Error(`\`${b}\` must be used within \`${f}\``)}return[g,S]}const d=()=>{const f=s.map(p=>v.createContext(p));return function(h){const x=(h==null?void 0:h[n])||f;return v.useMemo(()=>({[`__scope${n}`]:{...h,[n]:x}}),[h,x])}};return d.scopeName=n,[r,nE(d,...i)]}function nE(...n){const i=n[0];if(n.length===1)return i;const s=()=>{const r=n.map(d=>({useScope:d(),scopeName:d.scopeName}));return function(f){const p=r.reduce((h,{useScope:x,scopeName:g})=>{const b=x(f)[`__scope${g}`];return{...h,...b}},{});return v.useMemo(()=>({[`__scope${i.scopeName}`]:p}),[p])}};return s.scopeName=i.scopeName,s}var Fs=globalThis!=null&&globalThis.document?v.useLayoutEffect:()=>{},lE=Vu[" useId ".trim().toString()]||(()=>{}),sE=0;function bu(n){const[i,s]=v.useState(lE());return Fs(()=>{s(r=>r??String(sE++))},[n]),n||(i?`radix-${i}`:"")}var rE=Vu[" useInsertionEffect ".trim().toString()]||Fs;function iE({prop:n,defaultProp:i,onChange:s=()=>{},caller:r}){const[d,f,p]=oE({defaultProp:i,onChange:s}),h=n!==void 0,x=h?n:d;{const S=v.useRef(n!==void 0);v.useEffect(()=>{const b=S.current;b!==h&&console.warn(`${r} is changing from ${b?"controlled":"uncontrolled"} to ${h?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),S.current=h},[h,r])}const g=v.useCallback(S=>{var b;if(h){const E=cE(S)?S(n):S;E!==n&&((b=p.current)==null||b.call(p,E))}else f(S)},[h,n,f,p]);return[x,g]}function oE({defaultProp:n,onChange:i}){const[s,r]=v.useState(n),d=v.useRef(s),f=v.useRef(i);return rE(()=>{f.current=i},[i]),v.useEffect(()=>{var p;d.current!==s&&((p=f.current)==null||p.call(f,s),d.current=s)},[s,d]),[s,r,f]}function cE(n){return typeof n=="function"}function uE(n){const i=dE(n),s=v.forwardRef((r,d)=>{const{children:f,...p}=r,h=v.Children.toArray(f),x=h.find(mE);if(x){const g=x.props.children,S=h.map(b=>b===x?v.Children.count(g)>1?v.Children.only(null):v.isValidElement(g)?g.props.children:null:b);return c.jsx(i,{...p,ref:d,children:v.isValidElement(g)?v.cloneElement(g,void 0,S):null})}return c.jsx(i,{...p,ref:d,children:f})});return s.displayName=`${n}.Slot`,s}function dE(n){const i=v.forwardRef((s,r)=>{const{children:d,...f}=s;if(v.isValidElement(d)){const p=hE(d),h=pE(f,d.props);return d.type!==v.Fragment&&(h.ref=r?Wu(r,p):p),v.cloneElement(d,h)}return v.Children.count(d)>1?v.Children.only(null):null});return i.displayName=`${n}.SlotClone`,i}var fE=Symbol("radix.slottable");function mE(n){return v.isValidElement(n)&&typeof n.type=="function"&&"__radixId"in n.type&&n.type.__radixId===fE}function pE(n,i){const s={...i};for(const r in i){const d=n[r],f=i[r];/^on[A-Z]/.test(r)?d&&f?s[r]=(...h)=>{const x=f(...h);return d(...h),x}:d&&(s[r]=d):r==="style"?s[r]={...d,...f}:r==="className"&&(s[r]=[d,f].filter(Boolean).join(" "))}return{...n,...s}}function hE(n){var r,d;let i=(r=Object.getOwnPropertyDescriptor(n.props,"ref"))==null?void 0:r.get,s=i&&"isReactWarning"in i&&i.isReactWarning;return s?n.ref:(i=(d=Object.getOwnPropertyDescriptor(n,"ref"))==null?void 0:d.get,s=i&&"isReactWarning"in i&&i.isReactWarning,s?n.props.ref:n.props.ref||n.ref)}var gE=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ga=gE.reduce((n,i)=>{const s=uE(`Primitive.${i}`),r=v.forwardRef((d,f)=>{const{asChild:p,...h}=d,x=p?s:i;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),c.jsx(x,{...h,ref:f})});return r.displayName=`Primitive.${i}`,{...n,[i]:r}},{});function vE(n,i){n&&sg.flushSync(()=>n.dispatchEvent(i))}function $s(n){const i=v.useRef(n);return v.useEffect(()=>{i.current=n}),v.useMemo(()=>(...s)=>{var r;return(r=i.current)==null?void 0:r.call(i,...s)},[])}function xE(n,i=globalThis==null?void 0:globalThis.document){const s=$s(n);v.useEffect(()=>{const r=d=>{d.key==="Escape"&&s(d)};return i.addEventListener("keydown",r,{capture:!0}),()=>i.removeEventListener("keydown",r,{capture:!0})},[s,i])}var yE="DismissableLayer",qu="dismissableLayer.update",bE="dismissableLayer.pointerDownOutside",SE="dismissableLayer.focusOutside",Ih,Pg=v.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Zg=v.forwardRef((n,i)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:r,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:h,...x}=n,g=v.useContext(Pg),[S,b]=v.useState(null),E=(S==null?void 0:S.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,w]=v.useState({}),C=Qn(i,H=>b(H)),A=Array.from(g.layers),[O]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),T=A.indexOf(O),X=S?A.indexOf(S):-1,Y=g.layersWithOutsidePointerEventsDisabled.size>0,P=X>=T,Z=jE(H=>{const Q=H.target,fe=[...g.branches].some(He=>He.contains(Q));!P||fe||(d==null||d(H),p==null||p(H),H.defaultPrevented||h==null||h())},E),te=NE(H=>{const Q=H.target;[...g.branches].some(He=>He.contains(Q))||(f==null||f(H),p==null||p(H),H.defaultPrevented||h==null||h())},E);return xE(H=>{X===g.layers.size-1&&(r==null||r(H),!H.defaultPrevented&&h&&(H.preventDefault(),h()))},E),v.useEffect(()=>{if(S)return s&&(g.layersWithOutsidePointerEventsDisabled.size===0&&(Ih=E.body.style.pointerEvents,E.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(S)),g.layers.add(S),Kh(),()=>{s&&g.layersWithOutsidePointerEventsDisabled.size===1&&(E.body.style.pointerEvents=Ih)}},[S,E,s,g]),v.useEffect(()=>()=>{S&&(g.layers.delete(S),g.layersWithOutsidePointerEventsDisabled.delete(S),Kh())},[S,g]),v.useEffect(()=>{const H=()=>w({});return document.addEventListener(qu,H),()=>document.removeEventListener(qu,H)},[]),c.jsx(Ga.div,{...x,ref:C,style:{pointerEvents:Y?P?"auto":"none":void 0,...n.style},onFocusCapture:yn(n.onFocusCapture,te.onFocusCapture),onBlurCapture:yn(n.onBlurCapture,te.onBlurCapture),onPointerDownCapture:yn(n.onPointerDownCapture,Z.onPointerDownCapture)})});Zg.displayName=yE;var EE="DismissableLayerBranch",wE=v.forwardRef((n,i)=>{const s=v.useContext(Pg),r=v.useRef(null),d=Qn(i,r);return v.useEffect(()=>{const f=r.current;if(f)return s.branches.add(f),()=>{s.branches.delete(f)}},[s.branches]),c.jsx(Ga.div,{...n,ref:d})});wE.displayName=EE;function jE(n,i=globalThis==null?void 0:globalThis.document){const s=$s(n),r=v.useRef(!1),d=v.useRef(()=>{});return v.useEffect(()=>{const f=h=>{if(h.target&&!r.current){let x=function(){Jg(bE,s,g,{discrete:!0})};const g={originalEvent:h};h.pointerType==="touch"?(i.removeEventListener("click",d.current),d.current=x,i.addEventListener("click",d.current,{once:!0})):x()}else i.removeEventListener("click",d.current);r.current=!1},p=window.setTimeout(()=>{i.addEventListener("pointerdown",f)},0);return()=>{window.clearTimeout(p),i.removeEventListener("pointerdown",f),i.removeEventListener("click",d.current)}},[i,s]),{onPointerDownCapture:()=>r.current=!0}}function NE(n,i=globalThis==null?void 0:globalThis.document){const s=$s(n),r=v.useRef(!1);return v.useEffect(()=>{const d=f=>{f.target&&!r.current&&Jg(SE,s,{originalEvent:f},{discrete:!1})};return i.addEventListener("focusin",d),()=>i.removeEventListener("focusin",d)},[i,s]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Kh(){const n=new CustomEvent(qu);document.dispatchEvent(n)}function Jg(n,i,s,{discrete:r}){const d=s.originalEvent.target,f=new CustomEvent(n,{bubbles:!1,cancelable:!0,detail:s});i&&d.addEventListener(n,i,{once:!0}),r?vE(d,f):d.dispatchEvent(f)}var Su="focusScope.autoFocusOnMount",Eu="focusScope.autoFocusOnUnmount",Yh={bubbles:!1,cancelable:!0},_E="FocusScope",Fg=v.forwardRef((n,i)=>{const{loop:s=!1,trapped:r=!1,onMountAutoFocus:d,onUnmountAutoFocus:f,...p}=n,[h,x]=v.useState(null),g=$s(d),S=$s(f),b=v.useRef(null),E=Qn(i,A=>x(A)),w=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(r){let A=function(Y){if(w.paused||!h)return;const P=Y.target;h.contains(P)?b.current=P:hn(b.current,{select:!0})},O=function(Y){if(w.paused||!h)return;const P=Y.relatedTarget;P!==null&&(h.contains(P)||hn(b.current,{select:!0}))},T=function(Y){if(document.activeElement===document.body)for(const Z of Y)Z.removedNodes.length>0&&hn(h)};document.addEventListener("focusin",A),document.addEventListener("focusout",O);const X=new MutationObserver(T);return h&&X.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",A),document.removeEventListener("focusout",O),X.disconnect()}}},[r,h,w.paused]),v.useEffect(()=>{if(h){Xh.add(w);const A=document.activeElement;if(!h.contains(A)){const T=new CustomEvent(Su,Yh);h.addEventListener(Su,g),h.dispatchEvent(T),T.defaultPrevented||(CE(DE($g(h)),{select:!0}),document.activeElement===A&&hn(h))}return()=>{h.removeEventListener(Su,g),setTimeout(()=>{const T=new CustomEvent(Eu,Yh);h.addEventListener(Eu,S),h.dispatchEvent(T),T.defaultPrevented||hn(A??document.body,{select:!0}),h.removeEventListener(Eu,S),Xh.remove(w)},0)}}},[h,g,S,w]);const C=v.useCallback(A=>{if(!s&&!r||w.paused)return;const O=A.key==="Tab"&&!A.altKey&&!A.ctrlKey&&!A.metaKey,T=document.activeElement;if(O&&T){const X=A.currentTarget,[Y,P]=TE(X);Y&&P?!A.shiftKey&&T===P?(A.preventDefault(),s&&hn(Y,{select:!0})):A.shiftKey&&T===Y&&(A.preventDefault(),s&&hn(P,{select:!0})):T===X&&A.preventDefault()}},[s,r,w.paused]);return c.jsx(Ga.div,{tabIndex:-1,...p,ref:E,onKeyDown:C})});Fg.displayName=_E;function CE(n,{select:i=!1}={}){const s=document.activeElement;for(const r of n)if(hn(r,{select:i}),document.activeElement!==s)return}function TE(n){const i=$g(n),s=Vh(i,n),r=Vh(i.reverse(),n);return[s,r]}function $g(n){const i=[],s=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const d=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||d?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)i.push(s.currentNode);return i}function Vh(n,i){for(const s of n)if(!AE(s,{upTo:i}))return s}function AE(n,{upTo:i}){if(getComputedStyle(n).visibility==="hidden")return!0;for(;n;){if(i!==void 0&&n===i)return!1;if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}function kE(n){return n instanceof HTMLInputElement&&"select"in n}function hn(n,{select:i=!1}={}){if(n&&n.focus){const s=document.activeElement;n.focus({preventScroll:!0}),n!==s&&kE(n)&&i&&n.select()}}var Xh=OE();function OE(){let n=[];return{add(i){const s=n[0];i!==s&&(s==null||s.pause()),n=Qh(n,i),n.unshift(i)},remove(i){var s;n=Qh(n,i),(s=n[0])==null||s.resume()}}}function Qh(n,i){const s=[...n],r=s.indexOf(i);return r!==-1&&s.splice(r,1),s}function DE(n){return n.filter(i=>i.tagName!=="A")}var ME="Portal",Wg=v.forwardRef((n,i)=>{var h;const{container:s,...r}=n,[d,f]=v.useState(!1);Fs(()=>f(!0),[]);const p=s||d&&((h=globalThis==null?void 0:globalThis.document)==null?void 0:h.body);return p?rb.createPortal(c.jsx(Ga.div,{...r,ref:i}),p):null});Wg.displayName=ME;function RE(n,i){return v.useReducer((s,r)=>i[s][r]??s,n)}var Ii=n=>{const{present:i,children:s}=n,r=zE(i),d=typeof s=="function"?s({present:r.isPresent}):v.Children.only(s),f=Qn(r.ref,LE(d));return typeof s=="function"||r.isPresent?v.cloneElement(d,{ref:f}):null};Ii.displayName="Presence";function zE(n){const[i,s]=v.useState(),r=v.useRef(null),d=v.useRef(n),f=v.useRef("none"),p=n?"mounted":"unmounted",[h,x]=RE(p,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return v.useEffect(()=>{const g=wi(r.current);f.current=h==="mounted"?g:"none"},[h]),Fs(()=>{const g=r.current,S=d.current;if(S!==n){const E=f.current,w=wi(g);n?x("MOUNT"):w==="none"||(g==null?void 0:g.display)==="none"?x("UNMOUNT"):x(S&&E!==w?"ANIMATION_OUT":"UNMOUNT"),d.current=n}},[n,x]),Fs(()=>{if(i){let g;const S=i.ownerDocument.defaultView??window,b=w=>{const A=wi(r.current).includes(CSS.escape(w.animationName));if(w.target===i&&A&&(x("ANIMATION_END"),!d.current)){const O=i.style.animationFillMode;i.style.animationFillMode="forwards",g=S.setTimeout(()=>{i.style.animationFillMode==="forwards"&&(i.style.animationFillMode=O)})}},E=w=>{w.target===i&&(f.current=wi(r.current))};return i.addEventListener("animationstart",E),i.addEventListener("animationcancel",b),i.addEventListener("animationend",b),()=>{S.clearTimeout(g),i.removeEventListener("animationstart",E),i.removeEventListener("animationcancel",b),i.removeEventListener("animationend",b)}}else x("ANIMATION_END")},[i,x]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:v.useCallback(g=>{r.current=g?getComputedStyle(g):null,s(g)},[])}}function wi(n){return(n==null?void 0:n.animationName)||"none"}function LE(n){var r,d;let i=(r=Object.getOwnPropertyDescriptor(n.props,"ref"))==null?void 0:r.get,s=i&&"isReactWarning"in i&&i.isReactWarning;return s?n.ref:(i=(d=Object.getOwnPropertyDescriptor(n,"ref"))==null?void 0:d.get,s=i&&"isReactWarning"in i&&i.isReactWarning,s?n.props.ref:n.props.ref||n.ref)}var wu=0;function UE(){v.useEffect(()=>{const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",n[0]??Ph()),document.body.insertAdjacentElement("beforeend",n[1]??Ph()),wu++,()=>{wu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(i=>i.remove()),wu--}},[])}function Ph(){const n=document.createElement("span");return n.setAttribute("data-radix-focus-guard",""),n.tabIndex=0,n.style.outline="none",n.style.opacity="0",n.style.position="fixed",n.style.pointerEvents="none",n}var ga=function(){return ga=Object.assign||function(i){for(var s,r=1,d=arguments.length;r<d;r++){s=arguments[r];for(var f in s)Object.prototype.hasOwnProperty.call(s,f)&&(i[f]=s[f])}return i},ga.apply(this,arguments)};function ev(n,i){var s={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&i.indexOf(r)<0&&(s[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var d=0,r=Object.getOwnPropertySymbols(n);d<r.length;d++)i.indexOf(r[d])<0&&Object.prototype.propertyIsEnumerable.call(n,r[d])&&(s[r[d]]=n[r[d]]);return s}function BE(n,i,s){if(s||arguments.length===2)for(var r=0,d=i.length,f;r<d;r++)(f||!(r in i))&&(f||(f=Array.prototype.slice.call(i,0,r)),f[r]=i[r]);return n.concat(f||Array.prototype.slice.call(i))}var Oi="right-scroll-bar-position",Di="width-before-scroll-bar",HE="with-scroll-bars-hidden",GE="--removed-body-scroll-bar-size";function ju(n,i){return typeof n=="function"?n(i):n&&(n.current=i),n}function qE(n,i){var s=v.useState(function(){return{value:n,callback:i,facade:{get current(){return s.value},set current(r){var d=s.value;d!==r&&(s.value=r,s.callback(r,d))}}}})[0];return s.callback=i,s.facade}var IE=typeof window<"u"?v.useLayoutEffect:v.useEffect,Zh=new WeakMap;function KE(n,i){var s=qE(null,function(r){return n.forEach(function(d){return ju(d,r)})});return IE(function(){var r=Zh.get(s);if(r){var d=new Set(r),f=new Set(n),p=s.current;d.forEach(function(h){f.has(h)||ju(h,null)}),f.forEach(function(h){d.has(h)||ju(h,p)})}Zh.set(s,n)},[n]),s}function YE(n){return n}function VE(n,i){i===void 0&&(i=YE);var s=[],r=!1,d={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:n},useMedium:function(f){var p=i(f,r);return s.push(p),function(){s=s.filter(function(h){return h!==p})}},assignSyncMedium:function(f){for(r=!0;s.length;){var p=s;s=[],p.forEach(f)}s={push:function(h){return f(h)},filter:function(){return s}}},assignMedium:function(f){r=!0;var p=[];if(s.length){var h=s;s=[],h.forEach(f),p=s}var x=function(){var S=p;p=[],S.forEach(f)},g=function(){return Promise.resolve().then(x)};g(),s={push:function(S){p.push(S),g()},filter:function(S){return p=p.filter(S),s}}}};return d}function XE(n){n===void 0&&(n={});var i=VE(null);return i.options=ga({async:!0,ssr:!1},n),i}var tv=function(n){var i=n.sideCar,s=ev(n,["sideCar"]);if(!i)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=i.read();if(!r)throw new Error("Sidecar medium not found");return v.createElement(r,ga({},s))};tv.isSideCarExport=!0;function QE(n,i){return n.useMedium(i),tv}var av=XE(),Nu=function(){},Ki=v.forwardRef(function(n,i){var s=v.useRef(null),r=v.useState({onScrollCapture:Nu,onWheelCapture:Nu,onTouchMoveCapture:Nu}),d=r[0],f=r[1],p=n.forwardProps,h=n.children,x=n.className,g=n.removeScrollBar,S=n.enabled,b=n.shards,E=n.sideCar,w=n.noRelative,C=n.noIsolation,A=n.inert,O=n.allowPinchZoom,T=n.as,X=T===void 0?"div":T,Y=n.gapMode,P=ev(n,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),Z=E,te=KE([s,i]),H=ga(ga({},P),d);return v.createElement(v.Fragment,null,S&&v.createElement(Z,{sideCar:av,removeScrollBar:g,shards:b,noRelative:w,noIsolation:C,inert:A,setCallbacks:f,allowPinchZoom:!!O,lockRef:s,gapMode:Y}),p?v.cloneElement(v.Children.only(h),ga(ga({},H),{ref:te})):v.createElement(X,ga({},H,{className:x,ref:te}),h))});Ki.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ki.classNames={fullWidth:Di,zeroRight:Oi};var PE=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function ZE(){if(!document)return null;var n=document.createElement("style");n.type="text/css";var i=PE();return i&&n.setAttribute("nonce",i),n}function JE(n,i){n.styleSheet?n.styleSheet.cssText=i:n.appendChild(document.createTextNode(i))}function FE(n){var i=document.head||document.getElementsByTagName("head")[0];i.appendChild(n)}var $E=function(){var n=0,i=null;return{add:function(s){n==0&&(i=ZE())&&(JE(i,s),FE(i)),n++},remove:function(){n--,!n&&i&&(i.parentNode&&i.parentNode.removeChild(i),i=null)}}},WE=function(){var n=$E();return function(i,s){v.useEffect(function(){return n.add(i),function(){n.remove()}},[i&&s])}},nv=function(){var n=WE(),i=function(s){var r=s.styles,d=s.dynamic;return n(r,d),null};return i},ew={left:0,top:0,right:0,gap:0},_u=function(n){return parseInt(n||"",10)||0},tw=function(n){var i=window.getComputedStyle(document.body),s=i[n==="padding"?"paddingLeft":"marginLeft"],r=i[n==="padding"?"paddingTop":"marginTop"],d=i[n==="padding"?"paddingRight":"marginRight"];return[_u(s),_u(r),_u(d)]},aw=function(n){if(n===void 0&&(n="margin"),typeof window>"u")return ew;var i=tw(n),s=document.documentElement.clientWidth,r=window.innerWidth;return{left:i[0],top:i[1],right:i[2],gap:Math.max(0,r-s+i[2]-i[0])}},nw=nv(),Gl="data-scroll-locked",lw=function(n,i,s,r){var d=n.left,f=n.top,p=n.right,h=n.gap;return s===void 0&&(s="margin"),`
192
+ */const lS=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],sS=Ct("chevron-down",lS),zl=500,rS=1800*1e3,qg="maestro-session-titles";function iS(){try{const n=localStorage.getItem(qg);return n?JSON.parse(n):{}}catch{return{}}}function oS(n){try{localStorage.setItem(qg,JSON.stringify(n))}catch{}}const Ua=new Map,oa=_t(n=>({processes:{},entries:{},pendingApprovals:{},activeProcessId:null,processThoughts:{},processStreaming:{},processTokenUsage:{},selectedProcessIds:new Set,processTitles:iS(),addProcess:i=>n(s=>{var p;const r=s.entries[i.id];if(r&&r.length>0)return{processes:{...s.processes,[i.id]:i}};const d=(p=i.config)==null?void 0:p.prompt,f=d?[{id:`synth-user-${i.id}`,processId:i.id,timestamp:i.startedAt,type:"user_message",content:d}]:[];return{processes:{...s.processes,[i.id]:i},entries:{...s.entries,[i.id]:f}}}),removeProcess:i=>n(s=>{const{[i]:r,...d}=s.processes;return{processes:d}}),updateProcessStatus:(i,s)=>{if(s==="stopped"||s==="error"){if(!Ua.has(i)){const r=setTimeout(()=>{Ua.delete(i);const{processes:d,activeProcessId:f,dismissProcess:p}=oa.getState(),h=d[i];h&&(h.status==="stopped"||h.status==="error")&&f!==i&&p(i)},rS);Ua.set(i,r)}}else{const r=Ua.get(i);r&&(clearTimeout(r),Ua.delete(i))}n(r=>{const d=r.processes[i];return d?{processes:{...r.processes,[i]:{...d,status:s}}}:r})},addEntry:(i,s)=>n(r=>{const d=r.entries[i]??[];if(s.id&&d.some(p=>p.id===s.id))return r;let f;if(s.type==="assistant_message"){const p=d.length-1,h=p>=0?d[p]:null;if(s.partial&&(h==null?void 0:h.type)==="assistant_message"&&h.partial){const x={...h,content:h.content+s.content,id:s.id};f=d.slice(),f[p]=x}else!s.partial&&(h==null?void 0:h.type)==="assistant_message"&&h.partial?(f=d.slice(),f[p]=s):f=[...d,s]}else f=[...d,s];return{entries:{...r.entries,[i]:f.length>zl?f.slice(-zl):f}}}),setEntries:(i,s)=>n(r=>({entries:{...r.entries,[i]:s.length>zl?s.slice(-zl):s}})),batchAddEntries:i=>n(s=>{const r={...s.entries};for(const[d,f]of Object.entries(i)){const p=r[d]??[],h=new Set(p.map(S=>S.id).filter(Boolean)),x=f.filter(S=>!S.id||!h.has(S.id));if(x.length===0)continue;const g=[...p,...x];r[d]=g.length>zl?g.slice(-zl):g}return{entries:r}}),setApproval:i=>n(s=>({pendingApprovals:{...s.pendingApprovals,[i.id]:i}})),clearApproval:i=>n(s=>{const{[i]:r,...d}=s.pendingApprovals;return{pendingApprovals:d}}),setActiveProcessId:i=>n({activeProcessId:i}),setProcessThought:(i,s)=>n(r=>({processThoughts:{...r.processThoughts,[i]:s}})),setProcessStreaming:(i,s)=>n(r=>({processStreaming:{...r.processStreaming,[i]:s}})),updateProcessTokenUsage:(i,s,r,d,f)=>n(p=>{const h=p.processTokenUsage[i]??{input:0,output:0,cacheRead:0,cacheWrite:0};return{processTokenUsage:{...p.processTokenUsage,[i]:{input:h.input+s,output:h.output+r,cacheRead:h.cacheRead+d,cacheWrite:h.cacheWrite+f}}}}),dismissProcess:i=>{const s=Ua.get(i);if(s&&(clearTimeout(s),Ua.delete(i)),i.startsWith("cli-history-")){const r=i.slice(12);fetch(`/api/cli-history/${encodeURIComponent(r)}`,{method:"DELETE"}).catch(()=>{})}fetch(`/api/agents/${encodeURIComponent(i)}`,{method:"DELETE"}).catch(()=>{}),n(r=>{const{[i]:d,...f}=r.processes,{[i]:p,...h}=r.entries,{[i]:x,...g}=r.processThoughts,{[i]:S,...b}=r.processStreaming,{[i]:E,...w}=r.processTokenUsage,C={};for(const[A,O]of Object.entries(r.pendingApprovals))O.processId!==i&&(C[A]=O);return{processes:f,entries:h,processThoughts:g,processStreaming:b,processTokenUsage:w,pendingApprovals:C,activeProcessId:r.activeProcessId===i?null:r.activeProcessId}})},cleanupStaleProcesses:()=>{const{processes:i,activeProcessId:s,dismissProcess:r}=oa.getState();for(const[d,f]of Object.entries(i))(f.status==="stopped"||f.status==="error")&&s!==d&&r(d)},toggleProcessSelection:i=>n(s=>{const r=new Set(s.selectedProcessIds);return r.has(i)?r.delete(i):r.add(i),{selectedProcessIds:r}}),clearProcessSelection:()=>n({selectedProcessIds:new Set}),renameProcess:(i,s)=>n(r=>{const d={...r.processTitles,[i]:s};return oS(d),{processTitles:d}}),batchDismissProcesses:i=>{const{dismissProcess:s}=oa.getState();for(const r of i)s(r);n({selectedProcessIds:new Set})},getProcessTitle:i=>oa.getState().processTitles[i]||void 0,clearAll:()=>{for(const i of Ua.values())clearTimeout(i);Ua.clear(),n({processes:{},entries:{},pendingApprovals:{},activeProcessId:null,processThoughts:{},processStreaming:{},processTokenUsage:{},selectedProcessIds:new Set})}})),zu=_t((n,i)=>({issues:[],loading:!1,error:null,patchIssue:s=>n(r=>{const d=r.issues.findIndex(f=>f.id===s.id);if(d>=0){const f=[...r.issues];return f[d]=s,{issues:f}}return{issues:[...r.issues,s]}}),fetchIssues:async s=>{n({loading:!0,error:null});try{const r=new URLSearchParams;s!=null&&s.status&&r.set("status",s.status),s!=null&&s.type&&r.set("type",s.type);const d=r.toString(),f=Gs.ISSUES+(d?`?${d}`:""),p=await fetch(f);if(!p.ok)throw new Error(`Failed to fetch issues: ${p.status}`);const h=await p.json();n({issues:h,loading:!1})}catch(r){n({loading:!1,error:String(r)})}},createIssue:async s=>{n({error:null});try{const r=await fetch(Gs.ISSUES,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!r.ok){const f=await r.json().catch(()=>({error:`HTTP ${r.status}`}));throw new Error(f.error)}const d=await r.json();return n(f=>({issues:[...f.issues,d]})),d}catch(r){return n({error:String(r)}),null}},updateIssue:async(s,r)=>{n({error:null});const d=i().issues;n(f=>({issues:f.issues.map(p=>p.id===s?{...p,...r,updated_at:new Date().toISOString()}:p)}));try{const f=Gs.ISSUES+`/${s}`,p=await fetch(f,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!p.ok)throw new Error(`Failed to update issue: ${p.status}`);const h=await p.json();n(x=>({issues:x.issues.map(g=>g.id===s?h:g)}))}catch(f){n({issues:d,error:String(f)})}},deleteIssue:async s=>{n({error:null});const r=i().issues;n(d=>({issues:d.issues.filter(f=>f.id!==s)}));try{const d=Gs.ISSUES+`/${s}`,f=await fetch(d,{method:"DELETE"});if(!f.ok)throw new Error(`Failed to delete issue: ${f.status}`)}catch(d){n({issues:r,error:String(d)})}},addSupplement:async(s,r,d,f)=>{const p=i().issues.find(S=>S.id===s);if(!p)return;const h=p.supplements??[],x={content:r,stage:d,author:f,created_at:new Date().toISOString()},g=[...h,x];n(S=>({issues:S.issues.map(b=>b.id===s?{...b,supplements:g,updated_at:new Date().toISOString()}:b)}));try{const S=Gs.ISSUES+`/${s}`;await fetch(S,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({supplements:g})})}catch(S){n({error:String(S)})}}})),cS=[],uS=[{labelKey:"nav.kanban",tooltipKey:"dock.kanban_tooltip",path:"/kanban",icon:"kanban",shortcut:"K"},{labelKey:"nav.artifacts",tooltipKey:"dock.artifacts_tooltip",path:"/artifacts",icon:"artifacts",shortcut:"A"},{labelKey:"nav.chat",tooltipKey:"dock.chat_tooltip",path:"/chat",icon:"chat",shortcut:"C"},{labelKey:"nav.workflow",tooltipKey:"dock.workflow_tooltip",path:"/workflow",icon:"workflow",shortcut:"W"},{labelKey:"nav.mcp",tooltipKey:"dock.mcp_tooltip",path:"/mcp",icon:"mcp",shortcut:"M"},{labelKey:"nav.specs",tooltipKey:"dock.specs_tooltip",path:"/specs",icon:"specs",shortcut:"S"},{labelKey:"nav.teams",tooltipKey:"dock.teams_tooltip",path:"/teams",icon:"teams",shortcut:"T"},{labelKey:"nav.collab",tooltipKey:"dock.collab_tooltip",path:"/collab",icon:"collab",shortcut:"L"},{labelKey:"nav.requirement",tooltipKey:"dock.requirement_tooltip",path:"/requirement",icon:"requirement",shortcut:"R"},{labelKey:"nav.maestro_coordinate",tooltipKey:"dock.maestro_coordinate_tooltip",path:"/maestro-coordinate",icon:"maestro-coordinate",shortcut:"V"},{labelKey:"nav.rooms",tooltipKey:"dock.rooms_tooltip",path:"/rooms",icon:"rooms",shortcut:"O"}];function dS({isPinned:n,onTogglePin:i}){const{t:s}=St(),r=Vt(F=>{var Te;return((Te=F.board)==null?void 0:Te.phases)??cS}),d=oa(F=>F.processes),f=oa(F=>F.activeProcessId),p=Vt(F=>F.selectedPhase),h=Vt(F=>F.setSelectedPhase),x=zu(F=>F.issues),g=zu(F=>F.fetchIssues),S=Gi(),b=Ha();v.useEffect(()=>{g()},[g]);const E=v.useMemo(()=>{const F={open:0,in_progress:0,resolved:0,closed:0,total:0};for(const Te of x)F.total++,Te.status in F&&F[Te.status]++;return F},[x]),w=v.useRef(null),C=v.useRef(null),[A,O]=v.useState(!1),T=v.useMemo(()=>{const F=Date.now()-864e5;return Object.values(d).filter(Te=>new Date(Te.startedAt).getTime()>F)},[d]),X=pe(F=>{var qe,L,J,ie;return((L=(qe=F.draft)==null?void 0:qe.general)==null?void 0:L.hiddenNavItems)??((ie=(J=F.config)==null?void 0:J.general)==null?void 0:ie.hiddenNavItems)}),Y=v.useMemo(()=>["/maestro-coordinate","/requirement","/rooms"],[]),P=X??Y,Z=v.useMemo(()=>uS.filter(F=>!P.includes(F.path)),[P]),[te,H]=v.useState(!1),Q=5,fe=v.useCallback(()=>{n||O(!0)},[n]),He=v.useCallback(F=>{var Te;!n&&!(F.relatedTarget instanceof Node&&((Te=C.current)!=null&&Te.contains(F.relatedTarget)))&&O(!1)},[n]),Ae=v.useCallback(F=>{var Te;!n&&!(F.relatedTarget instanceof Node&&((Te=w.current)!=null&&Te.contains(F.relatedTarget)))&&O(!1)},[n]),ze=v.useCallback(F=>{S(F),O(!1)},[S]);return c.jsxs("div",{className:"relative flex",children:[c.jsxs("nav",{ref:w,role:"navigation","aria-label":s("nav.views"),className:"w-[var(--size-rail-width)] bg-bg-secondary border-r border-border flex-shrink-0 flex flex-col items-center pt-2 gap-0.5 z-50",onMouseEnter:fe,onMouseLeave:He,children:[Z.map(F=>c.jsx(fS,{item:F,isActive:b.pathname.startsWith(F.path),onActivate:()=>ze(F.path),t:s},F.path)),c.jsx("div",{className:"w-6 h-px bg-border-divider my-1.5","aria-hidden":"true"}),c.jsx("div",{className:"flex flex-col items-center gap-1.5 py-1",role:"list","aria-label":s("dock.phases_label"),children:T.length>0?T.slice(0,Q).map(F=>c.jsx(hS,{process:F,isActive:F.id===f,onSelect:()=>{oa.getState().setActiveProcessId(F.id),S("/chat")}},F.id)):r.map(F=>c.jsx(gS,{phase:F,t:s},F.phase))}),c.jsx("button",{type:"button",onClick:i,"aria-label":s("dock.toggle_sidebar"),className:["mt-auto mb-2 flex items-center justify-center w-9 h-9 rounded-[6px]","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",n?"text-text-primary bg-bg-active":"text-text-tertiary hover:bg-bg-hover hover:text-text-primary"].join(" "),children:c.jsx(W1,{size:16,strokeWidth:1.8})})]}),c.jsxs("aside",{ref:C,"aria-label":s("dock.views_label"),className:["dock-floating-panel","absolute left-[var(--size-rail-width)] top-0 bottom-0","w-[calc(var(--size-panel-width)-var(--size-rail-width))]","bg-bg-secondary border-r border-border overflow-y-auto z-40","shadow-[4px_0_16px_rgba(0,0,0,0.06)]","transition-[transform,opacity] duration-[200ms] ease-[var(--ease-spring)]",n||A?"translate-x-0 opacity-100 pointer-events-auto":"-translate-x-full opacity-0 pointer-events-none"].join(" "),onMouseLeave:Ae,children:[c.jsxs("div",{className:"px-2 py-2.5 border-b border-border-divider",children:[c.jsx("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)] px-2 mb-1",children:s("dock.views_label")}),c.jsx("nav",{className:"flex flex-col gap-0.5",children:Z.map(F=>c.jsx(yS,{item:F,t:s},F.path))})]}),T.length>0&&c.jsxs("div",{className:"px-2 py-2.5 border-b border-border-divider",children:[c.jsxs("div",{className:"flex items-center justify-between px-2 mb-1",children:[c.jsxs("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)]",children:["Sessions",T.length>Q&&c.jsx("span",{className:"ml-1 font-normal text-text-placeholder",children:T.length})]}),c.jsx("button",{type:"button",className:"w-[18px] h-[18px] rounded flex items-center justify-center border-none bg-transparent cursor-pointer transition-all duration-100",style:{color:"var(--color-text-placeholder)"},onMouseEnter:F=>{F.currentTarget.style.color="var(--color-text-primary)",F.currentTarget.style.backgroundColor="var(--color-bg-hover)"},onMouseLeave:F=>{F.currentTarget.style.color="var(--color-text-placeholder)",F.currentTarget.style.backgroundColor="transparent"},"aria-label":"New session",children:c.jsx(tS,{size:12,strokeWidth:2})})]}),c.jsx("nav",{className:"flex flex-col gap-0.5",children:(te?T:T.slice(0,Q)).map(F=>c.jsx(vS,{process:F,isActive:F.id===f},F.id))}),T.length>Q&&c.jsxs("button",{type:"button",onClick:()=>H(F=>!F),className:"flex items-center gap-1 px-2 py-1 mt-0.5 w-full text-[10px] text-text-placeholder hover:text-text-secondary transition-colors",children:[c.jsx(sS,{size:12,strokeWidth:2,className:`transition-transform duration-150 ${te?"rotate-180":""}`}),c.jsx("span",{children:te?"Show less":`${T.length-Q} more…`})]})]}),x.length>0&&c.jsxs("div",{className:"px-2 py-2.5 border-b border-border-divider",children:[c.jsx("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)] px-2 mb-1",children:"Issues"}),c.jsxs("button",{type:"button",onClick:()=>{S("/kanban"),O(!1)},className:"flex items-center gap-2 px-2 py-1.5 rounded-[var(--radius-default)] text-left text-[length:var(--font-size-sm)] w-full hover:bg-bg-hover transition-colors",children:[c.jsxs("span",{className:"flex-1 text-text-secondary",children:[E.total," issues"]}),c.jsxs("span",{className:"flex items-center gap-2 text-[10px]",children:[E.open>0&&c.jsxs("span",{style:{color:"var(--color-accent-blue)"},children:[E.open," open"]}),E.in_progress>0&&c.jsxs("span",{style:{color:"var(--color-accent-yellow)"},children:[E.in_progress," active"]}),E.resolved>0&&c.jsxs("span",{style:{color:"var(--color-accent-green)"},children:[E.resolved," done"]})]})]})]}),c.jsxs("div",{className:"px-2 py-2.5",children:[c.jsx("h2",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[var(--letter-spacing-wide)] px-2 mb-1",children:s("dock.phases_label")}),c.jsxs("nav",{className:"flex flex-col gap-0.5","aria-label":"Project phases",children:[r.map(F=>c.jsx(bS,{phase:F,selected:p===F.phase,onSelect:()=>{h(p===F.phase?null:F.phase),O(!1)}},F.phase)),r.length===0&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-secondary italic px-2",children:s("sidebar.no_phases_loaded")})]})]})]})]})}function fS({item:n,isActive:i,onActivate:s,t:r}){return c.jsx("button",{type:"button",onClick:s,"aria-label":r(n.tooltipKey),"aria-current":i?"page":void 0,className:["relative flex items-center justify-center w-9 h-9 rounded-[8px]","transition-colors duration-150","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",i?"bg-bg-active text-text-primary":"text-text-tertiary hover:bg-bg-hover hover:text-text-primary"].join(" "),children:c.jsx(pS,{icon:n.icon})})}const mS={kanban:O1,artifacts:M1,chat:z1,workflow:U1,mcp:H1,specs:q1,teams:K1,requirement:V1,"maestro-coordinate":Q1,collab:Z1,rooms:F1};function pS({icon:n}){const i=mS[n];return c.jsx(i,{size:18,strokeWidth:1.8})}function hS({process:n,isActive:i,onSelect:s}){const r=Eg[n.type]??"var(--color-text-tertiary)",d=n.status==="running"||n.status==="spawning",f=n.id.startsWith("cli-history-");return c.jsx("span",{role:"listitem",title:`${n.type}${f?" — async delegate":""} — ${n.status}`,onClick:s,className:["relative w-2 h-2 rounded-full cursor-pointer transition-transform duration-150 hover:scale-[1.4]",i?"ring-2 ring-offset-2 ring-offset-bg-secondary":""].join(" "),style:{backgroundColor:d?r:"var(--color-text-placeholder)",color:r,...i?{boxShadow:`0 0 0 2px var(--color-bg-secondary), 0 0 0 3.5px ${r}`}:{}},children:d&&c.jsx("span",{className:"absolute inset-[-2px] rounded-full animate-[sdot-ping_2s_ease_infinite]",style:{background:r,opacity:.4}})})}function gS({phase:n,t:i}){return c.jsx("span",{role:"listitem","aria-label":i("dock.phase_dot_aria",{phase:n.phase,title:n.title,status:n.status}),className:"w-[7px] h-[7px] rotate-45 rounded-[1px] cursor-pointer transition-transform duration-150 hover:scale-[1.4]",style:{backgroundColor:Sg[n.status]}})}function vS({process:n,isActive:i}){const s=Eg[n.type]??"var(--color-text-tertiary)",r=oa(x=>x.setActiveProcessId),d=oa(x=>x.removeProcess),f=Gi(),p=SS(n.startedAt),h=n.id.startsWith("cli-history-");return c.jsxs("div",{className:["group flex items-center gap-2 px-2.5 py-1.5 rounded-[8px] text-left text-[12px] w-full","transition-all duration-150 cursor-pointer",i?"bg-bg-active":"hover:bg-bg-hover"].join(" "),onClick:()=>{r(n.id),f("/chat")},children:[c.jsx("span",{className:"w-[7px] h-[7px] rounded-full shrink-0",style:{backgroundColor:s}}),c.jsx("span",{className:"flex-1 font-medium text-text-primary truncate",children:n.type}),h&&c.jsx("span",{className:"text-[9px] font-semibold px-[4px] py-[1px] rounded shrink-0",style:{backgroundColor:"var(--color-tint-exploring)",color:"var(--color-accent-blue)"},children:"ASYNC"}),c.jsx("span",{className:"text-[10px] text-text-placeholder shrink-0",children:p}),c.jsx("button",{type:"button",onClick:x=>{x.stopPropagation(),d(n.id)},className:"w-4 h-4 rounded flex items-center justify-center shrink-0 opacity-0 group-hover:opacity-100 text-text-placeholder hover:text-text-primary hover:bg-bg-active transition-all duration-100","aria-label":"Close session",children:c.jsx(nS,{size:10,strokeWidth:2})})]})}const xS=["flex items-center gap-2 px-2 py-1.5 rounded-[var(--radius-default)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] w-full","transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"].join(" ");function yS({item:n,t:i}){return c.jsxs(u0,{to:n.path,className:({isActive:s})=>`${xS} ${s?"bg-bg-active text-text-primary font-semibold":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"}`,children:[c.jsx("span",{className:"truncate",children:i(n.labelKey)}),n.shortcut&&c.jsx("span",{className:"ml-auto text-[10px] text-text-placeholder",children:n.shortcut})]})}function bS({phase:n,selected:i,onSelect:s}){const r=Sg[n.status];return c.jsxs("button",{type:"button",onClick:s,"aria-current":i?"true":void 0,className:["flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-default)] text-left text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] w-full","transition-all duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]","disabled:opacity-[var(--opacity-disabled)] disabled:pointer-events-none",i?"bg-bg-active text-text-primary border-l-2 border-l-accent-blue":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"].join(" "),children:[c.jsx("span",{className:"w-2 h-2 rounded-full shrink-0","aria-hidden":"true",style:{backgroundColor:r}}),c.jsxs("span",{className:"truncate",children:[n.phase,". ",n.title]})]})}function SS(n){const i=Date.now()-new Date(n).getTime(),s=Math.floor(i/6e4);return s<1?"<1m":s<60?`${s}m`:`${Math.floor(s/60)}h`}const ES=["/maestro-coordinate","/chat","/meeting-room","/rooms"];function wS({children:n}){const{t:i}=St(),{pathname:s}=Ha(),r=ES.some(d=>s.startsWith(d));return c.jsx("main",{role:"main","aria-label":i("accessibility.main_content"),className:r?"flex-1 overflow-hidden bg-bg-primary":"flex-1 overflow-y-auto bg-bg-primary p-[var(--spacing-4)] sm:p-[var(--spacing-4)] max-sm:p-[var(--spacing-2)]",children:n})}const Ig="maestro-layout-state",jS=500,Kg=5;function Lu(n){return{type:"leaf",id:n,tabs:[],activeTabId:null}}function Yg(){return{version:Kg,primarySidebar:{visible:!0,width:260,activePanelId:"explorer"},secondarySidebar:{visible:!1,width:300,activePanelId:null},activityBar:{activePanelId:"explorer"},editorArea:Lu("editor-group-1"),panel:{visible:!1,height:200,activeTabId:null,isMaximized:!1},focusedGroupId:"editor-group-1",workspaceMode:"conversation"}}function NS(n){const i=n.version??0;let s=n;if(i<2&&(s={...s,secondarySidebar:s.secondarySidebar??{visible:!1,width:300,activePanelId:null},version:2}),s.version<3&&(s={...s,focusedGroupId:s.focusedGroupId??"editor-group-1",version:3}),s.version<4){const r=Yg();s={...r,...s,version:4,primarySidebar:{...r.primarySidebar,...s.primarySidebar},secondarySidebar:{...r.secondarySidebar,...s.secondarySidebar},activityBar:{...r.activityBar,...s.activityBar},panel:{...r.panel,...s.panel}}}return s.version<5&&(s={...s,workspaceMode:s.workspaceMode??"conversation",version:5}),s}function Qs(n,i){return n.type==="leaf"?n.id===i?n:null:Qs(n.first,i)??Qs(n.second,i)}let _S=2;function CS(){return`editor-group-${_S++}`}function TS(n,i){var s;switch(i.type){case"SET_SIDEBAR_VISIBLE":{const r=i.side==="primary"?"primarySidebar":"secondarySidebar";return{...n,[r]:{...n[r],visible:i.visible}}}case"SET_SIDEBAR_WIDTH":{const r=i.side==="primary"?"primarySidebar":"secondarySidebar";return{...n,[r]:{...n[r],width:i.width}}}case"SET_ACTIVE_PANEL":{const r=i.side==="primary"?"primarySidebar":"secondarySidebar";return{...n,[r]:{...n[r],activePanelId:i.panelId}}}case"SET_FOCUSED_GROUP":return{...n,focusedGroupId:i.groupId};case"SET_PANEL_VISIBLE":return{...n,panel:{...n.panel,visible:i.visible}};case"SET_PANEL_HEIGHT":return{...n,panel:{...n.panel,height:i.height}};case"SET_PANEL_ACTIVE_TAB":return{...n,panel:{...n.panel,activeTabId:i.tabId}};case"SET_PANEL_MAXIMIZED":return{...n,panel:{...n.panel,isMaximized:i.maximized}};case"OPEN_TAB":{const r=Qs(n.editorArea,i.groupId);return r?r.tabs.find(f=>f.id===i.tab.id)?{...n,focusedGroupId:i.groupId,editorArea:qn(n.editorArea,i.groupId,{activeTabId:i.tab.id})}:{...n,focusedGroupId:i.groupId,editorArea:qn(n.editorArea,i.groupId,{tabs:[...r.tabs,i.tab],activeTabId:i.tab.id})}:n}case"CLOSE_TAB":{const r=Qs(n.editorArea,i.groupId);if(!r)return n;const d=r.tabs.filter(p=>p.id!==i.tabId);if(d.length===r.tabs.length)return n;const f=r.activeTabId===i.tabId?((s=d[d.length-1])==null?void 0:s.id)??null:r.activeTabId;return{...n,editorArea:qn(n.editorArea,i.groupId,{tabs:d,activeTabId:f})}}case"SET_ACTIVE_TAB":return{...n,focusedGroupId:i.groupId,editorArea:qn(n.editorArea,i.groupId,{activeTabId:i.tabId})};case"SET_WORKSPACE_MODE":{let r={...n,workspaceMode:i.mode};switch(i.mode){case"conversation":r={...r,panel:{...r.panel,visible:!1}};break;case"files":r={...r,panel:{...r.panel,visible:!1}};break;case"fusion":r={...r,panel:{...r.panel,visible:!0}};break}return r}case"SPLIT_GROUP":{const r=CS(),d=Qs(n.editorArea,i.groupId);let f,p=n.editorArea;if(d&&d.activeTabId){const x=d.tabs.find(g=>g.id===d.activeTabId);if(x){f={type:"leaf",id:r,tabs:[x],activeTabId:x.id};const g=d.tabs.filter(b=>b.id!==d.activeTabId),S=g.length>0?g[g.length-1].id:null;p=qn(n.editorArea,i.groupId,{tabs:g,activeTabId:S})}else f=Lu(r)}else f=Lu(r);const h=Bu(p,i.groupId,i.direction,f);return h?{...n,editorArea:h,focusedGroupId:r}:n}case"CLOSE_GROUP":{const r=Hu(n.editorArea,i.groupId);return r?{...n,editorArea:r,focusedGroupId:Vg(r).id}:n}case"RESIZE_GROUP":{const r=Uu(n.editorArea,i.branchId,{ratio:i.ratio});return r?{...n,editorArea:r}:n}case"MOVE_PANEL":{const d=(i.toSide==="primary"?"secondary":"primary")==="primary"?"primarySidebar":"secondarySidebar",f={},p=n[d];return p.activePanelId===i.panelId&&(f[d]={...p,activePanelId:null}),{...n,...f}}case"RESTORE_STATE":return{...i.state,version:Kg};default:return n}}function qn(n,i,s){return n.type==="leaf"?n.id===i?{...n,...s}:n:{...n,first:qn(n.first,i,s),second:qn(n.second,i,s)}}function Uu(n,i,s){if(n.type==="leaf")return null;if(n.id===i)return{...n,...s};const r=Uu(n.first,i,s);if(r)return{...n,first:r};const d=Uu(n.second,i,s);return d?{...n,second:d}:null}function Bu(n,i,s,r){if(n.type==="leaf")return n.id!==i?null:{type:"branch",id:`branch-${i}`,direction:s,ratio:.5,first:n,second:r};const d=Bu(n.first,i,s,r);if(d)return{...n,first:d};const f=Bu(n.second,i,s,r);return f?{...n,second:f}:null}function Hu(n,i){if(n.type==="leaf")return null;if(n.first.type==="leaf"&&n.first.id===i)return n.second;if(n.second.type==="leaf"&&n.second.id===i)return n.first;const s=Hu(n.first,i);if(s)return{...n,first:s};const r=Hu(n.second,i);return r?{...n,second:r}:null}function Vg(n){return n.type==="leaf"?n:Vg(n.first)}const Xg=v.createContext(null);function AS(){try{const n=localStorage.getItem(Ig);if(!n)return null;const i=JSON.parse(n);return NS(i)}catch{return null}}function kS({children:n}){const[i,s]=v.useReducer(TS,null,()=>AS()??Yg()),r=v.useRef(null),d=v.useRef(i);return d.current=i,v.useEffect(()=>(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{try{localStorage.setItem(Ig,JSON.stringify(d.current))}catch{}},jS),()=>{r.current&&clearTimeout(r.current)}),[i]),c.jsx(Xg,{value:{state:i,dispatch:s},children:n})}function $u(){const n=v.useContext(Xg);if(!n)throw new Error("useLayoutContext must be used within a LayoutProvider");return n}function Xs(n){const{state:i}=$u();return n(i)}const OS=[];function zh(n){return OS.filter(i=>i.alignment===n).filter(i=>i.visible?i.visible():!0).sort((i,s)=>s.priority-i.priority)}function Lh({children:n,tooltip:i,clickable:s=!1,onClick:r}){const d=s&&r,f=["flex items-center gap-[var(--spacing-1)]","h-full px-[var(--spacing-1-5)]","text-[11px] font-medium leading-none whitespace-nowrap",d?"cursor-pointer hover:bg-bg-hover transition-colors duration-[var(--duration-fast)] ease-[var(--ease-notion)]":"cursor-default"].join(" ");return c.jsx("span",{role:d?"button":void 0,tabIndex:d?0:void 0,title:i,onClick:d?r:void 0,onKeyDown:d?p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),r(p))}:void 0,className:f,children:n})}function DS(){const{dispatch:n}=$u(),i=Xs(f=>f.panel.visible),s=zh("left"),r=zh("right");function d(f){f&&(n({type:"SET_PANEL_ACTIVE_TAB",tabId:f}),i||n({type:"SET_PANEL_VISIBLE",visible:!0}))}return c.jsxs("div",{role:"status","aria-live":"polite",className:["flex items-center justify-between shrink-0 select-none","h-[22px] bg-bg-secondary border-t border-border","text-text-secondary text-[11px] font-medium"].join(" "),children:[c.jsx("div",{className:"flex items-center h-full",children:s.map(f=>{const p=f.component,h=!!f.panelTabId;return c.jsx(Lh,{tooltip:f.id,clickable:h,onClick:h?()=>d(f.panelTabId):void 0,children:c.jsx(p,{})},f.id)})}),c.jsx("div",{className:"flex items-center h-full",children:r.map(f=>{const p=f.component,h=!!f.panelTabId;return c.jsx(Lh,{tooltip:f.id,clickable:h,onClick:h?()=>d(f.panelTabId):void 0,children:c.jsx(p,{})},f.id)})})]})}const MS=v.lazy(()=>ht(()=>import("./OutputPanel-DaL8c1i5.js"),[]).then(n=>({default:n.OutputPanel}))),RS=v.lazy(()=>ht(()=>import("./ProblemsPanel-BQTd5812.js"),[]).then(n=>({default:n.ProblemsPanel}))),zS=v.lazy(()=>ht(()=>import("./ExecutionPanel-RYWf0dYC.js"),[]).then(n=>({default:n.ExecutionPanel}))),yu=[{id:"output",label:"Output",panel:MS},{id:"problems",label:"Problems",panel:RS},{id:"execution",label:"Execution",panel:zS}],LS=200,US=100,BS=500,HS=4;function GS(){const{dispatch:n}=$u(),i=Xs(T=>T.panel.visible),s=Xs(T=>T.panel.activeTabId),r=Xs(T=>T.panel.isMaximized),d=Xs(T=>T.panel.height),f=v.useRef(null),p=v.useRef(!1),h=v.useRef(0),x=v.useRef(0),g=s??"output",S=yu.find(T=>T.id===g)??yu[0];v.useEffect(()=>{function T(X){X.ctrlKey&&!X.shiftKey&&!X.altKey&&X.key==="j"&&(X.preventDefault(),n({type:"SET_PANEL_VISIBLE",visible:!i}))}return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[n,i]);const b=v.useCallback(()=>{n({type:"SET_PANEL_VISIBLE",visible:!1})},[n]),E=v.useCallback(()=>{n({type:"SET_PANEL_MAXIMIZED",maximized:!r})},[n,r]),w=v.useCallback(T=>{n({type:"SET_PANEL_ACTIVE_TAB",tabId:T})},[n]),C=v.useCallback(T=>{T.preventDefault(),p.current=!0,h.current=T.clientY,x.current=d;function X(P){if(!p.current)return;const Z=h.current-P.clientY,te=Math.max(US,Math.min(BS,x.current+Z));n({type:"SET_PANEL_HEIGHT",height:te})}function Y(){p.current=!1,document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",Y),document.body.style.cursor="",document.body.style.userSelect=""}document.body.style.cursor="ns-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",X),document.addEventListener("mouseup",Y)},[n,d]),A=v.useCallback(()=>{n({type:"SET_PANEL_HEIGHT",height:LS})},[n]);if(!i)return null;const O=r?"100%":`${d}px`;return c.jsxs("div",{ref:f,className:["flex flex-col shrink-0 border-t border-border bg-bg-primary",r?"absolute inset-0 z-10":""].join(" "),style:r?void 0:{height:O},children:[c.jsxs("div",{className:"flex items-center justify-between h-[30px] px-[var(--spacing-1)] border-b border-border shrink-0",children:[c.jsx("div",{role:"tablist","aria-label":"Panel tabs",className:"flex items-center h-full",children:yu.map(T=>c.jsx("button",{role:"tab",type:"button","aria-selected":T.id===g,"aria-controls":`panel-tabpanel-${T.id}`,id:`panel-tab-${T.id}`,onClick:()=>w(T.id),className:["h-full px-[var(--spacing-2)] text-[11px] font-medium transition-colors duration-[var(--duration-fast)]",T.id===g?"text-text-primary border-b-2 border-text-primary":"text-text-secondary hover:text-text-primary"].join(" "),children:T.label},T.id))}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-0-5)]",children:[c.jsx("button",{type:"button",onClick:E,title:r?"Restore Panel":"Maximize Panel",className:"flex items-center justify-center w-[22px] h-[22px] rounded-[var(--radius-sm)] text-text-secondary hover:text-text-primary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",children:r?c.jsx(IS,{}):c.jsx(qS,{})}),c.jsx("button",{type:"button",onClick:b,title:"Close Panel",className:"flex items-center justify-center w-[22px] h-[22px] rounded-[var(--radius-sm)] text-text-secondary hover:text-text-primary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",children:c.jsx(KS,{})})]})]}),c.jsx("div",{role:"tabpanel",id:`panel-tabpanel-${g}`,"aria-labelledby":`panel-tab-${g}`,className:"flex-1 overflow-hidden",children:c.jsx(v.Suspense,{fallback:c.jsx(YS,{}),children:i&&c.jsx(S.panel,{})})}),!r&&c.jsx("div",{className:"absolute top-0 left-0 right-0 cursor-ns-resize hover:bg-border-focused/30 transition-colors duration-[var(--duration-fast)]",style:{height:HS},onMouseDown:C,onDoubleClick:A,title:"Drag to resize. Double-click to reset."})]})}function qS(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:c.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"})})}function IS(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[c.jsx("rect",{x:"4",y:"1",width:"10",height:"10",rx:"1"}),c.jsx("rect",{x:"2",y:"5",width:"10",height:"10",rx:"1"})]})}function KS(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[c.jsx("line",{x1:"4",y1:"4",x2:"12",y2:"12"}),c.jsx("line",{x1:"12",y1:"4",x2:"4",y2:"12"})]})}function YS(){return c.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[11px] animate-pulse",children:"Loading..."})}const Gu=_t((n,i)=>({slots:{},queue:[],supervisorStatus:null,commanderState:null,commanderConfig:null,recentDecisions:[],selectedIssueIds:new Set,cliPanelIssueId:null,addSlot:s=>n(r=>({slots:{...r.slots,[s.processId]:s}})),removeSlot:s=>n(r=>{const{[s]:d,...f}=r.slots;return{slots:f}}),setQueue:s=>n({queue:s}),setSupervisorStatus:s=>n({supervisorStatus:s,queue:s.queued}),setCommanderState:s=>n({commanderState:s}),setCommanderConfig:s=>n({commanderConfig:s}),fetchCommanderConfig:async()=>{try{const s=await fetch("/api/commander/config");if(s.ok){const r=await s.json();n({commanderConfig:r})}}catch{}},toggleSupervisor:async s=>{try{const r=await fetch("/api/execution/supervisor",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:s})});if(r.ok){const d=await r.json();d.status&&n({supervisorStatus:d.status})}}catch{}},addDecision:s=>n(r=>{const d=[...r.recentDecisions,s];return d.length>20&&d.shift(),{recentDecisions:d}}),toggleSelect:s=>n(r=>{const d=new Set(r.selectedIssueIds);return d.has(s)?d.delete(s):d.add(s),{selectedIssueIds:d}}),selectAll:s=>n({selectedIssueIds:new Set(s)}),clearSelection:()=>n({selectedIssueIds:new Set}),openCliPanel:s=>n({cliPanelIssueId:s}),closeCliPanel:()=>n({cliPanelIssueId:null}),getSlotForIssue:s=>{const r=i().slots;for(const d of Object.values(r))if(d.issueId===s)return d},isIssueRunning:s=>{const r=i().slots;return Object.values(r).some(d=>d.issueId===s)}})),Qg=_t(n=>({session:null,selectedStepIndex:null,clarificationQuestion:null,currentGraph:null,selectedNodeId:null,onStatus:i=>n({session:i}),onStep:i=>n(s=>{if(!s.session||s.session.sessionId!==i.sessionId)return s;const r=[...s.session.steps],d=r.findIndex(f=>f.index===i.step.index);return d>=0?r[d]=i.step:r.push(i.step),{session:{...s.session,steps:r}}}),onAnalysis:i=>n(s=>{if(!s.session||s.session.sessionId!==i.sessionId)return s;const r=i.steps.map((d,f)=>({index:f,cmd:d.cmd,args:d.args,status:"pending",processId:null,analysis:null,summary:null}));return{session:{...s.session,chainName:i.chainName,intent:i.intent,steps:r}}}),onClarificationNeeded:i=>n(s=>!s.session||s.session.sessionId!==i.sessionId?s:{clarificationQuestion:i.question}),start:(i,s,r)=>{ca({action:"coordinate:start",intent:i,tool:s,autoMode:r})},stop:()=>{ca({action:"coordinate:stop"})},resume:i=>{var r;const s=i??((r=Qg.getState().session)==null?void 0:r.sessionId);ca({action:"coordinate:resume",sessionId:s})},sendClarification:(i,s)=>{ca({action:"coordinate:clarify",sessionId:i,response:s}),n({clarificationQuestion:null})},selectStep:i=>n({selectedStepIndex:i}),setCurrentGraph:i=>n({currentGraph:i}),selectNode:i=>n({selectedNodeId:i})}));function Uh(n,i){const s=n.findIndex(r=>r.id===i.id);if(s>=0){const r=[...n];return r[s]=i,r}return[i,...n]}const VS=_t((n,i)=>({currentRequirement:null,history:[],isLoading:!1,error:null,progressMessage:null,committedResult:null,continueFrom:null,expand:(s,r,d)=>{const f=i().continueFrom;n({isLoading:!0,error:null,progressMessage:null,committedResult:null,continueFrom:null,currentRequirement:{id:"",status:"expanding",userInput:s,title:"",summary:"",items:[],depth:r??"standard",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}});try{ca({action:"requirement:expand",text:s,depth:r,method:d??"sdk",...f?{previousRequirementId:f.id}:{}})}catch(p){n({isLoading:!1,error:p instanceof Error?p.message:String(p)})}},refine:s=>{const r=i().currentRequirement;if(r){n({isLoading:!0,error:null,progressMessage:null,currentRequirement:{...r,status:"expanding"}});try{ca({action:"requirement:refine",requirementId:r.id,feedback:s})}catch(d){n({isLoading:!1,error:d instanceof Error?d.message:String(d)})}}},commit:s=>{const r=i().currentRequirement;if(r){n({isLoading:!0,error:null,progressMessage:null,currentRequirement:{...r,status:"committing"}});try{ca({action:"requirement:commit",requirementId:r.id,mode:s})}catch(d){n({isLoading:!1,error:d instanceof Error?d.message:String(d)})}}},resetRequirement:()=>{n({currentRequirement:null,isLoading:!1,error:null,progressMessage:null,committedResult:null,continueFrom:null})},setContinueFrom:s=>{n({continueFrom:s})},loadHistory:s=>{const r=i().history.find(d=>d.id===s);r&&n({currentRequirement:r,isLoading:!1,error:null,progressMessage:null,committedResult:null})},fetchHistory:async()=>{try{const s=await fetch("/api/requirements");if(!s.ok)return;const r=await s.json();Array.isArray(r)&&r.length>0&&n({history:r})}catch{}},onProgress:s=>{n(r=>{const d=r.currentRequirement;if(!d)return r;const f=s.status==="failed";return{currentRequirement:{...d,status:s.status,...f&&s.message?{error:s.message}:{}},progressMessage:s.message??null,...f?{isLoading:!1,error:s.message??"Expansion failed"}:{}}})},onExpanded:s=>{n(r=>({currentRequirement:s.requirement,isLoading:!1,progressMessage:null,history:Uh(r.history,s.requirement)}))},onCommitted:s=>{n(r=>{const d=r.currentRequirement;if(!d||d.id!==s.requirementId)return r;const f={...d,status:"done"};return{currentRequirement:f,isLoading:!1,progressMessage:null,committedResult:{requirementId:s.requirementId,mode:s.mode,issueIds:s.issueIds,coordinateSessionId:s.coordinateSessionId},history:Uh(r.history,f)}})},onError:s=>{n(r=>{const d=r.currentRequirement;return{currentRequirement:d?{...d,status:"failed",error:s.error}:null,isLoading:!1,error:s.error,progressMessage:null}})},updateItem:(s,r)=>{n(d=>{const f=d.currentRequirement;return f?{currentRequirement:{...f,items:f.items.map(p=>p.id===s?{...p,...r}:p)}}:d})}})),XS=_t((n,i)=>({sessions:[],activeSession:null,activeSessionId:null,activeView:"cards",loading:!1,error:null,statusFilter:"all",skillFilter:null,searchQuery:"",mailboxMessages:[],phaseState:null,agentStatuses:[],roleToProcessMap:{},setActiveView:s=>n({activeView:s}),setStatusFilter:s=>n({statusFilter:s}),setSkillFilter:s=>n({skillFilter:s}),setSearchQuery:s=>n({searchQuery:s}),clearActiveSession:()=>n({activeSession:null,activeSessionId:null}),fetchSessions:async()=>{n({loading:!0,error:null});try{const s=await fetch(vu.SESSIONS);if(!s.ok)throw new Error(`Failed: ${s.status}`);const r=await s.json();n({sessions:r,loading:!1})}catch(s){n({loading:!1,error:String(s)})}},deleteSession:async s=>{const r=i().sessions;n(d=>({sessions:d.sessions.filter(f=>f.sessionId!==s)}));try{(await fetch(vu.SESSIONS+"/"+s,{method:"DELETE"})).ok||n({sessions:r})}catch{n({sessions:r})}},fetchSessionDetail:async s=>{n({loading:!0,error:null,activeSessionId:s});try{const r=await fetch(vu.SESSIONS+"/"+s);if(!r.ok)throw new Error(`Failed: ${r.status}`);const d=await r.json();n({activeSession:d,loading:!1})}catch(r){n({loading:!1,error:String(r)})}},filteredSessions:()=>{const{sessions:s,statusFilter:r,skillFilter:d,searchQuery:f}=i();let p=s;if(r!=="all"&&(p=p.filter(h=>h.status===r)),d&&(p=p.filter(h=>h.skill===d)),f){const h=f.toLowerCase();p=p.filter(x=>x.title.toLowerCase().includes(h)||x.sessionId.toLowerCase().includes(h)||x.roles.some(g=>g.toLowerCase().includes(h)))}return p},registerAgentProcess:(s,r,d)=>{n(f=>{const p=f.roleToProcessMap[s]??{};return{roleToProcessMap:{...f.roleToProcessMap,[s]:{...p,[r]:d}}}})},getProcessIdForRole:(s,r)=>{var d;return(d=i().roleToProcessMap[s])==null?void 0:d[r]},handleTeamMessage:s=>{n(r=>{const d=r.mailboxMessages.findIndex(f=>f.id===s.id);if(d>=0){const f=[...r.mailboxMessages];return f[d]=s,{mailboxMessages:f}}return{mailboxMessages:[...r.mailboxMessages,s]}})},handleDispatchUpdate:s=>{n(r=>{const d=r.mailboxMessages.findIndex(f=>f.id===s.id);if(d>=0){const f=[...r.mailboxMessages];return f[d]=s,{mailboxMessages:f}}return{mailboxMessages:[...r.mailboxMessages,s]}})},handlePhaseTransition:s=>{n({phaseState:s})},handleAgentStatusUpdate:s=>{n(r=>{const d=r.agentStatuses.findIndex(f=>f.role===s.role);if(d>=0){const f=[...r.agentStatuses];return f[d]=s,{agentStatuses:f}}return{agentStatuses:[...r.agentStatuses,s]}})}})),Bh={sessionId:null,sessionStatus:null,layoutMode:"split",terminalLayoutMode:"grid-2x2",expandedTerminals:[],splitRatio:60,inputTarget:{mode:"broadcast"},agents:[],messages:[],tasks:[]},QS=_t((n,i)=>({...Bh,setSessionId:s=>n({sessionId:s}),setSessionStatus:s=>n({sessionStatus:s}),setLayoutMode:s=>n({layoutMode:s}),setTerminalLayoutMode:s=>n({terminalLayoutMode:s}),expandTerminal:s=>n(r=>r.expandedTerminals.includes(s)?r:{expandedTerminals:[...r.expandedTerminals,s]}),collapseTerminal:s=>n(r=>({expandedTerminals:r.expandedTerminals.filter(d=>d!==s)})),setSplitRatio:s=>n({splitRatio:s}),setInputTarget:s=>n({inputTarget:s}),sendMessage:s=>{const{sessionId:r,inputTarget:d,agents:f}=i();if(!r||!s.trim())return;const p=s.trim(),h=p.match(/^@(\S+)\s+([\s\S]+)/);if(h){const x=h[1],g=h[2].trim();if(f.some(S=>S.role===x)&&g){ca({action:"room:send_message",sessionId:r,to:x,content:g});return}}d.mode==="broadcast"?ca({action:"room:broadcast",sessionId:r,content:p}):d.role&&ca({action:"room:send_message",sessionId:r,to:d.role,content:p})},handleSnapshot:s=>n({sessionId:s.sessionId,sessionStatus:s.status,agents:s.agents,messages:s.messages,tasks:s.tasks}),handleAgentJoined:s=>n(r=>r.agents.some(f=>f.role===s.role)?{agents:r.agents.map(f=>f.role===s.role?s:f)}:{agents:[...r.agents,s]}),handleAgentLeft:s=>n(r=>({agents:r.agents.filter(d=>d.role!==s)})),handleAgentStatus:(s,r)=>n(d=>({agents:d.agents.map(f=>f.role===s?{...f,status:r,lastActivityAt:new Date().toISOString()}:f)})),handleMessage:s=>n(r=>r.messages.some(f=>f.id===s.id)?r:{messages:[...r.messages,s]}),handleTaskCreated:s=>n(r=>({tasks:[...r.tasks,s]})),handleTaskUpdated:(s,r)=>n(d=>({tasks:d.tasks.map(f=>f.id===s?{...f,...r}:f)})),handleRoomClosed:()=>n({sessionStatus:"destroyed"}),reset:()=>n({...Bh,expandedTerminals:[]})})),PS=_t((n,i)=>({rooms:[],loading:!1,fetchRooms:async()=>{n({loading:!0});try{const s=await fetch("/api/rooms");if(s.ok){const r=await s.json();n({rooms:r,loading:!1})}else n({loading:!1})}catch{n({loading:!1})}},deleteRoom:async s=>{try{if((await fetch(`/api/rooms/${encodeURIComponent(s)}`,{method:"DELETE"})).ok)return n(d=>({rooms:d.rooms.filter(f=>f.sessionId!==s)})),!0}catch{}return!1},handleRoomCreated:s=>n(r=>r.rooms.some(d=>d.sessionId===s.sessionId)?r:{rooms:[...r.rooms,s]}),handleRoomClosed:s=>n(r=>({rooms:r.rooms.map(d=>d.sessionId===s?{...d,status:"destroyed"}:d)}))})),ZS=_t((n,i)=>({sessions:[],selectedDir:null,sessionDetail:null,isLoading:!1,error:null,fetchSessions:async()=>{n({isLoading:!0,error:null});try{const s=await fetch("/api/maestro-coordinate/sessions");if(!s.ok){n({error:`Failed to fetch sessions: ${s.status}`,isLoading:!1});return}const r=await s.json(),d=Array.isArray(r)?r:[];n({sessions:d,isLoading:!1,error:null})}catch(s){n({error:`Failed to fetch sessions: ${s instanceof Error?s.message:String(s)}`,isLoading:!1})}},fetchSessionDetail:async s=>{try{const r=await fetch(`/api/maestro-coordinate/sessions/${encodeURIComponent(s)}`);if(!r.ok){n({error:`Failed to fetch session detail: ${r.status}`});return}const d=await r.json();d&&typeof d=="object"&&"source"in d&&"data"in d&&n({sessionDetail:d,selectedDir:s,error:null})}catch(r){n({error:`Failed to fetch session detail: ${r instanceof Error?r.message:String(r)}`})}},selectSession:s=>{if(s===null){n({selectedDir:null,sessionDetail:null});return}const r=i().selectedDir;n({selectedDir:s}),r!==s&&i().fetchSessionDetail(s)},onSessionUpdated:s=>n(r=>{const d=s.session,f=r.sessions.findIndex(h=>h.dirName===d.dirName);let p;return f>=0?(p=[...r.sessions],p[f]=d):p=[d,...r.sessions],p.sort((h,x)=>new Date(x.updatedAt).getTime()-new Date(h.updatedAt).getTime()),r.selectedDir===d.dirName&&i().fetchSessionDetail(d.dirName),{sessions:p}}),clearError:()=>n({error:null})})),Hh=1e3,JS=3e4,FS=["# Analysis Mode Protocol","# Write Mode Protocol"];function $S(n){return FS.some(i=>n.trimStart().startsWith(i))}function WS(n,i){const s=[];for(const r of n){const d={...r,processId:i};if(d.type==="assistant_message"){const f=d.content??"";if($S(f))continue;d.partial=!1;const p=s[s.length-1];if(p&&p.type==="assistant_message"){p.content+=d.content;continue}}if(d.type==="tool_use"&&(d.status==="completed"||d.status==="failed")){const f=s.findLastIndex(p=>p.type==="tool_use"&&p.status==="running");if(f!==-1){const p=s[f];s[f]={...p,status:d.status,result:d.result??p.result,input:p.input&&Object.keys(p.input).length>0?p.input:d.input};continue}}s.push(d)}return s}let Ps=null;function ca(n){Ps?Ps(n):console.warn("[WS] Cannot send — no active WebSocket connection")}const Gh=new Set([ge.AGENT_APPROVAL]);function eE(){const n=v.useRef(null),i=v.useRef(null),s=v.useRef(Hh);v.useEffect(()=>{let r=!1,d=!1;const f=[];let p=[],h=null;const{setBoard:x,updatePhase:g,updateTask:S,setConnected:b}=Vt.getState(),{addProcess:E,removeProcess:w,updateProcessStatus:C,addEntry:A,setApproval:O,setProcessThought:T,setProcessStreaming:X,updateProcessTokenUsage:Y}=oa.getState(),{addSlot:P,removeSlot:Z,setSupervisorStatus:te,setCommanderState:H,addDecision:Q}=Gu.getState(),{onStatus:fe,onStep:He,onAnalysis:Ae,onClarificationNeeded:ze}=Qg.getState(),{fetchIssues:F,patchIssue:Te}=zu.getState(),{onProgress:qe,onExpanded:L,onCommitted:J,onError:ie}=VS.getState(),{handleTeamMessage:be,handleDispatchUpdate:$,handlePhaseTransition:N,handleAgentStatusUpdate:I,registerAgentProcess:ee}=XS.getState(),{handleSnapshot:D,handleAgentJoined:B,handleAgentLeft:q,handleAgentStatus:ae,handleMessage:Se,handleTaskCreated:oe,handleTaskUpdated:Ie,handleRoomClosed:je}=QS.getState(),{handleRoomCreated:Qe,handleRoomClosed:it}=PS.getState();function $e(){if(r)return;const Sn=window.location.protocol==="https:"?"wss:":"ws:",na=new WebSocket(`${Sn}//${window.location.host}/ws`);n.current=na,Ps=ce=>{na.readyState===WebSocket.OPEN&&na.send(JSON.stringify(ce))},na.onopen=()=>{b(!0),s.current=Hh,d=!1;const ce=fetch("/api/board").then(tt=>tt.ok?tt.json():null).then(tt=>{tt&&x(tt)}).catch(()=>{}),ut=fetch("/api/agents").then(tt=>tt.ok?tt.json():null).then(async tt=>{if(!Array.isArray(tt))return;let W=[];try{const Ve=await fetch("/api/cli-history?limit=50");Ve.ok&&(W=await Ve.json())}catch{}const jt=new Map(W.map(Ve=>[Ve.execId,Ve]));for(const Ve of tt){const Et=Ve,Zn=Et.id.startsWith("cli-history-");if(Et.status==="stopped"||Et.status,Zn&&Et.status==="running"){const Xt=Et.id.slice(12),dt=jt.get(Xt);dt!=null&&dt.completedAt&&(Et.status=dt.exitCode!=null&&dt.exitCode!==0?"error":"stopped")}if(E(Et),!(Zn&&(Et.status==="stopped"||Et.status==="error")))if(Zn){const Xt=Et.id.slice(12);fetch(`/api/cli-history/${encodeURIComponent(Xt)}/entries`).then(dt=>dt.ok?dt.json():null).then(dt=>{const Yl=Array.isArray(dt)?dt:[],er=WS(Yl,Et.id);for(const Vi of er)A(Et.id,Vi)}).catch(()=>{})}else fetch(`/api/agents/${encodeURIComponent(Et.id)}/entries`).then(Xt=>Xt.ok?Xt.json():null).then(Xt=>{const dt=Array.isArray(Xt)?Xt:[];for(const Yl of dt)A(Et.id,Yl)}).catch(()=>{})}}).catch(()=>{});Promise.all([ce,ut]).finally(()=>{d=!0;const tt=f.splice(0);for(const W of tt)Pn(W)})};function Pn(ce){var ut,tt;switch(ce.type){case ge.BOARD_FULL:x(ce.data);break;case ge.PHASE_UPDATED:{const W=ce.data;g(W.phase,W);break}case ge.TASK_UPDATED:{const W=ce.data;W.id&&S(W.id,W);break}case ge.PROJECT_UPDATED:{const W=ce.data,jt=Vt.getState().board;jt&&x({...jt,project:W});break}case ge.HEARTBEAT:case ge.CONNECTED:break;case ge.AGENT_SPAWNED:{const W=ce.data;E(W);const jt=(ut=W.metadata)==null?void 0:ut.teamSessionId,Ve=(tt=W.metadata)==null?void 0:tt.teamRole;jt&&Ve&&ee(jt,Ve,W.id);break}case ge.AGENT_ENTRY:{const W=ce.data;if(A(W.processId,W),W.type==="token_usage"){const jt=W;Y(jt.processId,jt.inputTokens,jt.outputTokens,jt.cacheReadTokens??0,jt.cacheWriteTokens??0)}break}case ge.AGENT_APPROVAL:O(ce.data);break;case ge.AGENT_STATUS:{const W=ce.data;C(W.processId,W.status);break}case ge.AGENT_STOPPED:{const W=ce.data;C(W.processId,"stopped");break}case ge.AGENT_THOUGHT:{const W=ce.data;T(W.processId,W.thought);break}case ge.AGENT_STREAMING:{const W=ce.data;X(W.processId,W.streaming);break}case ge.EXECUTION_STARTED:{const W=ce.data;P({issueId:W.issueId,processId:W.processId,executor:W.executor,startedAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),turnNumber:1,maxTurns:3}),W.issue?Te(W.issue):F();break}case ge.EXECUTION_COMPLETED:{const W=ce.data;Z(W.processId),W.issue?Te(W.issue):F();break}case ge.EXECUTION_FAILED:{const W=ce.data;Z(W.processId),W.issue?Te(W.issue):F();break}case ge.SUPERVISOR_STATUS:case ge.EXECUTION_SCHEDULER_STATUS:{const W=ce.data;te(W);break}case ge.COMMANDER_STATUS:{const W=ce.data;H(W);break}case ge.COMMANDER_DECISION:{const W=ce.data;Q(W);break}case ge.COORDINATE_STATUS:{const W=ce.data;fe(W.session);break}case ge.COORDINATE_STEP:{const W=ce.data;He(W);break}case ge.COORDINATE_ANALYSIS:{const W=ce.data;Ae(W);break}case ge.COORDINATE_CLARIFICATION_NEEDED:{const W=ce.data;ze(W);break}case ge.REQUIREMENT_PROGRESS:qe(ce.data);break;case ge.REQUIREMENT_EXPANDED:L(ce.data);break;case ge.REQUIREMENT_COMMITTED:J(ce.data);break;case ge.TEAM_MESSAGE:be(ce.data);break;case ge.TEAM_DISPATCH:$(ce.data);break;case ge.TEAM_PHASE:N(ce.data);break;case ge.TEAM_AGENT_STATUS:I(ce.data);break;case ge.ROOM_CREATED:Qe(ce.data);break;case ge.ROOM_SNAPSHOT:D(ce.data);break;case ge.ROOM_AGENT_JOINED:{const W=ce.data;B(W.agent);break}case ge.ROOM_AGENT_LEFT:{const W=ce.data;q(W.role);break}case ge.ROOM_AGENT_STATUS:{const W=ce.data;ae(W.role,W.status);break}case ge.ROOM_MESSAGE:case ge.ROOM_BROADCAST:{const W=ce.data;Se(W.message);break}case ge.ROOM_TASK_CREATED:{const W=ce.data;oe(W.task);break}case ge.ROOM_TASK_UPDATED:{const W=ce.data;Ie(W.task.id,W.task);break}case ge.ROOM_CLOSED:{const W=ce.data;je(),it(W.sessionId);break}case ge.MAESTRO_SESSION_UPDATED:{const W=ce.data;ZS.getState().onSessionUpdated(W);break}}}function Ws(){if(p.length===0)return;const ce=p;p=[];for(const ut of ce)Pn(ut)}h=setInterval(Ws,100),na.onmessage=ce=>{let ut;try{ut=JSON.parse(ce.data)}catch{console.warn("[WS] Failed to parse message",ce.data);return}if(!d){Gh.has(ut.type)?Pn(ut):f.push(ut);return}if(Gh.has(ut.type)){Pn(ut);return}p.push(ut)},na.onclose=()=>{if(r)return;b(!1),n.current=null,Ps=null,h&&(clearInterval(h),h=null),p=[],f.length=0,d=!1;const ce=s.current;s.current=Math.min(ce*2,JS),i.current=setTimeout($e,ce)},na.onerror=()=>{}}return $e(),()=>{r=!0,Ps=null,h&&(clearInterval(h),h=null),i.current&&clearTimeout(i.current),n.current&&(n.current.onopen=null,n.current.onmessage=null,n.current.onerror=null,n.current.onclose=null,n.current.close(),n.current=null),b(!1)}},[])}function yn(n,i,{checkForDefaultPrevented:s=!0}={}){return function(d){if(n==null||n(d),s===!1||!d.defaultPrevented)return i==null?void 0:i(d)}}function qh(n,i){if(typeof n=="function")return n(i);n!=null&&(n.current=i)}function Wu(...n){return i=>{let s=!1;const r=n.map(d=>{const f=qh(d,i);return!s&&typeof f=="function"&&(s=!0),f});if(s)return()=>{for(let d=0;d<r.length;d++){const f=r[d];typeof f=="function"?f():qh(n[d],null)}}}}function Qn(...n){return v.useCallback(Wu(...n),n)}function tE(n,i){const s=v.createContext(i),r=f=>{const{children:p,...h}=f,x=v.useMemo(()=>h,Object.values(h));return c.jsx(s.Provider,{value:x,children:p})};r.displayName=n+"Provider";function d(f){const p=v.useContext(s);if(p)return p;if(i!==void 0)return i;throw new Error(`\`${f}\` must be used within \`${n}\``)}return[r,d]}function aE(n,i=[]){let s=[];function r(f,p){const h=v.createContext(p),x=s.length;s=[...s,p];const g=b=>{var T;const{scope:E,children:w,...C}=b,A=((T=E==null?void 0:E[n])==null?void 0:T[x])||h,O=v.useMemo(()=>C,Object.values(C));return c.jsx(A.Provider,{value:O,children:w})};g.displayName=f+"Provider";function S(b,E){var A;const w=((A=E==null?void 0:E[n])==null?void 0:A[x])||h,C=v.useContext(w);if(C)return C;if(p!==void 0)return p;throw new Error(`\`${b}\` must be used within \`${f}\``)}return[g,S]}const d=()=>{const f=s.map(p=>v.createContext(p));return function(h){const x=(h==null?void 0:h[n])||f;return v.useMemo(()=>({[`__scope${n}`]:{...h,[n]:x}}),[h,x])}};return d.scopeName=n,[r,nE(d,...i)]}function nE(...n){const i=n[0];if(n.length===1)return i;const s=()=>{const r=n.map(d=>({useScope:d(),scopeName:d.scopeName}));return function(f){const p=r.reduce((h,{useScope:x,scopeName:g})=>{const b=x(f)[`__scope${g}`];return{...h,...b}},{});return v.useMemo(()=>({[`__scope${i.scopeName}`]:p}),[p])}};return s.scopeName=i.scopeName,s}var Fs=globalThis!=null&&globalThis.document?v.useLayoutEffect:()=>{},lE=Vu[" useId ".trim().toString()]||(()=>{}),sE=0;function bu(n){const[i,s]=v.useState(lE());return Fs(()=>{s(r=>r??String(sE++))},[n]),n||(i?`radix-${i}`:"")}var rE=Vu[" useInsertionEffect ".trim().toString()]||Fs;function iE({prop:n,defaultProp:i,onChange:s=()=>{},caller:r}){const[d,f,p]=oE({defaultProp:i,onChange:s}),h=n!==void 0,x=h?n:d;{const S=v.useRef(n!==void 0);v.useEffect(()=>{const b=S.current;b!==h&&console.warn(`${r} is changing from ${b?"controlled":"uncontrolled"} to ${h?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),S.current=h},[h,r])}const g=v.useCallback(S=>{var b;if(h){const E=cE(S)?S(n):S;E!==n&&((b=p.current)==null||b.call(p,E))}else f(S)},[h,n,f,p]);return[x,g]}function oE({defaultProp:n,onChange:i}){const[s,r]=v.useState(n),d=v.useRef(s),f=v.useRef(i);return rE(()=>{f.current=i},[i]),v.useEffect(()=>{var p;d.current!==s&&((p=f.current)==null||p.call(f,s),d.current=s)},[s,d]),[s,r,f]}function cE(n){return typeof n=="function"}function uE(n){const i=dE(n),s=v.forwardRef((r,d)=>{const{children:f,...p}=r,h=v.Children.toArray(f),x=h.find(mE);if(x){const g=x.props.children,S=h.map(b=>b===x?v.Children.count(g)>1?v.Children.only(null):v.isValidElement(g)?g.props.children:null:b);return c.jsx(i,{...p,ref:d,children:v.isValidElement(g)?v.cloneElement(g,void 0,S):null})}return c.jsx(i,{...p,ref:d,children:f})});return s.displayName=`${n}.Slot`,s}function dE(n){const i=v.forwardRef((s,r)=>{const{children:d,...f}=s;if(v.isValidElement(d)){const p=hE(d),h=pE(f,d.props);return d.type!==v.Fragment&&(h.ref=r?Wu(r,p):p),v.cloneElement(d,h)}return v.Children.count(d)>1?v.Children.only(null):null});return i.displayName=`${n}.SlotClone`,i}var fE=Symbol("radix.slottable");function mE(n){return v.isValidElement(n)&&typeof n.type=="function"&&"__radixId"in n.type&&n.type.__radixId===fE}function pE(n,i){const s={...i};for(const r in i){const d=n[r],f=i[r];/^on[A-Z]/.test(r)?d&&f?s[r]=(...h)=>{const x=f(...h);return d(...h),x}:d&&(s[r]=d):r==="style"?s[r]={...d,...f}:r==="className"&&(s[r]=[d,f].filter(Boolean).join(" "))}return{...n,...s}}function hE(n){var r,d;let i=(r=Object.getOwnPropertyDescriptor(n.props,"ref"))==null?void 0:r.get,s=i&&"isReactWarning"in i&&i.isReactWarning;return s?n.ref:(i=(d=Object.getOwnPropertyDescriptor(n,"ref"))==null?void 0:d.get,s=i&&"isReactWarning"in i&&i.isReactWarning,s?n.props.ref:n.props.ref||n.ref)}var gE=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ga=gE.reduce((n,i)=>{const s=uE(`Primitive.${i}`),r=v.forwardRef((d,f)=>{const{asChild:p,...h}=d,x=p?s:i;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),c.jsx(x,{...h,ref:f})});return r.displayName=`Primitive.${i}`,{...n,[i]:r}},{});function vE(n,i){n&&sg.flushSync(()=>n.dispatchEvent(i))}function $s(n){const i=v.useRef(n);return v.useEffect(()=>{i.current=n}),v.useMemo(()=>(...s)=>{var r;return(r=i.current)==null?void 0:r.call(i,...s)},[])}function xE(n,i=globalThis==null?void 0:globalThis.document){const s=$s(n);v.useEffect(()=>{const r=d=>{d.key==="Escape"&&s(d)};return i.addEventListener("keydown",r,{capture:!0}),()=>i.removeEventListener("keydown",r,{capture:!0})},[s,i])}var yE="DismissableLayer",qu="dismissableLayer.update",bE="dismissableLayer.pointerDownOutside",SE="dismissableLayer.focusOutside",Ih,Pg=v.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Zg=v.forwardRef((n,i)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:r,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:h,...x}=n,g=v.useContext(Pg),[S,b]=v.useState(null),E=(S==null?void 0:S.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,w]=v.useState({}),C=Qn(i,H=>b(H)),A=Array.from(g.layers),[O]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),T=A.indexOf(O),X=S?A.indexOf(S):-1,Y=g.layersWithOutsidePointerEventsDisabled.size>0,P=X>=T,Z=jE(H=>{const Q=H.target,fe=[...g.branches].some(He=>He.contains(Q));!P||fe||(d==null||d(H),p==null||p(H),H.defaultPrevented||h==null||h())},E),te=NE(H=>{const Q=H.target;[...g.branches].some(He=>He.contains(Q))||(f==null||f(H),p==null||p(H),H.defaultPrevented||h==null||h())},E);return xE(H=>{X===g.layers.size-1&&(r==null||r(H),!H.defaultPrevented&&h&&(H.preventDefault(),h()))},E),v.useEffect(()=>{if(S)return s&&(g.layersWithOutsidePointerEventsDisabled.size===0&&(Ih=E.body.style.pointerEvents,E.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(S)),g.layers.add(S),Kh(),()=>{s&&g.layersWithOutsidePointerEventsDisabled.size===1&&(E.body.style.pointerEvents=Ih)}},[S,E,s,g]),v.useEffect(()=>()=>{S&&(g.layers.delete(S),g.layersWithOutsidePointerEventsDisabled.delete(S),Kh())},[S,g]),v.useEffect(()=>{const H=()=>w({});return document.addEventListener(qu,H),()=>document.removeEventListener(qu,H)},[]),c.jsx(Ga.div,{...x,ref:C,style:{pointerEvents:Y?P?"auto":"none":void 0,...n.style},onFocusCapture:yn(n.onFocusCapture,te.onFocusCapture),onBlurCapture:yn(n.onBlurCapture,te.onBlurCapture),onPointerDownCapture:yn(n.onPointerDownCapture,Z.onPointerDownCapture)})});Zg.displayName=yE;var EE="DismissableLayerBranch",wE=v.forwardRef((n,i)=>{const s=v.useContext(Pg),r=v.useRef(null),d=Qn(i,r);return v.useEffect(()=>{const f=r.current;if(f)return s.branches.add(f),()=>{s.branches.delete(f)}},[s.branches]),c.jsx(Ga.div,{...n,ref:d})});wE.displayName=EE;function jE(n,i=globalThis==null?void 0:globalThis.document){const s=$s(n),r=v.useRef(!1),d=v.useRef(()=>{});return v.useEffect(()=>{const f=h=>{if(h.target&&!r.current){let x=function(){Jg(bE,s,g,{discrete:!0})};const g={originalEvent:h};h.pointerType==="touch"?(i.removeEventListener("click",d.current),d.current=x,i.addEventListener("click",d.current,{once:!0})):x()}else i.removeEventListener("click",d.current);r.current=!1},p=window.setTimeout(()=>{i.addEventListener("pointerdown",f)},0);return()=>{window.clearTimeout(p),i.removeEventListener("pointerdown",f),i.removeEventListener("click",d.current)}},[i,s]),{onPointerDownCapture:()=>r.current=!0}}function NE(n,i=globalThis==null?void 0:globalThis.document){const s=$s(n),r=v.useRef(!1);return v.useEffect(()=>{const d=f=>{f.target&&!r.current&&Jg(SE,s,{originalEvent:f},{discrete:!1})};return i.addEventListener("focusin",d),()=>i.removeEventListener("focusin",d)},[i,s]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Kh(){const n=new CustomEvent(qu);document.dispatchEvent(n)}function Jg(n,i,s,{discrete:r}){const d=s.originalEvent.target,f=new CustomEvent(n,{bubbles:!1,cancelable:!0,detail:s});i&&d.addEventListener(n,i,{once:!0}),r?vE(d,f):d.dispatchEvent(f)}var Su="focusScope.autoFocusOnMount",Eu="focusScope.autoFocusOnUnmount",Yh={bubbles:!1,cancelable:!0},_E="FocusScope",Fg=v.forwardRef((n,i)=>{const{loop:s=!1,trapped:r=!1,onMountAutoFocus:d,onUnmountAutoFocus:f,...p}=n,[h,x]=v.useState(null),g=$s(d),S=$s(f),b=v.useRef(null),E=Qn(i,A=>x(A)),w=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(r){let A=function(Y){if(w.paused||!h)return;const P=Y.target;h.contains(P)?b.current=P:hn(b.current,{select:!0})},O=function(Y){if(w.paused||!h)return;const P=Y.relatedTarget;P!==null&&(h.contains(P)||hn(b.current,{select:!0}))},T=function(Y){if(document.activeElement===document.body)for(const Z of Y)Z.removedNodes.length>0&&hn(h)};document.addEventListener("focusin",A),document.addEventListener("focusout",O);const X=new MutationObserver(T);return h&&X.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",A),document.removeEventListener("focusout",O),X.disconnect()}}},[r,h,w.paused]),v.useEffect(()=>{if(h){Xh.add(w);const A=document.activeElement;if(!h.contains(A)){const T=new CustomEvent(Su,Yh);h.addEventListener(Su,g),h.dispatchEvent(T),T.defaultPrevented||(CE(DE($g(h)),{select:!0}),document.activeElement===A&&hn(h))}return()=>{h.removeEventListener(Su,g),setTimeout(()=>{const T=new CustomEvent(Eu,Yh);h.addEventListener(Eu,S),h.dispatchEvent(T),T.defaultPrevented||hn(A??document.body,{select:!0}),h.removeEventListener(Eu,S),Xh.remove(w)},0)}}},[h,g,S,w]);const C=v.useCallback(A=>{if(!s&&!r||w.paused)return;const O=A.key==="Tab"&&!A.altKey&&!A.ctrlKey&&!A.metaKey,T=document.activeElement;if(O&&T){const X=A.currentTarget,[Y,P]=TE(X);Y&&P?!A.shiftKey&&T===P?(A.preventDefault(),s&&hn(Y,{select:!0})):A.shiftKey&&T===Y&&(A.preventDefault(),s&&hn(P,{select:!0})):T===X&&A.preventDefault()}},[s,r,w.paused]);return c.jsx(Ga.div,{tabIndex:-1,...p,ref:E,onKeyDown:C})});Fg.displayName=_E;function CE(n,{select:i=!1}={}){const s=document.activeElement;for(const r of n)if(hn(r,{select:i}),document.activeElement!==s)return}function TE(n){const i=$g(n),s=Vh(i,n),r=Vh(i.reverse(),n);return[s,r]}function $g(n){const i=[],s=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const d=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||d?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)i.push(s.currentNode);return i}function Vh(n,i){for(const s of n)if(!AE(s,{upTo:i}))return s}function AE(n,{upTo:i}){if(getComputedStyle(n).visibility==="hidden")return!0;for(;n;){if(i!==void 0&&n===i)return!1;if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}function kE(n){return n instanceof HTMLInputElement&&"select"in n}function hn(n,{select:i=!1}={}){if(n&&n.focus){const s=document.activeElement;n.focus({preventScroll:!0}),n!==s&&kE(n)&&i&&n.select()}}var Xh=OE();function OE(){let n=[];return{add(i){const s=n[0];i!==s&&(s==null||s.pause()),n=Qh(n,i),n.unshift(i)},remove(i){var s;n=Qh(n,i),(s=n[0])==null||s.resume()}}}function Qh(n,i){const s=[...n],r=s.indexOf(i);return r!==-1&&s.splice(r,1),s}function DE(n){return n.filter(i=>i.tagName!=="A")}var ME="Portal",Wg=v.forwardRef((n,i)=>{var h;const{container:s,...r}=n,[d,f]=v.useState(!1);Fs(()=>f(!0),[]);const p=s||d&&((h=globalThis==null?void 0:globalThis.document)==null?void 0:h.body);return p?rb.createPortal(c.jsx(Ga.div,{...r,ref:i}),p):null});Wg.displayName=ME;function RE(n,i){return v.useReducer((s,r)=>i[s][r]??s,n)}var Ii=n=>{const{present:i,children:s}=n,r=zE(i),d=typeof s=="function"?s({present:r.isPresent}):v.Children.only(s),f=Qn(r.ref,LE(d));return typeof s=="function"||r.isPresent?v.cloneElement(d,{ref:f}):null};Ii.displayName="Presence";function zE(n){const[i,s]=v.useState(),r=v.useRef(null),d=v.useRef(n),f=v.useRef("none"),p=n?"mounted":"unmounted",[h,x]=RE(p,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return v.useEffect(()=>{const g=wi(r.current);f.current=h==="mounted"?g:"none"},[h]),Fs(()=>{const g=r.current,S=d.current;if(S!==n){const E=f.current,w=wi(g);n?x("MOUNT"):w==="none"||(g==null?void 0:g.display)==="none"?x("UNMOUNT"):x(S&&E!==w?"ANIMATION_OUT":"UNMOUNT"),d.current=n}},[n,x]),Fs(()=>{if(i){let g;const S=i.ownerDocument.defaultView??window,b=w=>{const A=wi(r.current).includes(CSS.escape(w.animationName));if(w.target===i&&A&&(x("ANIMATION_END"),!d.current)){const O=i.style.animationFillMode;i.style.animationFillMode="forwards",g=S.setTimeout(()=>{i.style.animationFillMode==="forwards"&&(i.style.animationFillMode=O)})}},E=w=>{w.target===i&&(f.current=wi(r.current))};return i.addEventListener("animationstart",E),i.addEventListener("animationcancel",b),i.addEventListener("animationend",b),()=>{S.clearTimeout(g),i.removeEventListener("animationstart",E),i.removeEventListener("animationcancel",b),i.removeEventListener("animationend",b)}}else x("ANIMATION_END")},[i,x]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:v.useCallback(g=>{r.current=g?getComputedStyle(g):null,s(g)},[])}}function wi(n){return(n==null?void 0:n.animationName)||"none"}function LE(n){var r,d;let i=(r=Object.getOwnPropertyDescriptor(n.props,"ref"))==null?void 0:r.get,s=i&&"isReactWarning"in i&&i.isReactWarning;return s?n.ref:(i=(d=Object.getOwnPropertyDescriptor(n,"ref"))==null?void 0:d.get,s=i&&"isReactWarning"in i&&i.isReactWarning,s?n.props.ref:n.props.ref||n.ref)}var wu=0;function UE(){v.useEffect(()=>{const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",n[0]??Ph()),document.body.insertAdjacentElement("beforeend",n[1]??Ph()),wu++,()=>{wu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(i=>i.remove()),wu--}},[])}function Ph(){const n=document.createElement("span");return n.setAttribute("data-radix-focus-guard",""),n.tabIndex=0,n.style.outline="none",n.style.opacity="0",n.style.position="fixed",n.style.pointerEvents="none",n}var ga=function(){return ga=Object.assign||function(i){for(var s,r=1,d=arguments.length;r<d;r++){s=arguments[r];for(var f in s)Object.prototype.hasOwnProperty.call(s,f)&&(i[f]=s[f])}return i},ga.apply(this,arguments)};function ev(n,i){var s={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&i.indexOf(r)<0&&(s[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var d=0,r=Object.getOwnPropertySymbols(n);d<r.length;d++)i.indexOf(r[d])<0&&Object.prototype.propertyIsEnumerable.call(n,r[d])&&(s[r[d]]=n[r[d]]);return s}function BE(n,i,s){if(s||arguments.length===2)for(var r=0,d=i.length,f;r<d;r++)(f||!(r in i))&&(f||(f=Array.prototype.slice.call(i,0,r)),f[r]=i[r]);return n.concat(f||Array.prototype.slice.call(i))}var Oi="right-scroll-bar-position",Di="width-before-scroll-bar",HE="with-scroll-bars-hidden",GE="--removed-body-scroll-bar-size";function ju(n,i){return typeof n=="function"?n(i):n&&(n.current=i),n}function qE(n,i){var s=v.useState(function(){return{value:n,callback:i,facade:{get current(){return s.value},set current(r){var d=s.value;d!==r&&(s.value=r,s.callback(r,d))}}}})[0];return s.callback=i,s.facade}var IE=typeof window<"u"?v.useLayoutEffect:v.useEffect,Zh=new WeakMap;function KE(n,i){var s=qE(null,function(r){return n.forEach(function(d){return ju(d,r)})});return IE(function(){var r=Zh.get(s);if(r){var d=new Set(r),f=new Set(n),p=s.current;d.forEach(function(h){f.has(h)||ju(h,null)}),f.forEach(function(h){d.has(h)||ju(h,p)})}Zh.set(s,n)},[n]),s}function YE(n){return n}function VE(n,i){i===void 0&&(i=YE);var s=[],r=!1,d={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:n},useMedium:function(f){var p=i(f,r);return s.push(p),function(){s=s.filter(function(h){return h!==p})}},assignSyncMedium:function(f){for(r=!0;s.length;){var p=s;s=[],p.forEach(f)}s={push:function(h){return f(h)},filter:function(){return s}}},assignMedium:function(f){r=!0;var p=[];if(s.length){var h=s;s=[],h.forEach(f),p=s}var x=function(){var S=p;p=[],S.forEach(f)},g=function(){return Promise.resolve().then(x)};g(),s={push:function(S){p.push(S),g()},filter:function(S){return p=p.filter(S),s}}}};return d}function XE(n){n===void 0&&(n={});var i=VE(null);return i.options=ga({async:!0,ssr:!1},n),i}var tv=function(n){var i=n.sideCar,s=ev(n,["sideCar"]);if(!i)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=i.read();if(!r)throw new Error("Sidecar medium not found");return v.createElement(r,ga({},s))};tv.isSideCarExport=!0;function QE(n,i){return n.useMedium(i),tv}var av=XE(),Nu=function(){},Ki=v.forwardRef(function(n,i){var s=v.useRef(null),r=v.useState({onScrollCapture:Nu,onWheelCapture:Nu,onTouchMoveCapture:Nu}),d=r[0],f=r[1],p=n.forwardProps,h=n.children,x=n.className,g=n.removeScrollBar,S=n.enabled,b=n.shards,E=n.sideCar,w=n.noRelative,C=n.noIsolation,A=n.inert,O=n.allowPinchZoom,T=n.as,X=T===void 0?"div":T,Y=n.gapMode,P=ev(n,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),Z=E,te=KE([s,i]),H=ga(ga({},P),d);return v.createElement(v.Fragment,null,S&&v.createElement(Z,{sideCar:av,removeScrollBar:g,shards:b,noRelative:w,noIsolation:C,inert:A,setCallbacks:f,allowPinchZoom:!!O,lockRef:s,gapMode:Y}),p?v.cloneElement(v.Children.only(h),ga(ga({},H),{ref:te})):v.createElement(X,ga({},H,{className:x,ref:te}),h))});Ki.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ki.classNames={fullWidth:Di,zeroRight:Oi};var PE=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function ZE(){if(!document)return null;var n=document.createElement("style");n.type="text/css";var i=PE();return i&&n.setAttribute("nonce",i),n}function JE(n,i){n.styleSheet?n.styleSheet.cssText=i:n.appendChild(document.createTextNode(i))}function FE(n){var i=document.head||document.getElementsByTagName("head")[0];i.appendChild(n)}var $E=function(){var n=0,i=null;return{add:function(s){n==0&&(i=ZE())&&(JE(i,s),FE(i)),n++},remove:function(){n--,!n&&i&&(i.parentNode&&i.parentNode.removeChild(i),i=null)}}},WE=function(){var n=$E();return function(i,s){v.useEffect(function(){return n.add(i),function(){n.remove()}},[i&&s])}},nv=function(){var n=WE(),i=function(s){var r=s.styles,d=s.dynamic;return n(r,d),null};return i},ew={left:0,top:0,right:0,gap:0},_u=function(n){return parseInt(n||"",10)||0},tw=function(n){var i=window.getComputedStyle(document.body),s=i[n==="padding"?"paddingLeft":"marginLeft"],r=i[n==="padding"?"paddingTop":"marginTop"],d=i[n==="padding"?"paddingRight":"marginRight"];return[_u(s),_u(r),_u(d)]},aw=function(n){if(n===void 0&&(n="margin"),typeof window>"u")return ew;var i=tw(n),s=document.documentElement.clientWidth,r=window.innerWidth;return{left:i[0],top:i[1],right:i[2],gap:Math.max(0,r-s+i[2]-i[0])}},nw=nv(),Gl="data-scroll-locked",lw=function(n,i,s,r){var d=n.left,f=n.top,p=n.right,h=n.gap;return s===void 0&&(s="margin"),`
193
193
  .`.concat(HE,` {
194
194
  overflow: hidden `).concat(r,`;
195
195
  padding-right: `).concat(h,"px ").concat(r,`;
@@ -233,4 +233,4 @@ Error generating stack: `+l.message+`
233
233
 
234
234
  If you want to hide the \`${i.titleName}\`, you can wrap it with our VisuallyHidden component.
235
235
 
236
- For more information, see https://radix-ui.com/primitives/docs/components/${i.docsSlug}`;return v.useEffect(()=>{n&&(document.getElementById(n)||console.error(s))},[s,n]),null},Hw="DialogDescriptionWarning",Gw=({contentRef:n,descriptionId:i})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Ev(Hw).contentName}}.`;return v.useEffect(()=>{var f;const d=(f=n.current)==null?void 0:f.getAttribute("aria-describedby");i&&d&&(document.getElementById(i)||console.warn(r))},[r,n,i]),null},qw=uv,Iw=mv,Kw=pv,Yw=hv,Vw=vv,Xw=bv;const wv="maestro-ui-prefs";function jv(){try{const n=localStorage.getItem(wv);return n?JSON.parse(n):{}}catch{return{}}}function Tu(n){try{localStorage.setItem(wv,JSON.stringify({...jv(),...n}))}catch{}}const Mi=jv(),Hl=_t(n=>({createModalStyle:Mi.createModalStyle??2,detailModalStyle:Mi.detailModalStyle??1,stylePreset:Mi.stylePreset??"default",setCreateModalStyle:i=>{n({createModalStyle:i}),Tu({createModalStyle:i})},setDetailModalStyle:i=>{n({detailModalStyle:i}),Tu({detailModalStyle:i})},setStylePreset:i=>{n({stylePreset:i}),Tu({stylePreset:i}),document.documentElement.dataset.style=i}}));document.documentElement.dataset.style=Mi.stylePreset??"default";function In({enabled:n,onClick:i}){return c.jsx("button",{type:"button",onClick:i,className:me("relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",n?"bg-accent-blue":"bg-border"),children:c.jsx("span",{className:me("pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow-sm","transition-transform duration-[var(--duration-fast)]",n?"translate-x-5":"translate-x-0")})})}function rt({title:n,description:i,children:s,className:r}){return c.jsxs("div",{className:me("rounded-[var(--radius-default)] border border-border bg-bg-secondary p-[var(--spacing-4)]",r),children:[c.jsxs("div",{className:"mb-[var(--spacing-3)]",children:[c.jsx("h3",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:n}),i&&c.jsx("p",{className:"mt-[var(--spacing-1)] text-[length:var(--font-size-xs)] text-text-secondary",children:i})]}),s]})}function Pe({label:n,description:i,htmlFor:s,children:r}){return c.jsxs("div",{className:"flex items-start justify-between gap-[var(--spacing-4)] py-[var(--spacing-2)]",children:[c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("label",{htmlFor:s,className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary",children:n}),i&&c.jsx("p",{className:"mt-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-secondary",children:i})]}),c.jsx("div",{className:"shrink-0",children:r})]})}function gn({id:n,value:i,onChange:s,placeholder:r,className:d,type:f="text"}){return c.jsx("input",{id:n,type:f,value:i,onChange:p=>s(p.target.value),placeholder:r,className:me("w-48 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary",d)})}function Kn({id:n,value:i,onChange:s,options:r,className:d}){return c.jsx("select",{id:n,value:i,onChange:f=>s(f.target.value),className:me("w-48 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]",d),children:r.map(f=>c.jsx("option",{value:f.value,children:f.label},f.value))})}function Vn({dirty:n,saving:i,onSave:s,onDiscard:r}){if(!n)return null;const{t:d}=St();return c.jsxs("div",{className:"sticky bottom-0 left-0 right-0 flex items-center justify-end gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-3)] border-t border-border bg-bg-secondary/95 backdrop-blur-sm",children:[c.jsx("button",{type:"button",onClick:r,disabled:i,className:me("px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","border border-border text-text-secondary","hover:bg-bg-hover hover:text-text-primary","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50 disabled:pointer-events-none"),children:d("settings.discard")}),c.jsx("button",{type:"button",onClick:s,disabled:i,className:me("px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","bg-accent-blue text-white","hover:opacity-90","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50 disabled:pointer-events-none"),children:d(i?"settings.saving":"settings.save")})]})}const Qw=["default","cowork"],Pw={default:"settings.general.style_default",cowork:"settings.general.style_cowork"};function Zw(){const{t:n}=St(),i=Hl(r=>r.stylePreset),s=Hl(r=>r.setStylePreset);return c.jsx(Pe,{label:n("settings.general.style_preset_label"),description:n("settings.general.style_preset_desc"),children:c.jsx("div",{className:"flex items-center gap-[var(--spacing-1)]",children:Qw.map(r=>c.jsx("button",{type:"button",onClick:()=>s(r),className:me("px-3 py-1 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] transition-all duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",i===r?"bg-accent-blue text-white":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"),children:n(Pw[r])},r))})})}function Jw(){const{t:n}=St(),i=Vt(C=>C.connected),s=pe(C=>{var A;return(A=C.draft)==null?void 0:A.general}),r=pe(C=>C.saving),d=pe(C=>C.isDirty("general")),f=pe(C=>C.updateDraft),p=pe(C=>C.saveConfig),h=pe(C=>C.discardDraft),x=pe(C=>{var A;return((A=C.draft)==null?void 0:A.searchTool)??"mcp__ace-tool__search_context"}),g=pe(C=>C.isDirty("searchTool")),S=pe(C=>C.chineseResponse),b=pe(C=>C.loadChineseResponse),E=pe(C=>C.toggleChineseResponse);if(v.useEffect(()=>{b()},[b]),!s)return null;const w=C=>{f("general",{...s,...C})};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsx(rt,{title:n("settings.general.connection_card"),description:n("settings.general.connection_desc"),children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${i?"bg-status-completed":"bg-status-blocked"}`}),c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-primary",children:n(i?"settings.general.connected":"settings.general.disconnected")})]})}),c.jsxs(rt,{title:n("settings.general.appearance_card"),description:n("settings.general.appearance_desc"),children:[c.jsx(Pe,{label:n("settings.general.theme_label"),description:n("settings.general.theme_desc"),htmlFor:"settings-theme",children:c.jsx(Kn,{id:"settings-theme",value:s.theme,onChange:C=>w({theme:C}),options:[{value:"system",label:n("settings.general.theme_system")},{value:"dark",label:n("settings.general.theme_dark")},{value:"light",label:n("settings.general.theme_light")}]})}),c.jsx(Pe,{label:n("settings.general.language_label"),description:n("settings.general.language_desc"),htmlFor:"settings-language",children:c.jsx(Kn,{id:"settings-language",value:s.language,onChange:C=>w({language:C}),options:[{value:"en",label:"English"},{value:"zh-CN",label:"中文"}]})}),c.jsx(Zw,{})]}),c.jsx(rt,{title:"Navigation",description:"Show or hide navigation items from the sidebar.",children:c.jsx($w,{draft:s,update:w})}),c.jsxs(rt,{title:n("settings.general.search_tool_card"),description:n("settings.general.search_tool_desc"),children:[c.jsx(Pe,{label:n("settings.general.search_tool_label"),description:n("settings.general.search_tool_desc"),htmlFor:"settings-search-tool",children:c.jsx(gn,{id:"settings-search-tool",value:x,onChange:C=>f("searchTool",C),placeholder:"mcp__ace-tool__search_context",className:"w-72 font-mono text-[length:var(--font-size-xs)]"})}),c.jsx(Vn,{dirty:g,saving:r,onSave:()=>void p("searchTool"),onDiscard:()=>h("searchTool")})]}),S&&c.jsxs(rt,{title:n("settings.general.response_lang_card"),description:n("settings.general.response_lang_desc"),children:[c.jsx(Pe,{label:n("settings.general.chinese_claude_label"),description:n("settings.general.chinese_claude_desc"),children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-accent-blue bg-accent-blue/10 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)]",children:"Claude"}),c.jsx(In,{enabled:S.claudeEnabled,onClick:()=>void E(!S.claudeEnabled,"claude")})]})}),c.jsx(Pe,{label:n("settings.general.chinese_codex_label"),description:n("settings.general.chinese_codex_desc"),children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-green-400 bg-green-400/10 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)]",children:"Codex"}),c.jsx(In,{enabled:S.codexEnabled,onClick:()=>void E(!S.codexEnabled,"codex")})]})}),S.codexNeedsMigration&&c.jsx("div",{className:"mt-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)] bg-status-blocked/10 border border-status-blocked/30",children:c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked",children:n("settings.general.codex_migrate_hint")})}),!S.guidelinesExists&&c.jsx("div",{className:"mt-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)] bg-status-blocked/10 border border-status-blocked/30",children:c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked",children:n("settings.general.guidelines_missing")})})]}),c.jsx(Vn,{dirty:d,saving:r,onSave:()=>void p("general"),onDiscard:()=>h("general")})]})}const Fw=[{path:"/maestro-coordinate",label:"Dispatch Center"},{path:"/requirement",label:"Requirement"},{path:"/rooms",label:"Meeting Room"}];function $w({draft:n,update:i}){const s=n.hiddenNavItems??["/maestro-coordinate","/requirement","/rooms"],r=d=>{const f=s.includes(d)?s.filter(p=>p!==d):[...s,d];i({hiddenNavItems:f})};return c.jsx("div",{className:"flex flex-col gap-2",children:Fw.map(d=>{const f=!s.includes(d.path);return c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-primary",children:d.label}),c.jsx(In,{enabled:f,onClick:()=>r(d.path)})]},d.path)})})}const Ww={"claude-code":{apiKeyLabel:"API Key",apiKeyPlaceholder:"sk-ant-...",apiKeyEnvHint:"ANTHROPIC_API_KEY",showBaseUrl:!0,baseUrlPlaceholder:"https://api.anthropic.com",showSettingsFile:!0,settingsFileDescription:"Path to Claude Code settings JSON (maps model aliases, sets env vars)"},"agent-sdk":{apiKeyLabel:"API Key",apiKeyPlaceholder:"sk-ant-...",apiKeyEnvHint:"ANTHROPIC_API_KEY",showBaseUrl:!0,baseUrlPlaceholder:"https://api.anthropic.com",showSettingsFile:!0,settingsFileDescription:"Path to Claude Code settings JSON (maps model aliases, sets env vars)"},codex:{apiKeyLabel:"OpenAI API Key",apiKeyPlaceholder:"sk-...",apiKeyEnvHint:"OPENAI_API_KEY",showBaseUrl:!1,showSettingsFile:!0,settingsFileLabel:"Profile",settingsFilePlaceholder:"my-profile",settingsFileDescription:"Profile name from ~/.codex/config.toml (passed as --profile)"},"codex-server":{apiKeyLabel:"OpenAI API Key",apiKeyPlaceholder:"sk-...",apiKeyEnvHint:"OPENAI_API_KEY",showBaseUrl:!1,showSettingsFile:!0,settingsFileLabel:"Profile",settingsFilePlaceholder:"my-profile",settingsFileDescription:"Profile name from ~/.codex/config.toml"},gemini:{apiKeyLabel:"Gemini API Key",apiKeyPlaceholder:"AIza...",apiKeyEnvHint:"GEMINI_API_KEY",showBaseUrl:!1,showSettingsFile:!1},"gemini-a2a":{apiKeyLabel:"Gemini API Key",apiKeyPlaceholder:"AIza...",apiKeyEnvHint:"GEMINI_API_KEY",showBaseUrl:!1,showSettingsFile:!1},qwen:{apiKeyLabel:"DashScope API Key",apiKeyPlaceholder:"sk-...",apiKeyEnvHint:"DASHSCOPE_API_KEY",showBaseUrl:!1,showSettingsFile:!1},opencode:{apiKeyLabel:"API Key",apiKeyPlaceholder:"",apiKeyEnvHint:"OPENAI_API_KEY",showBaseUrl:!1,showSettingsFile:!1}},ej=[{type:"claude-code",label:"Claude Code"},{type:"agent-sdk",label:"Agent SDK"},{type:"codex",label:"Codex"},{type:"gemini",label:"Gemini"},{type:"gemini-a2a",label:"Gemini (A2A)"},{type:"qwen",label:"Qwen"},{type:"opencode",label:"OpenCode"}];function tj(){const{t:n}=St(),i=pe(E=>{var w;return(w=E.draft)==null?void 0:w.agents}),s=pe(E=>E.saving),r=pe(E=>E.isDirty("agents")),d=pe(E=>E.updateDraft),f=pe(E=>E.saveConfig),p=pe(E=>E.discardDraft),[h,x]=v.useState(null),g=E=>n({"claude-code":"settings.agents.claude_code_desc","agent-sdk":"settings.agents.agent_sdk_desc",codex:"settings.agents.codex_desc",gemini:"settings.agents.gemini_desc","gemini-a2a":"settings.agents.gemini_desc",qwen:"settings.agents.qwen_desc",opencode:"settings.agents.opencode_desc"}[E]??"settings.agents.claude_code_desc");if(!i)return null;const S=(E,w)=>{d("agents",{...i,[E]:{...i[E],...w}})},b=E=>{x(w=>w===E?null:E)};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[ej.map(({type:E,label:w})=>{const C=i[E],A=h===E,O=Ww[E];return c.jsxs(rt,{title:w,description:g(E),children:[c.jsx("button",{type:"button",onClick:()=>b(E),className:me("w-full text-left text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:n(A?"settings.agents.hide_config":"settings.agents.show_config")}),A&&c.jsxs("div",{className:"mt-[var(--spacing-3)] border-t border-border-divider pt-[var(--spacing-3)]",children:[c.jsx(Pe,{label:n("settings.agents.model_label"),description:n("settings.agents.model_desc"),htmlFor:`agent-model-${E}`,children:c.jsx(gn,{id:`agent-model-${E}`,value:C.model,onChange:T=>S(E,{model:T}),placeholder:n("settings.agents.model_placeholder")})}),c.jsx(Pe,{label:n("settings.agents.approval_label"),description:n("settings.agents.approval_desc"),htmlFor:`agent-approval-${E}`,children:c.jsx(Kn,{id:`agent-approval-${E}`,value:C.approvalMode,onChange:T=>S(E,{approvalMode:T}),options:[{value:"suggest",label:n("settings.agents.approval_suggest")},{value:"auto",label:n("settings.agents.approval_auto")}]})}),(O==null?void 0:O.showBaseUrl)&&c.jsx(Pe,{label:n("settings.agents.base_url_label"),description:n("settings.agents.base_url_desc"),htmlFor:`agent-baseurl-${E}`,children:c.jsx(gn,{id:`agent-baseurl-${E}`,value:C.baseUrl??"",onChange:T=>S(E,{baseUrl:T}),placeholder:O.baseUrlPlaceholder??""})}),O&&c.jsx(Pe,{label:O.apiKeyLabel,description:`Overrides ${O.apiKeyEnvHint} env var`,htmlFor:`agent-apikey-${E}`,children:c.jsx(gn,{id:`agent-apikey-${E}`,value:C.apiKey??"",onChange:T=>S(E,{apiKey:T}),placeholder:O.apiKeyPlaceholder,type:"password"})}),(O==null?void 0:O.showSettingsFile)&&c.jsx(Pe,{label:O.settingsFileLabel??n("settings.agents.settings_file_label"),description:O.settingsFileDescription??n("settings.agents.settings_file_desc"),htmlFor:`agent-settings-file-${E}`,children:c.jsx(gn,{id:`agent-settings-file-${E}`,value:C.settingsFile??"",onChange:T=>S(E,{settingsFile:T}),placeholder:O.settingsFilePlaceholder??"D:\\settings.json"})}),c.jsx(Pe,{label:n("settings.agents.env_file_label"),description:n("settings.agents.env_file_desc"),htmlFor:`agent-envfile-${E}`,children:c.jsx(gn,{id:`agent-envfile-${E}`,value:C.envFile??"",onChange:T=>S(E,{envFile:T}),placeholder:"~/.env.gemini"})})]})]},E)}),c.jsx(Vn,{dirty:r,saving:s,onSave:()=>void f("agents"),onDiscard:()=>p("agents")})]})}function aj(){const{t:n}=St(),i=pe(b=>{var E;return((E=b.draft)==null?void 0:E.cliTools)??"{}"}),s=pe(b=>b.saving),r=pe(b=>b.isDirty("cliTools")),d=pe(b=>b.updateDraft),f=pe(b=>b.saveConfig),p=pe(b=>b.discardDraft),[h,x]=v.useState(null),g=v.useCallback(b=>{d("cliTools",b);try{JSON.parse(b),x(null)}catch(E){x(E instanceof Error?E.message:"Invalid JSON")}},[d]),S=v.useCallback(()=>{try{const b=JSON.parse(i),E=JSON.stringify(b,null,2);d("cliTools",E),x(null)}catch{}},[i,d]);return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsxs(rt,{title:n("settings.cli_tools.config_card"),description:n("settings.cli_tools.config_desc"),children:[c.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:"~/.maestro/cli-tools.json"}),c.jsx("button",{type:"button",onClick:S,className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:n("settings.cli_tools.format_json")})]}),c.jsx("textarea",{value:i,onChange:b=>g(b.target.value),spellCheck:!1,className:me("w-full h-80 px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)]","border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","font-mono leading-relaxed resize-y","focus:outline-none focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]",h?"border-status-blocked":"border-border focus:border-accent-blue")}),h&&c.jsx("p",{className:"mt-[var(--spacing-1)] text-[length:var(--font-size-xs)] text-status-blocked",children:h})]}),c.jsx(Vn,{dirty:r&&!h,saving:s,onSave:()=>void f("cliTools"),onDiscard:()=>{p("cliTools"),x(null)}})]})}function nj(){const{t:n}=St(),[i,s]=v.useState([]),[r,d]=v.useState(!0),[f,p]=v.useState(null);return v.useEffect(()=>{let h=!1;async function x(){try{const g=await fetch("/api/settings/specs");if(!g.ok)throw new Error(`Failed to load specs: ${g.status}`);const S=await g.json();h||(s(S.specs??[]),d(!1))}catch(g){h||(p(g instanceof Error?g.message:"Failed to load specs"),d(!1))}}return x(),()=>{h=!0}},[]),r?c.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-8)]",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n("settings.specs.loading")})}):f?c.jsx(rt,{title:n("settings.specs.error_card"),description:n("settings.specs.error_desc"),children:c.jsx("p",{className:"text-[length:var(--font-size-sm)] text-status-blocked",children:f})}):i.length===0?c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-6)]",children:[c.jsx(rt,{title:n("settings.specs.empty_card"),description:n("settings.specs.empty_desc"),children:c.jsx("p",{className:"text-[length:var(--font-size-sm)] text-text-secondary italic",children:n("settings.specs.empty_hint")})}),c.jsx(eg,{})]}):c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-6)]",children:[c.jsx("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:i.map(h=>c.jsx(rt,{title:h.name,description:h.path,children:h.createdAt&&c.jsxs("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:[n("settings.specs.created"),": ",h.createdAt]})},h.name))}),c.jsx(eg,{})]})}function Is({label:n,onRemove:i,variant:s="default"}){const r=s==="include"?"bg-status-active/15 text-status-active border-status-active/30":s==="exclude"?"bg-status-blocked/15 text-status-blocked border-status-blocked/30":"bg-bg-hover text-text-secondary border-border";return c.jsxs("span",{className:me("inline-flex items-center gap-[var(--spacing-1)] px-[var(--spacing-2)] py-[var(--spacing-0-5)]","rounded-[var(--radius-sm)] border text-[length:var(--font-size-xs)]",r),children:[n,c.jsx("button",{type:"button",onClick:i,className:"ml-[var(--spacing-0-5)] text-current opacity-60 hover:opacity-100 focus-visible:outline-none","aria-label":`Remove ${n}`,children:"x"})]})}function Ks({placeholder:n,onAdd:i}){const[s,r]=v.useState(""),d=f=>{f.key==="Enter"&&s.trim()&&(f.preventDefault(),i(s.trim()),r(""))};return c.jsx("input",{type:"text",value:s,onChange:f=>r(f.target.value),onKeyDown:d,placeholder:n,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary w-40")})}function Ys({title:n,description:i,expanded:s,onToggle:r,children:d}){return c.jsxs("div",{className:"border border-border rounded-[var(--radius-default)] overflow-hidden",children:[c.jsxs("button",{type:"button",onClick:r,className:me("w-full flex items-center justify-between px-[var(--spacing-4)] py-[var(--spacing-3)]","bg-bg-secondary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"),children:[c.jsxs("div",{className:"text-left",children:[c.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:n}),i&&c.jsx("p",{className:"mt-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-secondary",children:i})]}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary shrink-0 ml-[var(--spacing-2)]",children:s?"[-]":"[+]"})]}),s&&c.jsx("div",{className:"px-[var(--spacing-4)] py-[var(--spacing-3)] border-t border-border bg-bg-primary",children:d})]})}const lj={coding:"bg-accent-blue/15 text-accent-blue border-accent-blue/30",arch:"bg-accent-purple/15 text-accent-purple border-accent-purple/30",debug:"bg-accent-orange/15 text-accent-orange border-accent-orange/30",test:"bg-accent-green/15 text-accent-green border-accent-green/30",review:"bg-accent-yellow/15 text-accent-yellow border-accent-yellow/30",learning:"bg-status-active/15 text-status-active border-status-active/30",ui:"bg-accent-purple/15 text-accent-purple border-accent-purple/30"};function Nv(n){return lj[n]??"bg-bg-hover text-text-secondary border-border"}function Ku({name:n}){return c.jsx("span",{className:me("inline-flex items-center px-[var(--spacing-1-5)] py-[var(--spacing-0-5)]","rounded-full border text-[length:var(--font-size-xs)]",Nv(n)),children:n})}function Ti({paths:n,onChange:i,placeholder:s,suggestions:r}){const[d,f]=v.useState(""),[p,h]=v.useState(!1),x=b=>b.trim()?/^[.\/~]|^\w/.test(b)&&!b.includes(" ")||b.includes("/")||b.includes("."):!1,g=b=>{const E=b.trim();E&&!n.includes(E)&&i([...n,E]),f(""),h(!1)},S=(r??[]).filter(b=>!n.includes(b)&&(!d||b.toLowerCase().includes(d.toLowerCase())));return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-1-5)]",children:[n.map((b,E)=>c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary font-mono truncate flex-1 min-w-0",children:b}),c.jsx("span",{className:me("text-[length:var(--font-size-xs)] shrink-0",x(b)?"text-accent-green":"text-accent-orange"),children:x(b)?"[ok]":"[?]"}),c.jsx("button",{type:"button",onClick:()=>i(n.filter((w,C)=>C!==E)),className:"text-[length:var(--font-size-xs)] text-status-blocked opacity-60 hover:opacity-100 shrink-0 focus-visible:outline-none","aria-label":`Remove ${b}`,children:"x"})]},`${b}-${E}`)),c.jsxs("div",{className:"relative",children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[c.jsx("input",{type:"text",value:d,onChange:b=>{f(b.target.value),h(!0)},onFocus:()=>h(!0),onBlur:()=>{setTimeout(()=>h(!1),200)},onKeyDown:b=>{b.key==="Enter"&&d.trim()&&(b.preventDefault(),g(d))},placeholder:s,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary w-56")}),d&&c.jsx("span",{className:me("text-[length:var(--font-size-xs)] shrink-0",x(d)?"text-accent-green":"text-accent-orange"),children:x(d)?"[ok]":"[?]"})]}),p&&S.length>0&&c.jsx("div",{className:me("absolute top-full left-0 mt-[var(--spacing-0-5)] z-10","border border-border rounded-[var(--radius-sm)] bg-bg-secondary shadow-lg","max-h-32 overflow-y-auto w-56"),children:S.map(b=>c.jsx("button",{type:"button",onMouseDown:E=>E.preventDefault(),onClick:()=>g(b),className:me("w-full text-left px-[var(--spacing-2)] py-[var(--spacing-1)]","text-[length:var(--font-size-xs)] text-text-secondary font-mono","hover:bg-bg-hover hover:text-text-primary","transition-colors duration-[var(--duration-fast)]"),children:b},b))})]})]})}function sj({config:n,defaults:i,onQuickBind:s}){const[r,d]=v.useState(""),[f,p]=v.useState(null),[h,x]=v.useState({}),g=v.useMemo(()=>{var C,A;const E=new Map,w=(O,T,X,Y)=>{E.has(O)||E.set(O,[]),E.get(O).push({agents:[T],type:X,source:Y})};for(const[O,T]of Object.entries(n.mapping??{})){for(const X of T.includeKeywords??[])w(X,O,"include","agent");for(const X of T.excludeKeywords??[])w(X,O,"exclude","agent")}for(const O of((C=n.keywordFilters)==null?void 0:C.include)??[])w(O,"(global)","include","global");for(const O of((A=n.keywordFilters)==null?void 0:A.exclude)??[])w(O,"(global)","exclude","global");return E},[n]),S=v.useMemo(()=>{const E=Array.from(g.keys()).sort();if(!r.trim())return E;const w=r.toLowerCase();return E.filter(C=>C.toLowerCase().includes(w))},[g,r]),b=Object.keys(i.agentCategoryMap);return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[c.jsx("div",{children:c.jsx("input",{type:"text",value:r,onChange:E=>d(E.target.value),placeholder:"Filter or type a new keyword...",className:me("w-full px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary")})}),S.length===0?c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary italic",children:g.size===0?"No keywords configured yet. Add keywords to agent mappings or global filters below.":"No keywords match the filter."}):c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1-5)]",children:S.map(E=>{const w=g.get(E)??[],C=w.some(Y=>Y.type==="include"),A=w.some(Y=>Y.type==="exclude"),O=f===E,T=A&&!C?"exclude":C?"include":"default",X=T==="include"?"bg-status-active/15 text-status-active border-status-active/30":T==="exclude"?"bg-status-blocked/15 text-status-blocked border-status-blocked/30":"bg-bg-hover text-text-secondary border-border";return c.jsxs("div",{className:"relative",children:[c.jsxs("button",{type:"button",onClick:()=>p(O?null:E),className:me("inline-flex items-center gap-[var(--spacing-1)] px-[var(--spacing-2)] py-[var(--spacing-0-5)]","rounded-[var(--radius-sm)] border text-[length:var(--font-size-xs)]","cursor-pointer transition-opacity duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",X,O&&"ring-1 ring-accent-blue"),children:[E,c.jsxs("span",{className:"text-[length:10px] opacity-60",children:["(",w.length,")"]})]}),O&&c.jsx("div",{className:me("absolute top-full left-0 mt-[var(--spacing-1)] z-20","border border-border rounded-[var(--radius-sm)] bg-bg-secondary shadow-lg","p-[var(--spacing-2)] min-w-48"),children:c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-1-5)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-primary",children:"Referenced by:"}),w.map((Y,P)=>c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)] text-[length:var(--font-size-xs)]",children:[c.jsx("span",{className:me("px-[var(--spacing-1)] rounded-[2px]",Y.type==="include"?"bg-status-active/15 text-status-active":"bg-status-blocked/15 text-status-blocked"),children:Y.type}),c.jsx("span",{className:"text-text-secondary",children:Y.agents[0]})]},P)),c.jsxs("div",{className:"border-t border-border-divider pt-[var(--spacing-1-5)] mt-[var(--spacing-0-5)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Quick Bind:"}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[c.jsxs("select",{value:h[E]??"",onChange:Y=>x(P=>({...P,[E]:Y.target.value})),className:me("flex-1 px-[var(--spacing-1)] py-[var(--spacing-0-5)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue"),children:[c.jsx("option",{value:"",disabled:!0,children:"Agent..."}),b.map(Y=>c.jsx("option",{value:Y,children:Y},Y))]}),c.jsx("button",{type:"button",disabled:!h[E],onClick:()=>{h[E]&&(s(E,h[E]),p(null),x(Y=>{const P={...Y};return delete P[E],P}))},className:me("px-[var(--spacing-1-5)] py-[var(--spacing-0-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","bg-accent-blue text-white","hover:opacity-90 transition-opacity duration-[var(--duration-fast)]","disabled:opacity-40 disabled:pointer-events-none","focus-visible:outline-none"),children:"+Add"})]})]})]})})]},E)})})]})}function rj({agent:n,mapping:i,defaults:s,config:r,onClose:d}){var A,O,T,X,Y,P;const f=s.agentCategoryMap[n]??[],p=i.categories??f,h=[...((A=r.keywordFilters)==null?void 0:A.include)??[],...i.includeKeywords??[]],x=[...((O=r.keywordFilters)==null?void 0:O.exclude)??[],...i.excludeKeywords??[]],g=[];for(const Z of p){const te=s.categoryFileMap[Z];te&&g.push(te);const H=(T=r.categoryDocs)==null?void 0:T[Z];H!=null&&H.specFiles&&g.push(...H.specFiles),H!=null&&H.docs&&g.push(...H.docs)}const S=((X=r.always)==null?void 0:X.docs)??[],b=((Y=r.always)==null?void 0:Y.keywords)??[],E=((P=r.always)==null?void 0:P.categories)??[],w=i.extras??[],C=v.useRef(null);return v.useEffect(()=>{const Z=te=>{C.current&&!C.current.contains(te.target)&&d()};return document.addEventListener("mousedown",Z),()=>document.removeEventListener("mousedown",Z)},[d]),c.jsxs("div",{ref:C,className:me("absolute top-full right-0 mt-[var(--spacing-1)] z-20","border border-border rounded-[var(--radius-sm)] bg-bg-secondary shadow-lg","p-[var(--spacing-3)] min-w-64 max-w-80"),children:[c.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-2)]",children:[c.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary",children:["Effective Injection: ",n]}),c.jsx("button",{type:"button",onClick:d,className:"text-[length:var(--font-size-xs)] text-text-tertiary hover:text-text-primary focus-visible:outline-none",children:"[x]"})]}),c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-2)] text-[length:var(--font-size-xs)]",children:[c.jsxs("div",{children:[c.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:"Categories:"}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1)]",children:p.length>0?p.map(Z=>c.jsx(Ku,{name:Z},Z)):c.jsx("span",{className:"text-text-tertiary italic",children:"none"})})]}),c.jsxs("div",{children:[c.jsxs("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:["Spec Files (",g.length,"):"]}),g.length>0?c.jsx("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:g.map((Z,te)=>c.jsx("span",{className:"text-text-secondary font-mono truncate",children:Z},`${Z}-${te}`))}):c.jsx("span",{className:"text-text-tertiary italic",children:"none"})]}),(h.length>0||x.length>0)&&c.jsxs("div",{children:[c.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:"Keyword Filters:"}),h.length>0&&c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-0-5)] mb-[var(--spacing-0-5)]",children:h.map((Z,te)=>c.jsxs("span",{className:"px-[var(--spacing-1)] rounded-[2px] bg-status-active/15 text-status-active",children:["+",Z]},`inc-${Z}-${te}`))}),x.length>0&&c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-0-5)]",children:x.map((Z,te)=>c.jsxs("span",{className:"px-[var(--spacing-1)] rounded-[2px] bg-status-blocked/15 text-status-blocked",children:["-",Z]},`exc-${Z}-${te}`))})]}),(S.length>0||b.length>0||E.length>0)&&c.jsxs("div",{children:[c.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:"Always (session start):"}),c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:[S.map((Z,te)=>c.jsx("span",{className:"text-text-secondary font-mono truncate",children:Z},`doc-${Z}-${te}`)),b.map((Z,te)=>c.jsxs("span",{className:"text-accent-green text-[length:var(--font-size-xs)]",children:["kw:",Z]},`kw-${Z}-${te}`)),E.map((Z,te)=>c.jsxs("span",{className:"text-accent-purple text-[length:var(--font-size-xs)]",children:["cat:",Z]},`cat-${Z}-${te}`))]})]}),w.length>0&&c.jsxs("div",{children:[c.jsxs("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:["Extra Docs (",w.length,"):"]}),c.jsx("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:w.map((Z,te)=>c.jsx("span",{className:"text-text-secondary font-mono truncate",children:Z},`${Z}-${te}`))})]})]})]})}const Au=[".workflow/docs/",".workflow/knowhow/","docs/",".workflow/specs/",".maestro/specs/",".maestro/knowhow/"];function eg(){var $,N,I,ee;St();const[n,i]=v.useState({}),[s,r]=v.useState(null),[d,f]=v.useState("{}"),[p,h]=v.useState(!0),[x,g]=v.useState(null),[S,b]=v.useState(!1),[E,w]=v.useState({}),[C,A]=v.useState({}),[O,T]=v.useState(!1),[X,Y]=v.useState(!1),[P,Z]=v.useState(null),te=JSON.stringify(n)!==d;v.useEffect(()=>{let D=!1;async function B(){try{const q=await fetch("/api/settings/spec-injection");if(!q.ok)throw new Error(`Failed to load spec injection config: ${q.status}`);const ae=await q.json();D||(i(ae.config??{}),f(JSON.stringify(ae.config??{})),r(ae.defaults),h(!1))}catch(q){D||(g(q instanceof Error?q.message:"Failed to load config"),h(!1))}}return B(),()=>{D=!0}},[]);const H=v.useCallback(async()=>{b(!0);try{const D=await fetch("/api/settings/spec-injection",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!D.ok)throw new Error(`Save failed: ${D.status}`);f(JSON.stringify(n))}catch(D){g(D instanceof Error?D.message:"Save failed")}finally{b(!1)}},[n]),Q=v.useCallback(()=>{i(JSON.parse(d)),g(null)},[d]),fe=D=>{w(B=>({...B,[D]:!B[D]}))},He=D=>{A(B=>({...B,[D]:!B[D]}))},Ae=(D,B)=>{i(q=>{var ae;return{...q,mapping:{...q.mapping,[D]:{...(ae=q.mapping)==null?void 0:ae[D],...B}}}})},ze=D=>{i(B=>{const q={...B.mapping};return delete q[D],{...B,mapping:Object.keys(q).length>0?q:void 0}})},F=(D,B)=>{i(q=>{var ae;return{...q,categoryDocs:{...q.categoryDocs,[D]:{...(ae=q.categoryDocs)==null?void 0:ae[D],...B}}}})},Te=D=>{i(B=>{const q={...B.categoryDocs};return delete q[D],{...B,categoryDocs:Object.keys(q).length>0?q:void 0}})},qe=v.useCallback((D,B)=>{i(q=>{var Ie;const ae=((Ie=q.mapping)==null?void 0:Ie[B])??{},Se=ae.includeKeywords??[];if(Se.includes(D))return q;const oe=(s==null?void 0:s.agentCategoryMap[B])??[];return{...q,mapping:{...q.mapping,[B]:{...ae,categories:ae.categories??[...oe],includeKeywords:[...Se,D]}}}})},[s]);if(p)return c.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-4)]",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:"Loading injection config..."})});if(!s)return null;const L=Object.keys(n.mapping??{}),J=Object.keys(s.agentCategoryMap).filter(D=>!L.includes(D)),ie=Object.keys(n.categoryDocs??{}),be=s.validCategories.filter(D=>!ie.includes(D));return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[c.jsxs("div",{className:"mb-[var(--spacing-1)]",children:[c.jsx("h3",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:"Spec Injection Config"}),c.jsx("p",{className:"mt-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-secondary",children:"Configure which specs and docs are injected into agent contexts"})]}),x&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked px-[var(--spacing-1)]",children:x}),c.jsx(Ys,{title:"Keyword Browser",description:"Discover and manage keywords referenced across agent mappings and global filters",expanded:!!E["keywords-browser"],onToggle:()=>fe("keywords-browser"),children:c.jsx(sj,{config:n,defaults:s,onQuickBind:qe})}),c.jsxs(Ys,{title:"Agent Mappings",description:"Per-agent category overrides, keyword filters, and extra docs",expanded:!!E.agents,onToggle:()=>fe("agents"),children:[L.length===0&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary italic mb-[var(--spacing-2)]",children:"No custom agent mappings. Defaults are used for all agents."}),c.jsx("div",{className:"flex flex-col gap-[var(--spacing-2)]",children:L.map(D=>{const B=n.mapping[D],q=s.agentCategoryMap[D]??[],ae=!!C[D],Se=B.categories??q,oe=(B.includeKeywords??[]).length,Ie=(B.excludeKeywords??[]).length;return c.jsxs("div",{className:"border border-border-divider rounded-[var(--radius-sm)]",children:[c.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-3)] py-[var(--spacing-2)]",children:[c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("button",{type:"button",onClick:()=>He(D),className:"text-left text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary hover:text-accent-blue focus-visible:outline-none",children:D}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)] mt-[var(--spacing-0-5)]",children:[Se.map(je=>c.jsx(Ku,{name:je},je)),oe>0&&c.jsxs("span",{className:"text-[length:10px] px-[var(--spacing-1)] rounded-[2px] bg-status-active/15 text-status-active",children:["+",oe," kw"]}),Ie>0&&c.jsxs("span",{className:"text-[length:10px] px-[var(--spacing-1)] rounded-[2px] bg-status-blocked/15 text-status-blocked",children:["-",Ie," kw"]}),(B.extras??[]).length>0&&c.jsxs("span",{className:"text-[length:10px] px-[var(--spacing-1)] rounded-[2px] bg-bg-hover text-text-tertiary",children:[(B.extras??[]).length," docs"]})]})]}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] shrink-0 relative",children:[c.jsx("button",{type:"button",onClick:()=>Z(P===D?null:D),className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-purple hover:text-accent-purple/80 focus-visible:outline-none"),children:"test"}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:ae?"[-]":"[+]"}),c.jsx("button",{type:"button",onClick:()=>ze(D),className:"text-[length:var(--font-size-xs)] text-status-blocked opacity-60 hover:opacity-100 focus-visible:outline-none","aria-label":`Remove ${D}`,children:"remove"}),P===D&&c.jsx(rj,{agent:D,mapping:B,defaults:s,config:n,onClose:()=>Z(null)})]})]}),ae&&c.jsxs("div",{className:"px-[var(--spacing-3)] pb-[var(--spacing-3)] border-t border-border-divider pt-[var(--spacing-2)] flex flex-col gap-[var(--spacing-3)]",children:[c.jsxs("div",{children:[c.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:["Categories",c.jsxs("span",{className:"font-normal text-text-tertiary ml-[var(--spacing-1)]",children:["(default: ",q.join(", ")||"none",")"]})]}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1-5)]",children:s.validCategories.map(je=>{const Qe=(B.categories??q).includes(je);return c.jsxs("label",{className:me("flex items-center gap-[var(--spacing-1)] text-[length:var(--font-size-xs)] cursor-pointer","px-[var(--spacing-1-5)] py-[var(--spacing-0-5)] rounded-[var(--radius-sm)]","border transition-colors duration-[var(--duration-fast)]",Qe?Nv(je):"border-transparent text-text-tertiary hover:text-text-secondary"),children:[c.jsx("input",{type:"checkbox",checked:Qe,onChange:()=>{const it=B.categories??[...q],$e=Qe?it.filter(Sn=>Sn!==je):[...it,je];Ae(D,{categories:$e})},className:"accent-accent-blue"}),je]},je)})})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Include Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(B.includeKeywords??[]).map((je,Qe)=>c.jsx(Is,{label:je,variant:"include",onRemove:()=>Ae(D,{includeKeywords:B.includeKeywords.filter((it,$e)=>$e!==Qe)})},`${je}-${Qe}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:je=>Ae(D,{includeKeywords:[...B.includeKeywords??[],je]})})]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Exclude Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(B.excludeKeywords??[]).map((je,Qe)=>c.jsx(Is,{label:je,variant:"exclude",onRemove:()=>Ae(D,{excludeKeywords:B.excludeKeywords.filter((it,$e)=>$e!==Qe)})},`${je}-${Qe}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:je=>Ae(D,{excludeKeywords:[...B.excludeKeywords??[],je]})})]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Extra Docs"}),c.jsx(Ti,{paths:B.extras??[],onChange:je=>Ae(D,{extras:je}),placeholder:"Add path (e.g. .workflow/docs/...)",suggestions:Au})]})]})]},D)})}),J.length>0&&c.jsx("div",{className:"mt-[var(--spacing-2)]",children:O?c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsxs("select",{className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue"),defaultValue:"",onChange:D=>{if(D.target.value){const B=D.target.value,q=s.agentCategoryMap[B]??[];Ae(B,{categories:[...q]}),T(!1),A(ae=>({...ae,[B]:!0}))}},children:[c.jsx("option",{value:"",disabled:!0,children:"Select agent type..."}),J.map(D=>c.jsx("option",{value:D,children:D},D))]}),c.jsx("button",{type:"button",onClick:()=>T(!1),className:"text-[length:var(--font-size-xs)] text-text-tertiary hover:text-text-secondary focus-visible:outline-none",children:"cancel"})]}):c.jsx("button",{type:"button",onClick:()=>T(!0),className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:"+ Customize Agent"})})]}),c.jsxs(Ys,{title:"Category Documents",description:"Extra spec files and docs injected per category",expanded:!!E.categories,onToggle:()=>fe("categories"),children:[ie.length===0&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary italic mb-[var(--spacing-2)]",children:"No custom category documents configured."}),c.jsx("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:ie.map(D=>{const B=n.categoryDocs[D],q=s.categoryFileMap[D];return c.jsxs("div",{className:"border border-border-divider rounded-[var(--radius-sm)] p-[var(--spacing-3)]",children:[c.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-2)]",children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx(Ku,{name:D}),c.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary",children:D})]}),c.jsx("button",{type:"button",onClick:()=>Te(D),className:"text-[length:var(--font-size-xs)] text-status-blocked opacity-60 hover:opacity-100 focus-visible:outline-none","aria-label":`Remove ${D}`,children:"remove"})]}),q&&c.jsxs("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary mb-[var(--spacing-2)]",children:["Default spec: ",q]}),c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-2)]",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Extra Spec Files"}),c.jsx(Ti,{paths:B.specFiles??[],onChange:ae=>F(D,{specFiles:ae}),placeholder:"Add spec file...",suggestions:[".workflow/specs/",".maestro/specs/"]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Extra Docs"}),c.jsx(Ti,{paths:B.docs??[],onChange:ae=>F(D,{docs:ae}),placeholder:"Add doc path...",suggestions:Au})]})]})]},D)})}),be.length>0&&c.jsx("div",{className:"mt-[var(--spacing-2)]",children:X?c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsxs("select",{className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue"),defaultValue:"",onChange:D=>{D.target.value&&(F(D.target.value,{specFiles:[],docs:[]}),Y(!1))},children:[c.jsx("option",{value:"",disabled:!0,children:"Select category..."}),be.map(D=>c.jsx("option",{value:D,children:D},D))]}),c.jsx("button",{type:"button",onClick:()=>Y(!1),className:"text-[length:var(--font-size-xs)] text-text-tertiary hover:text-text-secondary focus-visible:outline-none",children:"cancel"})]}):c.jsx("button",{type:"button",onClick:()=>Y(!0),className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:"+ Add Category"})})]}),c.jsx(Ys,{title:"Always Inject (Session Start)",description:"Documents, keywords, and categories always injected at session start",expanded:!!E.always,onToggle:()=>fe("always"),children:c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1)]",children:"Documents"}),c.jsx(Ti,{paths:(($=n.always)==null?void 0:$.docs)??[],onChange:D=>{var q,ae;const B={...n.always,docs:D.length>0?D:void 0};!B.docs&&!((q=B.keywords)!=null&&q.length)&&!((ae=B.categories)!=null&&ae.length)?i(Se=>({...Se,always:void 0})):i(Se=>({...Se,always:B}))},placeholder:"Add doc path...",suggestions:Au})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1)]",children:"Keywords (always inject matching entries)"}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1)] mb-[var(--spacing-1)]",children:(((N=n.always)==null?void 0:N.keywords)??[]).map(D=>c.jsx(Is,{label:D,variant:"include",onRemove:()=>{var ae,Se,oe;const B=(((ae=n.always)==null?void 0:ae.keywords)??[]).filter(Ie=>Ie!==D),q={...n.always,keywords:B.length>0?B:void 0};!((Se=q.docs)!=null&&Se.length)&&!q.keywords&&!((oe=q.categories)!=null&&oe.length)?i(Ie=>({...Ie,always:void 0})):i(Ie=>({...Ie,always:q}))}},D))}),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:D=>{var q;const B=((q=n.always)==null?void 0:q.keywords)??[];B.includes(D)||i(ae=>({...ae,always:{...ae.always,keywords:[...B,D]}}))}})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1)]",children:"Categories (always inject all entries from these)"}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1)]",children:((s==null?void 0:s.validCategories)??[]).map(D=>{var q;const B=(((q=n.always)==null?void 0:q.categories)??[]).includes(D);return c.jsx("button",{type:"button",onClick:()=>{var Ie,je,Qe;const ae=((Ie=n.always)==null?void 0:Ie.categories)??[],Se=B?ae.filter(it=>it!==D):[...ae,D],oe={...n.always,categories:Se.length>0?Se:void 0};!((je=oe.docs)!=null&&je.length)&&!((Qe=oe.keywords)!=null&&Qe.length)&&!oe.categories?i(it=>({...it,always:void 0})):i(it=>({...it,always:oe}))},className:`px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] transition-all ${B?"bg-accent-purple/20 text-accent-purple border border-accent-purple/40":"bg-bg-secondary text-text-tertiary border border-border-default hover:text-text-secondary"}`,children:D},D)})})]})]})}),c.jsx(Ys,{title:"Global Keyword Filters",description:"Include or exclude spec entries by keyword across all agents",expanded:!!E.keywords,onToggle:()=>fe("keywords"),children:c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Include Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(((I=n.keywordFilters)==null?void 0:I.include)??[]).map((D,B)=>c.jsx(Is,{label:D,variant:"include",onRemove:()=>i(q=>{var ae;return{...q,keywordFilters:{...q.keywordFilters,include:(((ae=q.keywordFilters)==null?void 0:ae.include)??[]).filter((Se,oe)=>oe!==B)}}})},`${D}-${B}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:D=>i(B=>{var q;return{...B,keywordFilters:{...B.keywordFilters,include:[...((q=B.keywordFilters)==null?void 0:q.include)??[],D]}}})})]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Exclude Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(((ee=n.keywordFilters)==null?void 0:ee.exclude)??[]).map((D,B)=>c.jsx(Is,{label:D,variant:"exclude",onRemove:()=>i(q=>{var ae;return{...q,keywordFilters:{...q.keywordFilters,exclude:(((ae=q.keywordFilters)==null?void 0:ae.exclude)??[]).filter((Se,oe)=>oe!==B)}}})},`${D}-${B}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:D=>i(B=>{var q;return{...B,keywordFilters:{...B.keywordFilters,exclude:[...((q=B.keywordFilters)==null?void 0:q.exclude)??[],D]}}})})]})]}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary",children:"Max Content Length"}),c.jsx("input",{type:"number",value:n.maxContentLength??"",onChange:D=>{const B=D.target.value?parseInt(D.target.value,10):void 0;i(q=>({...q,maxContentLength:B&&B>0?B:void 0}))},placeholder:"8000",className:me("w-24 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]")})]})]})}),c.jsx(Vn,{dirty:te,saving:S,onSave:()=>void H(),onDiscard:Q})]})}const Ai=_t((n,i)=>({configured:null,teams:[],selectedTeamId:null,board:null,selectedIssue:null,loading:!1,error:null,checkStatus:async()=>{try{const s=await fetch(gu.STATUS);if(!s.ok)throw new Error(`HTTP ${s.status}`);const r=await s.json();n({configured:r.configured})}catch(s){n({configured:!1,error:String(s)})}},fetchTeams:async()=>{n({loading:!0,error:null});try{const s=await fetch(gu.TEAMS);if(!s.ok)throw new Error(`HTTP ${s.status}`);const r=await s.json();if(n({teams:r,loading:!1}),r.length>0&&!i().selectedTeamId){const d=r[0].id;n({selectedTeamId:d}),i().fetchBoard(d)}}catch(s){n({loading:!1,error:String(s)})}},selectTeam:s=>{n({selectedTeamId:s,board:null,selectedIssue:null}),i().fetchBoard(s)},fetchBoard:async s=>{n({loading:!0,error:null});try{const r=await fetch(`${gu.BOARD}?teamId=${s}`);if(!r.ok){const f=await r.json().catch(()=>({error:`HTTP ${r.status}`}));throw new Error(f.error)}const d=await r.json();n({board:d,loading:!1})}catch(r){n({loading:!1,error:String(r)})}},selectIssue:s=>{n({selectedIssue:s})},refresh:async()=>{const s=i().selectedTeamId;s&&await i().fetchBoard(s)},importIssues:async s=>{const r=await fetch("/api/linear/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issues:s})});if(!r.ok){const d=await r.json().catch(()=>({error:`HTTP ${r.status}`}));throw new Error(d.error)}return await r.json()},exportIssues:async(s,r)=>{const d=await fetch("/api/linear/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issues:s,teamId:r})});if(!d.ok){const f=await d.json().catch(()=>({error:`HTTP ${d.status}`}));throw new Error(f.error)}return await d.json()}}));function ij(){const{t:n}=St(),i=pe(T=>{var X;return(X=T.draft)==null?void 0:X.linear}),s=pe(T=>T.saving),r=pe(T=>T.isDirty("linear")),d=pe(T=>T.updateDraft),f=pe(T=>T.saveConfig),p=pe(T=>T.discardDraft),h=Ai(T=>T.configured),x=Ai(T=>T.teams),g=Ai(T=>T.checkStatus),S=Ai(T=>T.fetchTeams),[b,E]=v.useState(!1),[w,C]=v.useState(null);if(!i)return null;const A=async()=>{E(!0),C(null);try{await g();const T=await fetch("/api/linear/teams");if(!T.ok){const Y=await T.json().catch(()=>({error:`HTTP ${T.status}`}));throw new Error(Y.error)}const X=await T.json();await S(),C({ok:!0,message:`Connected! Found ${X.length} team(s)`})}catch(T){C({ok:!1,message:String(T)})}finally{E(!1)}},O=async()=>{await f("linear"),await g(),i.apiKey&&await S()};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsxs(rt,{title:n("settings.linear.integration_card"),description:n("settings.linear.integration_desc"),children:[c.jsx(Pe,{label:n("settings.linear.api_key_label"),description:n("settings.linear.api_key_desc"),htmlFor:"settings-linear-api-key",children:c.jsx("input",{id:"settings-linear-api-key",type:"password",value:i.apiKey,onChange:T=>d("linear",{...i,apiKey:T.target.value}),placeholder:"lin_api_...",className:me("w-48 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary")})}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] pt-[var(--spacing-2)]",children:[c.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${h===!0?"bg-status-completed":h===!1?"bg-status-blocked":"bg-bg-hover"}`}),c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n(h===!0?"settings.linear.connected":h===!1?"settings.linear.not_configured":"settings.linear.checking")})]}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] pt-[var(--spacing-2)]",children:[c.jsx("button",{type:"button",onClick:()=>void A(),disabled:b,className:me("px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","border border-border text-text-secondary","hover:bg-bg-hover hover:text-text-primary","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50 disabled:pointer-events-none"),children:n(b?"settings.linear.testing":"settings.linear.test_connection")}),w&&c.jsx("span",{className:me("text-[length:var(--font-size-xs)]",w.ok?"text-status-completed":"text-status-blocked"),children:w.message})]})]}),h&&x.length>0&&c.jsx(rt,{title:n("settings.linear.teams_card"),description:n("settings.linear.teams_desc"),children:c.jsx("div",{className:"flex flex-col gap-[var(--spacing-1)]",children:x.map(T=>c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] py-[var(--spacing-1-5)] text-[length:var(--font-size-sm)]",children:[c.jsx("span",{className:"font-mono text-text-tertiary text-[length:var(--font-size-xs)]",children:T.key}),c.jsx("span",{className:"text-text-primary",children:T.name})]},T.id))})}),c.jsx(Vn,{dirty:r,saving:s,onSave:()=>void O(),onDiscard:()=>p("linear")})]})}function oj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col",style:{backgroundColor:"#1D1B18",borderTop:"2px solid #C8863A"},children:[c.jsxs("div",{className:"px-2.5 py-2 flex-1",children:[c.jsx("div",{className:"h-[7px] rounded w-[72%] mb-2",style:{backgroundColor:"rgba(255,255,255,0.18)"}}),c.jsx("div",{className:"flex gap-1 mt-2 flex-wrap",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(n=>c.jsx("div",{className:"h-[5px] rounded-full",style:{width:22,backgroundColor:`${n}55`}},n))})]}),c.jsxs("div",{className:"px-2.5 py-1.5 border-t flex items-center gap-1",style:{borderColor:"rgba(255,255,255,0.07)"},children:[c.jsx("div",{className:"h-[4px] rounded w-6",style:{backgroundColor:"rgba(255,255,255,0.15)"}}),c.jsx("div",{className:"h-[4px] rounded w-6 ml-1",style:{backgroundColor:"rgba(255,255,255,0.15)"}})]})]})}function cj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-2 py-1.5 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[5px] rounded w-14",style:{backgroundColor:"var(--color-text-primary)",opacity:.7}}),c.jsx("div",{className:"w-3 h-3 rounded-sm",style:{backgroundColor:"var(--color-bg-hover)"}})]}),c.jsxs("div",{className:"px-2 py-1.5 flex-1 space-y-1.5",children:[c.jsx("div",{className:"h-[3px] rounded w-6",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[6px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"h-[3px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[12px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"flex gap-1",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(n=>c.jsx("div",{className:"h-[5px] rounded",style:{width:16,backgroundColor:`${n}25`}},n))})]}),c.jsxs("div",{className:"flex justify-end gap-1 px-2 py-1.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[6px] rounded w-8",style:{backgroundColor:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"}}),c.jsx("div",{className:"h-[6px] rounded w-10",style:{backgroundColor:"#C8863A"}})]})]})}function uj(){return c.jsx("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col items-center justify-center px-3",style:{backgroundColor:"var(--color-bg-primary)"},children:c.jsxs("div",{className:"w-full",children:[c.jsx("div",{className:"h-[3px] rounded w-10 mb-2",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[10px] rounded w-[85%] mb-1.5",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsx("div",{className:"h-[4px] rounded w-full mb-1",style:{backgroundColor:"var(--color-text-secondary)",opacity:.3}}),c.jsx("div",{className:"h-[4px] rounded w-[70%] mb-3",style:{backgroundColor:"var(--color-text-secondary)",opacity:.3}}),c.jsxs("div",{className:"flex gap-1 items-center pt-1.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[["#C46555","#5B8DB8","#9178B5"].map(n=>c.jsx("div",{className:"h-[4px] rounded-full",style:{width:18,backgroundColor:`${n}45`}},n)),c.jsx("div",{className:"ml-auto h-[5px] rounded w-8",style:{backgroundColor:"#C8863A",opacity:.7}})]})]})})}function dj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex relative",style:{backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx("div",{className:"flex-1",style:{backgroundColor:"rgba(0,0,0,0.12)"}}),c.jsxs("div",{className:"w-[45%] h-full flex flex-col",style:{backgroundColor:"var(--color-bg-card)",borderLeft:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"px-2 py-1.5 border-b flex items-center gap-1",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[3px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded-full w-7 ml-1",style:{backgroundColor:"#5B8DB825"}})]}),c.jsxs("div",{className:"px-2 py-1.5 space-y-1.5 flex-1",children:[c.jsx("div",{className:"h-[6px] rounded w-[85%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.6}}),c.jsx("div",{className:"h-[3px] rounded w-8 mt-1",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded w-12",style:{backgroundColor:"var(--color-bg-secondary)"}}),c.jsx("div",{className:"h-[3px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-bg-secondary)"}})]})]})]})}function fj(){return c.jsx("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.35)"},children:c.jsxs("div",{className:"w-[88%] h-[78%] rounded-[5px] overflow-hidden flex",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"flex-1 px-2 py-1.5 border-r",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"flex gap-1 mb-1.5",children:["#C46555","#5B8DB8"].map(n=>c.jsx("div",{className:"h-[4px] rounded-full w-8",style:{backgroundColor:`${n}30`}},n))}),c.jsx("div",{className:"h-[7px] rounded w-[90%] mb-1",style:{backgroundColor:"var(--color-text-primary)",opacity:.6}}),c.jsx("div",{className:"h-[3px] rounded w-full mb-1",style:{backgroundColor:"var(--color-text-secondary)",opacity:.35}}),c.jsx("div",{className:"h-[3px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.35}})]}),c.jsxs("div",{className:"w-[36%] px-1.5 py-1.5 space-y-1.5",style:{backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx("div",{className:"h-[3px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),[["#C46555",18],["#5B8DB8",14],["#A09D97",20]].map(([n,i],s)=>c.jsx("div",{className:"h-[4px] rounded-full",style:{width:i,backgroundColor:`${n}35`}},s))]})]})})}function mj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col",style:{backgroundColor:"var(--color-bg-primary)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-2 py-1 border-b shrink-0",style:{borderColor:"var(--color-border-divider)",backgroundColor:"var(--color-bg-card)"},children:[c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("div",{className:"h-[3px] rounded w-6",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("span",{className:"text-[6px]",style:{color:"var(--color-text-tertiary)"},children:"›"}),c.jsx("div",{className:"h-[3px] rounded w-8",style:{backgroundColor:"var(--color-text-primary)",opacity:.5}})]}),c.jsxs("div",{className:"flex gap-1",children:[c.jsx("div",{className:"h-[4px] rounded-full w-8",style:{backgroundColor:"#C4655525"}}),c.jsx("div",{className:"h-[4px] rounded-full w-6",style:{backgroundColor:"#5B8DB825"}})]})]}),c.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[c.jsxs("div",{className:"flex-1 px-3 py-2 space-y-1.5",children:[c.jsx("div",{className:"h-[3px] rounded w-16",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[8px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsx("div",{className:"h-[3px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.28}}),c.jsx("div",{className:"h-[3px] rounded w-[75%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.28}})]}),c.jsx("div",{className:"w-[30%] px-1.5 py-2 border-l space-y-1.5",style:{borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-secondary)"},children:[12,16,10,14].map((n,i)=>c.jsx("div",{className:"h-[3px] rounded",style:{width:n,backgroundColor:"var(--color-text-tertiary)",opacity:.5}},i))})]})]})}function tg({value:n,current:i,label:s,description:r,accentColor:d,children:f,onSelect:p}){const h=n===i;return c.jsxs("button",{type:"button",onClick:()=>p(n),className:"flex-1 min-w-0 rounded-[10px] overflow-hidden border-2 transition-all duration-200 text-left focus-visible:outline-none",style:{borderColor:h?d:"var(--color-border)",backgroundColor:h?`${d}06`:"var(--color-bg-card)",boxShadow:h?`0 0 0 3px ${d}20`:"var(--shadow-sm)",transform:h?"translateY(-1px)":"none"},children:[c.jsx("div",{className:"h-[100px] p-2",style:{backgroundColor:h?`${d}08`:"var(--color-bg-secondary)"},children:f}),c.jsxs("div",{className:"px-3 py-2.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-0.5",children:[h&&c.jsx("div",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:d}}),c.jsx("span",{className:"text-[11px] font-semibold",style:{color:h?d:"var(--color-text-primary)"},children:s})]}),c.jsx("p",{className:"text-[10px] leading-snug",style:{color:"var(--color-text-tertiary)"},children:r})]})]})}function pj(){const n=[{color:"#A09D97",cards:[72,60,85]},{color:"#B89540",cards:[90,65]},{color:"#5A9E78",cards:[55]}];return c.jsx("div",{className:"absolute inset-0 flex gap-2 p-3",style:{backgroundColor:"var(--color-bg-secondary)"},children:n.map((i,s)=>c.jsxs("div",{className:"flex-1 rounded-[8px] overflow-hidden",style:{backgroundColor:"var(--color-bg-primary)"},children:[c.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1.5 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:i.color}}),c.jsx("div",{className:"h-[5px] rounded w-12",style:{backgroundColor:"var(--color-text-secondary)",opacity:.4}})]}),c.jsx("div",{className:"p-1.5 space-y-1.5",children:i.cards.map((r,d)=>c.jsxs("div",{className:"rounded-[5px] p-1.5",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"flex gap-1 mb-1",children:[c.jsx("div",{className:"h-[4px] rounded-full w-10",style:{backgroundColor:`${i.color}35`}}),c.jsx("div",{className:"h-[4px] rounded-full w-7 ml-auto",style:{backgroundColor:"rgba(160,157,151,0.25)"}})]}),c.jsx("div",{className:"h-[4px] rounded",style:{width:`${r}%`,backgroundColor:"var(--color-text-secondary)",opacity:.3}})]},d))})]},s))})}function hj({style:n,animKey:i}){return n===1?c.jsx("div",{className:"absolute inset-0 flex items-start justify-center pt-[14%]",style:{backgroundColor:"rgba(0,0,0,0.65)"},children:c.jsxs("div",{className:"w-[70%] rounded-[10px] overflow-hidden motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"#1D1B18",borderTop:"2px solid #C8863A",boxShadow:"0 16px 50px rgba(0,0,0,0.5)"},children:[c.jsx("div",{className:"px-4 py-3",children:c.jsx("div",{className:"h-[8px] rounded w-[60%]",style:{backgroundColor:"rgba(255,255,255,0.22)"}})}),c.jsx("div",{className:"px-4 pb-3 pt-2 border-t",style:{borderColor:"rgba(255,255,255,0.07)"},children:c.jsx("div",{className:"flex gap-1.5",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(s=>c.jsx("div",{className:"h-[6px] rounded-full w-8",style:{backgroundColor:`${s}45`}},s))})}),c.jsx("div",{className:"px-4 py-2 border-t flex items-center",style:{borderColor:"rgba(255,255,255,0.07)"},children:c.jsx("div",{className:"h-[4px] rounded w-24",style:{backgroundColor:"rgba(255,255,255,0.12)"}})})]},i)}):n===2?c.jsx("div",{className:"absolute inset-0 flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.38)"},children:c.jsxs("div",{className:"w-[72%] rounded-[12px] overflow-hidden motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)",boxShadow:"0 12px 40px rgba(0,0,0,0.2)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[7px] rounded w-16",style:{backgroundColor:"var(--color-text-primary)",opacity:.65}}),c.jsx("div",{className:"w-4 h-4 rounded",style:{backgroundColor:"var(--color-bg-hover)"}})]}),c.jsxs("div",{className:"px-4 py-3 space-y-2",children:[c.jsx("div",{className:"h-[4px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[8px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[16px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"flex gap-1.5",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(s=>c.jsx("div",{className:"h-[7px] rounded w-12",style:{backgroundColor:`${s}22`}},s))})]}),c.jsxs("div",{className:"flex justify-end gap-2 px-4 py-2.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[8px] rounded w-10",style:{backgroundColor:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"}}),c.jsx("div",{className:"h-[8px] rounded w-16",style:{backgroundColor:"#C8863A"}})]})]},i)}):c.jsx("div",{className:"absolute inset-0 flex items-center justify-center motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-primary)"},children:c.jsxs("div",{className:"w-[80%]",children:[c.jsx("div",{className:"h-[4px] rounded w-20 mb-3",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[14px] rounded w-[70%] mb-3",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsxs("div",{className:"space-y-1.5 mb-6",children:[c.jsx("div",{className:"h-[5px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}}),c.jsx("div",{className:"h-[5px] rounded w-[85%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}})]}),c.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",style:{borderColor:"var(--color-border-divider)"},children:[["#C46555","#5B8DB8","#9178B5"].map(s=>c.jsx("div",{className:"h-[6px] rounded-full w-10",style:{backgroundColor:`${s}35`}},s)),c.jsx("div",{className:"ml-auto h-[8px] rounded w-12",style:{backgroundColor:"#C8863A"}})]})]})},i)}function gj({style:n,animKey:i}){return n===1?c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"absolute inset-0",style:{backgroundColor:"rgba(0,0,0,0.2)"}}),c.jsxs("div",{className:"absolute top-0 right-0 bottom-0 w-[42%] flex flex-col motion-safe:animate-[slide-in-right_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-card)",borderLeft:"1px solid var(--color-border)",boxShadow:"0 0 30px rgba(0,0,0,0.15)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsxs("div",{className:"flex gap-1",children:[c.jsx("div",{className:"h-[5px] rounded-full w-8",style:{backgroundColor:"#C4655530"}}),c.jsx("div",{className:"h-[5px] rounded-full w-8",style:{backgroundColor:"#5B8DB830"}})]})]}),c.jsxs("div",{className:"px-3 py-3 space-y-2.5 flex-1",children:[c.jsx("div",{className:"h-[8px] rounded w-[85%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[6px] rounded w-16",style:{backgroundColor:"var(--color-bg-secondary)"}}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"h-[4px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}}),c.jsx("div",{className:"h-[4px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}})]})]})]},i)]}):n===2?c.jsx("div",{className:"absolute inset-0 flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.45)"},children:c.jsxs("div",{className:"w-[88%] h-[78%] rounded-[10px] overflow-hidden flex motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)",boxShadow:"0 12px 40px rgba(0,0,0,0.25)"},children:[c.jsxs("div",{className:"flex-1 flex flex-col border-r",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"flex items-center justify-between px-3 py-2 border-b shrink-0",style:{borderColor:"var(--color-border-divider)"},children:c.jsx("div",{className:"h-[4px] rounded w-14",style:{backgroundColor:"var(--color-text-tertiary)"}})}),c.jsxs("div",{className:"flex-1 px-3 py-3 space-y-2",children:[c.jsx("div",{className:"flex gap-1",children:["#C46555","#5B8DB8"].map(s=>c.jsx("div",{className:"h-[5px] rounded-full w-10",style:{backgroundColor:`${s}30`}},s))}),c.jsx("div",{className:"h-[9px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"h-[4px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}}),c.jsx("div",{className:"h-[4px] rounded w-[75%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}})]})]})]}),c.jsxs("div",{className:"w-[36%] px-2.5 py-3 space-y-2.5",style:{backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx("div",{className:"h-[4px] rounded w-14",style:{backgroundColor:"var(--color-text-tertiary)"}}),[["#C46555",20],["#5B8DB8",16],["#A09D97",22]].map(([s,r],d)=>c.jsx("div",{className:"h-[6px] rounded-full",style:{width:r,backgroundColor:`${s}35`}},d)),c.jsxs("div",{className:"pt-2 border-t space-y-1.5",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded w-12",style:{backgroundColor:"var(--color-text-secondary)",opacity:.35}})]})]})]},i)}):c.jsxs("div",{className:"absolute inset-0 flex flex-col motion-safe:animate-[slide-up_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-primary)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b shrink-0",style:{borderColor:"var(--color-border-divider)",backgroundColor:"var(--color-bg-card)"},children:[c.jsxs("div",{className:"flex items-center gap-1.5",children:[c.jsx("div",{className:"h-[4px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("span",{className:"text-[8px]",style:{color:"var(--color-text-tertiary)"},children:"›"}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("span",{className:"text-[8px]",style:{color:"var(--color-text-tertiary)"},children:"›"}),c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-text-primary)",opacity:.5}})]}),c.jsxs("div",{className:"flex gap-1.5",children:[c.jsx("div",{className:"h-[5px] rounded-full w-9",style:{backgroundColor:"#C4655525"}}),c.jsx("div",{className:"h-[5px] rounded-full w-8",style:{backgroundColor:"#5B8DB825"}}),c.jsx("div",{className:"h-[6px] rounded w-10",style:{backgroundColor:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"}})]})]}),c.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[c.jsxs("div",{className:"flex-1 px-6 py-4 space-y-2",children:[c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[11px] rounded w-[65%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsxs("div",{className:"space-y-1.5 pt-1",children:[c.jsx("div",{className:"h-[4px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.22}}),c.jsx("div",{className:"h-[4px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.22}}),c.jsx("div",{className:"h-[4px] rounded w-[60%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.22}})]})]}),c.jsx("div",{className:"w-[28%] border-l px-2.5 py-4 space-y-2.5",style:{borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-secondary)"},children:[["#C46555",22],["#5B8DB8",18],["#A09D97",24]].map(([s,r],d)=>c.jsxs("div",{children:[c.jsx("div",{className:"h-[3px] rounded w-8 mb-1",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.6}}),c.jsx("div",{className:"h-[5px] rounded-full",style:{width:r,backgroundColor:`${s}35`}})]},d))})]})]},i)}function vj({target:n,createStyle:i,detailStyle:s,animKey:r,labels:d,captions:f,createBtnLabel:p,detailBtnLabel:h}){const x=n==="create"?i:s,g=n==="create"?"var(--color-accent-orange)":"var(--color-accent-blue)";return c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("div",{className:"h-px flex-1",style:{backgroundColor:"var(--color-border-divider)"}}),c.jsxs("div",{className:"flex items-center gap-1.5",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:g}}),c.jsxs("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--color-text-tertiary)"},children:["Live Preview — ",d[n][x]]})]}),c.jsx("div",{className:"h-px flex-1",style:{backgroundColor:"var(--color-border-divider)"}})]}),c.jsxs("div",{className:"relative rounded-[10px] overflow-hidden border",style:{height:220,borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx(pj,{}),n==="create"?c.jsx(hj,{style:i,animKey:r}):c.jsx(gj,{style:s,animKey:r})]}),c.jsx("p",{className:"mt-2 text-[10px] text-center",style:{color:"var(--color-text-tertiary)"},children:f[n][x]})]})}function xj(){const{t:n}=St(),i=Hl(w=>w.createModalStyle),s=Hl(w=>w.detailModalStyle),r=Hl(w=>w.setCreateModalStyle),d=Hl(w=>w.setDetailModalStyle),[f,p]=v.useState("create"),[h,x]=v.useState("initial");function g(w){r(w),p("create"),x(`create-${w}-${Date.now()}`)}function S(w){d(w),p("detail"),x(`detail-${w}-${Date.now()}`)}const b=[{value:1,label:n("settings.kanban.create_command"),description:n("settings.kanban.create_command_desc"),thumb:c.jsx(oj,{})},{value:2,label:n("settings.kanban.create_form"),description:n("settings.kanban.create_form_desc"),thumb:c.jsx(cj,{})},{value:3,label:n("settings.kanban.create_focus"),description:n("settings.kanban.create_focus_desc"),thumb:c.jsx(uj,{})}],E=[{value:1,label:n("settings.kanban.detail_panel"),description:n("settings.kanban.detail_panel_desc"),thumb:c.jsx(dj,{})},{value:2,label:n("settings.kanban.detail_overlay"),description:n("settings.kanban.detail_overlay_desc"),thumb:c.jsx(fj,{})},{value:3,label:n("settings.kanban.detail_page"),description:n("settings.kanban.detail_page_desc"),thumb:c.jsx(mj,{})}];return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-5)]",children:[c.jsx(rt,{title:n("settings.kanban.create_card"),description:n("settings.kanban.create_desc"),children:c.jsx("div",{className:"flex gap-3 mt-1",children:b.map(w=>c.jsx(tg,{value:w.value,current:i,label:w.label,description:w.description,accentColor:"var(--color-accent-orange)",onSelect:g,children:w.thumb},w.value))})}),c.jsx(rt,{title:n("settings.kanban.detail_card"),description:n("settings.kanban.detail_desc"),children:c.jsx("div",{className:"flex gap-3 mt-1",children:E.map(w=>c.jsx(tg,{value:w.value,current:s,label:w.label,description:w.description,accentColor:"var(--color-accent-blue)",onSelect:S,children:w.thumb},w.value))})}),c.jsxs(rt,{title:n("settings.kanban.preview_card"),description:n("settings.kanban.preview_desc"),children:[c.jsx("div",{className:"flex gap-1 mb-4",children:["create","detail"].map(w=>c.jsx("button",{type:"button",onClick:()=>{p(w),x(`${w}-${i}-${s}-${Date.now()}`)},className:"px-3 py-1 rounded-[var(--radius-sm)] text-[11px] font-medium transition-all",style:{backgroundColor:f===w?"var(--color-bg-active)":"transparent",color:f===w?"var(--color-text-primary)":"var(--color-text-tertiary)"},children:n(w==="create"?"settings.kanban.preview_create":"settings.kanban.preview_detail")},w))}),c.jsx(vj,{target:f,createStyle:i,detailStyle:s,animKey:h,labels:{create:{1:n("settings.kanban.create_command"),2:n("settings.kanban.create_form"),3:n("settings.kanban.create_focus")},detail:{1:n("settings.kanban.detail_panel"),2:n("settings.kanban.detail_overlay"),3:n("settings.kanban.detail_page")}},captions:{create:{1:n("settings.kanban.create_caption_1"),2:n("settings.kanban.create_caption_2"),3:n("settings.kanban.create_caption_3")},detail:{1:n("settings.kanban.detail_caption_1"),2:n("settings.kanban.detail_caption_2"),3:n("settings.kanban.detail_caption_3")}},createBtnLabel:n("settings.kanban.preview_create"),detailBtnLabel:n("settings.kanban.preview_detail")})]})]})}const yj=["development","staging","production","custom"],bj=["haiku","sonnet","opus"],Sj=["low","medium","high"],Ej=[{value:"claude-code",label:"Claude Code"},{value:"agent-sdk",label:"Agent SDK"},{value:"codex",label:"Codex"},{value:"gemini",label:"Gemini"},{value:"qwen",label:"Qwen"},{value:"opencode",label:"OpenCode"}];function ha({label:n,description:i,value:s,onChange:r,id:d,min:f=0}){return c.jsx(Pe,{label:n,description:i,htmlFor:d,children:c.jsx(gn,{id:d,type:"text",value:String(s),onChange:p=>{const h=Number(p);!isNaN(h)&&h>=f&&r(h)},className:"w-32 font-mono"})})}function wj(){const{t:n}=St(),i=pe(w=>{var C;return(C=w.draft)==null?void 0:C.commander}),s=pe(w=>w.saving),r=pe(w=>w.isDirty("commander")),d=pe(w=>w.updateDraft),f=pe(w=>w.saveConfig),p=pe(w=>w.discardDraft),h=yj.map(w=>({value:w,label:n(`settings.commander.profile_${w}`)})),x=bj.map(w=>({value:w,label:n(`settings.commander.model_${w}`)})),g=Sj.map(w=>({value:w,label:n(`settings.commander.threshold_${w}`)}));if(!i)return null;const S=w=>{d("commander",{...i,...w})},b=w=>{d("commander",{...i,safety:{...i.safety,...w}})},E=w=>{d("commander",{...i,workspace:{...i.workspace,...w}})};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsx(rt,{title:n("settings.commander.profile_card"),description:n("settings.commander.profile_desc"),children:c.jsx(Pe,{label:n("settings.commander.environment_label"),description:n("settings.commander.environment_desc"),htmlFor:"cmd-profile",children:c.jsx(Kn,{id:"cmd-profile",value:i.profile,onChange:w=>S({profile:w}),options:h})})}),c.jsxs(rt,{title:n("settings.commander.core_card"),description:n("settings.commander.core_desc"),children:[c.jsx(ha,{id:"cmd-poll-interval",label:n("settings.commander.poll_interval_label"),description:n("settings.commander.poll_interval_desc"),value:i.pollIntervalMs,onChange:w=>S({pollIntervalMs:w})}),c.jsx(ha,{id:"cmd-max-workers",label:n("settings.commander.max_workers_label"),description:n("settings.commander.max_workers_desc"),value:i.maxConcurrentWorkers,onChange:w=>S({maxConcurrentWorkers:w})}),c.jsx(ha,{id:"cmd-stall-timeout",label:n("settings.commander.stall_timeout_label"),description:n("settings.commander.stall_timeout_desc"),value:i.stallTimeoutMs,onChange:w=>S({stallTimeoutMs:w})}),c.jsx(ha,{id:"cmd-max-retries",label:n("settings.commander.max_retries_label"),description:n("settings.commander.max_retries_desc"),value:i.maxRetries,onChange:w=>S({maxRetries:w})}),c.jsx(ha,{id:"cmd-retry-backoff",label:n("settings.commander.retry_backoff_label"),description:n("settings.commander.retry_backoff_desc"),value:i.retryBackoffMs,onChange:w=>S({retryBackoffMs:w})})]}),c.jsxs(rt,{title:n("settings.commander.decision_card"),description:n("settings.commander.decision_desc"),children:[c.jsx(Pe,{label:n("settings.commander.decision_model_label"),description:n("settings.commander.decision_model_desc"),htmlFor:"cmd-decision-model",children:c.jsx(Kn,{id:"cmd-decision-model",value:i.decisionModel,onChange:w=>S({decisionModel:w}),options:x})}),c.jsx(ha,{id:"cmd-assess-turns",label:n("settings.commander.assess_turns_label"),description:n("settings.commander.assess_turns_desc"),value:i.assessMaxTurns,onChange:w=>S({assessMaxTurns:w})}),c.jsx(Pe,{label:n("settings.commander.threshold_label"),description:n("settings.commander.threshold_desc"),htmlFor:"cmd-approve-threshold",children:c.jsx(Kn,{id:"cmd-approve-threshold",value:i.autoApproveThreshold,onChange:w=>S({autoApproveThreshold:w}),options:g})}),c.jsx(Pe,{label:n("settings.commander.executor_label"),description:n("settings.commander.executor_desc"),htmlFor:"cmd-executor",children:c.jsx(Kn,{id:"cmd-executor",value:i.defaultExecutor,onChange:w=>S({defaultExecutor:w}),options:Ej})})]}),c.jsxs(rt,{title:n("settings.commander.safety_card"),description:n("settings.commander.safety_desc"),children:[c.jsx(ha,{id:"cmd-debounce",label:n("settings.commander.debounce_label"),description:n("settings.commander.debounce_desc"),value:i.safety.eventDebounceMs,onChange:w=>b({eventDebounceMs:w})}),c.jsx(ha,{id:"cmd-circuit-breaker",label:n("settings.commander.circuit_breaker_label"),description:n("settings.commander.circuit_breaker_desc"),value:i.safety.circuitBreakerThreshold,onChange:w=>b({circuitBreakerThreshold:w})}),c.jsx(ha,{id:"cmd-max-ticks",label:n("settings.commander.max_ticks_label"),description:n("settings.commander.max_ticks_desc"),value:i.safety.maxTicksPerHour,onChange:w=>b({maxTicksPerHour:w})}),c.jsx(ha,{id:"cmd-max-tokens",label:n("settings.commander.max_tokens_label"),description:n("settings.commander.max_tokens_desc"),value:i.safety.maxTokensPerHour,onChange:w=>b({maxTokensPerHour:w})}),c.jsx(Pe,{label:n("settings.commander.protected_paths_label"),description:n("settings.commander.protected_paths_desc"),htmlFor:"cmd-protected-paths",children:c.jsx(gn,{id:"cmd-protected-paths",value:i.safety.protectedPaths.join(", "),onChange:w=>b({protectedPaths:w.split(",").map(C=>C.trim()).filter(Boolean)}),placeholder:".env, *.key, credentials.*",className:"w-72 font-mono text-[length:var(--font-size-xs)]"})})]}),c.jsxs(rt,{title:n("settings.commander.workspace_card"),description:n("settings.commander.workspace_desc"),children:[c.jsx(Pe,{label:n("settings.commander.workspace_enabled_label"),description:n("settings.commander.workspace_enabled_desc"),children:c.jsx(In,{enabled:i.workspace.enabled,onClick:()=>E({enabled:!i.workspace.enabled})})}),c.jsx(Pe,{label:n("settings.commander.workspace_worktree_label"),description:n("settings.commander.workspace_worktree_desc"),children:c.jsx(In,{enabled:i.workspace.useWorktree,onClick:()=>E({useWorktree:!i.workspace.useWorktree})})}),c.jsx(Pe,{label:n("settings.commander.workspace_autocleanup_label"),description:n("settings.commander.workspace_autocleanup_desc"),children:c.jsx(In,{enabled:i.workspace.autoCleanup,onClick:()=>E({autoCleanup:!i.workspace.autoCleanup})})}),c.jsx(Pe,{label:n("settings.commander.workspace_strict_label"),description:n("settings.commander.workspace_strict_desc"),children:c.jsx(In,{enabled:i.workspace.strict,onClick:()=>E({strict:!i.workspace.strict})})})]}),c.jsx(Vn,{dirty:r,saving:s,onSave:()=>void f("commander"),onDiscard:()=>p("commander")})]})}function jj({section:n}){switch(n){case"general":return c.jsx(Jw,{});case"agents":return c.jsx(tj,{});case"cli-tools":return c.jsx(aj,{});case"specs":return c.jsx(nj,{});case"linear":return c.jsx(ij,{});case"kanban":return c.jsx(xj,{});case"commander":return c.jsx(wj,{});default:return null}}const Nj=["general","agents","commander","cli-tools","specs","linear","kanban"],_j={general:"cog",agents:"bot",commander:"commander","cli-tools":"terminal",specs:"file-text",linear:"linear",kanban:"kanban"};function Cj({icon:n}){const i="w-4 h-4 shrink-0";switch(n){case"cog":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("circle",{cx:"12",cy:"12",r:"3"}),c.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]});case"bot":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),c.jsx("circle",{cx:"12",cy:"5",r:"2"}),c.jsx("path",{d:"M12 7v4"}),c.jsx("line",{x1:"8",y1:"16",x2:"8",y2:"16"}),c.jsx("line",{x1:"16",y1:"16",x2:"16",y2:"16"})]});case"terminal":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("polyline",{points:"4 17 10 11 4 5"}),c.jsx("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]});case"file-text":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),c.jsx("polyline",{points:"14 2 14 8 20 8"}),c.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),c.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),c.jsx("polyline",{points:"10 9 9 9 8 9"})]});case"linear":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M3 17l6-6"}),c.jsx("path",{d:"M10 18l4-4"}),c.jsx("path",{d:"M14 20l7-7"})]});case"kanban":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"3",y:"3",width:"5",height:"18",rx:"1"}),c.jsx("rect",{x:"10",y:"3",width:"5",height:"12",rx:"1"}),c.jsx("rect",{x:"17",y:"3",width:"5",height:"15",rx:"1"})]});case"commander":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),c.jsx("path",{d:"M9 9h6"}),c.jsx("path",{d:"M9 13h6"}),c.jsx("circle",{cx:"9",cy:"9",r:"0.5",fill:"currentColor"}),c.jsx("circle",{cx:"9",cy:"13",r:"0.5",fill:"currentColor"}),c.jsx("circle",{cx:"15",cy:"9",r:"0.5",fill:"currentColor"}),c.jsx("circle",{cx:"15",cy:"13",r:"0.5",fill:"currentColor"})]});default:return null}}function Tj(){const{t:n}=St(),i=pe(S=>S.open),s=pe(S=>S.setOpen),r=pe(S=>S.activeSection),d=pe(S=>S.setActiveSection),f=pe(S=>S.loading),p=pe(S=>S.config),h=pe(S=>S.draft),x=pe(S=>!S.config||!S.draft?!1:JSON.stringify(S.config.general)!==JSON.stringify(S.draft.general)||JSON.stringify(S.config.agents)!==JSON.stringify(S.draft.agents)||S.config.cliTools!==S.draft.cliTools||JSON.stringify(S.config.linear)!==JSON.stringify(S.draft.linear)||S.config.searchTool!==S.draft.searchTool||JSON.stringify(S.config.commander)!==JSON.stringify(S.draft.commander)),g=v.useCallback(S=>{!S&&x&&!window.confirm(n("settings.unsaved_confirm"))||s(S)},[x,s]);return v.useEffect(()=>{function S(b){(b.metaKey||b.ctrlKey)&&b.key===","&&(b.preventDefault(),s(!i))}return window.addEventListener("keydown",S),()=>window.removeEventListener("keydown",S)},[i,s]),c.jsx(qw,{open:i,onOpenChange:g,children:c.jsxs(Iw,{children:[c.jsx(Kw,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),c.jsxs(Yw,{className:me("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-[900px] max-w-[95vw] h-[700px] max-h-[90vh]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-[var(--style-modal-shadow)]","flex flex-col overflow-hidden","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"),children:[c.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-6)] py-[var(--spacing-4)] border-b border-border shrink-0",children:[c.jsx(Vw,{className:"text-[length:var(--font-size-lg)] font-[var(--font-weight-semibold)] text-text-primary",children:n("settings.title")}),c.jsx(Xw,{className:me("w-8 h-8 flex items-center justify-center rounded-[var(--radius-sm)]","text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"),"aria-label":"Close settings",children:c.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),c.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[c.jsx("nav",{className:"w-56 shrink-0 border-r border-border bg-bg-secondary p-[var(--spacing-3)] overflow-y-auto","aria-label":"Settings sections",children:c.jsx("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:Nj.map(S=>c.jsxs("button",{type:"button",onClick:()=>d(S),className:me("flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-default)] text-left text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] w-full","transition-all duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",r===S?"bg-bg-active text-text-primary":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"),"aria-current":r===S?"page":void 0,children:[c.jsx(Cj,{icon:_j[S]}),c.jsx("span",{className:"truncate",children:n(`settings.nav.${S==="cli-tools"?"cli_tools":S}`)})]},S))})}),c.jsx("div",{className:"flex-1 overflow-y-auto p-[var(--spacing-6)]",children:f&&!p?c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n("settings.loading")})}):h?c.jsx(jj,{section:r}):c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n("settings.failed")})})})]})]})]})})}const Aj={idle:"#5A9E78",thinking:"#B89540",dispatching:"#5A84B8",paused:"var(--color-text-tertiary)"};function kj(){var d;const n=Gu(f=>f.supervisorStatus),i=Gu(f=>f.commanderState),s=v.useCallback(()=>{ca({action:"supervisor:toggle",enabled:!(n!=null&&n.enabled)})},[n==null?void 0:n.enabled]),r=n!=null&&n.lastTickAt?Oj(n.lastTickAt):"never";return c.jsx("div",{className:"shrink-0",children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)] px-[var(--spacing-4)] py-[var(--spacing-1-5)] border-t border-border-divider bg-bg-secondary text-[length:var(--font-size-xs)] shrink-0",children:[c.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-[var(--spacing-1)] text-text-secondary hover:text-text-primary transition-colors",children:[c.jsx("span",{className:["w-2 h-2 rounded-full",n!=null&&n.enabled?"bg-[#5A9E78]":"bg-text-tertiary"].join(" ")}),c.jsxs("span",{className:"font-[var(--font-weight-medium)]",children:["Supervisor ",n!=null&&n.enabled?"ON":"OFF"]})]}),(n==null?void 0:n.enabled)&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"w-px h-3 bg-border-divider"}),c.jsxs("span",{className:"text-text-secondary",children:["Running: ",c.jsx("span",{className:"text-text-primary font-[var(--font-weight-medium)]",children:n.running.length})]}),c.jsxs("span",{className:"text-text-secondary",children:["Queued: ",c.jsx("span",{className:"text-text-primary font-[var(--font-weight-medium)]",children:n.queued.length})]}),n.retrying.length>0&&c.jsxs("span",{className:"text-[#B89540]",children:["Retrying: ",c.jsx("span",{className:"font-[var(--font-weight-medium)]",children:n.retrying.length})]}),c.jsxs("span",{className:"text-text-tertiary",children:["Last tick: ",r]}),n.stats.totalDispatched>0&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"w-px h-3 bg-border-divider"}),c.jsxs("span",{className:"text-text-tertiary",children:[n.stats.totalCompleted,"/",n.stats.totalDispatched," done",n.stats.totalFailed>0&&c.jsxs("span",{className:"text-[#C46555]",children:[" (",n.stats.totalFailed," failed)"]})]})]})]}),i&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"w-px h-3 bg-border-divider"}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)] text-text-secondary",children:[c.jsx("span",{className:"w-2 h-2 rounded-full",style:{backgroundColor:Aj[i.status]??"var(--color-text-tertiary)"}}),c.jsxs("span",{className:"font-[var(--font-weight-medium)]",children:["Commander ",i.status]})]}),c.jsxs("span",{className:"text-text-tertiary",children:["Tick #",i.tickCount]}),((d=i.lastDecision)==null?void 0:d.actions[0])&&c.jsxs("span",{className:"text-text-tertiary",children:["Last: ",i.lastDecision.actions[0].type]})]}),c.jsx("div",{className:"flex-1"}),c.jsx(gg,{to:"/supervisor",className:"text-text-secondary hover:text-text-primary transition-colors font-[var(--font-weight-medium)]",children:"Supervisor →"})]})})}function Oj(n){const i=Date.now(),s=new Date(n).getTime();if(isNaN(s))return"never";const r=i-s;if(r<0)return"just now";const d=Math.floor(r/1e3);return d<5?"just now":d<60?`${d}s ago`:`${Math.floor(d/60)}m ago`}function Dj(){const{t:n}=St(),i=Vt(T=>T.connected),[s,r]=v.useState(!1),[d,f]=v.useState(null),[p,h]=v.useState(!1),[x,g]=v.useState(!1),S=()=>g(T=>!T),b=v0(),E=Ha(),w=E.pathname.startsWith("/kanban"),C=E.pathname.startsWith("/chat"),A=pe(T=>T.loadConfig),O=pe(T=>{var X,Y,P,Z;return((Y=(X=T.draft)==null?void 0:X.general)==null?void 0:Y.theme)??((Z=(P=T.config)==null?void 0:P.general)==null?void 0:Z.theme)});return v.useEffect(()=>{A()},[A]),v.useEffect(()=>{if(O){if(O==="system"){const T=window.matchMedia("(prefers-color-scheme: dark)"),X=()=>{document.documentElement.dataset.theme=T.matches?"dark":"light"};return X(),T.addEventListener("change",X),localStorage.setItem("theme","system"),()=>T.removeEventListener("change",X)}document.documentElement.dataset.theme=O,localStorage.setItem("theme",O)}},[O]),eE(),v.useEffect(()=>{async function T(){try{const[X,Y,P]=await Promise.all([fetch(jh.BOARD),fetch("/api/agents"),fetch(jh.HEALTH)]);if(!X.ok){r(!0);return}const Z=await X.json();if(Vt.getState().setBoard(Z),r(!1),Y.ok){const te=await Y.json(),{addProcess:H}=oa.getState();for(const Q of te)H(Q)}if(P.ok){const te=await P.json();te.workspace&&Vt.getState().setWorkspace(te.workspace),te.latestVersion&&te.version&&te.latestVersion!==te.version&&localStorage.getItem("maestro-update-dismissed")!==te.latestVersion&&f(te.latestVersion)}}catch{r(!0)}}T()},[]),c.jsx(kS,{children:c.jsx(xg,{value:b,children:c.jsxs("div",{className:"h-screen w-screen flex flex-col overflow-hidden bg-bg-primary",children:[c.jsx(Tj,{}),s&&!i&&c.jsx("div",{role:"alert","aria-live":"assertive",className:"px-[var(--spacing-4)] py-[var(--spacing-2)] border-b text-[length:var(--font-size-xs)] text-center shrink-0 rounded-[var(--radius-default)] mx-[var(--spacing-3)] mt-[var(--spacing-2)]",style:{backgroundColor:"var(--color-status-bg-blocked)",color:"var(--color-status-blocked)",borderColor:"var(--color-status-blocked)"},children:n("connection_error")}),d&&!p&&c.jsxs("div",{role:"status",className:"px-[var(--spacing-4)] py-[var(--spacing-2)] border-b text-[length:var(--font-size-xs)] shrink-0 rounded-[var(--radius-default)] mx-[var(--spacing-3)] mt-[var(--spacing-2)] flex items-center justify-center gap-[var(--spacing-2)]",style:{backgroundColor:"var(--color-status-bg-exploring)",color:"var(--color-status-exploring)",borderColor:"var(--color-status-exploring)"},children:[c.jsx("span",{children:n("update_available",{version:d})}),c.jsx("button",{type:"button",onClick:()=>{h(!0),localStorage.setItem("maestro-update-dismissed",d)},className:"ml-[var(--spacing-1)] hover:opacity-70 transition-opacity duration-[var(--duration-fast)]","aria-label":n("dismiss"),children:"×"})]}),c.jsx(j1,{}),c.jsxs("div",{className:"flex flex-1 overflow-hidden relative",children:[c.jsx(dS,{isPinned:x,onTogglePin:S}),c.jsxs(wS,{children:[c.jsx(Fb,{}),w&&c.jsx(kj,{})]})]}),!C&&c.jsx(DS,{}),!C&&c.jsx(GS,{})]})})})}const Mj=v.lazy(()=>ht(()=>import("./KanbanPage-copqjdPg.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])).then(n=>({default:n.KanbanPage}))),Rj=v.lazy(()=>ht(()=>import("./ArtifactsPage-CVh0Z2I2.js"),__vite__mapDeps([13,14,15,1,16,17,7,8,18,19,20,21])).then(n=>({default:n.ArtifactsPage}))),zj=v.lazy(()=>ht(()=>import("./ChatPage-BjJ9CYox.js"),__vite__mapDeps([22,4,5,6,7,8,9,10,23,16,15,17,24,25])).then(n=>({default:n.ChatPage}))),Lj=v.lazy(()=>ht(()=>import("./WorkflowPage-JrX7CVHh.js"),__vite__mapDeps([26,1,2,27,28,19,10,29])).then(n=>({default:n.WorkflowPage}))),Uj=v.lazy(()=>ht(()=>import("./McpPage-BcPPcJpr.js"),__vite__mapDeps([30,28,9,15,25,8,17,12,21,31,20,27,14,32])).then(n=>({default:n.McpPage}))),Bj=v.lazy(()=>ht(()=>import("./SpecsPage-ByPVH_M3.js"),__vite__mapDeps([33,1,29,28,15,18,21,10,25,31,27])).then(n=>({default:n.SpecsPage}))),Hj=v.lazy(()=>ht(()=>import("./TeamsPage-sFDLN30L.js"),__vite__mapDeps([34,28,15,8,25,35,36,37,38,21,20])).then(n=>({default:n.TeamsPage}))),Gj=v.lazy(()=>ht(()=>import("./RequirementPage-Da2354px.js"),__vite__mapDeps([39,1,6,24,25,14])).then(n=>({default:n.RequirementPage}))),qj=v.lazy(()=>ht(()=>import("./RequirementBoardPage-k8YoeQ0r.js"),__vite__mapDeps([40,18,38,32,36,3])).then(n=>({default:n.RequirementBoardPage}))),Ij=v.lazy(()=>ht(()=>import("./MaestroCoordinatePage-CioZjQ9N.js"),__vite__mapDeps([41,11])).then(n=>({default:n.MaestroCoordinatePage}))),Kj=v.lazy(()=>ht(()=>import("./CollabPage-CprGGO9y.js"),__vite__mapDeps([42,20,21])).then(n=>({default:n.CollabPage}))),Yj=v.lazy(()=>ht(()=>import("./MeetingRoomPage-BgmAKxU-.js"),__vite__mapDeps([43,9,35,36,20,21,5,6,7,8,10,23])).then(n=>({default:n.MeetingRoomPage}))),Vj=v.lazy(()=>ht(()=>import("./RoomsPage-BtqDiYaU.js"),__vite__mapDeps([44,25,37,8])).then(n=>({default:n.RoomsPage})));function Yt(){return c.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)]",children:"Loading..."})}function Xj(){return c.jsx(i0,{children:c.jsx(Wb,{children:c.jsxs(pt,{element:c.jsx(Dj,{}),children:[c.jsx(pt,{index:!0,element:c.jsx(mu,{to:"/kanban",replace:!0})}),c.jsx(pt,{path:"kanban",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Mj,{})})}),c.jsx(pt,{path:"artifacts",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Rj,{})})}),c.jsx(pt,{path:"chat",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(zj,{})})}),c.jsx(pt,{path:"workflow",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Lj,{})})}),c.jsx(pt,{path:"mcp",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Uj,{})})}),c.jsx(pt,{path:"specs",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Bj,{})})}),c.jsx(pt,{path:"wiki",element:c.jsx(mu,{to:"/artifacts",replace:!0})}),c.jsx(pt,{path:"teams",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Hj,{})})}),c.jsx(pt,{path:"requirement",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Gj,{})})}),c.jsx(pt,{path:"requirement/:id/board",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(qj,{})})}),c.jsx(pt,{path:"maestro-coordinate",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Ij,{})})}),c.jsx(pt,{path:"collab",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Kj,{})})}),c.jsx(pt,{path:"rooms",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Vj,{})})}),c.jsx(pt,{path:"meeting-room/:sessionId",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Yj,{})})}),c.jsx(pt,{path:"*",element:c.jsx(mu,{to:"/kanban",replace:!0})})]})})})}const _v=document.getElementById("root");if(!_v)throw new Error("Root element not found");Wy.createRoot(_v).render(c.jsx(v.StrictMode,{children:c.jsx(sb,{children:c.jsx(Xj,{})})}));export{Fg as $,jh as A,q1 as B,Pj as C,Qn as D,Ga as E,M1 as F,Fs as G,$s as H,e2 as I,bu as J,yn as K,gg as L,z1 as M,iE as N,Kw as O,Iw as P,Ii as Q,qw as R,Sg as S,Vw as T,Wg as U,xg as V,Jj as W,nS as X,ww as Y,UE as Z,iv as _,Vt as a,Zg as a0,vE as a1,rb as a2,Eg as a3,tS as a4,Fj as a5,$j as a6,Zj as a7,U1 as a8,H1 as a9,XS as aa,vu as ab,sS as ac,VS as ad,Qj as ae,kj as af,Qg as ag,ZS as ah,N0 as ai,xi as aj,a2 as ak,QS as al,ag as am,V1 as an,PS as ao,F1 as ap,Gu as b,zu as c,Ct as d,Ai as e,Yw as f,t2 as g,Xw as h,me as i,c as j,oa as k,Gi as l,Hl as m,O1 as n,_t as o,Q1 as p,$u as q,v as r,ca as s,sg as t,St as u,Xs as v,Wj as w,Wu as x,aE as y,Vs as z};
236
+ For more information, see https://radix-ui.com/primitives/docs/components/${i.docsSlug}`;return v.useEffect(()=>{n&&(document.getElementById(n)||console.error(s))},[s,n]),null},Hw="DialogDescriptionWarning",Gw=({contentRef:n,descriptionId:i})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Ev(Hw).contentName}}.`;return v.useEffect(()=>{var f;const d=(f=n.current)==null?void 0:f.getAttribute("aria-describedby");i&&d&&(document.getElementById(i)||console.warn(r))},[r,n,i]),null},qw=uv,Iw=mv,Kw=pv,Yw=hv,Vw=vv,Xw=bv;const wv="maestro-ui-prefs";function jv(){try{const n=localStorage.getItem(wv);return n?JSON.parse(n):{}}catch{return{}}}function Tu(n){try{localStorage.setItem(wv,JSON.stringify({...jv(),...n}))}catch{}}const Mi=jv(),Hl=_t(n=>({createModalStyle:Mi.createModalStyle??2,detailModalStyle:Mi.detailModalStyle??1,stylePreset:Mi.stylePreset??"default",setCreateModalStyle:i=>{n({createModalStyle:i}),Tu({createModalStyle:i})},setDetailModalStyle:i=>{n({detailModalStyle:i}),Tu({detailModalStyle:i})},setStylePreset:i=>{n({stylePreset:i}),Tu({stylePreset:i}),document.documentElement.dataset.style=i}}));document.documentElement.dataset.style=Mi.stylePreset??"default";function In({enabled:n,onClick:i}){return c.jsx("button",{type:"button",onClick:i,className:me("relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",n?"bg-accent-blue":"bg-border"),children:c.jsx("span",{className:me("pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow-sm","transition-transform duration-[var(--duration-fast)]",n?"translate-x-5":"translate-x-0")})})}function rt({title:n,description:i,children:s,className:r}){return c.jsxs("div",{className:me("rounded-[var(--radius-default)] border border-border bg-bg-secondary p-[var(--spacing-4)]",r),children:[c.jsxs("div",{className:"mb-[var(--spacing-3)]",children:[c.jsx("h3",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:n}),i&&c.jsx("p",{className:"mt-[var(--spacing-1)] text-[length:var(--font-size-xs)] text-text-secondary",children:i})]}),s]})}function Pe({label:n,description:i,htmlFor:s,children:r}){return c.jsxs("div",{className:"flex items-start justify-between gap-[var(--spacing-4)] py-[var(--spacing-2)]",children:[c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("label",{htmlFor:s,className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary",children:n}),i&&c.jsx("p",{className:"mt-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-secondary",children:i})]}),c.jsx("div",{className:"shrink-0",children:r})]})}function gn({id:n,value:i,onChange:s,placeholder:r,className:d,type:f="text"}){return c.jsx("input",{id:n,type:f,value:i,onChange:p=>s(p.target.value),placeholder:r,className:me("w-48 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary",d)})}function Kn({id:n,value:i,onChange:s,options:r,className:d}){return c.jsx("select",{id:n,value:i,onChange:f=>s(f.target.value),className:me("w-48 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]",d),children:r.map(f=>c.jsx("option",{value:f.value,children:f.label},f.value))})}function Vn({dirty:n,saving:i,onSave:s,onDiscard:r}){if(!n)return null;const{t:d}=St();return c.jsxs("div",{className:"sticky bottom-0 left-0 right-0 flex items-center justify-end gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-3)] border-t border-border bg-bg-secondary/95 backdrop-blur-sm",children:[c.jsx("button",{type:"button",onClick:r,disabled:i,className:me("px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","border border-border text-text-secondary","hover:bg-bg-hover hover:text-text-primary","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50 disabled:pointer-events-none"),children:d("settings.discard")}),c.jsx("button",{type:"button",onClick:s,disabled:i,className:me("px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","bg-accent-blue text-white","hover:opacity-90","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50 disabled:pointer-events-none"),children:d(i?"settings.saving":"settings.save")})]})}const Qw=["default","cowork"],Pw={default:"settings.general.style_default",cowork:"settings.general.style_cowork"};function Zw(){const{t:n}=St(),i=Hl(r=>r.stylePreset),s=Hl(r=>r.setStylePreset);return c.jsx(Pe,{label:n("settings.general.style_preset_label"),description:n("settings.general.style_preset_desc"),children:c.jsx("div",{className:"flex items-center gap-[var(--spacing-1)]",children:Qw.map(r=>c.jsx("button",{type:"button",onClick:()=>s(r),className:me("px-3 py-1 rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] transition-all duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",i===r?"bg-accent-blue text-white":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"),children:n(Pw[r])},r))})})}function Jw(){const{t:n}=St(),i=Vt(C=>C.connected),s=pe(C=>{var A;return(A=C.draft)==null?void 0:A.general}),r=pe(C=>C.saving),d=pe(C=>C.isDirty("general")),f=pe(C=>C.updateDraft),p=pe(C=>C.saveConfig),h=pe(C=>C.discardDraft),x=pe(C=>{var A;return((A=C.draft)==null?void 0:A.searchTool)??"mcp__ace-tool__search_context"}),g=pe(C=>C.isDirty("searchTool")),S=pe(C=>C.chineseResponse),b=pe(C=>C.loadChineseResponse),E=pe(C=>C.toggleChineseResponse);if(v.useEffect(()=>{b()},[b]),!s)return null;const w=C=>{f("general",{...s,...C})};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsx(rt,{title:n("settings.general.connection_card"),description:n("settings.general.connection_desc"),children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${i?"bg-status-completed":"bg-status-blocked"}`}),c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-primary",children:n(i?"settings.general.connected":"settings.general.disconnected")})]})}),c.jsxs(rt,{title:n("settings.general.appearance_card"),description:n("settings.general.appearance_desc"),children:[c.jsx(Pe,{label:n("settings.general.theme_label"),description:n("settings.general.theme_desc"),htmlFor:"settings-theme",children:c.jsx(Kn,{id:"settings-theme",value:s.theme,onChange:C=>w({theme:C}),options:[{value:"system",label:n("settings.general.theme_system")},{value:"dark",label:n("settings.general.theme_dark")},{value:"light",label:n("settings.general.theme_light")}]})}),c.jsx(Pe,{label:n("settings.general.language_label"),description:n("settings.general.language_desc"),htmlFor:"settings-language",children:c.jsx(Kn,{id:"settings-language",value:s.language,onChange:C=>w({language:C}),options:[{value:"en",label:"English"},{value:"zh-CN",label:"中文"}]})}),c.jsx(Zw,{})]}),c.jsx(rt,{title:"Navigation",description:"Show or hide navigation items from the sidebar.",children:c.jsx($w,{draft:s,update:w})}),c.jsxs(rt,{title:n("settings.general.search_tool_card"),description:n("settings.general.search_tool_desc"),children:[c.jsx(Pe,{label:n("settings.general.search_tool_label"),description:n("settings.general.search_tool_desc"),htmlFor:"settings-search-tool",children:c.jsx(gn,{id:"settings-search-tool",value:x,onChange:C=>f("searchTool",C),placeholder:"mcp__ace-tool__search_context",className:"w-72 font-mono text-[length:var(--font-size-xs)]"})}),c.jsx(Vn,{dirty:g,saving:r,onSave:()=>void p("searchTool"),onDiscard:()=>h("searchTool")})]}),S&&c.jsxs(rt,{title:n("settings.general.response_lang_card"),description:n("settings.general.response_lang_desc"),children:[c.jsx(Pe,{label:n("settings.general.chinese_claude_label"),description:n("settings.general.chinese_claude_desc"),children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-accent-blue bg-accent-blue/10 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)]",children:"Claude"}),c.jsx(In,{enabled:S.claudeEnabled,onClick:()=>void E(!S.claudeEnabled,"claude")})]})}),c.jsx(Pe,{label:n("settings.general.chinese_codex_label"),description:n("settings.general.chinese_codex_desc"),children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-green-400 bg-green-400/10 px-[var(--spacing-1-5)] py-0.5 rounded-[var(--radius-sm)]",children:"Codex"}),c.jsx(In,{enabled:S.codexEnabled,onClick:()=>void E(!S.codexEnabled,"codex")})]})}),S.codexNeedsMigration&&c.jsx("div",{className:"mt-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)] bg-status-blocked/10 border border-status-blocked/30",children:c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked",children:n("settings.general.codex_migrate_hint")})}),!S.guidelinesExists&&c.jsx("div",{className:"mt-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)] bg-status-blocked/10 border border-status-blocked/30",children:c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked",children:n("settings.general.guidelines_missing")})})]}),c.jsx(Vn,{dirty:d,saving:r,onSave:()=>void p("general"),onDiscard:()=>h("general")})]})}const Fw=[{path:"/maestro-coordinate",label:"Dispatch Center"},{path:"/requirement",label:"Requirement"},{path:"/rooms",label:"Meeting Room"}];function $w({draft:n,update:i}){const s=n.hiddenNavItems??["/maestro-coordinate","/requirement","/rooms"],r=d=>{const f=s.includes(d)?s.filter(p=>p!==d):[...s,d];i({hiddenNavItems:f})};return c.jsx("div",{className:"flex flex-col gap-2",children:Fw.map(d=>{const f=!s.includes(d.path);return c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-primary",children:d.label}),c.jsx(In,{enabled:f,onClick:()=>r(d.path)})]},d.path)})})}const Ww={"claude-code":{apiKeyLabel:"API Key",apiKeyPlaceholder:"sk-ant-...",apiKeyEnvHint:"ANTHROPIC_API_KEY",showBaseUrl:!0,baseUrlPlaceholder:"https://api.anthropic.com",showSettingsFile:!0,settingsFileDescription:"Path to Claude Code settings JSON (maps model aliases, sets env vars)"},"agent-sdk":{apiKeyLabel:"API Key",apiKeyPlaceholder:"sk-ant-...",apiKeyEnvHint:"ANTHROPIC_API_KEY",showBaseUrl:!0,baseUrlPlaceholder:"https://api.anthropic.com",showSettingsFile:!0,settingsFileDescription:"Path to Claude Code settings JSON (maps model aliases, sets env vars)"},codex:{apiKeyLabel:"OpenAI API Key",apiKeyPlaceholder:"sk-...",apiKeyEnvHint:"OPENAI_API_KEY",showBaseUrl:!1,showSettingsFile:!0,settingsFileLabel:"Profile",settingsFilePlaceholder:"my-profile",settingsFileDescription:"Profile name from ~/.codex/config.toml (passed as --profile)"},"codex-server":{apiKeyLabel:"OpenAI API Key",apiKeyPlaceholder:"sk-...",apiKeyEnvHint:"OPENAI_API_KEY",showBaseUrl:!1,showSettingsFile:!0,settingsFileLabel:"Profile",settingsFilePlaceholder:"my-profile",settingsFileDescription:"Profile name from ~/.codex/config.toml"},gemini:{apiKeyLabel:"Gemini API Key",apiKeyPlaceholder:"AIza...",apiKeyEnvHint:"GEMINI_API_KEY",showBaseUrl:!1,showSettingsFile:!1},"gemini-a2a":{apiKeyLabel:"Gemini API Key",apiKeyPlaceholder:"AIza...",apiKeyEnvHint:"GEMINI_API_KEY",showBaseUrl:!1,showSettingsFile:!1},qwen:{apiKeyLabel:"DashScope API Key",apiKeyPlaceholder:"sk-...",apiKeyEnvHint:"DASHSCOPE_API_KEY",showBaseUrl:!1,showSettingsFile:!1},opencode:{apiKeyLabel:"API Key",apiKeyPlaceholder:"",apiKeyEnvHint:"OPENAI_API_KEY",showBaseUrl:!1,showSettingsFile:!1}},ej=[{type:"claude-code",label:"Claude Code"},{type:"agent-sdk",label:"Agent SDK"},{type:"codex",label:"Codex"},{type:"gemini",label:"Gemini"},{type:"gemini-a2a",label:"Gemini (A2A)"},{type:"qwen",label:"Qwen"},{type:"opencode",label:"OpenCode"}];function tj(){const{t:n}=St(),i=pe(E=>{var w;return(w=E.draft)==null?void 0:w.agents}),s=pe(E=>E.saving),r=pe(E=>E.isDirty("agents")),d=pe(E=>E.updateDraft),f=pe(E=>E.saveConfig),p=pe(E=>E.discardDraft),[h,x]=v.useState(null),g=E=>n({"claude-code":"settings.agents.claude_code_desc","agent-sdk":"settings.agents.agent_sdk_desc",codex:"settings.agents.codex_desc",gemini:"settings.agents.gemini_desc","gemini-a2a":"settings.agents.gemini_desc",qwen:"settings.agents.qwen_desc",opencode:"settings.agents.opencode_desc"}[E]??"settings.agents.claude_code_desc");if(!i)return null;const S=(E,w)=>{d("agents",{...i,[E]:{...i[E],...w}})},b=E=>{x(w=>w===E?null:E)};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[ej.map(({type:E,label:w})=>{const C=i[E],A=h===E,O=Ww[E];return c.jsxs(rt,{title:w,description:g(E),children:[c.jsx("button",{type:"button",onClick:()=>b(E),className:me("w-full text-left text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:n(A?"settings.agents.hide_config":"settings.agents.show_config")}),A&&c.jsxs("div",{className:"mt-[var(--spacing-3)] border-t border-border-divider pt-[var(--spacing-3)]",children:[c.jsx(Pe,{label:n("settings.agents.model_label"),description:n("settings.agents.model_desc"),htmlFor:`agent-model-${E}`,children:c.jsx(gn,{id:`agent-model-${E}`,value:C.model,onChange:T=>S(E,{model:T}),placeholder:n("settings.agents.model_placeholder")})}),c.jsx(Pe,{label:n("settings.agents.approval_label"),description:n("settings.agents.approval_desc"),htmlFor:`agent-approval-${E}`,children:c.jsx(Kn,{id:`agent-approval-${E}`,value:C.approvalMode,onChange:T=>S(E,{approvalMode:T}),options:[{value:"suggest",label:n("settings.agents.approval_suggest")},{value:"auto",label:n("settings.agents.approval_auto")}]})}),(O==null?void 0:O.showBaseUrl)&&c.jsx(Pe,{label:n("settings.agents.base_url_label"),description:n("settings.agents.base_url_desc"),htmlFor:`agent-baseurl-${E}`,children:c.jsx(gn,{id:`agent-baseurl-${E}`,value:C.baseUrl??"",onChange:T=>S(E,{baseUrl:T}),placeholder:O.baseUrlPlaceholder??""})}),O&&c.jsx(Pe,{label:O.apiKeyLabel,description:`Overrides ${O.apiKeyEnvHint} env var`,htmlFor:`agent-apikey-${E}`,children:c.jsx(gn,{id:`agent-apikey-${E}`,value:C.apiKey??"",onChange:T=>S(E,{apiKey:T}),placeholder:O.apiKeyPlaceholder,type:"password"})}),(O==null?void 0:O.showSettingsFile)&&c.jsx(Pe,{label:O.settingsFileLabel??n("settings.agents.settings_file_label"),description:O.settingsFileDescription??n("settings.agents.settings_file_desc"),htmlFor:`agent-settings-file-${E}`,children:c.jsx(gn,{id:`agent-settings-file-${E}`,value:C.settingsFile??"",onChange:T=>S(E,{settingsFile:T}),placeholder:O.settingsFilePlaceholder??"D:\\settings.json"})}),c.jsx(Pe,{label:n("settings.agents.env_file_label"),description:n("settings.agents.env_file_desc"),htmlFor:`agent-envfile-${E}`,children:c.jsx(gn,{id:`agent-envfile-${E}`,value:C.envFile??"",onChange:T=>S(E,{envFile:T}),placeholder:"~/.env.gemini"})})]})]},E)}),c.jsx(Vn,{dirty:r,saving:s,onSave:()=>void f("agents"),onDiscard:()=>p("agents")})]})}function aj(){const{t:n}=St(),i=pe(b=>{var E;return((E=b.draft)==null?void 0:E.cliTools)??"{}"}),s=pe(b=>b.saving),r=pe(b=>b.isDirty("cliTools")),d=pe(b=>b.updateDraft),f=pe(b=>b.saveConfig),p=pe(b=>b.discardDraft),[h,x]=v.useState(null),g=v.useCallback(b=>{d("cliTools",b);try{JSON.parse(b),x(null)}catch(E){x(E instanceof Error?E.message:"Invalid JSON")}},[d]),S=v.useCallback(()=>{try{const b=JSON.parse(i),E=JSON.stringify(b,null,2);d("cliTools",E),x(null)}catch{}},[i,d]);return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsxs(rt,{title:n("settings.cli_tools.config_card"),description:n("settings.cli_tools.config_desc"),children:[c.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:"~/.maestro/cli-tools.json"}),c.jsx("button",{type:"button",onClick:S,className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:n("settings.cli_tools.format_json")})]}),c.jsx("textarea",{value:i,onChange:b=>g(b.target.value),spellCheck:!1,className:me("w-full h-80 px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)]","border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","font-mono leading-relaxed resize-y","focus:outline-none focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]",h?"border-status-blocked":"border-border focus:border-accent-blue")}),h&&c.jsx("p",{className:"mt-[var(--spacing-1)] text-[length:var(--font-size-xs)] text-status-blocked",children:h})]}),c.jsx(Vn,{dirty:r&&!h,saving:s,onSave:()=>void f("cliTools"),onDiscard:()=>{p("cliTools"),x(null)}})]})}function nj(){const{t:n}=St(),[i,s]=v.useState([]),[r,d]=v.useState(!0),[f,p]=v.useState(null);return v.useEffect(()=>{let h=!1;async function x(){try{const g=await fetch("/api/settings/specs");if(!g.ok)throw new Error(`Failed to load specs: ${g.status}`);const S=await g.json();h||(s(S.specs??[]),d(!1))}catch(g){h||(p(g instanceof Error?g.message:"Failed to load specs"),d(!1))}}return x(),()=>{h=!0}},[]),r?c.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-8)]",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n("settings.specs.loading")})}):f?c.jsx(rt,{title:n("settings.specs.error_card"),description:n("settings.specs.error_desc"),children:c.jsx("p",{className:"text-[length:var(--font-size-sm)] text-status-blocked",children:f})}):i.length===0?c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-6)]",children:[c.jsx(rt,{title:n("settings.specs.empty_card"),description:n("settings.specs.empty_desc"),children:c.jsx("p",{className:"text-[length:var(--font-size-sm)] text-text-secondary italic",children:n("settings.specs.empty_hint")})}),c.jsx(eg,{})]}):c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-6)]",children:[c.jsx("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:i.map(h=>c.jsx(rt,{title:h.name,description:h.path,children:h.createdAt&&c.jsxs("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:[n("settings.specs.created"),": ",h.createdAt]})},h.name))}),c.jsx(eg,{})]})}function Is({label:n,onRemove:i,variant:s="default"}){const r=s==="include"?"bg-status-active/15 text-status-active border-status-active/30":s==="exclude"?"bg-status-blocked/15 text-status-blocked border-status-blocked/30":"bg-bg-hover text-text-secondary border-border";return c.jsxs("span",{className:me("inline-flex items-center gap-[var(--spacing-1)] px-[var(--spacing-2)] py-[var(--spacing-0-5)]","rounded-[var(--radius-sm)] border text-[length:var(--font-size-xs)]",r),children:[n,c.jsx("button",{type:"button",onClick:i,className:"ml-[var(--spacing-0-5)] text-current opacity-60 hover:opacity-100 focus-visible:outline-none","aria-label":`Remove ${n}`,children:"x"})]})}function Ks({placeholder:n,onAdd:i}){const[s,r]=v.useState(""),d=f=>{f.key==="Enter"&&s.trim()&&(f.preventDefault(),i(s.trim()),r(""))};return c.jsx("input",{type:"text",value:s,onChange:f=>r(f.target.value),onKeyDown:d,placeholder:n,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary w-40")})}function Ys({title:n,description:i,expanded:s,onToggle:r,children:d}){return c.jsxs("div",{className:"border border-border rounded-[var(--radius-default)] overflow-hidden",children:[c.jsxs("button",{type:"button",onClick:r,className:me("w-full flex items-center justify-between px-[var(--spacing-4)] py-[var(--spacing-3)]","bg-bg-secondary hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"),children:[c.jsxs("div",{className:"text-left",children:[c.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:n}),i&&c.jsx("p",{className:"mt-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-secondary",children:i})]}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary shrink-0 ml-[var(--spacing-2)]",children:s?"[-]":"[+]"})]}),s&&c.jsx("div",{className:"px-[var(--spacing-4)] py-[var(--spacing-3)] border-t border-border bg-bg-primary",children:d})]})}const lj={coding:"bg-accent-blue/15 text-accent-blue border-accent-blue/30",arch:"bg-accent-purple/15 text-accent-purple border-accent-purple/30",debug:"bg-accent-orange/15 text-accent-orange border-accent-orange/30",test:"bg-accent-green/15 text-accent-green border-accent-green/30",review:"bg-accent-yellow/15 text-accent-yellow border-accent-yellow/30",learning:"bg-status-active/15 text-status-active border-status-active/30",ui:"bg-accent-purple/15 text-accent-purple border-accent-purple/30"};function Nv(n){return lj[n]??"bg-bg-hover text-text-secondary border-border"}function Ku({name:n}){return c.jsx("span",{className:me("inline-flex items-center px-[var(--spacing-1-5)] py-[var(--spacing-0-5)]","rounded-full border text-[length:var(--font-size-xs)]",Nv(n)),children:n})}function Ti({paths:n,onChange:i,placeholder:s,suggestions:r}){const[d,f]=v.useState(""),[p,h]=v.useState(!1),x=b=>b.trim()?/^[.\/~]|^\w/.test(b)&&!b.includes(" ")||b.includes("/")||b.includes("."):!1,g=b=>{const E=b.trim();E&&!n.includes(E)&&i([...n,E]),f(""),h(!1)},S=(r??[]).filter(b=>!n.includes(b)&&(!d||b.toLowerCase().includes(d.toLowerCase())));return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-1-5)]",children:[n.map((b,E)=>c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary font-mono truncate flex-1 min-w-0",children:b}),c.jsx("span",{className:me("text-[length:var(--font-size-xs)] shrink-0",x(b)?"text-accent-green":"text-accent-orange"),children:x(b)?"[ok]":"[?]"}),c.jsx("button",{type:"button",onClick:()=>i(n.filter((w,C)=>C!==E)),className:"text-[length:var(--font-size-xs)] text-status-blocked opacity-60 hover:opacity-100 shrink-0 focus-visible:outline-none","aria-label":`Remove ${b}`,children:"x"})]},`${b}-${E}`)),c.jsxs("div",{className:"relative",children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[c.jsx("input",{type:"text",value:d,onChange:b=>{f(b.target.value),h(!0)},onFocus:()=>h(!0),onBlur:()=>{setTimeout(()=>h(!1),200)},onKeyDown:b=>{b.key==="Enter"&&d.trim()&&(b.preventDefault(),g(d))},placeholder:s,className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary w-56")}),d&&c.jsx("span",{className:me("text-[length:var(--font-size-xs)] shrink-0",x(d)?"text-accent-green":"text-accent-orange"),children:x(d)?"[ok]":"[?]"})]}),p&&S.length>0&&c.jsx("div",{className:me("absolute top-full left-0 mt-[var(--spacing-0-5)] z-10","border border-border rounded-[var(--radius-sm)] bg-bg-secondary shadow-lg","max-h-32 overflow-y-auto w-56"),children:S.map(b=>c.jsx("button",{type:"button",onMouseDown:E=>E.preventDefault(),onClick:()=>g(b),className:me("w-full text-left px-[var(--spacing-2)] py-[var(--spacing-1)]","text-[length:var(--font-size-xs)] text-text-secondary font-mono","hover:bg-bg-hover hover:text-text-primary","transition-colors duration-[var(--duration-fast)]"),children:b},b))})]})]})}function sj({config:n,defaults:i,onQuickBind:s}){const[r,d]=v.useState(""),[f,p]=v.useState(null),[h,x]=v.useState({}),g=v.useMemo(()=>{var C,A;const E=new Map,w=(O,T,X,Y)=>{E.has(O)||E.set(O,[]),E.get(O).push({agents:[T],type:X,source:Y})};for(const[O,T]of Object.entries(n.mapping??{})){for(const X of T.includeKeywords??[])w(X,O,"include","agent");for(const X of T.excludeKeywords??[])w(X,O,"exclude","agent")}for(const O of((C=n.keywordFilters)==null?void 0:C.include)??[])w(O,"(global)","include","global");for(const O of((A=n.keywordFilters)==null?void 0:A.exclude)??[])w(O,"(global)","exclude","global");return E},[n]),S=v.useMemo(()=>{const E=Array.from(g.keys()).sort();if(!r.trim())return E;const w=r.toLowerCase();return E.filter(C=>C.toLowerCase().includes(w))},[g,r]),b=Object.keys(i.agentCategoryMap);return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[c.jsx("div",{children:c.jsx("input",{type:"text",value:r,onChange:E=>d(E.target.value),placeholder:"Filter or type a new keyword...",className:me("w-full px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary")})}),S.length===0?c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary italic",children:g.size===0?"No keywords configured yet. Add keywords to agent mappings or global filters below.":"No keywords match the filter."}):c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1-5)]",children:S.map(E=>{const w=g.get(E)??[],C=w.some(Y=>Y.type==="include"),A=w.some(Y=>Y.type==="exclude"),O=f===E,T=A&&!C?"exclude":C?"include":"default",X=T==="include"?"bg-status-active/15 text-status-active border-status-active/30":T==="exclude"?"bg-status-blocked/15 text-status-blocked border-status-blocked/30":"bg-bg-hover text-text-secondary border-border";return c.jsxs("div",{className:"relative",children:[c.jsxs("button",{type:"button",onClick:()=>p(O?null:E),className:me("inline-flex items-center gap-[var(--spacing-1)] px-[var(--spacing-2)] py-[var(--spacing-0-5)]","rounded-[var(--radius-sm)] border text-[length:var(--font-size-xs)]","cursor-pointer transition-opacity duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",X,O&&"ring-1 ring-accent-blue"),children:[E,c.jsxs("span",{className:"text-[length:10px] opacity-60",children:["(",w.length,")"]})]}),O&&c.jsx("div",{className:me("absolute top-full left-0 mt-[var(--spacing-1)] z-20","border border-border rounded-[var(--radius-sm)] bg-bg-secondary shadow-lg","p-[var(--spacing-2)] min-w-48"),children:c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-1-5)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-primary",children:"Referenced by:"}),w.map((Y,P)=>c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)] text-[length:var(--font-size-xs)]",children:[c.jsx("span",{className:me("px-[var(--spacing-1)] rounded-[2px]",Y.type==="include"?"bg-status-active/15 text-status-active":"bg-status-blocked/15 text-status-blocked"),children:Y.type}),c.jsx("span",{className:"text-text-secondary",children:Y.agents[0]})]},P)),c.jsxs("div",{className:"border-t border-border-divider pt-[var(--spacing-1-5)] mt-[var(--spacing-0-5)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Quick Bind:"}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[c.jsxs("select",{value:h[E]??"",onChange:Y=>x(P=>({...P,[E]:Y.target.value})),className:me("flex-1 px-[var(--spacing-1)] py-[var(--spacing-0-5)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue"),children:[c.jsx("option",{value:"",disabled:!0,children:"Agent..."}),b.map(Y=>c.jsx("option",{value:Y,children:Y},Y))]}),c.jsx("button",{type:"button",disabled:!h[E],onClick:()=>{h[E]&&(s(E,h[E]),p(null),x(Y=>{const P={...Y};return delete P[E],P}))},className:me("px-[var(--spacing-1-5)] py-[var(--spacing-0-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","bg-accent-blue text-white","hover:opacity-90 transition-opacity duration-[var(--duration-fast)]","disabled:opacity-40 disabled:pointer-events-none","focus-visible:outline-none"),children:"+Add"})]})]})]})})]},E)})})]})}function rj({agent:n,mapping:i,defaults:s,config:r,onClose:d}){var A,O,T,X,Y,P;const f=s.agentCategoryMap[n]??[],p=i.categories??f,h=[...((A=r.keywordFilters)==null?void 0:A.include)??[],...i.includeKeywords??[]],x=[...((O=r.keywordFilters)==null?void 0:O.exclude)??[],...i.excludeKeywords??[]],g=[];for(const Z of p){const te=s.categoryFileMap[Z];te&&g.push(te);const H=(T=r.categoryDocs)==null?void 0:T[Z];H!=null&&H.specFiles&&g.push(...H.specFiles),H!=null&&H.docs&&g.push(...H.docs)}const S=((X=r.always)==null?void 0:X.docs)??[],b=((Y=r.always)==null?void 0:Y.keywords)??[],E=((P=r.always)==null?void 0:P.categories)??[],w=i.extras??[],C=v.useRef(null);return v.useEffect(()=>{const Z=te=>{C.current&&!C.current.contains(te.target)&&d()};return document.addEventListener("mousedown",Z),()=>document.removeEventListener("mousedown",Z)},[d]),c.jsxs("div",{ref:C,className:me("absolute top-full right-0 mt-[var(--spacing-1)] z-20","border border-border rounded-[var(--radius-sm)] bg-bg-secondary shadow-lg","p-[var(--spacing-3)] min-w-64 max-w-80"),children:[c.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-2)]",children:[c.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary",children:["Effective Injection: ",n]}),c.jsx("button",{type:"button",onClick:d,className:"text-[length:var(--font-size-xs)] text-text-tertiary hover:text-text-primary focus-visible:outline-none",children:"[x]"})]}),c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-2)] text-[length:var(--font-size-xs)]",children:[c.jsxs("div",{children:[c.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:"Categories:"}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1)]",children:p.length>0?p.map(Z=>c.jsx(Ku,{name:Z},Z)):c.jsx("span",{className:"text-text-tertiary italic",children:"none"})})]}),c.jsxs("div",{children:[c.jsxs("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:["Spec Files (",g.length,"):"]}),g.length>0?c.jsx("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:g.map((Z,te)=>c.jsx("span",{className:"text-text-secondary font-mono truncate",children:Z},`${Z}-${te}`))}):c.jsx("span",{className:"text-text-tertiary italic",children:"none"})]}),(h.length>0||x.length>0)&&c.jsxs("div",{children:[c.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:"Keyword Filters:"}),h.length>0&&c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-0-5)] mb-[var(--spacing-0-5)]",children:h.map((Z,te)=>c.jsxs("span",{className:"px-[var(--spacing-1)] rounded-[2px] bg-status-active/15 text-status-active",children:["+",Z]},`inc-${Z}-${te}`))}),x.length>0&&c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-0-5)]",children:x.map((Z,te)=>c.jsxs("span",{className:"px-[var(--spacing-1)] rounded-[2px] bg-status-blocked/15 text-status-blocked",children:["-",Z]},`exc-${Z}-${te}`))})]}),(S.length>0||b.length>0||E.length>0)&&c.jsxs("div",{children:[c.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:"Always (session start):"}),c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:[S.map((Z,te)=>c.jsx("span",{className:"text-text-secondary font-mono truncate",children:Z},`doc-${Z}-${te}`)),b.map((Z,te)=>c.jsxs("span",{className:"text-accent-green text-[length:var(--font-size-xs)]",children:["kw:",Z]},`kw-${Z}-${te}`)),E.map((Z,te)=>c.jsxs("span",{className:"text-accent-purple text-[length:var(--font-size-xs)]",children:["cat:",Z]},`cat-${Z}-${te}`))]})]}),w.length>0&&c.jsxs("div",{children:[c.jsxs("span",{className:"font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-0-5)]",children:["Extra Docs (",w.length,"):"]}),c.jsx("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:w.map((Z,te)=>c.jsx("span",{className:"text-text-secondary font-mono truncate",children:Z},`${Z}-${te}`))})]})]})]})}const Au=[".workflow/docs/",".workflow/knowhow/","docs/",".workflow/specs/",".maestro/specs/",".maestro/knowhow/"];function eg(){var $,N,I,ee;St();const[n,i]=v.useState({}),[s,r]=v.useState(null),[d,f]=v.useState("{}"),[p,h]=v.useState(!0),[x,g]=v.useState(null),[S,b]=v.useState(!1),[E,w]=v.useState({}),[C,A]=v.useState({}),[O,T]=v.useState(!1),[X,Y]=v.useState(!1),[P,Z]=v.useState(null),te=JSON.stringify(n)!==d;v.useEffect(()=>{let D=!1;async function B(){try{const q=await fetch("/api/settings/spec-injection");if(!q.ok)throw new Error(`Failed to load spec injection config: ${q.status}`);const ae=await q.json();D||(i(ae.config??{}),f(JSON.stringify(ae.config??{})),r(ae.defaults),h(!1))}catch(q){D||(g(q instanceof Error?q.message:"Failed to load config"),h(!1))}}return B(),()=>{D=!0}},[]);const H=v.useCallback(async()=>{b(!0);try{const D=await fetch("/api/settings/spec-injection",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!D.ok)throw new Error(`Save failed: ${D.status}`);f(JSON.stringify(n))}catch(D){g(D instanceof Error?D.message:"Save failed")}finally{b(!1)}},[n]),Q=v.useCallback(()=>{i(JSON.parse(d)),g(null)},[d]),fe=D=>{w(B=>({...B,[D]:!B[D]}))},He=D=>{A(B=>({...B,[D]:!B[D]}))},Ae=(D,B)=>{i(q=>{var ae;return{...q,mapping:{...q.mapping,[D]:{...(ae=q.mapping)==null?void 0:ae[D],...B}}}})},ze=D=>{i(B=>{const q={...B.mapping};return delete q[D],{...B,mapping:Object.keys(q).length>0?q:void 0}})},F=(D,B)=>{i(q=>{var ae;return{...q,categoryDocs:{...q.categoryDocs,[D]:{...(ae=q.categoryDocs)==null?void 0:ae[D],...B}}}})},Te=D=>{i(B=>{const q={...B.categoryDocs};return delete q[D],{...B,categoryDocs:Object.keys(q).length>0?q:void 0}})},qe=v.useCallback((D,B)=>{i(q=>{var Ie;const ae=((Ie=q.mapping)==null?void 0:Ie[B])??{},Se=ae.includeKeywords??[];if(Se.includes(D))return q;const oe=(s==null?void 0:s.agentCategoryMap[B])??[];return{...q,mapping:{...q.mapping,[B]:{...ae,categories:ae.categories??[...oe],includeKeywords:[...Se,D]}}}})},[s]);if(p)return c.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-4)]",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:"Loading injection config..."})});if(!s)return null;const L=Object.keys(n.mapping??{}),J=Object.keys(s.agentCategoryMap).filter(D=>!L.includes(D)),ie=Object.keys(n.categoryDocs??{}),be=s.validCategories.filter(D=>!ie.includes(D));return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[c.jsxs("div",{className:"mb-[var(--spacing-1)]",children:[c.jsx("h3",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary",children:"Spec Injection Config"}),c.jsx("p",{className:"mt-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-secondary",children:"Configure which specs and docs are injected into agent contexts"})]}),x&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-status-blocked px-[var(--spacing-1)]",children:x}),c.jsx(Ys,{title:"Keyword Browser",description:"Discover and manage keywords referenced across agent mappings and global filters",expanded:!!E["keywords-browser"],onToggle:()=>fe("keywords-browser"),children:c.jsx(sj,{config:n,defaults:s,onQuickBind:qe})}),c.jsxs(Ys,{title:"Agent Mappings",description:"Per-agent category overrides, keyword filters, and extra docs",expanded:!!E.agents,onToggle:()=>fe("agents"),children:[L.length===0&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary italic mb-[var(--spacing-2)]",children:"No custom agent mappings. Defaults are used for all agents."}),c.jsx("div",{className:"flex flex-col gap-[var(--spacing-2)]",children:L.map(D=>{const B=n.mapping[D],q=s.agentCategoryMap[D]??[],ae=!!C[D],Se=B.categories??q,oe=(B.includeKeywords??[]).length,Ie=(B.excludeKeywords??[]).length;return c.jsxs("div",{className:"border border-border-divider rounded-[var(--radius-sm)]",children:[c.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-3)] py-[var(--spacing-2)]",children:[c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("button",{type:"button",onClick:()=>He(D),className:"text-left text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary hover:text-accent-blue focus-visible:outline-none",children:D}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)] mt-[var(--spacing-0-5)]",children:[Se.map(je=>c.jsx(Ku,{name:je},je)),oe>0&&c.jsxs("span",{className:"text-[length:10px] px-[var(--spacing-1)] rounded-[2px] bg-status-active/15 text-status-active",children:["+",oe," kw"]}),Ie>0&&c.jsxs("span",{className:"text-[length:10px] px-[var(--spacing-1)] rounded-[2px] bg-status-blocked/15 text-status-blocked",children:["-",Ie," kw"]}),(B.extras??[]).length>0&&c.jsxs("span",{className:"text-[length:10px] px-[var(--spacing-1)] rounded-[2px] bg-bg-hover text-text-tertiary",children:[(B.extras??[]).length," docs"]})]})]}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] shrink-0 relative",children:[c.jsx("button",{type:"button",onClick:()=>Z(P===D?null:D),className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-purple hover:text-accent-purple/80 focus-visible:outline-none"),children:"test"}),c.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:ae?"[-]":"[+]"}),c.jsx("button",{type:"button",onClick:()=>ze(D),className:"text-[length:var(--font-size-xs)] text-status-blocked opacity-60 hover:opacity-100 focus-visible:outline-none","aria-label":`Remove ${D}`,children:"remove"}),P===D&&c.jsx(rj,{agent:D,mapping:B,defaults:s,config:n,onClose:()=>Z(null)})]})]}),ae&&c.jsxs("div",{className:"px-[var(--spacing-3)] pb-[var(--spacing-3)] border-t border-border-divider pt-[var(--spacing-2)] flex flex-col gap-[var(--spacing-3)]",children:[c.jsxs("div",{children:[c.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:["Categories",c.jsxs("span",{className:"font-normal text-text-tertiary ml-[var(--spacing-1)]",children:["(default: ",q.join(", ")||"none",")"]})]}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1-5)]",children:s.validCategories.map(je=>{const Qe=(B.categories??q).includes(je);return c.jsxs("label",{className:me("flex items-center gap-[var(--spacing-1)] text-[length:var(--font-size-xs)] cursor-pointer","px-[var(--spacing-1-5)] py-[var(--spacing-0-5)] rounded-[var(--radius-sm)]","border transition-colors duration-[var(--duration-fast)]",Qe?Nv(je):"border-transparent text-text-tertiary hover:text-text-secondary"),children:[c.jsx("input",{type:"checkbox",checked:Qe,onChange:()=>{const it=B.categories??[...q],$e=Qe?it.filter(Sn=>Sn!==je):[...it,je];Ae(D,{categories:$e})},className:"accent-accent-blue"}),je]},je)})})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Include Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(B.includeKeywords??[]).map((je,Qe)=>c.jsx(Is,{label:je,variant:"include",onRemove:()=>Ae(D,{includeKeywords:B.includeKeywords.filter((it,$e)=>$e!==Qe)})},`${je}-${Qe}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:je=>Ae(D,{includeKeywords:[...B.includeKeywords??[],je]})})]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Exclude Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(B.excludeKeywords??[]).map((je,Qe)=>c.jsx(Is,{label:je,variant:"exclude",onRemove:()=>Ae(D,{excludeKeywords:B.excludeKeywords.filter((it,$e)=>$e!==Qe)})},`${je}-${Qe}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:je=>Ae(D,{excludeKeywords:[...B.excludeKeywords??[],je]})})]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Extra Docs"}),c.jsx(Ti,{paths:B.extras??[],onChange:je=>Ae(D,{extras:je}),placeholder:"Add path (e.g. .workflow/docs/...)",suggestions:Au})]})]})]},D)})}),J.length>0&&c.jsx("div",{className:"mt-[var(--spacing-2)]",children:O?c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsxs("select",{className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue"),defaultValue:"",onChange:D=>{if(D.target.value){const B=D.target.value,q=s.agentCategoryMap[B]??[];Ae(B,{categories:[...q]}),T(!1),A(ae=>({...ae,[B]:!0}))}},children:[c.jsx("option",{value:"",disabled:!0,children:"Select agent type..."}),J.map(D=>c.jsx("option",{value:D,children:D},D))]}),c.jsx("button",{type:"button",onClick:()=>T(!1),className:"text-[length:var(--font-size-xs)] text-text-tertiary hover:text-text-secondary focus-visible:outline-none",children:"cancel"})]}):c.jsx("button",{type:"button",onClick:()=>T(!0),className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:"+ Customize Agent"})})]}),c.jsxs(Ys,{title:"Category Documents",description:"Extra spec files and docs injected per category",expanded:!!E.categories,onToggle:()=>fe("categories"),children:[ie.length===0&&c.jsx("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary italic mb-[var(--spacing-2)]",children:"No custom category documents configured."}),c.jsx("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:ie.map(D=>{const B=n.categoryDocs[D],q=s.categoryFileMap[D];return c.jsxs("div",{className:"border border-border-divider rounded-[var(--radius-sm)] p-[var(--spacing-3)]",children:[c.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-2)]",children:[c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsx(Ku,{name:D}),c.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary",children:D})]}),c.jsx("button",{type:"button",onClick:()=>Te(D),className:"text-[length:var(--font-size-xs)] text-status-blocked opacity-60 hover:opacity-100 focus-visible:outline-none","aria-label":`Remove ${D}`,children:"remove"})]}),q&&c.jsxs("p",{className:"text-[length:var(--font-size-xs)] text-text-tertiary mb-[var(--spacing-2)]",children:["Default spec: ",q]}),c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-2)]",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Extra Spec Files"}),c.jsx(Ti,{paths:B.specFiles??[],onChange:ae=>F(D,{specFiles:ae}),placeholder:"Add spec file...",suggestions:[".workflow/specs/",".maestro/specs/"]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Extra Docs"}),c.jsx(Ti,{paths:B.docs??[],onChange:ae=>F(D,{docs:ae}),placeholder:"Add doc path...",suggestions:Au})]})]})]},D)})}),be.length>0&&c.jsx("div",{className:"mt-[var(--spacing-2)]",children:X?c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[c.jsxs("select",{className:me("px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue"),defaultValue:"",onChange:D=>{D.target.value&&(F(D.target.value,{specFiles:[],docs:[]}),Y(!1))},children:[c.jsx("option",{value:"",disabled:!0,children:"Select category..."}),be.map(D=>c.jsx("option",{value:D,children:D},D))]}),c.jsx("button",{type:"button",onClick:()=>Y(!1),className:"text-[length:var(--font-size-xs)] text-text-tertiary hover:text-text-secondary focus-visible:outline-none",children:"cancel"})]}):c.jsx("button",{type:"button",onClick:()=>Y(!0),className:me("text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)]","text-accent-blue hover:underline","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] rounded-[var(--radius-sm)]"),children:"+ Add Category"})})]}),c.jsx(Ys,{title:"Always Inject (Session Start)",description:"Documents, keywords, and categories always injected at session start",expanded:!!E.always,onToggle:()=>fe("always"),children:c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1)]",children:"Documents"}),c.jsx(Ti,{paths:(($=n.always)==null?void 0:$.docs)??[],onChange:D=>{var q,ae;const B={...n.always,docs:D.length>0?D:void 0};!B.docs&&!((q=B.keywords)!=null&&q.length)&&!((ae=B.categories)!=null&&ae.length)?i(Se=>({...Se,always:void 0})):i(Se=>({...Se,always:B}))},placeholder:"Add doc path...",suggestions:Au})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1)]",children:"Keywords (always inject matching entries)"}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1)] mb-[var(--spacing-1)]",children:(((N=n.always)==null?void 0:N.keywords)??[]).map(D=>c.jsx(Is,{label:D,variant:"include",onRemove:()=>{var ae,Se,oe;const B=(((ae=n.always)==null?void 0:ae.keywords)??[]).filter(Ie=>Ie!==D),q={...n.always,keywords:B.length>0?B:void 0};!((Se=q.docs)!=null&&Se.length)&&!q.keywords&&!((oe=q.categories)!=null&&oe.length)?i(Ie=>({...Ie,always:void 0})):i(Ie=>({...Ie,always:q}))}},D))}),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:D=>{var q;const B=((q=n.always)==null?void 0:q.keywords)??[];B.includes(D)||i(ae=>({...ae,always:{...ae.always,keywords:[...B,D]}}))}})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1)]",children:"Categories (always inject all entries from these)"}),c.jsx("div",{className:"flex flex-wrap gap-[var(--spacing-1)]",children:((s==null?void 0:s.validCategories)??[]).map(D=>{var q;const B=(((q=n.always)==null?void 0:q.categories)??[]).includes(D);return c.jsx("button",{type:"button",onClick:()=>{var Ie,je,Qe;const ae=((Ie=n.always)==null?void 0:Ie.categories)??[],Se=B?ae.filter(it=>it!==D):[...ae,D],oe={...n.always,categories:Se.length>0?Se:void 0};!((je=oe.docs)!=null&&je.length)&&!((Qe=oe.keywords)!=null&&Qe.length)&&!oe.categories?i(it=>({...it,always:void 0})):i(it=>({...it,always:oe}))},className:`px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] transition-all ${B?"bg-accent-purple/20 text-accent-purple border border-accent-purple/40":"bg-bg-secondary text-text-tertiary border border-border-default hover:text-text-secondary"}`,children:D},D)})})]})]})}),c.jsx(Ys,{title:"Global Keyword Filters",description:"Include or exclude spec entries by keyword across all agents",expanded:!!E.keywords,onToggle:()=>fe("keywords"),children:c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Include Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(((I=n.keywordFilters)==null?void 0:I.include)??[]).map((D,B)=>c.jsx(Is,{label:D,variant:"include",onRemove:()=>i(q=>{var ae;return{...q,keywordFilters:{...q.keywordFilters,include:(((ae=q.keywordFilters)==null?void 0:ae.include)??[]).filter((Se,oe)=>oe!==B)}}})},`${D}-${B}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:D=>i(B=>{var q;return{...B,keywordFilters:{...B.keywordFilters,include:[...((q=B.keywordFilters)==null?void 0:q.include)??[],D]}}})})]})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary block mb-[var(--spacing-1)]",children:"Exclude Keywords"}),c.jsxs("div",{className:"flex flex-wrap items-center gap-[var(--spacing-1)]",children:[(((ee=n.keywordFilters)==null?void 0:ee.exclude)??[]).map((D,B)=>c.jsx(Is,{label:D,variant:"exclude",onRemove:()=>i(q=>{var ae;return{...q,keywordFilters:{...q.keywordFilters,exclude:(((ae=q.keywordFilters)==null?void 0:ae.exclude)??[]).filter((Se,oe)=>oe!==B)}}})},`${D}-${B}`)),c.jsx(Ks,{placeholder:"Add keyword...",onAdd:D=>i(B=>{var q;return{...B,keywordFilters:{...B.keywordFilters,exclude:[...((q=B.keywordFilters)==null?void 0:q.exclude)??[],D]}}})})]})]}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)]",children:[c.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary",children:"Max Content Length"}),c.jsx("input",{type:"number",value:n.maxContentLength??"",onChange:D=>{const B=D.target.value?parseInt(D.target.value,10):void 0;i(q=>({...q,maxContentLength:B&&B>0?B:void 0}))},placeholder:"8000",className:me("w-24 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-xs)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]")})]})]})}),c.jsx(Vn,{dirty:te,saving:S,onSave:()=>void H(),onDiscard:Q})]})}const Ai=_t((n,i)=>({configured:null,teams:[],selectedTeamId:null,board:null,selectedIssue:null,loading:!1,error:null,checkStatus:async()=>{try{const s=await fetch(gu.STATUS);if(!s.ok)throw new Error(`HTTP ${s.status}`);const r=await s.json();n({configured:r.configured})}catch(s){n({configured:!1,error:String(s)})}},fetchTeams:async()=>{n({loading:!0,error:null});try{const s=await fetch(gu.TEAMS);if(!s.ok)throw new Error(`HTTP ${s.status}`);const r=await s.json();if(n({teams:r,loading:!1}),r.length>0&&!i().selectedTeamId){const d=r[0].id;n({selectedTeamId:d}),i().fetchBoard(d)}}catch(s){n({loading:!1,error:String(s)})}},selectTeam:s=>{n({selectedTeamId:s,board:null,selectedIssue:null}),i().fetchBoard(s)},fetchBoard:async s=>{n({loading:!0,error:null});try{const r=await fetch(`${gu.BOARD}?teamId=${s}`);if(!r.ok){const f=await r.json().catch(()=>({error:`HTTP ${r.status}`}));throw new Error(f.error)}const d=await r.json();n({board:d,loading:!1})}catch(r){n({loading:!1,error:String(r)})}},selectIssue:s=>{n({selectedIssue:s})},refresh:async()=>{const s=i().selectedTeamId;s&&await i().fetchBoard(s)},importIssues:async s=>{const r=await fetch("/api/linear/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issues:s})});if(!r.ok){const d=await r.json().catch(()=>({error:`HTTP ${r.status}`}));throw new Error(d.error)}return await r.json()},exportIssues:async(s,r)=>{const d=await fetch("/api/linear/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issues:s,teamId:r})});if(!d.ok){const f=await d.json().catch(()=>({error:`HTTP ${d.status}`}));throw new Error(f.error)}return await d.json()}}));function ij(){const{t:n}=St(),i=pe(T=>{var X;return(X=T.draft)==null?void 0:X.linear}),s=pe(T=>T.saving),r=pe(T=>T.isDirty("linear")),d=pe(T=>T.updateDraft),f=pe(T=>T.saveConfig),p=pe(T=>T.discardDraft),h=Ai(T=>T.configured),x=Ai(T=>T.teams),g=Ai(T=>T.checkStatus),S=Ai(T=>T.fetchTeams),[b,E]=v.useState(!1),[w,C]=v.useState(null);if(!i)return null;const A=async()=>{E(!0),C(null);try{await g();const T=await fetch("/api/linear/teams");if(!T.ok){const Y=await T.json().catch(()=>({error:`HTTP ${T.status}`}));throw new Error(Y.error)}const X=await T.json();await S(),C({ok:!0,message:`Connected! Found ${X.length} team(s)`})}catch(T){C({ok:!1,message:String(T)})}finally{E(!1)}},O=async()=>{await f("linear"),await g(),i.apiKey&&await S()};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsxs(rt,{title:n("settings.linear.integration_card"),description:n("settings.linear.integration_desc"),children:[c.jsx(Pe,{label:n("settings.linear.api_key_label"),description:n("settings.linear.api_key_desc"),htmlFor:"settings-linear-api-key",children:c.jsx("input",{id:"settings-linear-api-key",type:"password",value:i.apiKey,onChange:T=>d("linear",{...i,apiKey:T.target.value}),placeholder:"lin_api_...",className:me("w-48 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)]","border border-border bg-bg-primary text-text-primary text-[length:var(--font-size-sm)]","focus:outline-none focus:border-accent-blue focus:shadow-[var(--shadow-focus-ring)]","transition-colors duration-[var(--duration-fast)]","placeholder:text-text-tertiary")})}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] pt-[var(--spacing-2)]",children:[c.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${h===!0?"bg-status-completed":h===!1?"bg-status-blocked":"bg-bg-hover"}`}),c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n(h===!0?"settings.linear.connected":h===!1?"settings.linear.not_configured":"settings.linear.checking")})]}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] pt-[var(--spacing-2)]",children:[c.jsx("button",{type:"button",onClick:()=>void A(),disabled:b,className:me("px-[var(--spacing-3)] py-[var(--spacing-1-5)] rounded-[var(--radius-sm)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","border border-border text-text-secondary","hover:bg-bg-hover hover:text-text-primary","transition-colors duration-[var(--duration-fast)]","disabled:opacity-50 disabled:pointer-events-none"),children:n(b?"settings.linear.testing":"settings.linear.test_connection")}),w&&c.jsx("span",{className:me("text-[length:var(--font-size-xs)]",w.ok?"text-status-completed":"text-status-blocked"),children:w.message})]})]}),h&&x.length>0&&c.jsx(rt,{title:n("settings.linear.teams_card"),description:n("settings.linear.teams_desc"),children:c.jsx("div",{className:"flex flex-col gap-[var(--spacing-1)]",children:x.map(T=>c.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] py-[var(--spacing-1-5)] text-[length:var(--font-size-sm)]",children:[c.jsx("span",{className:"font-mono text-text-tertiary text-[length:var(--font-size-xs)]",children:T.key}),c.jsx("span",{className:"text-text-primary",children:T.name})]},T.id))})}),c.jsx(Vn,{dirty:r,saving:s,onSave:()=>void O(),onDiscard:()=>p("linear")})]})}function oj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col",style:{backgroundColor:"#1D1B18",borderTop:"2px solid #C8863A"},children:[c.jsxs("div",{className:"px-2.5 py-2 flex-1",children:[c.jsx("div",{className:"h-[7px] rounded w-[72%] mb-2",style:{backgroundColor:"rgba(255,255,255,0.18)"}}),c.jsx("div",{className:"flex gap-1 mt-2 flex-wrap",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(n=>c.jsx("div",{className:"h-[5px] rounded-full",style:{width:22,backgroundColor:`${n}55`}},n))})]}),c.jsxs("div",{className:"px-2.5 py-1.5 border-t flex items-center gap-1",style:{borderColor:"rgba(255,255,255,0.07)"},children:[c.jsx("div",{className:"h-[4px] rounded w-6",style:{backgroundColor:"rgba(255,255,255,0.15)"}}),c.jsx("div",{className:"h-[4px] rounded w-6 ml-1",style:{backgroundColor:"rgba(255,255,255,0.15)"}})]})]})}function cj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-2 py-1.5 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[5px] rounded w-14",style:{backgroundColor:"var(--color-text-primary)",opacity:.7}}),c.jsx("div",{className:"w-3 h-3 rounded-sm",style:{backgroundColor:"var(--color-bg-hover)"}})]}),c.jsxs("div",{className:"px-2 py-1.5 flex-1 space-y-1.5",children:[c.jsx("div",{className:"h-[3px] rounded w-6",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[6px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"h-[3px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[12px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"flex gap-1",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(n=>c.jsx("div",{className:"h-[5px] rounded",style:{width:16,backgroundColor:`${n}25`}},n))})]}),c.jsxs("div",{className:"flex justify-end gap-1 px-2 py-1.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[6px] rounded w-8",style:{backgroundColor:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"}}),c.jsx("div",{className:"h-[6px] rounded w-10",style:{backgroundColor:"#C8863A"}})]})]})}function uj(){return c.jsx("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col items-center justify-center px-3",style:{backgroundColor:"var(--color-bg-primary)"},children:c.jsxs("div",{className:"w-full",children:[c.jsx("div",{className:"h-[3px] rounded w-10 mb-2",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[10px] rounded w-[85%] mb-1.5",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsx("div",{className:"h-[4px] rounded w-full mb-1",style:{backgroundColor:"var(--color-text-secondary)",opacity:.3}}),c.jsx("div",{className:"h-[4px] rounded w-[70%] mb-3",style:{backgroundColor:"var(--color-text-secondary)",opacity:.3}}),c.jsxs("div",{className:"flex gap-1 items-center pt-1.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[["#C46555","#5B8DB8","#9178B5"].map(n=>c.jsx("div",{className:"h-[4px] rounded-full",style:{width:18,backgroundColor:`${n}45`}},n)),c.jsx("div",{className:"ml-auto h-[5px] rounded w-8",style:{backgroundColor:"#C8863A",opacity:.7}})]})]})})}function dj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex relative",style:{backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx("div",{className:"flex-1",style:{backgroundColor:"rgba(0,0,0,0.12)"}}),c.jsxs("div",{className:"w-[45%] h-full flex flex-col",style:{backgroundColor:"var(--color-bg-card)",borderLeft:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"px-2 py-1.5 border-b flex items-center gap-1",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[3px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded-full w-7 ml-1",style:{backgroundColor:"#5B8DB825"}})]}),c.jsxs("div",{className:"px-2 py-1.5 space-y-1.5 flex-1",children:[c.jsx("div",{className:"h-[6px] rounded w-[85%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.6}}),c.jsx("div",{className:"h-[3px] rounded w-8 mt-1",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded w-12",style:{backgroundColor:"var(--color-bg-secondary)"}}),c.jsx("div",{className:"h-[3px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-bg-secondary)"}})]})]})]})}function fj(){return c.jsx("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.35)"},children:c.jsxs("div",{className:"w-[88%] h-[78%] rounded-[5px] overflow-hidden flex",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"flex-1 px-2 py-1.5 border-r",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"flex gap-1 mb-1.5",children:["#C46555","#5B8DB8"].map(n=>c.jsx("div",{className:"h-[4px] rounded-full w-8",style:{backgroundColor:`${n}30`}},n))}),c.jsx("div",{className:"h-[7px] rounded w-[90%] mb-1",style:{backgroundColor:"var(--color-text-primary)",opacity:.6}}),c.jsx("div",{className:"h-[3px] rounded w-full mb-1",style:{backgroundColor:"var(--color-text-secondary)",opacity:.35}}),c.jsx("div",{className:"h-[3px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.35}})]}),c.jsxs("div",{className:"w-[36%] px-1.5 py-1.5 space-y-1.5",style:{backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx("div",{className:"h-[3px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),[["#C46555",18],["#5B8DB8",14],["#A09D97",20]].map(([n,i],s)=>c.jsx("div",{className:"h-[4px] rounded-full",style:{width:i,backgroundColor:`${n}35`}},s))]})]})})}function mj(){return c.jsxs("div",{className:"w-full h-full rounded-[6px] overflow-hidden flex flex-col",style:{backgroundColor:"var(--color-bg-primary)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-2 py-1 border-b shrink-0",style:{borderColor:"var(--color-border-divider)",backgroundColor:"var(--color-bg-card)"},children:[c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("div",{className:"h-[3px] rounded w-6",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("span",{className:"text-[6px]",style:{color:"var(--color-text-tertiary)"},children:"›"}),c.jsx("div",{className:"h-[3px] rounded w-8",style:{backgroundColor:"var(--color-text-primary)",opacity:.5}})]}),c.jsxs("div",{className:"flex gap-1",children:[c.jsx("div",{className:"h-[4px] rounded-full w-8",style:{backgroundColor:"#C4655525"}}),c.jsx("div",{className:"h-[4px] rounded-full w-6",style:{backgroundColor:"#5B8DB825"}})]})]}),c.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[c.jsxs("div",{className:"flex-1 px-3 py-2 space-y-1.5",children:[c.jsx("div",{className:"h-[3px] rounded w-16",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[8px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsx("div",{className:"h-[3px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.28}}),c.jsx("div",{className:"h-[3px] rounded w-[75%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.28}})]}),c.jsx("div",{className:"w-[30%] px-1.5 py-2 border-l space-y-1.5",style:{borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-secondary)"},children:[12,16,10,14].map((n,i)=>c.jsx("div",{className:"h-[3px] rounded",style:{width:n,backgroundColor:"var(--color-text-tertiary)",opacity:.5}},i))})]})]})}function tg({value:n,current:i,label:s,description:r,accentColor:d,children:f,onSelect:p}){const h=n===i;return c.jsxs("button",{type:"button",onClick:()=>p(n),className:"flex-1 min-w-0 rounded-[10px] overflow-hidden border-2 transition-all duration-200 text-left focus-visible:outline-none",style:{borderColor:h?d:"var(--color-border)",backgroundColor:h?`${d}06`:"var(--color-bg-card)",boxShadow:h?`0 0 0 3px ${d}20`:"var(--shadow-sm)",transform:h?"translateY(-1px)":"none"},children:[c.jsx("div",{className:"h-[100px] p-2",style:{backgroundColor:h?`${d}08`:"var(--color-bg-secondary)"},children:f}),c.jsxs("div",{className:"px-3 py-2.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-0.5",children:[h&&c.jsx("div",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:d}}),c.jsx("span",{className:"text-[11px] font-semibold",style:{color:h?d:"var(--color-text-primary)"},children:s})]}),c.jsx("p",{className:"text-[10px] leading-snug",style:{color:"var(--color-text-tertiary)"},children:r})]})]})}function pj(){const n=[{color:"#A09D97",cards:[72,60,85]},{color:"#B89540",cards:[90,65]},{color:"#5A9E78",cards:[55]}];return c.jsx("div",{className:"absolute inset-0 flex gap-2 p-3",style:{backgroundColor:"var(--color-bg-secondary)"},children:n.map((i,s)=>c.jsxs("div",{className:"flex-1 rounded-[8px] overflow-hidden",style:{backgroundColor:"var(--color-bg-primary)"},children:[c.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1.5 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:i.color}}),c.jsx("div",{className:"h-[5px] rounded w-12",style:{backgroundColor:"var(--color-text-secondary)",opacity:.4}})]}),c.jsx("div",{className:"p-1.5 space-y-1.5",children:i.cards.map((r,d)=>c.jsxs("div",{className:"rounded-[5px] p-1.5",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[c.jsxs("div",{className:"flex gap-1 mb-1",children:[c.jsx("div",{className:"h-[4px] rounded-full w-10",style:{backgroundColor:`${i.color}35`}}),c.jsx("div",{className:"h-[4px] rounded-full w-7 ml-auto",style:{backgroundColor:"rgba(160,157,151,0.25)"}})]}),c.jsx("div",{className:"h-[4px] rounded",style:{width:`${r}%`,backgroundColor:"var(--color-text-secondary)",opacity:.3}})]},d))})]},s))})}function hj({style:n,animKey:i}){return n===1?c.jsx("div",{className:"absolute inset-0 flex items-start justify-center pt-[14%]",style:{backgroundColor:"rgba(0,0,0,0.65)"},children:c.jsxs("div",{className:"w-[70%] rounded-[10px] overflow-hidden motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"#1D1B18",borderTop:"2px solid #C8863A",boxShadow:"0 16px 50px rgba(0,0,0,0.5)"},children:[c.jsx("div",{className:"px-4 py-3",children:c.jsx("div",{className:"h-[8px] rounded w-[60%]",style:{backgroundColor:"rgba(255,255,255,0.22)"}})}),c.jsx("div",{className:"px-4 pb-3 pt-2 border-t",style:{borderColor:"rgba(255,255,255,0.07)"},children:c.jsx("div",{className:"flex gap-1.5",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(s=>c.jsx("div",{className:"h-[6px] rounded-full w-8",style:{backgroundColor:`${s}45`}},s))})}),c.jsx("div",{className:"px-4 py-2 border-t flex items-center",style:{borderColor:"rgba(255,255,255,0.07)"},children:c.jsx("div",{className:"h-[4px] rounded w-24",style:{backgroundColor:"rgba(255,255,255,0.12)"}})})]},i)}):n===2?c.jsx("div",{className:"absolute inset-0 flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.38)"},children:c.jsxs("div",{className:"w-[72%] rounded-[12px] overflow-hidden motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)",boxShadow:"0 12px 40px rgba(0,0,0,0.2)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[7px] rounded w-16",style:{backgroundColor:"var(--color-text-primary)",opacity:.65}}),c.jsx("div",{className:"w-4 h-4 rounded",style:{backgroundColor:"var(--color-bg-hover)"}})]}),c.jsxs("div",{className:"px-4 py-3 space-y-2",children:[c.jsx("div",{className:"h-[4px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[8px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[16px] rounded border w-full",style:{borderColor:"var(--color-border)"}}),c.jsx("div",{className:"flex gap-1.5",children:["#C46555","#5B8DB8","#9178B5","#A09D97"].map(s=>c.jsx("div",{className:"h-[7px] rounded w-12",style:{backgroundColor:`${s}22`}},s))})]}),c.jsxs("div",{className:"flex justify-end gap-2 px-4 py-2.5 border-t",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[8px] rounded w-10",style:{backgroundColor:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"}}),c.jsx("div",{className:"h-[8px] rounded w-16",style:{backgroundColor:"#C8863A"}})]})]},i)}):c.jsx("div",{className:"absolute inset-0 flex items-center justify-center motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-primary)"},children:c.jsxs("div",{className:"w-[80%]",children:[c.jsx("div",{className:"h-[4px] rounded w-20 mb-3",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[14px] rounded w-[70%] mb-3",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsxs("div",{className:"space-y-1.5 mb-6",children:[c.jsx("div",{className:"h-[5px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}}),c.jsx("div",{className:"h-[5px] rounded w-[85%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}})]}),c.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",style:{borderColor:"var(--color-border-divider)"},children:[["#C46555","#5B8DB8","#9178B5"].map(s=>c.jsx("div",{className:"h-[6px] rounded-full w-10",style:{backgroundColor:`${s}35`}},s)),c.jsx("div",{className:"ml-auto h-[8px] rounded w-12",style:{backgroundColor:"#C8863A"}})]})]})},i)}function gj({style:n,animKey:i}){return n===1?c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"absolute inset-0",style:{backgroundColor:"rgba(0,0,0,0.2)"}}),c.jsxs("div",{className:"absolute top-0 right-0 bottom-0 w-[42%] flex flex-col motion-safe:animate-[slide-in-right_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-card)",borderLeft:"1px solid var(--color-border)",boxShadow:"0 0 30px rgba(0,0,0,0.15)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsxs("div",{className:"flex gap-1",children:[c.jsx("div",{className:"h-[5px] rounded-full w-8",style:{backgroundColor:"#C4655530"}}),c.jsx("div",{className:"h-[5px] rounded-full w-8",style:{backgroundColor:"#5B8DB830"}})]})]}),c.jsxs("div",{className:"px-3 py-3 space-y-2.5 flex-1",children:[c.jsx("div",{className:"h-[8px] rounded w-[85%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[6px] rounded w-16",style:{backgroundColor:"var(--color-bg-secondary)"}}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"h-[4px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}}),c.jsx("div",{className:"h-[4px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}})]})]})]},i)]}):n===2?c.jsx("div",{className:"absolute inset-0 flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.45)"},children:c.jsxs("div",{className:"w-[88%] h-[78%] rounded-[10px] overflow-hidden flex motion-safe:animate-[modal-enter_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)",boxShadow:"0 12px 40px rgba(0,0,0,0.25)"},children:[c.jsxs("div",{className:"flex-1 flex flex-col border-r",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"flex items-center justify-between px-3 py-2 border-b shrink-0",style:{borderColor:"var(--color-border-divider)"},children:c.jsx("div",{className:"h-[4px] rounded w-14",style:{backgroundColor:"var(--color-text-tertiary)"}})}),c.jsxs("div",{className:"flex-1 px-3 py-3 space-y-2",children:[c.jsx("div",{className:"flex gap-1",children:["#C46555","#5B8DB8"].map(s=>c.jsx("div",{className:"h-[5px] rounded-full w-10",style:{backgroundColor:`${s}30`}},s))}),c.jsx("div",{className:"h-[9px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"h-[4px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}}),c.jsx("div",{className:"h-[4px] rounded w-[75%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.25}})]})]})]}),c.jsxs("div",{className:"w-[36%] px-2.5 py-3 space-y-2.5",style:{backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx("div",{className:"h-[4px] rounded w-14",style:{backgroundColor:"var(--color-text-tertiary)"}}),[["#C46555",20],["#5B8DB8",16],["#A09D97",22]].map(([s,r],d)=>c.jsx("div",{className:"h-[6px] rounded-full",style:{width:r,backgroundColor:`${s}35`}},d)),c.jsxs("div",{className:"pt-2 border-t space-y-1.5",style:{borderColor:"var(--color-border-divider)"},children:[c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("div",{className:"h-[4px] rounded w-12",style:{backgroundColor:"var(--color-text-secondary)",opacity:.35}})]})]})]},i)}):c.jsxs("div",{className:"absolute inset-0 flex flex-col motion-safe:animate-[slide-up_240ms_ease-out_both]",style:{backgroundColor:"var(--color-bg-primary)"},children:[c.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b shrink-0",style:{borderColor:"var(--color-border-divider)",backgroundColor:"var(--color-bg-card)"},children:[c.jsxs("div",{className:"flex items-center gap-1.5",children:[c.jsx("div",{className:"h-[4px] rounded w-8",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("span",{className:"text-[8px]",style:{color:"var(--color-text-tertiary)"},children:"›"}),c.jsx("div",{className:"h-[4px] rounded w-10",style:{backgroundColor:"var(--color-text-tertiary)"}}),c.jsx("span",{className:"text-[8px]",style:{color:"var(--color-text-tertiary)"},children:"›"}),c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-text-primary)",opacity:.5}})]}),c.jsxs("div",{className:"flex gap-1.5",children:[c.jsx("div",{className:"h-[5px] rounded-full w-9",style:{backgroundColor:"#C4655525"}}),c.jsx("div",{className:"h-[5px] rounded-full w-8",style:{backgroundColor:"#5B8DB825"}}),c.jsx("div",{className:"h-[6px] rounded w-10",style:{backgroundColor:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"}})]})]}),c.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[c.jsxs("div",{className:"flex-1 px-6 py-4 space-y-2",children:[c.jsx("div",{className:"h-[4px] rounded w-16",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.5}}),c.jsx("div",{className:"h-[11px] rounded w-[65%]",style:{backgroundColor:"var(--color-text-primary)",opacity:.55}}),c.jsxs("div",{className:"space-y-1.5 pt-1",children:[c.jsx("div",{className:"h-[4px] rounded w-full",style:{backgroundColor:"var(--color-text-secondary)",opacity:.22}}),c.jsx("div",{className:"h-[4px] rounded w-[80%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.22}}),c.jsx("div",{className:"h-[4px] rounded w-[60%]",style:{backgroundColor:"var(--color-text-secondary)",opacity:.22}})]})]}),c.jsx("div",{className:"w-[28%] border-l px-2.5 py-4 space-y-2.5",style:{borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-secondary)"},children:[["#C46555",22],["#5B8DB8",18],["#A09D97",24]].map(([s,r],d)=>c.jsxs("div",{children:[c.jsx("div",{className:"h-[3px] rounded w-8 mb-1",style:{backgroundColor:"var(--color-text-tertiary)",opacity:.6}}),c.jsx("div",{className:"h-[5px] rounded-full",style:{width:r,backgroundColor:`${s}35`}})]},d))})]})]},i)}function vj({target:n,createStyle:i,detailStyle:s,animKey:r,labels:d,captions:f,createBtnLabel:p,detailBtnLabel:h}){const x=n==="create"?i:s,g=n==="create"?"var(--color-accent-orange)":"var(--color-accent-blue)";return c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[c.jsx("div",{className:"h-px flex-1",style:{backgroundColor:"var(--color-border-divider)"}}),c.jsxs("div",{className:"flex items-center gap-1.5",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:g}}),c.jsxs("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--color-text-tertiary)"},children:["Live Preview — ",d[n][x]]})]}),c.jsx("div",{className:"h-px flex-1",style:{backgroundColor:"var(--color-border-divider)"}})]}),c.jsxs("div",{className:"relative rounded-[10px] overflow-hidden border",style:{height:220,borderColor:"var(--color-border)",backgroundColor:"var(--color-bg-secondary)"},children:[c.jsx(pj,{}),n==="create"?c.jsx(hj,{style:i,animKey:r}):c.jsx(gj,{style:s,animKey:r})]}),c.jsx("p",{className:"mt-2 text-[10px] text-center",style:{color:"var(--color-text-tertiary)"},children:f[n][x]})]})}function xj(){const{t:n}=St(),i=Hl(w=>w.createModalStyle),s=Hl(w=>w.detailModalStyle),r=Hl(w=>w.setCreateModalStyle),d=Hl(w=>w.setDetailModalStyle),[f,p]=v.useState("create"),[h,x]=v.useState("initial");function g(w){r(w),p("create"),x(`create-${w}-${Date.now()}`)}function S(w){d(w),p("detail"),x(`detail-${w}-${Date.now()}`)}const b=[{value:1,label:n("settings.kanban.create_command"),description:n("settings.kanban.create_command_desc"),thumb:c.jsx(oj,{})},{value:2,label:n("settings.kanban.create_form"),description:n("settings.kanban.create_form_desc"),thumb:c.jsx(cj,{})},{value:3,label:n("settings.kanban.create_focus"),description:n("settings.kanban.create_focus_desc"),thumb:c.jsx(uj,{})}],E=[{value:1,label:n("settings.kanban.detail_panel"),description:n("settings.kanban.detail_panel_desc"),thumb:c.jsx(dj,{})},{value:2,label:n("settings.kanban.detail_overlay"),description:n("settings.kanban.detail_overlay_desc"),thumb:c.jsx(fj,{})},{value:3,label:n("settings.kanban.detail_page"),description:n("settings.kanban.detail_page_desc"),thumb:c.jsx(mj,{})}];return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-5)]",children:[c.jsx(rt,{title:n("settings.kanban.create_card"),description:n("settings.kanban.create_desc"),children:c.jsx("div",{className:"flex gap-3 mt-1",children:b.map(w=>c.jsx(tg,{value:w.value,current:i,label:w.label,description:w.description,accentColor:"var(--color-accent-orange)",onSelect:g,children:w.thumb},w.value))})}),c.jsx(rt,{title:n("settings.kanban.detail_card"),description:n("settings.kanban.detail_desc"),children:c.jsx("div",{className:"flex gap-3 mt-1",children:E.map(w=>c.jsx(tg,{value:w.value,current:s,label:w.label,description:w.description,accentColor:"var(--color-accent-blue)",onSelect:S,children:w.thumb},w.value))})}),c.jsxs(rt,{title:n("settings.kanban.preview_card"),description:n("settings.kanban.preview_desc"),children:[c.jsx("div",{className:"flex gap-1 mb-4",children:["create","detail"].map(w=>c.jsx("button",{type:"button",onClick:()=>{p(w),x(`${w}-${i}-${s}-${Date.now()}`)},className:"px-3 py-1 rounded-[var(--radius-sm)] text-[11px] font-medium transition-all",style:{backgroundColor:f===w?"var(--color-bg-active)":"transparent",color:f===w?"var(--color-text-primary)":"var(--color-text-tertiary)"},children:n(w==="create"?"settings.kanban.preview_create":"settings.kanban.preview_detail")},w))}),c.jsx(vj,{target:f,createStyle:i,detailStyle:s,animKey:h,labels:{create:{1:n("settings.kanban.create_command"),2:n("settings.kanban.create_form"),3:n("settings.kanban.create_focus")},detail:{1:n("settings.kanban.detail_panel"),2:n("settings.kanban.detail_overlay"),3:n("settings.kanban.detail_page")}},captions:{create:{1:n("settings.kanban.create_caption_1"),2:n("settings.kanban.create_caption_2"),3:n("settings.kanban.create_caption_3")},detail:{1:n("settings.kanban.detail_caption_1"),2:n("settings.kanban.detail_caption_2"),3:n("settings.kanban.detail_caption_3")}},createBtnLabel:n("settings.kanban.preview_create"),detailBtnLabel:n("settings.kanban.preview_detail")})]})]})}const yj=["development","staging","production","custom"],bj=["haiku","sonnet","opus"],Sj=["low","medium","high"],Ej=[{value:"claude-code",label:"Claude Code"},{value:"agent-sdk",label:"Agent SDK"},{value:"codex",label:"Codex"},{value:"gemini",label:"Gemini"},{value:"qwen",label:"Qwen"},{value:"opencode",label:"OpenCode"}];function ha({label:n,description:i,value:s,onChange:r,id:d,min:f=0}){return c.jsx(Pe,{label:n,description:i,htmlFor:d,children:c.jsx(gn,{id:d,type:"text",value:String(s),onChange:p=>{const h=Number(p);!isNaN(h)&&h>=f&&r(h)},className:"w-32 font-mono"})})}function wj(){const{t:n}=St(),i=pe(w=>{var C;return(C=w.draft)==null?void 0:C.commander}),s=pe(w=>w.saving),r=pe(w=>w.isDirty("commander")),d=pe(w=>w.updateDraft),f=pe(w=>w.saveConfig),p=pe(w=>w.discardDraft),h=yj.map(w=>({value:w,label:n(`settings.commander.profile_${w}`)})),x=bj.map(w=>({value:w,label:n(`settings.commander.model_${w}`)})),g=Sj.map(w=>({value:w,label:n(`settings.commander.threshold_${w}`)}));if(!i)return null;const S=w=>{d("commander",{...i,...w})},b=w=>{d("commander",{...i,safety:{...i.safety,...w}})},E=w=>{d("commander",{...i,workspace:{...i.workspace,...w}})};return c.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)]",children:[c.jsx(rt,{title:n("settings.commander.profile_card"),description:n("settings.commander.profile_desc"),children:c.jsx(Pe,{label:n("settings.commander.environment_label"),description:n("settings.commander.environment_desc"),htmlFor:"cmd-profile",children:c.jsx(Kn,{id:"cmd-profile",value:i.profile,onChange:w=>S({profile:w}),options:h})})}),c.jsxs(rt,{title:n("settings.commander.core_card"),description:n("settings.commander.core_desc"),children:[c.jsx(ha,{id:"cmd-poll-interval",label:n("settings.commander.poll_interval_label"),description:n("settings.commander.poll_interval_desc"),value:i.pollIntervalMs,onChange:w=>S({pollIntervalMs:w})}),c.jsx(ha,{id:"cmd-max-workers",label:n("settings.commander.max_workers_label"),description:n("settings.commander.max_workers_desc"),value:i.maxConcurrentWorkers,onChange:w=>S({maxConcurrentWorkers:w})}),c.jsx(ha,{id:"cmd-stall-timeout",label:n("settings.commander.stall_timeout_label"),description:n("settings.commander.stall_timeout_desc"),value:i.stallTimeoutMs,onChange:w=>S({stallTimeoutMs:w})}),c.jsx(ha,{id:"cmd-max-retries",label:n("settings.commander.max_retries_label"),description:n("settings.commander.max_retries_desc"),value:i.maxRetries,onChange:w=>S({maxRetries:w})}),c.jsx(ha,{id:"cmd-retry-backoff",label:n("settings.commander.retry_backoff_label"),description:n("settings.commander.retry_backoff_desc"),value:i.retryBackoffMs,onChange:w=>S({retryBackoffMs:w})})]}),c.jsxs(rt,{title:n("settings.commander.decision_card"),description:n("settings.commander.decision_desc"),children:[c.jsx(Pe,{label:n("settings.commander.decision_model_label"),description:n("settings.commander.decision_model_desc"),htmlFor:"cmd-decision-model",children:c.jsx(Kn,{id:"cmd-decision-model",value:i.decisionModel,onChange:w=>S({decisionModel:w}),options:x})}),c.jsx(ha,{id:"cmd-assess-turns",label:n("settings.commander.assess_turns_label"),description:n("settings.commander.assess_turns_desc"),value:i.assessMaxTurns,onChange:w=>S({assessMaxTurns:w})}),c.jsx(Pe,{label:n("settings.commander.threshold_label"),description:n("settings.commander.threshold_desc"),htmlFor:"cmd-approve-threshold",children:c.jsx(Kn,{id:"cmd-approve-threshold",value:i.autoApproveThreshold,onChange:w=>S({autoApproveThreshold:w}),options:g})}),c.jsx(Pe,{label:n("settings.commander.executor_label"),description:n("settings.commander.executor_desc"),htmlFor:"cmd-executor",children:c.jsx(Kn,{id:"cmd-executor",value:i.defaultExecutor,onChange:w=>S({defaultExecutor:w}),options:Ej})})]}),c.jsxs(rt,{title:n("settings.commander.safety_card"),description:n("settings.commander.safety_desc"),children:[c.jsx(ha,{id:"cmd-debounce",label:n("settings.commander.debounce_label"),description:n("settings.commander.debounce_desc"),value:i.safety.eventDebounceMs,onChange:w=>b({eventDebounceMs:w})}),c.jsx(ha,{id:"cmd-circuit-breaker",label:n("settings.commander.circuit_breaker_label"),description:n("settings.commander.circuit_breaker_desc"),value:i.safety.circuitBreakerThreshold,onChange:w=>b({circuitBreakerThreshold:w})}),c.jsx(ha,{id:"cmd-max-ticks",label:n("settings.commander.max_ticks_label"),description:n("settings.commander.max_ticks_desc"),value:i.safety.maxTicksPerHour,onChange:w=>b({maxTicksPerHour:w})}),c.jsx(ha,{id:"cmd-max-tokens",label:n("settings.commander.max_tokens_label"),description:n("settings.commander.max_tokens_desc"),value:i.safety.maxTokensPerHour,onChange:w=>b({maxTokensPerHour:w})}),c.jsx(Pe,{label:n("settings.commander.protected_paths_label"),description:n("settings.commander.protected_paths_desc"),htmlFor:"cmd-protected-paths",children:c.jsx(gn,{id:"cmd-protected-paths",value:i.safety.protectedPaths.join(", "),onChange:w=>b({protectedPaths:w.split(",").map(C=>C.trim()).filter(Boolean)}),placeholder:".env, *.key, credentials.*",className:"w-72 font-mono text-[length:var(--font-size-xs)]"})})]}),c.jsxs(rt,{title:n("settings.commander.workspace_card"),description:n("settings.commander.workspace_desc"),children:[c.jsx(Pe,{label:n("settings.commander.workspace_enabled_label"),description:n("settings.commander.workspace_enabled_desc"),children:c.jsx(In,{enabled:i.workspace.enabled,onClick:()=>E({enabled:!i.workspace.enabled})})}),c.jsx(Pe,{label:n("settings.commander.workspace_worktree_label"),description:n("settings.commander.workspace_worktree_desc"),children:c.jsx(In,{enabled:i.workspace.useWorktree,onClick:()=>E({useWorktree:!i.workspace.useWorktree})})}),c.jsx(Pe,{label:n("settings.commander.workspace_autocleanup_label"),description:n("settings.commander.workspace_autocleanup_desc"),children:c.jsx(In,{enabled:i.workspace.autoCleanup,onClick:()=>E({autoCleanup:!i.workspace.autoCleanup})})}),c.jsx(Pe,{label:n("settings.commander.workspace_strict_label"),description:n("settings.commander.workspace_strict_desc"),children:c.jsx(In,{enabled:i.workspace.strict,onClick:()=>E({strict:!i.workspace.strict})})})]}),c.jsx(Vn,{dirty:r,saving:s,onSave:()=>void f("commander"),onDiscard:()=>p("commander")})]})}function jj({section:n}){switch(n){case"general":return c.jsx(Jw,{});case"agents":return c.jsx(tj,{});case"cli-tools":return c.jsx(aj,{});case"specs":return c.jsx(nj,{});case"linear":return c.jsx(ij,{});case"kanban":return c.jsx(xj,{});case"commander":return c.jsx(wj,{});default:return null}}const Nj=["general","agents","commander","cli-tools","specs","linear","kanban"],_j={general:"cog",agents:"bot",commander:"commander","cli-tools":"terminal",specs:"file-text",linear:"linear",kanban:"kanban"};function Cj({icon:n}){const i="w-4 h-4 shrink-0";switch(n){case"cog":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("circle",{cx:"12",cy:"12",r:"3"}),c.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]});case"bot":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),c.jsx("circle",{cx:"12",cy:"5",r:"2"}),c.jsx("path",{d:"M12 7v4"}),c.jsx("line",{x1:"8",y1:"16",x2:"8",y2:"16"}),c.jsx("line",{x1:"16",y1:"16",x2:"16",y2:"16"})]});case"terminal":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("polyline",{points:"4 17 10 11 4 5"}),c.jsx("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]});case"file-text":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),c.jsx("polyline",{points:"14 2 14 8 20 8"}),c.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),c.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),c.jsx("polyline",{points:"10 9 9 9 8 9"})]});case"linear":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M3 17l6-6"}),c.jsx("path",{d:"M10 18l4-4"}),c.jsx("path",{d:"M14 20l7-7"})]});case"kanban":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"3",y:"3",width:"5",height:"18",rx:"1"}),c.jsx("rect",{x:"10",y:"3",width:"5",height:"12",rx:"1"}),c.jsx("rect",{x:"17",y:"3",width:"5",height:"15",rx:"1"})]});case"commander":return c.jsxs("svg",{className:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),c.jsx("path",{d:"M9 9h6"}),c.jsx("path",{d:"M9 13h6"}),c.jsx("circle",{cx:"9",cy:"9",r:"0.5",fill:"currentColor"}),c.jsx("circle",{cx:"9",cy:"13",r:"0.5",fill:"currentColor"}),c.jsx("circle",{cx:"15",cy:"9",r:"0.5",fill:"currentColor"}),c.jsx("circle",{cx:"15",cy:"13",r:"0.5",fill:"currentColor"})]});default:return null}}function Tj(){const{t:n}=St(),i=pe(S=>S.open),s=pe(S=>S.setOpen),r=pe(S=>S.activeSection),d=pe(S=>S.setActiveSection),f=pe(S=>S.loading),p=pe(S=>S.config),h=pe(S=>S.draft),x=pe(S=>!S.config||!S.draft?!1:JSON.stringify(S.config.general)!==JSON.stringify(S.draft.general)||JSON.stringify(S.config.agents)!==JSON.stringify(S.draft.agents)||S.config.cliTools!==S.draft.cliTools||JSON.stringify(S.config.linear)!==JSON.stringify(S.draft.linear)||S.config.searchTool!==S.draft.searchTool||JSON.stringify(S.config.commander)!==JSON.stringify(S.draft.commander)),g=v.useCallback(S=>{!S&&x&&!window.confirm(n("settings.unsaved_confirm"))||s(S)},[x,s]);return v.useEffect(()=>{function S(b){(b.metaKey||b.ctrlKey)&&b.key===","&&(b.preventDefault(),s(!i))}return window.addEventListener("keydown",S),()=>window.removeEventListener("keydown",S)},[i,s]),c.jsx(qw,{open:i,onOpenChange:g,children:c.jsxs(Iw,{children:[c.jsx(Kw,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),c.jsxs(Yw,{className:me("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-[900px] max-w-[95vw] h-[700px] max-h-[90vh]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-[var(--style-modal-shadow)]","flex flex-col overflow-hidden","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"),children:[c.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-6)] py-[var(--spacing-4)] border-b border-border shrink-0",children:[c.jsx(Vw,{className:"text-[length:var(--font-size-lg)] font-[var(--font-weight-semibold)] text-text-primary",children:n("settings.title")}),c.jsx(Xw,{className:me("w-8 h-8 flex items-center justify-center rounded-[var(--radius-sm)]","text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"),"aria-label":"Close settings",children:c.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),c.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[c.jsx("nav",{className:"w-56 shrink-0 border-r border-border bg-bg-secondary p-[var(--spacing-3)] overflow-y-auto","aria-label":"Settings sections",children:c.jsx("div",{className:"flex flex-col gap-[var(--spacing-0-5)]",children:Nj.map(S=>c.jsxs("button",{type:"button",onClick:()=>d(S),className:me("flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2)] py-[var(--spacing-1-5)] rounded-[var(--radius-default)] text-left text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] w-full","transition-all duration-[var(--duration-fast)] ease-[var(--ease-notion)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",r===S?"bg-bg-active text-text-primary":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"),"aria-current":r===S?"page":void 0,children:[c.jsx(Cj,{icon:_j[S]}),c.jsx("span",{className:"truncate",children:n(`settings.nav.${S==="cli-tools"?"cli_tools":S}`)})]},S))})}),c.jsx("div",{className:"flex-1 overflow-y-auto p-[var(--spacing-6)]",children:f&&!p?c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n("settings.loading")})}):h?c.jsx(jj,{section:r}):c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsx("span",{className:"text-[length:var(--font-size-sm)] text-text-secondary",children:n("settings.failed")})})})]})]})]})})}const Aj={idle:"#5A9E78",thinking:"#B89540",dispatching:"#5A84B8",paused:"var(--color-text-tertiary)"};function kj(){var d;const n=Gu(f=>f.supervisorStatus),i=Gu(f=>f.commanderState),s=v.useCallback(()=>{ca({action:"supervisor:toggle",enabled:!(n!=null&&n.enabled)})},[n==null?void 0:n.enabled]),r=n!=null&&n.lastTickAt?Oj(n.lastTickAt):"never";return c.jsx("div",{className:"shrink-0",children:c.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)] px-[var(--spacing-4)] py-[var(--spacing-1-5)] border-t border-border-divider bg-bg-secondary text-[length:var(--font-size-xs)] shrink-0",children:[c.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-[var(--spacing-1)] text-text-secondary hover:text-text-primary transition-colors",children:[c.jsx("span",{className:["w-2 h-2 rounded-full",n!=null&&n.enabled?"bg-[#5A9E78]":"bg-text-tertiary"].join(" ")}),c.jsxs("span",{className:"font-[var(--font-weight-medium)]",children:["Supervisor ",n!=null&&n.enabled?"ON":"OFF"]})]}),(n==null?void 0:n.enabled)&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"w-px h-3 bg-border-divider"}),c.jsxs("span",{className:"text-text-secondary",children:["Running: ",c.jsx("span",{className:"text-text-primary font-[var(--font-weight-medium)]",children:n.running.length})]}),c.jsxs("span",{className:"text-text-secondary",children:["Queued: ",c.jsx("span",{className:"text-text-primary font-[var(--font-weight-medium)]",children:n.queued.length})]}),n.retrying.length>0&&c.jsxs("span",{className:"text-[#B89540]",children:["Retrying: ",c.jsx("span",{className:"font-[var(--font-weight-medium)]",children:n.retrying.length})]}),c.jsxs("span",{className:"text-text-tertiary",children:["Last tick: ",r]}),n.stats.totalDispatched>0&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"w-px h-3 bg-border-divider"}),c.jsxs("span",{className:"text-text-tertiary",children:[n.stats.totalCompleted,"/",n.stats.totalDispatched," done",n.stats.totalFailed>0&&c.jsxs("span",{className:"text-[#C46555]",children:[" (",n.stats.totalFailed," failed)"]})]})]})]}),i&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"w-px h-3 bg-border-divider"}),c.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)] text-text-secondary",children:[c.jsx("span",{className:"w-2 h-2 rounded-full",style:{backgroundColor:Aj[i.status]??"var(--color-text-tertiary)"}}),c.jsxs("span",{className:"font-[var(--font-weight-medium)]",children:["Commander ",i.status]})]}),c.jsxs("span",{className:"text-text-tertiary",children:["Tick #",i.tickCount]}),((d=i.lastDecision)==null?void 0:d.actions[0])&&c.jsxs("span",{className:"text-text-tertiary",children:["Last: ",i.lastDecision.actions[0].type]})]}),c.jsx("div",{className:"flex-1"}),c.jsx(gg,{to:"/supervisor",className:"text-text-secondary hover:text-text-primary transition-colors font-[var(--font-weight-medium)]",children:"Supervisor →"})]})})}function Oj(n){const i=Date.now(),s=new Date(n).getTime();if(isNaN(s))return"never";const r=i-s;if(r<0)return"just now";const d=Math.floor(r/1e3);return d<5?"just now":d<60?`${d}s ago`:`${Math.floor(d/60)}m ago`}function Dj(){const{t:n}=St(),i=Vt(T=>T.connected),[s,r]=v.useState(!1),[d,f]=v.useState(null),[p,h]=v.useState(!1),[x,g]=v.useState(!1),S=()=>g(T=>!T),b=v0(),E=Ha(),w=E.pathname.startsWith("/kanban"),C=E.pathname.startsWith("/chat"),A=pe(T=>T.loadConfig),O=pe(T=>{var X,Y,P,Z;return((Y=(X=T.draft)==null?void 0:X.general)==null?void 0:Y.theme)??((Z=(P=T.config)==null?void 0:P.general)==null?void 0:Z.theme)});return v.useEffect(()=>{A()},[A]),v.useEffect(()=>{if(O){if(O==="system"){const T=window.matchMedia("(prefers-color-scheme: dark)"),X=()=>{document.documentElement.dataset.theme=T.matches?"dark":"light"};return X(),T.addEventListener("change",X),localStorage.setItem("theme","system"),()=>T.removeEventListener("change",X)}document.documentElement.dataset.theme=O,localStorage.setItem("theme",O)}},[O]),eE(),v.useEffect(()=>{async function T(){try{const[X,Y,P]=await Promise.all([fetch(jh.BOARD),fetch("/api/agents"),fetch(jh.HEALTH)]);if(!X.ok){r(!0);return}const Z=await X.json();if(Vt.getState().setBoard(Z),r(!1),Y.ok){const te=await Y.json(),{addProcess:H}=oa.getState();for(const Q of te)H(Q)}if(P.ok){const te=await P.json();te.workspace&&Vt.getState().setWorkspace(te.workspace),te.latestVersion&&te.version&&te.latestVersion!==te.version&&localStorage.getItem("maestro-update-dismissed")!==te.latestVersion&&f(te.latestVersion)}}catch{r(!0)}}T()},[]),c.jsx(kS,{children:c.jsx(xg,{value:b,children:c.jsxs("div",{className:"h-screen w-screen flex flex-col overflow-hidden bg-bg-primary",children:[c.jsx(Tj,{}),s&&!i&&c.jsx("div",{role:"alert","aria-live":"assertive",className:"px-[var(--spacing-4)] py-[var(--spacing-2)] border-b text-[length:var(--font-size-xs)] text-center shrink-0 rounded-[var(--radius-default)] mx-[var(--spacing-3)] mt-[var(--spacing-2)]",style:{backgroundColor:"var(--color-status-bg-blocked)",color:"var(--color-status-blocked)",borderColor:"var(--color-status-blocked)"},children:n("connection_error")}),d&&!p&&c.jsxs("div",{role:"status",className:"px-[var(--spacing-4)] py-[var(--spacing-2)] border-b text-[length:var(--font-size-xs)] shrink-0 rounded-[var(--radius-default)] mx-[var(--spacing-3)] mt-[var(--spacing-2)] flex items-center justify-center gap-[var(--spacing-2)]",style:{backgroundColor:"var(--color-status-bg-exploring)",color:"var(--color-status-exploring)",borderColor:"var(--color-status-exploring)"},children:[c.jsx("span",{children:n("update_available",{version:d})}),c.jsx("button",{type:"button",onClick:()=>{h(!0),localStorage.setItem("maestro-update-dismissed",d)},className:"ml-[var(--spacing-1)] hover:opacity-70 transition-opacity duration-[var(--duration-fast)]","aria-label":n("dismiss"),children:"×"})]}),c.jsx(j1,{}),c.jsxs("div",{className:"flex flex-1 overflow-hidden relative",children:[c.jsx(dS,{isPinned:x,onTogglePin:S}),c.jsxs(wS,{children:[c.jsx(Fb,{}),w&&c.jsx(kj,{})]})]}),!C&&c.jsx(DS,{}),!C&&c.jsx(GS,{})]})})})}const Mj=v.lazy(()=>ht(()=>import("./KanbanPage-N55Iv0-X.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])).then(n=>({default:n.KanbanPage}))),Rj=v.lazy(()=>ht(()=>import("./ArtifactsPage-BLvAqQlQ.js"),__vite__mapDeps([13,14,15,1,16,17,7,8,18,19,20,21])).then(n=>({default:n.ArtifactsPage}))),zj=v.lazy(()=>ht(()=>import("./ChatPage-DYHfheXC.js"),__vite__mapDeps([22,4,5,6,7,8,9,10,23,16,15,17,24,25])).then(n=>({default:n.ChatPage}))),Lj=v.lazy(()=>ht(()=>import("./WorkflowPage-BoN18Lhs.js"),__vite__mapDeps([26,1,2,27,28,19,10,29])).then(n=>({default:n.WorkflowPage}))),Uj=v.lazy(()=>ht(()=>import("./McpPage-Im6s4pGR.js"),__vite__mapDeps([30,28,9,15,25,8,17,12,21,31,20,27,14,32])).then(n=>({default:n.McpPage}))),Bj=v.lazy(()=>ht(()=>import("./SpecsPage-gr4KX51-.js"),__vite__mapDeps([33,1,29,28,15,18,21,10,25,31,27])).then(n=>({default:n.SpecsPage}))),Hj=v.lazy(()=>ht(()=>import("./TeamsPage-BxEXLb5g.js"),__vite__mapDeps([34,28,15,8,25,35,36,37,38,21,20])).then(n=>({default:n.TeamsPage}))),Gj=v.lazy(()=>ht(()=>import("./RequirementPage-_mO743Xm.js"),__vite__mapDeps([39,1,6,24,25,14])).then(n=>({default:n.RequirementPage}))),qj=v.lazy(()=>ht(()=>import("./RequirementBoardPage-22y9u1qh.js"),__vite__mapDeps([40,18,38,32,36,3])).then(n=>({default:n.RequirementBoardPage}))),Ij=v.lazy(()=>ht(()=>import("./MaestroCoordinatePage-BxwZ6yy5.js"),__vite__mapDeps([41,11])).then(n=>({default:n.MaestroCoordinatePage}))),Kj=v.lazy(()=>ht(()=>import("./CollabPage-CSlmvEa-.js"),__vite__mapDeps([42,20,21])).then(n=>({default:n.CollabPage}))),Yj=v.lazy(()=>ht(()=>import("./MeetingRoomPage-CxHRn1xx.js"),__vite__mapDeps([43,9,35,36,20,21,5,6,7,8,10,23])).then(n=>({default:n.MeetingRoomPage}))),Vj=v.lazy(()=>ht(()=>import("./RoomsPage-CExTbOGr.js"),__vite__mapDeps([44,25,37,8])).then(n=>({default:n.RoomsPage})));function Yt(){return c.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)]",children:"Loading..."})}function Xj(){return c.jsx(i0,{children:c.jsx(Wb,{children:c.jsxs(pt,{element:c.jsx(Dj,{}),children:[c.jsx(pt,{index:!0,element:c.jsx(mu,{to:"/kanban",replace:!0})}),c.jsx(pt,{path:"kanban",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Mj,{})})}),c.jsx(pt,{path:"artifacts",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Rj,{})})}),c.jsx(pt,{path:"chat",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(zj,{})})}),c.jsx(pt,{path:"workflow",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Lj,{})})}),c.jsx(pt,{path:"mcp",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Uj,{})})}),c.jsx(pt,{path:"specs",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Bj,{})})}),c.jsx(pt,{path:"wiki",element:c.jsx(mu,{to:"/artifacts",replace:!0})}),c.jsx(pt,{path:"teams",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Hj,{})})}),c.jsx(pt,{path:"requirement",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Gj,{})})}),c.jsx(pt,{path:"requirement/:id/board",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(qj,{})})}),c.jsx(pt,{path:"maestro-coordinate",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Ij,{})})}),c.jsx(pt,{path:"collab",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Kj,{})})}),c.jsx(pt,{path:"rooms",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Vj,{})})}),c.jsx(pt,{path:"meeting-room/:sessionId",element:c.jsx(v.Suspense,{fallback:c.jsx(Yt,{}),children:c.jsx(Yj,{})})}),c.jsx(pt,{path:"*",element:c.jsx(mu,{to:"/kanban",replace:!0})})]})})})}const _v=document.getElementById("root");if(!_v)throw new Error("Root element not found");Wy.createRoot(_v).render(c.jsx(v.StrictMode,{children:c.jsx(sb,{children:c.jsx(Xj,{})})}));export{Fg as $,jh as A,q1 as B,Pj as C,Qn as D,Ga as E,M1 as F,Fs as G,$s as H,e2 as I,bu as J,yn as K,gg as L,z1 as M,iE as N,Kw as O,Iw as P,Ii as Q,qw as R,Sg as S,Vw as T,Wg as U,xg as V,Jj as W,nS as X,ww as Y,UE as Z,iv as _,Vt as a,Zg as a0,vE as a1,rb as a2,Eg as a3,tS as a4,Fj as a5,$j as a6,Zj as a7,U1 as a8,H1 as a9,XS as aa,vu as ab,sS as ac,VS as ad,Qj as ae,kj as af,Qg as ag,ZS as ah,N0 as ai,xi as aj,a2 as ak,QS as al,ag as am,V1 as an,PS as ao,F1 as ap,Gu as b,zu as c,Ct as d,Ai as e,Yw as f,t2 as g,Xw as h,me as i,c as j,oa as k,Gi as l,Hl as m,O1 as n,_t as o,Q1 as p,$u as q,v as r,ca as s,sg as t,St as u,Xs as v,Wj as w,Wu as x,aE as y,Vs as z};