claude-code-workflow 7.2.27 → 7.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ccw/specs/architecture-constraints.md +5 -0
- package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
- package/.claude/skills/investigate/SKILL.md +110 -0
- package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
- package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
- package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
- package/.claude/skills/investigate/phases/04-implementation.md +139 -0
- package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
- package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
- package/.claude/skills/investigate/specs/iron-law.md +101 -0
- package/.claude/skills/security-audit/SKILL.md +125 -0
- package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
- package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
- package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
- package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
- package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
- package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
- package/.claude/skills/ship/SKILL.md +105 -0
- package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
- package/.claude/skills/ship/phases/02-code-review.md +137 -0
- package/.claude/skills/ship/phases/03-version-bump.md +171 -0
- package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
- package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
- package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
- package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
- package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
- package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
- package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.claude/skills/team-motion-design/SKILL.md +129 -0
- package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
- package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
- package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
- package/.claude/skills/team-ui-polish/SKILL.md +127 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
- package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
- package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
- package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
- package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.claude/skills/team-uidesign/SKILL.md +6 -1
- package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
- package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
- package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
- package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
- package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
- package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
- package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
- package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
- package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
- package/.claude/skills/team-ux-improve/SKILL.md +3 -0
- package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
- package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
- package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
- package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
- package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
- package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
- package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
- package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
- package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
- package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
- package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
- package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
- package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/.codex/skills/investigate/agents/investigator.md +392 -0
- package/.codex/skills/investigate/orchestrator.md +362 -0
- package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
- package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
- package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
- package/.codex/skills/investigate/phases/04-implementation.md +195 -0
- package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
- package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
- package/.codex/skills/security-audit/orchestrator.md +384 -0
- package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
- package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
- package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
- package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
- package/.codex/skills/ship/agents/ship-operator.md +318 -0
- package/.codex/skills/ship/orchestrator.md +426 -0
- package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
- package/.codex/skills/ship/phases/02-code-review.md +228 -0
- package/.codex/skills/ship/phases/03-version-bump.md +259 -0
- package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
- package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
- package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
- package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
- package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.codex/skills/team-motion-design/SKILL.md +222 -0
- package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
- package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
- package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
- package/.codex/skills/team-ui-polish/SKILL.md +218 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
- package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
- package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
- package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
- package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/README.md +8 -0
- package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
- package/ccw/dist/core/hooks/hook-templates.js +114 -1
- package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +34 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +2 -2
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
- package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
- package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +105 -105
- package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{O as Re,u as V,r as m,j as e,C as z,dt as B,c as k,B as y,e as w,T as Ce,cy as xe,ap as ue,x as He,y as Te,z as ze,A as Ue,I as L,bO as ye,aq as ge,ar as pe,as as he,at as fe,au as W,G as De,Z as ee,cU as te,S as We,W as Ee,ck as Ie,cB as Ae,a1 as Le,du as _e,af as Ke,N as $e,bq as Ge,an as Ve,aF as Qe,a9 as Fe,aa as Me,ab as Ze,U as Oe,aQ as qe,M as X,aw as ke,dv as Je,ao as Ye,a7 as je,dw as Be,bY as Xe,b7 as et,R as tt,b as st}from"./index-
|
|
1
|
+
import{O as Re,u as V,r as m,j as e,C as z,dt as B,c as k,B as y,e as w,T as Ce,cy as xe,ap as ue,x as He,y as Te,z as ze,A as Ue,I as L,bO as ye,aq as ge,ar as pe,as as he,at as fe,au as W,G as De,Z as ee,cU as te,S as We,W as Ee,ck as Ie,cB as Ae,a1 as Le,du as _e,af as Ke,N as $e,bq as Ge,an as Ve,aF as Qe,a9 as Fe,aa as Me,ab as Ze,U as Oe,aQ as qe,M as X,aw as ke,dv as Je,ao as Ye,a7 as je,dw as Be,bY as Xe,b7 as et,R as tt,b as st}from"./index-rLgoBCfV.js";import{A as it,a as ot,b as at,c as rt,d as nt,e as lt,f as ct,g as dt}from"./AlertDialog-BjP1ydDR.js";import{P as mt,a as xt}from"./power-F2A_J4l6.js";import{S as ut}from"./square-pen-CgrHgZSl.js";import{S as gt}from"./send-JjqhUkpw.js";import{i as pt,j as ht,k as ft}from"./useCli-DfY8mAP8.js";import{C as jt}from"./circle-stop-CCxSuil1.js";import{W as ve}from"./wand-sparkles-DZV_3lPr.js";import"./useLocale-B2qhsoTb.js";import"./errorSanitizer-IY9pf5g4.js";/**
|
|
2
2
|
* @license lucide-react v0.460.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/const de=Re("FileChartColumnIncreasing",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M12 18v-4",key:"q1q25u"}],["path",{d:"M16 18v-6",key:"15y0np"}]]);function bt(t){switch(t){case"SessionStart":return"🎬";case"UserPromptSubmit":return"⚡";case"PreToolUse":return"🔧";case"PostToolUse":return"✅";case"Stop":return"🛑";case"Notification":return"🔔";case"SubagentStart":return"🚀";case"SubagentStop":return"🏁";case"PreCompact":return"📦";case"SessionEnd":return"👋";case"PostToolUseFailure":return"❌";case"PermissionRequest":return"🔐";default:return"📌"}}function wt(t){switch(t){case"SessionStart":case"UserPromptSubmit":case"SubagentStart":return"default";case"PreToolUse":case"Stop":case"PreCompact":case"PermissionRequest":return"secondary";case"PostToolUse":case"Notification":case"SubagentStop":case"SessionEnd":case"PostToolUseFailure":return"outline";default:return"outline"}}const Nt={"Session Start Notify":"session-start-notify","Session State Watch":"session-state-watch","Stop Notify":"stop-notify","Auto Format on Write":"auto-format-on-write","Auto Lint on Write":"auto-lint-on-write","Block Sensitive Files":"block-sensitive-files","Git Auto Stage":"git-auto-stage","Post Edit Index":"post-edit-index","Session End Summary":"session-end-summary","Project State Inject":"project-state-inject","Memory V2 Extract":"memory-v2-extract","Memory V2 Auto Consolidate":"memory-v2-auto-consolidate","Memory Sync Dashboard":"memory-sync-dashboard"};function yt(t,s){const j=`cliHooks.templates.templates.${t}.name`;try{const u=s({id:j});if(u&&!u.includes("cliHooks.templates.templates"))return u}catch{}const i=Nt[t];if(i){const u=`cliHooks.templates.templates.${i}.name`;try{const r=s({id:u});if(r&&!r.includes("cliHooks.templates.templates"))return r}catch{}}return t}function kt({hook:t,isExpanded:s,onToggleExpand:j,onToggle:i,onEdit:u,onDelete:r}){const{formatMessage:n}=V(),[v,c]=m.useState(!1),h=yt(t.name,n),C=()=>{i(t.name,!t.enabled)},U=()=>{u(t)},g=()=>{c(!0)},S=()=>{c(!1),r(t.name)},D=()=>{c(!1)};return e.jsxs(e.Fragment,{children:[e.jsxs(z,{className:k("overflow-hidden",!t.enabled&&"opacity-60"),children:[e.jsx("div",{className:"p-4",children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx("div",{className:k("p-2 rounded-lg flex-shrink-0",t.enabled?"bg-primary/10":"bg-muted"),children:e.jsx(B,{className:k("w-4 h-4",t.enabled?"text-primary":"text-muted-foreground")})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:h}),e.jsxs(y,{variant:wt(t.trigger),className:"text-xs flex-shrink-0",children:[e.jsx("span",{className:"mr-1",children:bt(t.trigger)}),n({id:`cliHooks.trigger.${t.trigger}`})]}),e.jsx(y,{variant:t.enabled?"default":"secondary",className:"text-xs flex-shrink-0",children:t.enabled?n({id:"common.status.enabled"}):n({id:"common.status.disabled"})})]}),t.description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 truncate",children:t.description})]})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[e.jsx(w,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:C,title:t.enabled?n({id:"cliHooks.actions.disable"}):n({id:"cliHooks.actions.enable"}),children:t.enabled?e.jsx(mt,{className:"w-4 h-4 text-success"}):e.jsx(xt,{className:"w-4 h-4 text-muted-foreground"})}),e.jsx(w,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:U,title:n({id:"common.actions.edit"}),children:e.jsx(ut,{className:"w-4 h-4"})}),e.jsx(w,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 text-destructive hover:text-destructive hover:bg-destructive/10",onClick:g,title:n({id:"common.actions.delete"}),children:e.jsx(Ce,{className:"w-4 h-4 text-destructive"})}),e.jsx(w,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:j,title:n(s?{id:"cliHooks.actions.collapse"}:{id:"cliHooks.actions.expand"}),children:s?e.jsx(xe,{className:"w-4 h-4"}):e.jsx(ue,{className:"w-4 h-4"})})]})]})}),s&&e.jsxs("div",{className:"border-t border-border bg-muted/30 p-4 space-y-3",children:[t.description&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-muted-foreground",children:n({id:"cliHooks.form.description"})}),e.jsx("p",{className:"text-sm text-foreground mt-1",children:t.description})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-muted-foreground",children:n({id:"cliHooks.form.matcher"})}),e.jsx("p",{className:"text-sm text-foreground mt-1 font-mono bg-muted px-2 py-1 rounded",children:t.matcher||n({id:"cliHooks.allTools"})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-muted-foreground",children:n({id:"cliHooks.form.command"})}),e.jsx("p",{className:"text-sm text-foreground mt-1 font-mono bg-muted px-2 py-1 rounded break-all max-h-32 overflow-y-auto",children:t.command||t.script||"N/A"})]})]})]}),e.jsx(it,{open:v,onOpenChange:c,children:e.jsxs(ot,{children:[e.jsxs(at,{children:[e.jsx(rt,{children:"Delete CLI Hook?"}),e.jsxs(nt,{children:['This action cannot be undone. The hook "',h,'" will be permanently deleted.']})]}),e.jsxs(lt,{children:[e.jsx(ct,{onClick:D,children:"Cancel"}),e.jsx(dt,{onClick:S,children:"Delete"})]})]})})]})}function vt(t){const s={};return t.name.trim()?/^[a-zA-Z0-9_-]+$/.test(t.name)||(s.name="validation.nameInvalid"):s.name="validation.nameRequired",t.trigger||(s.trigger="validation.triggerRequired"),t.command.trim()||(s.command="validation.commandRequired"),s}function St({mode:t,hook:s,open:j,onClose:i,onSave:u}){const{formatMessage:r}=V(),[n,v]=m.useState({name:"",description:"",trigger:"PostToolUse",matcher:"",command:""}),[c,h]=m.useState({}),[C,U]=m.useState(!1);m.useEffect(()=>{j&&(v(t==="edit"&&s?{name:s.name,description:s.description||"",trigger:s.trigger,matcher:s.matcher||"",command:s.command||s.script||""}:{name:"",description:"",trigger:"PostToolUse",matcher:"",command:""}),h({}))},[j,t,s]);const g=(p,N)=>{v(H=>({...H,[p]:N})),c[p]&&h(H=>({...H,[p]:void 0}))},S=async()=>{const p=vt(n);if(Object.keys(p).length>0){h(p);return}U(!0);try{await u(n),i()}catch(N){console.error("Failed to save hook:",N)}finally{U(!1)}},D=[{value:"SessionStart",label:"cliHooks.trigger.SessionStart"},{value:"UserPromptSubmit",label:"cliHooks.trigger.UserPromptSubmit"},{value:"PreToolUse",label:"cliHooks.trigger.PreToolUse"},{value:"PostToolUse",label:"cliHooks.trigger.PostToolUse"},{value:"Stop",label:"cliHooks.trigger.Stop"},{value:"Notification",label:"cliHooks.trigger.Notification"},{value:"SubagentStart",label:"cliHooks.trigger.SubagentStart"},{value:"SubagentStop",label:"cliHooks.trigger.SubagentStop"},{value:"PreCompact",label:"cliHooks.trigger.PreCompact"},{value:"SessionEnd",label:"cliHooks.trigger.SessionEnd"},{value:"PostToolUseFailure",label:"cliHooks.trigger.PostToolUseFailure"},{value:"PermissionRequest",label:"cliHooks.trigger.PermissionRequest"}];return e.jsx(He,{open:j,onOpenChange:i,children:e.jsxs(Te,{className:"sm:max-w-[600px]",children:[e.jsx(ze,{children:e.jsx(Ue,{children:t==="create"?r({id:"cliHooks.dialog.createTitle"}):r({id:"cliHooks.dialog.editTitle"},{hookName:s==null?void 0:s.name})})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"hook-name",className:"text-sm font-medium text-foreground",children:[r({id:"cliHooks.form.name"})," *"]}),e.jsx(L,{id:"hook-name",value:n.name,onChange:p=>g("name",p.target.value),placeholder:r({id:"cliHooks.form.namePlaceholder"}),className:"mt-1",error:!!c.name}),c.name&&e.jsx("p",{className:"text-xs text-destructive mt-1",children:r({id:`cliHooks.${c.name}`})})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"hook-description",className:"text-sm font-medium text-foreground",children:r({id:"cliHooks.form.description"})}),e.jsx(ye,{id:"hook-description",value:n.description,onChange:p=>g("description",p.target.value),placeholder:r({id:"cliHooks.form.descriptionPlaceholder"}),className:"mt-1",rows:2})]}),e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"hook-trigger",className:"text-sm font-medium text-foreground",children:[r({id:"cliHooks.form.trigger"})," *"]}),e.jsxs(ge,{value:n.trigger,onValueChange:p=>g("trigger",p),children:[e.jsx(pe,{className:"mt-1",id:"hook-trigger",children:e.jsx(he,{})}),e.jsx(fe,{children:D.map(p=>e.jsx(W,{value:p.value,children:r({id:p.label})},p.value))})]}),c.trigger&&e.jsx("p",{className:"text-xs text-destructive mt-1",children:r({id:`cliHooks.${c.trigger}`})})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"hook-matcher",className:"text-sm font-medium text-foreground",children:r({id:"cliHooks.form.matcher"})}),e.jsx(L,{id:"hook-matcher",value:n.matcher,onChange:p=>g("matcher",p.target.value),placeholder:r({id:"cliHooks.form.matcherPlaceholder"}),className:"mt-1 font-mono"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:r({id:"cliHooks.form.matcherHelp"})})]}),e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"hook-command",className:"text-sm font-medium text-foreground",children:[r({id:"cliHooks.form.command"})," *"]}),e.jsx(ye,{id:"hook-command",value:n.command,onChange:p=>g("command",p.target.value),placeholder:r({id:"cliHooks.form.commandPlaceholder"}),className:"mt-1 font-mono text-sm",rows:4,error:!!c.command}),c.command&&e.jsx("p",{className:"text-xs text-destructive mt-1",children:r({id:`cliHooks.${c.command}`})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:r({id:"cliHooks.form.commandHelp"})})]})]}),e.jsxs(De,{children:[e.jsx(w,{variant:"outline",onClick:i,disabled:C,children:r({id:"common.actions.cancel"})}),e.jsx(w,{onClick:S,disabled:C,children:r(C?{id:"common.actions.saving"}:{id:"common.actions.save"})})]})]})})}const be=[{id:"session-start-notify",name:"Session Start Notify",description:"Notify dashboard when a new workflow session is created",category:"notification",trigger:"SessionStart"},{id:"session-state-watch",name:"Session State Watch",description:"Watch for session metadata file changes (workflow-session.json)",category:"notification",trigger:"PostToolUse",matcher:"Write|Edit"},{id:"stop-notify",name:"Stop Notify",description:"Notify dashboard when Claude finishes responding",category:"notification",trigger:"Stop"},{id:"memory-sync-dashboard",name:"Memory Sync Dashboard",description:"Sync memory V2 status to dashboard on changes",category:"notification",trigger:"PostToolUse",matcher:"mcp__ccw-tools__core_memory"},{id:"auto-format-on-write",name:"Auto Format on Write",description:"Auto-format files after Claude writes or edits them",category:"automation",trigger:"PostToolUse",matcher:"Write|Edit"},{id:"auto-lint-on-write",name:"Auto Lint on Write",description:"Auto-lint files after Claude writes or edits them",category:"automation",trigger:"PostToolUse",matcher:"Write|Edit"},{id:"git-auto-stage",name:"Git Auto Stage",description:"Auto stage all modified files when Claude finishes responding",category:"automation",trigger:"Stop"},{id:"block-sensitive-files",name:"Block Sensitive Files",description:"Block modifications to sensitive files (.env, secrets, credentials)",category:"protection",trigger:"PreToolUse",matcher:"Write|Edit"},{id:"danger-bash-confirm",name:"Danger Bash Confirm",description:"Require confirmation for dangerous bash commands",category:"protection",trigger:"PreToolUse",matcher:"Bash"},{id:"danger-file-protection",name:"Danger File Protection",description:"Block modifications to protected files",category:"protection",trigger:"PreToolUse",matcher:"Write|Edit"},{id:"danger-git-destructive",name:"Danger Git Destructive",description:"Require confirmation for destructive git operations",category:"protection",trigger:"PreToolUse",matcher:"Bash"},{id:"danger-network-confirm",name:"Danger Network Confirm",description:"Require confirmation for network operations",category:"protection",trigger:"PreToolUse",matcher:"Bash|WebFetch"},{id:"danger-system-paths",name:"Danger System Paths",description:"Block modifications to system paths",category:"protection",trigger:"PreToolUse",matcher:"Write|Edit|Bash"},{id:"danger-permission-change",name:"Danger Permission Change",description:"Require confirmation for permission changes",category:"protection",trigger:"PreToolUse",matcher:"Bash"},{id:"post-edit-index",name:"Post Edit Index",description:"Notify indexing service when files are modified",category:"indexing",trigger:"PostToolUse",matcher:"Write|Edit"},{id:"session-end-summary",name:"Session End Summary",description:"Send session summary to dashboard on session end",category:"indexing",trigger:"Stop"},{id:"memory-auto-compress",name:"Auto Memory Compress",description:"Automatically compress memory when entries exceed threshold",category:"utility",trigger:"Stop"},{id:"memory-preview-extract",name:"Memory Preview & Extract",description:"Preview extraction queue and extract eligible sessions",category:"utility",trigger:"SessionStart"},{id:"memory-status-check",name:"Memory Status Check",description:"Check memory extraction and consolidation status",category:"utility",trigger:"SessionStart"},{id:"memory-v2-extract",name:"Memory V2 Extract",description:"Trigger Phase 1 extraction when session ends",category:"utility",trigger:"Stop"},{id:"memory-v2-auto-consolidate",name:"Memory V2 Auto Consolidate",description:"Trigger Phase 2 consolidation after extraction jobs complete",category:"utility",trigger:"Stop"}],Se={notification:{icon:Ae,color:"text-blue-500",bg:"bg-blue-500/10"},indexing:{icon:Ie,color:"text-purple-500",bg:"bg-purple-500/10"},automation:{icon:Ee,color:"text-orange-500",bg:"bg-orange-500/10"},utility:{icon:We,color:"text-gray-500",bg:"bg-gray-500/10"},protection:{icon:te,color:"text-red-500",bg:"bg-red-500/10"}},Pt={"session-start-notify":gt,"session-state-watch":de,"stop-notify":Ae,"auto-format-on-write":Ke,"auto-lint-on-write":_e,"block-sensitive-files":te,"git-auto-stage":Le,"post-edit-index":Ie,"session-end-summary":de,"project-state-inject":de};function Ct(t,s){return{notification:s({id:"cliHooks.templates.categories.notification"}),indexing:s({id:"cliHooks.templates.categories.indexing"}),automation:s({id:"cliHooks.templates.categories.automation"}),utility:s({id:"cliHooks.templates.categories.utility"}),protection:s({id:"cliHooks.templates.categories.protection"})}[t]}function Ht({onInstallTemplate:t,installedTemplates:s,isLoading:j=!1,installingTemplateId:i=null}){const{formatMessage:u}=V(),r=m.useMemo(()=>be.reduce((c,h)=>(c[h.category]||(c[h.category]=[]),c[h.category].push(h),c),{}),[]),n=["notification","indexing","automation","protection","utility"],v=async c=>{await t(c)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ee,{className:"w-5 h-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-foreground",children:u({id:"cliHooks.templates.title"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:u({id:"cliHooks.templates.description"})})]})]}),n.map(c=>{const h=r[c];if(!h||h.length===0)return null;const{icon:C,color:U}=Se[c];return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(C,{className:k("w-4 h-4",U)}),e.jsx("h3",{className:"text-sm font-medium text-foreground",children:Ct(c,u)}),e.jsx(y,{variant:"outline",className:"text-xs",children:h.length})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:h.map(g=>{const S=s.includes(g.id),D=i===g.id,p=Pt[g.id]||ee,{color:N,bg:H}=Se[g.category];return e.jsxs(z,{className:k("p-4 flex flex-col gap-2 transition-colors",S&&"opacity-70"),children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:k("p-2 rounded-lg shrink-0",H),children:e.jsx(p,{className:k("w-4 h-4",N)})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground leading-tight",children:u({id:`cliHooks.templates.templates.${g.id}.name`,defaultMessage:g.name})}),e.jsxs("div",{className:"flex items-center gap-1.5 mt-1 flex-wrap",children:[e.jsx(y,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:u({id:`cliHooks.trigger.${g.trigger}`})}),g.matcher&&e.jsx(y,{variant:"outline",className:"text-[10px] px-1.5 py-0 font-mono",children:g.matcher})]})]}),e.jsx(w,{size:"sm",variant:"ghost",disabled:S||D,onClick:()=>v(g.id),className:k("h-8 w-8 p-0 shrink-0 rounded-full",S?"text-green-500 hover:text-green-500":"text-primary hover:bg-primary/10"),title:u(S?{id:"cliHooks.templates.actions.installed"}:{id:"cliHooks.templates.actions.install"}),children:D?e.jsx($e,{className:"w-4 h-4 animate-spin"}):S?e.jsx(Ge,{className:"w-4 h-4"}):e.jsx(Ve,{className:"w-4 h-4"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed flex-1 pl-11",children:u({id:`cliHooks.templates.templates.${g.id}.description`,defaultMessage:g.description})})]},g.id)})})]},c)})]})}function we(){if(typeof window>"u"||typeof window.navigator>"u")return"linux";const t=window.navigator.userAgent;return t.includes("Win")?"windows":t.includes("Mac")?"macos":"linux"}function Tt(t){switch(t??we()){case"windows":return"cmd";case"macos":return"zsh";case"linux":return"bash";default:return"bash"}}function q(t){return{windows:"Windows",macos:"macOS",linux:"Linux"}[t]}function zt(t){return{cmd:"Command Prompt (cmd.exe)",bash:"Bash",powershell:"PowerShell",zsh:"Zsh"}[t]}function Ut(t,s){var r;const j=s??we(),i=[],u=[];if((r=t.incompatiblePlatforms)!=null&&r.includes(j))return i.push(`This hook is not compatible with ${q(j)}. Incompatible platform detected.`),{compatible:!1,issues:i,warnings:u};if(t.requiredPlatforms&&t.requiredPlatforms.length>0&&!t.requiredPlatforms.includes(j)){const n=t.requiredPlatforms.map(q).join(", ");return i.push(`This hook requires one of: ${n}. Current platform: ${q(j)}.`),{compatible:!1,issues:i,warnings:u}}if(t.optionalPlatforms&&t.optionalPlatforms.length>0&&!t.optionalPlatforms.includes(j)){const n=t.optionalPlatforms.map(q).join(", ");u.push(`This hook has optional features for: ${n}. Some features may not work on ${q(j)}.`)}return{compatible:!0,issues:i,warnings:u}}const me={"memory-update":{requiredPlatforms:void 0,optionalPlatforms:void 0,incompatiblePlatforms:[]},"danger-protection":{requiredPlatforms:void 0,optionalPlatforms:void 0,incompatiblePlatforms:[]},"skill-context":{requiredPlatforms:void 0,optionalPlatforms:void 0,incompatiblePlatforms:[]}},Pe={"memory-update-queue":"memory-auto-compress","danger-bash-confirm":"danger-bash-confirm","danger-file-protection":"danger-file-protection","danger-git-destructive":"danger-git-destructive","danger-network-confirm":"danger-network-confirm","danger-system-paths":"danger-system-paths","danger-permission-change":"danger-permission-change"},Y=[{id:"bash-confirm",templateId:"danger-bash-confirm",labelKey:"cliHooks.wizards.dangerProtection.options.bashConfirm",descKey:"cliHooks.wizards.dangerProtection.options.bashConfirmDesc"},{id:"file-protection",templateId:"danger-file-protection",labelKey:"cliHooks.wizards.dangerProtection.options.fileProtection",descKey:"cliHooks.wizards.dangerProtection.options.fileProtectionDesc"},{id:"git-destructive",templateId:"danger-git-destructive",labelKey:"cliHooks.wizards.dangerProtection.options.gitDestructive",descKey:"cliHooks.wizards.dangerProtection.options.gitDestructiveDesc"},{id:"network-confirm",templateId:"danger-network-confirm",labelKey:"cliHooks.wizards.dangerProtection.options.networkConfirm",descKey:"cliHooks.wizards.dangerProtection.options.networkConfirmDesc"},{id:"system-paths",templateId:"danger-system-paths",labelKey:"cliHooks.wizards.dangerProtection.options.systemPaths",descKey:"cliHooks.wizards.dangerProtection.options.systemPathsDesc"},{id:"permission-change",templateId:"danger-permission-change",labelKey:"cliHooks.wizards.dangerProtection.options.permissionChange",descKey:"cliHooks.wizards.dangerProtection.options.permissionChangeDesc"}],G={"memory-update":{title:"cliHooks.wizards.memoryUpdate.title",description:"cliHooks.wizards.memoryUpdate.description",icon:qe,trigger:"Stop",platformRequirements:me["memory-update"]},"danger-protection":{title:"cliHooks.wizards.dangerProtection.title",description:"cliHooks.wizards.dangerProtection.description",icon:te,trigger:"PreToolUse",platformRequirements:me["danger-protection"]},"skill-context":{title:"cliHooks.wizards.skillContext.title",description:"cliHooks.wizards.skillContext.description",icon:Oe,trigger:"UserPromptSubmit",platformRequirements:me["skill-context"]}};function Dt({wizardType:t,open:s,onClose:j}){const{formatMessage:i}=V(),u=Qe(),[r,n]=m.useState(1),[v,c]=m.useState("linux"),[h,C]=m.useState("project"),[U,g]=m.useState(!1),S=Fe(Me),{data:D,isLoading:p}=Ze({queryKey:["skills"],queryFn:()=>Xe(),enabled:s&&t==="skill-context"});m.useEffect(()=>{s&&c(we())},[s]);const[N,H]=m.useState({tool:"gemini",threshold:5,timeout:300}),[F,_]=m.useState({selectedOptions:["bash-confirm","file-protection","git-destructive"]}),[P,I]=m.useState({mode:"keyword",skillConfigs:[{skill:"",keywords:""}]}),R=G[t],E=Ut(R.platformRequirements,v),K=()=>{r<3&&n(a=>a+1)},$=()=>{r>1&&n(a=>a-1)},Q=()=>{n(1),j()},se=async()=>{g(!0);try{switch(t){case"memory-update":{const l=await(await fetch("/api/hooks/templates/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:"memory-auto-compress",scope:h,projectPath:S})})).json();if(!l.success)throw new Error(l.error||"Failed to install template");break}case"danger-protection":{for(const a of F.selectedOptions){const l=Y.find(T=>T.id===a);if(!l)continue;const b=Pe[l.templateId]||l.templateId,f=await(await fetch("/api/hooks/templates/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:b,scope:h,projectPath:S})})).json();f.success||console.warn(`Failed to install template ${b}:`,f.error)}break}case"skill-context":{const a=P.mode==="auto"?{_templateId:"skill-context-auto",matcher:"",hooks:[{type:"command",command:"ccw hook keyword --stdin"}]}:{_templateId:"skill-context-keyword",matcher:"",hooks:[{type:"command",command:"ccw hook keyword --stdin"}]};await Be(h,"UserPromptSubmit",a);break}}u.invalidateQueries({queryKey:["hooks"]}),Q()}catch(a){console.error("Failed to create hook:",a)}finally{g(!1)}},ie=()=>{const a=G[t].icon;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3 pb-4 border-b",children:[e.jsx("div",{className:"p-3 rounded-lg bg-primary/10",children:e.jsx(a,{className:"w-6 h-6 text-primary"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:i({id:G[t].title})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:G[t].description})})]})]}),e.jsxs(z,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(X,{className:k("w-5 h-5",E.compatible?"text-green-500":"text-destructive")}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:i({id:"cliHooks.wizards.platform.detected"})}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[q(v)," (",zt(Tt(v)),")"]})]}),e.jsx(y,{variant:E.compatible?"default":"destructive",children:E.compatible?i({id:"cliHooks.wizards.platform.compatible"}):i({id:"cliHooks.wizards.platform.incompatible"})})]}),!E.compatible&&E.issues.length>0&&e.jsxs("div",{className:"mt-3 flex items-start gap-2 p-3 bg-destructive/10 rounded-lg",children:[e.jsx(ke,{className:"w-4 h-4 text-destructive shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-destructive",children:i({id:"cliHooks.wizards.platform.compatibilityError"})}),e.jsx("ul",{className:"mt-1 space-y-1",children:E.issues.map((l,b)=>e.jsx("li",{className:"text-xs text-destructive/80",children:l},b))})]})]}),E.warnings.length>0&&e.jsxs("div",{className:"mt-3 flex items-start gap-2 p-3 bg-yellow-500/10 rounded-lg",children:[e.jsx(ke,{className:"w-4 h-4 text-yellow-600 shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-yellow-600",children:i({id:"cliHooks.wizards.platform.compatibilityWarning"})}),e.jsx("ul",{className:"mt-1 space-y-1",children:E.warnings.map((l,b)=>e.jsx("li",{className:"text-xs text-yellow-600/80",children:l},b))})]})]})]}),e.jsxs(z,{className:"p-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:i({id:"cliHooks.wizards.steps.triggerEvent"})}),e.jsx(y,{variant:"secondary",children:i({id:`cliHooks.trigger.${R.trigger}`})})]})]})},A=()=>{switch(t){case"memory-update":return oe();case"danger-protection":return J();case"skill-context":return ae();default:return null}},Z=()=>e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"text-center pb-4 border-b",children:[e.jsx(X,{className:"w-12 h-12 text-green-500 mx-auto mb-3"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:i({id:"cliHooks.wizards.steps.review.title"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"cliHooks.wizards.steps.review.description"})})]}),e.jsxs(z,{className:"p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:i({id:"cliHooks.wizards.steps.review.hookType"})}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:i({id:G[t].title})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:i({id:"cliHooks.wizards.steps.review.trigger"})}),e.jsx(y,{variant:"secondary",className:"text-xs",children:i({id:`cliHooks.trigger.${R.trigger}`})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:i({id:"cliHooks.wizards.steps.review.platform"})}),e.jsx("span",{className:"text-sm text-foreground",children:q(v)})]}),re()]}),e.jsxs(z,{className:"p-4",children:[e.jsx("p",{className:"text-sm font-medium text-foreground mb-3",children:i({id:"cliHooks.wizards.steps.review.installTo"})}),e.jsxs("div",{className:"flex gap-4",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:"wizardScope",value:"project",checked:h==="project",onChange:()=>C("project"),className:"accent-primary"}),e.jsx("span",{className:"text-sm text-foreground",children:i({id:"cliHooks.wizards.steps.review.scopeProject"})}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"(.claude/settings.json)"})]}),e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:"wizardScope",value:"global",checked:h==="global",onChange:()=>C("global"),className:"accent-primary"}),e.jsx("span",{className:"text-sm text-foreground",children:i({id:"cliHooks.wizards.steps.review.scopeGlobal"})}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"(~/.claude/settings.json)"})]})]})]}),e.jsxs(z,{className:"p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:i({id:"cliHooks.wizards.steps.review.commandPreview"})}),e.jsx("pre",{className:"text-xs font-mono bg-muted p-3 rounded-lg overflow-x-auto whitespace-pre-wrap break-all",children:ne()})]})]}),oe=()=>e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:i({id:"cliHooks.wizards.memoryUpdate.cliTool"})}),e.jsxs(ge,{value:N.tool,onValueChange:a=>H({...N,tool:a}),children:[e.jsx(pe,{className:"mt-1",children:e.jsx(he,{})}),e.jsxs(fe,{children:[e.jsx(W,{value:"gemini",children:"Gemini"}),e.jsx(W,{value:"qwen",children:"Qwen"}),e.jsx(W,{value:"codex",children:"Codex"}),e.jsx(W,{value:"opencode",children:"OpenCode"})]})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:i({id:"cliHooks.wizards.memoryUpdate.cliToolHelp"})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:i({id:"cliHooks.wizards.memoryUpdate.threshold"})}),e.jsx(L,{type:"number",value:N.threshold,onChange:a=>H({...N,threshold:Math.max(1,Math.min(20,parseInt(a.target.value)||1))}),min:1,max:20,className:"mt-1"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:i({id:"cliHooks.wizards.memoryUpdate.thresholdHelp"})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:i({id:"cliHooks.wizards.memoryUpdate.timeout"})}),e.jsx(L,{type:"number",value:N.timeout,onChange:a=>H({...N,timeout:Math.max(60,Math.min(1800,parseInt(a.target.value)||60))}),min:60,max:1800,step:60,className:"mt-1"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:i({id:"cliHooks.wizards.memoryUpdate.timeoutHelp"})})]})]}),J=()=>{const a=l=>{_(b=>({selectedOptions:b.selectedOptions.includes(l)?b.selectedOptions.filter(f=>f!==l):[...b.selectedOptions,l]}))};return e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"cliHooks.wizards.dangerProtection.selectProtections"})}),Y.map(l=>e.jsxs("label",{className:k("flex items-start gap-3 p-3 rounded-lg border cursor-pointer transition-colors",F.selectedOptions.includes(l.id)?"border-primary bg-primary/5":"border-border hover:border-primary/50"),children:[e.jsx("input",{type:"checkbox",checked:F.selectedOptions.includes(l.id),onChange:()=>a(l.id),className:"mt-0.5 accent-primary"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:i({id:l.labelKey})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:i({id:l.descKey})})]})]},l.id))]})},ae=()=>{const a=(D==null?void 0:D.skills)??[],l=()=>{I(f=>({...f,skillConfigs:[...f.skillConfigs,{skill:"",keywords:""}]}))},b=f=>{I(T=>({...T,skillConfigs:T.skillConfigs.filter((o,x)=>x!==f)}))},M=(f,T,o)=>{I(x=>{const d=[...x.skillConfigs];return d[f]={...d[f],[T]:o},{...x,skillConfigs:d}})};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:i({id:"cliHooks.wizards.skillContext.mode"})}),e.jsxs("div",{className:"flex gap-3 mt-2",children:[e.jsxs("label",{className:k("flex-1 flex items-center gap-2 p-3 rounded-lg border cursor-pointer transition-colors",P.mode==="keyword"?"border-primary bg-primary/5":"border-border"),children:[e.jsx("input",{type:"radio",name:"skillMode",value:"keyword",checked:P.mode==="keyword",onChange:()=>I(f=>({...f,mode:"keyword"})),className:"accent-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:i({id:"cliHooks.wizards.skillContext.modeKeyword"})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:i({id:"cliHooks.wizards.skillContext.modeKeywordDesc"})})]})]}),e.jsxs("label",{className:k("flex-1 flex items-center gap-2 p-3 rounded-lg border cursor-pointer transition-colors",P.mode==="auto"?"border-primary bg-primary/5":"border-border"),children:[e.jsx("input",{type:"radio",name:"skillMode",value:"auto",checked:P.mode==="auto",onChange:()=>I(f=>({...f,mode:"auto"})),className:"accent-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:i({id:"cliHooks.wizards.skillContext.modeAuto"})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:i({id:"cliHooks.wizards.skillContext.modeAutoDesc"})})]})]})]})]}),P.mode==="keyword"&&e.jsx(e.Fragment,{children:p?e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"cliHooks.wizards.skillContext.loadingSkills"})}):e.jsxs("div",{className:"space-y-3",children:[P.skillConfigs.map((f,T)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(ge,{value:f.skill,onValueChange:o=>M(T,"skill",o),children:[e.jsx(pe,{className:"w-[160px]",children:e.jsx(he,{placeholder:i({id:"cliHooks.wizards.skillContext.selectSkill"})})}),e.jsx(fe,{children:a.map(o=>e.jsx(W,{value:o.name,children:o.name},o.name))})]}),e.jsx(L,{value:f.keywords,onChange:o=>M(T,"keywords",o.target.value),placeholder:i({id:"cliHooks.wizards.skillContext.keywordsPlaceholder"}),className:"flex-1"}),P.skillConfigs.length>1&&e.jsx(w,{variant:"ghost",size:"icon",onClick:()=>b(T),children:e.jsx(Ce,{className:"w-4 h-4"})})]},T)),e.jsxs(w,{variant:"outline",size:"sm",onClick:l,className:"w-full",children:[e.jsx(je,{className:"w-4 h-4 mr-1"}),i({id:"cliHooks.wizards.skillContext.addPair"})]})]})}),P.mode==="auto"&&e.jsxs(z,{className:"p-4 bg-muted/30",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"cliHooks.wizards.skillContext.autoDescription"})}),!p&&a.length>0&&e.jsx("div",{className:"mt-2 flex flex-wrap gap-1",children:a.map(f=>e.jsx(y,{variant:"secondary",className:"text-xs",children:f.name},f.name))})]})]})},re=()=>{switch(t){case"memory-update":return e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"CLI Tool"}),e.jsx(y,{variant:"secondary",children:N.tool})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Threshold"}),e.jsxs("span",{children:[N.threshold," paths"]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Timeout"}),e.jsxs("span",{children:[N.timeout,"s"]})]})]});case"danger-protection":return e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:[i({id:"cliHooks.wizards.dangerProtection.selectedProtections"}),":"]}),e.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:F.selectedOptions.map(a=>{const l=Y.find(b=>b.id===a);return l?e.jsx(y,{variant:"secondary",className:"text-xs",children:i({id:l.labelKey})},a):null})})]});case"skill-context":return e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:i({id:"cliHooks.wizards.skillContext.mode"})}),e.jsx(y,{variant:"secondary",children:P.mode==="auto"?i({id:"cliHooks.wizards.skillContext.modeAuto"}):i({id:"cliHooks.wizards.skillContext.modeKeyword"})})]}),P.mode==="keyword"&&e.jsxs("div",{children:[e.jsxs("span",{className:"text-muted-foreground",children:[i({id:"cliHooks.wizards.skillContext.keywordMappings"}),":"]}),e.jsx("div",{className:"mt-1 space-y-1",children:P.skillConfigs.filter(a=>a.skill&&a.keywords).map((a,l)=>e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx(y,{variant:"outline",children:a.keywords}),e.jsx("span",{className:"text-muted-foreground",children:"->"}),e.jsx(y,{variant:"secondary",children:a.skill})]},l))})]})]});default:return null}},ne=()=>{switch(t){case"memory-update":return"ccw hook template exec memory-auto-compress --stdin";case"danger-protection":{const a=F.selectedOptions.map(l=>Y.find(b=>b.id===l)).filter(Boolean).map(l=>`ccw hook template exec ${Pe[l.templateId]||l.templateId} --stdin`);return a.length>0?a.join(`
|
|
7
7
|
`):"# No protections selected"}case"skill-context":return"ccw hook keyword --stdin";default:return""}},le=()=>e.jsxs(De,{className:"gap-2",children:[r>1&&e.jsxs(w,{variant:"outline",onClick:$,disabled:U,children:[e.jsx(Je,{className:"w-4 h-4 mr-1"}),i({id:"cliHooks.wizards.navigation.previous"})]}),r<3?e.jsxs(w,{onClick:K,disabled:!E.compatible,children:[i({id:"cliHooks.wizards.navigation.next"}),e.jsx(Ye,{className:"w-4 h-4 ml-1"})]}):e.jsx(w,{onClick:se,disabled:U,children:i(U?{id:"cliHooks.wizards.navigation.creating"}:{id:"cliHooks.wizards.navigation.create"})})]}),ce=()=>e.jsx("div",{className:"flex items-center justify-center gap-2 pb-4",children:[1,2,3].map(a=>e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:k("w-8 h-8 rounded-full flex items-center justify-center text-sm font-medium",r===a?"bg-primary text-primary-foreground":r>a?"bg-green-500 text-white":"bg-muted text-muted-foreground"),children:r>a?e.jsx(X,{className:"w-4 h-4"}):a}),a<3&&e.jsx("div",{className:k("w-12 h-0.5 mx-1",r>a?"bg-green-500":"bg-muted")})]},a))});return e.jsx(He,{open:s,onOpenChange:Q,children:e.jsxs(Te,{className:"sm:max-w-[600px]",children:[e.jsx(ze,{children:e.jsx(Ue,{className:"flex items-center gap-2",children:i({id:"cliHooks.wizards.title"})})}),e.jsx("div",{className:"w-full bg-muted h-1 rounded-full my-4",children:e.jsx("div",{className:"bg-primary h-1 rounded-full transition-all duration-300",style:{width:`${r/3*100}%`}})}),ce(),e.jsxs("div",{className:"min-h-[300px]",children:[r===1&&ie(),r===2&&A(),r===3&&Z()]}),le()]})})}function Et(t){return["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","Notification","SubagentStart","SubagentStop","PreCompact","SessionEnd","PostToolUseFailure","PermissionRequest"].includes(t)}function It(t){return Et(t.trigger)?{name:t.name,description:t.description,enabled:t.enabled,trigger:t.trigger,matcher:t.matcher,command:t.command||t.script,scope:t.scope,index:t.index}:null}function At(t){return{SessionStart:t.filter(s=>s.trigger==="SessionStart"),UserPromptSubmit:t.filter(s=>s.trigger==="UserPromptSubmit"),PreToolUse:t.filter(s=>s.trigger==="PreToolUse"),PostToolUse:t.filter(s=>s.trigger==="PostToolUse"),Stop:t.filter(s=>s.trigger==="Stop"),Notification:t.filter(s=>s.trigger==="Notification"),SubagentStart:t.filter(s=>s.trigger==="SubagentStart"),SubagentStop:t.filter(s=>s.trigger==="SubagentStop"),PreCompact:t.filter(s=>s.trigger==="PreCompact"),SessionEnd:t.filter(s=>s.trigger==="SessionEnd"),PostToolUseFailure:t.filter(s=>s.trigger==="PostToolUseFailure"),PermissionRequest:t.filter(s=>s.trigger==="PermissionRequest")}}function Ft(t){return{SessionStart:{total:t.SessionStart.length,enabled:t.SessionStart.filter(s=>s.enabled).length},UserPromptSubmit:{total:t.UserPromptSubmit.length,enabled:t.UserPromptSubmit.filter(s=>s.enabled).length},PreToolUse:{total:t.PreToolUse.length,enabled:t.PreToolUse.filter(s=>s.enabled).length},PostToolUse:{total:t.PostToolUse.length,enabled:t.PostToolUse.filter(s=>s.enabled).length},Stop:{total:t.Stop.length,enabled:t.Stop.filter(s=>s.enabled).length},Notification:{total:t.Notification.length,enabled:t.Notification.filter(s=>s.enabled).length},SubagentStart:{total:t.SubagentStart.length,enabled:t.SubagentStart.filter(s=>s.enabled).length},SubagentStop:{total:t.SubagentStop.length,enabled:t.SubagentStop.filter(s=>s.enabled).length},PreCompact:{total:t.PreCompact.length,enabled:t.PreCompact.filter(s=>s.enabled).length},SessionEnd:{total:t.SessionEnd.length,enabled:t.SessionEnd.filter(s=>s.enabled).length},PostToolUseFailure:{total:t.PostToolUseFailure.length,enabled:t.PostToolUseFailure.filter(s=>s.enabled).length},PermissionRequest:{total:t.PermissionRequest.length,enabled:t.PermissionRequest.filter(s=>s.enabled).length}}}function Vt(){const{formatMessage:t}=V(),[s,j]=m.useState(""),[i,u]=m.useState("all"),[r,n]=m.useState(!1),[v,c]=m.useState("create"),[h,C]=m.useState(),[U,g]=m.useState(!1),[S,D]=m.useState("memory-update"),[p,N]=m.useState(new Set),[H,F]=m.useState(!1),[_,P]=m.useState(!1),{hooks:I,enabledCount:R,totalCount:E,isLoading:K,refetch:$}=pt(),{toggleHook:Q}=ht(),{deleteHook:se}=ft(),ie=Fe(Me),A=m.useMemo(()=>{let o=I.map(It).filter(x=>x!==null);if(i!=="all"&&(o=o.filter(x=>x.trigger===i)),s.trim()){const x=s.toLowerCase();o=o.filter(d=>d.name.toLowerCase().includes(x)||d.description&&d.description.toLowerCase().includes(x)||d.trigger.toLowerCase().includes(x)||d.command&&d.command.toLowerCase().includes(x))}return o},[I,s,i]),Z=m.useMemo(()=>At(A),[A]),oe=m.useMemo(()=>Ft(Z),[Z]),J=()=>{c("create"),C(void 0),n(!0)},ae=o=>{c("edit"),C(o),n(!0)},re=async o=>{const x=A.find(d=>d.name===o);if(!x){console.error("Hook not found:",o);return}try{await se({name:x.name,scope:x.scope,trigger:x.trigger,index:x.index})}catch(d){console.error("Failed to delete hook:",d)}},ne=async o=>{console.log("Save hook:",o),await $()},le=o=>{N(x=>{const d=new Set(x);return d.has(o)?d.delete(o):d.add(o),d})},ce=[{type:"memory-update",icon:qe,label:t({id:"cliHooks.wizards.memoryUpdate.title"}),description:t({id:"cliHooks.wizards.memoryUpdate.shortDescription"})},{type:"danger-protection",icon:te,label:t({id:"cliHooks.wizards.dangerProtection.title"}),description:t({id:"cliHooks.wizards.dangerProtection.shortDescription"})},{type:"skill-context",icon:Oe,label:t({id:"cliHooks.wizards.skillContext.title"}),description:t({id:"cliHooks.wizards.skillContext.shortDescription"})}],a=o=>{D(o),g(!0)},l=m.useMemo(()=>be.filter(o=>I.some(x=>x.templateId===o.id)).map(o=>o.id),[I]),[b,M]=m.useState(null),f=async o=>{if(be.find(d=>d.id===o)){M(o);try{const d=await fetch("/api/hooks/templates/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:o,scope:"project",projectPath:ie})});if(!d.ok)throw new Error(`Failed to install template: ${d.statusText}`);const O=await d.json();if(!O.success)throw new Error(O.error||"Unknown error");await $()}catch(d){console.error("Failed to install template:",d)}finally{M(null)}}},T=[{type:"all",icon:B,label:t({id:"common.all"})},{type:"SessionStart",icon:et,label:t({id:"cliHooks.trigger.SessionStart"})},{type:"UserPromptSubmit",icon:ee,label:t({id:"cliHooks.trigger.UserPromptSubmit"})},{type:"PreToolUse",icon:Ee,label:t({id:"cliHooks.trigger.PreToolUse"})},{type:"PostToolUse",icon:X,label:t({id:"cliHooks.trigger.PostToolUse"})},{type:"Stop",icon:jt,label:t({id:"cliHooks.trigger.Stop"})}];return e.jsxs("div",{className:"max-w-6xl mx-auto space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-foreground flex items-center gap-2",children:[e.jsx(B,{className:"w-6 h-6 text-primary"}),t({id:"cliHooks.title"})]}),e.jsx("p",{className:"text-muted-foreground mt-1",children:t({id:"cliHooks.description"})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(w,{variant:"outline",size:"sm",onClick:()=>$(),disabled:K,children:[e.jsx(tt,{className:k("w-4 h-4 mr-1",K&&"animate-spin")}),t({id:"common.actions.refresh"})]}),e.jsxs(w,{variant:"outline",size:"sm",onClick:J,children:[e.jsx(je,{className:"w-4 h-4 mr-1"}),t({id:"cliHooks.actions.add"})]}),e.jsxs(w,{size:"sm",onClick:()=>a("memory-update"),variant:"secondary",children:[e.jsx(ve,{className:"w-4 h-4 mr-1"}),t({id:"cliHooks.wizards.launch"})]})]})]}),e.jsx(z,{className:"p-4",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[e.jsx(st,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(L,{placeholder:t({id:"cliHooks.filters.searchPlaceholder"}),value:s,onChange:o=>j(o.target.value),className:"pl-9"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(y,{variant:"outline",className:"text-sm",children:t({id:"cliHooks.stats.total"},{count:E})}),e.jsx(y,{variant:"default",className:"text-sm",children:t({id:"cliHooks.stats.enabled"},{count:R})})]})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:T.map(({type:o,icon:x,label:d})=>{const O=i===o,Ne=o==="all"?{enabled:R,total:E}:oe[o];return e.jsxs(w,{variant:O?"default":"outline",size:"sm",onClick:()=>u(o),className:"gap-2",children:[e.jsx(x,{className:"w-4 h-4"}),d,e.jsxs(y,{variant:O?"secondary":"outline",className:"ml-1",children:[Ne.enabled,"/",Ne.total]})]},o)})})]})}),A.length>0&&e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:A.map(o=>e.jsx(kt,{hook:o,isExpanded:p.has(o.name),onToggleExpand:()=>le(o.name),onToggle:Q,onEdit:ae,onDelete:re},o.name))}),e.jsxs(z,{className:"overflow-hidden",children:[e.jsxs("div",{className:"p-4 cursor-pointer hover:bg-muted/50 transition-colors flex items-center justify-between border-b border-border",onClick:()=>F(!H),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ee,{className:"w-5 h-5 text-primary"}),e.jsx("h2",{className:"text-base font-semibold text-foreground",children:t({id:"cliHooks.quickTemplates.title"})})]}),e.jsx(w,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:H?e.jsx(xe,{className:"w-4 h-4"}):e.jsx(ue,{className:"w-4 h-4"})})]}),H&&e.jsx("div",{className:"p-6",children:e.jsx(Ht,{onInstallTemplate:f,installedTemplates:l,isLoading:!!b,installingTemplateId:b})})]}),e.jsxs(z,{className:"overflow-hidden",children:[e.jsxs("div",{className:"p-4 cursor-pointer hover:bg-muted/50 transition-colors flex items-center justify-between",onClick:()=>P(!_),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ve,{className:"w-5 h-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-base font-semibold text-foreground",children:t({id:"cliHooks.wizards.sectionTitle"})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t({id:"cliHooks.wizards.sectionDescription"})})]})]}),e.jsx(w,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:_?e.jsx(xe,{className:"w-4 h-4"}):e.jsx(ue,{className:"w-4 h-4"})})]}),_&&e.jsx("div",{className:"border-t border-border p-6",children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:ce.map(({type:o,icon:x,label:d,description:O})=>e.jsx(z,{className:"p-4 cursor-pointer hover:bg-muted/50 transition-colors",onClick:()=>a(o),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-primary/10 shrink-0",children:e.jsx(x,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-sm font-medium text-foreground mb-1",children:d}),e.jsx("p",{className:"text-xs text-muted-foreground",children:O})]})]})},o))})})]}),!K&&A.length===0&&e.jsxs(z,{className:"p-12 text-center",children:[e.jsx(B,{className:"w-16 h-16 mx-auto text-muted-foreground/30 mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:t({id:"cliHooks.empty.title"})}),e.jsx("p",{className:"text-muted-foreground mb-6",children:t({id:"cliHooks.empty.description"})}),e.jsxs(w,{onClick:J,children:[e.jsx(je,{className:"w-4 h-4 mr-1"}),t({id:"cliHooks.actions.addFirst"})]})]}),e.jsx(St,{mode:v,hook:h,open:r,onClose:()=>n(!1),onSave:ne}),e.jsx(Dt,{wizardType:S,open:U,onClose:()=>g(!1)})]})}export{Vt as HookManagerPage,Vt as default};
|
|
8
|
-
//# sourceMappingURL=HookManagerPage-
|
|
8
|
+
//# sourceMappingURL=HookManagerPage-4LJeC9bq.js.map
|