claude-code-workflow 7.2.10 → 7.2.12

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.
Files changed (331) hide show
  1. package/.claude/agents/cli-planning-agent.md +3 -0
  2. package/.claude/agents/debug-explore-agent.md +1 -0
  3. package/.claude/agents/tdd-developer.md +1 -0
  4. package/.claude/agents/team-worker.md +1 -1
  5. package/.claude/agents/test-action-planning-agent.md +3 -0
  6. package/.claude/agents/test-context-search-agent.md +1 -0
  7. package/.claude/agents/test-fix-agent.md +3 -0
  8. package/.claude/commands/workflow/analyze-with-file.md +108 -54
  9. package/.claude/commands/workflow-tune.md +811 -0
  10. package/.claude/skills/review-code/SKILL.md +2 -0
  11. package/.claude/skills/review-cycle/SKILL.md +4 -0
  12. package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
  13. package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
  14. package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
  15. package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
  16. package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
  17. package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
  18. package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
  19. package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
  20. package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
  21. package/.claude/skills/team-testing/roles/executor/role.md +2 -1
  22. package/.claude/skills/team-testing/roles/generator/role.md +2 -1
  23. package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
  24. package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
  25. package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
  26. package/.claude/skills/workflow-lite-execute/SKILL.md +106 -14
  27. package/.claude/skills/workflow-lite-plan/SKILL.md +34 -72
  28. package/.claude/skills/workflow-lite-test-review/SKILL.md +41 -26
  29. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
  30. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
  31. package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
  32. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
  33. package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
  34. package/.codex/skills/analyze-with-file/SKILL.md +2 -0
  35. package/.codex/skills/debug-with-file/SKILL.md +4 -0
  36. package/.codex/skills/issue-discover/SKILL.md +1 -0
  37. package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
  38. package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
  39. package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
  40. package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
  41. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
  42. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
  43. package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
  44. package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
  45. package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
  46. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
  47. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
  48. package/ccw/dist/commands/spec.d.ts.map +1 -1
  49. package/ccw/dist/commands/spec.js +9 -4
  50. package/ccw/dist/commands/spec.js.map +1 -1
  51. package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
  52. package/ccw/dist/core/routes/codexlens-routes.js +3 -1
  53. package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
  54. package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
  55. package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
  56. package/ccw/dist/tools/spec-index-builder.js +8 -4
  57. package/ccw/dist/tools/spec-index-builder.js.map +1 -1
  58. package/ccw/dist/tools/spec-init.d.ts +1 -1
  59. package/ccw/dist/tools/spec-init.d.ts.map +1 -1
  60. package/ccw/dist/tools/spec-init.js +127 -0
  61. package/ccw/dist/tools/spec-init.js.map +1 -1
  62. package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
  63. package/ccw/dist/tools/spec-loader.js +2 -1
  64. package/ccw/dist/tools/spec-loader.js.map +1 -1
  65. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
  66. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
  67. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
  68. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
  69. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
  70. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
  71. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
  72. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
  73. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
  74. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
  75. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
  76. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
  77. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
  78. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
  79. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
  80. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
  81. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
  82. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
  83. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
  84. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
  85. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
  86. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
  87. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
  88. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
  89. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
  90. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
  91. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
  92. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
  93. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
  94. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
  95. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
  96. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
  97. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
  98. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
  99. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
  100. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
  101. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
  102. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
  103. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
  104. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
  105. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
  106. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
  107. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
  108. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
  109. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
  110. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
  111. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
  112. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
  113. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
  114. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
  115. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
  116. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
  117. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
  118. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
  119. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
  120. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
  121. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
  122. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
  123. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
  124. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
  125. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
  126. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
  127. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
  128. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
  129. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
  130. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
  131. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
  132. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
  133. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
  134. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
  135. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
  136. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
  137. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
  138. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
  139. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
  140. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
  141. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
  142. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
  143. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
  144. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
  145. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
  146. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
  147. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
  148. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
  149. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
  150. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
  151. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
  152. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
  153. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
  154. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
  155. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
  156. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
  157. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
  158. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
  159. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
  160. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
  161. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
  162. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
  163. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
  164. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
  165. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
  166. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
  167. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
  168. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
  169. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
  170. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
  171. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
  172. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
  173. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
  174. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
  175. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
  176. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
  177. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
  178. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
  179. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
  180. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
  181. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
  182. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
  183. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
  184. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
  185. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
  186. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
  187. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
  188. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
  189. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
  190. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
  191. package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
  192. package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
  193. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
  194. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
  195. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
  196. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
  197. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
  198. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
  199. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
  200. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
  201. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
  202. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
  203. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
  204. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
  205. package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
  206. package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
  207. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
  208. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
  209. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
  210. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
  211. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
  212. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
  213. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
  214. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
  215. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
  216. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
  217. package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
  218. package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
  219. package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
  220. package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
  221. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
  222. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
  223. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
  224. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
  225. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
  226. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
  227. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
  228. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
  229. package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
  230. package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
  231. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
  232. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
  233. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
  234. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
  235. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
  236. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
  238. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
  240. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
  242. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
  244. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
  246. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
  248. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
  250. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
  252. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
  254. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
  255. package/ccw/frontend/dist/index.html +1 -1
  256. package/package.json +1 -1
  257. package/.claude/commands/ddd/auto.md +0 -359
  258. package/.claude/commands/ddd/doc-generate.md +0 -222
  259. package/.claude/commands/ddd/doc-refresh.md +0 -218
  260. package/.claude/commands/ddd/execute.md +0 -416
  261. package/.claude/commands/ddd/index-build.md +0 -212
  262. package/.claude/commands/ddd/plan.md +0 -611
  263. package/.claude/commands/ddd/scan.md +0 -365
  264. package/.claude/commands/ddd/sync.md +0 -353
  265. package/.claude/commands/ddd/update.md +0 -160
  266. package/.claude/commands/idaw/add.md +0 -287
  267. package/.claude/commands/idaw/resume.md +0 -442
  268. package/.claude/commands/idaw/run-coordinate.md +0 -648
  269. package/.claude/commands/idaw/run.md +0 -539
  270. package/.claude/commands/idaw/status.md +0 -182
  271. package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
  272. package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
  273. package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
  274. package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
  275. package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
  276. package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
  277. package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
  278. package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
  279. package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
  280. package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
  281. package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
  282. package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
  283. package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
  284. package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
  285. package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
  286. package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
  287. package/.claude/skills/team-issue/role-specs/planner.md +0 -83
  288. package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
  289. package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
  290. package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
  291. package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
  292. package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
  293. package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
  294. package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
  295. package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
  296. package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
  297. package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
  298. package/.claude/skills/team-planex/role-specs/executor.md +0 -90
  299. package/.claude/skills/team-planex/role-specs/planner.md +0 -110
  300. package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
  301. package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
  302. package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
  303. package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
  304. package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
  305. package/.claude/skills/team-review/role-specs/fixer.md +0 -75
  306. package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
  307. package/.claude/skills/team-review/role-specs/scanner.md +0 -70
  308. package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
  309. package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
  310. package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
  311. package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
  312. package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
  313. package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
  314. package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
  315. package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
  316. package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
  317. package/.claude/skills/team-testing/role-specs/executor.md +0 -97
  318. package/.claude/skills/team-testing/role-specs/generator.md +0 -96
  319. package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
  320. package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
  321. package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
  322. package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
  323. package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
  324. package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
  325. package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
  326. package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
  327. package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
  328. package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
  329. package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
  330. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
  331. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import{O as Re,u as V,r as m,j as e,C as z,dq 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,cQ as te,S as We,W as Ee,ck as Ie,cB as Ae,a1 as Le,dr 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,ds as Je,ao as Ye,a7 as je,dt as Be,bY as Xe,b7 as et,R as tt,b as st}from"./index-B6I7GQC5.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-gTMl4gSG.js";import{P as mt,a as xt}from"./power-DmIojFl-.js";import{S as ut}from"./square-pen-C7K13x4Z.js";import{S as gt}from"./send-Vet3sN4J.js";import{i as pt,j as ht,k as ft}from"./useCli-ByL_a5CD.js";import{C as jt}from"./circle-stop-DYZSLYU0.js";import{W as ve}from"./wand-sparkles-DqS0VCeN.js";import"./useLocale-D2iHK44M.js";import"./errorSanitizer-IY9pf5g4.js";/**
1
+ import{O as Re,u as V,r as m,j as e,C as z,dq 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,cQ as te,S as We,W as Ee,ck as Ie,cB as Ae,a1 as Le,dr 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,ds as Je,ao as Ye,a7 as je,dt as Be,bY as Xe,b7 as et,R as tt,b as st}from"./index-dWT2M6Ef.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-BW9jiZ-p.js";import{P as mt,a as xt}from"./power-CFLmB-U9.js";import{S as ut}from"./square-pen-CnZgm6g-.js";import{S as gt}from"./send-CZk9p0mM.js";import{i as pt,j as ht,k as ft}from"./useCli-PCoPoVeM.js";import{C as jt}from"./circle-stop-Dix1AOmw.js";import{W as ve}from"./wand-sparkles-83GmAYuw.js";import"./useLocale-sXTrdxcJ.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-CtVTB_ae.js.map
8
+ //# sourceMappingURL=HookManagerPage-D2FuJfsM.js.map