claude-code-workflow 7.2.28 → 7.2.29
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/.codex/skills/brainstorm/SKILL.md +3 -3
- package/.codex/skills/clean/SKILL.md +3 -3
- package/.codex/skills/issue-discover/SKILL.md +13 -13
- package/.codex/skills/issue-discover/phases/02-discover.md +4 -4
- package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +3 -3
- package/.codex/skills/parallel-dev-cycle/SKILL.md +4 -4
- package/.codex/skills/parallel-dev-cycle/phases/02-agent-execution.md +6 -6
- package/.codex/skills/parallel-dev-cycle/phases/03-result-aggregation.md +10 -10
- package/.codex/skills/review-cycle/SKILL.md +10 -10
- package/.codex/skills/review-cycle/phases/02-parallel-review.md +6 -6
- package/.codex/skills/review-cycle/phases/04-iterative-deep-dive.md +4 -4
- package/.codex/skills/review-cycle/phases/07-fix-parallel-planning.md +4 -4
- package/.codex/skills/review-cycle/phases/08-fix-execution.md +2 -2
- package/.codex/skills/roadmap-with-file/SKILL.md +14 -14
- package/.codex/skills/spec-generator/README.md +1 -1
- package/.codex/skills/spec-generator/SKILL.md +184 -88
- package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +4 -7
- package/.codex/skills/spec-generator/phases/01-discovery.md +30 -11
- package/.codex/skills/spec-generator/phases/02-product-brief.md +2 -5
- package/.codex/skills/spec-generator/phases/03-requirements.md +4 -6
- package/.codex/skills/spec-generator/phases/04-architecture.md +4 -6
- package/.codex/skills/spec-generator/phases/05-epics-stories.md +4 -6
- package/.codex/skills/spec-generator/phases/06-5-auto-fix.md +4 -5
- package/.codex/skills/spec-generator/phases/06-readiness-check.md +8 -8
- package/.codex/skills/spec-generator/phases/07-issue-export.md +2 -2
- package/.codex/skills/spec-setup/SKILL.md +4 -4
- package/.codex/skills/workflow-plan/SKILL.md +6 -6
- package/.codex/skills/workflow-tdd-plan/SKILL.md +5 -5
- package/.codex/skills/workflow-test-fix-cycle/SKILL.md +19 -19
- package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +5 -5
- package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +5 -5
- package/ccw/frontend/dist/assets/{AlertDialog-BjP1ydDR.js → AlertDialog-exlTDW81.js} +3 -3
- package/ccw/frontend/dist/assets/{AlertDialog-BjP1ydDR.js.map → AlertDialog-exlTDW81.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-CAX3xqMf.js → AnalysisPage-cgV9LfAI.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-CAX3xqMf.js.map → AnalysisPage-cgV9LfAI.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CtWlmztq.js → ApiSettingsPage-Dk5jJdWt.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CtWlmztq.js.map → ApiSettingsPage-Dk5jJdWt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-hR4a-eLX.js → CliModeToggle-Be9xsPiv.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-hR4a-eLX.js.map → CliModeToggle-Be9xsPiv.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-DzNPkFN9.js → CliSessionSharePage-Bh9jBtPI.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-DzNPkFN9.js.map → CliSessionSharePage-Bh9jBtPI.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-BPEGN4TT.js → CliViewerPage-BrE-oyEq.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-BPEGN4TT.js.map → CliViewerPage-BrE-oyEq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-Cf0r2RHY.js → CodexLensPage-Cd3nrC93.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-Cf0r2RHY.js.map → CodexLensPage-Cd3nrC93.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-DEm1rJ4h.js → Collapsible-DXFl3VKF.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-DEm1rJ4h.js.map → Collapsible-DXFl3VKF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-BpeWw8HO.js → CommandsManagerPage-IV8zpjgX.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-BpeWw8HO.js.map → CommandsManagerPage-IV8zpjgX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-BEsmh2vF.js → DeepWikiPage-CpDxtmRX.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-BEsmh2vF.js.map → DeepWikiPage-CpDxtmRX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-B30SFdtU.js → EndpointsPage-BchjWe7s.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-B30SFdtU.js.map → EndpointsPage-BchjWe7s.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-BVvMpg1O.js → ExplorerPage-CbWvaJ0y.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-BVvMpg1O.js.map → ExplorerPage-CbWvaJ0y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CL73dHbh.js → FixSessionPage-YMjVRiCk.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CL73dHbh.js.map → FixSessionPage-YMjVRiCk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-BL-28lMZ.js → FloatingFileBrowser-JW2ehYY_.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-BL-28lMZ.js.map → FloatingFileBrowser-JW2ehYY_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-BzZDciHZ.js → FloatingPanel-BtqzqDVq.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-BzZDciHZ.js.map → FloatingPanel-BtqzqDVq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-CDp6-d8P.js → GraphExplorerPage-BsJL_W4d.js} +3 -3
- package/ccw/frontend/dist/assets/{GraphExplorerPage-CDp6-d8P.js.map → GraphExplorerPage-BsJL_W4d.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-fZY_7O9n.js → HistoryPage-BuWpQ7k5.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-fZY_7O9n.js.map → HistoryPage-BuWpQ7k5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-4LJeC9bq.js → HookManagerPage-D0BtMIWy.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-4LJeC9bq.js.map → HookManagerPage-D0BtMIWy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage-Bpigrbhw.js → InstallationsPage-C7dwsAKG.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage-Bpigrbhw.js.map → InstallationsPage-C7dwsAKG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-BP0zJc1R.js → IssueHubPage-D0nCNaeB.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-BP0zJc1R.js.map → IssueHubPage-D0nCNaeB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSt2oVKQ.js → LiteTasksPage-B5c2Kb9r.js} +3 -3
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSt2oVKQ.js.map → LiteTasksPage-B5c2Kb9r.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-B-xaMA0w.js → McpManagerPage-C-S5CehM.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-B-xaMA0w.js.map → McpManagerPage-C-S5CehM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-CJqo_7DY.js → MemoryPage-P_B0JVUQ.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-CJqo_7DY.js.map → MemoryPage-P_B0JVUQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-ibZeQA-Y.js → NotFoundPage-S4Jn9LUE.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-ibZeQA-Y.js.map → NotFoundPage-S4Jn9LUE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-DgJ4ctPQ.js → OrchestratorPage-C2Zlr7AC.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-DgJ4ctPQ.js.map → OrchestratorPage-C2Zlr7AC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-Cit0Yq0D.js → ProjectOverviewPage-CMVfz8s5.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-Cit0Yq0D.js.map → ProjectOverviewPage-CMVfz8s5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-Ce1HDIK0.js → PromptHistoryPage-YEMjFARX.js} +3 -3
- package/ccw/frontend/dist/assets/{PromptHistoryPage-Ce1HDIK0.js.map → PromptHistoryPage-YEMjFARX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-J1KikNrk.js → ReviewSessionPage-DnTm55nG.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-J1KikNrk.js.map → ReviewSessionPage-DnTm55nG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-CdBjTmth.js → RulesManagerPage-CUwebtO2.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-CdBjTmth.js.map → RulesManagerPage-CUwebtO2.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-B9ZK7LvX.js → SessionDetailPage-0qyH1Z5P.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-B9ZK7LvX.js.map → SessionDetailPage-0qyH1Z5P.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-CW_nS5UR.js → SessionsPage-BpgP4087.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-CW_nS5UR.js.map → SessionsPage-BpgP4087.js.map} +1 -1
- package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js +150 -0
- package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js.map +1 -0
- package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js +7 -0
- package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js.map +1 -0
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-DJpi9XQL.js → SpecsSettingsPage-DT-yTVkD.js} +4 -4
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-DJpi9XQL.js.map → SpecsSettingsPage-DT-yTVkD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-Ac6Ov7uy.js → Switch-CYSPdqWk.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-Ac6Ov7uy.js.map → Switch-CYSPdqWk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-DZAAspqR.js → TabsNavigation-CPh6Zor1.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-DZAAspqR.js.map → TabsNavigation-CPh6Zor1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-BJkwfhIZ.js → TaskDrawer-Ds-8830B.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-BJkwfhIZ.js.map → TaskDrawer-Ds-8830B.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-BJgjxBgb.js → TeamPage-CJODUxBk.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-BJgjxBgb.js.map → TeamPage-CJODUxBk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-D1WekoOy.js → TerminalDashboardPage-Cn3fGUuO.js} +3 -3
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-D1WekoOy.js.map → TerminalDashboardPage-Cn3fGUuO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-DxemgIhF.js → archive-CjwVpw6k.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-DxemgIhF.js.map → archive-CjwVpw6k.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-CjS83f1V.js → archive-restore-2vZa9Ic3.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-CjS83f1V.js.map → archive-restore-2vZa9Ic3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-B5PUcn8I.js → arrow-right-CUU5XDgT.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-B5PUcn8I.js.map → arrow-right-CUU5XDgT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-DCc9aPbb.js → bookmark-plus-Cc3nKRZ5.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-DCc9aPbb.js.map → bookmark-plus-Cc3nKRZ5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-DOwFtzak.js → bot-BwpSRDUa.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-DOwFtzak.js.map → bot-BwpSRDUa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-96qH3aFh.js → braces-DBzUW1XC.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-96qH3aFh.js.map → braces-DBzUW1XC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-CCxSuil1.js → circle-stop-CGNNsjvE.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-CCxSuil1.js.map → circle-stop-CGNNsjvE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-CZNSJFdq.js → cpu-D27G86Ul.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-CZNSJFdq.js.map → cpu-D27G86Ul.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-h8xtvw2_.js → ellipsis-vertical-C1Ij47Yz.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-h8xtvw2_.js.map → ellipsis-vertical-C1Ij47Yz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-D3NY0bm6.js → eye-C6MOB7Au.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-D3NY0bm6.js.map → eye-C6MOB7Au.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-Cy2vkc8p.js → eye-off-BxfBlZ26.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-Cy2vkc8p.js.map → eye-off-BxfBlZ26.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-Bzq3U1Mx.js → file-json-NI237wA-.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-Bzq3U1Mx.js.map → file-json-NI237wA-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-DwuwPDPi.js → file-text-Byn2_2v6.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-DwuwPDPi.js.map → file-text-Byn2_2v6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-q9g-bknU.js → filter-D-7PhZjx.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-q9g-bknU.js.map → filter-D-7PhZjx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-CL6vb42J.js → folder-BoAsK_FL.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-CL6vb42J.js.map → folder-BoAsK_FL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-BkrcQBly.js → gauge-DCSxJIS4.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-BkrcQBly.js.map → gauge-DCSxJIS4.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-BQbwyNeV.js → globe-CHS3prza.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-BQbwyNeV.js.map → globe-CHS3prza.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-x5_7DrN7.js → grid-3x3-D7K35U7S.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-x5_7DrN7.js.map → grid-3x3-D7K35U7S.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-DTyWXwzf.js → hard-drive-eq9xE07G.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-DTyWXwzf.js.map → hard-drive-eq9xE07G.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-80O0kJO7.js → hash-C1DMpBua.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-80O0kJO7.js.map → hash-C1DMpBua.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-DDlN2Bwa.js → history-Di5SBCY-.js} +2 -2
- package/ccw/frontend/dist/assets/{history-DDlN2Bwa.js.map → history-Di5SBCY-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-mbeo62f8.js → index--_R7COnA.js} +2 -2
- package/ccw/frontend/dist/assets/{index-mbeo62f8.js.map → index--_R7COnA.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-rLgoBCfV.js → index-BUol9HDD.js} +3 -3
- package/ccw/frontend/dist/assets/{index-rLgoBCfV.js.map → index-BUol9HDD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Bs80iCX0.js → index-CT9oykfw.js} +2 -2
- package/ccw/frontend/dist/assets/{index-Bs80iCX0.js.map → index-CT9oykfw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B9A3Hnrk.js → index-Ddwvf87H.js} +2 -2
- package/ccw/frontend/dist/assets/{index-B9A3Hnrk.js.map → index-Ddwvf87H.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-C1niOWJx.js → layout-grid-LiX0qZbN.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-C1niOWJx.js.map → layout-grid-LiX0qZbN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-BTmI7SUg.js → lightbulb-CL3DVEwb.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-BTmI7SUg.js.map → lightbulb-CL3DVEwb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-CB9HKeuZ.js → link-2-CC5cFeq6.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-CB9HKeuZ.js.map → link-2-CC5cFeq6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-koEYiemK.js → link-ngFQ9bs0.js} +2 -2
- package/ccw/frontend/dist/assets/{link-koEYiemK.js.map → link-ngFQ9bs0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-v2_GaLdC.js → list-BEU6I0KK.js} +2 -2
- package/ccw/frontend/dist/assets/{list-v2_GaLdC.js.map → list-BEU6I0KK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-BQNfAqG_.js → map-pin-BWZdLA6y.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-BQNfAqG_.js.map → map-pin-BWZdLA6y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-Dzq5LGg9.js → messages-square-K6_Chm7n.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-Dzq5LGg9.js.map → messages-square-K6_Chm7n.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-CtkoJXcz.js → minimize-2-CWkphauf.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-CtkoJXcz.js.map → minimize-2-CWkphauf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-CH3smL37.js → package-DrNgkamn.js} +2 -2
- package/ccw/frontend/dist/assets/{package-CH3smL37.js.map → package-DrNgkamn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-CZ0aL_yF.js → plug-CMo3sw5_.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-CZ0aL_yF.js.map → plug-CMo3sw5_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-F2A_J4l6.js → power-DppNTW5e.js} +2 -2
- package/ccw/frontend/dist/assets/{power-F2A_J4l6.js.map → power-DppNTW5e.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-Byxot0YU.js → save-CD8aPMbZ.js} +2 -2
- package/ccw/frontend/dist/assets/{save-Byxot0YU.js.map → save-CD8aPMbZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-JjqhUkpw.js → send-B4z90fQD.js} +2 -2
- package/ccw/frontend/dist/assets/{send-JjqhUkpw.js.map → send-B4z90fQD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{settings-2--SuN9rAt.js → settings-2-CAKRU_QC.js} +2 -2
- package/ccw/frontend/dist/assets/{settings-2--SuN9rAt.js.map → settings-2-CAKRU_QC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-BbngGB2h.js → square-check-big-KhI3HrzX.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-BbngGB2h.js.map → square-check-big-KhI3HrzX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-CgrHgZSl.js → square-pen-BtdGIpuq.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-CgrHgZSl.js.map → square-pen-BtdGIpuq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-BU3TQr7Z.js → star-ZoBUkXoD.js} +2 -2
- package/ccw/frontend/dist/assets/{star-BU3TQr7Z.js.map → star-ZoBUkXoD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-CKs7nnn3.js → style-CltxQP-P.js} +2 -2
- package/ccw/frontend/dist/assets/{style-CKs7nnn3.js.map → style-CltxQP-P.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-DW5tsDW6.js → target-C32OUSGf.js} +2 -2
- package/ccw/frontend/dist/assets/{target-DW5tsDW6.js.map → target-C32OUSGf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-BHm7w3ON.js → test-tube-0IxoyAVZ.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-BHm7w3ON.js.map → test-tube-0IxoyAVZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-DYR7PWwt.js → upload-4eKCkyBn.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-DYR7PWwt.js.map → upload-4eKCkyBn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-D0TVgQD_.js → useApiSettings-zLTUWqhi.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-D0TVgQD_.js.map → useApiSettings-zLTUWqhi.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-DfY8mAP8.js → useCli-BtN2vpOX.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-DfY8mAP8.js.map → useCli-BtN2vpOX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-CGusDp0F.js → useCommands-_spj49qL.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-CGusDp0F.js.map → useCommands-_spj49qL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-CIwh0fF1.js → useDebounce-Bm9KFZvd.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-CIwh0fF1.js.map → useDebounce-Bm9KFZvd.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-FMyFv39K.js → useFileExplorer-DOmpm6v9.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-FMyFv39K.js.map → useFileExplorer-DOmpm6v9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-B2qhsoTb.js → useLocale-D2rj4rea.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-B2qhsoTb.js.map → useLocale-D2rj4rea.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-cxKXMBm3.js → useSkills-OskEpomF.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-cxKXMBm3.js.map → useSkills-OskEpomF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-B-xUT_z-.js → useSystemSettings-BjMgsNSF.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-B-xUT_z-.js.map → useSystemSettings-BjMgsNSF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-DZV_3lPr.js → wand-sparkles-CLhyYWa7.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-DZV_3lPr.js.map → wand-sparkles-CLhyYWa7.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js +0 -150
- package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +0 -1
- package/ccw/frontend/dist/assets/SkillsManagerPage-CTnWrrwp.js +0 -7
- package/ccw/frontend/dist/assets/SkillsManagerPage-CTnWrrwp.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Phase 5: Epics & Stories
|
|
2
2
|
|
|
3
|
-
> **Execution Mode: Agent Delegated**
|
|
4
|
-
> This phase is executed by a `doc-generator` agent. The orchestrator (
|
|
3
|
+
> **Execution Mode: Agent Delegated (Codex v4)**
|
|
4
|
+
> This phase is executed by a `doc-generator` agent. The orchestrator spawns the agent via `spawn_agent({ task_name: "doc-gen-p5", fork_context: false })` and retrieves results via `wait_agent`. The agent reads this file as part of its MANDATORY FIRST STEPS, executes all steps, writes output files, and returns a JSON summary.
|
|
5
5
|
|
|
6
6
|
Decompose the specification into executable Epics and Stories with dependency mapping.
|
|
7
7
|
|
|
@@ -83,10 +83,9 @@ CONSTRAINTS:
|
|
|
83
83
|
- Dependencies should be minimized across Epics
|
|
84
84
|
\${glossary ? \`- Maintain terminology consistency with glossary: \${glossary.terms.map(t => t.term).join(', ')}\` : ''}
|
|
85
85
|
" --tool gemini --mode analysis`,
|
|
86
|
-
run_in_background: true
|
|
87
86
|
});
|
|
88
87
|
|
|
89
|
-
//
|
|
88
|
+
// Parse CLI result
|
|
90
89
|
```
|
|
91
90
|
|
|
92
91
|
### Step 2.5: Codex Epics Review
|
|
@@ -117,10 +116,9 @@ MODE: analysis
|
|
|
117
116
|
EXPECTED: Epic review with: coverage gaps, oversized stories, dependency issues, traceability gaps, quality rating
|
|
118
117
|
CONSTRAINTS: Focus on issues that would block execution planning. Be specific about which Story/Epic has problems.
|
|
119
118
|
" --tool codex --mode analysis`,
|
|
120
|
-
run_in_background: true
|
|
121
119
|
});
|
|
122
120
|
|
|
123
|
-
//
|
|
121
|
+
// Parse Codex review result
|
|
124
122
|
// Integrate feedback into epics before writing files:
|
|
125
123
|
// - Add missing Stories for uncovered Must requirements
|
|
126
124
|
// - Split XL stories in MVP epics into smaller units
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Phase 6.5: Auto-Fix
|
|
2
2
|
|
|
3
|
-
> **Execution Mode: Agent Delegated**
|
|
4
|
-
> This phase is executed by a `doc-generator` agent when triggered by the orchestrator after Phase 6 identifies issues. The agent reads this file
|
|
3
|
+
> **Execution Mode: Agent Delegated (Codex v4)**
|
|
4
|
+
> This phase is executed by a `doc-generator` agent when triggered by the orchestrator after Phase 6 identifies issues. The orchestrator spawns via `spawn_agent({ task_name: "doc-gen-fix", fork_context: false })` and retrieves results via `wait_agent`. The agent reads this file as part of its MANDATORY FIRST STEPS, applies fixes to affected documents, and returns a JSON summary.
|
|
5
5
|
|
|
6
6
|
Automatically repair specification issues identified in Phase 6 Readiness Check.
|
|
7
7
|
|
|
@@ -96,11 +96,10 @@ TASK:
|
|
|
96
96
|
MODE: analysis
|
|
97
97
|
EXPECTED: Corrected document content addressing all listed issues
|
|
98
98
|
CONSTRAINTS: Minimal changes - only fix flagged issues, do not restructure unflagged sections
|
|
99
|
-
" --tool gemini --mode analysis
|
|
100
|
-
run_in_background: true
|
|
99
|
+
" --tool gemini --mode analysis`
|
|
101
100
|
});
|
|
102
101
|
|
|
103
|
-
//
|
|
102
|
+
// Parse result, apply fixes to document
|
|
104
103
|
// Update document version in frontmatter
|
|
105
104
|
}
|
|
106
105
|
```
|
|
@@ -102,10 +102,9 @@ MODE: analysis
|
|
|
102
102
|
EXPECTED: JSON-compatible output with: dimension scores, overall score, gate, issues list (severity + description + location), traceability matrix
|
|
103
103
|
CONSTRAINTS: Be thorough but fair. Focus on actionable issues.
|
|
104
104
|
" --tool gemini --mode analysis`,
|
|
105
|
-
run_in_background: true
|
|
106
105
|
});
|
|
107
106
|
|
|
108
|
-
//
|
|
107
|
+
// Parse CLI result
|
|
109
108
|
```
|
|
110
109
|
|
|
111
110
|
### Step 2b: Codex Technical Depth Review
|
|
@@ -139,7 +138,6 @@ MODE: analysis
|
|
|
139
138
|
EXPECTED: Technical depth review with: per-dimension scores (1-5), specific gaps, improvement recommendations, overall technical readiness assessment
|
|
140
139
|
CONSTRAINTS: Focus on gaps that would cause implementation ambiguity. Ignore cosmetic issues.
|
|
141
140
|
" --tool codex --mode analysis`,
|
|
142
|
-
run_in_background: true
|
|
143
141
|
});
|
|
144
142
|
|
|
145
143
|
// Codex result merged with Gemini result in Step 3
|
|
@@ -350,7 +348,9 @@ if (selection === "Execute via lite-plan") {
|
|
|
350
348
|
const epicContent = Read(firstMvpFile);
|
|
351
349
|
const title = extractTitle(epicContent); // First # heading
|
|
352
350
|
const description = extractSection(epicContent, "Description");
|
|
353
|
-
|
|
351
|
+
// Invoke workflow-lite-plan skill with Epic description
|
|
352
|
+
// Codex: use skill invocation mechanism for the target skill
|
|
353
|
+
invoke_skill("workflow-lite-plan", `"${title}: ${description}"`)
|
|
354
354
|
}
|
|
355
355
|
|
|
356
356
|
if (selection === "Full planning" || selection === "Create roadmap") {
|
|
@@ -374,8 +374,8 @@ SCOPE: ${extractScope(specSummary)}
|
|
|
374
374
|
CONTEXT: Generated from spec session ${specConfig.session_id}. Source: ${workDir}/`;
|
|
375
375
|
|
|
376
376
|
// Step C: Create WFS session (provides session directory + .brainstorming/)
|
|
377
|
-
|
|
378
|
-
//
|
|
377
|
+
invoke_skill("workflow:session:start", `--auto "${structuredDesc}"`)
|
|
378
|
+
// -> Produces sessionId (WFS-xxx) and session directory at .workflow/active/{sessionId}/
|
|
379
379
|
|
|
380
380
|
// Step D: Create .brainstorming/ bridge files
|
|
381
381
|
const brainstormDir = `.workflow/active/${sessionId}/.brainstorming`;
|
|
@@ -476,9 +476,9 @@ ${extractSection(epicContent, "Architecture")}
|
|
|
476
476
|
// → context-package.json.brainstorm_artifacts populated
|
|
477
477
|
// → action-planning-agent loads guidance_specification (P1) + feature_index (P2)
|
|
478
478
|
if (selection === "Full planning") {
|
|
479
|
-
|
|
479
|
+
invoke_skill("workflow-plan", `"${structuredDesc}"`)
|
|
480
480
|
} else {
|
|
481
|
-
|
|
481
|
+
invoke_skill("workflow:req-plan-with-file", `"${extractGoal(specSummary)}"`)
|
|
482
482
|
}
|
|
483
483
|
}
|
|
484
484
|
|
|
@@ -281,12 +281,12 @@ const answer = request_user_input({
|
|
|
281
281
|
const selection = answer.answers.next_step.answers[0];
|
|
282
282
|
if (selection === "Execute via team-planex(Recommended)") {
|
|
283
283
|
const issueIds = createdIssues.map(i => i.issue_id).join(',');
|
|
284
|
-
|
|
284
|
+
invoke_skill("team-planex", `--issues ${issueIds}`);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
if (selection === "Wave 1 only") {
|
|
288
288
|
const wave1Ids = createdIssues.filter(i => i.wave === 1).map(i => i.issue_id).join(',');
|
|
289
|
-
|
|
289
|
+
invoke_skill("team-planex", `--issues ${wave1Ids}`);
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
if (selection === "Done") {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: spec-setup
|
|
3
3
|
description: Initialize project-level state and configure specs via interactive questionnaire.
|
|
4
4
|
argument-hint: "[--regenerate] [--skip-specs] [--reset]"
|
|
5
|
-
allowed-tools: spawn_agent,
|
|
5
|
+
allowed-tools: spawn_agent, wait_agent, send_message, assign_task, close_agent, request_user_input, Read, Write, Edit, Bash, Glob, Grep
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Workflow Spec Setup Command
|
|
@@ -184,11 +184,11 @@ Project root: ${projectRoot}
|
|
|
184
184
|
})
|
|
185
185
|
|
|
186
186
|
// Wait for completion
|
|
187
|
-
const result =
|
|
187
|
+
const result = wait_agent({ targets: [exploreAgent], timeout_ms: 600000 })
|
|
188
188
|
|
|
189
189
|
if (result.timed_out) {
|
|
190
|
-
|
|
191
|
-
const retry =
|
|
190
|
+
assign_task({ target: exploreAgent, items: [{ type: "text", text: "Complete analysis now and write project-tech.json." }] })
|
|
191
|
+
const retry = wait_agent({ targets: [exploreAgent], timeout_ms: 300000 })
|
|
192
192
|
if (retry.timed_out) throw new Error('Agent timeout')
|
|
193
193
|
}
|
|
194
194
|
|
|
@@ -6,7 +6,7 @@ description: |
|
|
|
6
6
|
(spawn_agent or N+1 parallel agents) → plan verification → interactive replan.
|
|
7
7
|
Produces IMPL_PLAN.md, task JSONs, TODO_LIST.md.
|
|
8
8
|
argument-hint: "[-y|--yes] [--session ID] \"task description\" | verify [--session ID] | replan [--session ID] [IMPL-N] \"changes\""
|
|
9
|
-
allowed-tools: spawn_agent,
|
|
9
|
+
allowed-tools: spawn_agent, wait_agent, send_message, assign_task, close_agent, request_user_input, Read, Write, Edit, Bash, Glob, Grep
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
## Auto Mode
|
|
@@ -271,7 +271,7 @@ Format: {
|
|
|
271
271
|
`
|
|
272
272
|
})
|
|
273
273
|
|
|
274
|
-
|
|
274
|
+
wait_agent({ targets: [ctxAgent] })
|
|
275
275
|
close_agent({ id: ctxAgent })
|
|
276
276
|
|
|
277
277
|
// Parse outputs
|
|
@@ -403,7 +403,7 @@ ${contextPkg.conflict_risk === 'medium' || contextPkg.conflict_risk === 'high'
|
|
|
403
403
|
`
|
|
404
404
|
})
|
|
405
405
|
|
|
406
|
-
|
|
406
|
+
wait_agent({ targets: [planAgent] })
|
|
407
407
|
close_agent({ id: planAgent })
|
|
408
408
|
}
|
|
409
409
|
```
|
|
@@ -439,7 +439,7 @@ Mark cross-module dependencies as CROSS::${'{module}'}::${'{task}'}
|
|
|
439
439
|
}
|
|
440
440
|
|
|
441
441
|
// Wait for all module planners
|
|
442
|
-
|
|
442
|
+
wait_agent({ targets: moduleAgents.map(a => a.id) })
|
|
443
443
|
moduleAgents.forEach(a => close_agent({ id: a.id }))
|
|
444
444
|
|
|
445
445
|
// +1 Coordinator: integrate all modules
|
|
@@ -460,7 +460,7 @@ Integrate ${uniqueModules.length} module plans into unified IMPL_PLAN.md.
|
|
|
460
460
|
`
|
|
461
461
|
})
|
|
462
462
|
|
|
463
|
-
|
|
463
|
+
wait_agent({ targets: [coordAgent] })
|
|
464
464
|
close_agent({ id: coordAgent })
|
|
465
465
|
}
|
|
466
466
|
```
|
|
@@ -601,7 +601,7 @@ ${replanTaskId ? `**Target Task**: ${sessionFolder}/.task/${replanTaskId}.json`
|
|
|
601
601
|
`
|
|
602
602
|
})
|
|
603
603
|
|
|
604
|
-
|
|
604
|
+
wait_agent({ targets: [replanAgent] })
|
|
605
605
|
close_agent({ id: replanAgent })
|
|
606
606
|
|
|
607
607
|
console.log(` Replan complete. Review: ${sessionFolder}/IMPL_PLAN.md`)
|
|
@@ -7,7 +7,7 @@ description: |
|
|
|
7
7
|
interactive verification. Produces IMPL_PLAN.md with Red-Green-Refactor cycles,
|
|
8
8
|
task JSONs, TODO_LIST.md.
|
|
9
9
|
argument-hint: "[-y|--yes] [--session ID] \"task description\" | verify [--session ID]"
|
|
10
|
-
allowed-tools: spawn_agent,
|
|
10
|
+
allowed-tools: spawn_agent, wait_agent, send_message, assign_task, close_agent, request_user_input, Read, Write, Edit, Bash, Glob, Grep
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
## Auto Mode
|
|
@@ -298,7 +298,7 @@ Format: {
|
|
|
298
298
|
`
|
|
299
299
|
})
|
|
300
300
|
|
|
301
|
-
|
|
301
|
+
wait_agent({ targets: [ctxAgent] })
|
|
302
302
|
close_agent({ id: ctxAgent })
|
|
303
303
|
|
|
304
304
|
// Parse outputs
|
|
@@ -367,7 +367,7 @@ Format: {
|
|
|
367
367
|
`
|
|
368
368
|
})
|
|
369
369
|
|
|
370
|
-
|
|
370
|
+
wait_agent({ targets: [testAgent] })
|
|
371
371
|
close_agent({ id: testAgent })
|
|
372
372
|
|
|
373
373
|
const testContext = JSON.parse(Read(`${sessionFolder}/.process/test-context-package.json`) || '{}')
|
|
@@ -500,7 +500,7 @@ Each task MUST include Red-Green-Refactor cycle:
|
|
|
500
500
|
`
|
|
501
501
|
})
|
|
502
502
|
|
|
503
|
-
|
|
503
|
+
wait_agent({ targets: [planAgent] })
|
|
504
504
|
close_agent({ id: planAgent })
|
|
505
505
|
|
|
506
506
|
console.log(` TDD tasks generated`)
|
|
@@ -690,7 +690,7 @@ BLOCKED: Critical failures, must fix before execution
|
|
|
690
690
|
`
|
|
691
691
|
})
|
|
692
692
|
|
|
693
|
-
|
|
693
|
+
wait_agent({ targets: [verifyAgent] })
|
|
694
694
|
close_agent({ id: verifyAgent })
|
|
695
695
|
|
|
696
696
|
const report = Read(`${sessionFolder}/.process/TDD_COMPLIANCE_REPORT.md`)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflow-test-fix-cycle
|
|
3
3
|
description: "End-to-end test-fix workflow generate test sessions with progressive layers (L0-L3), then execute iterative fix cycles until pass rate >= 95%. Combines test-fix-gen and test-cycle-execute into a unified pipeline. Triggers on \"workflow:test-fix-cycle\"."
|
|
4
|
-
allowed-tools: spawn_agent,
|
|
4
|
+
allowed-tools: spawn_agent, wait_agent, send_message, assign_task, close_agent, request_user_input, Read, Write, Edit, Bash, Glob, Grep
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Workflow Test-Fix Cycle
|
|
@@ -64,7 +64,7 @@ Task Pipeline:
|
|
|
64
64
|
1. **Two-Phase Pipeline**: Generation (Phase 1) creates session + tasks, Execution (Phase 2) runs iterative fix cycles
|
|
65
65
|
2. **Pure Orchestrator**: Dispatch to phase docs, parse outputs, pass context between phases
|
|
66
66
|
3. **Phase 1 Auto-Continue**: Sub-phases within Phase 1 run autonomously
|
|
67
|
-
4. **Subagent Lifecycle**: Explicit lifecycle management with spawn_agent →
|
|
67
|
+
4. **Subagent Lifecycle**: Explicit lifecycle management with spawn_agent → wait_agent → close_agent
|
|
68
68
|
5. **Progressive Test Layers**: L0 (Static) → L1 (Unit) → L2 (Integration) → L3 (E2E)
|
|
69
69
|
6. **AI Code Issue Detection**: Validates against common AI-generated code problems
|
|
70
70
|
7. **Intelligent Strategy Engine**: conservative → aggressive → surgical based on iteration context
|
|
@@ -99,33 +99,33 @@ ${deliverables}
|
|
|
99
99
|
})
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
###
|
|
102
|
+
### wait_agent
|
|
103
103
|
Get results from subagent (only way to retrieve results).
|
|
104
104
|
|
|
105
105
|
```javascript
|
|
106
|
-
const result =
|
|
107
|
-
|
|
106
|
+
const result = wait_agent({
|
|
107
|
+
targets: [agentId],
|
|
108
108
|
timeout_ms: 600000 // 10 minutes
|
|
109
109
|
})
|
|
110
110
|
|
|
111
111
|
if (result.timed_out) {
|
|
112
|
-
// Handle timeout - can
|
|
112
|
+
// Handle timeout - can use assign_task to prompt completion
|
|
113
113
|
}
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
###
|
|
117
|
-
|
|
116
|
+
### assign_task
|
|
117
|
+
Assign new work to active subagent (for clarification or follow-up).
|
|
118
118
|
|
|
119
119
|
```javascript
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
assign_task({
|
|
121
|
+
target: agentId,
|
|
122
|
+
items: [{ type: "text", text: `
|
|
123
123
|
## CLARIFICATION ANSWERS
|
|
124
124
|
${answers}
|
|
125
125
|
|
|
126
126
|
## NEXT STEP
|
|
127
127
|
Continue with plan generation.
|
|
128
|
-
`
|
|
128
|
+
` }]
|
|
129
129
|
})
|
|
130
130
|
```
|
|
131
131
|
|
|
@@ -225,7 +225,7 @@ Phase 2: Test-Cycle Execution (phases/02-test-cycle-execute.md)
|
|
|
225
225
|
6. **Task Attachment Model**: Sub-tasks ATTACH → execute → COLLAPSE
|
|
226
226
|
7. **MANDATORY CONFIRMATION GATE**: After Phase 1 completes, you MUST stop and present the generated plan to the user. Wait for explicit user approval via request_user_input before starting Phase 2. NEVER auto-proceed from Phase 1 to Phase 2
|
|
227
227
|
8. **Phase 2 Continuous**: Once user approves, Phase 2 runs continuously until pass rate >= 95% or max iterations reached
|
|
228
|
-
9. **Explicit Lifecycle**: Always close_agent after
|
|
228
|
+
9. **Explicit Lifecycle**: Always close_agent after wait_agent completes to free resources
|
|
229
229
|
|
|
230
230
|
## Phase Execution
|
|
231
231
|
|
|
@@ -235,9 +235,9 @@ Phase 2: Test-Cycle Execution (phases/02-test-cycle-execute.md)
|
|
|
235
235
|
|
|
236
236
|
5 sub-phases that create a test session and generate task JSONs:
|
|
237
237
|
1. Create Test Session → `testSessionId`
|
|
238
|
-
2. Gather Test Context (spawn_agent →
|
|
239
|
-
3. Test Generation Analysis (spawn_agent →
|
|
240
|
-
4. Generate Test Tasks (spawn_agent →
|
|
238
|
+
2. Gather Test Context (spawn_agent → wait_agent → close_agent) → `contextPath`
|
|
239
|
+
3. Test Generation Analysis (spawn_agent → wait_agent → close_agent) → `TEST_ANALYSIS_RESULTS.md`
|
|
240
|
+
4. Generate Test Tasks (spawn_agent → wait_agent → close_agent) → `IMPL-001.json`, `IMPL-001.3.json`, `IMPL-001.5.json`, `IMPL-002.json`, `IMPL_PLAN.md`, `TODO_LIST.md`
|
|
241
241
|
5. Phase 1 Summary → **⛔ MANDATORY: Present plan and wait for user confirmation before Phase 2**
|
|
242
242
|
|
|
243
243
|
**Agents Used** (via spawn_agent):
|
|
@@ -343,7 +343,7 @@ Phase 2: Test-Cycle Execution (phases/02-test-cycle-execute.md)
|
|
|
343
343
|
```javascript
|
|
344
344
|
try {
|
|
345
345
|
const agentId = spawn_agent({ message: "..." });
|
|
346
|
-
const result =
|
|
346
|
+
const result = wait_agent({ targets: [agentId], timeout_ms: 600000 });
|
|
347
347
|
// ... process result ...
|
|
348
348
|
close_agent({ id: agentId });
|
|
349
349
|
} catch (error) {
|
|
@@ -358,7 +358,7 @@ try {
|
|
|
358
358
|
- Detect input type (session ID / description / file path / resume)
|
|
359
359
|
- Initialize progress tracking with 2 top-level phases
|
|
360
360
|
- Read `phases/01-test-fix-gen.md` for detailed sub-phase execution
|
|
361
|
-
- Execute 5 sub-phases with spawn_agent →
|
|
361
|
+
- Execute 5 sub-phases with spawn_agent → wait_agent → close_agent lifecycle
|
|
362
362
|
- Verify all Phase 1 outputs (4+ task JSONs, IMPL_PLAN.md, TODO_LIST.md)
|
|
363
363
|
- **Ensure all agents are closed** after each sub-phase completes
|
|
364
364
|
- **⛔ MANDATORY: Present plan summary and request_user_input for confirmation**
|
|
@@ -371,7 +371,7 @@ try {
|
|
|
371
371
|
**Phase 2 (Execution)**:
|
|
372
372
|
- Read `phases/02-test-cycle-execute.md` for detailed execution logic
|
|
373
373
|
- Load session state and task queue
|
|
374
|
-
- Execute iterative test-fix cycles with spawn_agent →
|
|
374
|
+
- Execute iterative test-fix cycles with spawn_agent → wait_agent → close_agent
|
|
375
375
|
- Track iterations in progress tracking
|
|
376
376
|
- Auto-complete session on success (pass rate >= 95%)
|
|
377
377
|
- **Ensure all agents are closed** after each iteration
|
|
@@ -92,7 +92,7 @@ Gather test context for session [testSessionId]
|
|
|
92
92
|
`
|
|
93
93
|
});
|
|
94
94
|
|
|
95
|
-
const contextResult =
|
|
95
|
+
const contextResult = wait_agent({ targets: [contextAgentId], timeout_ms: 600000 });
|
|
96
96
|
close_agent({ id: contextAgentId });
|
|
97
97
|
|
|
98
98
|
// Prompt Mode - gather from codebase via context-search-agent
|
|
@@ -119,7 +119,7 @@ Gather project context for session [testSessionId]: [task_description]
|
|
|
119
119
|
`
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
-
const contextResult =
|
|
122
|
+
const contextResult = wait_agent({ targets: [contextAgentId], timeout_ms: 600000 });
|
|
123
123
|
close_agent({ id: contextAgentId });
|
|
124
124
|
```
|
|
125
125
|
|
|
@@ -203,7 +203,7 @@ ${projectRoot}/.workflow/active/[testSessionId]/.process/TEST_ANALYSIS_RESULTS.m
|
|
|
203
203
|
`
|
|
204
204
|
});
|
|
205
205
|
|
|
206
|
-
const analysisResult =
|
|
206
|
+
const analysisResult = wait_agent({ targets: [analysisAgentId], timeout_ms: 1200000 });
|
|
207
207
|
close_agent({ id: analysisAgentId });
|
|
208
208
|
```
|
|
209
209
|
|
|
@@ -272,7 +272,7 @@ Generate test-specific IMPL_PLAN.md and task JSONs for session [testSessionId]
|
|
|
272
272
|
`
|
|
273
273
|
});
|
|
274
274
|
|
|
275
|
-
const taskGenResult =
|
|
275
|
+
const taskGenResult = wait_agent({ targets: [taskGenAgentId], timeout_ms: 600000 });
|
|
276
276
|
close_agent({ id: taskGenAgentId });
|
|
277
277
|
```
|
|
278
278
|
|
|
@@ -446,7 +446,7 @@ Sub-Phase 1.5: Phase 1 Summary
|
|
|
446
446
|
```javascript
|
|
447
447
|
try {
|
|
448
448
|
const agentId = spawn_agent({ message: "..." });
|
|
449
|
-
const result =
|
|
449
|
+
const result = wait_agent({ targets: [agentId], timeout_ms: 600000 });
|
|
450
450
|
// ... process result ...
|
|
451
451
|
close_agent({ id: agentId });
|
|
452
452
|
} catch (error) {
|
|
@@ -139,8 +139,8 @@ const analysisAgentId = spawn_agent({
|
|
|
139
139
|
});
|
|
140
140
|
|
|
141
141
|
// Wait for analysis completion
|
|
142
|
-
const analysisResult =
|
|
143
|
-
|
|
142
|
+
const analysisResult = wait_agent({
|
|
143
|
+
targets: [analysisAgentId],
|
|
144
144
|
timeout_ms: 2400000 // 40 minutes (CLI analysis timeout)
|
|
145
145
|
});
|
|
146
146
|
|
|
@@ -199,8 +199,8 @@ const fixAgentId = spawn_agent({
|
|
|
199
199
|
});
|
|
200
200
|
|
|
201
201
|
// Wait for execution completion
|
|
202
|
-
const fixResult =
|
|
203
|
-
|
|
202
|
+
const fixResult = wait_agent({
|
|
203
|
+
targets: [fixAgentId],
|
|
204
204
|
timeout_ms: 600000 // 10 minutes
|
|
205
205
|
});
|
|
206
206
|
|
|
@@ -390,7 +390,7 @@ Fallback is triggered when any of these conditions occur:
|
|
|
390
390
|
```javascript
|
|
391
391
|
try {
|
|
392
392
|
const agentId = spawn_agent({ message: "..." });
|
|
393
|
-
const result =
|
|
393
|
+
const result = wait_agent({ ids: [agentId], timeout_ms: 2400000 });
|
|
394
394
|
// ... process result ...
|
|
395
395
|
close_agent({ id: agentId });
|
|
396
396
|
} catch (error) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{j as o,
|
|
1
|
+
import{j as o,fx as H,fy as m,fz as G,r as s,bx as A,fA as L,fB as k,bC as B,fC as W,fD as Y,fE as v,fF as q,fG as V,fH as J,bH as K,c as n}from"./index-BUol9HDD.js";var D="AlertDialog",[Q]=K(D,[m]),l=m(),x=e=>{const{__scopeAlertDialog:a,...t}=e,r=l(a);return o.jsx(H,{...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(G,{...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(L,{contentName:c,titleName:R,docsSlug:"alert-dialog",children:o.jsx(ee,{scope:t,cancelRef:f,children:o.jsxs(k,{role:"alertdialog",...g,...i,ref:z,onOpenAutoFocus:B(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",C=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,i=l(t);return o.jsx(Y,{...i,...r,ref:a})});C.displayName=_;var oe="AlertDialogAction",E=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,i=l(t);return o.jsx(v,{...i,...r,ref:a})});E.displayName=oe;var w="AlertDialogCancel",P=s.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...r}=e,{cancelRef:i}=ae(w,t),g=l(t),p=A(a,i);return o.jsx(v,{...g,...r,ref:p})});P.displayName=w;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
|
-
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=
|
|
8
|
-
//# sourceMappingURL=AlertDialog-
|
|
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=E,$=P,M=h,I=C;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-exlTDW81.js.map
|
package/ccw/frontend/dist/assets/{AlertDialog-BjP1ydDR.js.map → AlertDialog-exlTDW81.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog-BjP1ydDR.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-exlTDW81.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]}
|