claude-code-workflow 7.2.27 → 7.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ccw/specs/architecture-constraints.md +5 -0
- package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
- package/.claude/skills/investigate/SKILL.md +110 -0
- package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
- package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
- package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
- package/.claude/skills/investigate/phases/04-implementation.md +139 -0
- package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
- package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
- package/.claude/skills/investigate/specs/iron-law.md +101 -0
- package/.claude/skills/security-audit/SKILL.md +125 -0
- package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
- package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
- package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
- package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
- package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
- package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
- package/.claude/skills/ship/SKILL.md +105 -0
- package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
- package/.claude/skills/ship/phases/02-code-review.md +137 -0
- package/.claude/skills/ship/phases/03-version-bump.md +171 -0
- package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
- package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
- package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
- package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
- package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
- package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
- package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.claude/skills/team-motion-design/SKILL.md +129 -0
- package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
- package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
- package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
- package/.claude/skills/team-ui-polish/SKILL.md +127 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
- package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
- package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
- package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
- package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.claude/skills/team-uidesign/SKILL.md +6 -1
- package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
- package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
- package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
- package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
- package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
- package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
- package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
- package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
- package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
- package/.claude/skills/team-ux-improve/SKILL.md +3 -0
- package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
- package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
- package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
- package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
- package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
- package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
- package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
- package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
- package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
- package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
- package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
- package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
- package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/.codex/skills/investigate/agents/investigator.md +392 -0
- package/.codex/skills/investigate/orchestrator.md +362 -0
- package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
- package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
- package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
- package/.codex/skills/investigate/phases/04-implementation.md +195 -0
- package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
- package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
- package/.codex/skills/security-audit/orchestrator.md +384 -0
- package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
- package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
- package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
- package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
- package/.codex/skills/ship/agents/ship-operator.md +318 -0
- package/.codex/skills/ship/orchestrator.md +426 -0
- package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
- package/.codex/skills/ship/phases/02-code-review.md +228 -0
- package/.codex/skills/ship/phases/03-version-bump.md +259 -0
- package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
- package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
- package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
- package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
- package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.codex/skills/team-motion-design/SKILL.md +222 -0
- package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
- package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
- package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
- package/.codex/skills/team-ui-polish/SKILL.md +218 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
- package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
- package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
- package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
- package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/README.md +8 -0
- package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
- package/ccw/dist/core/hooks/hook-templates.js +114 -1
- package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +34 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +2 -2
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
- package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
- package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +105 -105
- package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ej as Ne,ek as be,el as ye,ab as X,aF as Y,aH as Z,em as we,en as Te,eo as _e,ep as Ce,eq as Se,er as Me,u as T,j as e,e as k,J as ke,B as p,cA as U,aV as ee,a1 as se,bu as Fe,R as de,es as Ae,et as Le,ad as Ee,N as H,k as Pe,c as j,C as L,a as E,r as h,cy as me,ap as te,X as xe,aq as W,ar as I,as as J,at as G,au as D,eu as De,ev as $e,ao as Re,D as qe,d as ze,f as Ve,g as B,h as re,T as Be,l as Oe,b as Ke,I as Qe,x as Ue,y as We,z as Ie,A as Je,E as Ge,G as He,o as ne,s as Xe,aw as Ye}from"./index-Dff4bg3u.js";import{T as ue}from"./TabsNavigation-BGsKy7DO.js";import{S as Ze}from"./Switch-BpB9h__9.js";import{F as es}from"./filter-BOe-OTu1.js";import{F as ae}from"./file-text-DRkrjie9.js";import{P as Q}from"./package-BjOw1ldU.js";import{F as ss}from"./folder-BaWZWn_r.js";import{F as ts}from"./file-json-rwo1NowL.js";import{E as as}from"./ellipsis-vertical-CbNlw2gS.js";import{E as rs}from"./eye-yAy69Cnn.js";import{A as ns}from"./archive-restore-BhTfDbPU.js";import{A as is}from"./archive-CQJ86bQp.js";import{M as ls,a as cs}from"./minimize-2-DO-zbT3a.js";const z=Ne()(be(ye(s=>({selectedTeam:null,autoRefresh:!0,messageFilter:{},timelineExpanded:!0,viewMode:"list",locationFilter:"active",searchQuery:"",detailTab:"pipeline",setSelectedTeam:t=>s({selectedTeam:t}),toggleAutoRefresh:()=>s(t=>({autoRefresh:!t.autoRefresh})),setMessageFilter:t=>s(a=>({messageFilter:{...a.messageFilter,...t}})),clearMessageFilter:()=>s({messageFilter:{}}),setTimelineExpanded:t=>s({timelineExpanded:t}),setViewMode:t=>s({viewMode:t}),setLocationFilter:t=>s({locationFilter:t}),setSearchQuery:t=>s({searchQuery:t}),setDetailTab:t=>s({detailTab:t}),selectTeamAndShowDetail:t=>s({selectedTeam:t,viewMode:"detail",detailTab:"pipeline"}),backToList:()=>s({viewMode:"list",detailTab:"pipeline"})}),{name:"ccw-team-store"}),{name:"TeamStore"})),S={all:["teams"],lists:()=>[...S.all,"list"],listByLocation:s=>[...S.lists(),s],messages:(s,t)=>[...S.all,"messages",s,t],status:s=>[...S.all,"status",s]};function he(s){var n;const t=z(i=>i.autoRefresh),a=s||"active",r=X({queryKey:S.listByLocation(a),queryFn:async()=>({teams:(await Ce(a)).teams??[]}),staleTime:1e4,refetchInterval:t?1e4:!1});return{teams:((n=r.data)==null?void 0:n.teams)??[],isLoading:r.isLoading,isFetching:r.isFetching,error:r.error,refetch:r.refetch}}function os(s,t,a){var i,l;const r=z(c=>c.autoRefresh),n=X({queryKey:S.messages(s??"",t),queryFn:async()=>{if(!s)return{total:0,showing:0,messages:[]};const c=await Se(s,{...t,last:50});return{total:c.total,showing:c.showing,messages:c.messages}},enabled:!!s,staleTime:5e3,refetchInterval:r?5e3:!1});return{messages:((i=n.data)==null?void 0:i.messages)??[],total:((l=n.data)==null?void 0:l.total)??0,isLoading:n.isLoading,error:n.error,refetch:n.refetch}}function ds(s){var r,n;const t=z(i=>i.autoRefresh),a=X({queryKey:S.status(s??""),queryFn:async()=>{if(!s)return{members:[],total_messages:0};const i=await Me(s);return{members:i.members,total_messages:i.total_messages}},enabled:!!s,staleTime:5e3,refetchInterval:t?5e3:!1});return{members:((r=a.data)==null?void 0:r.members)??[],totalMessages:((n=a.data)==null?void 0:n.total_messages)??0,isLoading:a.isLoading,error:a.error,refetch:a.refetch}}function ms(){const s=Y(),t=Z({mutationFn:we,onSuccess:()=>{s.invalidateQueries({queryKey:S.all})}});return{archiveTeam:t.mutateAsync,isArchiving:t.isPending,error:t.error}}function xs(){const s=Y(),t=Z({mutationFn:Te,onSuccess:()=>{s.invalidateQueries({queryKey:S.all})}});return{unarchiveTeam:t.mutateAsync,isUnarchiving:t.isPending,error:t.error}}function us(){const s=Y(),t=Z({mutationFn:_e,onSuccess:()=>{s.invalidateQueries({queryKey:S.all})}});return{deleteTeam:t.mutateAsync,isDeleting:t.isPending,error:t.error}}function hs({selectedTeam:s,onBack:t,members:a,totalMessages:r,autoRefresh:n,onToggleAutoRefresh:i,skillType:l,pipelineMode:c}){const{formatMessage:x}=T();return e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsxs(k,{variant:"ghost",size:"sm",onClick:t,className:"gap-1",children:[e.jsx(ke,{className:"h-4 w-4"}),x({id:"team.detail.backToList"})]}),s&&e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg font-semibold",children:s}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(p,{variant:"secondary",className:"gap-1",children:[e.jsx(U,{className:"w-3 h-3"}),x({id:"team.members"}),": ",a.length]}),e.jsxs(p,{variant:"secondary",className:"gap-1",children:[e.jsx(ee,{className:"w-3 h-3"}),x({id:"team.messages"}),": ",r]})]}),(l||c)&&e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsx(p,{variant:"outline",className:"gap-1",children:l}),c&&e.jsxs(p,{variant:"default",className:"gap-1",children:[e.jsx(se,{className:"w-3 h-3"}),c]})]})]})]}),e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ze,{id:"auto-refresh",checked:n,onCheckedChange:i}),e.jsx(Fe,{htmlFor:"auto-refresh",className:"text-sm text-muted-foreground cursor-pointer",children:x({id:"team.autoRefresh"})}),n&&e.jsx(de,{className:"w-3.5 h-3.5 text-primary animate-spin",style:{animationDuration:"3s"}})]})})]})}const fe={completed:{icon:Pe,color:"text-green-500",bg:"bg-green-500/10 border-green-500/30"},in_progress:{icon:H,color:"text-blue-500",bg:"bg-blue-500/10 border-blue-500/30",animate:!0},pending:{icon:Ee,color:"text-muted-foreground",bg:"bg-muted border-border"},blocked:{icon:Le,color:"text-red-500",bg:"bg-red-500/10 border-red-500/30"},skipped:{icon:Ae,color:"text-yellow-500",bg:"bg-yellow-500/10 border-yellow-500/30"}},fs=["completed","in_progress","pending","blocked","skipped"];function ie({stage:s}){const{formatMessage:t}=T(),a=fe[s.status],r=a.icon,n=s.status==="in_progress"?"inProgress":s.status;return e.jsxs("div",{className:j("flex flex-col items-center gap-1.5 px-4 py-3 rounded-lg border-2 min-w-[90px] transition-all",a.bg),children:[e.jsx(r,{className:j("w-5 h-5",a.color,a.animate&&"animate-spin"),style:a.animate?{animationDuration:"2s"}:void 0}),e.jsx("span",{className:"text-xs font-medium",children:s.label}),e.jsx("span",{className:j("text-[10px]",a.color),children:t({id:`team.pipeline.${n}`})}),s.role&&e.jsx("span",{className:"text-[10px] text-muted-foreground truncate max-w-[80px]",children:s.role})]})}function ps(){return e.jsxs("div",{className:"flex items-center px-1",children:[e.jsx("div",{className:"w-6 h-0.5 bg-border"}),e.jsx("div",{className:"w-0 h-0 border-t-[4px] border-t-transparent border-b-[4px] border-b-transparent border-l-[6px] border-l-border"})]})}function gs({stages:s,phaseInfo:t}){const{formatMessage:a}=T();return s.length===0?e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:a({id:"team.pipeline.title"})}),e.jsx("p",{className:"text-xs text-muted-foreground text-center py-8",children:a({id:"team.pipeline.noStages"})})]}):e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"space-y-3 flex-1",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:a({id:"team.pipeline.title"})}),t&&e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsxs(p,{variant:"secondary",children:[a({id:"team.coordinates.phase"}),": ",t.currentPhase,t.totalPhases!=null&&`/${t.totalPhases}`]}),t.currentStep&&e.jsxs(p,{variant:"secondary",children:[a({id:"team.coordinates.step"}),": ",t.currentStep]}),t.gapIteration>0&&e.jsxs(p,{variant:"outline",children:[a({id:"team.coordinates.gap"}),": ",t.gapIteration]})]}),e.jsx("div",{className:"hidden sm:flex items-center gap-0",children:s.map((r,n)=>e.jsxs("div",{className:"flex items-center",children:[n>0&&e.jsx(ps,{}),e.jsx(ie,{stage:r})]},r.id))}),e.jsx("div",{className:"flex sm:hidden flex-col items-center gap-2",children:s.map(r=>e.jsx(ie,{stage:r},r.id))})]}),e.jsx("div",{className:"flex flex-wrap gap-3 text-[10px] text-muted-foreground mt-auto pt-3 border-t border-border",children:fs.map(r=>{const n=fe[r],i=n.icon,l=r==="in_progress"?"inProgress":r;return e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(i,{className:j("w-3 h-3",n.color)}),a({id:`team.pipeline.${l}`})]},r)})})]})}function js(s){if(!s)return"";const t=Date.now(),a=new Date(s).getTime(),r=t-a;if(r<0)return"now";const n=Math.floor(r/1e3);if(n<60)return`${n}s`;const i=Math.floor(n/60);if(i<60)return`${i}m`;const l=Math.floor(i/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}function vs(s){return s.lastSeen&&Date.now()-new Date(s.lastSeen).getTime()<120*1e3?"active":"idle"}function Ns({members:s}){const{formatMessage:t}=T();return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:t({id:"team.membersPanel.title"})}),e.jsxs("div",{className:"space-y-2",children:[s.map(a=>{const r=vs(a),n=r==="active";return e.jsx(L,{className:"overflow-hidden",children:e.jsx(E,{className:"p-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"pt-0.5",children:e.jsx("div",{className:j("w-2.5 h-2.5 rounded-full",n?"bg-green-500 shadow-[0_0_6px_rgba(34,197,94,0.5)]":"bg-muted-foreground/40")})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:a.member}),e.jsx(p,{variant:n?"success":"secondary",className:"text-[10px] px-1.5 py-0",children:t({id:`team.membersPanel.${r}`})})]}),a.lastAction&&e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:a.lastAction}),e.jsxs("div",{className:"flex items-center gap-3 text-[10px] text-muted-foreground",children:[e.jsxs("span",{children:[a.messageCount," ",t({id:"team.messages"}).toLowerCase()]}),a.lastSeen&&e.jsxs("span",{children:[js(a.lastSeen)," ",t({id:"team.membersPanel.ago"})]})]})]})]})})},a.member)}),s.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-4",children:t({id:"team.empty.noMessages"})})]})]})}function bs(s){if(!s)return"";const t=Date.now(),a=new Date(s).getTime(),r=t-a;if(r<0)return"now";const n=Math.floor(r/1e3);if(n<60)return`${n}s`;const i=Math.floor(n/60);if(i<60)return`${i}m`;const l=Math.floor(i/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}function ys(s){return s.lastSeen&&Date.now()-new Date(s.lastSeen).getTime()<120*1e3?"active":"idle"}function ws(s,t){const a=s.member.toLowerCase();return t.find(r=>r.role&&r.role.toLowerCase()===a||r.id.toLowerCase()===a)}const Ts={completed:"success",in_progress:"info",pending:"secondary",blocked:"destructive",skipped:"warning"};function le({members:s,stages:t,roleState:a}){const{formatMessage:r}=T();return t.length===0?e.jsx(Ns,{members:s}):e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:r({id:"team.membersPanel.title"})}),e.jsxs("div",{className:"space-y-2",children:[s.map(n=>{const i=ys(n),l=i==="active",c=ws(n,t);return e.jsx(L,{className:"overflow-hidden",children:e.jsx(E,{className:"p-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"pt-0.5",children:e.jsx("div",{className:j("w-2.5 h-2.5 rounded-full",l?"bg-green-500 shadow-[0_0_6px_rgba(34,197,94,0.5)]":"bg-muted-foreground/40")})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:n.member}),e.jsx(p,{variant:l?"success":"secondary",className:"text-[10px] px-1.5 py-0",children:r({id:`team.membersPanel.${i}`})}),c&&e.jsx(p,{variant:Ts[c.status]??"secondary",className:"text-[10px] px-1.5 py-0",children:c.label})]}),n.lastAction&&e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:n.lastAction}),e.jsxs("div",{className:"flex items-center gap-3 text-[10px] text-muted-foreground",children:[e.jsxs("span",{children:[n.messageCount," ",r({id:"team.messages"}).toLowerCase()]}),n.lastSeen&&e.jsxs("span",{children:[bs(n.lastSeen)," ",r({id:"team.membersPanel.ago"})]})]})]})]})})},n.member)}),s.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-4",children:r({id:"team.empty.noMessages"})})]})]})}function _s({phaseInfo:s}){const{formatMessage:t}=T();return e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsxs(p,{variant:"secondary",children:[t({id:"team.coordinates.phase"}),": ",s.currentPhase,s.totalPhases!=null&&`/${s.totalPhases}`]}),s.currentStep&&e.jsxs(p,{variant:"secondary",children:[t({id:"team.coordinates.step"}),": ",s.currentStep]}),s.gapIteration>0&&e.jsxs(p,{variant:"outline",children:[t({id:"team.coordinates.gap"}),": ",s.gapIteration]})]})}const ce={plan_ready:"bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-500/30",plan_approved:"bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-500/30",plan_revision:"bg-amber-500/15 text-amber-600 dark:text-amber-400 border-amber-500/30",task_unblocked:"bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 border-cyan-500/30",impl_complete:"bg-primary/15 text-primary border-primary/30",impl_progress:"bg-primary/15 text-primary border-primary/30",test_result:"bg-green-500/15 text-green-600 dark:text-green-400 border-green-500/30",review_result:"bg-purple-500/15 text-purple-600 dark:text-purple-400 border-purple-500/30",fix_required:"bg-red-500/15 text-red-600 dark:text-red-400 border-red-500/30",error:"bg-red-500/15 text-red-600 dark:text-red-400 border-red-500/30",shutdown:"bg-muted text-muted-foreground border-border",message:"bg-muted text-muted-foreground border-border"};function Cs({type:s}){const{formatMessage:t}=T(),a=ce[s]||ce.message,r=`team.messageType.${s}`;let n;try{n=t({id:r})}catch{n=s}return e.jsx("span",{className:j("text-[10px] px-1.5 py-0.5 rounded border font-medium",a),children:n})}function Ss({msg:s}){var n,i;const[t,a]=h.useState(!1),r=s.ts?s.ts.substring(11,19):"";return e.jsxs("div",{className:"flex gap-3 py-2.5 border-b border-border last:border-b-0 animate-in fade-in slide-in-from-top-1 duration-300",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground w-16 shrink-0 pt-0.5",children:r}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs font-medium",children:s.from}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:"→"}),e.jsx("span",{className:"text-xs font-medium",children:s.to}),e.jsx(Cs,{type:s.type}),s.id&&e.jsx("span",{className:"text-[10px] text-muted-foreground",children:s.id})]}),e.jsx("p",{className:"text-xs text-foreground/80",children:s.summary}),(s.ref||((n=s.data)==null?void 0:n.ref))&&e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[e.jsx(ae,{className:"w-3 h-3"}),e.jsx("span",{className:"font-mono truncate",children:s.ref||((i=s.data)==null?void 0:i.ref)})]}),s.data&&Object.keys(s.data).length>0&&e.jsxs("div",{children:[e.jsx("button",{onClick:()=>a(!t),className:"text-[10px] text-primary hover:underline flex items-center gap-0.5",children:t?e.jsxs(e.Fragment,{children:[e.jsx(me,{className:"w-3 h-3"})," collapse"]}):e.jsxs(e.Fragment,{children:[e.jsx(te,{className:"w-3 h-3"})," data"]})}),t&&e.jsx("pre",{className:"text-[10px] bg-muted p-2 rounded mt-1 overflow-x-auto max-h-40",children:JSON.stringify(s.data,null,2)})]})]})]})}function Ms({messages:s,total:t,filter:a,onFilterChange:r,onClearFilter:n,expanded:i,onExpandedChange:l}){const{formatMessage:c}=T(),x=!!(a.from||a.to||a.type),{senders:g,receivers:v,types:C}=h.useMemo(()=>{const d=new Set,m=new Set,_=new Set;for(const y of s)d.add(y.from),m.add(y.to),_.add(y.type);return{senders:Array.from(d).sort(),receivers:Array.from(m).sort(),types:Array.from(_).sort()}},[s]),N=[...s].reverse();return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("button",{onClick:()=>l(!i),className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors",children:[i?e.jsx(me,{className:"w-4 h-4"}):e.jsx(te,{className:"w-4 h-4"}),c({id:"team.timeline.title"}),e.jsxs("span",{className:"text-xs font-normal",children:["(",c({id:"team.timeline.showing"},{showing:s.length,total:t}),")"]})]}),x&&e.jsxs(k,{variant:"ghost",size:"sm",onClick:n,className:"h-6 text-xs gap-1",children:[e.jsx(xe,{className:"w-3 h-3"}),c({id:"team.timeline.clearFilters"})]})]}),i&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(W,{value:a.from??"__all__",onValueChange:d=>r({from:d==="__all__"?void 0:d}),children:[e.jsxs(I,{className:"w-[130px] h-7 text-xs",children:[e.jsx(es,{className:"w-3 h-3 mr-1"}),e.jsx(J,{placeholder:c({id:"team.timeline.filterFrom"})})]}),e.jsxs(G,{children:[e.jsx(D,{value:"__all__",children:c({id:"team.filterAll"})}),g.map(d=>e.jsx(D,{value:d,children:d},d))]})]}),e.jsxs(W,{value:a.to??"__all__",onValueChange:d=>r({to:d==="__all__"?void 0:d}),children:[e.jsx(I,{className:"w-[130px] h-7 text-xs",children:e.jsx(J,{placeholder:c({id:"team.timeline.filterTo"})})}),e.jsxs(G,{children:[e.jsx(D,{value:"__all__",children:c({id:"team.filterAll"})}),v.map(d=>e.jsx(D,{value:d,children:d},d))]})]}),e.jsxs(W,{value:a.type??"__all__",onValueChange:d=>r({type:d==="__all__"?void 0:d}),children:[e.jsx(I,{className:"w-[150px] h-7 text-xs",children:e.jsx(J,{placeholder:c({id:"team.timeline.filterType"})})}),e.jsxs(G,{children:[e.jsx(D,{value:"__all__",children:c({id:"team.filterAll"})}),C.map(d=>e.jsx(D,{value:d,children:d},d))]})]})]}),e.jsx(L,{children:e.jsx(E,{className:"p-3",children:N.length>0?e.jsx("div",{className:"divide-y-0",children:N.map(d=>e.jsx(Ss,{msg:d},d.id))}):e.jsxs("div",{className:"text-center py-8",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:c({id:"team.empty.noMessages"})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:c({id:"team.empty.noMessagesHint"})})]})})})]})]})}function pe(s){return s.endsWith(".json")?"json":s.endsWith(".md")?"markdown":s.endsWith(".txt")||s.endsWith(".log")||s.endsWith(".tsv")||s.endsWith(".csv")?"text":"unknown"}function ge(s){return s?s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/(1024*1024)).toFixed(1)} MB`:""}function ks(s){if(!s)return"";try{return new Date(s).toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return""}}function je({contentType:s}){return s==="json"?e.jsx(ts,{className:"w-4 h-4 text-blue-500"}):e.jsx(ae,{className:"w-4 h-4 text-gray-500"})}function ve({node:s,depth:t,expanded:a,selectedPath:r,onToggle:n,onSelect:i}){if(s.type==="directory"){const x=a.has(s.path);return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1 py-1.5 px-2 cursor-pointer hover:bg-accent/50 rounded transition-colors",style:{paddingLeft:t*16+8},onClick:()=>n(s.path),children:[x?e.jsx(te,{className:"w-4 h-4 text-muted-foreground"}):e.jsx(Re,{className:"w-4 h-4 text-muted-foreground"}),e.jsx(ss,{className:j("w-4 h-4",x?"text-amber-500":"text-amber-400")}),e.jsx("span",{className:"text-sm truncate",children:s.name})]}),x&&s.children&&e.jsx("div",{children:s.children.map(g=>e.jsx(ve,{node:g,depth:t+1,expanded:a,selectedPath:r,onToggle:n,onSelect:i},g.path))})]},s.path)}const l=r===s.path,c=s.contentType||pe(s.path);return e.jsxs("div",{className:j("flex items-center gap-1 py-1.5 px-2 cursor-pointer hover:bg-accent/50 rounded transition-colors",l&&"bg-accent"),style:{paddingLeft:t*16+28},onClick:()=>i(s),children:[e.jsx(je,{contentType:c}),e.jsx("span",{className:"text-sm truncate flex-1",children:s.name}),s.size!==void 0&&e.jsx("span",{className:"text-xs text-muted-foreground ml-2",children:ge(s.size)})]},s.path)}function Fs({teamName:s}){const{formatMessage:t}=T(),[a,r]=h.useState([]),[n,i]=h.useState(new Set),[l,c]=h.useState(null),[x,g]=h.useState(""),[v,C]=h.useState(!1),[N,d]=h.useState(!0),[m,_]=h.useState(null);h.useEffect(()=>{s&&(d(!0),_(null),De(s).then(f=>{r(f.tree||[]);const b=(f.tree||[]).filter(w=>w.type==="directory").map(w=>w.path);i(new Set(b))}).catch(f=>{console.error("Failed to load artifacts:",f),_(t({id:"team.artifacts.loadError",defaultMessage:"Failed to load artifacts"}))}).finally(()=>{d(!1)}))},[s,t]);const y=h.useCallback(f=>{i(b=>{const w=new Set(b);return w.has(f)?w.delete(f):w.add(f),w})},[]),F=h.useCallback(async f=>{if(f.type!=="directory"){c(f),C(!0),g("");try{const b=await $e(s,f.path);g(b.content)}catch(b){console.error("Failed to load file content:",b),g(t({id:"team.artifacts.contentError",defaultMessage:"Failed to load file content"}))}finally{C(!1)}}},[s,t]),A=l?l.contentType||pe(l.path):"text",M=A==="json"?"json":A==="markdown"?"markdown":"text";return N?e.jsxs("div",{className:"flex items-center justify-center py-12",children:[e.jsx(H,{className:"h-8 w-8 animate-spin text-muted-foreground"}),e.jsx("span",{className:"ml-3 text-muted-foreground",children:t({id:"team.artifacts.loading",defaultMessage:"Loading artifacts..."})})]}):m?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Q,{className:"h-12 w-12 text-destructive mb-4"}),e.jsx("p",{className:"text-muted-foreground",children:m})]}):a.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Q,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:t({id:"team.artifacts.noArtifacts",defaultMessage:"No artifacts yet"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t({id:"team.artifacts.emptyHint",defaultMessage:"Artifacts will appear here when the team generates them"})})]}):e.jsxs("div",{className:"flex h-[600px] border rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"w-72 shrink-0 border-r bg-muted/30 flex flex-col",children:[e.jsx("div",{className:"p-3 border-b bg-background shrink-0",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Q,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-medium",children:t({id:"team.artifacts.title",defaultMessage:"Artifacts"})})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:a.map(f=>e.jsx(ve,{node:f,depth:0,expanded:n,selectedPath:l==null?void 0:l.path,onToggle:y,onSelect:F},f.path))})]}),e.jsx("div",{className:"flex-1 flex flex-col min-w-0",children:l?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"p-3 border-b bg-muted/30 shrink-0",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(je,{contentType:A}),e.jsx("span",{className:"text-sm font-medium truncate",children:l.name}),l.size!==void 0&&e.jsx("span",{className:"text-xs text-muted-foreground",children:ge(l.size)}),l.modifiedAt&&e.jsx("span",{className:"text-xs text-muted-foreground ml-auto",children:ks(l.modifiedAt)})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:v?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(H,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):e.jsx(Ls,{content:x,contentType:M})})]}):e.jsx("div",{className:"flex-1 flex items-center justify-center text-center p-8",children:e.jsxs("div",{children:[e.jsx(ae,{className:"h-12 w-12 text-muted-foreground mx-auto mb-4"}),e.jsx("p",{className:"text-muted-foreground",children:t({id:"team.artifacts.selectFile",defaultMessage:"Select a file to preview"})})]})})})]})}function q({data:s,depth:t=0}){if(s===null)return e.jsx("span",{className:"text-red-500 font-mono text-sm",children:"null"});if(s===void 0)return e.jsx("span",{className:"text-muted-foreground font-mono text-sm",children:"undefined"});if(typeof s=="boolean")return e.jsx("span",{className:j("font-mono text-sm",s?"text-orange-500":"text-red-500"),children:s?"true":"false"});if(typeof s=="number")return e.jsx("span",{className:"text-blue-500 font-mono text-sm",children:s});if(typeof s=="string")return s.length>200?e.jsxs("span",{className:"text-green-600 dark:text-green-400 font-mono text-sm break-all",children:['"',s.slice(0,200),'..."']}):e.jsxs("span",{className:"text-green-600 dark:text-green-400 font-mono text-sm",children:['"',s,'"']});if(Array.isArray(s))return s.length===0?e.jsx("span",{className:"text-muted-foreground text-sm",children:"[]"}):e.jsx("div",{className:"space-y-2",children:s.map((a,r)=>e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(p,{variant:"outline",className:"text-xs shrink-0 mt-0.5",children:r}),e.jsx("div",{className:"flex-1 min-w-0",children:typeof a=="object"&&a!==null?e.jsx("div",{className:"bg-muted/30 rounded-lg p-2 border",children:e.jsx(q,{data:a,depth:t+1})}):e.jsx(q,{data:a,depth:t+1})})]},r))});if(typeof s=="object"){const a=Object.entries(s);return a.length===0?e.jsx("span",{className:"text-muted-foreground text-sm",children:"{}"}):e.jsx("div",{className:j("space-y-2",t>0&&"pl-2 border-l-2 border-border"),children:a.map(([r,n])=>{const i=typeof n=="object"&&n!==null,l=Array.isArray(n),c=l?n.length:i?Object.keys(n).length:0;return e.jsxs("div",{className:"group",children:[e.jsxs("div",{className:"flex items-center gap-2 py-1",children:[e.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-medium text-sm shrink-0",children:r}),i&&e.jsx(p,{variant:"secondary",className:"text-[10px] h-4 px-1",children:l?`${c} items`:`${c} fields`})]}),e.jsx("div",{className:"ml-3",children:i?e.jsx("div",{className:"bg-muted/20 rounded-md p-2 border",children:e.jsx(q,{data:n,depth:t+1})}):e.jsx(q,{data:n,depth:t+1})})]},r)})})}return e.jsx("span",{className:"text-sm",children:String(s)})}function As({data:s}){const t=h.useMemo(()=>{const a={type:"",fields:0,items:0,depth:0},r=(n,i)=>{a.depth=Math.max(a.depth,i),Array.isArray(n)?(a.type="Array",a.items=n.length,n.forEach(l=>r(l,i+1))):typeof n=="object"&&n!==null&&(a.type="Object",a.fields=Object.keys(n).length,Object.values(n).forEach(l=>r(l,i+1)))};return r(s,0),a},[s]);return e.jsxs("div",{className:"flex items-center gap-4 p-3 bg-muted/50 rounded-lg mb-4 text-sm",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(p,{variant:"outline",children:t.type})}),t.type==="Object"&&e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.fields})," fields"]}),t.type==="Array"&&e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.items})," items"]}),e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.depth})," levels deep"]})]})}function Ls({content:s,contentType:t}){if(!s)return e.jsx("div",{className:"text-muted-foreground text-sm",children:"No content"});if(t==="json")try{const a=JSON.parse(s);return e.jsxs("div",{className:"space-y-2",children:[e.jsx(As,{data:a}),e.jsx("div",{className:"bg-card rounded-lg",children:e.jsx(q,{data:a})})]})}catch{return e.jsx("pre",{className:"text-xs bg-muted/50 p-4 rounded-lg overflow-auto font-mono whitespace-pre-wrap break-words border",children:s})}return t==="markdown"?e.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:e.jsx("pre",{className:"whitespace-pre-wrap break-words font-sans text-sm leading-relaxed bg-transparent p-0",children:s})}):e.jsx("pre",{className:"text-xs bg-muted/50 p-4 rounded-lg overflow-auto font-mono whitespace-pre-wrap break-words border",children:s})}const Es={active:{variant:"info"},completed:{variant:"success"},archived:{variant:"secondary"}},oe={active:"team.status.active",completed:"team.status.completed",archived:"team.status.archived"};function Ps(s){if(!s)return"";try{return new Date(s).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}function Ds({team:s,onClick:t,onArchive:a,onUnarchive:r,onDelete:n,showActions:i=!0,actionsDisabled:l=!1,className:c}){const{formatMessage:x}=T(),{variant:g}=Es[s.status]||{variant:"default"},v=oe[s.status]?x({id:oe[s.status]}):s.status,C=s.status==="archived",N=m=>{m.target.closest("[data-radix-popper-content-wrapper]")||t==null||t(s.name)},d=(m,_)=>{switch(m.stopPropagation(),_){case"view":t==null||t(s.name);break;case"archive":a==null||a(s.name);break;case"unarchive":r==null||r(s.name);break;case"delete":n==null||n(s.name);break}};return e.jsx(L,{className:j("group cursor-pointer transition-all duration-200 hover:shadow-md hover:border-primary/30",c),onClick:N,children:e.jsxs(E,{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx("div",{className:"flex items-center gap-2 mb-1",children:e.jsx("h3",{className:"font-bold text-card-foreground text-sm tracking-wide truncate",children:s.name})})}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsx(p,{variant:g,children:v}),s.pipeline_mode&&e.jsxs(p,{variant:"default",className:"gap-1",children:[e.jsx(se,{className:"h-3 w-3"}),s.pipeline_mode]}),i&&e.jsxs(qe,{children:[e.jsx(ze,{asChild:!0,children:e.jsx(k,{variant:"ghost",size:"icon",className:"h-8 w-8 opacity-0 group-hover:opacity-100 transition-opacity",onClick:m=>m.stopPropagation(),disabled:l,children:e.jsx(as,{className:"h-4 w-4"})})}),e.jsxs(Ve,{align:"end",children:[e.jsxs(B,{onClick:m=>d(m,"view"),children:[e.jsx(rs,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.viewDetails"})]}),e.jsx(re,{}),C?e.jsxs(B,{onClick:m=>d(m,"unarchive"),children:[e.jsx(ns,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.unarchive"})]}):e.jsxs(B,{onClick:m=>d(m,"archive"),children:[e.jsx(is,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.archive"})]}),e.jsx(re,{}),e.jsxs(B,{onClick:m=>d(m,"delete"),className:"text-destructive focus:text-destructive",children:[e.jsx(Be,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.delete"})]})]})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ee,{className:"h-3.5 w-3.5"}),s.messageCount," ",x({id:"team.card.messages"})]}),s.lastActivity&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Oe,{className:"h-3.5 w-3.5"}),Ps(s.lastActivity)]})]}),s.members&&s.members.length>0&&e.jsxs("div",{className:"flex items-center gap-1.5 mt-2 flex-wrap",children:[e.jsx(U,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),s.members.map(m=>e.jsx(p,{variant:"outline",className:"text-[10px] px-1.5 py-0 font-normal",children:m},m))]})]})})}function $s({className:s}){return e.jsx(L,{className:j("animate-pulse",s),children:e.jsxs(E,{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsx("div",{className:"flex-1",children:e.jsx("div",{className:"h-5 w-32 rounded bg-muted"})}),e.jsx("div",{className:"h-5 w-16 rounded-full bg-muted"})]}),e.jsxs("div",{className:"mt-3 flex gap-4",children:[e.jsx("div",{className:"h-4 w-24 rounded bg-muted"}),e.jsx("div",{className:"h-4 w-20 rounded bg-muted"}),e.jsx("div",{className:"h-4 w-20 rounded bg-muted"})]})]})})}function Rs(){const{formatMessage:s}=T(),{locationFilter:t,setLocationFilter:a,searchQuery:r,setSearchQuery:n,selectTeamAndShowDetail:i}=z(),[l,c]=h.useState(!1),[x,g]=h.useState(null),{teams:v,isLoading:C,isFetching:N,refetch:d}=he(t),{archiveTeam:m,isArchiving:_}=ms(),{unarchiveTeam:y,isUnarchiving:F}=xs(),{deleteTeam:A,isDeleting:M}=us(),f=_||F||M,b=h.useMemo(()=>{if(!r)return v;const u=r.toLowerCase();return v.filter(P=>P.name.toLowerCase().includes(u))},[v,r]),w=async u=>{try{await m(u)}catch(P){console.error("Failed to archive team:",P)}},o=async u=>{try{await y(u)}catch(P){console.error("Failed to unarchive team:",P)}},$=u=>{g(u),c(!0)},R=async()=>{if(x)try{await A(x),c(!1),g(null)}catch(u){console.error("Failed to delete team:",u)}},V=()=>n("");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"w-5 h-5"}),e.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:s({id:"team.title"})})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s({id:"team.description"})})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(k,{variant:"outline",size:"sm",onClick:()=>d(),disabled:N,children:[e.jsx(de,{className:j("h-4 w-4 mr-2",N&&"animate-spin")}),s({id:"common.actions.refresh"})]})})]}),e.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center",children:[e.jsx(ue,{value:t,onValueChange:u=>a(u),tabs:[{value:"active",label:s({id:"team.filters.active"})},{value:"archived",label:s({id:"team.filters.archived"})},{value:"all",label:s({id:"team.filters.all"})}]}),e.jsxs("div",{className:"flex-1 max-w-sm relative",children:[e.jsx(Ke,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(Qe,{placeholder:s({id:"team.searchPlaceholder"}),value:r,onChange:u=>n(u.target.value),className:"pl-9 pr-9"}),r&&e.jsx("button",{onClick:V,className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:e.jsx(xe,{className:"h-4 w-4"})})]})]}),C?e.jsx("div",{className:"grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6}).map((u,P)=>e.jsx($s,{},P))}):b.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 px-4 border border-dashed border-border rounded-lg",children:[e.jsx(U,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-1",children:s(r?{id:"team.emptyState.noMatching"}:{id:"team.emptyState.noTeams"})}),e.jsx("p",{className:"text-sm text-muted-foreground text-center max-w-sm mb-4",children:s(r?{id:"team.emptyState.noMatchingDescription"}:{id:"team.emptyState.noTeamsDescription"})}),r&&e.jsx(k,{variant:"outline",onClick:V,children:s({id:"common.actions.clearFilters"})})]}):e.jsx("div",{className:"grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3",children:b.map(u=>e.jsx(Ds,{team:u,onClick:i,onArchive:w,onUnarchive:o,onDelete:$,actionsDisabled:f},u.name))}),e.jsx(Ue,{open:l,onOpenChange:c,children:e.jsxs(We,{children:[e.jsxs(Ie,{children:[e.jsx(Je,{children:s({id:"team.dialog.deleteTeam"})}),e.jsx(Ge,{children:s({id:"team.dialog.deleteConfirm"})})]}),e.jsxs(He,{children:[e.jsx(k,{variant:"outline",onClick:()=>{c(!1),g(null)},children:s({id:"team.dialog.cancel"})}),e.jsx(k,{variant:"destructive",onClick:R,disabled:M,children:s(M?{id:"team.dialog.deleting"}:{id:"team.actions.delete"})})]})]})})]})}const qs=["plan","impl","test","review"];function O(s){return s?s.charAt(0).toUpperCase()+s.slice(1).toLowerCase():""}function K(s,t){const a=s.toLowerCase(),r=t.filter(l=>{const c=l.from.toLowerCase();return c===a||c.startsWith(a)});if(r.length===0)return"pending";const n=r[r.length-1];return["shutdown","impl_complete","review_result","test_result"].includes(n.type)?"completed":n.type==="error"?"blocked":"in_progress"}function zs(s,t){if(s.pipeline_stages&&s.pipeline_stages.length>0)return s.pipeline_stages.map(a=>{var l;const r=a.toUpperCase(),n=a.toLowerCase(),i=(l=s.roles)==null?void 0:l.find(c=>c.toLowerCase().startsWith(n));return{id:r,label:O(a),role:i,status:K(a,t)}});if(s.roles&&s.roles.length>0){const a=s.roles.filter(r=>r.toLowerCase()!=="coordinator");if(a.length>0)return a.map(r=>({id:r.toUpperCase(),label:O(r),role:r,status:K(r,t)}))}if(t.length>0){const a=new Map;for(const r of t){const n=r.from;if(n.toLowerCase()==="coordinator")continue;const i=n.toLowerCase();a.has(i)||a.set(i,n)}if(a.size>0)return Array.from(a.entries()).map(([,r])=>({id:r.toUpperCase(),label:O(r),role:r,status:K(r,t)}))}return qs.map(a=>({id:a.toUpperCase(),label:O(a),role:void 0,status:K(a,t)}))}function Vs(s){if(!s||Object.keys(s).length===0)return null;const t=s.coordinator;return!t||typeof t.current_phase!="number"?null:{currentPhase:t.current_phase,totalPhases:typeof t.total_phases=="number"?t.total_phases:null,currentStep:typeof t.current_step=="string"?t.current_step:null,gapIteration:typeof t.gap_iteration=="number"?t.gap_iteration:0}}function et(){const{formatMessage:s}=T(),{selectedTeam:t,viewMode:a,autoRefresh:r,toggleAutoRefresh:n,messageFilter:i,setMessageFilter:l,clearMessageFilter:c,timelineExpanded:x,setTimelineExpanded:g,detailTab:v,setDetailTab:C,backToList:N,locationFilter:d}=z(),m=ne(Xe),_=ne(u=>u.toggleImmersiveMode),{teams:y,error:F,isLoading:A}=he(d),{messages:M,total:f}=os(a==="detail"?t:null,i),{members:b,totalMessages:w}=ds(a==="detail"?t:null),o=h.useMemo(()=>y.find(u=>u.name===t),[y,t]);h.useEffect(()=>{a==="detail"&&t&&!A&&y.length>0&&!o&&N()},[a,t,A,y.length,o,N]);const $=h.useMemo(()=>zs({pipeline_stages:o==null?void 0:o.pipeline_stages,role_state:o==null?void 0:o.role_state,roles:o==null?void 0:o.roles},M),[o==null?void 0:o.pipeline_stages,o==null?void 0:o.role_state,o==null?void 0:o.roles,M]),R=h.useMemo(()=>Vs(o==null?void 0:o.role_state),[o==null?void 0:o.role_state]);if(F&&a==="detail")return e.jsx("div",{className:"flex items-center justify-center min-h-[400px] p-8",children:e.jsxs("div",{className:"text-center max-w-md",children:[e.jsx("div",{className:"mb-4",children:e.jsx(Ye,{className:"w-16 h-16 mx-auto text-destructive"})}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:s({id:"team.error.loadFailed"})}),e.jsx("p",{className:"text-muted-foreground mb-6",children:F instanceof Error?F.message:String(F)}),e.jsxs("div",{className:"flex gap-3 justify-center",children:[e.jsx(k,{onClick:N,variant:"default",children:s({id:"team.detail.backToList"})}),e.jsx(k,{onClick:()=>window.location.reload(),variant:"outline",children:s({id:"common.actions.retry"})})]})]})});if(a==="list"||!t||a==="detail"&&y.length>0&&!o)return e.jsx("div",{className:"space-y-6",children:e.jsx(Rs,{})});const V=[{value:"pipeline",label:s({id:"team.tabs.pipeline"}),icon:e.jsx(se,{className:"h-4 w-4"})},{value:"artifacts",label:s({id:"team.tabs.artifacts"}),icon:e.jsx(Q,{className:"h-4 w-4"})},{value:"messages",label:s({id:"team.tabs.messages"}),icon:e.jsx(ee,{className:"h-4 w-4"})}];return e.jsxs("div",{className:j("space-y-6",m&&"h-screen overflow-hidden"),children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(hs,{selectedTeam:t,onBack:N,members:b,totalMessages:w,autoRefresh:r,onToggleAutoRefresh:n,skillType:o!=null&&o.team_name?`team-${o.team_name}`:void 0,pipelineMode:o==null?void 0:o.pipeline_mode}),e.jsx("button",{onClick:_,className:j("p-2 rounded-md transition-colors",m?"bg-primary/10 text-primary":"text-muted-foreground hover:text-foreground hover:bg-muted"),title:m?"Exit Fullscreen":"Fullscreen",children:m?e.jsx(ls,{className:"w-4 h-4"}):e.jsx(cs,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsx(L,{className:"lg:col-span-2 flex flex-col",children:e.jsx(E,{className:"p-4 flex-1",children:e.jsx(gs,{stages:$,phaseInfo:R})})}),e.jsx(L,{children:e.jsx(E,{className:"p-4",children:e.jsx(le,{members:b,stages:$,roleState:o==null?void 0:o.role_state})})})]}),R&&e.jsx(_s,{phaseInfo:R}),e.jsx(ue,{value:v,onValueChange:u=>C(u),tabs:V}),v==="pipeline"&&e.jsx(L,{children:e.jsx(E,{className:"p-6",children:e.jsx(le,{members:b,stages:$,roleState:o==null?void 0:o.role_state})})}),v==="artifacts"&&e.jsx(Fs,{teamName:t}),v==="messages"&&e.jsx(Ms,{messages:M,total:f,filter:i,onFilterChange:l,onClearFilter:c,expanded:x,onExpandedChange:g})]})}export{et as TeamPage,et as default};
|
|
2
|
-
//# sourceMappingURL=TeamPage-
|
|
1
|
+
import{ej as Ne,ek as be,el as ye,ab as X,aF as Y,aH as Z,em as we,en as Te,eo as _e,ep as Ce,eq as Se,er as Me,u as T,j as e,e as k,J as ke,B as p,cA as U,aV as ee,a1 as se,bu as Fe,R as de,es as Ae,et as Le,ad as Ee,N as H,k as Pe,c as j,C as L,a as E,r as h,cy as me,ap as te,X as xe,aq as W,ar as I,as as J,at as G,au as D,eu as De,ev as $e,ao as Re,D as qe,d as ze,f as Ve,g as B,h as re,T as Be,l as Oe,b as Ke,I as Qe,x as Ue,y as We,z as Ie,A as Je,E as Ge,G as He,o as ne,s as Xe,aw as Ye}from"./index-rLgoBCfV.js";import{T as ue}from"./TabsNavigation-DZAAspqR.js";import{S as Ze}from"./Switch-Ac6Ov7uy.js";import{F as es}from"./filter-q9g-bknU.js";import{F as ae}from"./file-text-DwuwPDPi.js";import{P as Q}from"./package-CH3smL37.js";import{F as ss}from"./folder-CL6vb42J.js";import{F as ts}from"./file-json-Bzq3U1Mx.js";import{E as as}from"./ellipsis-vertical-h8xtvw2_.js";import{E as rs}from"./eye-D3NY0bm6.js";import{A as ns}from"./archive-restore-CjS83f1V.js";import{A as is}from"./archive-DxemgIhF.js";import{M as ls,a as cs}from"./minimize-2-CtkoJXcz.js";const z=Ne()(be(ye(s=>({selectedTeam:null,autoRefresh:!0,messageFilter:{},timelineExpanded:!0,viewMode:"list",locationFilter:"active",searchQuery:"",detailTab:"pipeline",setSelectedTeam:t=>s({selectedTeam:t}),toggleAutoRefresh:()=>s(t=>({autoRefresh:!t.autoRefresh})),setMessageFilter:t=>s(a=>({messageFilter:{...a.messageFilter,...t}})),clearMessageFilter:()=>s({messageFilter:{}}),setTimelineExpanded:t=>s({timelineExpanded:t}),setViewMode:t=>s({viewMode:t}),setLocationFilter:t=>s({locationFilter:t}),setSearchQuery:t=>s({searchQuery:t}),setDetailTab:t=>s({detailTab:t}),selectTeamAndShowDetail:t=>s({selectedTeam:t,viewMode:"detail",detailTab:"pipeline"}),backToList:()=>s({viewMode:"list",detailTab:"pipeline"})}),{name:"ccw-team-store"}),{name:"TeamStore"})),S={all:["teams"],lists:()=>[...S.all,"list"],listByLocation:s=>[...S.lists(),s],messages:(s,t)=>[...S.all,"messages",s,t],status:s=>[...S.all,"status",s]};function he(s){var n;const t=z(i=>i.autoRefresh),a=s||"active",r=X({queryKey:S.listByLocation(a),queryFn:async()=>({teams:(await Ce(a)).teams??[]}),staleTime:1e4,refetchInterval:t?1e4:!1});return{teams:((n=r.data)==null?void 0:n.teams)??[],isLoading:r.isLoading,isFetching:r.isFetching,error:r.error,refetch:r.refetch}}function os(s,t,a){var i,l;const r=z(c=>c.autoRefresh),n=X({queryKey:S.messages(s??"",t),queryFn:async()=>{if(!s)return{total:0,showing:0,messages:[]};const c=await Se(s,{...t,last:50});return{total:c.total,showing:c.showing,messages:c.messages}},enabled:!!s,staleTime:5e3,refetchInterval:r?5e3:!1});return{messages:((i=n.data)==null?void 0:i.messages)??[],total:((l=n.data)==null?void 0:l.total)??0,isLoading:n.isLoading,error:n.error,refetch:n.refetch}}function ds(s){var r,n;const t=z(i=>i.autoRefresh),a=X({queryKey:S.status(s??""),queryFn:async()=>{if(!s)return{members:[],total_messages:0};const i=await Me(s);return{members:i.members,total_messages:i.total_messages}},enabled:!!s,staleTime:5e3,refetchInterval:t?5e3:!1});return{members:((r=a.data)==null?void 0:r.members)??[],totalMessages:((n=a.data)==null?void 0:n.total_messages)??0,isLoading:a.isLoading,error:a.error,refetch:a.refetch}}function ms(){const s=Y(),t=Z({mutationFn:we,onSuccess:()=>{s.invalidateQueries({queryKey:S.all})}});return{archiveTeam:t.mutateAsync,isArchiving:t.isPending,error:t.error}}function xs(){const s=Y(),t=Z({mutationFn:Te,onSuccess:()=>{s.invalidateQueries({queryKey:S.all})}});return{unarchiveTeam:t.mutateAsync,isUnarchiving:t.isPending,error:t.error}}function us(){const s=Y(),t=Z({mutationFn:_e,onSuccess:()=>{s.invalidateQueries({queryKey:S.all})}});return{deleteTeam:t.mutateAsync,isDeleting:t.isPending,error:t.error}}function hs({selectedTeam:s,onBack:t,members:a,totalMessages:r,autoRefresh:n,onToggleAutoRefresh:i,skillType:l,pipelineMode:c}){const{formatMessage:x}=T();return e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsxs(k,{variant:"ghost",size:"sm",onClick:t,className:"gap-1",children:[e.jsx(ke,{className:"h-4 w-4"}),x({id:"team.detail.backToList"})]}),s&&e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg font-semibold",children:s}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(p,{variant:"secondary",className:"gap-1",children:[e.jsx(U,{className:"w-3 h-3"}),x({id:"team.members"}),": ",a.length]}),e.jsxs(p,{variant:"secondary",className:"gap-1",children:[e.jsx(ee,{className:"w-3 h-3"}),x({id:"team.messages"}),": ",r]})]}),(l||c)&&e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsx(p,{variant:"outline",className:"gap-1",children:l}),c&&e.jsxs(p,{variant:"default",className:"gap-1",children:[e.jsx(se,{className:"w-3 h-3"}),c]})]})]})]}),e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ze,{id:"auto-refresh",checked:n,onCheckedChange:i}),e.jsx(Fe,{htmlFor:"auto-refresh",className:"text-sm text-muted-foreground cursor-pointer",children:x({id:"team.autoRefresh"})}),n&&e.jsx(de,{className:"w-3.5 h-3.5 text-primary animate-spin",style:{animationDuration:"3s"}})]})})]})}const fe={completed:{icon:Pe,color:"text-green-500",bg:"bg-green-500/10 border-green-500/30"},in_progress:{icon:H,color:"text-blue-500",bg:"bg-blue-500/10 border-blue-500/30",animate:!0},pending:{icon:Ee,color:"text-muted-foreground",bg:"bg-muted border-border"},blocked:{icon:Le,color:"text-red-500",bg:"bg-red-500/10 border-red-500/30"},skipped:{icon:Ae,color:"text-yellow-500",bg:"bg-yellow-500/10 border-yellow-500/30"}},fs=["completed","in_progress","pending","blocked","skipped"];function ie({stage:s}){const{formatMessage:t}=T(),a=fe[s.status],r=a.icon,n=s.status==="in_progress"?"inProgress":s.status;return e.jsxs("div",{className:j("flex flex-col items-center gap-1.5 px-4 py-3 rounded-lg border-2 min-w-[90px] transition-all",a.bg),children:[e.jsx(r,{className:j("w-5 h-5",a.color,a.animate&&"animate-spin"),style:a.animate?{animationDuration:"2s"}:void 0}),e.jsx("span",{className:"text-xs font-medium",children:s.label}),e.jsx("span",{className:j("text-[10px]",a.color),children:t({id:`team.pipeline.${n}`})}),s.role&&e.jsx("span",{className:"text-[10px] text-muted-foreground truncate max-w-[80px]",children:s.role})]})}function ps(){return e.jsxs("div",{className:"flex items-center px-1",children:[e.jsx("div",{className:"w-6 h-0.5 bg-border"}),e.jsx("div",{className:"w-0 h-0 border-t-[4px] border-t-transparent border-b-[4px] border-b-transparent border-l-[6px] border-l-border"})]})}function gs({stages:s,phaseInfo:t}){const{formatMessage:a}=T();return s.length===0?e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:a({id:"team.pipeline.title"})}),e.jsx("p",{className:"text-xs text-muted-foreground text-center py-8",children:a({id:"team.pipeline.noStages"})})]}):e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"space-y-3 flex-1",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:a({id:"team.pipeline.title"})}),t&&e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsxs(p,{variant:"secondary",children:[a({id:"team.coordinates.phase"}),": ",t.currentPhase,t.totalPhases!=null&&`/${t.totalPhases}`]}),t.currentStep&&e.jsxs(p,{variant:"secondary",children:[a({id:"team.coordinates.step"}),": ",t.currentStep]}),t.gapIteration>0&&e.jsxs(p,{variant:"outline",children:[a({id:"team.coordinates.gap"}),": ",t.gapIteration]})]}),e.jsx("div",{className:"hidden sm:flex items-center gap-0",children:s.map((r,n)=>e.jsxs("div",{className:"flex items-center",children:[n>0&&e.jsx(ps,{}),e.jsx(ie,{stage:r})]},r.id))}),e.jsx("div",{className:"flex sm:hidden flex-col items-center gap-2",children:s.map(r=>e.jsx(ie,{stage:r},r.id))})]}),e.jsx("div",{className:"flex flex-wrap gap-3 text-[10px] text-muted-foreground mt-auto pt-3 border-t border-border",children:fs.map(r=>{const n=fe[r],i=n.icon,l=r==="in_progress"?"inProgress":r;return e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(i,{className:j("w-3 h-3",n.color)}),a({id:`team.pipeline.${l}`})]},r)})})]})}function js(s){if(!s)return"";const t=Date.now(),a=new Date(s).getTime(),r=t-a;if(r<0)return"now";const n=Math.floor(r/1e3);if(n<60)return`${n}s`;const i=Math.floor(n/60);if(i<60)return`${i}m`;const l=Math.floor(i/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}function vs(s){return s.lastSeen&&Date.now()-new Date(s.lastSeen).getTime()<120*1e3?"active":"idle"}function Ns({members:s}){const{formatMessage:t}=T();return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:t({id:"team.membersPanel.title"})}),e.jsxs("div",{className:"space-y-2",children:[s.map(a=>{const r=vs(a),n=r==="active";return e.jsx(L,{className:"overflow-hidden",children:e.jsx(E,{className:"p-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"pt-0.5",children:e.jsx("div",{className:j("w-2.5 h-2.5 rounded-full",n?"bg-green-500 shadow-[0_0_6px_rgba(34,197,94,0.5)]":"bg-muted-foreground/40")})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:a.member}),e.jsx(p,{variant:n?"success":"secondary",className:"text-[10px] px-1.5 py-0",children:t({id:`team.membersPanel.${r}`})})]}),a.lastAction&&e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:a.lastAction}),e.jsxs("div",{className:"flex items-center gap-3 text-[10px] text-muted-foreground",children:[e.jsxs("span",{children:[a.messageCount," ",t({id:"team.messages"}).toLowerCase()]}),a.lastSeen&&e.jsxs("span",{children:[js(a.lastSeen)," ",t({id:"team.membersPanel.ago"})]})]})]})]})})},a.member)}),s.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-4",children:t({id:"team.empty.noMessages"})})]})]})}function bs(s){if(!s)return"";const t=Date.now(),a=new Date(s).getTime(),r=t-a;if(r<0)return"now";const n=Math.floor(r/1e3);if(n<60)return`${n}s`;const i=Math.floor(n/60);if(i<60)return`${i}m`;const l=Math.floor(i/60);return l<24?`${l}h`:`${Math.floor(l/24)}d`}function ys(s){return s.lastSeen&&Date.now()-new Date(s.lastSeen).getTime()<120*1e3?"active":"idle"}function ws(s,t){const a=s.member.toLowerCase();return t.find(r=>r.role&&r.role.toLowerCase()===a||r.id.toLowerCase()===a)}const Ts={completed:"success",in_progress:"info",pending:"secondary",blocked:"destructive",skipped:"warning"};function le({members:s,stages:t,roleState:a}){const{formatMessage:r}=T();return t.length===0?e.jsx(Ns,{members:s}):e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-sm font-medium text-muted-foreground",children:r({id:"team.membersPanel.title"})}),e.jsxs("div",{className:"space-y-2",children:[s.map(n=>{const i=ys(n),l=i==="active",c=ws(n,t);return e.jsx(L,{className:"overflow-hidden",children:e.jsx(E,{className:"p-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"pt-0.5",children:e.jsx("div",{className:j("w-2.5 h-2.5 rounded-full",l?"bg-green-500 shadow-[0_0_6px_rgba(34,197,94,0.5)]":"bg-muted-foreground/40")})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:n.member}),e.jsx(p,{variant:l?"success":"secondary",className:"text-[10px] px-1.5 py-0",children:r({id:`team.membersPanel.${i}`})}),c&&e.jsx(p,{variant:Ts[c.status]??"secondary",className:"text-[10px] px-1.5 py-0",children:c.label})]}),n.lastAction&&e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:n.lastAction}),e.jsxs("div",{className:"flex items-center gap-3 text-[10px] text-muted-foreground",children:[e.jsxs("span",{children:[n.messageCount," ",r({id:"team.messages"}).toLowerCase()]}),n.lastSeen&&e.jsxs("span",{children:[bs(n.lastSeen)," ",r({id:"team.membersPanel.ago"})]})]})]})]})})},n.member)}),s.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-4",children:r({id:"team.empty.noMessages"})})]})]})}function _s({phaseInfo:s}){const{formatMessage:t}=T();return e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsxs(p,{variant:"secondary",children:[t({id:"team.coordinates.phase"}),": ",s.currentPhase,s.totalPhases!=null&&`/${s.totalPhases}`]}),s.currentStep&&e.jsxs(p,{variant:"secondary",children:[t({id:"team.coordinates.step"}),": ",s.currentStep]}),s.gapIteration>0&&e.jsxs(p,{variant:"outline",children:[t({id:"team.coordinates.gap"}),": ",s.gapIteration]})]})}const ce={plan_ready:"bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-500/30",plan_approved:"bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-500/30",plan_revision:"bg-amber-500/15 text-amber-600 dark:text-amber-400 border-amber-500/30",task_unblocked:"bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 border-cyan-500/30",impl_complete:"bg-primary/15 text-primary border-primary/30",impl_progress:"bg-primary/15 text-primary border-primary/30",test_result:"bg-green-500/15 text-green-600 dark:text-green-400 border-green-500/30",review_result:"bg-purple-500/15 text-purple-600 dark:text-purple-400 border-purple-500/30",fix_required:"bg-red-500/15 text-red-600 dark:text-red-400 border-red-500/30",error:"bg-red-500/15 text-red-600 dark:text-red-400 border-red-500/30",shutdown:"bg-muted text-muted-foreground border-border",message:"bg-muted text-muted-foreground border-border"};function Cs({type:s}){const{formatMessage:t}=T(),a=ce[s]||ce.message,r=`team.messageType.${s}`;let n;try{n=t({id:r})}catch{n=s}return e.jsx("span",{className:j("text-[10px] px-1.5 py-0.5 rounded border font-medium",a),children:n})}function Ss({msg:s}){var n,i;const[t,a]=h.useState(!1),r=s.ts?s.ts.substring(11,19):"";return e.jsxs("div",{className:"flex gap-3 py-2.5 border-b border-border last:border-b-0 animate-in fade-in slide-in-from-top-1 duration-300",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground w-16 shrink-0 pt-0.5",children:r}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs font-medium",children:s.from}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:"→"}),e.jsx("span",{className:"text-xs font-medium",children:s.to}),e.jsx(Cs,{type:s.type}),s.id&&e.jsx("span",{className:"text-[10px] text-muted-foreground",children:s.id})]}),e.jsx("p",{className:"text-xs text-foreground/80",children:s.summary}),(s.ref||((n=s.data)==null?void 0:n.ref))&&e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[e.jsx(ae,{className:"w-3 h-3"}),e.jsx("span",{className:"font-mono truncate",children:s.ref||((i=s.data)==null?void 0:i.ref)})]}),s.data&&Object.keys(s.data).length>0&&e.jsxs("div",{children:[e.jsx("button",{onClick:()=>a(!t),className:"text-[10px] text-primary hover:underline flex items-center gap-0.5",children:t?e.jsxs(e.Fragment,{children:[e.jsx(me,{className:"w-3 h-3"})," collapse"]}):e.jsxs(e.Fragment,{children:[e.jsx(te,{className:"w-3 h-3"})," data"]})}),t&&e.jsx("pre",{className:"text-[10px] bg-muted p-2 rounded mt-1 overflow-x-auto max-h-40",children:JSON.stringify(s.data,null,2)})]})]})]})}function Ms({messages:s,total:t,filter:a,onFilterChange:r,onClearFilter:n,expanded:i,onExpandedChange:l}){const{formatMessage:c}=T(),x=!!(a.from||a.to||a.type),{senders:g,receivers:v,types:C}=h.useMemo(()=>{const d=new Set,m=new Set,_=new Set;for(const y of s)d.add(y.from),m.add(y.to),_.add(y.type);return{senders:Array.from(d).sort(),receivers:Array.from(m).sort(),types:Array.from(_).sort()}},[s]),N=[...s].reverse();return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("button",{onClick:()=>l(!i),className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors",children:[i?e.jsx(me,{className:"w-4 h-4"}):e.jsx(te,{className:"w-4 h-4"}),c({id:"team.timeline.title"}),e.jsxs("span",{className:"text-xs font-normal",children:["(",c({id:"team.timeline.showing"},{showing:s.length,total:t}),")"]})]}),x&&e.jsxs(k,{variant:"ghost",size:"sm",onClick:n,className:"h-6 text-xs gap-1",children:[e.jsx(xe,{className:"w-3 h-3"}),c({id:"team.timeline.clearFilters"})]})]}),i&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(W,{value:a.from??"__all__",onValueChange:d=>r({from:d==="__all__"?void 0:d}),children:[e.jsxs(I,{className:"w-[130px] h-7 text-xs",children:[e.jsx(es,{className:"w-3 h-3 mr-1"}),e.jsx(J,{placeholder:c({id:"team.timeline.filterFrom"})})]}),e.jsxs(G,{children:[e.jsx(D,{value:"__all__",children:c({id:"team.filterAll"})}),g.map(d=>e.jsx(D,{value:d,children:d},d))]})]}),e.jsxs(W,{value:a.to??"__all__",onValueChange:d=>r({to:d==="__all__"?void 0:d}),children:[e.jsx(I,{className:"w-[130px] h-7 text-xs",children:e.jsx(J,{placeholder:c({id:"team.timeline.filterTo"})})}),e.jsxs(G,{children:[e.jsx(D,{value:"__all__",children:c({id:"team.filterAll"})}),v.map(d=>e.jsx(D,{value:d,children:d},d))]})]}),e.jsxs(W,{value:a.type??"__all__",onValueChange:d=>r({type:d==="__all__"?void 0:d}),children:[e.jsx(I,{className:"w-[150px] h-7 text-xs",children:e.jsx(J,{placeholder:c({id:"team.timeline.filterType"})})}),e.jsxs(G,{children:[e.jsx(D,{value:"__all__",children:c({id:"team.filterAll"})}),C.map(d=>e.jsx(D,{value:d,children:d},d))]})]})]}),e.jsx(L,{children:e.jsx(E,{className:"p-3",children:N.length>0?e.jsx("div",{className:"divide-y-0",children:N.map(d=>e.jsx(Ss,{msg:d},d.id))}):e.jsxs("div",{className:"text-center py-8",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:c({id:"team.empty.noMessages"})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:c({id:"team.empty.noMessagesHint"})})]})})})]})]})}function pe(s){return s.endsWith(".json")?"json":s.endsWith(".md")?"markdown":s.endsWith(".txt")||s.endsWith(".log")||s.endsWith(".tsv")||s.endsWith(".csv")?"text":"unknown"}function ge(s){return s?s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/(1024*1024)).toFixed(1)} MB`:""}function ks(s){if(!s)return"";try{return new Date(s).toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return""}}function je({contentType:s}){return s==="json"?e.jsx(ts,{className:"w-4 h-4 text-blue-500"}):e.jsx(ae,{className:"w-4 h-4 text-gray-500"})}function ve({node:s,depth:t,expanded:a,selectedPath:r,onToggle:n,onSelect:i}){if(s.type==="directory"){const x=a.has(s.path);return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1 py-1.5 px-2 cursor-pointer hover:bg-accent/50 rounded transition-colors",style:{paddingLeft:t*16+8},onClick:()=>n(s.path),children:[x?e.jsx(te,{className:"w-4 h-4 text-muted-foreground"}):e.jsx(Re,{className:"w-4 h-4 text-muted-foreground"}),e.jsx(ss,{className:j("w-4 h-4",x?"text-amber-500":"text-amber-400")}),e.jsx("span",{className:"text-sm truncate",children:s.name})]}),x&&s.children&&e.jsx("div",{children:s.children.map(g=>e.jsx(ve,{node:g,depth:t+1,expanded:a,selectedPath:r,onToggle:n,onSelect:i},g.path))})]},s.path)}const l=r===s.path,c=s.contentType||pe(s.path);return e.jsxs("div",{className:j("flex items-center gap-1 py-1.5 px-2 cursor-pointer hover:bg-accent/50 rounded transition-colors",l&&"bg-accent"),style:{paddingLeft:t*16+28},onClick:()=>i(s),children:[e.jsx(je,{contentType:c}),e.jsx("span",{className:"text-sm truncate flex-1",children:s.name}),s.size!==void 0&&e.jsx("span",{className:"text-xs text-muted-foreground ml-2",children:ge(s.size)})]},s.path)}function Fs({teamName:s}){const{formatMessage:t}=T(),[a,r]=h.useState([]),[n,i]=h.useState(new Set),[l,c]=h.useState(null),[x,g]=h.useState(""),[v,C]=h.useState(!1),[N,d]=h.useState(!0),[m,_]=h.useState(null);h.useEffect(()=>{s&&(d(!0),_(null),De(s).then(f=>{r(f.tree||[]);const b=(f.tree||[]).filter(w=>w.type==="directory").map(w=>w.path);i(new Set(b))}).catch(f=>{console.error("Failed to load artifacts:",f),_(t({id:"team.artifacts.loadError",defaultMessage:"Failed to load artifacts"}))}).finally(()=>{d(!1)}))},[s,t]);const y=h.useCallback(f=>{i(b=>{const w=new Set(b);return w.has(f)?w.delete(f):w.add(f),w})},[]),F=h.useCallback(async f=>{if(f.type!=="directory"){c(f),C(!0),g("");try{const b=await $e(s,f.path);g(b.content)}catch(b){console.error("Failed to load file content:",b),g(t({id:"team.artifacts.contentError",defaultMessage:"Failed to load file content"}))}finally{C(!1)}}},[s,t]),A=l?l.contentType||pe(l.path):"text",M=A==="json"?"json":A==="markdown"?"markdown":"text";return N?e.jsxs("div",{className:"flex items-center justify-center py-12",children:[e.jsx(H,{className:"h-8 w-8 animate-spin text-muted-foreground"}),e.jsx("span",{className:"ml-3 text-muted-foreground",children:t({id:"team.artifacts.loading",defaultMessage:"Loading artifacts..."})})]}):m?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Q,{className:"h-12 w-12 text-destructive mb-4"}),e.jsx("p",{className:"text-muted-foreground",children:m})]}):a.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Q,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:t({id:"team.artifacts.noArtifacts",defaultMessage:"No artifacts yet"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t({id:"team.artifacts.emptyHint",defaultMessage:"Artifacts will appear here when the team generates them"})})]}):e.jsxs("div",{className:"flex h-[600px] border rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"w-72 shrink-0 border-r bg-muted/30 flex flex-col",children:[e.jsx("div",{className:"p-3 border-b bg-background shrink-0",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Q,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-medium",children:t({id:"team.artifacts.title",defaultMessage:"Artifacts"})})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:a.map(f=>e.jsx(ve,{node:f,depth:0,expanded:n,selectedPath:l==null?void 0:l.path,onToggle:y,onSelect:F},f.path))})]}),e.jsx("div",{className:"flex-1 flex flex-col min-w-0",children:l?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"p-3 border-b bg-muted/30 shrink-0",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(je,{contentType:A}),e.jsx("span",{className:"text-sm font-medium truncate",children:l.name}),l.size!==void 0&&e.jsx("span",{className:"text-xs text-muted-foreground",children:ge(l.size)}),l.modifiedAt&&e.jsx("span",{className:"text-xs text-muted-foreground ml-auto",children:ks(l.modifiedAt)})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:v?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(H,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):e.jsx(Ls,{content:x,contentType:M})})]}):e.jsx("div",{className:"flex-1 flex items-center justify-center text-center p-8",children:e.jsxs("div",{children:[e.jsx(ae,{className:"h-12 w-12 text-muted-foreground mx-auto mb-4"}),e.jsx("p",{className:"text-muted-foreground",children:t({id:"team.artifacts.selectFile",defaultMessage:"Select a file to preview"})})]})})})]})}function q({data:s,depth:t=0}){if(s===null)return e.jsx("span",{className:"text-red-500 font-mono text-sm",children:"null"});if(s===void 0)return e.jsx("span",{className:"text-muted-foreground font-mono text-sm",children:"undefined"});if(typeof s=="boolean")return e.jsx("span",{className:j("font-mono text-sm",s?"text-orange-500":"text-red-500"),children:s?"true":"false"});if(typeof s=="number")return e.jsx("span",{className:"text-blue-500 font-mono text-sm",children:s});if(typeof s=="string")return s.length>200?e.jsxs("span",{className:"text-green-600 dark:text-green-400 font-mono text-sm break-all",children:['"',s.slice(0,200),'..."']}):e.jsxs("span",{className:"text-green-600 dark:text-green-400 font-mono text-sm",children:['"',s,'"']});if(Array.isArray(s))return s.length===0?e.jsx("span",{className:"text-muted-foreground text-sm",children:"[]"}):e.jsx("div",{className:"space-y-2",children:s.map((a,r)=>e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(p,{variant:"outline",className:"text-xs shrink-0 mt-0.5",children:r}),e.jsx("div",{className:"flex-1 min-w-0",children:typeof a=="object"&&a!==null?e.jsx("div",{className:"bg-muted/30 rounded-lg p-2 border",children:e.jsx(q,{data:a,depth:t+1})}):e.jsx(q,{data:a,depth:t+1})})]},r))});if(typeof s=="object"){const a=Object.entries(s);return a.length===0?e.jsx("span",{className:"text-muted-foreground text-sm",children:"{}"}):e.jsx("div",{className:j("space-y-2",t>0&&"pl-2 border-l-2 border-border"),children:a.map(([r,n])=>{const i=typeof n=="object"&&n!==null,l=Array.isArray(n),c=l?n.length:i?Object.keys(n).length:0;return e.jsxs("div",{className:"group",children:[e.jsxs("div",{className:"flex items-center gap-2 py-1",children:[e.jsx("span",{className:"text-purple-600 dark:text-purple-400 font-medium text-sm shrink-0",children:r}),i&&e.jsx(p,{variant:"secondary",className:"text-[10px] h-4 px-1",children:l?`${c} items`:`${c} fields`})]}),e.jsx("div",{className:"ml-3",children:i?e.jsx("div",{className:"bg-muted/20 rounded-md p-2 border",children:e.jsx(q,{data:n,depth:t+1})}):e.jsx(q,{data:n,depth:t+1})})]},r)})})}return e.jsx("span",{className:"text-sm",children:String(s)})}function As({data:s}){const t=h.useMemo(()=>{const a={type:"",fields:0,items:0,depth:0},r=(n,i)=>{a.depth=Math.max(a.depth,i),Array.isArray(n)?(a.type="Array",a.items=n.length,n.forEach(l=>r(l,i+1))):typeof n=="object"&&n!==null&&(a.type="Object",a.fields=Object.keys(n).length,Object.values(n).forEach(l=>r(l,i+1)))};return r(s,0),a},[s]);return e.jsxs("div",{className:"flex items-center gap-4 p-3 bg-muted/50 rounded-lg mb-4 text-sm",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(p,{variant:"outline",children:t.type})}),t.type==="Object"&&e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.fields})," fields"]}),t.type==="Array"&&e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.items})," items"]}),e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium text-foreground",children:t.depth})," levels deep"]})]})}function Ls({content:s,contentType:t}){if(!s)return e.jsx("div",{className:"text-muted-foreground text-sm",children:"No content"});if(t==="json")try{const a=JSON.parse(s);return e.jsxs("div",{className:"space-y-2",children:[e.jsx(As,{data:a}),e.jsx("div",{className:"bg-card rounded-lg",children:e.jsx(q,{data:a})})]})}catch{return e.jsx("pre",{className:"text-xs bg-muted/50 p-4 rounded-lg overflow-auto font-mono whitespace-pre-wrap break-words border",children:s})}return t==="markdown"?e.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:e.jsx("pre",{className:"whitespace-pre-wrap break-words font-sans text-sm leading-relaxed bg-transparent p-0",children:s})}):e.jsx("pre",{className:"text-xs bg-muted/50 p-4 rounded-lg overflow-auto font-mono whitespace-pre-wrap break-words border",children:s})}const Es={active:{variant:"info"},completed:{variant:"success"},archived:{variant:"secondary"}},oe={active:"team.status.active",completed:"team.status.completed",archived:"team.status.archived"};function Ps(s){if(!s)return"";try{return new Date(s).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}function Ds({team:s,onClick:t,onArchive:a,onUnarchive:r,onDelete:n,showActions:i=!0,actionsDisabled:l=!1,className:c}){const{formatMessage:x}=T(),{variant:g}=Es[s.status]||{variant:"default"},v=oe[s.status]?x({id:oe[s.status]}):s.status,C=s.status==="archived",N=m=>{m.target.closest("[data-radix-popper-content-wrapper]")||t==null||t(s.name)},d=(m,_)=>{switch(m.stopPropagation(),_){case"view":t==null||t(s.name);break;case"archive":a==null||a(s.name);break;case"unarchive":r==null||r(s.name);break;case"delete":n==null||n(s.name);break}};return e.jsx(L,{className:j("group cursor-pointer transition-all duration-200 hover:shadow-md hover:border-primary/30",c),onClick:N,children:e.jsxs(E,{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx("div",{className:"flex items-center gap-2 mb-1",children:e.jsx("h3",{className:"font-bold text-card-foreground text-sm tracking-wide truncate",children:s.name})})}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsx(p,{variant:g,children:v}),s.pipeline_mode&&e.jsxs(p,{variant:"default",className:"gap-1",children:[e.jsx(se,{className:"h-3 w-3"}),s.pipeline_mode]}),i&&e.jsxs(qe,{children:[e.jsx(ze,{asChild:!0,children:e.jsx(k,{variant:"ghost",size:"icon",className:"h-8 w-8 opacity-0 group-hover:opacity-100 transition-opacity",onClick:m=>m.stopPropagation(),disabled:l,children:e.jsx(as,{className:"h-4 w-4"})})}),e.jsxs(Ve,{align:"end",children:[e.jsxs(B,{onClick:m=>d(m,"view"),children:[e.jsx(rs,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.viewDetails"})]}),e.jsx(re,{}),C?e.jsxs(B,{onClick:m=>d(m,"unarchive"),children:[e.jsx(ns,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.unarchive"})]}):e.jsxs(B,{onClick:m=>d(m,"archive"),children:[e.jsx(is,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.archive"})]}),e.jsx(re,{}),e.jsxs(B,{onClick:m=>d(m,"delete"),className:"text-destructive focus:text-destructive",children:[e.jsx(Be,{className:"mr-2 h-4 w-4"}),x({id:"team.actions.delete"})]})]})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ee,{className:"h-3.5 w-3.5"}),s.messageCount," ",x({id:"team.card.messages"})]}),s.lastActivity&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Oe,{className:"h-3.5 w-3.5"}),Ps(s.lastActivity)]})]}),s.members&&s.members.length>0&&e.jsxs("div",{className:"flex items-center gap-1.5 mt-2 flex-wrap",children:[e.jsx(U,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),s.members.map(m=>e.jsx(p,{variant:"outline",className:"text-[10px] px-1.5 py-0 font-normal",children:m},m))]})]})})}function $s({className:s}){return e.jsx(L,{className:j("animate-pulse",s),children:e.jsxs(E,{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsx("div",{className:"flex-1",children:e.jsx("div",{className:"h-5 w-32 rounded bg-muted"})}),e.jsx("div",{className:"h-5 w-16 rounded-full bg-muted"})]}),e.jsxs("div",{className:"mt-3 flex gap-4",children:[e.jsx("div",{className:"h-4 w-24 rounded bg-muted"}),e.jsx("div",{className:"h-4 w-20 rounded bg-muted"}),e.jsx("div",{className:"h-4 w-20 rounded bg-muted"})]})]})})}function Rs(){const{formatMessage:s}=T(),{locationFilter:t,setLocationFilter:a,searchQuery:r,setSearchQuery:n,selectTeamAndShowDetail:i}=z(),[l,c]=h.useState(!1),[x,g]=h.useState(null),{teams:v,isLoading:C,isFetching:N,refetch:d}=he(t),{archiveTeam:m,isArchiving:_}=ms(),{unarchiveTeam:y,isUnarchiving:F}=xs(),{deleteTeam:A,isDeleting:M}=us(),f=_||F||M,b=h.useMemo(()=>{if(!r)return v;const u=r.toLowerCase();return v.filter(P=>P.name.toLowerCase().includes(u))},[v,r]),w=async u=>{try{await m(u)}catch(P){console.error("Failed to archive team:",P)}},o=async u=>{try{await y(u)}catch(P){console.error("Failed to unarchive team:",P)}},$=u=>{g(u),c(!0)},R=async()=>{if(x)try{await A(x),c(!1),g(null)}catch(u){console.error("Failed to delete team:",u)}},V=()=>n("");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"w-5 h-5"}),e.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:s({id:"team.title"})})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s({id:"team.description"})})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(k,{variant:"outline",size:"sm",onClick:()=>d(),disabled:N,children:[e.jsx(de,{className:j("h-4 w-4 mr-2",N&&"animate-spin")}),s({id:"common.actions.refresh"})]})})]}),e.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center",children:[e.jsx(ue,{value:t,onValueChange:u=>a(u),tabs:[{value:"active",label:s({id:"team.filters.active"})},{value:"archived",label:s({id:"team.filters.archived"})},{value:"all",label:s({id:"team.filters.all"})}]}),e.jsxs("div",{className:"flex-1 max-w-sm relative",children:[e.jsx(Ke,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(Qe,{placeholder:s({id:"team.searchPlaceholder"}),value:r,onChange:u=>n(u.target.value),className:"pl-9 pr-9"}),r&&e.jsx("button",{onClick:V,className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:e.jsx(xe,{className:"h-4 w-4"})})]})]}),C?e.jsx("div",{className:"grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6}).map((u,P)=>e.jsx($s,{},P))}):b.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 px-4 border border-dashed border-border rounded-lg",children:[e.jsx(U,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-1",children:s(r?{id:"team.emptyState.noMatching"}:{id:"team.emptyState.noTeams"})}),e.jsx("p",{className:"text-sm text-muted-foreground text-center max-w-sm mb-4",children:s(r?{id:"team.emptyState.noMatchingDescription"}:{id:"team.emptyState.noTeamsDescription"})}),r&&e.jsx(k,{variant:"outline",onClick:V,children:s({id:"common.actions.clearFilters"})})]}):e.jsx("div",{className:"grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3",children:b.map(u=>e.jsx(Ds,{team:u,onClick:i,onArchive:w,onUnarchive:o,onDelete:$,actionsDisabled:f},u.name))}),e.jsx(Ue,{open:l,onOpenChange:c,children:e.jsxs(We,{children:[e.jsxs(Ie,{children:[e.jsx(Je,{children:s({id:"team.dialog.deleteTeam"})}),e.jsx(Ge,{children:s({id:"team.dialog.deleteConfirm"})})]}),e.jsxs(He,{children:[e.jsx(k,{variant:"outline",onClick:()=>{c(!1),g(null)},children:s({id:"team.dialog.cancel"})}),e.jsx(k,{variant:"destructive",onClick:R,disabled:M,children:s(M?{id:"team.dialog.deleting"}:{id:"team.actions.delete"})})]})]})})]})}const qs=["plan","impl","test","review"];function O(s){return s?s.charAt(0).toUpperCase()+s.slice(1).toLowerCase():""}function K(s,t){const a=s.toLowerCase(),r=t.filter(l=>{const c=l.from.toLowerCase();return c===a||c.startsWith(a)});if(r.length===0)return"pending";const n=r[r.length-1];return["shutdown","impl_complete","review_result","test_result"].includes(n.type)?"completed":n.type==="error"?"blocked":"in_progress"}function zs(s,t){if(s.pipeline_stages&&s.pipeline_stages.length>0)return s.pipeline_stages.map(a=>{var l;const r=a.toUpperCase(),n=a.toLowerCase(),i=(l=s.roles)==null?void 0:l.find(c=>c.toLowerCase().startsWith(n));return{id:r,label:O(a),role:i,status:K(a,t)}});if(s.roles&&s.roles.length>0){const a=s.roles.filter(r=>r.toLowerCase()!=="coordinator");if(a.length>0)return a.map(r=>({id:r.toUpperCase(),label:O(r),role:r,status:K(r,t)}))}if(t.length>0){const a=new Map;for(const r of t){const n=r.from;if(n.toLowerCase()==="coordinator")continue;const i=n.toLowerCase();a.has(i)||a.set(i,n)}if(a.size>0)return Array.from(a.entries()).map(([,r])=>({id:r.toUpperCase(),label:O(r),role:r,status:K(r,t)}))}return qs.map(a=>({id:a.toUpperCase(),label:O(a),role:void 0,status:K(a,t)}))}function Vs(s){if(!s||Object.keys(s).length===0)return null;const t=s.coordinator;return!t||typeof t.current_phase!="number"?null:{currentPhase:t.current_phase,totalPhases:typeof t.total_phases=="number"?t.total_phases:null,currentStep:typeof t.current_step=="string"?t.current_step:null,gapIteration:typeof t.gap_iteration=="number"?t.gap_iteration:0}}function et(){const{formatMessage:s}=T(),{selectedTeam:t,viewMode:a,autoRefresh:r,toggleAutoRefresh:n,messageFilter:i,setMessageFilter:l,clearMessageFilter:c,timelineExpanded:x,setTimelineExpanded:g,detailTab:v,setDetailTab:C,backToList:N,locationFilter:d}=z(),m=ne(Xe),_=ne(u=>u.toggleImmersiveMode),{teams:y,error:F,isLoading:A}=he(d),{messages:M,total:f}=os(a==="detail"?t:null,i),{members:b,totalMessages:w}=ds(a==="detail"?t:null),o=h.useMemo(()=>y.find(u=>u.name===t),[y,t]);h.useEffect(()=>{a==="detail"&&t&&!A&&y.length>0&&!o&&N()},[a,t,A,y.length,o,N]);const $=h.useMemo(()=>zs({pipeline_stages:o==null?void 0:o.pipeline_stages,role_state:o==null?void 0:o.role_state,roles:o==null?void 0:o.roles},M),[o==null?void 0:o.pipeline_stages,o==null?void 0:o.role_state,o==null?void 0:o.roles,M]),R=h.useMemo(()=>Vs(o==null?void 0:o.role_state),[o==null?void 0:o.role_state]);if(F&&a==="detail")return e.jsx("div",{className:"flex items-center justify-center min-h-[400px] p-8",children:e.jsxs("div",{className:"text-center max-w-md",children:[e.jsx("div",{className:"mb-4",children:e.jsx(Ye,{className:"w-16 h-16 mx-auto text-destructive"})}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:s({id:"team.error.loadFailed"})}),e.jsx("p",{className:"text-muted-foreground mb-6",children:F instanceof Error?F.message:String(F)}),e.jsxs("div",{className:"flex gap-3 justify-center",children:[e.jsx(k,{onClick:N,variant:"default",children:s({id:"team.detail.backToList"})}),e.jsx(k,{onClick:()=>window.location.reload(),variant:"outline",children:s({id:"common.actions.retry"})})]})]})});if(a==="list"||!t||a==="detail"&&y.length>0&&!o)return e.jsx("div",{className:"space-y-6",children:e.jsx(Rs,{})});const V=[{value:"pipeline",label:s({id:"team.tabs.pipeline"}),icon:e.jsx(se,{className:"h-4 w-4"})},{value:"artifacts",label:s({id:"team.tabs.artifacts"}),icon:e.jsx(Q,{className:"h-4 w-4"})},{value:"messages",label:s({id:"team.tabs.messages"}),icon:e.jsx(ee,{className:"h-4 w-4"})}];return e.jsxs("div",{className:j("space-y-6",m&&"h-screen overflow-hidden"),children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(hs,{selectedTeam:t,onBack:N,members:b,totalMessages:w,autoRefresh:r,onToggleAutoRefresh:n,skillType:o!=null&&o.team_name?`team-${o.team_name}`:void 0,pipelineMode:o==null?void 0:o.pipeline_mode}),e.jsx("button",{onClick:_,className:j("p-2 rounded-md transition-colors",m?"bg-primary/10 text-primary":"text-muted-foreground hover:text-foreground hover:bg-muted"),title:m?"Exit Fullscreen":"Fullscreen",children:m?e.jsx(ls,{className:"w-4 h-4"}):e.jsx(cs,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsx(L,{className:"lg:col-span-2 flex flex-col",children:e.jsx(E,{className:"p-4 flex-1",children:e.jsx(gs,{stages:$,phaseInfo:R})})}),e.jsx(L,{children:e.jsx(E,{className:"p-4",children:e.jsx(le,{members:b,stages:$,roleState:o==null?void 0:o.role_state})})})]}),R&&e.jsx(_s,{phaseInfo:R}),e.jsx(ue,{value:v,onValueChange:u=>C(u),tabs:V}),v==="pipeline"&&e.jsx(L,{children:e.jsx(E,{className:"p-6",children:e.jsx(le,{members:b,stages:$,roleState:o==null?void 0:o.role_state})})}),v==="artifacts"&&e.jsx(Fs,{teamName:t}),v==="messages"&&e.jsx(Ms,{messages:M,total:f,filter:i,onFilterChange:l,onClearFilter:c,expanded:x,onExpandedChange:g})]})}export{et as TeamPage,et as default};
|
|
2
|
+
//# sourceMappingURL=TeamPage-BJgjxBgb.js.map
|