claude-code-workflow 7.2.9 → 7.2.11
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/.claude/agents/cli-planning-agent.md +3 -0
- package/.claude/agents/debug-explore-agent.md +1 -0
- package/.claude/agents/tdd-developer.md +1 -0
- package/.claude/agents/team-worker.md +1 -1
- package/.claude/agents/test-action-planning-agent.md +3 -0
- package/.claude/agents/test-context-search-agent.md +1 -0
- package/.claude/agents/test-fix-agent.md +3 -0
- package/.claude/skills/review-code/SKILL.md +2 -0
- package/.claude/skills/review-cycle/SKILL.md +4 -0
- package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
- package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
- package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
- package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
- package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
- package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
- package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
- package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
- package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
- package/.claude/skills/team-testing/roles/executor/role.md +2 -1
- package/.claude/skills/team-testing/roles/generator/role.md +2 -1
- package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
- package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
- package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
- package/.claude/skills/workflow-lite-test-review/SKILL.md +2 -0
- package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
- package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
- package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
- package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
- package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
- package/.claude/skills/workflow-tune/SKILL.md +487 -0
- package/.claude/skills/workflow-tune/phases/01-setup.md +548 -0
- package/.claude/skills/workflow-tune/phases/02-step-execute.md +197 -0
- package/.claude/skills/workflow-tune/phases/03-step-analyze.md +386 -0
- package/.claude/skills/workflow-tune/phases/04-synthesize.md +257 -0
- package/.claude/skills/workflow-tune/phases/05-optimize-report.md +246 -0
- package/.claude/skills/workflow-tune/specs/workflow-eval-criteria.md +57 -0
- package/.claude/skills/workflow-tune/templates/step-analysis-prompt.md +88 -0
- package/.claude/skills/workflow-tune/templates/synthesis-prompt.md +90 -0
- package/.codex/skills/analyze-with-file/SKILL.md +64 -103
- package/.codex/skills/debug-with-file/SKILL.md +4 -0
- package/.codex/skills/issue-discover/SKILL.md +1 -0
- package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
- package/.codex/skills/roadmap-with-file/SKILL.md +11 -17
- package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
- package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
- package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
- package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
- package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
- package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
- package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
- package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
- package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
- package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
- package/ccw/dist/commands/spec.d.ts.map +1 -1
- package/ccw/dist/commands/spec.js +9 -4
- package/ccw/dist/commands/spec.js.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.js +3 -1
- package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
- package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
- package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
- package/ccw/dist/tools/spec-index-builder.js +8 -4
- package/ccw/dist/tools/spec-index-builder.js.map +1 -1
- package/ccw/dist/tools/spec-init.d.ts +1 -1
- package/ccw/dist/tools/spec-init.d.ts.map +1 -1
- package/ccw/dist/tools/spec-init.js +127 -0
- package/ccw/dist/tools/spec-init.js.map +1 -1
- package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
- package/ccw/dist/tools/spec-loader.js +2 -1
- package/ccw/dist/tools/spec-loader.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
- package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
- package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
- package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
- package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
- package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
- package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
- package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
- package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
- package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
- package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
- package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
- package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
- package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
- package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
- package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
- package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
- package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
- package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
- package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
- package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
- package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
- package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
- package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
- package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
- package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
- package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
- package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
- package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
- package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
- package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
- package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
- package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
- package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
- package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
- package/.claude/skills/team-issue/role-specs/planner.md +0 -83
- package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
- package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
- package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
- package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
- package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
- package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
- package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
- package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
- package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
- package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
- package/.claude/skills/team-planex/role-specs/executor.md +0 -90
- package/.claude/skills/team-planex/role-specs/planner.md +0 -110
- package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
- package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
- package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
- package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
- package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
- package/.claude/skills/team-review/role-specs/fixer.md +0 -75
- package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
- package/.claude/skills/team-review/role-specs/scanner.md +0 -70
- package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
- package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
- package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
- package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
- package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
- package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
- package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
- package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
- package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
- package/.claude/skills/team-testing/role-specs/executor.md +0 -97
- package/.claude/skills/team-testing/role-specs/generator.md +0 -96
- package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
- package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
- package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
- package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
- package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
- package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
- package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
- package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
- package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
- package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
- package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
- package/.codex/skills/analyze-with-file/EXECUTE.md +0 -716
- package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
- package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiteTasksPage-DmcgvIvi.js","sources":["../../../../node_modules/lucide-react/dist/esm/icons/arrow-down-wide-narrow.js","../../../../node_modules/lucide-react/dist/esm/icons/arrow-up-narrow-wide.js","../../../../node_modules/lucide-react/dist/esm/icons/check-check.js","../../../../node_modules/lucide-react/dist/esm/icons/circle-help.js","../../../../node_modules/lucide-react/dist/esm/icons/compass.js","../../../../node_modules/lucide-react/dist/esm/icons/flag.js","../../../../node_modules/lucide-react/dist/esm/icons/git-compare.js","../../../../node_modules/lucide-react/dist/esm/icons/list-filter.js","../../../../node_modules/lucide-react/dist/esm/icons/octagon-alert.js","../../../../node_modules/lucide-react/dist/esm/icons/repeat.js","../../../../node_modules/lucide-react/dist/esm/icons/route.js","../../../../node_modules/lucide-react/dist/esm/icons/settings-2.js","../../../../node_modules/lucide-react/dist/esm/icons/shield-check.js","../../../../node_modules/lucide-react/dist/esm/icons/stethoscope.js","../../../../node_modules/lucide-react/dist/esm/icons/thumbs-down.js","../../../../node_modules/lucide-react/dist/esm/icons/thumbs-up.js","../../src/components/lite-tasks/LiteContextContent.tsx","../../src/pages/LiteTasksPage.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowDownWideNarrow = createLucideIcon(\"ArrowDownWideNarrow\", [\n [\"path\", { d: \"m3 16 4 4 4-4\", key: \"1co6wj\" }],\n [\"path\", { d: \"M7 20V4\", key: \"1yoxec\" }],\n [\"path\", { d: \"M11 4h10\", key: \"1w87gc\" }],\n [\"path\", { d: \"M11 8h7\", key: \"djye34\" }],\n [\"path\", { d: \"M11 12h4\", key: \"q8tih4\" }]\n]);\n\nexport { ArrowDownWideNarrow as default };\n//# sourceMappingURL=arrow-down-wide-narrow.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowUpNarrowWide = createLucideIcon(\"ArrowUpNarrowWide\", [\n [\"path\", { d: \"m3 8 4-4 4 4\", key: \"11wl7u\" }],\n [\"path\", { d: \"M7 4v16\", key: \"1glfcx\" }],\n [\"path\", { d: \"M11 12h4\", key: \"q8tih4\" }],\n [\"path\", { d: \"M11 16h7\", key: \"uosisv\" }],\n [\"path\", { d: \"M11 20h10\", key: \"jvxblo\" }]\n]);\n\nexport { ArrowUpNarrowWide as default };\n//# sourceMappingURL=arrow-up-narrow-wide.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CheckCheck = createLucideIcon(\"CheckCheck\", [\n [\"path\", { d: \"M18 6 7 17l-5-5\", key: \"116fxf\" }],\n [\"path\", { d: \"m22 10-7.5 7.5L13 16\", key: \"ke71qq\" }]\n]);\n\nexport { CheckCheck as default };\n//# sourceMappingURL=check-check.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleHelp = createLucideIcon(\"CircleHelp\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { CircleHelp as default };\n//# sourceMappingURL=circle-help.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Compass = createLucideIcon(\"Compass\", [\n [\n \"path\",\n {\n d: \"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\",\n key: \"9ktpf1\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]\n]);\n\nexport { Compass as default };\n//# sourceMappingURL=compass.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Flag = createLucideIcon(\"Flag\", [\n [\"path\", { d: \"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\", key: \"i9b6wo\" }],\n [\"line\", { x1: \"4\", x2: \"4\", y1: \"22\", y2: \"15\", key: \"1cm3nv\" }]\n]);\n\nexport { Flag as default };\n//# sourceMappingURL=flag.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst GitCompare = createLucideIcon(\"GitCompare\", [\n [\"circle\", { cx: \"18\", cy: \"18\", r: \"3\", key: \"1xkwt0\" }],\n [\"circle\", { cx: \"6\", cy: \"6\", r: \"3\", key: \"1lh9wr\" }],\n [\"path\", { d: \"M13 6h3a2 2 0 0 1 2 2v7\", key: \"1yeb86\" }],\n [\"path\", { d: \"M11 18H8a2 2 0 0 1-2-2V9\", key: \"19pyzm\" }]\n]);\n\nexport { GitCompare as default };\n//# sourceMappingURL=git-compare.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListFilter = createLucideIcon(\"ListFilter\", [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M7 12h10\", key: \"b7w52i\" }],\n [\"path\", { d: \"M10 18h4\", key: \"1ulq68\" }]\n]);\n\nexport { ListFilter as default };\n//# sourceMappingURL=list-filter.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst OctagonAlert = createLucideIcon(\"OctagonAlert\", [\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\n \"path\",\n {\n d: \"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z\",\n key: \"1fd625\"\n }\n ]\n]);\n\nexport { OctagonAlert as default };\n//# sourceMappingURL=octagon-alert.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Repeat = createLucideIcon(\"Repeat\", [\n [\"path\", { d: \"m17 2 4 4-4 4\", key: \"nntrym\" }],\n [\"path\", { d: \"M3 11v-1a4 4 0 0 1 4-4h14\", key: \"84bu3i\" }],\n [\"path\", { d: \"m7 22-4-4 4-4\", key: \"1wqhfi\" }],\n [\"path\", { d: \"M21 13v1a4 4 0 0 1-4 4H3\", key: \"1rx37r\" }]\n]);\n\nexport { Repeat as default };\n//# sourceMappingURL=repeat.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Route = createLucideIcon(\"Route\", [\n [\"circle\", { cx: \"6\", cy: \"19\", r: \"3\", key: \"1kj8tv\" }],\n [\"path\", { d: \"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15\", key: \"1d8sl\" }],\n [\"circle\", { cx: \"18\", cy: \"5\", r: \"3\", key: \"gq8acd\" }]\n]);\n\nexport { Route as default };\n//# sourceMappingURL=route.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Settings2 = createLucideIcon(\"Settings2\", [\n [\"path\", { d: \"M20 7h-9\", key: \"3s1dr2\" }],\n [\"path\", { d: \"M14 17H5\", key: \"gfn3mx\" }],\n [\"circle\", { cx: \"17\", cy: \"17\", r: \"3\", key: \"18b49y\" }],\n [\"circle\", { cx: \"7\", cy: \"7\", r: \"3\", key: \"dfmy0x\" }]\n]);\n\nexport { Settings2 as default };\n//# sourceMappingURL=settings-2.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ShieldCheck = createLucideIcon(\"ShieldCheck\", [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n]);\n\nexport { ShieldCheck as default };\n//# sourceMappingURL=shield-check.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Stethoscope = createLucideIcon(\"Stethoscope\", [\n [\"path\", { d: \"M11 2v2\", key: \"1539x4\" }],\n [\"path\", { d: \"M5 2v2\", key: \"1yf1q8\" }],\n [\"path\", { d: \"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1\", key: \"rb5t3r\" }],\n [\"path\", { d: \"M8 15a6 6 0 0 0 12 0v-3\", key: \"x18d4x\" }],\n [\"circle\", { cx: \"20\", cy: \"10\", r: \"2\", key: \"ts1r5v\" }]\n]);\n\nexport { Stethoscope as default };\n//# sourceMappingURL=stethoscope.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ThumbsDown = createLucideIcon(\"ThumbsDown\", [\n [\"path\", { d: \"M17 14V2\", key: \"8ymqnk\" }],\n [\n \"path\",\n {\n d: \"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z\",\n key: \"m61m77\"\n }\n ]\n]);\n\nexport { ThumbsDown as default };\n//# sourceMappingURL=thumbs-down.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ThumbsUp = createLucideIcon(\"ThumbsUp\", [\n [\"path\", { d: \"M7 10v12\", key: \"1qc93n\" }],\n [\n \"path\",\n {\n d: \"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z\",\n key: \"emmmcr\"\n }\n ]\n]);\n\nexport { ThumbsUp as default };\n//# sourceMappingURL=thumbs-up.js.map\n","// ========================================\n// LiteContextContent Component\n// ========================================\n// Extracted from LiteTasksPage - renders context data sections for lite sessions\n\nimport * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport {\n Compass,\n Stethoscope,\n FolderOpen,\n FileText,\n Package,\n ChevronDown,\n ChevronRight,\n AlertTriangle,\n Code,\n} from 'lucide-react';\nimport { Badge } from '@/components/ui/Badge';\nimport { Card, CardContent } from '@/components/ui/Card';\nimport {\n ExplorationsSection,\n AssetsCard,\n ConflictDetectionCard,\n} from '@/components/session-detail/context';\nimport type { ExplorationsData } from '@/components/session-detail/context/ExplorationsSection';\nimport type {\n LiteSessionContext,\n LiteDiagnosisItem,\n LiteTaskSession,\n} from '@/lib/api';\n\n/**\n * Convert diagnoses from either `items[]` (lite-scanner) or `data{}` (session-routes) format\n * into a uniform LiteDiagnosisItem array.\n */\nfunction getDiagnosisItems(diagnoses: LiteSessionContext['diagnoses']): LiteDiagnosisItem[] {\n if (!diagnoses) return [];\n if (diagnoses.items?.length) return diagnoses.items;\n if (diagnoses.data) {\n return Object.entries(diagnoses.data).map(([angle, content]) => ({\n id: angle,\n title: angle.replace(/-/g, ' ').replace(/^\\w/, c => c.toUpperCase()),\n ...(typeof content === 'object' && content !== null ? content : {}),\n })) as LiteDiagnosisItem[];\n }\n return [];\n}\n\n/**\n * ContextSection - Collapsible section wrapper for context items\n */\nfunction ContextSection({\n icon,\n title,\n badge,\n children,\n defaultOpen = true,\n}: {\n icon: React.ReactNode;\n title: string;\n badge?: string;\n children: React.ReactNode;\n defaultOpen?: boolean;\n}) {\n const [isOpen, setIsOpen] = React.useState(defaultOpen);\n\n return (\n <Card className=\"border-border\" onClick={(e) => e.stopPropagation()}>\n <button\n className=\"w-full flex items-center gap-2 p-3 text-left hover:bg-muted/50 transition-colors\"\n onClick={() => setIsOpen(!isOpen)}\n >\n <span className=\"text-muted-foreground\">{icon}</span>\n <span className=\"text-sm font-medium text-foreground flex-1\">{title}</span>\n {badge && (\n <Badge variant=\"secondary\" className=\"text-[10px]\">{badge}</Badge>\n )}\n {isOpen ? (\n <ChevronDown className=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <ChevronRight className=\"h-4 w-4 text-muted-foreground\" />\n )}\n </button>\n {isOpen && (\n <CardContent className=\"px-3 pb-3 pt-0\">\n {children}\n </CardContent>\n )}\n </Card>\n );\n}\n\n/**\n * ContextContent - Renders the context data sections for a lite session\n */\nfunction ContextContent({\n contextData,\n session,\n}: {\n contextData: LiteSessionContext;\n session: LiteTaskSession;\n}) {\n const { formatMessage } = useIntl();\n const plan = session.plan || {};\n const ctx = contextData.context;\n\n const hasExplorations = !!(contextData.explorations?.manifest);\n const diagnosisItems = getDiagnosisItems(contextData.diagnoses);\n const hasDiagnoses = !!(contextData.diagnoses?.manifest || diagnosisItems.length > 0);\n const hasContext = !!ctx;\n const hasFocusPaths = !!(plan.focus_paths as string[] | undefined)?.length;\n const hasSummary = !!(plan.summary as string | undefined);\n const hasAnyContent = hasExplorations || hasDiagnoses || hasContext || hasFocusPaths || hasSummary;\n\n if (!hasAnyContent) {\n return (\n <div className=\"flex flex-col items-center justify-center py-8 text-center\">\n <Package className=\"h-8 w-8 text-muted-foreground mb-2\" />\n <p className=\"text-sm text-muted-foreground\">\n {formatMessage({ id: 'liteTasks.contextPanel.empty' })}\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-3\">\n {/* Explorations Section */}\n {hasExplorations && (\n <ContextSection\n icon={<Compass className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.explorations' })}\n badge={\n contextData.explorations?.manifest?.exploration_count\n ? formatMessage(\n { id: 'liteTasks.contextPanel.explorationsCount' },\n { count: contextData.explorations.manifest.exploration_count }\n )\n : undefined\n }\n >\n <div className=\"space-y-2\">\n {!!contextData.explorations?.manifest?.task_description && (\n <div className=\"text-xs text-muted-foreground\">\n <span className=\"font-medium text-foreground\">\n {formatMessage({ id: 'liteTasks.contextPanel.taskDescription' })}:\n </span>{' '}\n {String(contextData.explorations.manifest.task_description)}\n </div>\n )}\n {!!contextData.explorations?.manifest?.complexity && (\n <div className=\"text-xs text-muted-foreground\">\n <span className=\"font-medium text-foreground\">\n {formatMessage({ id: 'liteTasks.contextPanel.complexity' })}:\n </span>{' '}\n <Badge variant=\"info\" className=\"text-[10px]\">\n {String(contextData.explorations.manifest.complexity)}\n </Badge>\n </div>\n )}\n {contextData.explorations?.data && (\n <div className=\"flex flex-wrap gap-1.5 mt-1\">\n {Object.keys(contextData.explorations.data).map((angle) => (\n <Badge key={angle} variant=\"secondary\" className=\"text-[10px] capitalize\">\n {angle.replace(/-/g, ' ')}\n </Badge>\n ))}\n </div>\n )}\n </div>\n </ContextSection>\n )}\n\n {/* Diagnoses Section */}\n {hasDiagnoses && (\n <ContextSection\n icon={<Stethoscope className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.diagnoses' })}\n badge={\n diagnosisItems.length > 0\n ? formatMessage(\n { id: 'liteTasks.contextPanel.diagnosesCount' },\n { count: diagnosisItems.length }\n )\n : undefined\n }\n >\n {diagnosisItems.map((item, i) => (\n <div key={i} className=\"text-xs text-muted-foreground py-1 border-b border-border/50 last:border-0\">\n {item.title || item.description || `Diagnosis ${i + 1}`}\n </div>\n ))}\n </ContextSection>\n )}\n\n {/* Context Package Section */}\n {hasContext && ctx && (\n <ContextSection\n icon={<Package className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.contextPackage' })}\n >\n <div className=\"space-y-2 text-xs\">\n {ctx.task_description && (\n <div className=\"text-muted-foreground\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.taskDescription' })}:</span>{' '}\n {ctx.task_description}\n </div>\n )}\n\n {ctx.constraints && ctx.constraints.length > 0 && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.constraints' })}:</span>\n </div>\n <div className=\"space-y-1 pl-2\">\n {ctx.constraints.map((c, i) => (\n <div key={i} className=\"text-muted-foreground flex items-start gap-1\">\n <span className=\"text-primary/50\">•</span>\n <span>{c}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {ctx.focus_paths && ctx.focus_paths.length > 0 && (\n <div className=\"text-muted-foreground\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.focusPaths' })}:</span>{' '}\n <div className=\"flex flex-wrap gap-1 mt-0.5\">\n {ctx.focus_paths.map((p, i) => (\n <Badge key={i} variant=\"secondary\" className=\"text-[10px] font-mono\">\n {p}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {ctx.relevant_files && ctx.relevant_files.length > 0 && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.relevantFiles' })}:</span>{' '}\n <Badge variant=\"outline\" className=\"text-[10px] align-middle\">\n {ctx.relevant_files.length}\n </Badge>\n </div>\n <div className=\"space-y-0.5 pl-2 max-h-32 overflow-y-auto\">\n {ctx.relevant_files.map((f, i) => {\n const filePath = typeof f === 'string' ? f : f.path;\n const reason = typeof f === 'string' ? undefined : f.reason;\n return (\n <div key={i} className=\"group flex items-start gap-1 text-muted-foreground hover:bg-muted/30 rounded px-1 py-0.5\">\n <span className=\"text-primary/50 shrink-0\">{i + 1}.</span>\n <span className=\"font-mono text-xs truncate flex-1\" title={filePath}>\n {filePath}\n </span>\n {reason && (\n <span className=\"text-[10px] text-muted-foreground/60 truncate ml-1\" title={reason}>\n ({reason})\n </span>\n )}\n </div>\n );\n })}\n </div>\n </div>\n )}\n\n {ctx.dependencies && ctx.dependencies.length > 0 && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.dependencies' })}:</span>\n </div>\n <div className=\"flex flex-wrap gap-1\">\n {ctx.dependencies.map((d, i) => {\n const depInfo = typeof d === 'string'\n ? { name: d, type: '', version: '' }\n : d as { name: string; type?: string; version?: string };\n return (\n <Badge key={i} variant=\"outline\" className=\"text-[10px]\">\n {depInfo.name}\n {depInfo.version && <span className=\"ml-1 opacity-70\">@{depInfo.version}</span>}\n </Badge>\n );\n })}\n </div>\n </div>\n )}\n\n {ctx.session_id && (\n <div className=\"text-muted-foreground\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.sessionId' })}:</span>{' '}\n <span className=\"font-mono bg-muted/50 px-1.5 py-0.5 rounded\">{ctx.session_id}</span>\n </div>\n )}\n\n {ctx.metadata && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.metadata' })}:</span>\n </div>\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-0.5 pl-2 text-muted-foreground\">\n {Object.entries(ctx.metadata).map(([k, v]) => (\n <div key={k} className=\"flex items-center gap-1\">\n <span className=\"font-mono text-[10px] text-primary/60\">{k}:</span>\n <span className=\"truncate\">{String(v)}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </ContextSection>\n )}\n\n {/* Conflict Risks (simple inline list) */}\n {ctx?.conflict_risks && Array.isArray(ctx.conflict_risks) && ctx.conflict_risks.length > 0 && (\n <ContextSection\n icon={<AlertTriangle className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.conflictRisks' })}\n >\n <ul className=\"space-y-1\">\n {ctx.conflict_risks.map((r, i) => {\n const desc = typeof r === 'string' ? r : r.description;\n const severity = typeof r === 'string' ? undefined : r.severity;\n return (\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\n {severity && <Badge variant={severity === 'high' ? 'destructive' : 'warning'} className=\"text-[10px]\">{severity}</Badge>}\n <span>{desc}</span>\n </li>\n );\n })}\n </ul>\n </ContextSection>\n )}\n\n {/* Structured Conflict Detection (higher priority than simple conflict_risks) */}\n {ctx?.conflict_detection && (\n <ConflictDetectionCard data={ctx.conflict_detection} />\n )}\n\n {/* Assets */}\n {ctx?.assets && (\n <AssetsCard data={ctx.assets} />\n )}\n\n {/* Enhanced Explorations - when angle data has detail fields */}\n {contextData.explorations?.data &&\n Object.values(contextData.explorations.data).some(angle =>\n angle.project_structure?.length || angle.relevant_files?.length || angle.patterns?.length\n ) && (\n <ExplorationsSection data={{\n manifest: {\n task_description: contextData.explorations.manifest?.task_description || '',\n complexity: contextData.explorations.manifest?.complexity,\n exploration_count: contextData.explorations.manifest?.exploration_count || Object.keys(contextData.explorations.data).length,\n },\n data: contextData.explorations.data as ExplorationsData['data'],\n }} />\n )}\n\n {/* Focus Paths from Plan */}\n {hasFocusPaths && (\n <ContextSection\n icon={<FolderOpen className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.focusPaths' })}\n >\n <div className=\"flex flex-wrap gap-1.5\">\n {(plan.focus_paths as string[]).map((p, i) => (\n <Badge key={i} variant=\"secondary\" className=\"text-[10px] font-mono\">\n {p}\n </Badge>\n ))}\n </div>\n </ContextSection>\n )}\n\n {/* Plan Summary */}\n {hasSummary && (\n <ContextSection\n icon={<FileText className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.summary' })}\n >\n <p className=\"text-xs text-muted-foreground\">{plan.summary as string}</p>\n </ContextSection>\n )}\n\n {/* Raw JSON Debug View */}\n {contextData.context && (\n <ContextSection\n icon={<Code className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.rawJson' })}\n defaultOpen={false}\n >\n <pre className=\"text-xs font-mono bg-muted p-3 rounded-lg overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap break-all\">\n {JSON.stringify(contextData.context, null, 2)}\n </pre>\n </ContextSection>\n )}\n </div>\n );\n}\n\nexport { ContextContent as LiteContextContent, ContextSection as LiteContextSection };\n","// ========================================\r\n// LiteTasksPage Component\r\n// ========================================\r\n// Lite-plan and lite-fix task list page with TaskDrawer\r\n\r\nimport * as React from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport {\r\n ArrowLeft,\r\n Zap,\r\n Wrench,\r\n FileEdit,\r\n MessagesSquare,\r\n Calendar,\r\n XCircle,\r\n Activity,\r\n Repeat,\r\n MessageCircle,\r\n ChevronDown,\r\n ChevronRight,\r\n Search,\r\n SortAsc,\r\n SortDesc,\r\n ListFilter,\r\n Hash,\r\n ListChecks,\r\n Package,\r\n Loader2,\r\n CheckCircle2,\r\n Clock,\r\n AlertCircle,\r\n FileCode,\r\n ThumbsUp,\r\n ThumbsDown,\r\n Target,\r\n GitCompare,\r\n HelpCircle,\r\n Cpu,\r\n Timer,\r\n Sparkles,\r\n CheckCheck,\r\n Route,\r\n Flag,\r\n AlertOctagon,\r\n Link2,\r\n ShieldCheck,\r\n Settings2,\r\n Maximize2,\r\n Minimize2,\r\n} from 'lucide-react';\r\nimport { useAppStore, selectIsImmersiveMode } from '@/stores/appStore';\r\nimport { useLiteTasks } from '@/hooks/useLiteTasks';\r\nimport { Button } from '@/components/ui/Button';\r\nimport { Badge } from '@/components/ui/Badge';\r\nimport { Card, CardContent } from '@/components/ui/Card';\r\nimport { TabsNavigation } from '@/components/ui/TabsNavigation';\r\nimport { TaskDrawer } from '@/components/shared/TaskDrawer';\r\nimport { fetchLiteSessionContext, type LiteTask, type LiteTaskSession, type LiteSessionContext, type RoundSynthesis, type MultiCliContextPackage } from '@/lib/api';\r\nimport { LiteContextContent } from '@/components/lite-tasks/LiteContextContent';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { cn } from '@/lib/utils';\r\n\r\ntype LiteTaskTab = 'lite-plan' | 'lite-fix' | 'multi-cli-plan';\r\ntype SortField = 'date' | 'name' | 'tasks';\r\ntype SortOrder = 'asc' | 'desc';\r\n\r\n/**\r\n * Get i18n text from label object (supports {en, zh} format)\r\n * Note: fallback should be provided dynamically from component context\r\n */\r\nfunction getI18nText(label: string | { en?: string; zh?: string } | undefined): string | undefined {\r\n if (!label) return undefined;\r\n if (typeof label === 'string') return label;\r\n return label.en || label.zh;\r\n}\r\n\r\ntype ExpandedTab = 'tasks' | 'context';\r\n\r\n/**\r\n * ExpandedSessionPanel - Multi-tab panel shown when a lite session is expanded\r\n */\r\nfunction ExpandedSessionPanel({\r\n session,\r\n onTaskClick,\r\n}: {\r\n session: LiteTaskSession;\r\n onTaskClick: (task: LiteTask) => void;\r\n}) {\r\n const { formatMessage } = useIntl();\r\n const [activeTab, setActiveTab] = React.useState<ExpandedTab>('tasks');\r\n const [contextData, setContextData] = React.useState<LiteSessionContext | null>(null);\r\n const [contextLoading, setContextLoading] = React.useState(false);\r\n const [contextError, setContextError] = React.useState<string | null>(null);\r\n\r\n const tasks = session.tasks || [];\r\n const taskCount = tasks.length;\r\n\r\n // Load context data lazily when context tab is selected\r\n React.useEffect(() => {\r\n if (activeTab !== 'context') return;\r\n if (contextData || contextLoading) return;\r\n if (!session.path) {\r\n setContextError('No session path available');\r\n return;\r\n }\r\n\r\n setContextLoading(true);\r\n fetchLiteSessionContext(session.path)\r\n .then((data) => {\r\n setContextData(data);\r\n setContextError(null);\r\n })\r\n .catch((err) => {\r\n setContextError(err.message || 'Failed to load context');\r\n })\r\n .finally(() => {\r\n setContextLoading(false);\r\n });\r\n }, [activeTab, session.path, contextData, contextLoading]);\r\n\r\n return (\r\n <div className=\"mt-2 ml-6 pb-2\">\r\n {/* Quick Info Cards */}\r\n <div className=\"flex flex-wrap gap-2 mb-3\">\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('tasks'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'tasks'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <ListChecks className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.tasks' })}\r\n <Badge variant=\"secondary\" className=\"ml-1 text-[10px] px-1.5 py-0\">\r\n {taskCount}\r\n </Badge>\r\n </button>\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('context'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'context'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <Package className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.context' })}\r\n </button>\r\n </div>\r\n\r\n {/* Tasks Tab */}\r\n {activeTab === 'tasks' && (\r\n <div className=\"space-y-2\">\r\n {tasks.map((task, index) => {\r\n const filesCount = task.flow_control?.target_files?.length || 0;\r\n const stepsCount = task.flow_control?.implementation_approach?.length || 0;\r\n const criteriaCount = task.context?.acceptance?.length || 0;\r\n const depsCount = task.context?.depends_on?.length || 0;\r\n\r\n return (\r\n <Card\r\n key={task.id || index}\r\n className=\"cursor-pointer hover:shadow-sm hover:border-primary/50 transition-all border-border border-l-4 border-l-primary/50\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onTaskClick(task);\r\n }}\r\n >\r\n <CardContent className=\"p-3\">\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <Badge className=\"text-xs font-mono shrink-0 bg-primary/10 text-primary border-primary/20\">\r\n {task.task_id || `#${index + 1}`}\r\n </Badge>\r\n <h4 className=\"text-sm font-medium text-foreground line-clamp-1\">\r\n {task.title || formatMessage({ id: 'liteTasks.untitled' })}\r\n </h4>\r\n </div>\r\n {/* Meta badges - right side, single row */}\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {task.meta?.type && (\r\n <Badge variant=\"info\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">{task.meta.type}</Badge>\r\n )}\r\n {filesCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 gap-0.5 whitespace-nowrap\">\r\n <FileCode className=\"h-2.5 w-2.5\" />\r\n {filesCount} files\r\n </Badge>\r\n )}\r\n {stepsCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {stepsCount} steps\r\n </Badge>\r\n )}\r\n {criteriaCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {criteriaCount} criteria\r\n </Badge>\r\n )}\r\n {depsCount > 0 && (\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"text-[10px] text-muted-foreground\">→</span>\r\n {task.context?.depends_on?.map((depId, idx) => (\r\n <Badge key={idx} variant=\"outline\" className=\"text-[10px] px-1.5 py-0 font-mono border-primary/30 text-primary whitespace-nowrap\">\r\n {depId}\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {task.description && (\r\n <p className=\"text-xs text-muted-foreground mt-1.5 pl-[calc(1.5rem+0.75rem)] line-clamp-2\">\r\n {task.description}\r\n </p>\r\n )}\r\n </CardContent>\r\n </Card>\r\n );\r\n })}\r\n </div>\r\n )}\r\n\r\n {/* Context Tab */}\r\n {activeTab === 'context' && (\r\n <div className=\"space-y-3\">\r\n {contextLoading && (\r\n <div className=\"flex items-center justify-center py-8 text-muted-foreground\">\r\n <Loader2 className=\"h-5 w-5 animate-spin mr-2\" />\r\n <span className=\"text-sm\">{formatMessage({ id: 'liteTasks.contextPanel.loading' })}</span>\r\n </div>\r\n )}\r\n {contextError && !contextLoading && (\r\n <div className=\"flex items-center gap-2 p-3 rounded-lg bg-destructive/10 border border-destructive/30 text-destructive text-sm\">\r\n <XCircle className=\"h-4 w-4 flex-shrink-0\" />\r\n {formatMessage({ id: 'liteTasks.contextPanel.error' })}: {contextError}\r\n </div>\r\n )}\r\n {!contextLoading && !contextError && contextData && (\r\n <LiteContextContent contextData={contextData} session={session} />\r\n )}\r\n {!contextLoading && !contextError && !contextData && !session.path && (\r\n <div className=\"flex flex-col items-center justify-center py-8 text-center\">\r\n <Package className=\"h-8 w-8 text-muted-foreground mb-2\" />\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.contextPanel.empty' })}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * ContextContent - Extracted to @/components/lite-tasks/LiteContextContent.tsx\r\n */\r\n\r\n/**\r\n * RoundDetailCard - Display detailed information for a single discussion round\r\n */\r\nfunction RoundDetailCard({ round, isLast }: { round: RoundSynthesis; isLast: boolean }) {\r\n const { formatMessage } = useIntl();\r\n const [expanded, setExpanded] = React.useState(isLast);\r\n\r\n const solutions = round.solutions || [];\r\n const convergence = round.convergence;\r\n const crossVerification = round.cross_verification;\r\n const clarificationQuestions = round.clarification_questions || [];\r\n const cliExecutions = round.cli_executions || {};\r\n\r\n // Format duration\r\n const formatDuration = (ms: number) => {\r\n if (ms < 1000) return `${ms}ms`;\r\n return `${(ms / 1000).toFixed(1)}s`;\r\n };\r\n\r\n // Get convergence badge variant\r\n const getConvergenceVariant = (recommendation?: string) => {\r\n switch (recommendation) {\r\n case 'converged': return 'success';\r\n case 'continue': return 'warning';\r\n case 'user_input_needed': return 'destructive';\r\n default: return 'secondary';\r\n }\r\n };\r\n\r\n return (\r\n <Card className=\"border-border\">\r\n <CardContent className=\"p-4\">\r\n {/* Round Header */}\r\n <div\r\n className=\"flex items-center justify-between cursor-pointer\"\r\n onClick={() => setExpanded(!expanded)}\r\n >\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary font-semibold text-sm\">\r\n {round.round}\r\n </div>\r\n <div>\r\n <h4 className=\"font-medium text-foreground flex items-center gap-2\">\r\n {formatMessage({ id: 'liteTasks.multiCli.round' })} {round.round}\r\n {convergence && (\r\n <Badge variant={getConvergenceVariant(convergence.recommendation)} className=\"text-[10px]\">\r\n {convergence.recommendation === 'converged' && <CheckCheck className=\"h-3 w-3 mr-1\" />}\r\n {convergence.recommendation === 'converged' && formatMessage({ id: 'liteTasks.multiCli.converged' })}\r\n {convergence.recommendation === 'continue' && formatMessage({ id: 'liteTasks.multiCli.continuing' })}\r\n {convergence.recommendation === 'user_input_needed' && formatMessage({ id: 'liteTasks.multiCli.needsInput' })}\r\n </Badge>\r\n )}\r\n </h4>\r\n <p className=\"text-xs text-muted-foreground\">\r\n {round.timestamp ? new Date(round.timestamp).toLocaleString() : ''}\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n {/* CLI Status Summary */}\r\n <div className=\"flex items-center gap-1\">\r\n {Object.entries(cliExecutions).map(([cli, exec]) => (\r\n <Badge\r\n key={cli}\r\n variant={exec.status === 'success' ? 'success' : 'destructive'}\r\n className=\"text-[10px] px-1.5 py-0\"\r\n >\r\n {cli}\r\n </Badge>\r\n ))}\r\n </div>\r\n {expanded ? (\r\n <ChevronDown className=\"h-4 w-4 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-4 w-4 text-muted-foreground\" />\r\n )}\r\n </div>\r\n </div>\r\n\r\n {/* Expanded Content */}\r\n {expanded && (\r\n <div className=\"mt-4 space-y-4\">\r\n {/* User Feedback Incorporated */}\r\n {round.user_feedback_incorporated && (\r\n <div className=\"p-3 bg-primary/5 border border-primary/20 rounded-lg\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-primary mb-1\">\r\n <MessageCircle className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.userFeedback' })}\r\n </div>\r\n <p className=\"text-sm text-foreground\">{round.user_feedback_incorporated}</p>\r\n </div>\r\n )}\r\n\r\n {/* CLI Executions */}\r\n {Object.keys(cliExecutions).length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <Cpu className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.cliExecutions' })}\r\n </div>\r\n <div className=\"grid grid-cols-2 gap-2\">\r\n {Object.entries(cliExecutions).map(([cli, exec]) => (\r\n <div key={cli} className=\"flex items-center justify-between p-2 bg-muted/50 rounded-md text-xs\">\r\n <span className=\"font-medium\">{cli}</span>\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-muted-foreground\">{exec.model}</span>\r\n <Badge variant={exec.status === 'success' ? 'success' : 'destructive'} className=\"text-[10px] px-1 py-0\">\r\n <Timer className=\"h-3 w-3 mr-1\" />\r\n {formatDuration(exec.duration_ms)}\r\n </Badge>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Solutions */}\r\n {solutions.length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <Sparkles className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.solutions' })} ({solutions.length})\r\n </div>\r\n <div className=\"space-y-3\">\r\n {solutions.map((solution, idx) => (\r\n <div key={idx} className=\"p-3 bg-muted/30 rounded-lg border border-border/50\">\r\n <div className=\"flex items-start justify-between mb-2\">\r\n <h5 className=\"font-medium text-foreground text-sm\">{solution.name}</h5>\r\n <div className=\"flex items-center gap-1\">\r\n {solution.source_cli.map((cli) => (\r\n <Badge key={cli} variant=\"outline\" className=\"text-[10px] px-1.5 py-0\">\r\n {cli}\r\n </Badge>\r\n ))}\r\n </div>\r\n </div>\r\n <p className=\"text-xs text-muted-foreground mb-2\">{solution.summary}</p>\r\n <div className=\"flex flex-wrap items-center gap-2 text-xs\">\r\n <Badge variant=\"success\" className=\"text-[10px]\">\r\n {Math.round(solution.feasibility * 100)}% {formatMessage({ id: 'liteTasks.multiCli.feasible' })}\r\n </Badge>\r\n <Badge variant=\"warning\" className=\"text-[10px]\">{solution.effort}</Badge>\r\n <Badge variant={solution.risk === 'high' ? 'destructive' : solution.risk === 'low' ? 'success' : 'warning'} className=\"text-[10px]\">\r\n {solution.risk} {formatMessage({ id: 'liteTasks.multiCli.risk' })}\r\n </Badge>\r\n </div>\r\n {/* Pros/Cons */}\r\n <div className=\"mt-2 grid grid-cols-2 gap-2\">\r\n {solution.pros.length > 0 && (\r\n <div className=\"space-y-1\">\r\n <div className=\"flex items-center gap-1 text-xs text-success\">\r\n <ThumbsUp className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.pros' })}\r\n </div>\r\n <ul className=\"text-[10px] text-muted-foreground space-y-0.5\">\r\n {solution.pros.slice(0, 3).map((pro, i) => (\r\n <li key={i} className=\"truncate\">• {pro}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n {solution.cons.length > 0 && (\r\n <div className=\"space-y-1\">\r\n <div className=\"flex items-center gap-1 text-xs text-destructive\">\r\n <ThumbsDown className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.cons' })}\r\n </div>\r\n <ul className=\"text-[10px] text-muted-foreground space-y-0.5\">\r\n {solution.cons.slice(0, 3).map((con, i) => (\r\n <li key={i} className=\"truncate\">• {con}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Convergence Analysis */}\r\n {convergence && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <Target className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.convergence' })}\r\n </div>\r\n <div className=\"p-3 bg-muted/30 rounded-lg\">\r\n <div className=\"flex items-center gap-2 mb-2\">\r\n <div className=\"flex-1 h-2 bg-muted rounded-full overflow-hidden\">\r\n <div\r\n className={`h-full rounded-full ${\r\n convergence.score >= 0.9 ? 'bg-success' :\r\n convergence.score >= 0.7 ? 'bg-warning' : 'bg-destructive'\r\n }`}\r\n style={{ width: `${convergence.score * 100}%` }}\r\n />\r\n </div>\r\n <span className=\"text-xs font-medium\">{Math.round(convergence.score * 100)}%</span>\r\n </div>\r\n <p className=\"text-xs text-muted-foreground\">{convergence.rationale}</p>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Cross Verification */}\r\n {crossVerification && (crossVerification.agreements.length > 0 || crossVerification.disagreements.length > 0) && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <GitCompare className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.crossVerification' })}\r\n </div>\r\n <div className=\"space-y-2\">\r\n {/* Agreements */}\r\n {crossVerification.agreements.length > 0 && (\r\n <div className=\"p-3 bg-success/10 border border-success/20 rounded-lg\">\r\n <div className=\"flex items-center gap-2 text-xs font-medium text-success mb-2\">\r\n <CheckCircle2 className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.agreements' })} ({crossVerification.agreements.length})\r\n </div>\r\n <ul className=\"text-[10px] text-muted-foreground space-y-1\">\r\n {crossVerification.agreements.slice(0, 5).map((agreement, i) => (\r\n <li key={i} className=\"flex items-start gap-1\">\r\n <CheckCircle2 className=\"h-3 w-3 text-success shrink-0 mt-0.5\" />\r\n <span>{agreement}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n {/* Disagreements */}\r\n {crossVerification.disagreements.length > 0 && (\r\n <div className=\"p-3 bg-warning/10 border border-warning/20 rounded-lg\">\r\n <div className=\"flex items-center gap-2 text-xs font-medium text-warning mb-2\">\r\n <AlertCircle className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.disagreements' })} ({crossVerification.disagreements.length})\r\n </div>\r\n <div className=\"space-y-2\">\r\n {crossVerification.disagreements.map((disagreement, i) => (\r\n <div key={i} className=\"text-[10px]\">\r\n <div className=\"font-medium text-foreground mb-1\">{disagreement.topic}</div>\r\n <div className=\"grid grid-cols-2 gap-2\">\r\n <div className=\"flex items-center gap-1\">\r\n <Badge variant=\"outline\" className=\"text-[9px] px-1 py-0\">gemini</Badge>\r\n <span className=\"text-muted-foreground truncate\">{disagreement.gemini}</span>\r\n </div>\r\n <div className=\"flex items-center gap-1\">\r\n <Badge variant=\"outline\" className=\"text-[9px] px-1 py-0\">codex</Badge>\r\n <span className=\"text-muted-foreground truncate\">{disagreement.codex}</span>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {/* Resolution */}\r\n {crossVerification.resolution && (\r\n <div className=\"text-xs text-muted-foreground italic\">\r\n {formatMessage({ id: 'liteTasks.multiCli.resolution' })}: {crossVerification.resolution}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Clarification Questions */}\r\n {clarificationQuestions.length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <HelpCircle className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.clarificationQuestions' })} ({clarificationQuestions.length})\r\n </div>\r\n <ul className=\"space-y-1\">\r\n {clarificationQuestions.map((question, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\r\n <HelpCircle className=\"h-3 w-3 shrink-0 mt-0.5 text-info\" />\r\n <span>{question}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </CardContent>\r\n </Card>\r\n );\r\n}\r\n\r\n/**\r\n * MultiCliContextContent - Display context-package.json for multi-cli-plan sessions\r\n */\r\nfunction MultiCliContextContent({ data }: { data: MultiCliContextPackage }) {\r\n const { formatMessage } = useIntl();\r\n const [expandedSections, setExpandedSections] = React.useState<Set<string>>(new Set(['solution', 'plan']));\r\n\r\n const toggleSection = (section: string) => {\r\n setExpandedSections(prev => {\r\n const next = new Set(prev);\r\n if (next.has(section)) {\r\n next.delete(section);\r\n } else {\r\n next.add(section);\r\n }\r\n return next;\r\n });\r\n };\r\n\r\n const isExpanded = (section: string) => expandedSections.has(section);\r\n\r\n // Section wrapper component\r\n const Section = ({ id, icon, title, badge, children, defaultExpanded = true }: {\r\n id: string;\r\n icon: React.ReactNode;\r\n title: string;\r\n badge?: React.ReactNode;\r\n children: React.ReactNode;\r\n defaultExpanded?: boolean;\r\n }) => {\r\n // Initialize expanded state based on defaultExpanded if not already in set\r\n React.useEffect(() => {\r\n if (defaultExpanded && !expandedSections.has(id)) {\r\n setExpandedSections(prev => new Set(prev).add(id));\r\n }\r\n }, [id, defaultExpanded]);\r\n\r\n return (\r\n <Card className=\"border-border\">\r\n <button\r\n type=\"button\"\r\n className=\"w-full flex items-center gap-2 p-3 text-left hover:bg-muted/50 transition-colors\"\r\n onClick={() => toggleSection(id)}\r\n >\r\n <span className=\"text-muted-foreground\">{icon}</span>\r\n <span className=\"text-sm font-medium text-foreground flex-1\">{title}</span>\r\n {badge}\r\n {isExpanded(id) ? (\r\n <ChevronDown className=\"h-4 w-4 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-4 w-4 text-muted-foreground\" />\r\n )}\r\n </button>\r\n {isExpanded(id) && (\r\n <CardContent className=\"px-3 pb-3 pt-0\">\r\n {children}\r\n </CardContent>\r\n )}\r\n </Card>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"space-y-3\">\r\n {/* Solution Section */}\r\n {data.solution && (\r\n <Section\r\n id=\"solution\"\r\n icon={<Sparkles className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.solution' })}\r\n badge={\r\n <div className=\"flex items-center gap-1\">\r\n {data.solution.source_cli.map(cli => (\r\n <Badge key={cli} variant=\"outline\" className=\"text-[10px] px-1.5 py-0\">{cli}</Badge>\r\n ))}\r\n </div>\r\n }\r\n >\r\n <div className=\"space-y-2\">\r\n <h4 className=\"font-medium text-foreground text-sm\">{data.solution.name}</h4>\r\n <p className=\"text-xs text-muted-foreground\">{data.solution.summary}</p>\r\n <div className=\"flex flex-wrap items-center gap-2\">\r\n <Badge variant=\"success\" className=\"text-[10px]\">\r\n {Math.round(data.solution.feasibility * 100)}% {formatMessage({ id: 'liteTasks.multiCli.feasible' })}\r\n </Badge>\r\n <Badge variant=\"warning\" className=\"text-[10px]\">{data.solution.effort}</Badge>\r\n <Badge variant={data.solution.risk === 'high' ? 'destructive' : data.solution.risk === 'low' ? 'success' : 'warning'} className=\"text-[10px]\">\r\n {data.solution.risk} {formatMessage({ id: 'liteTasks.multiCli.risk' })}\r\n </Badge>\r\n </div>\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Implementation Plan Section */}\r\n {data.implementation_plan && (\r\n <Section\r\n id=\"plan\"\r\n icon={<Route className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.implementationPlan' })}\r\n badge={<Badge variant=\"secondary\" className=\"text-[10px]\">{data.implementation_plan.tasks?.length || 0} tasks</Badge>}\r\n >\r\n <div className=\"space-y-3\">\r\n {/* Approach */}\r\n <div className=\"text-xs text-muted-foreground\">\r\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.multiCli.context.approach' })}:</span>{' '}\r\n {data.implementation_plan.approach}\r\n </div>\r\n\r\n {/* Execution Flow */}\r\n {data.implementation_plan.execution_flow && (\r\n <div className=\"p-2 bg-muted/50 rounded-md\">\r\n <code className=\"text-xs font-mono text-foreground\">{data.implementation_plan.execution_flow}</code>\r\n </div>\r\n )}\r\n\r\n {/* Tasks */}\r\n {data.implementation_plan.tasks && data.implementation_plan.tasks.length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"text-xs font-medium text-foreground\">{formatMessage({ id: 'liteTasks.multiCli.context.tasks' })}</div>\r\n <div className=\"space-y-1.5\">\r\n {data.implementation_plan.tasks.map((task, idx) => (\r\n <div key={task.id || idx} className=\"flex items-start gap-2 p-2 bg-muted/30 rounded-md\">\r\n <Badge variant=\"outline\" className=\"text-[10px] font-mono shrink-0\">{task.id}</Badge>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"text-xs font-medium text-foreground\">{task.name}</div>\r\n {task.key_point && (\r\n <div className=\"text-[10px] text-muted-foreground mt-0.5\">{task.key_point}</div>\r\n )}\r\n {task.files && task.files.length > 0 && (\r\n <div className=\"flex flex-wrap gap-1 mt-1\">\r\n {task.files.map((f, i) => (\r\n <Badge key={i} variant=\"secondary\" className=\"text-[9px] font-mono\">\r\n {f.action === 'create' ? '+' : f.action === 'delete' ? '-' : '~'} {f.file}\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Milestones */}\r\n {data.implementation_plan.milestones && data.implementation_plan.milestones.length > 0 && (\r\n <div className=\"space-y-1.5\">\r\n <div className=\"flex items-center gap-2 text-xs font-medium text-foreground\">\r\n <Flag className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.context.milestones' })}\r\n </div>\r\n <div className=\"flex flex-wrap gap-1.5\">\r\n {data.implementation_plan.milestones.map((milestone, i) => (\r\n <Badge key={i} variant=\"info\" className=\"text-[10px]\">{milestone}</Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Dependencies Section */}\r\n {data.dependencies && (data.dependencies.internal?.length > 0 || data.dependencies.external?.length > 0) && (\r\n <Section\r\n id=\"deps\"\r\n icon={<Link2 className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.dependencies' })}\r\n badge={<Badge variant=\"secondary\" className=\"text-[10px]\">{(data.dependencies.internal?.length || 0) + (data.dependencies.external?.length || 0)}</Badge>}\r\n >\r\n <div className=\"space-y-2\">\r\n {data.dependencies.internal && data.dependencies.internal.length > 0 && (\r\n <div>\r\n <div className=\"text-xs font-medium text-foreground mb-1\">{formatMessage({ id: 'liteTasks.multiCli.context.internal' })}</div>\r\n <div className=\"flex flex-wrap gap-1\">\r\n {data.dependencies.internal.map((dep, i) => (\r\n <Badge key={i} variant=\"outline\" className=\"text-[10px] font-mono\">{dep}</Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {data.dependencies.external && data.dependencies.external.length > 0 && (\r\n <div>\r\n <div className=\"text-xs font-medium text-foreground mb-1\">{formatMessage({ id: 'liteTasks.multiCli.context.external' })}</div>\r\n <div className=\"flex flex-wrap gap-1\">\r\n {data.dependencies.external.map((dep, i) => (\r\n <Badge key={i} variant=\"secondary\" className=\"text-[10px] font-mono\">{dep}</Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Consensus Section */}\r\n {data.consensus && data.consensus.agreements?.length > 0 && (\r\n <Section\r\n id=\"consensus\"\r\n icon={<ShieldCheck className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.consensus' })}\r\n badge={<Badge variant=\"success\" className=\"text-[10px]\">{data.consensus.agreements.length}</Badge>}\r\n >\r\n <div className=\"space-y-2\">\r\n <ul className=\"space-y-1\">\r\n {data.consensus.agreements.map((agreement, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\r\n <CheckCircle2 className=\"h-3 w-3 text-success shrink-0 mt-0.5\" />\r\n <span>{agreement}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n {data.consensus.resolved_conflicts && (\r\n <div className=\"mt-2 p-2 bg-success/10 border border-success/20 rounded-md text-xs text-muted-foreground\">\r\n <span className=\"font-medium text-success\">{formatMessage({ id: 'liteTasks.multiCli.context.resolvedConflicts' })}:</span>{' '}\r\n {data.consensus.resolved_conflicts}\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Technical Concerns Section */}\r\n {data.technical_concerns && data.technical_concerns.length > 0 && (\r\n <Section\r\n id=\"concerns\"\r\n icon={<AlertOctagon className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.technicalConcerns' })}\r\n badge={<Badge variant=\"warning\" className=\"text-[10px]\">{data.technical_concerns.length}</Badge>}\r\n >\r\n <ul className=\"space-y-1\">\r\n {data.technical_concerns.map((concern, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\r\n <AlertCircle className=\"h-3 w-3 text-warning shrink-0 mt-0.5\" />\r\n <span>{concern}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n </Section>\r\n )}\r\n\r\n {/* Constraints Section */}\r\n {data.constraints && data.constraints.length > 0 && (\r\n <Section\r\n id=\"constraints\"\r\n icon={<Settings2 className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.constraints' })}\r\n badge={<Badge variant=\"secondary\" className=\"text-[10px]\">{data.constraints.length}</Badge>}\r\n >\r\n <div className=\"flex flex-wrap gap-1.5\">\r\n {data.constraints.map((constraint, i) => (\r\n <Badge key={i} variant=\"outline\" className=\"text-[10px]\">{constraint}</Badge>\r\n ))}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Session Info */}\r\n {(data.task_description || data.session_id) && (\r\n <Section\r\n id=\"info\"\r\n icon={<Package className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.sessionInfo' })}\r\n defaultExpanded={false}\r\n >\r\n <div className=\"space-y-2 text-xs\">\r\n {data.task_description && (\r\n <div className=\"text-muted-foreground\">\r\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.taskDescription' })}:</span>{' '}\r\n {data.task_description}\r\n </div>\r\n )}\r\n {data.session_id && (\r\n <div className=\"text-muted-foreground\">\r\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.sessionId' })}:</span>{' '}\r\n <span className=\"font-mono bg-muted/50 px-1.5 py-0.5 rounded\">{data.session_id}</span>\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\ntype MultiCliExpandedTab = 'tasks' | 'discussion' | 'context';\r\n\r\n/**\r\n * ExpandedMultiCliPanel - Multi-tab panel shown when a multi-cli session is expanded\r\n */\r\nfunction ExpandedMultiCliPanel({\r\n session,\r\n onTaskClick,\r\n}: {\r\n session: LiteTaskSession;\r\n onTaskClick: (task: LiteTask) => void;\r\n}) {\r\n const { formatMessage } = useIntl();\r\n const [activeTab, setActiveTab] = React.useState<MultiCliExpandedTab>('tasks');\r\n const [contextData, setContextData] = React.useState<LiteSessionContext | null>(null);\r\n const [contextLoading, setContextLoading] = React.useState(false);\r\n const [contextError, setContextError] = React.useState<string | null>(null);\r\n\r\n const tasks = session.tasks || [];\r\n const taskCount = tasks.length;\r\n const synthesis = session.latestSynthesis || {};\r\n const plan = session.plan || {};\r\n const roundCount = session.roundCount || (session.metadata?.roundId as number) || 1;\r\n\r\n // Get i18n text helper\r\n const getI18nTextLocal = (text: string | { en?: string; zh?: string } | undefined): string => {\r\n if (!text) return '';\r\n if (typeof text === 'string') return text;\r\n return text.en || text.zh || '';\r\n };\r\n\r\n // Build implementation chain from task dependencies\r\n const buildImplementationChain = (): string => {\r\n if (tasks.length === 0) return '';\r\n\r\n // Find tasks with no dependencies (starting tasks)\r\n const taskDeps: Record<string, string[]> = {};\r\n const taskIds = new Set<string>();\r\n\r\n tasks.forEach(t => {\r\n const id = t.task_id || t.id;\r\n taskIds.add(id);\r\n taskDeps[id] = t.context?.depends_on || [];\r\n });\r\n\r\n // Find starting tasks (no deps or deps not in task list)\r\n const startingTasks = tasks.filter(t => {\r\n const deps = t.context?.depends_on || [];\r\n return deps.length === 0 || deps.every(d => !taskIds.has(d));\r\n }).map(t => t.task_id || t.id);\r\n\r\n // Group parallel tasks\r\n const parallelStart = startingTasks.length > 1\r\n ? `(${startingTasks.join(' | ')})`\r\n : startingTasks[0] || '';\r\n\r\n // Find subsequent tasks in order\r\n const processed = new Set(startingTasks);\r\n const chain: string[] = [parallelStart];\r\n\r\n let iterations = 0;\r\n while (processed.size < tasks.length && iterations < 20) {\r\n iterations++;\r\n const nextBatch: string[] = [];\r\n\r\n tasks.forEach(t => {\r\n const id = t.task_id || t.id;\r\n if (processed.has(id)) return;\r\n\r\n const deps = t.context?.depends_on || [];\r\n if (deps.every(d => processed.has(d) || !taskIds.has(d))) {\r\n nextBatch.push(id);\r\n }\r\n });\r\n\r\n if (nextBatch.length === 0) break;\r\n\r\n nextBatch.forEach(id => processed.add(id));\r\n if (nextBatch.length > 1) {\r\n chain.push(`(${nextBatch.join(' | ')})`);\r\n } else {\r\n chain.push(nextBatch[0]);\r\n }\r\n }\r\n\r\n return chain.filter(Boolean).join(' → ');\r\n };\r\n\r\n // Load context data lazily\r\n React.useEffect(() => {\r\n if (activeTab !== 'context') return;\r\n if (contextData || contextLoading) return;\r\n if (!session.path) {\r\n setContextError('No session path available');\r\n return;\r\n }\r\n\r\n setContextLoading(true);\r\n fetchLiteSessionContext(session.path)\r\n .then((data) => {\r\n setContextData(data);\r\n setContextError(null);\r\n })\r\n .catch((err) => {\r\n setContextError(err.message || 'Failed to load context');\r\n })\r\n .finally(() => {\r\n setContextLoading(false);\r\n });\r\n }, [activeTab, session.path, contextData, contextLoading]);\r\n\r\n const implementationChain = buildImplementationChain();\r\n const goal = getI18nTextLocal(plan.goal as string | { en?: string; zh?: string }) ||\r\n getI18nTextLocal(synthesis.title as string | { en?: string; zh?: string }) || '';\r\n const solution = getI18nTextLocal(plan.solution as string | { en?: string; zh?: string }) || '';\r\n const feasibility = (plan.feasibility as number) || 0;\r\n const effort = (plan.effort as string) || '';\r\n const risk = (plan.risk as string) || '';\r\n\r\n return (\r\n <div className=\"mt-2 ml-6 pb-2\">\r\n {/* Session Info Header */}\r\n <div className=\"flex items-center gap-4 text-xs text-muted-foreground mb-3 pb-2 border-b border-border/50\">\r\n {session.createdAt && (\r\n <span className=\"flex items-center gap-1\">\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.createdAt' })}: {new Date(session.createdAt).toLocaleDateString()}\r\n </span>\r\n )}\r\n <span className=\"flex items-center gap-1\">\r\n <ListChecks className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.tasks' })}: {taskCount} {formatMessage({ id: 'liteTasks.tasksCount' })}\r\n </span>\r\n </div>\r\n\r\n {/* Tab Buttons */}\r\n <div className=\"flex flex-wrap gap-2 mb-3\">\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('tasks'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'tasks'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <ListChecks className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.tasks' })}\r\n <Badge variant=\"secondary\" className=\"ml-1 text-[10px] px-1.5 py-0\">\r\n {taskCount}\r\n </Badge>\r\n </button>\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('discussion'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'discussion'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <MessagesSquare className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.discussion' })}\r\n <Badge variant=\"secondary\" className=\"ml-1 text-[10px] px-1.5 py-0\">\r\n {roundCount}\r\n </Badge>\r\n </button>\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('context'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'context'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <Package className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.context' })}\r\n </button>\r\n </div>\r\n\r\n {/* Tasks Tab */}\r\n {activeTab === 'tasks' && (\r\n <div className=\"space-y-3\">\r\n {/* Goal/Solution/Implementation Header */}\r\n {(goal || solution || implementationChain) && (\r\n <Card className=\"border-border bg-muted/30\">\r\n <CardContent className=\"p-3 space-y-2\">\r\n {goal && (\r\n <div className=\"text-sm\">\r\n <span className=\"text-muted-foreground\">{formatMessage({ id: 'liteTasks.multiCli.goal' })}:</span>\r\n <span className=\"ml-2 text-foreground\">{goal}</span>\r\n </div>\r\n )}\r\n {solution && (\r\n <div className=\"text-sm\">\r\n <span className=\"text-muted-foreground\">{formatMessage({ id: 'liteTasks.multiCli.solution' })}:</span>\r\n <span className=\"ml-2 text-foreground\">{solution}</span>\r\n </div>\r\n )}\r\n {implementationChain && (\r\n <div className=\"text-sm\">\r\n <span className=\"text-muted-foreground\">{formatMessage({ id: 'liteTasks.multiCli.implementation' })}:</span>\r\n <code className=\"ml-2 px-2 py-0.5 rounded bg-background border border-border text-xs font-mono\">\r\n {implementationChain}\r\n </code>\r\n </div>\r\n )}\r\n {(feasibility > 0 || effort || risk) && (\r\n <div className=\"flex items-center gap-2 pt-1\">\r\n {feasibility > 0 && (\r\n <Badge variant=\"success\" className=\"text-[10px]\">{feasibility}%</Badge>\r\n )}\r\n {effort && (\r\n <Badge variant=\"warning\" className=\"text-[10px]\">{effort}</Badge>\r\n )}\r\n {risk && (\r\n <Badge variant={risk === 'high' ? 'destructive' : risk === 'medium' ? 'warning' : 'success'} className=\"text-[10px]\">\r\n {risk} {formatMessage({ id: 'liteTasks.multiCli.risk' })}\r\n </Badge>\r\n )}\r\n </div>\r\n )}\r\n </CardContent>\r\n </Card>\r\n )}\r\n\r\n {/* Task List */}\r\n {tasks.map((task, index) => {\r\n const filesCount = task.flow_control?.target_files?.length || 0;\r\n const stepsCount = task.flow_control?.implementation_approach?.length || 0;\r\n const criteriaCount = task.context?.acceptance?.length || 0;\r\n const depsCount = task.context?.depends_on?.length || 0;\r\n\r\n return (\r\n <Card\r\n key={task.id || index}\r\n className=\"cursor-pointer hover:shadow-sm hover:border-primary/50 transition-all border-border border-l-4 border-l-primary/50\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onTaskClick(task);\r\n }}\r\n >\r\n <CardContent className=\"p-3\">\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <Badge className=\"text-xs font-mono shrink-0 bg-primary/10 text-primary border-primary/20\">\r\n {task.task_id || `T${index + 1}`}\r\n </Badge>\r\n <h4 className=\"text-sm font-medium text-foreground line-clamp-1\">\r\n {task.title || formatMessage({ id: 'liteTasks.untitled' })}\r\n </h4>\r\n </div>\r\n {/* Meta badges - right side, single row */}\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {task.meta?.type && (\r\n <Badge variant=\"info\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">{task.meta.type}</Badge>\r\n )}\r\n {filesCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 gap-0.5 whitespace-nowrap\">\r\n <FileCode className=\"h-2.5 w-2.5\" />\r\n {filesCount} files\r\n </Badge>\r\n )}\r\n {stepsCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {stepsCount} steps\r\n </Badge>\r\n )}\r\n {criteriaCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {criteriaCount} criteria\r\n </Badge>\r\n )}\r\n {depsCount > 0 && (\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"text-[10px] text-muted-foreground\">→</span>\r\n {task.context?.depends_on?.map((depId, idx) => (\r\n <Badge key={idx} variant=\"outline\" className=\"text-[10px] px-1.5 py-0 font-mono border-primary/30 text-primary whitespace-nowrap\">\r\n {depId}\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n );\r\n })}\r\n </div>\r\n )}\r\n\r\n {/* Discussion Tab */}\r\n {activeTab === 'discussion' && (\r\n <div className=\"space-y-3\">\r\n {/* Rounds Detail */}\r\n {session.rounds && session.rounds.length > 0 ? (\r\n session.rounds.map((round, idx) => (\r\n <RoundDetailCard\r\n key={round.round || idx}\r\n round={round}\r\n isLast={idx === session.rounds!.length - 1}\r\n />\r\n ))\r\n ) : (\r\n <Card className=\"border-border\">\r\n <CardContent className=\"p-4\">\r\n <div className=\"flex items-center gap-2 mb-3\">\r\n <MessagesSquare className=\"h-5 w-5 text-primary\" />\r\n <h4 className=\"font-medium text-foreground\">\r\n {formatMessage({ id: 'liteTasks.multiCli.discussionRounds' })}\r\n </h4>\r\n <Badge variant=\"secondary\" className=\"text-xs\">{roundCount} {formatMessage({ id: 'liteTasks.rounds' })}</Badge>\r\n </div>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.multiCli.discussionDescription' })}\r\n </p>\r\n {goal && (\r\n <div className=\"mt-3 p-3 bg-muted/50 rounded-lg\">\r\n <p className=\"text-sm text-foreground\">{goal}</p>\r\n </div>\r\n )}\r\n </CardContent>\r\n </Card>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Context Tab */}\r\n {activeTab === 'context' && (\r\n <div className=\"space-y-3\">\r\n {contextLoading && (\r\n <div className=\"flex items-center justify-center py-8 text-muted-foreground\">\r\n <Loader2 className=\"h-5 w-5 animate-spin mr-2\" />\r\n <span className=\"text-sm\">{formatMessage({ id: 'liteTasks.contextPanel.loading' })}</span>\r\n </div>\r\n )}\r\n {contextError && !contextLoading && (\r\n <div className=\"flex items-center gap-2 p-3 rounded-lg bg-destructive/10 border border-destructive/30 text-destructive text-sm\">\r\n <XCircle className=\"h-4 w-4 flex-shrink-0\" />\r\n {formatMessage({ id: 'liteTasks.contextPanel.error' })}: {contextError}\r\n </div>\r\n )}\r\n {!contextLoading && !contextError && contextData && (\r\n // Detect multi-cli-plan context by checking for solution field\r\n (contextData.context as MultiCliContextPackage)?.solution ? (\r\n <MultiCliContextContent data={contextData.context as MultiCliContextPackage} />\r\n ) : (\r\n <LiteContextContent contextData={contextData} session={session} />\r\n )\r\n )}\r\n {!contextLoading && !contextError && !contextData && !session.path && (\r\n <div className=\"flex flex-col items-center justify-center py-8 text-center\">\r\n <Package className=\"h-8 w-8 text-muted-foreground mb-2\" />\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.contextPanel.empty' })}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * LiteTasksPage component - Display lite-plan and lite-fix sessions with expandable tasks\r\n */\r\nexport function LiteTasksPage() {\r\n const navigate = useNavigate();\r\n const { subType, id } = useParams<{ subType?: string; id?: string }>();\r\n const { litePlan, liteFix, multiCliPlan, isLoading, error, refetch } = useLiteTasks();\r\n const { formatMessage } = useIntl();\r\n const [activeTab, setActiveTab] = React.useState<LiteTaskTab>('lite-plan');\r\n const [expandedSessionId, setExpandedSessionId] = React.useState<string | null>(null);\r\n const [selectedTask, setSelectedTask] = React.useState<LiteTask | null>(null);\r\n const paramsInitialized = React.useRef(false);\r\n const [searchQuery, setSearchQuery] = React.useState('');\r\n const [sortField, setSortField] = React.useState<SortField>('date');\r\n const [sortOrder, setSortOrder] = React.useState<SortOrder>('desc');\r\n const isImmersiveMode = useAppStore(selectIsImmersiveMode);\r\n const toggleImmersiveMode = useAppStore((s) => s.toggleImmersiveMode);\r\n\r\n // Filter and sort sessions\r\n const filterAndSort = React.useCallback((sessions: LiteTaskSession[]) => {\r\n let filtered = sessions;\r\n\r\n // Apply search filter\r\n if (searchQuery.trim()) {\r\n const query = searchQuery.toLowerCase();\r\n filtered = sessions.filter(session =>\r\n session.id.toLowerCase().includes(query) ||\r\n session.tasks?.some(task =>\r\n task.title?.toLowerCase().includes(query) ||\r\n task.task_id?.toLowerCase().includes(query)\r\n )\r\n );\r\n }\r\n\r\n // Apply sort\r\n const sorted = [...filtered].sort((a, b) => {\r\n let comparison = 0;\r\n\r\n switch (sortField) {\r\n case 'date':\r\n comparison = new Date(a.createdAt || 0).getTime() - new Date(b.createdAt || 0).getTime();\r\n break;\r\n case 'name':\r\n comparison = a.id.localeCompare(b.id);\r\n break;\r\n case 'tasks':\r\n comparison = (a.tasks?.length || 0) - (b.tasks?.length || 0);\r\n break;\r\n }\r\n\r\n return sortOrder === 'asc' ? comparison : -comparison;\r\n });\r\n\r\n return sorted;\r\n }, [searchQuery, sortField, sortOrder]);\r\n\r\n // Filtered data\r\n const filteredLitePlan = React.useMemo(() => filterAndSort(litePlan), [litePlan, filterAndSort]);\r\n const filteredLiteFix = React.useMemo(() => filterAndSort(liteFix), [liteFix, filterAndSort]);\r\n const filteredMultiCliPlan = React.useMemo(() => filterAndSort(multiCliPlan), [multiCliPlan, filterAndSort]);\r\n\r\n // Handle URL params to auto-open task drawer\r\n React.useEffect(() => {\r\n if (!id || paramsInitialized.current) return;\r\n if (isLoading) return;\r\n\r\n // Find the session containing this task\r\n const allSessions = [...litePlan, ...liteFix, ...multiCliPlan];\r\n const targetSession = allSessions.find(session => session.id === id);\r\n\r\n if (targetSession) {\r\n paramsInitialized.current = true;\r\n\r\n // Set active tab based on subType\r\n if (subType === 'lite-plan') setActiveTab('lite-plan');\r\n else if (subType === 'lite-fix') setActiveTab('lite-fix');\r\n else if (subType === 'multi-cli-plan') setActiveTab('multi-cli-plan');\r\n\r\n // Expand the session\r\n setExpandedSessionId(id);\r\n\r\n // Find and select the task\r\n const task = targetSession.tasks?.find(t => t.task_id === id || t.id === id);\r\n if (task) {\r\n setSelectedTask(task);\r\n }\r\n }\r\n }, [id, subType, isLoading, litePlan, liteFix, multiCliPlan]);\r\n\r\n // Toggle sort\r\n const toggleSort = (field: SortField) => {\r\n if (sortField === field) {\r\n setSortOrder(prev => prev === 'asc' ? 'desc' : 'asc');\r\n } else {\r\n setSortField(field);\r\n setSortOrder('desc');\r\n }\r\n };\r\n\r\n const handleBack = () => {\r\n navigate('/sessions');\r\n };\r\n\r\n // Get status badge color\r\n const getStatusColor = (status?: string) => {\r\n const statusColors: Record<string, string> = {\r\n decided: 'success',\r\n converged: 'success',\r\n plan_generated: 'success',\r\n completed: 'success',\r\n exploring: 'info',\r\n initialized: 'info',\r\n analyzing: 'warning',\r\n debating: 'warning',\r\n blocked: 'destructive',\r\n conflict: 'destructive',\r\n };\r\n return statusColors[status || ''] || 'secondary';\r\n };\r\n\r\n // Render lite task card with expandable tasks\r\n const renderLiteTaskCard = (session: LiteTaskSession) => {\r\n const isLitePlan = session.type === 'lite-plan';\r\n const taskCount = session.tasks?.length || 0;\r\n const isExpanded = expandedSessionId === session.id;\r\n\r\n // Calculate task status distribution (no useMemo - this is a render function, not a component)\r\n const tasks = session.tasks || [];\r\n const taskStats = {\r\n completed: tasks.filter((t) => t.status === 'completed').length,\r\n inProgress: tasks.filter((t) => t.status === 'in_progress').length,\r\n blocked: tasks.filter((t) => t.status === 'blocked').length,\r\n };\r\n\r\n const firstTask = tasks[0];\r\n\r\n return (\r\n <div key={session.id}>\r\n <Card\r\n className=\"cursor-pointer hover:shadow-md transition-shadow\"\r\n onClick={() => setExpandedSessionId(isExpanded ? null : session.id)}\r\n >\r\n <CardContent className=\"p-4\">\r\n <div className=\"flex items-center justify-between mb-3\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <div className=\"flex-shrink-0\">\r\n {isExpanded ? (\r\n <ChevronDown className=\"h-5 w-5 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-5 w-5 text-muted-foreground\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <h3 className=\"font-bold text-foreground text-sm tracking-wide uppercase\">{session.id}</h3>\r\n </div>\r\n </div>\r\n <Badge variant={isLitePlan ? 'secondary' : 'warning'} className=\"gap-1 flex-shrink-0\">\r\n {isLitePlan ? <FileEdit className=\"h-3 w-3\" /> : <Wrench className=\"h-3 w-3\" />}\r\n {formatMessage({ id: isLitePlan ? 'liteTasks.type.plan' : 'liteTasks.type.fix' })}\r\n </Badge>\r\n </div>\r\n\r\n {/* Task preview - first task title */}\r\n {firstTask?.title && (\r\n <div className=\"mb-3 pb-3 border-b border-border/50\">\r\n <p className=\"text-sm text-foreground line-clamp-1\">{firstTask.title}</p>\r\n </div>\r\n )}\r\n\r\n {/* Task status distribution */}\r\n <div className=\"flex items-center flex-wrap gap-2 mb-3\">\r\n {taskStats.completed > 0 && (\r\n <Badge variant=\"success\" className=\"gap-1 text-xs\">\r\n <CheckCircle2 className=\"h-3 w-3\" />\r\n {taskStats.completed} {formatMessage({ id: 'liteTasks.status.completed' })}\r\n </Badge>\r\n )}\r\n {taskStats.inProgress > 0 && (\r\n <Badge variant=\"warning\" className=\"gap-1 text-xs\">\r\n <Clock className=\"h-3 w-3\" />\r\n {taskStats.inProgress} {formatMessage({ id: 'liteTasks.status.inProgress' })}\r\n </Badge>\r\n )}\r\n {taskStats.blocked > 0 && (\r\n <Badge variant=\"destructive\" className=\"gap-1 text-xs\">\r\n <AlertCircle className=\"h-3 w-3\" />\r\n {taskStats.blocked} {formatMessage({ id: 'liteTasks.status.blocked' })}\r\n </Badge>\r\n )}\r\n </div>\r\n\r\n {/* Date and task count */}\r\n <div className=\"flex items-center gap-4 text-xs text-muted-foreground\">\r\n {session.createdAt && (\r\n <span className=\"flex items-center gap-1\">\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {new Date(session.createdAt).toLocaleDateString()}\r\n </span>\r\n )}\r\n {taskCount > 0 && (\r\n <span className=\"flex items-center gap-1\">\r\n <Hash className=\"h-3.5 w-3.5\" />\r\n {taskCount} {formatMessage({ id: 'liteTasks.tasksCount' })}\r\n </span>\r\n )}\r\n </div>\r\n </CardContent>\r\n </Card>\r\n\r\n {/* Expanded tasks panel with tabs */}\r\n {isExpanded && session.tasks && session.tasks.length > 0 && (\r\n <ExpandedSessionPanel\r\n session={session}\r\n onTaskClick={setSelectedTask}\r\n />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n // Render multi-cli plan card\r\n const renderMultiCliCard = (session: LiteTaskSession) => {\r\n const metadata = session.metadata || {};\r\n const latestSynthesis = session.latestSynthesis || {};\r\n const roundCount = (metadata.roundId as number) || session.roundCount || 1;\r\n const topicTitle = getI18nText(\r\n latestSynthesis.title as string | { en?: string; zh?: string } | undefined\r\n ) || formatMessage({ id: 'liteTasks.discussionTopic' });\r\n const status = latestSynthesis.status || session.status || 'analyzing';\r\n const createdAt = (metadata.timestamp as string) || session.createdAt || '';\r\n\r\n // Calculate task status distribution (no useMemo - this is a render function, not a component)\r\n const tasks = session.tasks || [];\r\n const taskStats = {\r\n completed: tasks.filter((t) => t.status === 'completed').length,\r\n inProgress: tasks.filter((t) => t.status === 'in_progress').length,\r\n blocked: tasks.filter((t) => t.status === 'blocked').length,\r\n total: tasks.length,\r\n };\r\n\r\n const isExpanded = expandedSessionId === session.id;\r\n\r\n return (\r\n <div key={session.id}>\r\n <Card\r\n className=\"cursor-pointer hover:shadow-md transition-shadow\"\r\n onClick={() => setExpandedSessionId(isExpanded ? null : session.id)}\r\n >\r\n <CardContent className=\"p-4\">\r\n <div className=\"flex items-center justify-between mb-2\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <div className=\"flex-shrink-0\">\r\n {isExpanded ? (\r\n <ChevronDown className=\"h-5 w-5 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-5 w-5 text-muted-foreground\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <h3 className=\"font-bold text-foreground text-sm tracking-wide uppercase\">{session.id}</h3>\r\n </div>\r\n </div>\r\n <Badge variant=\"secondary\" className=\"gap-1 flex-shrink-0\">\r\n <MessagesSquare className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.type.multiCli' })}\r\n </Badge>\r\n </div>\r\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground mb-3\">\r\n <MessageCircle className=\"h-4 w-4\" />\r\n <span className=\"line-clamp-1\">{topicTitle}</span>\r\n </div>\r\n\r\n {/* Task status distribution for multi-cli */}\r\n {taskStats.total > 0 && (\r\n <div className=\"flex items-center flex-wrap gap-2 mb-3\">\r\n {taskStats.completed > 0 && (\r\n <Badge variant=\"success\" className=\"gap-1 text-xs\">\r\n <CheckCircle2 className=\"h-3 w-3\" />\r\n {taskStats.completed} {formatMessage({ id: 'liteTasks.status.completed' })}\r\n </Badge>\r\n )}\r\n {taskStats.inProgress > 0 && (\r\n <Badge variant=\"warning\" className=\"gap-1 text-xs\">\r\n <Clock className=\"h-3 w-3\" />\r\n {taskStats.inProgress} {formatMessage({ id: 'liteTasks.status.inProgress' })}\r\n </Badge>\r\n )}\r\n {taskStats.blocked > 0 && (\r\n <Badge variant=\"destructive\" className=\"gap-1 text-xs\">\r\n <AlertCircle className=\"h-3 w-3\" />\r\n {taskStats.blocked} {formatMessage({ id: 'liteTasks.status.blocked' })}\r\n </Badge>\r\n )}\r\n </div>\r\n )}\r\n\r\n <div className=\"flex items-center gap-3 text-xs text-muted-foreground\">\r\n {createdAt && (\r\n <span className=\"flex items-center gap-1\">\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {new Date(createdAt).toLocaleDateString()}\r\n </span>\r\n )}\r\n <span className=\"flex items-center gap-1\">\r\n <Repeat className=\"h-3.5 w-3.5\" />\r\n {roundCount} {formatMessage({ id: 'liteTasks.rounds' })}\r\n </span>\r\n <Badge variant={getStatusColor(status) as 'success' | 'info' | 'warning' | 'destructive' | 'secondary'} className=\"gap-1\">\r\n <Activity className=\"h-3 w-3\" />\r\n {status}\r\n </Badge>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n\r\n {/* Expanded multi-cli panel with tabs */}\r\n {isExpanded && (\r\n <ExpandedMultiCliPanel\r\n session={session}\r\n onTaskClick={setSelectedTask}\r\n />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n // Loading state\r\n if (isLoading) {\r\n return (\r\n <div className=\"space-y-6\">\r\n <div className=\"flex items-center gap-4\">\r\n <Button variant=\"ghost\" size=\"sm\" disabled>\r\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\r\n {formatMessage({ id: 'common.actions.back' })}\r\n </Button>\r\n <div className=\"h-8 w-64 rounded bg-muted animate-pulse\" />\r\n </div>\r\n <div className=\"h-64 rounded-lg bg-muted animate-pulse\" />\r\n </div>\r\n );\r\n }\r\n\r\n // Error state\r\n if (error) {\r\n return (\r\n <div className=\"flex items-center gap-2 p-4 rounded-lg bg-destructive/10 border border-destructive/30 text-destructive\">\r\n <XCircle className=\"h-5 w-5 flex-shrink-0\" />\r\n <div className=\"flex-1\">\r\n <p className=\"text-sm font-medium\">{formatMessage({ id: 'common.errors.loadFailed' })}</p>\r\n <p className=\"text-xs mt-0.5\">{error.message}</p>\r\n </div>\r\n <Button variant=\"outline\" size=\"sm\" onClick={() => refetch()}>\r\n {formatMessage({ id: 'common.actions.retry' })}\r\n </Button>\r\n </div>\r\n );\r\n }\r\n\r\n const totalSessions = litePlan.length + liteFix.length + multiCliPlan.length;\r\n\r\n return (\r\n <div className={cn(\"space-y-6\", isImmersiveMode && \"h-screen overflow-hidden\")}>\r\n {/* Header */}\r\n <div className=\"flex items-center justify-between\">\r\n <div className=\"flex items-center gap-4\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleBack}>\r\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\r\n {formatMessage({ id: 'common.actions.back' })}\r\n </Button>\r\n <div>\r\n <h1 className=\"text-2xl font-semibold text-foreground\">\r\n {formatMessage({ id: 'liteTasks.title' })}\r\n </h1>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.subtitle' }, { count: totalSessions })}\r\n </p>\r\n </div>\r\n </div>\r\n <button\r\n onClick={toggleImmersiveMode}\r\n className={cn(\r\n 'p-2 rounded-md transition-colors',\r\n isImmersiveMode\r\n ? 'bg-primary/10 text-primary'\r\n : 'text-muted-foreground hover:text-foreground hover:bg-muted'\r\n )}\r\n title={isImmersiveMode ? 'Exit Fullscreen' : 'Fullscreen'}\r\n >\r\n {isImmersiveMode ? <Minimize2 className=\"w-4 h-4\" /> : <Maximize2 className=\"w-4 h-4\" />}\r\n </button>\r\n </div>\r\n\r\n {/* Tabs */}\r\n <TabsNavigation\r\n value={activeTab}\r\n onValueChange={(v) => setActiveTab(v as LiteTaskTab)}\r\n tabs={[\r\n {\r\n value: 'lite-plan',\r\n label: formatMessage({ id: 'liteTasks.type.plan' }),\r\n icon: <FileEdit className=\"h-4 w-4\" />,\r\n badge: <Badge variant=\"secondary\" className=\"ml-2\">{litePlan.length}</Badge>,\r\n },\r\n {\r\n value: 'lite-fix',\r\n label: formatMessage({ id: 'liteTasks.type.fix' }),\r\n icon: <Wrench className=\"h-4 w-4\" />,\r\n badge: <Badge variant=\"secondary\" className=\"ml-2\">{liteFix.length}</Badge>,\r\n },\r\n {\r\n value: 'multi-cli-plan',\r\n label: formatMessage({ id: 'liteTasks.type.multiCli' }),\r\n icon: <MessagesSquare className=\"h-4 w-4\" />,\r\n badge: <Badge variant=\"secondary\" className=\"ml-2\">{multiCliPlan.length}</Badge>,\r\n },\r\n ]}\r\n />\r\n\r\n {/* Search and Sort Toolbar */}\r\n <div className=\"mt-4 flex flex-col sm:flex-row gap-3 items-start sm:items-center justify-between\">\r\n {/* Search */}\r\n <div className=\"relative flex-1 max-w-md\">\r\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\r\n <input\r\n type=\"text\"\r\n placeholder={formatMessage({ id: 'liteTasks.searchPlaceholder' })}\r\n value={searchQuery}\r\n onChange={(e) => setSearchQuery(e.target.value)}\r\n className=\"w-full pl-10 pr-4 py-2 text-sm rounded-lg border border-border bg-background focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary\"\r\n />\r\n </div>\r\n\r\n {/* Sort Buttons */}\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-xs text-muted-foreground flex items-center gap-1\">\r\n <ListFilter className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.sortBy' })}:\r\n </span>\r\n <Button\r\n variant={sortField === 'date' ? 'secondary' : 'ghost'}\r\n size=\"sm\"\r\n onClick={() => toggleSort('date')}\r\n className=\"h-8 px-3 text-xs gap-1\"\r\n >\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.sort.date' })}\r\n {sortField === 'date' && (sortOrder === 'desc' ? <SortDesc className=\"h-3 w-3\" /> : <SortAsc className=\"h-3 w-3\" />)}\r\n </Button>\r\n <Button\r\n variant={sortField === 'name' ? 'secondary' : 'ghost'}\r\n size=\"sm\"\r\n onClick={() => toggleSort('name')}\r\n className=\"h-8 px-3 text-xs gap-1\"\r\n >\r\n {formatMessage({ id: 'liteTasks.sort.name' })}\r\n {sortField === 'name' && (sortOrder === 'desc' ? <SortDesc className=\"h-3 w-3\" /> : <SortAsc className=\"h-3 w-3\" />)}\r\n </Button>\r\n <Button\r\n variant={sortField === 'tasks' ? 'secondary' : 'ghost'}\r\n size=\"sm\"\r\n onClick={() => toggleSort('tasks')}\r\n className=\"h-8 px-3 text-xs gap-1\"\r\n >\r\n <Hash className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.sort.tasks' })}\r\n {sortField === 'tasks' && (sortOrder === 'desc' ? <SortDesc className=\"h-3 w-3\" /> : <SortAsc className=\"h-3 w-3\" />)}\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n {/* Lite Plan Tab */}\r\n {activeTab === 'lite-plan' && (\r\n <div className=\"mt-4\">\r\n {litePlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Zap className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.empty.title' }, { type: 'lite-plan' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.empty.message' })}\r\n </p>\r\n </div>\r\n ) : filteredLitePlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Search className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.noResults.title' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.noResults.message' })}\r\n </p>\r\n </div>\r\n ) : (\r\n <div className=\"grid gap-3\">{filteredLitePlan.map(renderLiteTaskCard)}</div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Lite Fix Tab */}\r\n {activeTab === 'lite-fix' && (\r\n <div className=\"mt-4\">\r\n {liteFix.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Zap className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.empty.title' }, { type: 'lite-fix' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.empty.message' })}\r\n </p>\r\n </div>\r\n ) : filteredLiteFix.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Search className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.noResults.title' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.noResults.message' })}\r\n </p>\r\n </div>\r\n ) : (\r\n <div className=\"grid gap-3\">{filteredLiteFix.map(renderLiteTaskCard)}</div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Multi-CLI Plan Tab */}\r\n {activeTab === 'multi-cli-plan' && (\r\n <div className=\"mt-4\">\r\n {multiCliPlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Zap className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.empty.title' }, { type: 'multi-cli-plan' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.empty.message' })}\r\n </p>\r\n </div>\r\n ) : filteredMultiCliPlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Search className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.noResults.title' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.noResults.message' })}\r\n </p>\r\n </div>\r\n ) : (\r\n <div className=\"grid gap-3\">{filteredMultiCliPlan.map(renderMultiCliCard)}</div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* TaskDrawer */}\r\n <TaskDrawer\r\n task={selectedTask}\r\n isOpen={!!selectedTask}\r\n onClose={() => setSelectedTask(null)}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LiteTasksPage;\r\n"],"names":["ArrowDownWideNarrow","createLucideIcon","ArrowUpNarrowWide","CheckCheck","CircleHelp","Compass","Flag","GitCompare","ListFilter","OctagonAlert","Repeat","Route","Settings2","ShieldCheck","Stethoscope","ThumbsDown","ThumbsUp","getDiagnosisItems","diagnoses","_a","angle","content","c","ContextSection","icon","title","badge","children","defaultOpen","isOpen","setIsOpen","React.useState","jsxs","Card","e","jsx","Badge","ChevronDown","ChevronRight","CardContent","ContextContent","contextData","session","formatMessage","useIntl","plan","ctx","hasExplorations","diagnosisItems","hasDiagnoses","_b","hasContext","hasFocusPaths","_c","hasSummary","_e","_d","_g","_f","_i","_h","_j","item","i","Package","p","f","filePath","reason","d","depInfo","k","v","AlertTriangle","r","desc","severity","ConflictDetectionCard","AssetsCard","_k","ExplorationsSection","_l","_m","_n","FolderOpen","FileText","Code","getI18nText","label","ExpandedSessionPanel","onTaskClick","activeTab","setActiveTab","setContextData","contextLoading","setContextLoading","contextError","setContextError","tasks","taskCount","React.useEffect","fetchLiteSessionContext","data","err","ListChecks","task","index","filesCount","stepsCount","criteriaCount","depsCount","FileCode","depId","idx","Loader2","XCircle","LiteContextContent","RoundDetailCard","round","isLast","expanded","setExpanded","solutions","convergence","crossVerification","clarificationQuestions","cliExecutions","formatDuration","ms","getConvergenceVariant","recommendation","cli","exec","MessageCircle","Cpu","Timer","Sparkles","solution","pro","con","Target","CheckCircle2","agreement","AlertCircle","disagreement","HelpCircle","question","MultiCliContextContent","expandedSections","setExpandedSections","toggleSection","section","prev","next","isExpanded","Section","id","defaultExpanded","milestone","Link2","dep","AlertOctagon","concern","constraint","ExpandedMultiCliPanel","synthesis","roundCount","getI18nTextLocal","text","buildImplementationChain","taskIds","t","startingTasks","deps","parallelStart","processed","chain","iterations","nextBatch","implementationChain","goal","feasibility","effort","risk","Calendar","MessagesSquare","LiteTasksPage","navigate","useNavigate","subType","useParams","litePlan","liteFix","multiCliPlan","isLoading","error","refetch","useLiteTasks","expandedSessionId","setExpandedSessionId","selectedTask","setSelectedTask","paramsInitialized","React.useRef","searchQuery","setSearchQuery","sortField","setSortField","sortOrder","setSortOrder","isImmersiveMode","useAppStore","selectIsImmersiveMode","toggleImmersiveMode","s","filterAndSort","React.useCallback","sessions","filtered","query","a","b","comparison","filteredLitePlan","React.useMemo","filteredLiteFix","filteredMultiCliPlan","targetSession","toggleSort","field","handleBack","getStatusColor","status","renderLiteTaskCard","isLitePlan","taskStats","firstTask","FileEdit","Wrench","Clock","Hash","renderMultiCliCard","metadata","latestSynthesis","topicTitle","createdAt","Activity","Button","ArrowLeft","totalSessions","cn","Minimize2","Maximize2","TabsNavigation","Search","SortDesc","SortAsc","Zap","TaskDrawer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]}
|
|
1
|
+
{"version":3,"file":"LiteTasksPage-aJuRoyLt.js","sources":["../../../../node_modules/lucide-react/dist/esm/icons/arrow-down-wide-narrow.js","../../../../node_modules/lucide-react/dist/esm/icons/arrow-up-narrow-wide.js","../../../../node_modules/lucide-react/dist/esm/icons/check-check.js","../../../../node_modules/lucide-react/dist/esm/icons/circle-help.js","../../../../node_modules/lucide-react/dist/esm/icons/compass.js","../../../../node_modules/lucide-react/dist/esm/icons/flag.js","../../../../node_modules/lucide-react/dist/esm/icons/git-compare.js","../../../../node_modules/lucide-react/dist/esm/icons/list-filter.js","../../../../node_modules/lucide-react/dist/esm/icons/octagon-alert.js","../../../../node_modules/lucide-react/dist/esm/icons/repeat.js","../../../../node_modules/lucide-react/dist/esm/icons/route.js","../../../../node_modules/lucide-react/dist/esm/icons/settings-2.js","../../../../node_modules/lucide-react/dist/esm/icons/shield-check.js","../../../../node_modules/lucide-react/dist/esm/icons/stethoscope.js","../../../../node_modules/lucide-react/dist/esm/icons/thumbs-down.js","../../../../node_modules/lucide-react/dist/esm/icons/thumbs-up.js","../../src/components/lite-tasks/LiteContextContent.tsx","../../src/pages/LiteTasksPage.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowDownWideNarrow = createLucideIcon(\"ArrowDownWideNarrow\", [\n [\"path\", { d: \"m3 16 4 4 4-4\", key: \"1co6wj\" }],\n [\"path\", { d: \"M7 20V4\", key: \"1yoxec\" }],\n [\"path\", { d: \"M11 4h10\", key: \"1w87gc\" }],\n [\"path\", { d: \"M11 8h7\", key: \"djye34\" }],\n [\"path\", { d: \"M11 12h4\", key: \"q8tih4\" }]\n]);\n\nexport { ArrowDownWideNarrow as default };\n//# sourceMappingURL=arrow-down-wide-narrow.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowUpNarrowWide = createLucideIcon(\"ArrowUpNarrowWide\", [\n [\"path\", { d: \"m3 8 4-4 4 4\", key: \"11wl7u\" }],\n [\"path\", { d: \"M7 4v16\", key: \"1glfcx\" }],\n [\"path\", { d: \"M11 12h4\", key: \"q8tih4\" }],\n [\"path\", { d: \"M11 16h7\", key: \"uosisv\" }],\n [\"path\", { d: \"M11 20h10\", key: \"jvxblo\" }]\n]);\n\nexport { ArrowUpNarrowWide as default };\n//# sourceMappingURL=arrow-up-narrow-wide.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CheckCheck = createLucideIcon(\"CheckCheck\", [\n [\"path\", { d: \"M18 6 7 17l-5-5\", key: \"116fxf\" }],\n [\"path\", { d: \"m22 10-7.5 7.5L13 16\", key: \"ke71qq\" }]\n]);\n\nexport { CheckCheck as default };\n//# sourceMappingURL=check-check.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleHelp = createLucideIcon(\"CircleHelp\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { CircleHelp as default };\n//# sourceMappingURL=circle-help.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Compass = createLucideIcon(\"Compass\", [\n [\n \"path\",\n {\n d: \"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\",\n key: \"9ktpf1\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]\n]);\n\nexport { Compass as default };\n//# sourceMappingURL=compass.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Flag = createLucideIcon(\"Flag\", [\n [\"path\", { d: \"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\", key: \"i9b6wo\" }],\n [\"line\", { x1: \"4\", x2: \"4\", y1: \"22\", y2: \"15\", key: \"1cm3nv\" }]\n]);\n\nexport { Flag as default };\n//# sourceMappingURL=flag.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst GitCompare = createLucideIcon(\"GitCompare\", [\n [\"circle\", { cx: \"18\", cy: \"18\", r: \"3\", key: \"1xkwt0\" }],\n [\"circle\", { cx: \"6\", cy: \"6\", r: \"3\", key: \"1lh9wr\" }],\n [\"path\", { d: \"M13 6h3a2 2 0 0 1 2 2v7\", key: \"1yeb86\" }],\n [\"path\", { d: \"M11 18H8a2 2 0 0 1-2-2V9\", key: \"19pyzm\" }]\n]);\n\nexport { GitCompare as default };\n//# sourceMappingURL=git-compare.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListFilter = createLucideIcon(\"ListFilter\", [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M7 12h10\", key: \"b7w52i\" }],\n [\"path\", { d: \"M10 18h4\", key: \"1ulq68\" }]\n]);\n\nexport { ListFilter as default };\n//# sourceMappingURL=list-filter.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst OctagonAlert = createLucideIcon(\"OctagonAlert\", [\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\n \"path\",\n {\n d: \"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z\",\n key: \"1fd625\"\n }\n ]\n]);\n\nexport { OctagonAlert as default };\n//# sourceMappingURL=octagon-alert.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Repeat = createLucideIcon(\"Repeat\", [\n [\"path\", { d: \"m17 2 4 4-4 4\", key: \"nntrym\" }],\n [\"path\", { d: \"M3 11v-1a4 4 0 0 1 4-4h14\", key: \"84bu3i\" }],\n [\"path\", { d: \"m7 22-4-4 4-4\", key: \"1wqhfi\" }],\n [\"path\", { d: \"M21 13v1a4 4 0 0 1-4 4H3\", key: \"1rx37r\" }]\n]);\n\nexport { Repeat as default };\n//# sourceMappingURL=repeat.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Route = createLucideIcon(\"Route\", [\n [\"circle\", { cx: \"6\", cy: \"19\", r: \"3\", key: \"1kj8tv\" }],\n [\"path\", { d: \"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15\", key: \"1d8sl\" }],\n [\"circle\", { cx: \"18\", cy: \"5\", r: \"3\", key: \"gq8acd\" }]\n]);\n\nexport { Route as default };\n//# sourceMappingURL=route.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Settings2 = createLucideIcon(\"Settings2\", [\n [\"path\", { d: \"M20 7h-9\", key: \"3s1dr2\" }],\n [\"path\", { d: \"M14 17H5\", key: \"gfn3mx\" }],\n [\"circle\", { cx: \"17\", cy: \"17\", r: \"3\", key: \"18b49y\" }],\n [\"circle\", { cx: \"7\", cy: \"7\", r: \"3\", key: \"dfmy0x\" }]\n]);\n\nexport { Settings2 as default };\n//# sourceMappingURL=settings-2.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ShieldCheck = createLucideIcon(\"ShieldCheck\", [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n]);\n\nexport { ShieldCheck as default };\n//# sourceMappingURL=shield-check.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Stethoscope = createLucideIcon(\"Stethoscope\", [\n [\"path\", { d: \"M11 2v2\", key: \"1539x4\" }],\n [\"path\", { d: \"M5 2v2\", key: \"1yf1q8\" }],\n [\"path\", { d: \"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1\", key: \"rb5t3r\" }],\n [\"path\", { d: \"M8 15a6 6 0 0 0 12 0v-3\", key: \"x18d4x\" }],\n [\"circle\", { cx: \"20\", cy: \"10\", r: \"2\", key: \"ts1r5v\" }]\n]);\n\nexport { Stethoscope as default };\n//# sourceMappingURL=stethoscope.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ThumbsDown = createLucideIcon(\"ThumbsDown\", [\n [\"path\", { d: \"M17 14V2\", key: \"8ymqnk\" }],\n [\n \"path\",\n {\n d: \"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z\",\n key: \"m61m77\"\n }\n ]\n]);\n\nexport { ThumbsDown as default };\n//# sourceMappingURL=thumbs-down.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ThumbsUp = createLucideIcon(\"ThumbsUp\", [\n [\"path\", { d: \"M7 10v12\", key: \"1qc93n\" }],\n [\n \"path\",\n {\n d: \"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z\",\n key: \"emmmcr\"\n }\n ]\n]);\n\nexport { ThumbsUp as default };\n//# sourceMappingURL=thumbs-up.js.map\n","// ========================================\n// LiteContextContent Component\n// ========================================\n// Extracted from LiteTasksPage - renders context data sections for lite sessions\n\nimport * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport {\n Compass,\n Stethoscope,\n FolderOpen,\n FileText,\n Package,\n ChevronDown,\n ChevronRight,\n AlertTriangle,\n Code,\n} from 'lucide-react';\nimport { Badge } from '@/components/ui/Badge';\nimport { Card, CardContent } from '@/components/ui/Card';\nimport {\n ExplorationsSection,\n AssetsCard,\n ConflictDetectionCard,\n} from '@/components/session-detail/context';\nimport type { ExplorationsData } from '@/components/session-detail/context/ExplorationsSection';\nimport type {\n LiteSessionContext,\n LiteDiagnosisItem,\n LiteTaskSession,\n} from '@/lib/api';\n\n/**\n * Convert diagnoses from either `items[]` (lite-scanner) or `data{}` (session-routes) format\n * into a uniform LiteDiagnosisItem array.\n */\nfunction getDiagnosisItems(diagnoses: LiteSessionContext['diagnoses']): LiteDiagnosisItem[] {\n if (!diagnoses) return [];\n if (diagnoses.items?.length) return diagnoses.items;\n if (diagnoses.data) {\n return Object.entries(diagnoses.data).map(([angle, content]) => ({\n id: angle,\n title: angle.replace(/-/g, ' ').replace(/^\\w/, c => c.toUpperCase()),\n ...(typeof content === 'object' && content !== null ? content : {}),\n })) as LiteDiagnosisItem[];\n }\n return [];\n}\n\n/**\n * ContextSection - Collapsible section wrapper for context items\n */\nfunction ContextSection({\n icon,\n title,\n badge,\n children,\n defaultOpen = true,\n}: {\n icon: React.ReactNode;\n title: string;\n badge?: string;\n children: React.ReactNode;\n defaultOpen?: boolean;\n}) {\n const [isOpen, setIsOpen] = React.useState(defaultOpen);\n\n return (\n <Card className=\"border-border\" onClick={(e) => e.stopPropagation()}>\n <button\n className=\"w-full flex items-center gap-2 p-3 text-left hover:bg-muted/50 transition-colors\"\n onClick={() => setIsOpen(!isOpen)}\n >\n <span className=\"text-muted-foreground\">{icon}</span>\n <span className=\"text-sm font-medium text-foreground flex-1\">{title}</span>\n {badge && (\n <Badge variant=\"secondary\" className=\"text-[10px]\">{badge}</Badge>\n )}\n {isOpen ? (\n <ChevronDown className=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <ChevronRight className=\"h-4 w-4 text-muted-foreground\" />\n )}\n </button>\n {isOpen && (\n <CardContent className=\"px-3 pb-3 pt-0\">\n {children}\n </CardContent>\n )}\n </Card>\n );\n}\n\n/**\n * ContextContent - Renders the context data sections for a lite session\n */\nfunction ContextContent({\n contextData,\n session,\n}: {\n contextData: LiteSessionContext;\n session: LiteTaskSession;\n}) {\n const { formatMessage } = useIntl();\n const plan = session.plan || {};\n const ctx = contextData.context;\n\n const hasExplorations = !!(contextData.explorations?.manifest);\n const diagnosisItems = getDiagnosisItems(contextData.diagnoses);\n const hasDiagnoses = !!(contextData.diagnoses?.manifest || diagnosisItems.length > 0);\n const hasContext = !!ctx;\n const hasFocusPaths = !!(plan.focus_paths as string[] | undefined)?.length;\n const hasSummary = !!(plan.summary as string | undefined);\n const hasAnyContent = hasExplorations || hasDiagnoses || hasContext || hasFocusPaths || hasSummary;\n\n if (!hasAnyContent) {\n return (\n <div className=\"flex flex-col items-center justify-center py-8 text-center\">\n <Package className=\"h-8 w-8 text-muted-foreground mb-2\" />\n <p className=\"text-sm text-muted-foreground\">\n {formatMessage({ id: 'liteTasks.contextPanel.empty' })}\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-3\">\n {/* Explorations Section */}\n {hasExplorations && (\n <ContextSection\n icon={<Compass className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.explorations' })}\n badge={\n contextData.explorations?.manifest?.exploration_count\n ? formatMessage(\n { id: 'liteTasks.contextPanel.explorationsCount' },\n { count: contextData.explorations.manifest.exploration_count }\n )\n : undefined\n }\n >\n <div className=\"space-y-2\">\n {!!contextData.explorations?.manifest?.task_description && (\n <div className=\"text-xs text-muted-foreground\">\n <span className=\"font-medium text-foreground\">\n {formatMessage({ id: 'liteTasks.contextPanel.taskDescription' })}:\n </span>{' '}\n {String(contextData.explorations.manifest.task_description)}\n </div>\n )}\n {!!contextData.explorations?.manifest?.complexity && (\n <div className=\"text-xs text-muted-foreground\">\n <span className=\"font-medium text-foreground\">\n {formatMessage({ id: 'liteTasks.contextPanel.complexity' })}:\n </span>{' '}\n <Badge variant=\"info\" className=\"text-[10px]\">\n {String(contextData.explorations.manifest.complexity)}\n </Badge>\n </div>\n )}\n {contextData.explorations?.data && (\n <div className=\"flex flex-wrap gap-1.5 mt-1\">\n {Object.keys(contextData.explorations.data).map((angle) => (\n <Badge key={angle} variant=\"secondary\" className=\"text-[10px] capitalize\">\n {angle.replace(/-/g, ' ')}\n </Badge>\n ))}\n </div>\n )}\n </div>\n </ContextSection>\n )}\n\n {/* Diagnoses Section */}\n {hasDiagnoses && (\n <ContextSection\n icon={<Stethoscope className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.diagnoses' })}\n badge={\n diagnosisItems.length > 0\n ? formatMessage(\n { id: 'liteTasks.contextPanel.diagnosesCount' },\n { count: diagnosisItems.length }\n )\n : undefined\n }\n >\n {diagnosisItems.map((item, i) => (\n <div key={i} className=\"text-xs text-muted-foreground py-1 border-b border-border/50 last:border-0\">\n {item.title || item.description || `Diagnosis ${i + 1}`}\n </div>\n ))}\n </ContextSection>\n )}\n\n {/* Context Package Section */}\n {hasContext && ctx && (\n <ContextSection\n icon={<Package className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.contextPackage' })}\n >\n <div className=\"space-y-2 text-xs\">\n {ctx.task_description && (\n <div className=\"text-muted-foreground\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.taskDescription' })}:</span>{' '}\n {ctx.task_description}\n </div>\n )}\n\n {ctx.constraints && ctx.constraints.length > 0 && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.constraints' })}:</span>\n </div>\n <div className=\"space-y-1 pl-2\">\n {ctx.constraints.map((c, i) => (\n <div key={i} className=\"text-muted-foreground flex items-start gap-1\">\n <span className=\"text-primary/50\">•</span>\n <span>{c}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {ctx.focus_paths && ctx.focus_paths.length > 0 && (\n <div className=\"text-muted-foreground\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.focusPaths' })}:</span>{' '}\n <div className=\"flex flex-wrap gap-1 mt-0.5\">\n {ctx.focus_paths.map((p, i) => (\n <Badge key={i} variant=\"secondary\" className=\"text-[10px] font-mono\">\n {p}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {ctx.relevant_files && ctx.relevant_files.length > 0 && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.relevantFiles' })}:</span>{' '}\n <Badge variant=\"outline\" className=\"text-[10px] align-middle\">\n {ctx.relevant_files.length}\n </Badge>\n </div>\n <div className=\"space-y-0.5 pl-2 max-h-32 overflow-y-auto\">\n {ctx.relevant_files.map((f, i) => {\n const filePath = typeof f === 'string' ? f : f.path;\n const reason = typeof f === 'string' ? undefined : f.reason;\n return (\n <div key={i} className=\"group flex items-start gap-1 text-muted-foreground hover:bg-muted/30 rounded px-1 py-0.5\">\n <span className=\"text-primary/50 shrink-0\">{i + 1}.</span>\n <span className=\"font-mono text-xs truncate flex-1\" title={filePath}>\n {filePath}\n </span>\n {reason && (\n <span className=\"text-[10px] text-muted-foreground/60 truncate ml-1\" title={reason}>\n ({reason})\n </span>\n )}\n </div>\n );\n })}\n </div>\n </div>\n )}\n\n {ctx.dependencies && ctx.dependencies.length > 0 && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.dependencies' })}:</span>\n </div>\n <div className=\"flex flex-wrap gap-1\">\n {ctx.dependencies.map((d, i) => {\n const depInfo = typeof d === 'string'\n ? { name: d, type: '', version: '' }\n : d as { name: string; type?: string; version?: string };\n return (\n <Badge key={i} variant=\"outline\" className=\"text-[10px]\">\n {depInfo.name}\n {depInfo.version && <span className=\"ml-1 opacity-70\">@{depInfo.version}</span>}\n </Badge>\n );\n })}\n </div>\n </div>\n )}\n\n {ctx.session_id && (\n <div className=\"text-muted-foreground\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.sessionId' })}:</span>{' '}\n <span className=\"font-mono bg-muted/50 px-1.5 py-0.5 rounded\">{ctx.session_id}</span>\n </div>\n )}\n\n {ctx.metadata && (\n <div>\n <div className=\"text-muted-foreground mb-1\">\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.metadata' })}:</span>\n </div>\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-0.5 pl-2 text-muted-foreground\">\n {Object.entries(ctx.metadata).map(([k, v]) => (\n <div key={k} className=\"flex items-center gap-1\">\n <span className=\"font-mono text-[10px] text-primary/60\">{k}:</span>\n <span className=\"truncate\">{String(v)}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </ContextSection>\n )}\n\n {/* Conflict Risks (simple inline list) */}\n {ctx?.conflict_risks && Array.isArray(ctx.conflict_risks) && ctx.conflict_risks.length > 0 && (\n <ContextSection\n icon={<AlertTriangle className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.conflictRisks' })}\n >\n <ul className=\"space-y-1\">\n {ctx.conflict_risks.map((r, i) => {\n const desc = typeof r === 'string' ? r : r.description;\n const severity = typeof r === 'string' ? undefined : r.severity;\n return (\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\n {severity && <Badge variant={severity === 'high' ? 'destructive' : 'warning'} className=\"text-[10px]\">{severity}</Badge>}\n <span>{desc}</span>\n </li>\n );\n })}\n </ul>\n </ContextSection>\n )}\n\n {/* Structured Conflict Detection (higher priority than simple conflict_risks) */}\n {ctx?.conflict_detection && (\n <ConflictDetectionCard data={ctx.conflict_detection} />\n )}\n\n {/* Assets */}\n {ctx?.assets && (\n <AssetsCard data={ctx.assets} />\n )}\n\n {/* Enhanced Explorations - when angle data has detail fields */}\n {contextData.explorations?.data &&\n Object.values(contextData.explorations.data).some(angle =>\n angle.project_structure?.length || angle.relevant_files?.length || angle.patterns?.length\n ) && (\n <ExplorationsSection data={{\n manifest: {\n task_description: contextData.explorations.manifest?.task_description || '',\n complexity: contextData.explorations.manifest?.complexity,\n exploration_count: contextData.explorations.manifest?.exploration_count || Object.keys(contextData.explorations.data).length,\n },\n data: contextData.explorations.data as ExplorationsData['data'],\n }} />\n )}\n\n {/* Focus Paths from Plan */}\n {hasFocusPaths && (\n <ContextSection\n icon={<FolderOpen className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.focusPaths' })}\n >\n <div className=\"flex flex-wrap gap-1.5\">\n {(plan.focus_paths as string[]).map((p, i) => (\n <Badge key={i} variant=\"secondary\" className=\"text-[10px] font-mono\">\n {p}\n </Badge>\n ))}\n </div>\n </ContextSection>\n )}\n\n {/* Plan Summary */}\n {hasSummary && (\n <ContextSection\n icon={<FileText className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.summary' })}\n >\n <p className=\"text-xs text-muted-foreground\">{plan.summary as string}</p>\n </ContextSection>\n )}\n\n {/* Raw JSON Debug View */}\n {contextData.context && (\n <ContextSection\n icon={<Code className=\"h-4 w-4\" />}\n title={formatMessage({ id: 'liteTasks.contextPanel.rawJson' })}\n defaultOpen={false}\n >\n <pre className=\"text-xs font-mono bg-muted p-3 rounded-lg overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap break-all\">\n {JSON.stringify(contextData.context, null, 2)}\n </pre>\n </ContextSection>\n )}\n </div>\n );\n}\n\nexport { ContextContent as LiteContextContent, ContextSection as LiteContextSection };\n","// ========================================\r\n// LiteTasksPage Component\r\n// ========================================\r\n// Lite-plan and lite-fix task list page with TaskDrawer\r\n\r\nimport * as React from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport {\r\n ArrowLeft,\r\n Zap,\r\n Wrench,\r\n FileEdit,\r\n MessagesSquare,\r\n Calendar,\r\n XCircle,\r\n Activity,\r\n Repeat,\r\n MessageCircle,\r\n ChevronDown,\r\n ChevronRight,\r\n Search,\r\n SortAsc,\r\n SortDesc,\r\n ListFilter,\r\n Hash,\r\n ListChecks,\r\n Package,\r\n Loader2,\r\n CheckCircle2,\r\n Clock,\r\n AlertCircle,\r\n FileCode,\r\n ThumbsUp,\r\n ThumbsDown,\r\n Target,\r\n GitCompare,\r\n HelpCircle,\r\n Cpu,\r\n Timer,\r\n Sparkles,\r\n CheckCheck,\r\n Route,\r\n Flag,\r\n AlertOctagon,\r\n Link2,\r\n ShieldCheck,\r\n Settings2,\r\n Maximize2,\r\n Minimize2,\r\n} from 'lucide-react';\r\nimport { useAppStore, selectIsImmersiveMode } from '@/stores/appStore';\r\nimport { useLiteTasks } from '@/hooks/useLiteTasks';\r\nimport { Button } from '@/components/ui/Button';\r\nimport { Badge } from '@/components/ui/Badge';\r\nimport { Card, CardContent } from '@/components/ui/Card';\r\nimport { TabsNavigation } from '@/components/ui/TabsNavigation';\r\nimport { TaskDrawer } from '@/components/shared/TaskDrawer';\r\nimport { fetchLiteSessionContext, type LiteTask, type LiteTaskSession, type LiteSessionContext, type RoundSynthesis, type MultiCliContextPackage } from '@/lib/api';\r\nimport { LiteContextContent } from '@/components/lite-tasks/LiteContextContent';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { cn } from '@/lib/utils';\r\n\r\ntype LiteTaskTab = 'lite-plan' | 'lite-fix' | 'multi-cli-plan';\r\ntype SortField = 'date' | 'name' | 'tasks';\r\ntype SortOrder = 'asc' | 'desc';\r\n\r\n/**\r\n * Get i18n text from label object (supports {en, zh} format)\r\n * Note: fallback should be provided dynamically from component context\r\n */\r\nfunction getI18nText(label: string | { en?: string; zh?: string } | undefined): string | undefined {\r\n if (!label) return undefined;\r\n if (typeof label === 'string') return label;\r\n return label.en || label.zh;\r\n}\r\n\r\ntype ExpandedTab = 'tasks' | 'context';\r\n\r\n/**\r\n * ExpandedSessionPanel - Multi-tab panel shown when a lite session is expanded\r\n */\r\nfunction ExpandedSessionPanel({\r\n session,\r\n onTaskClick,\r\n}: {\r\n session: LiteTaskSession;\r\n onTaskClick: (task: LiteTask) => void;\r\n}) {\r\n const { formatMessage } = useIntl();\r\n const [activeTab, setActiveTab] = React.useState<ExpandedTab>('tasks');\r\n const [contextData, setContextData] = React.useState<LiteSessionContext | null>(null);\r\n const [contextLoading, setContextLoading] = React.useState(false);\r\n const [contextError, setContextError] = React.useState<string | null>(null);\r\n\r\n const tasks = session.tasks || [];\r\n const taskCount = tasks.length;\r\n\r\n // Load context data lazily when context tab is selected\r\n React.useEffect(() => {\r\n if (activeTab !== 'context') return;\r\n if (contextData || contextLoading) return;\r\n if (!session.path) {\r\n setContextError('No session path available');\r\n return;\r\n }\r\n\r\n setContextLoading(true);\r\n fetchLiteSessionContext(session.path)\r\n .then((data) => {\r\n setContextData(data);\r\n setContextError(null);\r\n })\r\n .catch((err) => {\r\n setContextError(err.message || 'Failed to load context');\r\n })\r\n .finally(() => {\r\n setContextLoading(false);\r\n });\r\n }, [activeTab, session.path, contextData, contextLoading]);\r\n\r\n return (\r\n <div className=\"mt-2 ml-6 pb-2\">\r\n {/* Quick Info Cards */}\r\n <div className=\"flex flex-wrap gap-2 mb-3\">\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('tasks'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'tasks'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <ListChecks className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.tasks' })}\r\n <Badge variant=\"secondary\" className=\"ml-1 text-[10px] px-1.5 py-0\">\r\n {taskCount}\r\n </Badge>\r\n </button>\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('context'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'context'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <Package className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.context' })}\r\n </button>\r\n </div>\r\n\r\n {/* Tasks Tab */}\r\n {activeTab === 'tasks' && (\r\n <div className=\"space-y-2\">\r\n {tasks.map((task, index) => {\r\n const filesCount = task.flow_control?.target_files?.length || 0;\r\n const stepsCount = task.flow_control?.implementation_approach?.length || 0;\r\n const criteriaCount = task.context?.acceptance?.length || 0;\r\n const depsCount = task.context?.depends_on?.length || 0;\r\n\r\n return (\r\n <Card\r\n key={task.id || index}\r\n className=\"cursor-pointer hover:shadow-sm hover:border-primary/50 transition-all border-border border-l-4 border-l-primary/50\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onTaskClick(task);\r\n }}\r\n >\r\n <CardContent className=\"p-3\">\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <Badge className=\"text-xs font-mono shrink-0 bg-primary/10 text-primary border-primary/20\">\r\n {task.task_id || `#${index + 1}`}\r\n </Badge>\r\n <h4 className=\"text-sm font-medium text-foreground line-clamp-1\">\r\n {task.title || formatMessage({ id: 'liteTasks.untitled' })}\r\n </h4>\r\n </div>\r\n {/* Meta badges - right side, single row */}\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {task.meta?.type && (\r\n <Badge variant=\"info\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">{task.meta.type}</Badge>\r\n )}\r\n {filesCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 gap-0.5 whitespace-nowrap\">\r\n <FileCode className=\"h-2.5 w-2.5\" />\r\n {filesCount} files\r\n </Badge>\r\n )}\r\n {stepsCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {stepsCount} steps\r\n </Badge>\r\n )}\r\n {criteriaCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {criteriaCount} criteria\r\n </Badge>\r\n )}\r\n {depsCount > 0 && (\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"text-[10px] text-muted-foreground\">→</span>\r\n {task.context?.depends_on?.map((depId, idx) => (\r\n <Badge key={idx} variant=\"outline\" className=\"text-[10px] px-1.5 py-0 font-mono border-primary/30 text-primary whitespace-nowrap\">\r\n {depId}\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {task.description && (\r\n <p className=\"text-xs text-muted-foreground mt-1.5 pl-[calc(1.5rem+0.75rem)] line-clamp-2\">\r\n {task.description}\r\n </p>\r\n )}\r\n </CardContent>\r\n </Card>\r\n );\r\n })}\r\n </div>\r\n )}\r\n\r\n {/* Context Tab */}\r\n {activeTab === 'context' && (\r\n <div className=\"space-y-3\">\r\n {contextLoading && (\r\n <div className=\"flex items-center justify-center py-8 text-muted-foreground\">\r\n <Loader2 className=\"h-5 w-5 animate-spin mr-2\" />\r\n <span className=\"text-sm\">{formatMessage({ id: 'liteTasks.contextPanel.loading' })}</span>\r\n </div>\r\n )}\r\n {contextError && !contextLoading && (\r\n <div className=\"flex items-center gap-2 p-3 rounded-lg bg-destructive/10 border border-destructive/30 text-destructive text-sm\">\r\n <XCircle className=\"h-4 w-4 flex-shrink-0\" />\r\n {formatMessage({ id: 'liteTasks.contextPanel.error' })}: {contextError}\r\n </div>\r\n )}\r\n {!contextLoading && !contextError && contextData && (\r\n <LiteContextContent contextData={contextData} session={session} />\r\n )}\r\n {!contextLoading && !contextError && !contextData && !session.path && (\r\n <div className=\"flex flex-col items-center justify-center py-8 text-center\">\r\n <Package className=\"h-8 w-8 text-muted-foreground mb-2\" />\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.contextPanel.empty' })}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * ContextContent - Extracted to @/components/lite-tasks/LiteContextContent.tsx\r\n */\r\n\r\n/**\r\n * RoundDetailCard - Display detailed information for a single discussion round\r\n */\r\nfunction RoundDetailCard({ round, isLast }: { round: RoundSynthesis; isLast: boolean }) {\r\n const { formatMessage } = useIntl();\r\n const [expanded, setExpanded] = React.useState(isLast);\r\n\r\n const solutions = round.solutions || [];\r\n const convergence = round.convergence;\r\n const crossVerification = round.cross_verification;\r\n const clarificationQuestions = round.clarification_questions || [];\r\n const cliExecutions = round.cli_executions || {};\r\n\r\n // Format duration\r\n const formatDuration = (ms: number) => {\r\n if (ms < 1000) return `${ms}ms`;\r\n return `${(ms / 1000).toFixed(1)}s`;\r\n };\r\n\r\n // Get convergence badge variant\r\n const getConvergenceVariant = (recommendation?: string) => {\r\n switch (recommendation) {\r\n case 'converged': return 'success';\r\n case 'continue': return 'warning';\r\n case 'user_input_needed': return 'destructive';\r\n default: return 'secondary';\r\n }\r\n };\r\n\r\n return (\r\n <Card className=\"border-border\">\r\n <CardContent className=\"p-4\">\r\n {/* Round Header */}\r\n <div\r\n className=\"flex items-center justify-between cursor-pointer\"\r\n onClick={() => setExpanded(!expanded)}\r\n >\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary font-semibold text-sm\">\r\n {round.round}\r\n </div>\r\n <div>\r\n <h4 className=\"font-medium text-foreground flex items-center gap-2\">\r\n {formatMessage({ id: 'liteTasks.multiCli.round' })} {round.round}\r\n {convergence && (\r\n <Badge variant={getConvergenceVariant(convergence.recommendation)} className=\"text-[10px]\">\r\n {convergence.recommendation === 'converged' && <CheckCheck className=\"h-3 w-3 mr-1\" />}\r\n {convergence.recommendation === 'converged' && formatMessage({ id: 'liteTasks.multiCli.converged' })}\r\n {convergence.recommendation === 'continue' && formatMessage({ id: 'liteTasks.multiCli.continuing' })}\r\n {convergence.recommendation === 'user_input_needed' && formatMessage({ id: 'liteTasks.multiCli.needsInput' })}\r\n </Badge>\r\n )}\r\n </h4>\r\n <p className=\"text-xs text-muted-foreground\">\r\n {round.timestamp ? new Date(round.timestamp).toLocaleString() : ''}\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n {/* CLI Status Summary */}\r\n <div className=\"flex items-center gap-1\">\r\n {Object.entries(cliExecutions).map(([cli, exec]) => (\r\n <Badge\r\n key={cli}\r\n variant={exec.status === 'success' ? 'success' : 'destructive'}\r\n className=\"text-[10px] px-1.5 py-0\"\r\n >\r\n {cli}\r\n </Badge>\r\n ))}\r\n </div>\r\n {expanded ? (\r\n <ChevronDown className=\"h-4 w-4 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-4 w-4 text-muted-foreground\" />\r\n )}\r\n </div>\r\n </div>\r\n\r\n {/* Expanded Content */}\r\n {expanded && (\r\n <div className=\"mt-4 space-y-4\">\r\n {/* User Feedback Incorporated */}\r\n {round.user_feedback_incorporated && (\r\n <div className=\"p-3 bg-primary/5 border border-primary/20 rounded-lg\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-primary mb-1\">\r\n <MessageCircle className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.userFeedback' })}\r\n </div>\r\n <p className=\"text-sm text-foreground\">{round.user_feedback_incorporated}</p>\r\n </div>\r\n )}\r\n\r\n {/* CLI Executions */}\r\n {Object.keys(cliExecutions).length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <Cpu className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.cliExecutions' })}\r\n </div>\r\n <div className=\"grid grid-cols-2 gap-2\">\r\n {Object.entries(cliExecutions).map(([cli, exec]) => (\r\n <div key={cli} className=\"flex items-center justify-between p-2 bg-muted/50 rounded-md text-xs\">\r\n <span className=\"font-medium\">{cli}</span>\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-muted-foreground\">{exec.model}</span>\r\n <Badge variant={exec.status === 'success' ? 'success' : 'destructive'} className=\"text-[10px] px-1 py-0\">\r\n <Timer className=\"h-3 w-3 mr-1\" />\r\n {formatDuration(exec.duration_ms)}\r\n </Badge>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Solutions */}\r\n {solutions.length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <Sparkles className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.solutions' })} ({solutions.length})\r\n </div>\r\n <div className=\"space-y-3\">\r\n {solutions.map((solution, idx) => (\r\n <div key={idx} className=\"p-3 bg-muted/30 rounded-lg border border-border/50\">\r\n <div className=\"flex items-start justify-between mb-2\">\r\n <h5 className=\"font-medium text-foreground text-sm\">{solution.name}</h5>\r\n <div className=\"flex items-center gap-1\">\r\n {solution.source_cli.map((cli) => (\r\n <Badge key={cli} variant=\"outline\" className=\"text-[10px] px-1.5 py-0\">\r\n {cli}\r\n </Badge>\r\n ))}\r\n </div>\r\n </div>\r\n <p className=\"text-xs text-muted-foreground mb-2\">{solution.summary}</p>\r\n <div className=\"flex flex-wrap items-center gap-2 text-xs\">\r\n <Badge variant=\"success\" className=\"text-[10px]\">\r\n {Math.round(solution.feasibility * 100)}% {formatMessage({ id: 'liteTasks.multiCli.feasible' })}\r\n </Badge>\r\n <Badge variant=\"warning\" className=\"text-[10px]\">{solution.effort}</Badge>\r\n <Badge variant={solution.risk === 'high' ? 'destructive' : solution.risk === 'low' ? 'success' : 'warning'} className=\"text-[10px]\">\r\n {solution.risk} {formatMessage({ id: 'liteTasks.multiCli.risk' })}\r\n </Badge>\r\n </div>\r\n {/* Pros/Cons */}\r\n <div className=\"mt-2 grid grid-cols-2 gap-2\">\r\n {solution.pros.length > 0 && (\r\n <div className=\"space-y-1\">\r\n <div className=\"flex items-center gap-1 text-xs text-success\">\r\n <ThumbsUp className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.pros' })}\r\n </div>\r\n <ul className=\"text-[10px] text-muted-foreground space-y-0.5\">\r\n {solution.pros.slice(0, 3).map((pro, i) => (\r\n <li key={i} className=\"truncate\">• {pro}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n {solution.cons.length > 0 && (\r\n <div className=\"space-y-1\">\r\n <div className=\"flex items-center gap-1 text-xs text-destructive\">\r\n <ThumbsDown className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.cons' })}\r\n </div>\r\n <ul className=\"text-[10px] text-muted-foreground space-y-0.5\">\r\n {solution.cons.slice(0, 3).map((con, i) => (\r\n <li key={i} className=\"truncate\">• {con}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Convergence Analysis */}\r\n {convergence && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <Target className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.convergence' })}\r\n </div>\r\n <div className=\"p-3 bg-muted/30 rounded-lg\">\r\n <div className=\"flex items-center gap-2 mb-2\">\r\n <div className=\"flex-1 h-2 bg-muted rounded-full overflow-hidden\">\r\n <div\r\n className={`h-full rounded-full ${\r\n convergence.score >= 0.9 ? 'bg-success' :\r\n convergence.score >= 0.7 ? 'bg-warning' : 'bg-destructive'\r\n }`}\r\n style={{ width: `${convergence.score * 100}%` }}\r\n />\r\n </div>\r\n <span className=\"text-xs font-medium\">{Math.round(convergence.score * 100)}%</span>\r\n </div>\r\n <p className=\"text-xs text-muted-foreground\">{convergence.rationale}</p>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Cross Verification */}\r\n {crossVerification && (crossVerification.agreements.length > 0 || crossVerification.disagreements.length > 0) && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <GitCompare className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.crossVerification' })}\r\n </div>\r\n <div className=\"space-y-2\">\r\n {/* Agreements */}\r\n {crossVerification.agreements.length > 0 && (\r\n <div className=\"p-3 bg-success/10 border border-success/20 rounded-lg\">\r\n <div className=\"flex items-center gap-2 text-xs font-medium text-success mb-2\">\r\n <CheckCircle2 className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.agreements' })} ({crossVerification.agreements.length})\r\n </div>\r\n <ul className=\"text-[10px] text-muted-foreground space-y-1\">\r\n {crossVerification.agreements.slice(0, 5).map((agreement, i) => (\r\n <li key={i} className=\"flex items-start gap-1\">\r\n <CheckCircle2 className=\"h-3 w-3 text-success shrink-0 mt-0.5\" />\r\n <span>{agreement}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n {/* Disagreements */}\r\n {crossVerification.disagreements.length > 0 && (\r\n <div className=\"p-3 bg-warning/10 border border-warning/20 rounded-lg\">\r\n <div className=\"flex items-center gap-2 text-xs font-medium text-warning mb-2\">\r\n <AlertCircle className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.disagreements' })} ({crossVerification.disagreements.length})\r\n </div>\r\n <div className=\"space-y-2\">\r\n {crossVerification.disagreements.map((disagreement, i) => (\r\n <div key={i} className=\"text-[10px]\">\r\n <div className=\"font-medium text-foreground mb-1\">{disagreement.topic}</div>\r\n <div className=\"grid grid-cols-2 gap-2\">\r\n <div className=\"flex items-center gap-1\">\r\n <Badge variant=\"outline\" className=\"text-[9px] px-1 py-0\">gemini</Badge>\r\n <span className=\"text-muted-foreground truncate\">{disagreement.gemini}</span>\r\n </div>\r\n <div className=\"flex items-center gap-1\">\r\n <Badge variant=\"outline\" className=\"text-[9px] px-1 py-0\">codex</Badge>\r\n <span className=\"text-muted-foreground truncate\">{disagreement.codex}</span>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {/* Resolution */}\r\n {crossVerification.resolution && (\r\n <div className=\"text-xs text-muted-foreground italic\">\r\n {formatMessage({ id: 'liteTasks.multiCli.resolution' })}: {crossVerification.resolution}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Clarification Questions */}\r\n {clarificationQuestions.length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"flex items-center gap-2 text-sm font-medium text-muted-foreground\">\r\n <HelpCircle className=\"h-4 w-4\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.clarificationQuestions' })} ({clarificationQuestions.length})\r\n </div>\r\n <ul className=\"space-y-1\">\r\n {clarificationQuestions.map((question, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\r\n <HelpCircle className=\"h-3 w-3 shrink-0 mt-0.5 text-info\" />\r\n <span>{question}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </CardContent>\r\n </Card>\r\n );\r\n}\r\n\r\n/**\r\n * MultiCliContextContent - Display context-package.json for multi-cli-plan sessions\r\n */\r\nfunction MultiCliContextContent({ data }: { data: MultiCliContextPackage }) {\r\n const { formatMessage } = useIntl();\r\n const [expandedSections, setExpandedSections] = React.useState<Set<string>>(new Set(['solution', 'plan']));\r\n\r\n const toggleSection = (section: string) => {\r\n setExpandedSections(prev => {\r\n const next = new Set(prev);\r\n if (next.has(section)) {\r\n next.delete(section);\r\n } else {\r\n next.add(section);\r\n }\r\n return next;\r\n });\r\n };\r\n\r\n const isExpanded = (section: string) => expandedSections.has(section);\r\n\r\n // Section wrapper component\r\n const Section = ({ id, icon, title, badge, children, defaultExpanded = true }: {\r\n id: string;\r\n icon: React.ReactNode;\r\n title: string;\r\n badge?: React.ReactNode;\r\n children: React.ReactNode;\r\n defaultExpanded?: boolean;\r\n }) => {\r\n // Initialize expanded state based on defaultExpanded if not already in set\r\n React.useEffect(() => {\r\n if (defaultExpanded && !expandedSections.has(id)) {\r\n setExpandedSections(prev => new Set(prev).add(id));\r\n }\r\n }, [id, defaultExpanded]);\r\n\r\n return (\r\n <Card className=\"border-border\">\r\n <button\r\n type=\"button\"\r\n className=\"w-full flex items-center gap-2 p-3 text-left hover:bg-muted/50 transition-colors\"\r\n onClick={() => toggleSection(id)}\r\n >\r\n <span className=\"text-muted-foreground\">{icon}</span>\r\n <span className=\"text-sm font-medium text-foreground flex-1\">{title}</span>\r\n {badge}\r\n {isExpanded(id) ? (\r\n <ChevronDown className=\"h-4 w-4 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-4 w-4 text-muted-foreground\" />\r\n )}\r\n </button>\r\n {isExpanded(id) && (\r\n <CardContent className=\"px-3 pb-3 pt-0\">\r\n {children}\r\n </CardContent>\r\n )}\r\n </Card>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"space-y-3\">\r\n {/* Solution Section */}\r\n {data.solution && (\r\n <Section\r\n id=\"solution\"\r\n icon={<Sparkles className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.solution' })}\r\n badge={\r\n <div className=\"flex items-center gap-1\">\r\n {data.solution.source_cli.map(cli => (\r\n <Badge key={cli} variant=\"outline\" className=\"text-[10px] px-1.5 py-0\">{cli}</Badge>\r\n ))}\r\n </div>\r\n }\r\n >\r\n <div className=\"space-y-2\">\r\n <h4 className=\"font-medium text-foreground text-sm\">{data.solution.name}</h4>\r\n <p className=\"text-xs text-muted-foreground\">{data.solution.summary}</p>\r\n <div className=\"flex flex-wrap items-center gap-2\">\r\n <Badge variant=\"success\" className=\"text-[10px]\">\r\n {Math.round(data.solution.feasibility * 100)}% {formatMessage({ id: 'liteTasks.multiCli.feasible' })}\r\n </Badge>\r\n <Badge variant=\"warning\" className=\"text-[10px]\">{data.solution.effort}</Badge>\r\n <Badge variant={data.solution.risk === 'high' ? 'destructive' : data.solution.risk === 'low' ? 'success' : 'warning'} className=\"text-[10px]\">\r\n {data.solution.risk} {formatMessage({ id: 'liteTasks.multiCli.risk' })}\r\n </Badge>\r\n </div>\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Implementation Plan Section */}\r\n {data.implementation_plan && (\r\n <Section\r\n id=\"plan\"\r\n icon={<Route className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.implementationPlan' })}\r\n badge={<Badge variant=\"secondary\" className=\"text-[10px]\">{data.implementation_plan.tasks?.length || 0} tasks</Badge>}\r\n >\r\n <div className=\"space-y-3\">\r\n {/* Approach */}\r\n <div className=\"text-xs text-muted-foreground\">\r\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.multiCli.context.approach' })}:</span>{' '}\r\n {data.implementation_plan.approach}\r\n </div>\r\n\r\n {/* Execution Flow */}\r\n {data.implementation_plan.execution_flow && (\r\n <div className=\"p-2 bg-muted/50 rounded-md\">\r\n <code className=\"text-xs font-mono text-foreground\">{data.implementation_plan.execution_flow}</code>\r\n </div>\r\n )}\r\n\r\n {/* Tasks */}\r\n {data.implementation_plan.tasks && data.implementation_plan.tasks.length > 0 && (\r\n <div className=\"space-y-2\">\r\n <div className=\"text-xs font-medium text-foreground\">{formatMessage({ id: 'liteTasks.multiCli.context.tasks' })}</div>\r\n <div className=\"space-y-1.5\">\r\n {data.implementation_plan.tasks.map((task, idx) => (\r\n <div key={task.id || idx} className=\"flex items-start gap-2 p-2 bg-muted/30 rounded-md\">\r\n <Badge variant=\"outline\" className=\"text-[10px] font-mono shrink-0\">{task.id}</Badge>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"text-xs font-medium text-foreground\">{task.name}</div>\r\n {task.key_point && (\r\n <div className=\"text-[10px] text-muted-foreground mt-0.5\">{task.key_point}</div>\r\n )}\r\n {task.files && task.files.length > 0 && (\r\n <div className=\"flex flex-wrap gap-1 mt-1\">\r\n {task.files.map((f, i) => (\r\n <Badge key={i} variant=\"secondary\" className=\"text-[9px] font-mono\">\r\n {f.action === 'create' ? '+' : f.action === 'delete' ? '-' : '~'} {f.file}\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Milestones */}\r\n {data.implementation_plan.milestones && data.implementation_plan.milestones.length > 0 && (\r\n <div className=\"space-y-1.5\">\r\n <div className=\"flex items-center gap-2 text-xs font-medium text-foreground\">\r\n <Flag className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.context.milestones' })}\r\n </div>\r\n <div className=\"flex flex-wrap gap-1.5\">\r\n {data.implementation_plan.milestones.map((milestone, i) => (\r\n <Badge key={i} variant=\"info\" className=\"text-[10px]\">{milestone}</Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Dependencies Section */}\r\n {data.dependencies && (data.dependencies.internal?.length > 0 || data.dependencies.external?.length > 0) && (\r\n <Section\r\n id=\"deps\"\r\n icon={<Link2 className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.dependencies' })}\r\n badge={<Badge variant=\"secondary\" className=\"text-[10px]\">{(data.dependencies.internal?.length || 0) + (data.dependencies.external?.length || 0)}</Badge>}\r\n >\r\n <div className=\"space-y-2\">\r\n {data.dependencies.internal && data.dependencies.internal.length > 0 && (\r\n <div>\r\n <div className=\"text-xs font-medium text-foreground mb-1\">{formatMessage({ id: 'liteTasks.multiCli.context.internal' })}</div>\r\n <div className=\"flex flex-wrap gap-1\">\r\n {data.dependencies.internal.map((dep, i) => (\r\n <Badge key={i} variant=\"outline\" className=\"text-[10px] font-mono\">{dep}</Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {data.dependencies.external && data.dependencies.external.length > 0 && (\r\n <div>\r\n <div className=\"text-xs font-medium text-foreground mb-1\">{formatMessage({ id: 'liteTasks.multiCli.context.external' })}</div>\r\n <div className=\"flex flex-wrap gap-1\">\r\n {data.dependencies.external.map((dep, i) => (\r\n <Badge key={i} variant=\"secondary\" className=\"text-[10px] font-mono\">{dep}</Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Consensus Section */}\r\n {data.consensus && data.consensus.agreements?.length > 0 && (\r\n <Section\r\n id=\"consensus\"\r\n icon={<ShieldCheck className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.consensus' })}\r\n badge={<Badge variant=\"success\" className=\"text-[10px]\">{data.consensus.agreements.length}</Badge>}\r\n >\r\n <div className=\"space-y-2\">\r\n <ul className=\"space-y-1\">\r\n {data.consensus.agreements.map((agreement, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\r\n <CheckCircle2 className=\"h-3 w-3 text-success shrink-0 mt-0.5\" />\r\n <span>{agreement}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n {data.consensus.resolved_conflicts && (\r\n <div className=\"mt-2 p-2 bg-success/10 border border-success/20 rounded-md text-xs text-muted-foreground\">\r\n <span className=\"font-medium text-success\">{formatMessage({ id: 'liteTasks.multiCli.context.resolvedConflicts' })}:</span>{' '}\r\n {data.consensus.resolved_conflicts}\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Technical Concerns Section */}\r\n {data.technical_concerns && data.technical_concerns.length > 0 && (\r\n <Section\r\n id=\"concerns\"\r\n icon={<AlertOctagon className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.technicalConcerns' })}\r\n badge={<Badge variant=\"warning\" className=\"text-[10px]\">{data.technical_concerns.length}</Badge>}\r\n >\r\n <ul className=\"space-y-1\">\r\n {data.technical_concerns.map((concern, i) => (\r\n <li key={i} className=\"flex items-start gap-2 text-xs text-muted-foreground\">\r\n <AlertCircle className=\"h-3 w-3 text-warning shrink-0 mt-0.5\" />\r\n <span>{concern}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n </Section>\r\n )}\r\n\r\n {/* Constraints Section */}\r\n {data.constraints && data.constraints.length > 0 && (\r\n <Section\r\n id=\"constraints\"\r\n icon={<Settings2 className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.constraints' })}\r\n badge={<Badge variant=\"secondary\" className=\"text-[10px]\">{data.constraints.length}</Badge>}\r\n >\r\n <div className=\"flex flex-wrap gap-1.5\">\r\n {data.constraints.map((constraint, i) => (\r\n <Badge key={i} variant=\"outline\" className=\"text-[10px]\">{constraint}</Badge>\r\n ))}\r\n </div>\r\n </Section>\r\n )}\r\n\r\n {/* Session Info */}\r\n {(data.task_description || data.session_id) && (\r\n <Section\r\n id=\"info\"\r\n icon={<Package className=\"h-4 w-4\" />}\r\n title={formatMessage({ id: 'liteTasks.multiCli.context.sessionInfo' })}\r\n defaultExpanded={false}\r\n >\r\n <div className=\"space-y-2 text-xs\">\r\n {data.task_description && (\r\n <div className=\"text-muted-foreground\">\r\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.taskDescription' })}:</span>{' '}\r\n {data.task_description}\r\n </div>\r\n )}\r\n {data.session_id && (\r\n <div className=\"text-muted-foreground\">\r\n <span className=\"font-medium text-foreground\">{formatMessage({ id: 'liteTasks.contextPanel.sessionId' })}:</span>{' '}\r\n <span className=\"font-mono bg-muted/50 px-1.5 py-0.5 rounded\">{data.session_id}</span>\r\n </div>\r\n )}\r\n </div>\r\n </Section>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\ntype MultiCliExpandedTab = 'tasks' | 'discussion' | 'context';\r\n\r\n/**\r\n * ExpandedMultiCliPanel - Multi-tab panel shown when a multi-cli session is expanded\r\n */\r\nfunction ExpandedMultiCliPanel({\r\n session,\r\n onTaskClick,\r\n}: {\r\n session: LiteTaskSession;\r\n onTaskClick: (task: LiteTask) => void;\r\n}) {\r\n const { formatMessage } = useIntl();\r\n const [activeTab, setActiveTab] = React.useState<MultiCliExpandedTab>('tasks');\r\n const [contextData, setContextData] = React.useState<LiteSessionContext | null>(null);\r\n const [contextLoading, setContextLoading] = React.useState(false);\r\n const [contextError, setContextError] = React.useState<string | null>(null);\r\n\r\n const tasks = session.tasks || [];\r\n const taskCount = tasks.length;\r\n const synthesis = session.latestSynthesis || {};\r\n const plan = session.plan || {};\r\n const roundCount = session.roundCount || (session.metadata?.roundId as number) || 1;\r\n\r\n // Get i18n text helper\r\n const getI18nTextLocal = (text: string | { en?: string; zh?: string } | undefined): string => {\r\n if (!text) return '';\r\n if (typeof text === 'string') return text;\r\n return text.en || text.zh || '';\r\n };\r\n\r\n // Build implementation chain from task dependencies\r\n const buildImplementationChain = (): string => {\r\n if (tasks.length === 0) return '';\r\n\r\n // Find tasks with no dependencies (starting tasks)\r\n const taskDeps: Record<string, string[]> = {};\r\n const taskIds = new Set<string>();\r\n\r\n tasks.forEach(t => {\r\n const id = t.task_id || t.id;\r\n taskIds.add(id);\r\n taskDeps[id] = t.context?.depends_on || [];\r\n });\r\n\r\n // Find starting tasks (no deps or deps not in task list)\r\n const startingTasks = tasks.filter(t => {\r\n const deps = t.context?.depends_on || [];\r\n return deps.length === 0 || deps.every(d => !taskIds.has(d));\r\n }).map(t => t.task_id || t.id);\r\n\r\n // Group parallel tasks\r\n const parallelStart = startingTasks.length > 1\r\n ? `(${startingTasks.join(' | ')})`\r\n : startingTasks[0] || '';\r\n\r\n // Find subsequent tasks in order\r\n const processed = new Set(startingTasks);\r\n const chain: string[] = [parallelStart];\r\n\r\n let iterations = 0;\r\n while (processed.size < tasks.length && iterations < 20) {\r\n iterations++;\r\n const nextBatch: string[] = [];\r\n\r\n tasks.forEach(t => {\r\n const id = t.task_id || t.id;\r\n if (processed.has(id)) return;\r\n\r\n const deps = t.context?.depends_on || [];\r\n if (deps.every(d => processed.has(d) || !taskIds.has(d))) {\r\n nextBatch.push(id);\r\n }\r\n });\r\n\r\n if (nextBatch.length === 0) break;\r\n\r\n nextBatch.forEach(id => processed.add(id));\r\n if (nextBatch.length > 1) {\r\n chain.push(`(${nextBatch.join(' | ')})`);\r\n } else {\r\n chain.push(nextBatch[0]);\r\n }\r\n }\r\n\r\n return chain.filter(Boolean).join(' → ');\r\n };\r\n\r\n // Load context data lazily\r\n React.useEffect(() => {\r\n if (activeTab !== 'context') return;\r\n if (contextData || contextLoading) return;\r\n if (!session.path) {\r\n setContextError('No session path available');\r\n return;\r\n }\r\n\r\n setContextLoading(true);\r\n fetchLiteSessionContext(session.path)\r\n .then((data) => {\r\n setContextData(data);\r\n setContextError(null);\r\n })\r\n .catch((err) => {\r\n setContextError(err.message || 'Failed to load context');\r\n })\r\n .finally(() => {\r\n setContextLoading(false);\r\n });\r\n }, [activeTab, session.path, contextData, contextLoading]);\r\n\r\n const implementationChain = buildImplementationChain();\r\n const goal = getI18nTextLocal(plan.goal as string | { en?: string; zh?: string }) ||\r\n getI18nTextLocal(synthesis.title as string | { en?: string; zh?: string }) || '';\r\n const solution = getI18nTextLocal(plan.solution as string | { en?: string; zh?: string }) || '';\r\n const feasibility = (plan.feasibility as number) || 0;\r\n const effort = (plan.effort as string) || '';\r\n const risk = (plan.risk as string) || '';\r\n\r\n return (\r\n <div className=\"mt-2 ml-6 pb-2\">\r\n {/* Session Info Header */}\r\n <div className=\"flex items-center gap-4 text-xs text-muted-foreground mb-3 pb-2 border-b border-border/50\">\r\n {session.createdAt && (\r\n <span className=\"flex items-center gap-1\">\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.createdAt' })}: {new Date(session.createdAt).toLocaleDateString()}\r\n </span>\r\n )}\r\n <span className=\"flex items-center gap-1\">\r\n <ListChecks className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.tasks' })}: {taskCount} {formatMessage({ id: 'liteTasks.tasksCount' })}\r\n </span>\r\n </div>\r\n\r\n {/* Tab Buttons */}\r\n <div className=\"flex flex-wrap gap-2 mb-3\">\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('tasks'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'tasks'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <ListChecks className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.tasks' })}\r\n <Badge variant=\"secondary\" className=\"ml-1 text-[10px] px-1.5 py-0\">\r\n {taskCount}\r\n </Badge>\r\n </button>\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('discussion'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'discussion'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <MessagesSquare className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.multiCli.discussion' })}\r\n <Badge variant=\"secondary\" className=\"ml-1 text-[10px] px-1.5 py-0\">\r\n {roundCount}\r\n </Badge>\r\n </button>\r\n <button\r\n onClick={(e) => { e.stopPropagation(); setActiveTab('context'); }}\r\n className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${\r\n activeTab === 'context'\r\n ? 'bg-primary/10 text-primary border-primary/30'\r\n : 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'\r\n }`}\r\n >\r\n <Package className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.quickCards.context' })}\r\n </button>\r\n </div>\r\n\r\n {/* Tasks Tab */}\r\n {activeTab === 'tasks' && (\r\n <div className=\"space-y-3\">\r\n {/* Goal/Solution/Implementation Header */}\r\n {(goal || solution || implementationChain) && (\r\n <Card className=\"border-border bg-muted/30\">\r\n <CardContent className=\"p-3 space-y-2\">\r\n {goal && (\r\n <div className=\"text-sm\">\r\n <span className=\"text-muted-foreground\">{formatMessage({ id: 'liteTasks.multiCli.goal' })}:</span>\r\n <span className=\"ml-2 text-foreground\">{goal}</span>\r\n </div>\r\n )}\r\n {solution && (\r\n <div className=\"text-sm\">\r\n <span className=\"text-muted-foreground\">{formatMessage({ id: 'liteTasks.multiCli.solution' })}:</span>\r\n <span className=\"ml-2 text-foreground\">{solution}</span>\r\n </div>\r\n )}\r\n {implementationChain && (\r\n <div className=\"text-sm\">\r\n <span className=\"text-muted-foreground\">{formatMessage({ id: 'liteTasks.multiCli.implementation' })}:</span>\r\n <code className=\"ml-2 px-2 py-0.5 rounded bg-background border border-border text-xs font-mono\">\r\n {implementationChain}\r\n </code>\r\n </div>\r\n )}\r\n {(feasibility > 0 || effort || risk) && (\r\n <div className=\"flex items-center gap-2 pt-1\">\r\n {feasibility > 0 && (\r\n <Badge variant=\"success\" className=\"text-[10px]\">{feasibility}%</Badge>\r\n )}\r\n {effort && (\r\n <Badge variant=\"warning\" className=\"text-[10px]\">{effort}</Badge>\r\n )}\r\n {risk && (\r\n <Badge variant={risk === 'high' ? 'destructive' : risk === 'medium' ? 'warning' : 'success'} className=\"text-[10px]\">\r\n {risk} {formatMessage({ id: 'liteTasks.multiCli.risk' })}\r\n </Badge>\r\n )}\r\n </div>\r\n )}\r\n </CardContent>\r\n </Card>\r\n )}\r\n\r\n {/* Task List */}\r\n {tasks.map((task, index) => {\r\n const filesCount = task.flow_control?.target_files?.length || 0;\r\n const stepsCount = task.flow_control?.implementation_approach?.length || 0;\r\n const criteriaCount = task.context?.acceptance?.length || 0;\r\n const depsCount = task.context?.depends_on?.length || 0;\r\n\r\n return (\r\n <Card\r\n key={task.id || index}\r\n className=\"cursor-pointer hover:shadow-sm hover:border-primary/50 transition-all border-border border-l-4 border-l-primary/50\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onTaskClick(task);\r\n }}\r\n >\r\n <CardContent className=\"p-3\">\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <Badge className=\"text-xs font-mono shrink-0 bg-primary/10 text-primary border-primary/20\">\r\n {task.task_id || `T${index + 1}`}\r\n </Badge>\r\n <h4 className=\"text-sm font-medium text-foreground line-clamp-1\">\r\n {task.title || formatMessage({ id: 'liteTasks.untitled' })}\r\n </h4>\r\n </div>\r\n {/* Meta badges - right side, single row */}\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {task.meta?.type && (\r\n <Badge variant=\"info\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">{task.meta.type}</Badge>\r\n )}\r\n {filesCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 gap-0.5 whitespace-nowrap\">\r\n <FileCode className=\"h-2.5 w-2.5\" />\r\n {filesCount} files\r\n </Badge>\r\n )}\r\n {stepsCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {stepsCount} steps\r\n </Badge>\r\n )}\r\n {criteriaCount > 0 && (\r\n <Badge variant=\"secondary\" className=\"text-[10px] px-1.5 py-0 whitespace-nowrap\">\r\n {criteriaCount} criteria\r\n </Badge>\r\n )}\r\n {depsCount > 0 && (\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"text-[10px] text-muted-foreground\">→</span>\r\n {task.context?.depends_on?.map((depId, idx) => (\r\n <Badge key={idx} variant=\"outline\" className=\"text-[10px] px-1.5 py-0 font-mono border-primary/30 text-primary whitespace-nowrap\">\r\n {depId}\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n );\r\n })}\r\n </div>\r\n )}\r\n\r\n {/* Discussion Tab */}\r\n {activeTab === 'discussion' && (\r\n <div className=\"space-y-3\">\r\n {/* Rounds Detail */}\r\n {session.rounds && session.rounds.length > 0 ? (\r\n session.rounds.map((round, idx) => (\r\n <RoundDetailCard\r\n key={round.round || idx}\r\n round={round}\r\n isLast={idx === session.rounds!.length - 1}\r\n />\r\n ))\r\n ) : (\r\n <Card className=\"border-border\">\r\n <CardContent className=\"p-4\">\r\n <div className=\"flex items-center gap-2 mb-3\">\r\n <MessagesSquare className=\"h-5 w-5 text-primary\" />\r\n <h4 className=\"font-medium text-foreground\">\r\n {formatMessage({ id: 'liteTasks.multiCli.discussionRounds' })}\r\n </h4>\r\n <Badge variant=\"secondary\" className=\"text-xs\">{roundCount} {formatMessage({ id: 'liteTasks.rounds' })}</Badge>\r\n </div>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.multiCli.discussionDescription' })}\r\n </p>\r\n {goal && (\r\n <div className=\"mt-3 p-3 bg-muted/50 rounded-lg\">\r\n <p className=\"text-sm text-foreground\">{goal}</p>\r\n </div>\r\n )}\r\n </CardContent>\r\n </Card>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Context Tab */}\r\n {activeTab === 'context' && (\r\n <div className=\"space-y-3\">\r\n {contextLoading && (\r\n <div className=\"flex items-center justify-center py-8 text-muted-foreground\">\r\n <Loader2 className=\"h-5 w-5 animate-spin mr-2\" />\r\n <span className=\"text-sm\">{formatMessage({ id: 'liteTasks.contextPanel.loading' })}</span>\r\n </div>\r\n )}\r\n {contextError && !contextLoading && (\r\n <div className=\"flex items-center gap-2 p-3 rounded-lg bg-destructive/10 border border-destructive/30 text-destructive text-sm\">\r\n <XCircle className=\"h-4 w-4 flex-shrink-0\" />\r\n {formatMessage({ id: 'liteTasks.contextPanel.error' })}: {contextError}\r\n </div>\r\n )}\r\n {!contextLoading && !contextError && contextData && (\r\n // Detect multi-cli-plan context by checking for solution field\r\n (contextData.context as MultiCliContextPackage)?.solution ? (\r\n <MultiCliContextContent data={contextData.context as MultiCliContextPackage} />\r\n ) : (\r\n <LiteContextContent contextData={contextData} session={session} />\r\n )\r\n )}\r\n {!contextLoading && !contextError && !contextData && !session.path && (\r\n <div className=\"flex flex-col items-center justify-center py-8 text-center\">\r\n <Package className=\"h-8 w-8 text-muted-foreground mb-2\" />\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.contextPanel.empty' })}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * LiteTasksPage component - Display lite-plan and lite-fix sessions with expandable tasks\r\n */\r\nexport function LiteTasksPage() {\r\n const navigate = useNavigate();\r\n const { subType, id } = useParams<{ subType?: string; id?: string }>();\r\n const { litePlan, liteFix, multiCliPlan, isLoading, error, refetch } = useLiteTasks();\r\n const { formatMessage } = useIntl();\r\n const [activeTab, setActiveTab] = React.useState<LiteTaskTab>('lite-plan');\r\n const [expandedSessionId, setExpandedSessionId] = React.useState<string | null>(null);\r\n const [selectedTask, setSelectedTask] = React.useState<LiteTask | null>(null);\r\n const paramsInitialized = React.useRef(false);\r\n const [searchQuery, setSearchQuery] = React.useState('');\r\n const [sortField, setSortField] = React.useState<SortField>('date');\r\n const [sortOrder, setSortOrder] = React.useState<SortOrder>('desc');\r\n const isImmersiveMode = useAppStore(selectIsImmersiveMode);\r\n const toggleImmersiveMode = useAppStore((s) => s.toggleImmersiveMode);\r\n\r\n // Filter and sort sessions\r\n const filterAndSort = React.useCallback((sessions: LiteTaskSession[]) => {\r\n let filtered = sessions;\r\n\r\n // Apply search filter\r\n if (searchQuery.trim()) {\r\n const query = searchQuery.toLowerCase();\r\n filtered = sessions.filter(session =>\r\n session.id.toLowerCase().includes(query) ||\r\n session.tasks?.some(task =>\r\n task.title?.toLowerCase().includes(query) ||\r\n task.task_id?.toLowerCase().includes(query)\r\n )\r\n );\r\n }\r\n\r\n // Apply sort\r\n const sorted = [...filtered].sort((a, b) => {\r\n let comparison = 0;\r\n\r\n switch (sortField) {\r\n case 'date':\r\n comparison = new Date(a.createdAt || 0).getTime() - new Date(b.createdAt || 0).getTime();\r\n break;\r\n case 'name':\r\n comparison = a.id.localeCompare(b.id);\r\n break;\r\n case 'tasks':\r\n comparison = (a.tasks?.length || 0) - (b.tasks?.length || 0);\r\n break;\r\n }\r\n\r\n return sortOrder === 'asc' ? comparison : -comparison;\r\n });\r\n\r\n return sorted;\r\n }, [searchQuery, sortField, sortOrder]);\r\n\r\n // Filtered data\r\n const filteredLitePlan = React.useMemo(() => filterAndSort(litePlan), [litePlan, filterAndSort]);\r\n const filteredLiteFix = React.useMemo(() => filterAndSort(liteFix), [liteFix, filterAndSort]);\r\n const filteredMultiCliPlan = React.useMemo(() => filterAndSort(multiCliPlan), [multiCliPlan, filterAndSort]);\r\n\r\n // Handle URL params to auto-open task drawer\r\n React.useEffect(() => {\r\n if (!id || paramsInitialized.current) return;\r\n if (isLoading) return;\r\n\r\n // Find the session containing this task\r\n const allSessions = [...litePlan, ...liteFix, ...multiCliPlan];\r\n const targetSession = allSessions.find(session => session.id === id);\r\n\r\n if (targetSession) {\r\n paramsInitialized.current = true;\r\n\r\n // Set active tab based on subType\r\n if (subType === 'lite-plan') setActiveTab('lite-plan');\r\n else if (subType === 'lite-fix') setActiveTab('lite-fix');\r\n else if (subType === 'multi-cli-plan') setActiveTab('multi-cli-plan');\r\n\r\n // Expand the session\r\n setExpandedSessionId(id);\r\n\r\n // Find and select the task\r\n const task = targetSession.tasks?.find(t => t.task_id === id || t.id === id);\r\n if (task) {\r\n setSelectedTask(task);\r\n }\r\n }\r\n }, [id, subType, isLoading, litePlan, liteFix, multiCliPlan]);\r\n\r\n // Toggle sort\r\n const toggleSort = (field: SortField) => {\r\n if (sortField === field) {\r\n setSortOrder(prev => prev === 'asc' ? 'desc' : 'asc');\r\n } else {\r\n setSortField(field);\r\n setSortOrder('desc');\r\n }\r\n };\r\n\r\n const handleBack = () => {\r\n navigate('/sessions');\r\n };\r\n\r\n // Get status badge color\r\n const getStatusColor = (status?: string) => {\r\n const statusColors: Record<string, string> = {\r\n decided: 'success',\r\n converged: 'success',\r\n plan_generated: 'success',\r\n completed: 'success',\r\n exploring: 'info',\r\n initialized: 'info',\r\n analyzing: 'warning',\r\n debating: 'warning',\r\n blocked: 'destructive',\r\n conflict: 'destructive',\r\n };\r\n return statusColors[status || ''] || 'secondary';\r\n };\r\n\r\n // Render lite task card with expandable tasks\r\n const renderLiteTaskCard = (session: LiteTaskSession) => {\r\n const isLitePlan = session.type === 'lite-plan';\r\n const taskCount = session.tasks?.length || 0;\r\n const isExpanded = expandedSessionId === session.id;\r\n\r\n // Calculate task status distribution (no useMemo - this is a render function, not a component)\r\n const tasks = session.tasks || [];\r\n const taskStats = {\r\n completed: tasks.filter((t) => t.status === 'completed').length,\r\n inProgress: tasks.filter((t) => t.status === 'in_progress').length,\r\n blocked: tasks.filter((t) => t.status === 'blocked').length,\r\n };\r\n\r\n const firstTask = tasks[0];\r\n\r\n return (\r\n <div key={session.id}>\r\n <Card\r\n className=\"cursor-pointer hover:shadow-md transition-shadow\"\r\n onClick={() => setExpandedSessionId(isExpanded ? null : session.id)}\r\n >\r\n <CardContent className=\"p-4\">\r\n <div className=\"flex items-center justify-between mb-3\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <div className=\"flex-shrink-0\">\r\n {isExpanded ? (\r\n <ChevronDown className=\"h-5 w-5 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-5 w-5 text-muted-foreground\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <h3 className=\"font-bold text-foreground text-sm tracking-wide uppercase\">{session.id}</h3>\r\n </div>\r\n </div>\r\n <Badge variant={isLitePlan ? 'secondary' : 'warning'} className=\"gap-1 flex-shrink-0\">\r\n {isLitePlan ? <FileEdit className=\"h-3 w-3\" /> : <Wrench className=\"h-3 w-3\" />}\r\n {formatMessage({ id: isLitePlan ? 'liteTasks.type.plan' : 'liteTasks.type.fix' })}\r\n </Badge>\r\n </div>\r\n\r\n {/* Task preview - first task title */}\r\n {firstTask?.title && (\r\n <div className=\"mb-3 pb-3 border-b border-border/50\">\r\n <p className=\"text-sm text-foreground line-clamp-1\">{firstTask.title}</p>\r\n </div>\r\n )}\r\n\r\n {/* Task status distribution */}\r\n <div className=\"flex items-center flex-wrap gap-2 mb-3\">\r\n {taskStats.completed > 0 && (\r\n <Badge variant=\"success\" className=\"gap-1 text-xs\">\r\n <CheckCircle2 className=\"h-3 w-3\" />\r\n {taskStats.completed} {formatMessage({ id: 'liteTasks.status.completed' })}\r\n </Badge>\r\n )}\r\n {taskStats.inProgress > 0 && (\r\n <Badge variant=\"warning\" className=\"gap-1 text-xs\">\r\n <Clock className=\"h-3 w-3\" />\r\n {taskStats.inProgress} {formatMessage({ id: 'liteTasks.status.inProgress' })}\r\n </Badge>\r\n )}\r\n {taskStats.blocked > 0 && (\r\n <Badge variant=\"destructive\" className=\"gap-1 text-xs\">\r\n <AlertCircle className=\"h-3 w-3\" />\r\n {taskStats.blocked} {formatMessage({ id: 'liteTasks.status.blocked' })}\r\n </Badge>\r\n )}\r\n </div>\r\n\r\n {/* Date and task count */}\r\n <div className=\"flex items-center gap-4 text-xs text-muted-foreground\">\r\n {session.createdAt && (\r\n <span className=\"flex items-center gap-1\">\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {new Date(session.createdAt).toLocaleDateString()}\r\n </span>\r\n )}\r\n {taskCount > 0 && (\r\n <span className=\"flex items-center gap-1\">\r\n <Hash className=\"h-3.5 w-3.5\" />\r\n {taskCount} {formatMessage({ id: 'liteTasks.tasksCount' })}\r\n </span>\r\n )}\r\n </div>\r\n </CardContent>\r\n </Card>\r\n\r\n {/* Expanded tasks panel with tabs */}\r\n {isExpanded && session.tasks && session.tasks.length > 0 && (\r\n <ExpandedSessionPanel\r\n session={session}\r\n onTaskClick={setSelectedTask}\r\n />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n // Render multi-cli plan card\r\n const renderMultiCliCard = (session: LiteTaskSession) => {\r\n const metadata = session.metadata || {};\r\n const latestSynthesis = session.latestSynthesis || {};\r\n const roundCount = (metadata.roundId as number) || session.roundCount || 1;\r\n const topicTitle = getI18nText(\r\n latestSynthesis.title as string | { en?: string; zh?: string } | undefined\r\n ) || formatMessage({ id: 'liteTasks.discussionTopic' });\r\n const status = latestSynthesis.status || session.status || 'analyzing';\r\n const createdAt = (metadata.timestamp as string) || session.createdAt || '';\r\n\r\n // Calculate task status distribution (no useMemo - this is a render function, not a component)\r\n const tasks = session.tasks || [];\r\n const taskStats = {\r\n completed: tasks.filter((t) => t.status === 'completed').length,\r\n inProgress: tasks.filter((t) => t.status === 'in_progress').length,\r\n blocked: tasks.filter((t) => t.status === 'blocked').length,\r\n total: tasks.length,\r\n };\r\n\r\n const isExpanded = expandedSessionId === session.id;\r\n\r\n return (\r\n <div key={session.id}>\r\n <Card\r\n className=\"cursor-pointer hover:shadow-md transition-shadow\"\r\n onClick={() => setExpandedSessionId(isExpanded ? null : session.id)}\r\n >\r\n <CardContent className=\"p-4\">\r\n <div className=\"flex items-center justify-between mb-2\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <div className=\"flex-shrink-0\">\r\n {isExpanded ? (\r\n <ChevronDown className=\"h-5 w-5 text-muted-foreground\" />\r\n ) : (\r\n <ChevronRight className=\"h-5 w-5 text-muted-foreground\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <h3 className=\"font-bold text-foreground text-sm tracking-wide uppercase\">{session.id}</h3>\r\n </div>\r\n </div>\r\n <Badge variant=\"secondary\" className=\"gap-1 flex-shrink-0\">\r\n <MessagesSquare className=\"h-3 w-3\" />\r\n {formatMessage({ id: 'liteTasks.type.multiCli' })}\r\n </Badge>\r\n </div>\r\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground mb-3\">\r\n <MessageCircle className=\"h-4 w-4\" />\r\n <span className=\"line-clamp-1\">{topicTitle}</span>\r\n </div>\r\n\r\n {/* Task status distribution for multi-cli */}\r\n {taskStats.total > 0 && (\r\n <div className=\"flex items-center flex-wrap gap-2 mb-3\">\r\n {taskStats.completed > 0 && (\r\n <Badge variant=\"success\" className=\"gap-1 text-xs\">\r\n <CheckCircle2 className=\"h-3 w-3\" />\r\n {taskStats.completed} {formatMessage({ id: 'liteTasks.status.completed' })}\r\n </Badge>\r\n )}\r\n {taskStats.inProgress > 0 && (\r\n <Badge variant=\"warning\" className=\"gap-1 text-xs\">\r\n <Clock className=\"h-3 w-3\" />\r\n {taskStats.inProgress} {formatMessage({ id: 'liteTasks.status.inProgress' })}\r\n </Badge>\r\n )}\r\n {taskStats.blocked > 0 && (\r\n <Badge variant=\"destructive\" className=\"gap-1 text-xs\">\r\n <AlertCircle className=\"h-3 w-3\" />\r\n {taskStats.blocked} {formatMessage({ id: 'liteTasks.status.blocked' })}\r\n </Badge>\r\n )}\r\n </div>\r\n )}\r\n\r\n <div className=\"flex items-center gap-3 text-xs text-muted-foreground\">\r\n {createdAt && (\r\n <span className=\"flex items-center gap-1\">\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {new Date(createdAt).toLocaleDateString()}\r\n </span>\r\n )}\r\n <span className=\"flex items-center gap-1\">\r\n <Repeat className=\"h-3.5 w-3.5\" />\r\n {roundCount} {formatMessage({ id: 'liteTasks.rounds' })}\r\n </span>\r\n <Badge variant={getStatusColor(status) as 'success' | 'info' | 'warning' | 'destructive' | 'secondary'} className=\"gap-1\">\r\n <Activity className=\"h-3 w-3\" />\r\n {status}\r\n </Badge>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n\r\n {/* Expanded multi-cli panel with tabs */}\r\n {isExpanded && (\r\n <ExpandedMultiCliPanel\r\n session={session}\r\n onTaskClick={setSelectedTask}\r\n />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n // Loading state\r\n if (isLoading) {\r\n return (\r\n <div className=\"space-y-6\">\r\n <div className=\"flex items-center gap-4\">\r\n <Button variant=\"ghost\" size=\"sm\" disabled>\r\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\r\n {formatMessage({ id: 'common.actions.back' })}\r\n </Button>\r\n <div className=\"h-8 w-64 rounded bg-muted animate-pulse\" />\r\n </div>\r\n <div className=\"h-64 rounded-lg bg-muted animate-pulse\" />\r\n </div>\r\n );\r\n }\r\n\r\n // Error state\r\n if (error) {\r\n return (\r\n <div className=\"flex items-center gap-2 p-4 rounded-lg bg-destructive/10 border border-destructive/30 text-destructive\">\r\n <XCircle className=\"h-5 w-5 flex-shrink-0\" />\r\n <div className=\"flex-1\">\r\n <p className=\"text-sm font-medium\">{formatMessage({ id: 'common.errors.loadFailed' })}</p>\r\n <p className=\"text-xs mt-0.5\">{error.message}</p>\r\n </div>\r\n <Button variant=\"outline\" size=\"sm\" onClick={() => refetch()}>\r\n {formatMessage({ id: 'common.actions.retry' })}\r\n </Button>\r\n </div>\r\n );\r\n }\r\n\r\n const totalSessions = litePlan.length + liteFix.length + multiCliPlan.length;\r\n\r\n return (\r\n <div className={cn(\"space-y-6\", isImmersiveMode && \"h-screen overflow-hidden\")}>\r\n {/* Header */}\r\n <div className=\"flex items-center justify-between\">\r\n <div className=\"flex items-center gap-4\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={handleBack}>\r\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\r\n {formatMessage({ id: 'common.actions.back' })}\r\n </Button>\r\n <div>\r\n <h1 className=\"text-2xl font-semibold text-foreground\">\r\n {formatMessage({ id: 'liteTasks.title' })}\r\n </h1>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.subtitle' }, { count: totalSessions })}\r\n </p>\r\n </div>\r\n </div>\r\n <button\r\n onClick={toggleImmersiveMode}\r\n className={cn(\r\n 'p-2 rounded-md transition-colors',\r\n isImmersiveMode\r\n ? 'bg-primary/10 text-primary'\r\n : 'text-muted-foreground hover:text-foreground hover:bg-muted'\r\n )}\r\n title={isImmersiveMode ? 'Exit Fullscreen' : 'Fullscreen'}\r\n >\r\n {isImmersiveMode ? <Minimize2 className=\"w-4 h-4\" /> : <Maximize2 className=\"w-4 h-4\" />}\r\n </button>\r\n </div>\r\n\r\n {/* Tabs */}\r\n <TabsNavigation\r\n value={activeTab}\r\n onValueChange={(v) => setActiveTab(v as LiteTaskTab)}\r\n tabs={[\r\n {\r\n value: 'lite-plan',\r\n label: formatMessage({ id: 'liteTasks.type.plan' }),\r\n icon: <FileEdit className=\"h-4 w-4\" />,\r\n badge: <Badge variant=\"secondary\" className=\"ml-2\">{litePlan.length}</Badge>,\r\n },\r\n {\r\n value: 'lite-fix',\r\n label: formatMessage({ id: 'liteTasks.type.fix' }),\r\n icon: <Wrench className=\"h-4 w-4\" />,\r\n badge: <Badge variant=\"secondary\" className=\"ml-2\">{liteFix.length}</Badge>,\r\n },\r\n {\r\n value: 'multi-cli-plan',\r\n label: formatMessage({ id: 'liteTasks.type.multiCli' }),\r\n icon: <MessagesSquare className=\"h-4 w-4\" />,\r\n badge: <Badge variant=\"secondary\" className=\"ml-2\">{multiCliPlan.length}</Badge>,\r\n },\r\n ]}\r\n />\r\n\r\n {/* Search and Sort Toolbar */}\r\n <div className=\"mt-4 flex flex-col sm:flex-row gap-3 items-start sm:items-center justify-between\">\r\n {/* Search */}\r\n <div className=\"relative flex-1 max-w-md\">\r\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\r\n <input\r\n type=\"text\"\r\n placeholder={formatMessage({ id: 'liteTasks.searchPlaceholder' })}\r\n value={searchQuery}\r\n onChange={(e) => setSearchQuery(e.target.value)}\r\n className=\"w-full pl-10 pr-4 py-2 text-sm rounded-lg border border-border bg-background focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary\"\r\n />\r\n </div>\r\n\r\n {/* Sort Buttons */}\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-xs text-muted-foreground flex items-center gap-1\">\r\n <ListFilter className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.sortBy' })}:\r\n </span>\r\n <Button\r\n variant={sortField === 'date' ? 'secondary' : 'ghost'}\r\n size=\"sm\"\r\n onClick={() => toggleSort('date')}\r\n className=\"h-8 px-3 text-xs gap-1\"\r\n >\r\n <Calendar className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.sort.date' })}\r\n {sortField === 'date' && (sortOrder === 'desc' ? <SortDesc className=\"h-3 w-3\" /> : <SortAsc className=\"h-3 w-3\" />)}\r\n </Button>\r\n <Button\r\n variant={sortField === 'name' ? 'secondary' : 'ghost'}\r\n size=\"sm\"\r\n onClick={() => toggleSort('name')}\r\n className=\"h-8 px-3 text-xs gap-1\"\r\n >\r\n {formatMessage({ id: 'liteTasks.sort.name' })}\r\n {sortField === 'name' && (sortOrder === 'desc' ? <SortDesc className=\"h-3 w-3\" /> : <SortAsc className=\"h-3 w-3\" />)}\r\n </Button>\r\n <Button\r\n variant={sortField === 'tasks' ? 'secondary' : 'ghost'}\r\n size=\"sm\"\r\n onClick={() => toggleSort('tasks')}\r\n className=\"h-8 px-3 text-xs gap-1\"\r\n >\r\n <Hash className=\"h-3.5 w-3.5\" />\r\n {formatMessage({ id: 'liteTasks.sort.tasks' })}\r\n {sortField === 'tasks' && (sortOrder === 'desc' ? <SortDesc className=\"h-3 w-3\" /> : <SortAsc className=\"h-3 w-3\" />)}\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n {/* Lite Plan Tab */}\r\n {activeTab === 'lite-plan' && (\r\n <div className=\"mt-4\">\r\n {litePlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Zap className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.empty.title' }, { type: 'lite-plan' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.empty.message' })}\r\n </p>\r\n </div>\r\n ) : filteredLitePlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Search className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.noResults.title' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.noResults.message' })}\r\n </p>\r\n </div>\r\n ) : (\r\n <div className=\"grid gap-3\">{filteredLitePlan.map(renderLiteTaskCard)}</div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Lite Fix Tab */}\r\n {activeTab === 'lite-fix' && (\r\n <div className=\"mt-4\">\r\n {liteFix.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Zap className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.empty.title' }, { type: 'lite-fix' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.empty.message' })}\r\n </p>\r\n </div>\r\n ) : filteredLiteFix.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Search className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.noResults.title' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.noResults.message' })}\r\n </p>\r\n </div>\r\n ) : (\r\n <div className=\"grid gap-3\">{filteredLiteFix.map(renderLiteTaskCard)}</div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Multi-CLI Plan Tab */}\r\n {activeTab === 'multi-cli-plan' && (\r\n <div className=\"mt-4\">\r\n {multiCliPlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Zap className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.empty.title' }, { type: 'multi-cli-plan' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.empty.message' })}\r\n </p>\r\n </div>\r\n ) : filteredMultiCliPlan.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Search className=\"h-12 w-12 text-muted-foreground mb-4\" />\r\n <h3 className=\"text-lg font-medium text-foreground mb-2\">\r\n {formatMessage({ id: 'liteTasks.noResults.title' })}\r\n </h3>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {formatMessage({ id: 'liteTasks.noResults.message' })}\r\n </p>\r\n </div>\r\n ) : (\r\n <div className=\"grid gap-3\">{filteredMultiCliPlan.map(renderMultiCliCard)}</div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* TaskDrawer */}\r\n <TaskDrawer\r\n task={selectedTask}\r\n isOpen={!!selectedTask}\r\n onClose={() => setSelectedTask(null)}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default LiteTasksPage;\r\n"],"names":["ArrowDownWideNarrow","createLucideIcon","ArrowUpNarrowWide","CheckCheck","CircleHelp","Compass","Flag","GitCompare","ListFilter","OctagonAlert","Repeat","Route","Settings2","ShieldCheck","Stethoscope","ThumbsDown","ThumbsUp","getDiagnosisItems","diagnoses","_a","angle","content","c","ContextSection","icon","title","badge","children","defaultOpen","isOpen","setIsOpen","React.useState","jsxs","Card","e","jsx","Badge","ChevronDown","ChevronRight","CardContent","ContextContent","contextData","session","formatMessage","useIntl","plan","ctx","hasExplorations","diagnosisItems","hasDiagnoses","_b","hasContext","hasFocusPaths","_c","hasSummary","_e","_d","_g","_f","_i","_h","_j","item","i","Package","p","f","filePath","reason","d","depInfo","k","v","AlertTriangle","r","desc","severity","ConflictDetectionCard","AssetsCard","_k","ExplorationsSection","_l","_m","_n","FolderOpen","FileText","Code","getI18nText","label","ExpandedSessionPanel","onTaskClick","activeTab","setActiveTab","setContextData","contextLoading","setContextLoading","contextError","setContextError","tasks","taskCount","React.useEffect","fetchLiteSessionContext","data","err","ListChecks","task","index","filesCount","stepsCount","criteriaCount","depsCount","FileCode","depId","idx","Loader2","XCircle","LiteContextContent","RoundDetailCard","round","isLast","expanded","setExpanded","solutions","convergence","crossVerification","clarificationQuestions","cliExecutions","formatDuration","ms","getConvergenceVariant","recommendation","cli","exec","MessageCircle","Cpu","Timer","Sparkles","solution","pro","con","Target","CheckCircle2","agreement","AlertCircle","disagreement","HelpCircle","question","MultiCliContextContent","expandedSections","setExpandedSections","toggleSection","section","prev","next","isExpanded","Section","id","defaultExpanded","milestone","Link2","dep","AlertOctagon","concern","constraint","ExpandedMultiCliPanel","synthesis","roundCount","getI18nTextLocal","text","buildImplementationChain","taskIds","t","startingTasks","deps","parallelStart","processed","chain","iterations","nextBatch","implementationChain","goal","feasibility","effort","risk","Calendar","MessagesSquare","LiteTasksPage","navigate","useNavigate","subType","useParams","litePlan","liteFix","multiCliPlan","isLoading","error","refetch","useLiteTasks","expandedSessionId","setExpandedSessionId","selectedTask","setSelectedTask","paramsInitialized","React.useRef","searchQuery","setSearchQuery","sortField","setSortField","sortOrder","setSortOrder","isImmersiveMode","useAppStore","selectIsImmersiveMode","toggleImmersiveMode","s","filterAndSort","React.useCallback","sessions","filtered","query","a","b","comparison","filteredLitePlan","React.useMemo","filteredLiteFix","filteredMultiCliPlan","targetSession","toggleSort","field","handleBack","getStatusColor","status","renderLiteTaskCard","isLitePlan","taskStats","firstTask","FileEdit","Wrench","Clock","Hash","renderMultiCliCard","metadata","latestSynthesis","topicTitle","createdAt","Activity","Button","ArrowLeft","totalSessions","cn","Minimize2","Maximize2","TabsNavigation","Search","SortDesc","SortAsc","Zap","TaskDrawer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]}
|