claude-code-workflow 7.2.19 → 7.2.21
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/commands/workflow/analyze-with-file.md +58 -20
- package/.codex/skills/analyze-with-file/SKILL.md +55 -8
- package/.codex/skills/team-arch-opt/SKILL.md +24 -0
- package/.codex/skills/team-arch-opt/roles/coordinator/role.md +22 -0
- package/.codex/skills/team-brainstorm/SKILL.md +24 -0
- package/.codex/skills/team-brainstorm/roles/coordinator/role.md +20 -0
- package/.codex/skills/team-coordinate/SKILL.md +24 -0
- package/.codex/skills/team-coordinate/roles/coordinator/role.md +40 -12
- package/.codex/skills/team-frontend/SKILL.md +24 -0
- package/.codex/skills/team-frontend/roles/coordinator/role.md +20 -0
- package/.codex/skills/team-frontend-debug/SKILL.md +24 -0
- package/.codex/skills/team-frontend-debug/roles/coordinator/role.md +21 -0
- package/.codex/skills/team-issue/SKILL.md +24 -0
- package/.codex/skills/team-issue/roles/coordinator/role.md +19 -0
- package/.codex/skills/team-iterdev/SKILL.md +24 -0
- package/.codex/skills/team-iterdev/roles/coordinator/role.md +20 -0
- package/.codex/skills/team-lifecycle-v4/SKILL.md +24 -0
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +28 -2
- package/.codex/skills/team-perf-opt/SKILL.md +24 -0
- package/.codex/skills/team-perf-opt/roles/coordinator/role.md +20 -0
- package/.codex/skills/team-planex/SKILL.md +24 -0
- package/.codex/skills/team-planex/roles/coordinator/role.md +19 -0
- package/.codex/skills/team-quality-assurance/SKILL.md +24 -0
- package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +21 -0
- package/.codex/skills/team-review/SKILL.md +24 -0
- package/.codex/skills/team-review/roles/coordinator/role.md +21 -0
- package/.codex/skills/team-roadmap-dev/SKILL.md +24 -0
- package/.codex/skills/team-roadmap-dev/roles/coordinator/role.md +19 -0
- package/.codex/skills/team-tech-debt/SKILL.md +24 -0
- package/.codex/skills/team-tech-debt/roles/coordinator/role.md +19 -0
- package/.codex/skills/team-testing/SKILL.md +24 -0
- package/.codex/skills/team-testing/roles/coordinator/role.md +21 -0
- package/.codex/skills/team-uidesign/SKILL.md +24 -0
- package/.codex/skills/team-uidesign/roles/coordinator/role.md +20 -0
- package/.codex/skills/team-ultra-analyze/SKILL.md +24 -0
- package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +20 -0
- package/.codex/skills/team-ux-improve/SKILL.md +24 -0
- package/.codex/skills/team-ux-improve/roles/coordinator/role.md +20 -0
- package/ccw/frontend/dist/assets/{AlertDialog-zDuLRyN3.js → AlertDialog-Cukb0xv2.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-zDuLRyN3.js.map → AlertDialog-Cukb0xv2.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-DGCGwIZY.js → AnalysisPage-Ddmv0J4x.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-DGCGwIZY.js.map → AnalysisPage-Ddmv0J4x.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CgclCqmv.js → ApiSettingsPage-DMkrTZDX.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CgclCqmv.js.map → ApiSettingsPage-DMkrTZDX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-CbGH7qO4.js → CliModeToggle-DXenjpbe.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-CbGH7qO4.js.map → CliModeToggle-DXenjpbe.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-CJGlwyDw.js → CliSessionSharePage-B-ZIMqmX.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-CJGlwyDw.js.map → CliSessionSharePage-B-ZIMqmX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-D-MHYyDt.js → CliViewerPage-9YxGyLxh.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-D-MHYyDt.js.map → CliViewerPage-9YxGyLxh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-z6miX68P.js → CodexLensPage-B_uv5wdn.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-z6miX68P.js.map → CodexLensPage-B_uv5wdn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-D5zS2wef.js → Collapsible-C2qk3yV0.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-D5zS2wef.js.map → Collapsible-C2qk3yV0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChcTwmAn.js → CommandsManagerPage-DBtaWxLB.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChcTwmAn.js.map → CommandsManagerPage-DBtaWxLB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-Cv5LifSi.js → DeepWikiPage-d9K4_TgG.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-Cv5LifSi.js.map → DeepWikiPage-d9K4_TgG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-BcyNmqIa.js → EndpointsPage-DhW6hYrI.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-BcyNmqIa.js.map → EndpointsPage-DhW6hYrI.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-DfHtqeQM.js → ExplorerPage-DYYpCvtB.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-DfHtqeQM.js.map → ExplorerPage-DYYpCvtB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CbvZApeF.js → FixSessionPage-CSmiT5SE.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CbvZApeF.js.map → FixSessionPage-CSmiT5SE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-DLz85cw9.js → FloatingFileBrowser-DvMsXLdP.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-DLz85cw9.js.map → FloatingFileBrowser-DvMsXLdP.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-DrUTmgtV.js → FloatingPanel-sqezhSI8.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-DrUTmgtV.js.map → FloatingPanel-sqezhSI8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-C439yLvH.js → GraphExplorerPage-DS8ghMFM.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-C439yLvH.js.map → GraphExplorerPage-DS8ghMFM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-BClJJMEy.js → HistoryPage-B-x1RyHu.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-BClJJMEy.js.map → HistoryPage-B-x1RyHu.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-DI-2QDLJ.js → HookManagerPage-BbxpDb68.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-DI-2QDLJ.js.map → HookManagerPage-BbxpDb68.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage-DKlz1ypL.js → InstallationsPage-3bShz_Ai.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage-DKlz1ypL.js.map → InstallationsPage-3bShz_Ai.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage--6DduN4j.js → IssueHubPage-BQY_Hh3e.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage--6DduN4j.js.map → IssueHubPage-BQY_Hh3e.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-39j6xEeL.js → LiteTasksPage-vD_8fQcR.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-39j6xEeL.js.map → LiteTasksPage-vD_8fQcR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-D00C9RVN.js → McpManagerPage-CI5ZzB8A.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-D00C9RVN.js.map → McpManagerPage-CI5ZzB8A.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-BXWKdTyM.js → MemoryPage-CNuj2eNg.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-BXWKdTyM.js.map → MemoryPage-CNuj2eNg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-h5o3I7cF.js → NotFoundPage-BrnAXkb1.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-h5o3I7cF.js.map → NotFoundPage-BrnAXkb1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-jkyjmiI1.js → OrchestratorPage-CH81PGt4.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-jkyjmiI1.js.map → OrchestratorPage-CH81PGt4.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-C2bE5eb2.js → ProjectOverviewPage-dwiEXl2O.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-C2bE5eb2.js.map → ProjectOverviewPage-dwiEXl2O.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-DzmPK4GZ.js → PromptHistoryPage-CabgLjJU.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-DzmPK4GZ.js.map → PromptHistoryPage-CabgLjJU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-CVMH1K6G.js → ReviewSessionPage-DAMrNFn8.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-CVMH1K6G.js.map → ReviewSessionPage-DAMrNFn8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-BDZco-r2.js → RulesManagerPage-4jzmxPn0.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-BDZco-r2.js.map → RulesManagerPage-4jzmxPn0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-D5cM-8Kk.js → SessionDetailPage-C5Btktmp.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-D5cM-8Kk.js.map → SessionDetailPage-C5Btktmp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-BFy74ye3.js → SessionsPage-CQIB4E8m.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-BFy74ye3.js.map → SessionsPage-CQIB4E8m.js.map} +1 -1
- package/ccw/frontend/dist/assets/SettingsPage-Yi9UAfm7.js +150 -0
- package/ccw/frontend/dist/assets/SettingsPage-Yi9UAfm7.js.map +1 -0
- package/ccw/frontend/dist/assets/{SkillsManagerPage-8Dsq4AUD.js → SkillsManagerPage-BqfvYSkT.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-8Dsq4AUD.js.map → SkillsManagerPage-BqfvYSkT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CG77iAYQ.js → SpecsSettingsPage-BdVPM5R6.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CG77iAYQ.js.map → SpecsSettingsPage-BdVPM5R6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BbuvVsX-.js → Switch-BG929kV0.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BbuvVsX-.js.map → Switch-BG929kV0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-SGJhC8-P.js → TabsNavigation-Bol1y09b.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-SGJhC8-P.js.map → TabsNavigation-Bol1y09b.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-p51jeScU.js → TaskDrawer-Dwutrn8_.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-p51jeScU.js.map → TaskDrawer-Dwutrn8_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-CvZBThbr.js → TeamPage-CpCSwpxD.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-CvZBThbr.js.map → TeamPage-CpCSwpxD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-uhM7kGKI.js → TerminalDashboardPage-DODKjOeK.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-uhM7kGKI.js.map → TerminalDashboardPage-DODKjOeK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-D6ySrtHC.js → archive-CQw634kD.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-D6ySrtHC.js.map → archive-CQw634kD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-C1uI-5TY.js → archive-restore-B-_EG6wE.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-C1uI-5TY.js.map → archive-restore-B-_EG6wE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-qE5-FMG8.js → arrow-right-CcQtxBrU.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-qE5-FMG8.js.map → arrow-right-CcQtxBrU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-DL4iL38T.js → bookmark-plus-Cl-BbcpR.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-DL4iL38T.js.map → bookmark-plus-Cl-BbcpR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-CZzIeEkg.js → bot-CLSNSkW_.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-CZzIeEkg.js.map → bot-CLSNSkW_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-MEPRT2LN.js → braces-DWwkaDS6.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-MEPRT2LN.js.map → braces-DWwkaDS6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-GQcecSUg.js → circle-stop-DiS7e6ma.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-GQcecSUg.js.map → circle-stop-DiS7e6ma.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-CzxYMs1Y.js → cpu-CuvHUVXO.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-CzxYMs1Y.js.map → cpu-CuvHUVXO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DZMfiFKo.js → ellipsis-vertical-BoVlINSw.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DZMfiFKo.js.map → ellipsis-vertical-BoVlINSw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-BXfPoClW.js → eye-BEMOdcAN.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-BXfPoClW.js.map → eye-BEMOdcAN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-CyaKXmAk.js → eye-off-C5HS4Ytm.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-CyaKXmAk.js.map → eye-off-C5HS4Ytm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-B4LbFfTU.js → file-json-DQ9XLq0B.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-B4LbFfTU.js.map → file-json-DQ9XLq0B.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-CIWG7Xgj.js → file-text-TGs_qCbw.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-CIWG7Xgj.js.map → file-text-TGs_qCbw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-CNBjjvBX.js → filter-CIuCqnDB.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-CNBjjvBX.js.map → filter-CIuCqnDB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-DT_XOYw9.js → folder-BkivHBwn.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-DT_XOYw9.js.map → folder-BkivHBwn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-mvQWOG3S.js → gauge-CtM68fVY.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-mvQWOG3S.js.map → gauge-CtM68fVY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-B25jraBz.js → globe-DpnrINqP.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-B25jraBz.js.map → globe-DpnrINqP.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-CptugI_Z.js → grid-3x3-SjX0a5JH.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-CptugI_Z.js.map → grid-3x3-SjX0a5JH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-BUK9Wcoz.js → hard-drive-ByAmnoEg.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-BUK9Wcoz.js.map → hard-drive-ByAmnoEg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-dddMDYK7.js → hash-DbLc3VOZ.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-dddMDYK7.js.map → hash-DbLc3VOZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-BdDj8MtC.js → history-Botz5Z5d.js} +2 -2
- package/ccw/frontend/dist/assets/{history-BdDj8MtC.js.map → history-Botz5Z5d.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CcxBnbbQ.js → index-BGvyf4-9.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CcxBnbbQ.js.map → index-BGvyf4-9.js.map} +1 -1
- package/ccw/frontend/dist/assets/index-BoqylFO4.css +39 -0
- package/ccw/frontend/dist/assets/{index-DZGHdspr.js → index-DP_mTJI8.js} +3 -3
- package/ccw/frontend/dist/assets/{index-DZGHdspr.js.map → index-DP_mTJI8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B6UfIzhR.js → index-MkgdhX7a.js} +2 -2
- package/ccw/frontend/dist/assets/{index-B6UfIzhR.js.map → index-MkgdhX7a.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-EFcT7h67.js → index-ni-tG9rm.js} +2 -2
- package/ccw/frontend/dist/assets/{index-EFcT7h67.js.map → index-ni-tG9rm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-BVlT1oI7.js → layout-grid-11E4bGJz.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-BVlT1oI7.js.map → layout-grid-11E4bGJz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-Mt3Tlwh4.js → lightbulb-8KrKY82b.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-Mt3Tlwh4.js.map → lightbulb-8KrKY82b.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-DXqT64qo.js → link-2-BUn6RILb.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-DXqT64qo.js.map → link-2-BUn6RILb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-CBMtrpcI.js → link-CmP254Ai.js} +2 -2
- package/ccw/frontend/dist/assets/{link-CBMtrpcI.js.map → link-CmP254Ai.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-DDyEM4AO.js → list-BAwzl4a2.js} +2 -2
- package/ccw/frontend/dist/assets/{list-DDyEM4AO.js.map → list-BAwzl4a2.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-B2FxBKfk.js → map-pin-gi342rqk.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-B2FxBKfk.js.map → map-pin-gi342rqk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-zJfTY9pq.js → messages-square-C1Lh8q8b.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-zJfTY9pq.js.map → messages-square-C1Lh8q8b.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-DnhGZj79.js → minimize-2-OgWNLKdq.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-DnhGZj79.js.map → minimize-2-OgWNLKdq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-DYzAybhU.js → package-Djsvs5qp.js} +2 -2
- package/ccw/frontend/dist/assets/{package-DYzAybhU.js.map → package-Djsvs5qp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-B3kKHsu1.js → plug-DvSZP2cp.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-B3kKHsu1.js.map → plug-DvSZP2cp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-BPNNZgLy.js → power-BY7vTLmU.js} +2 -2
- package/ccw/frontend/dist/assets/{power-BPNNZgLy.js.map → power-BY7vTLmU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-Cwry93p-.js → save-DXfqv84T.js} +2 -2
- package/ccw/frontend/dist/assets/{save-Cwry93p-.js.map → save-DXfqv84T.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-DuWWy2J8.js → send-E2o2LZSX.js} +2 -2
- package/ccw/frontend/dist/assets/{send-DuWWy2J8.js.map → send-E2o2LZSX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{settings-2-C3U1eSK6.js → settings-2-ChD1LFHH.js} +2 -2
- package/ccw/frontend/dist/assets/{settings-2-C3U1eSK6.js.map → settings-2-ChD1LFHH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-CrG1ejFB.js → square-check-big-CBymuqmD.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-CrG1ejFB.js.map → square-check-big-CBymuqmD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-eLWlCgZ5.js → square-pen-BfaiJgOX.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-eLWlCgZ5.js.map → square-pen-BfaiJgOX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-sveo4KRn.js → star-DHMWqZ09.js} +2 -2
- package/ccw/frontend/dist/assets/{star-sveo4KRn.js.map → star-DHMWqZ09.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-CRdAX7Cu.js → style-wvcOEAiM.js} +2 -2
- package/ccw/frontend/dist/assets/{style-CRdAX7Cu.js.map → style-wvcOEAiM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-Oz1-z8Zu.js → target-B8AMmf_N.js} +2 -2
- package/ccw/frontend/dist/assets/{target-Oz1-z8Zu.js.map → target-B8AMmf_N.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-BozkZKD6.js → test-tube-BpDeTJi1.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-BozkZKD6.js.map → test-tube-BpDeTJi1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-CTlUsxyh.js → upload-pflkdIDG.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-CTlUsxyh.js.map → upload-pflkdIDG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-D6WfgFYj.js → useApiSettings-BPx4DyKT.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-D6WfgFYj.js.map → useApiSettings-BPx4DyKT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-CgGVNN5I.js → useCli-D1jfH3XA.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-CgGVNN5I.js.map → useCli-D1jfH3XA.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-o5CKv-10.js → useCommands-DhR71vpa.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-o5CKv-10.js.map → useCommands-DhR71vpa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-rKo_bCBK.js → useDebounce-a6Yyer3m.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-rKo_bCBK.js.map → useDebounce-a6Yyer3m.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-WeE4t9Hg.js → useFileExplorer-B8W2JTj2.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-WeE4t9Hg.js.map → useFileExplorer-B8W2JTj2.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-BS0tTC-_.js → useLocale-aMHdQIL_.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-BS0tTC-_.js.map → useLocale-aMHdQIL_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-BUgAhw6r.js → useSkills-BHpc2LtN.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-BUgAhw6r.js.map → useSkills-BHpc2LtN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-CLhmINg1.js → useSystemSettings-BFD0SvEF.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-CLhmINg1.js.map → useSystemSettings-BFD0SvEF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-BUHKJH1X.js → wand-sparkles-dYtI2IKM.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-BUHKJH1X.js.map → wand-sparkles-dYtI2IKM.js.map} +1 -1
- package/ccw/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/ccw/frontend/dist/assets/SettingsPage-Qj0fFDjX.js +0 -150
- package/ccw/frontend/dist/assets/SettingsPage-Qj0fFDjX.js.map +0 -1
- package/ccw/frontend/dist/assets/index-nU0QYi1y.css +0 -39
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
技术债务治理团队协调者。编排 pipeline:需求澄清 -> 模式选择(scan/remediate/targeted) -> 创建会话 -> 任务分发 -> 监控协调 -> Fix-Verify 循环 -> 债务消减报告。
|
|
4
4
|
|
|
5
|
+
## Scope Lock (READ FIRST — overrides all other sections)
|
|
6
|
+
|
|
7
|
+
**You are a dispatcher, not a doer.** Your ONLY outputs are:
|
|
8
|
+
- Session state files (`.workflow/.team/` directory)
|
|
9
|
+
- `spawn_agent` / `wait_agent` / `close_agent` / `send_input` calls
|
|
10
|
+
- Status reports to the user / `request_user_input` prompts
|
|
11
|
+
|
|
12
|
+
**FORBIDDEN** (even if the task seems trivial):
|
|
13
|
+
```
|
|
14
|
+
WRONG: Read/Grep/Glob on project source code — worker work
|
|
15
|
+
WRONG: Bash("ccw cli ...") — worker work
|
|
16
|
+
WRONG: Edit/Write on project source files — worker work
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work → STOP → spawn worker."
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
5
23
|
## Identity
|
|
6
24
|
- **Name**: coordinator | **Tag**: [coordinator]
|
|
7
25
|
- **Responsibility**: Parse requirements -> Create session -> Dispatch tasks -> Monitor progress -> Report results
|
|
@@ -14,6 +32,7 @@
|
|
|
14
32
|
- Create tasks in tasks.json and assign to worker roles
|
|
15
33
|
- Monitor worker progress via spawn_agent/wait_agent and route messages
|
|
16
34
|
- Maintain session state persistence (tasks.json)
|
|
35
|
+
- **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
|
|
17
36
|
|
|
18
37
|
### MUST NOT
|
|
19
38
|
- Execute tech debt work directly (delegate to workers)
|
|
@@ -46,6 +46,30 @@ Parse `$ARGUMENTS`:
|
|
|
46
46
|
- Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
|
|
47
47
|
- No `--role` -> `roles/coordinator/role.md`, execute entry router
|
|
48
48
|
|
|
49
|
+
## Delegation Lock
|
|
50
|
+
|
|
51
|
+
**Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
|
|
52
|
+
|
|
53
|
+
Before calling ANY tool, apply this check:
|
|
54
|
+
|
|
55
|
+
| Tool Call | Verdict | Reason |
|
|
56
|
+
|-----------|---------|--------|
|
|
57
|
+
| `spawn_agent`, `wait_agent`, `close_agent`, `send_input` | ALLOWED | Orchestration |
|
|
58
|
+
| `request_user_input` | ALLOWED | User interaction |
|
|
59
|
+
| `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
|
|
60
|
+
| `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
|
|
61
|
+
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
62
|
+
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
63
|
+
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
64
|
+
| `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
|
|
65
|
+
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
66
|
+
|
|
67
|
+
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
68
|
+
|
|
69
|
+
**No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
49
73
|
## Shared Constants
|
|
50
74
|
|
|
51
75
|
- **Session prefix**: `TST`
|
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Orchestrate team-testing: analyze -> dispatch -> spawn -> monitor -> report.
|
|
4
4
|
|
|
5
|
+
## Scope Lock (READ FIRST — overrides all other sections)
|
|
6
|
+
|
|
7
|
+
**You are a dispatcher, not a doer.** Your ONLY outputs are:
|
|
8
|
+
- Session state files (`.workflow/.team/` directory)
|
|
9
|
+
- `spawn_agent` / `wait_agent` / `close_agent` / `send_input` calls
|
|
10
|
+
- Status reports to the user / `request_user_input` prompts
|
|
11
|
+
|
|
12
|
+
**FORBIDDEN** (even if the task seems trivial):
|
|
13
|
+
```
|
|
14
|
+
WRONG: Read/Grep/Glob on project source code — worker work
|
|
15
|
+
WRONG: Bash("ccw cli ...") — worker work
|
|
16
|
+
WRONG: Bash("npm test"), Bash("jest"), etc. — worker work
|
|
17
|
+
WRONG: Edit/Write on test or source files — worker work
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work → STOP → spawn worker."
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
5
24
|
## Identity
|
|
6
25
|
- Name: coordinator | Tag: [coordinator]
|
|
7
26
|
- Responsibility: Change scope analysis -> Create session -> Dispatch tasks -> Monitor progress -> Report results
|
|
@@ -14,6 +33,7 @@ Orchestrate team-testing: analyze -> dispatch -> spawn -> monitor -> report.
|
|
|
14
33
|
- Respect pipeline stage dependencies (deps)
|
|
15
34
|
- Handle Generator-Critic cycles with max 3 iterations per layer
|
|
16
35
|
- Execute completion action in Phase 5
|
|
36
|
+
- **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
|
|
17
37
|
|
|
18
38
|
### MUST NOT
|
|
19
39
|
- Implement domain logic (test generation, execution, analysis) -- workers handle this
|
|
@@ -21,6 +41,7 @@ Orchestrate team-testing: analyze -> dispatch -> spawn -> monitor -> report.
|
|
|
21
41
|
- Skip quality gates when coverage is below target
|
|
22
42
|
- Modify test files or source code directly -- delegate to workers
|
|
23
43
|
- Force-advance pipeline past failed GC loops
|
|
44
|
+
- Call CLI tools (ccw cli) — only workers use CLI
|
|
24
45
|
|
|
25
46
|
## Command Execution Protocol
|
|
26
47
|
When coordinator needs to execute a specific phase:
|
|
@@ -46,6 +46,30 @@ Parse `$ARGUMENTS`:
|
|
|
46
46
|
- Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
|
|
47
47
|
- No `--role` → `roles/coordinator/role.md`, execute entry router
|
|
48
48
|
|
|
49
|
+
## Delegation Lock
|
|
50
|
+
|
|
51
|
+
**Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
|
|
52
|
+
|
|
53
|
+
Before calling ANY tool, apply this check:
|
|
54
|
+
|
|
55
|
+
| Tool Call | Verdict | Reason |
|
|
56
|
+
|-----------|---------|--------|
|
|
57
|
+
| `spawn_agent`, `wait_agent`, `close_agent`, `send_input` | ALLOWED | Orchestration |
|
|
58
|
+
| `request_user_input` | ALLOWED | User interaction |
|
|
59
|
+
| `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
|
|
60
|
+
| `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
|
|
61
|
+
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
62
|
+
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
63
|
+
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
64
|
+
| `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
|
|
65
|
+
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
66
|
+
|
|
67
|
+
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
68
|
+
|
|
69
|
+
**No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
49
73
|
## Shared Constants
|
|
50
74
|
|
|
51
75
|
- **Session prefix**: `UDS`
|
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
UI Design Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -> monitor -> report. Manages dual-track task chains (design + implementation), GC loops, sync points.
|
|
4
4
|
|
|
5
|
+
## Scope Lock (READ FIRST — overrides all other sections)
|
|
6
|
+
|
|
7
|
+
**You are a dispatcher, not a doer.** Your ONLY outputs are:
|
|
8
|
+
- Session state files (`.workflow/.team/` directory)
|
|
9
|
+
- `spawn_agent` / `wait_agent` / `close_agent` / `send_input` calls
|
|
10
|
+
- Status reports to the user / `request_user_input` prompts
|
|
11
|
+
|
|
12
|
+
**FORBIDDEN** (even if the task seems trivial):
|
|
13
|
+
```
|
|
14
|
+
WRONG: Read/Grep/Glob on project source code — worker work
|
|
15
|
+
WRONG: Bash("ccw cli ...") — worker work
|
|
16
|
+
WRONG: Edit/Write on project source files — worker work
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work → STOP → spawn worker."
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
5
23
|
## Identity
|
|
6
24
|
- **Name**: coordinator | **Tag**: [coordinator]
|
|
7
25
|
- **Responsibility**: Analyze task -> Create session -> Dispatch tasks -> Monitor progress -> Report results
|
|
@@ -15,6 +33,7 @@ UI Design Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -
|
|
|
15
33
|
- Monitor worker progress via wait_agent and process results
|
|
16
34
|
- Handle Generator-Critic loops with max 2 iterations
|
|
17
35
|
- Maintain session state persistence (tasks.json)
|
|
36
|
+
- **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
|
|
18
37
|
|
|
19
38
|
### MUST NOT
|
|
20
39
|
- Implement domain logic (researching, designing, auditing, building) -- workers handle this
|
|
@@ -23,6 +42,7 @@ UI Design Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -
|
|
|
23
42
|
- Force-advance pipeline past failed audit
|
|
24
43
|
- Modify source code or design artifacts directly -- delegate to workers
|
|
25
44
|
- Omit `[coordinator]` identifier in any output
|
|
45
|
+
- Call CLI tools (ccw cli) — only workers use CLI
|
|
26
46
|
|
|
27
47
|
## Command Execution Protocol
|
|
28
48
|
|
|
@@ -54,6 +54,30 @@ Parse `$ARGUMENTS`:
|
|
|
54
54
|
- Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
|
|
55
55
|
- No `--role` → `roles/coordinator/role.md`, execute entry router
|
|
56
56
|
|
|
57
|
+
## Delegation Lock
|
|
58
|
+
|
|
59
|
+
**Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
|
|
60
|
+
|
|
61
|
+
Before calling ANY tool, apply this check:
|
|
62
|
+
|
|
63
|
+
| Tool Call | Verdict | Reason |
|
|
64
|
+
|-----------|---------|--------|
|
|
65
|
+
| `spawn_agent`, `wait_agent`, `close_agent`, `send_input` | ALLOWED | Orchestration |
|
|
66
|
+
| `request_user_input` | ALLOWED | User interaction |
|
|
67
|
+
| `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
|
|
68
|
+
| `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
|
|
69
|
+
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
70
|
+
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
71
|
+
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
72
|
+
| `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
|
|
73
|
+
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
74
|
+
|
|
75
|
+
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
76
|
+
|
|
77
|
+
**No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
57
81
|
## Shared Constants
|
|
58
82
|
|
|
59
83
|
- **Session prefix**: `UAN`
|
|
@@ -6,6 +6,24 @@
|
|
|
6
6
|
|
|
7
7
|
Orchestrates the analysis pipeline: topic clarification, pipeline mode selection, task dispatch, discussion loop management, and final synthesis. Spawns team_worker agents for all worker roles.
|
|
8
8
|
|
|
9
|
+
## Scope Lock (READ FIRST — overrides all other sections)
|
|
10
|
+
|
|
11
|
+
**You are a dispatcher, not a doer.** Your ONLY outputs are:
|
|
12
|
+
- Session state files (`.workflow/.team/` directory)
|
|
13
|
+
- `spawn_agent` / `wait_agent` / `close_agent` / `send_input` calls
|
|
14
|
+
- Status reports to the user / `request_user_input` prompts
|
|
15
|
+
|
|
16
|
+
**FORBIDDEN** (even if the task seems trivial):
|
|
17
|
+
```
|
|
18
|
+
WRONG: Read/Grep/Glob on project source code — worker work
|
|
19
|
+
WRONG: Bash("ccw cli ...") — worker work
|
|
20
|
+
WRONG: Edit/Write on project source files — worker work
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work → STOP → spawn worker."
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
9
27
|
## Boundaries
|
|
10
28
|
|
|
11
29
|
### MUST
|
|
@@ -16,6 +34,7 @@ Orchestrates the analysis pipeline: topic clarification, pipeline mode selection
|
|
|
16
34
|
- Stop after spawning workers -- wait for results via wait_agent
|
|
17
35
|
- Handle discussion loop with max 5 rounds (Deep mode)
|
|
18
36
|
- Execute completion action in Phase 5
|
|
37
|
+
- **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
|
|
19
38
|
|
|
20
39
|
### MUST NOT
|
|
21
40
|
|
|
@@ -23,6 +42,7 @@ Orchestrates the analysis pipeline: topic clarification, pipeline mode selection
|
|
|
23
42
|
- Spawn workers without creating tasks first
|
|
24
43
|
- Skip checkpoints when configured
|
|
25
44
|
- Force-advance pipeline past failed stages
|
|
45
|
+
- Call CLI tools (ccw cli) — only workers use CLI
|
|
26
46
|
- Directly call cli-explore-agent, CLI analysis tools, or execute codebase exploration
|
|
27
47
|
|
|
28
48
|
---
|
|
@@ -55,6 +55,30 @@ Parse `$ARGUMENTS`:
|
|
|
55
55
|
- Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
|
|
56
56
|
- No `--role` → `roles/coordinator/role.md`, execute entry router
|
|
57
57
|
|
|
58
|
+
## Delegation Lock
|
|
59
|
+
|
|
60
|
+
**Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
|
|
61
|
+
|
|
62
|
+
Before calling ANY tool, apply this check:
|
|
63
|
+
|
|
64
|
+
| Tool Call | Verdict | Reason |
|
|
65
|
+
|-----------|---------|--------|
|
|
66
|
+
| `spawn_agent`, `wait_agent`, `close_agent`, `send_input` | ALLOWED | Orchestration |
|
|
67
|
+
| `request_user_input` | ALLOWED | User interaction |
|
|
68
|
+
| `mcp__ccw-tools__team_msg` | ALLOWED | Message bus |
|
|
69
|
+
| `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
|
|
70
|
+
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
71
|
+
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
72
|
+
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
73
|
+
| `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
|
|
74
|
+
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
75
|
+
|
|
76
|
+
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
77
|
+
|
|
78
|
+
**No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
58
82
|
## Shared Constants
|
|
59
83
|
|
|
60
84
|
- **Session prefix**: `ux-improve`
|
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
UX Improvement Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -> monitor -> report. Systematically discovers and fixes UI/UX interaction issues.
|
|
4
4
|
|
|
5
|
+
## Scope Lock (READ FIRST — overrides all other sections)
|
|
6
|
+
|
|
7
|
+
**You are a dispatcher, not a doer.** Your ONLY outputs are:
|
|
8
|
+
- Session state files (`.workflow/.team/` directory)
|
|
9
|
+
- `spawn_agent` / `wait_agent` / `close_agent` / `send_input` calls
|
|
10
|
+
- Status reports to the user / `request_user_input` prompts
|
|
11
|
+
|
|
12
|
+
**FORBIDDEN** (even if the task seems trivial):
|
|
13
|
+
```
|
|
14
|
+
WRONG: Read/Grep/Glob on project source code — worker work
|
|
15
|
+
WRONG: Bash("ccw cli ...") — worker work
|
|
16
|
+
WRONG: Edit/Write on project source files — worker work
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Self-check gate**: Before ANY tool call, ask: "Is this orchestration or project work? If project work → STOP → spawn worker."
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
5
23
|
## Identity
|
|
6
24
|
- **Name**: coordinator | **Tag**: [coordinator]
|
|
7
25
|
- **Responsibility**: Analyze task -> Create team -> Dispatch tasks -> Monitor progress -> Report results
|
|
@@ -16,6 +34,7 @@ UX Improvement Team coordinator. Orchestrate pipeline: analyze -> dispatch -> sp
|
|
|
16
34
|
- Monitor worker progress via message bus and route messages
|
|
17
35
|
- Handle wisdom initialization and consolidation
|
|
18
36
|
- Maintain session state persistence
|
|
37
|
+
- **Always proceed through full Phase 1-5 workflow, never skip to direct execution**
|
|
19
38
|
|
|
20
39
|
### MUST NOT
|
|
21
40
|
- Execute worker domain logic directly (scanning, diagnosing, designing, implementing, testing)
|
|
@@ -23,6 +42,7 @@ UX Improvement Team coordinator. Orchestrate pipeline: analyze -> dispatch -> sp
|
|
|
23
42
|
- Skip completion action
|
|
24
43
|
- Modify source code directly -- delegate to implementer
|
|
25
44
|
- Omit `[coordinator]` identifier in any output
|
|
45
|
+
- Call CLI tools (ccw cli) — only workers use CLI
|
|
26
46
|
|
|
27
47
|
## Command Execution Protocol
|
|
28
48
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{j as o,fw as G,fx as m,fy as L,r as s,bw as A,fz as k,fA as B,bB as H,fB as W,fC as Y,fD as v,fE as q,fF as V,fG as J,bG as K,c as n}from"./index-
|
|
1
|
+
import{j as o,fw as G,fx as m,fy as L,r as s,bw as A,fz as k,fA as B,bB as H,fB as W,fC as Y,fD as v,fE as q,fF as V,fG as J,bG as K,c as n}from"./index-DP_mTJI8.js";var D="AlertDialog",[Q]=K(D,[m]),l=m(),x=e=>{const{__scopeAlertDialog:a,...t}=e,r=l(a);return o.jsx(G,{...r,...t,modal:!0})};x.displayName=D;var U="AlertDialogTrigger",y=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,i=l(t);return o.jsx(q,{...i,...r,ref:a})});y.displayName=U;var X="AlertDialogPortal",N=e=>{const{__scopeAlertDialog:a,...t}=e,r=l(a);return o.jsx(L,{...r,...t})};N.displayName=X;var Z="AlertDialogOverlay",b=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,i=l(t);return o.jsx(V,{...i,...r,ref:a})});b.displayName=Z;var c="AlertDialogContent",[ee,ae]=Q(c),te=J("AlertDialogContent"),j=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,children:r,...i}=e,g=l(t),p=s.useRef(null),z=A(a,p),f=s.useRef(null);return o.jsx(k,{contentName:c,titleName:R,docsSlug:"alert-dialog",children:o.jsx(ee,{scope:t,cancelRef:f,children:o.jsxs(B,{role:"alertdialog",...g,...i,ref:z,onOpenAutoFocus:H(i.onOpenAutoFocus,d=>{var u;d.preventDefault(),(u=f.current)==null||u.focus({preventScroll:!0})}),onPointerDownOutside:d=>d.preventDefault(),onInteractOutside:d=>d.preventDefault(),children:[o.jsx(te,{children:r}),o.jsx(re,{contentRef:p})]})})})});j.displayName=c;var R="AlertDialogTitle",h=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,i=l(t);return o.jsx(W,{...i,...r,ref:a})});h.displayName=R;var _="AlertDialogDescription",w=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,i=l(t);return o.jsx(Y,{...i,...r,ref:a})});w.displayName=_;var oe="AlertDialogAction",C=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,i=l(t);return o.jsx(v,{...i,...r,ref:a})});C.displayName=oe;var E="AlertDialogCancel",P=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,{cancelRef:i}=ae(E,t),g=l(t),p=A(a,i);return o.jsx(v,{...g,...r,ref:p})});P.displayName=E;var re=({contentRef:e})=>{const a=`\`${c}\` requires a description for the component to be accessible for screen reader users.
|
|
2
2
|
|
|
3
3
|
You can add a description to the \`${c}\` by passing a \`${_}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
4
4
|
|
|
5
5
|
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${c}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
6
6
|
|
|
7
7
|
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return s.useEffect(()=>{var r;document.getElementById((r=e.current)==null?void 0:r.getAttribute("aria-describedby"))||console.warn(a)},[a,e]),null},se=x,ie=y,le=N,S=b,T=j,O=C,$=P,M=h,I=w;const ve=se,De=ie,ne=le,F=s.forwardRef(({className:e,...a},t)=>o.jsx(S,{className:n("fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a,ref:t}));F.displayName=S.displayName;const ce=s.forwardRef(({className:e,...a},t)=>o.jsxs(ne,{children:[o.jsx(F,{}),o.jsx(T,{ref:t,className:n("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...a})]}));ce.displayName=T.displayName;const de=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col space-y-2 text-center sm:text-left",e),...a});de.displayName="AlertDialogHeader";const pe=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...a});pe.displayName="AlertDialogFooter";const ge=s.forwardRef(({className:e,...a},t)=>o.jsx(M,{ref:t,className:n("text-lg font-semibold text-foreground",e),...a}));ge.displayName=M.displayName;const fe=s.forwardRef(({className:e,...a},t)=>o.jsx(I,{ref:t,className:n("text-sm text-muted-foreground",e),...a}));fe.displayName=I.displayName;const ue=s.forwardRef(({className:e,...a},t)=>o.jsx(O,{ref:t,className:n("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",e),...a}));ue.displayName=O.displayName;const me=s.forwardRef(({className:e,...a},t)=>o.jsx($,{ref:t,className:n("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-secondary text-secondary-foreground hover:bg-secondary/80 h-10 px-4 py-2 mt-2 sm:mt-0",e),...a}));me.displayName=$.displayName;export{ve as A,ce as a,de as b,ge as c,fe as d,pe as e,me as f,ue as g,De as h};
|
|
8
|
-
//# sourceMappingURL=AlertDialog-
|
|
8
|
+
//# sourceMappingURL=AlertDialog-Cukb0xv2.js.map
|
package/ccw/frontend/dist/assets/{AlertDialog-zDuLRyN3.js.map → AlertDialog-Cukb0xv2.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog-zDuLRyN3.js","sources":["../../../../node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../src/components/ui/AlertDialog.tsx"],"sourcesContent":["\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","// ========================================\r\n// AlertDialog Component\r\n// ========================================\r\n// Dialog component for confirmations and critical actions\r\n\r\nimport * as React from \"react\";\r\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst AlertDialog = AlertDialogPrimitive.Root;\r\n\r\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\r\n\r\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\r\n\r\nconst AlertDialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Overlay\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n));\r\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\r\n\r\nconst AlertDialogContent = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPortal>\r\n <AlertDialogOverlay />\r\n <AlertDialogPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </AlertDialogPortal>\r\n));\r\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\r\n\r\nconst AlertDialogHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col space-y-2 text-center sm:text-left\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n);\r\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\r\n\r\nconst AlertDialogFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n);\r\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\r\n\r\nconst AlertDialogTitle = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Title\r\n ref={ref}\r\n className={cn(\"text-lg font-semibold text-foreground\", className)}\r\n {...props}\r\n />\r\n));\r\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\r\n\r\nconst AlertDialogDescription = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n));\r\nAlertDialogDescription.displayName =\r\n AlertDialogPrimitive.Description.displayName;\r\n\r\nconst AlertDialogAction = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Action\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\r\n\r\nconst AlertDialogCancel = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Cancel\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-secondary text-secondary-foreground hover:bg-secondary/80 h-10 px-4 py-2 mt-2 sm:mt-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\r\n\r\nexport {\r\n AlertDialog,\r\n AlertDialogPortal,\r\n AlertDialogOverlay,\r\n AlertDialogTrigger,\r\n AlertDialogContent,\r\n AlertDialogHeader,\r\n AlertDialogFooter,\r\n AlertDialogTitle,\r\n AlertDialogDescription,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n};\r\n"],"names":["ROOT_NAME","createAlertDialogContext","createContextScope","createDialogScope","useDialogScope","AlertDialog","props","__scopeAlertDialog","alertDialogProps","dialogScope","jsx","DialogPrimitive.Root","TRIGGER_NAME","AlertDialogTrigger","React.forwardRef","forwardedRef","triggerProps","DialogPrimitive.Trigger","PORTAL_NAME","AlertDialogPortal","portalProps","DialogPrimitive.Portal","OVERLAY_NAME","AlertDialogOverlay","overlayProps","DialogPrimitive.Overlay","CONTENT_NAME","AlertDialogContentProvider","useAlertDialogContentContext","Slottable","createSlottable","AlertDialogContent","children","contentProps","contentRef","React.useRef","composedRefs","useComposedRefs","cancelRef","DialogPrimitive.WarningProvider","TITLE_NAME","jsxs","DialogPrimitive.Content","composeEventHandlers","event","_a","DescriptionWarning","AlertDialogTitle","titleProps","DialogPrimitive.Title","DESCRIPTION_NAME","AlertDialogDescription","descriptionProps","DialogPrimitive.Description","ACTION_NAME","AlertDialogAction","actionProps","DialogPrimitive.Close","CANCEL_NAME","AlertDialogCancel","cancelProps","ref","MESSAGE","React.useEffect","Root2","Trigger2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","AlertDialogPrimitive.Root","AlertDialogPrimitive.Trigger","AlertDialogPrimitive.Portal","className","AlertDialogPrimitive.Overlay","cn","AlertDialogPrimitive.Content","AlertDialogHeader","AlertDialogFooter","AlertDialogPrimitive.Title","AlertDialogPrimitive.Description","AlertDialogPrimitive.Action","AlertDialogPrimitive.Cancel"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"AlertDialog-Cukb0xv2.js","sources":["../../../../node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../src/components/ui/AlertDialog.tsx"],"sourcesContent":["\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","// ========================================\r\n// AlertDialog Component\r\n// ========================================\r\n// Dialog component for confirmations and critical actions\r\n\r\nimport * as React from \"react\";\r\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst AlertDialog = AlertDialogPrimitive.Root;\r\n\r\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\r\n\r\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\r\n\r\nconst AlertDialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Overlay\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n));\r\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\r\n\r\nconst AlertDialogContent = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPortal>\r\n <AlertDialogOverlay />\r\n <AlertDialogPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </AlertDialogPortal>\r\n));\r\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\r\n\r\nconst AlertDialogHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col space-y-2 text-center sm:text-left\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n);\r\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\r\n\r\nconst AlertDialogFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n);\r\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\r\n\r\nconst AlertDialogTitle = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Title\r\n ref={ref}\r\n className={cn(\"text-lg font-semibold text-foreground\", className)}\r\n {...props}\r\n />\r\n));\r\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\r\n\r\nconst AlertDialogDescription = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n));\r\nAlertDialogDescription.displayName =\r\n AlertDialogPrimitive.Description.displayName;\r\n\r\nconst AlertDialogAction = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Action\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\r\n\r\nconst AlertDialogCancel = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Cancel\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-secondary text-secondary-foreground hover:bg-secondary/80 h-10 px-4 py-2 mt-2 sm:mt-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\r\n\r\nexport {\r\n AlertDialog,\r\n AlertDialogPortal,\r\n AlertDialogOverlay,\r\n AlertDialogTrigger,\r\n AlertDialogContent,\r\n AlertDialogHeader,\r\n AlertDialogFooter,\r\n AlertDialogTitle,\r\n AlertDialogDescription,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n};\r\n"],"names":["ROOT_NAME","createAlertDialogContext","createContextScope","createDialogScope","useDialogScope","AlertDialog","props","__scopeAlertDialog","alertDialogProps","dialogScope","jsx","DialogPrimitive.Root","TRIGGER_NAME","AlertDialogTrigger","React.forwardRef","forwardedRef","triggerProps","DialogPrimitive.Trigger","PORTAL_NAME","AlertDialogPortal","portalProps","DialogPrimitive.Portal","OVERLAY_NAME","AlertDialogOverlay","overlayProps","DialogPrimitive.Overlay","CONTENT_NAME","AlertDialogContentProvider","useAlertDialogContentContext","Slottable","createSlottable","AlertDialogContent","children","contentProps","contentRef","React.useRef","composedRefs","useComposedRefs","cancelRef","DialogPrimitive.WarningProvider","TITLE_NAME","jsxs","DialogPrimitive.Content","composeEventHandlers","event","_a","DescriptionWarning","AlertDialogTitle","titleProps","DialogPrimitive.Title","DESCRIPTION_NAME","AlertDialogDescription","descriptionProps","DialogPrimitive.Description","ACTION_NAME","AlertDialogAction","actionProps","DialogPrimitive.Close","CANCEL_NAME","AlertDialogCancel","cancelProps","ref","MESSAGE","React.useEffect","Root2","Trigger2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","AlertDialogPrimitive.Root","AlertDialogPrimitive.Trigger","AlertDialogPrimitive.Portal","className","AlertDialogPrimitive.Overlay","cn","AlertDialogPrimitive.Content","AlertDialogHeader","AlertDialogFooter","AlertDialogPrimitive.Title","AlertDialogPrimitive.Description","AlertDialogPrimitive.Action","AlertDialogPrimitive.Cancel"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,c as w,r as o,ck as ae,B as b,ap as re,ao as O,C as S,a9 as le,o as E,ab as V,du as L,e as p,b as ne,I as ie,N as q,m as R,dv as ce,fJ as oe,fK as de,fL as me,fM as xe,fN as ue,X as he,l as _,M as I,aV as fe,aR as pe,fO as je,fP as ge}from"./index-DZGHdspr.js";import{T as Ne}from"./TabsNavigation-SGJhC8-P.js";import{M as ve}from"./index-CcxBnbbQ.js";import{M as we,a as be}from"./minimize-2-DnhGZj79.js";import{F as B}from"./file-text-CIWG7Xgj.js";import"./braces-MEPRT2LN.js";import"./index-B6UfIzhR.js";function K(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Q(t){return Array.isArray(t)}function ye(t){return t.replace(/_/g," ").replace(/([A-Z])/g," $1").replace(/^./,a=>a.toUpperCase()).trim()}function W({value:t}){return t==null?e.jsx("span",{className:"text-muted-foreground italic",children:"null"}):typeof t=="boolean"?e.jsx(b,{variant:t?"default":"secondary",children:t?"true":"false"}):typeof t=="number"?e.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-mono",children:t}):typeof t=="string"?t.startsWith("http://")||t.startsWith("https://")?e.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:underline break-all",children:t}):t.length>100?e.jsx("div",{className:"text-sm text-foreground bg-muted/50 p-2 rounded whitespace-pre-wrap break-words",children:t}):e.jsx("span",{className:"text-foreground",children:t}):e.jsx("span",{children:String(t)})}function J({items:t,displayName:a="items"}){const[l,n]=o.useState(!0);return t.length===0?e.jsxs("div",{className:"text-muted-foreground text-sm flex items-center gap-2 p-3 bg-muted/30 rounded-md",children:[e.jsx(ae,{className:"w-4 h-4"}),e.jsxs("span",{children:["No ",a," entries."]})]}):t.every(i=>typeof i!="object"||i===null)?e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.map((i,d)=>e.jsx(b,{variant:"outline",className:"font-normal",children:String(i)},d))}):e.jsxs("div",{className:"space-y-2",children:[e.jsxs("button",{onClick:()=>n(!l),className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground",children:[l?e.jsx(re,{className:"w-4 h-4"}):e.jsx(O,{className:"w-4 h-4"}),t.length," items"]}),l&&e.jsx("div",{className:"space-y-2 pl-4 border-l-2 border-border",children:t.map((i,d)=>e.jsxs(S,{className:"p-3",children:[e.jsxs("div",{className:"text-xs text-muted-foreground mb-2",children:["#",d+1]}),K(i)?e.jsx(z,{data:i}):e.jsx(W,{value:i})]},d))})]})}function z({data:t,depth:a=0}){const l=Object.entries(t);return l.length===0?e.jsx("div",{className:"text-muted-foreground italic text-sm",children:"Empty object"}):e.jsx("div",{className:"space-y-3",children:l.map(([n,r])=>e.jsx(Ce,{label:n,value:r,depth:a},n))})}function Ce({label:t,value:a,depth:l=0}){const n=ye(t);return K(a)?e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"font-medium text-sm text-foreground",children:n}),e.jsx("div",{className:w("pl-3 border-l-2 border-border",l>1&&"ml-2"),children:e.jsx(z,{data:a,depth:l+1})})]}):Q(a)?e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"font-medium text-sm text-foreground",children:n}),e.jsx(J,{items:a,displayName:n.toLowerCase()})]}):e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("div",{className:"font-medium text-sm text-muted-foreground min-w-[120px] shrink-0",children:n}),e.jsx("div",{className:"flex-1 text-sm",children:e.jsx(W,{value:a})})]})}function T({data:t,className:a}){return t?Q(t)?e.jsx("div",{className:w("space-y-3",a),children:e.jsx(J,{items:t})}):e.jsx("div",{className:w("space-y-4",a),children:e.jsx(z,{data:t})}):e.jsx("div",{className:"text-muted-foreground italic text-sm",children:"No data available"})}const M=16;function Se({session:t,onClick:a,onStatusClick:l,isStatusFiltered:n}){const r=i=>{i.stopPropagation(),l(t.status)};return e.jsxs(S,{className:"p-3 cursor-pointer transition-all hover:shadow-md hover:border-primary/50 h-full flex flex-col",onClick:a,children:[e.jsx("h3",{className:"text-sm font-medium text-foreground line-clamp-2 mb-2 leading-snug",children:t.topic}),e.jsx("p",{className:"text-xs text-muted-foreground truncate mb-2",children:t.id}),e.jsxs("div",{className:"flex items-center justify-between text-xs mt-auto pt-2 border-t",children:[e.jsx(b,{variant:t.status==="completed"?"success":"warning",className:w("text-[10px] px-1.5 py-0 cursor-pointer transition-all",n&&"ring-2 ring-primary ring-offset-1"),onClick:r,children:t.status==="completed"?e.jsxs(e.Fragment,{children:[e.jsx(I,{className:"w-2.5 h-2.5 mr-0.5"}),"完成"]}):e.jsxs(e.Fragment,{children:[e.jsx(_,{className:"w-2.5 h-2.5 mr-0.5"}),"进行中"]})}),e.jsx("span",{className:"text-muted-foreground",children:t.createdAt})]}),t.hasConclusions&&e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground mt-1",children:[e.jsx(B,{className:"w-2.5 h-2.5"}),e.jsx("span",{children:"有结论"})]})]})}function ke({sessionId:t,projectPath:a}){const[l,n]=o.useState("discussion"),{data:r,isLoading:i,error:d}=V({queryKey:["analysis-detail",t,a],queryFn:()=>je(t,a)});if(i)return e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(q,{className:"w-6 h-6 animate-spin text-muted-foreground"})});if(d)return e.jsx("div",{className:"flex items-center justify-center h-full p-4",children:e.jsxs("div",{className:"flex items-center gap-2 text-destructive",children:[e.jsx(R,{className:"w-5 h-5"}),e.jsxs("span",{children:["加载失败: ",d.message]})]})});if(!r)return null;const c=[{value:"discussion",label:"讨论记录",icon:e.jsx(fe,{className:"w-4 h-4"})},{value:"conclusions",label:"结论",icon:e.jsx(I,{className:"w-4 h-4"})},{value:"explorations",label:"代码探索",icon:e.jsx(pe,{className:"w-4 h-4"})},{value:"perspectives",label:"视角分析",icon:e.jsx(B,{className:"w-4 h-4"})}].filter(m=>{const y=m.value;return r[y]});return!c.find(m=>m.value===l)&&c.length>0&&n(c[0].value),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsx("div",{className:"px-4 pb-3 border-b shrink-0",children:e.jsxs("div",{className:"min-w-0",children:[e.jsx("h2",{className:"font-semibold truncate",children:r.topic}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx(b,{variant:r.status==="completed"?"default":"secondary",className:"text-xs",children:r.status==="completed"?"完成":"进行中"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:r.createdAt})]})]})}),c.length>0?e.jsxs(e.Fragment,{children:[e.jsx(Ne,{value:l,onValueChange:n,tabs:c,className:"px-4"}),e.jsxs("div",{className:"flex-1 overflow-auto min-h-0 p-4",children:[l==="discussion"&&r.discussion&&e.jsx(ve,{content:r.discussion,format:"markdown"}),l==="conclusions"&&r.conclusions&&e.jsx(T,{data:r.conclusions}),l==="explorations"&&r.explorations&&e.jsx(T,{data:r.explorations}),l==="perspectives"&&r.perspectives&&e.jsx(T,{data:r.perspectives})]})]}):e.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"暂无分析内容"})]})}const Ae=[{value:"all",label:"全部"},{value:"today",label:"今天"},{value:"week",label:"本周"},{value:"month",label:"本月"}],De=[{value:"all",label:"全部",icon:e.jsx(L,{className:"w-4 h-4"})},{value:"in_progress",label:"进行中",icon:e.jsx(_,{className:"w-4 h-4"})},{value:"completed",label:"已完成",icon:e.jsx(I,{className:"w-4 h-4"})}];function Oe(){const t=le(s=>s.projectPath),a=E(s=>s.isImmersiveMode),l=E(s=>s.toggleImmersiveMode),[n,r]=o.useState(""),[i,d]=o.useState(null),[c,h]=o.useState(1),[m,y]=o.useState("all"),[j,k]=o.useState("all"),[g,A]=o.useState(null),{data:C=[],isLoading:U,error:P}=V({queryKey:["analysis-sessions",t],queryFn:()=>ge(t)}),Z=o.useMemo(()=>{const s=new Map;return C.forEach(x=>{const f=s.get(x.createdAt)||0;s.set(x.createdAt,f+1)}),Array.from(s.entries()).sort((x,f)=>f[0].localeCompare(x[0])).slice(0,10).map(([x,f])=>({date:x,label:x.slice(5),count:f}))},[C]),N=o.useMemo(()=>{const s=new Date,x=s.toISOString().split("T")[0],f=new Date(s.getTime()-10080*60*1e3).toISOString().split("T")[0],se=new Date(s.getTime()-720*60*60*1e3).toISOString().split("T")[0];return C.filter(u=>{const F=u.topic.toLowerCase().includes(n.toLowerCase())||u.id.toLowerCase().includes(n.toLowerCase()),te=j==="all"||u.status===j;let v=!0;return g?v=u.createdAt===g:m==="today"?v=u.createdAt===x:m==="week"?v=u.createdAt>=f:m==="month"&&(v=u.createdAt>=se),F&&te&&v}).sort((u,F)=>F.createdAt.localeCompare(u.createdAt))},[C,n,m,j,g]),G=s=>{g===s?A(null):(A(s),y("all")),h(1)},H=s=>{k(j===s?"all":s),h(1)},D=Math.ceil(N.length/M),X=o.useMemo(()=>{const s=(c-1)*M;return N.slice(s,s+M)},[N,c]),$=s=>{r(s),h(1)},Y=s=>{y(s),h(1)},ee=s=>{k(s),A(null),h(1)};return e.jsxs("div",{className:w("h-full flex overflow-hidden",a&&"fixed inset-0 z-50 bg-background"),children:[e.jsxs("div",{className:"flex-1 flex flex-col p-4 space-y-3 overflow-auto",children:[e.jsxs("div",{className:"flex items-center justify-between shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(L,{className:"w-5 h-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-semibold text-foreground",children:"Analysis Viewer"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"查看 /workflow:analyze-with-file 命令的分析结果"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:["共 ",N.length," 个会话"]}),e.jsx(p,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:l,title:a?"退出全屏":"全屏模式",children:a?e.jsx(we,{className:"w-4 h-4"}):e.jsx(be,{className:"w-4 h-4"})})]})]}),e.jsxs("div",{className:"flex items-center gap-4 shrink-0",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[e.jsx(ne,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(ie,{placeholder:"搜索分析会话...",value:n,onChange:s=>$(s.target.value),className:"pl-9"})]}),e.jsx("div",{className:"flex items-center gap-1 bg-muted/50 rounded-lg p-1",children:De.map(s=>e.jsxs(p,{variant:j===s.value?"default":"ghost",size:"sm",className:"h-7 px-3 text-xs gap-1",onClick:()=>ee(s.value),children:[s.icon,s.label]},s.value))}),e.jsx("div",{className:"flex items-center gap-1 bg-muted/50 rounded-lg p-1",children:Ae.map(s=>e.jsx(p,{variant:m===s.value?"default":"ghost",size:"sm",className:"h-7 px-3 text-xs",onClick:()=>Y(s.value),children:s.label},s.value))})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap shrink-0",children:Z.map(s=>e.jsxs(p,{variant:g===s.date?"default":"outline",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:()=>G(s.date),children:[e.jsx("span",{children:s.label}),e.jsx(b,{variant:"secondary",className:"ml-1 px-1.5 py-0 text-[10px]",children:s.count})]},s.date))}),U?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(q,{className:"w-6 h-6 animate-spin text-muted-foreground"})}):P?e.jsx(S,{className:"p-6",children:e.jsxs("div",{className:"flex items-center gap-2 text-destructive",children:[e.jsx(R,{className:"w-5 h-5"}),e.jsxs("span",{children:["加载失败: ",P.message]})]})}):N.length===0?e.jsxs(S,{className:"p-12 text-center",children:[e.jsx(L,{className:"w-12 h-12 mx-auto text-muted-foreground mb-4"}),e.jsx("p",{className:"text-muted-foreground",children:n?"没有匹配的分析会话":"暂无分析会话"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"使用 /workflow:analyze-with-file 命令创建分析"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex-1 grid grid-cols-4 gap-3 content-start",children:X.map(s=>e.jsx(Se,{session:s,onClick:()=>d(s.id),onStatusClick:H,isStatusFiltered:j!=="all"},s.id))}),D>1&&e.jsxs("div",{className:"flex items-center justify-center gap-2 pt-4",children:[e.jsx(p,{variant:"outline",size:"sm",disabled:c===1,onClick:()=>h(s=>s-1),children:e.jsx(ce,{className:"w-4 h-4"})}),e.jsxs("span",{className:"text-sm text-muted-foreground px-3",children:[c," / ",D]}),e.jsx(p,{variant:"outline",size:"sm",disabled:c===D,onClick:()=>h(s=>s+1),children:e.jsx(O,{className:"w-4 h-4"})})]})]})]}),e.jsx(oe,{open:!!i,onOpenChange:s=>!s&&d(null),children:e.jsxs(de,{side:"right",className:"w-1/2 h-full max-w-none",children:[e.jsxs(me,{className:"shrink-0",children:[e.jsx(xe,{children:"分析详情"}),e.jsx(ue,{asChild:!0,children:e.jsx(p,{variant:"ghost",size:"sm",className:"absolute right-4 top-4",children:e.jsx(he,{className:"w-4 h-4"})})})]}),i&&e.jsx(ke,{sessionId:i,projectPath:t})]})})]})}export{Oe as AnalysisPage,Oe as default};
|
|
2
|
-
//# sourceMappingURL=AnalysisPage-
|
|
1
|
+
import{j as e,c as w,r as o,ck as ae,B as b,ap as re,ao as O,C as S,a9 as le,o as E,ab as V,du as L,e as p,b as ne,I as ie,N as q,m as R,dv as ce,fJ as oe,fK as de,fL as me,fM as xe,fN as ue,X as he,l as _,M as I,aV as fe,aR as pe,fO as je,fP as ge}from"./index-DP_mTJI8.js";import{T as Ne}from"./TabsNavigation-Bol1y09b.js";import{M as ve}from"./index-BGvyf4-9.js";import{M as we,a as be}from"./minimize-2-OgWNLKdq.js";import{F as B}from"./file-text-TGs_qCbw.js";import"./braces-DWwkaDS6.js";import"./index-MkgdhX7a.js";function K(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Q(t){return Array.isArray(t)}function ye(t){return t.replace(/_/g," ").replace(/([A-Z])/g," $1").replace(/^./,a=>a.toUpperCase()).trim()}function W({value:t}){return t==null?e.jsx("span",{className:"text-muted-foreground italic",children:"null"}):typeof t=="boolean"?e.jsx(b,{variant:t?"default":"secondary",children:t?"true":"false"}):typeof t=="number"?e.jsx("span",{className:"text-blue-600 dark:text-blue-400 font-mono",children:t}):typeof t=="string"?t.startsWith("http://")||t.startsWith("https://")?e.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:underline break-all",children:t}):t.length>100?e.jsx("div",{className:"text-sm text-foreground bg-muted/50 p-2 rounded whitespace-pre-wrap break-words",children:t}):e.jsx("span",{className:"text-foreground",children:t}):e.jsx("span",{children:String(t)})}function J({items:t,displayName:a="items"}){const[l,n]=o.useState(!0);return t.length===0?e.jsxs("div",{className:"text-muted-foreground text-sm flex items-center gap-2 p-3 bg-muted/30 rounded-md",children:[e.jsx(ae,{className:"w-4 h-4"}),e.jsxs("span",{children:["No ",a," entries."]})]}):t.every(i=>typeof i!="object"||i===null)?e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.map((i,d)=>e.jsx(b,{variant:"outline",className:"font-normal",children:String(i)},d))}):e.jsxs("div",{className:"space-y-2",children:[e.jsxs("button",{onClick:()=>n(!l),className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground",children:[l?e.jsx(re,{className:"w-4 h-4"}):e.jsx(O,{className:"w-4 h-4"}),t.length," items"]}),l&&e.jsx("div",{className:"space-y-2 pl-4 border-l-2 border-border",children:t.map((i,d)=>e.jsxs(S,{className:"p-3",children:[e.jsxs("div",{className:"text-xs text-muted-foreground mb-2",children:["#",d+1]}),K(i)?e.jsx(z,{data:i}):e.jsx(W,{value:i})]},d))})]})}function z({data:t,depth:a=0}){const l=Object.entries(t);return l.length===0?e.jsx("div",{className:"text-muted-foreground italic text-sm",children:"Empty object"}):e.jsx("div",{className:"space-y-3",children:l.map(([n,r])=>e.jsx(Ce,{label:n,value:r,depth:a},n))})}function Ce({label:t,value:a,depth:l=0}){const n=ye(t);return K(a)?e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"font-medium text-sm text-foreground",children:n}),e.jsx("div",{className:w("pl-3 border-l-2 border-border",l>1&&"ml-2"),children:e.jsx(z,{data:a,depth:l+1})})]}):Q(a)?e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"font-medium text-sm text-foreground",children:n}),e.jsx(J,{items:a,displayName:n.toLowerCase()})]}):e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("div",{className:"font-medium text-sm text-muted-foreground min-w-[120px] shrink-0",children:n}),e.jsx("div",{className:"flex-1 text-sm",children:e.jsx(W,{value:a})})]})}function T({data:t,className:a}){return t?Q(t)?e.jsx("div",{className:w("space-y-3",a),children:e.jsx(J,{items:t})}):e.jsx("div",{className:w("space-y-4",a),children:e.jsx(z,{data:t})}):e.jsx("div",{className:"text-muted-foreground italic text-sm",children:"No data available"})}const M=16;function Se({session:t,onClick:a,onStatusClick:l,isStatusFiltered:n}){const r=i=>{i.stopPropagation(),l(t.status)};return e.jsxs(S,{className:"p-3 cursor-pointer transition-all hover:shadow-md hover:border-primary/50 h-full flex flex-col",onClick:a,children:[e.jsx("h3",{className:"text-sm font-medium text-foreground line-clamp-2 mb-2 leading-snug",children:t.topic}),e.jsx("p",{className:"text-xs text-muted-foreground truncate mb-2",children:t.id}),e.jsxs("div",{className:"flex items-center justify-between text-xs mt-auto pt-2 border-t",children:[e.jsx(b,{variant:t.status==="completed"?"success":"warning",className:w("text-[10px] px-1.5 py-0 cursor-pointer transition-all",n&&"ring-2 ring-primary ring-offset-1"),onClick:r,children:t.status==="completed"?e.jsxs(e.Fragment,{children:[e.jsx(I,{className:"w-2.5 h-2.5 mr-0.5"}),"完成"]}):e.jsxs(e.Fragment,{children:[e.jsx(_,{className:"w-2.5 h-2.5 mr-0.5"}),"进行中"]})}),e.jsx("span",{className:"text-muted-foreground",children:t.createdAt})]}),t.hasConclusions&&e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground mt-1",children:[e.jsx(B,{className:"w-2.5 h-2.5"}),e.jsx("span",{children:"有结论"})]})]})}function ke({sessionId:t,projectPath:a}){const[l,n]=o.useState("discussion"),{data:r,isLoading:i,error:d}=V({queryKey:["analysis-detail",t,a],queryFn:()=>je(t,a)});if(i)return e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(q,{className:"w-6 h-6 animate-spin text-muted-foreground"})});if(d)return e.jsx("div",{className:"flex items-center justify-center h-full p-4",children:e.jsxs("div",{className:"flex items-center gap-2 text-destructive",children:[e.jsx(R,{className:"w-5 h-5"}),e.jsxs("span",{children:["加载失败: ",d.message]})]})});if(!r)return null;const c=[{value:"discussion",label:"讨论记录",icon:e.jsx(fe,{className:"w-4 h-4"})},{value:"conclusions",label:"结论",icon:e.jsx(I,{className:"w-4 h-4"})},{value:"explorations",label:"代码探索",icon:e.jsx(pe,{className:"w-4 h-4"})},{value:"perspectives",label:"视角分析",icon:e.jsx(B,{className:"w-4 h-4"})}].filter(m=>{const y=m.value;return r[y]});return!c.find(m=>m.value===l)&&c.length>0&&n(c[0].value),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsx("div",{className:"px-4 pb-3 border-b shrink-0",children:e.jsxs("div",{className:"min-w-0",children:[e.jsx("h2",{className:"font-semibold truncate",children:r.topic}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx(b,{variant:r.status==="completed"?"default":"secondary",className:"text-xs",children:r.status==="completed"?"完成":"进行中"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:r.createdAt})]})]})}),c.length>0?e.jsxs(e.Fragment,{children:[e.jsx(Ne,{value:l,onValueChange:n,tabs:c,className:"px-4"}),e.jsxs("div",{className:"flex-1 overflow-auto min-h-0 p-4",children:[l==="discussion"&&r.discussion&&e.jsx(ve,{content:r.discussion,format:"markdown"}),l==="conclusions"&&r.conclusions&&e.jsx(T,{data:r.conclusions}),l==="explorations"&&r.explorations&&e.jsx(T,{data:r.explorations}),l==="perspectives"&&r.perspectives&&e.jsx(T,{data:r.perspectives})]})]}):e.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"暂无分析内容"})]})}const Ae=[{value:"all",label:"全部"},{value:"today",label:"今天"},{value:"week",label:"本周"},{value:"month",label:"本月"}],De=[{value:"all",label:"全部",icon:e.jsx(L,{className:"w-4 h-4"})},{value:"in_progress",label:"进行中",icon:e.jsx(_,{className:"w-4 h-4"})},{value:"completed",label:"已完成",icon:e.jsx(I,{className:"w-4 h-4"})}];function Oe(){const t=le(s=>s.projectPath),a=E(s=>s.isImmersiveMode),l=E(s=>s.toggleImmersiveMode),[n,r]=o.useState(""),[i,d]=o.useState(null),[c,h]=o.useState(1),[m,y]=o.useState("all"),[j,k]=o.useState("all"),[g,A]=o.useState(null),{data:C=[],isLoading:U,error:P}=V({queryKey:["analysis-sessions",t],queryFn:()=>ge(t)}),Z=o.useMemo(()=>{const s=new Map;return C.forEach(x=>{const f=s.get(x.createdAt)||0;s.set(x.createdAt,f+1)}),Array.from(s.entries()).sort((x,f)=>f[0].localeCompare(x[0])).slice(0,10).map(([x,f])=>({date:x,label:x.slice(5),count:f}))},[C]),N=o.useMemo(()=>{const s=new Date,x=s.toISOString().split("T")[0],f=new Date(s.getTime()-10080*60*1e3).toISOString().split("T")[0],se=new Date(s.getTime()-720*60*60*1e3).toISOString().split("T")[0];return C.filter(u=>{const F=u.topic.toLowerCase().includes(n.toLowerCase())||u.id.toLowerCase().includes(n.toLowerCase()),te=j==="all"||u.status===j;let v=!0;return g?v=u.createdAt===g:m==="today"?v=u.createdAt===x:m==="week"?v=u.createdAt>=f:m==="month"&&(v=u.createdAt>=se),F&&te&&v}).sort((u,F)=>F.createdAt.localeCompare(u.createdAt))},[C,n,m,j,g]),G=s=>{g===s?A(null):(A(s),y("all")),h(1)},H=s=>{k(j===s?"all":s),h(1)},D=Math.ceil(N.length/M),X=o.useMemo(()=>{const s=(c-1)*M;return N.slice(s,s+M)},[N,c]),$=s=>{r(s),h(1)},Y=s=>{y(s),h(1)},ee=s=>{k(s),A(null),h(1)};return e.jsxs("div",{className:w("h-full flex overflow-hidden",a&&"fixed inset-0 z-50 bg-background"),children:[e.jsxs("div",{className:"flex-1 flex flex-col p-4 space-y-3 overflow-auto",children:[e.jsxs("div",{className:"flex items-center justify-between shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(L,{className:"w-5 h-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-semibold text-foreground",children:"Analysis Viewer"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"查看 /workflow:analyze-with-file 命令的分析结果"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:["共 ",N.length," 个会话"]}),e.jsx(p,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:l,title:a?"退出全屏":"全屏模式",children:a?e.jsx(we,{className:"w-4 h-4"}):e.jsx(be,{className:"w-4 h-4"})})]})]}),e.jsxs("div",{className:"flex items-center gap-4 shrink-0",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[e.jsx(ne,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(ie,{placeholder:"搜索分析会话...",value:n,onChange:s=>$(s.target.value),className:"pl-9"})]}),e.jsx("div",{className:"flex items-center gap-1 bg-muted/50 rounded-lg p-1",children:De.map(s=>e.jsxs(p,{variant:j===s.value?"default":"ghost",size:"sm",className:"h-7 px-3 text-xs gap-1",onClick:()=>ee(s.value),children:[s.icon,s.label]},s.value))}),e.jsx("div",{className:"flex items-center gap-1 bg-muted/50 rounded-lg p-1",children:Ae.map(s=>e.jsx(p,{variant:m===s.value?"default":"ghost",size:"sm",className:"h-7 px-3 text-xs",onClick:()=>Y(s.value),children:s.label},s.value))})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap shrink-0",children:Z.map(s=>e.jsxs(p,{variant:g===s.date?"default":"outline",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:()=>G(s.date),children:[e.jsx("span",{children:s.label}),e.jsx(b,{variant:"secondary",className:"ml-1 px-1.5 py-0 text-[10px]",children:s.count})]},s.date))}),U?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(q,{className:"w-6 h-6 animate-spin text-muted-foreground"})}):P?e.jsx(S,{className:"p-6",children:e.jsxs("div",{className:"flex items-center gap-2 text-destructive",children:[e.jsx(R,{className:"w-5 h-5"}),e.jsxs("span",{children:["加载失败: ",P.message]})]})}):N.length===0?e.jsxs(S,{className:"p-12 text-center",children:[e.jsx(L,{className:"w-12 h-12 mx-auto text-muted-foreground mb-4"}),e.jsx("p",{className:"text-muted-foreground",children:n?"没有匹配的分析会话":"暂无分析会话"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"使用 /workflow:analyze-with-file 命令创建分析"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex-1 grid grid-cols-4 gap-3 content-start",children:X.map(s=>e.jsx(Se,{session:s,onClick:()=>d(s.id),onStatusClick:H,isStatusFiltered:j!=="all"},s.id))}),D>1&&e.jsxs("div",{className:"flex items-center justify-center gap-2 pt-4",children:[e.jsx(p,{variant:"outline",size:"sm",disabled:c===1,onClick:()=>h(s=>s-1),children:e.jsx(ce,{className:"w-4 h-4"})}),e.jsxs("span",{className:"text-sm text-muted-foreground px-3",children:[c," / ",D]}),e.jsx(p,{variant:"outline",size:"sm",disabled:c===D,onClick:()=>h(s=>s+1),children:e.jsx(O,{className:"w-4 h-4"})})]})]})]}),e.jsx(oe,{open:!!i,onOpenChange:s=>!s&&d(null),children:e.jsxs(de,{side:"right",className:"w-1/2 h-full max-w-none",children:[e.jsxs(me,{className:"shrink-0",children:[e.jsx(xe,{children:"分析详情"}),e.jsx(ue,{asChild:!0,children:e.jsx(p,{variant:"ghost",size:"sm",className:"absolute right-4 top-4",children:e.jsx(he,{className:"w-4 h-4"})})})]}),i&&e.jsx(ke,{sessionId:i,projectPath:t})]})})]})}export{Oe as AnalysisPage,Oe as default};
|
|
2
|
+
//# sourceMappingURL=AnalysisPage-Ddmv0J4x.js.map
|