maestro-flow 0.5.1 → 0.5.3

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 (530) hide show
  1. package/.agents/skills/insight-challenge/SKILL.md +228 -0
  2. package/.agents/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  3. package/.agents/skills/insight-challenge/specs/verdict-schema.md +239 -0
  4. package/.agents/skills/maestro/SKILL.md +6 -6
  5. package/.agents/skills/maestro-help/SKILL.md +1 -1
  6. package/.agents/skills/maestro-help/index/catalog.json +3 -2
  7. package/.agents/skills/maestro-ralph/SKILL.md +11 -10
  8. package/.agents/skills/maestro-ralph-beta/SKILL.md +11 -10
  9. package/.agents/skills/odyssey-debug/SKILL.md +475 -0
  10. package/.agents/skills/odyssey-improve/SKILL.md +507 -0
  11. package/.agents/skills/odyssey-planex/SKILL.md +603 -0
  12. package/.agents/skills/odyssey-review-test-fix/SKILL.md +429 -0
  13. package/.agents/skills/odyssey-ui/SKILL.md +464 -0
  14. package/.agy/skills/insight-challenge/SKILL.md +230 -0
  15. package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  16. package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
  17. package/.agy/skills/maestro/SKILL.md +6 -6
  18. package/.agy/skills/maestro-help/SKILL.md +1 -1
  19. package/.agy/skills/maestro-help/index/catalog.json +3 -2
  20. package/.agy/skills/maestro-ralph/SKILL.md +11 -10
  21. package/.agy/skills/maestro-ralph-beta/SKILL.md +11 -10
  22. package/.agy/skills/odyssey-debug/SKILL.md +475 -0
  23. package/.agy/skills/odyssey-improve/SKILL.md +507 -0
  24. package/.agy/skills/odyssey-planex/SKILL.md +603 -0
  25. package/.agy/skills/odyssey-review-test-fix/SKILL.md +429 -0
  26. package/.agy/skills/odyssey-ui/SKILL.md +464 -0
  27. package/.claude/commands/maestro-ralph-beta.md +11 -10
  28. package/.claude/commands/maestro-ralph.md +11 -10
  29. package/.claude/commands/maestro.md +6 -6
  30. package/.claude/commands/odyssey-debug.md +473 -0
  31. package/.claude/commands/odyssey-improve.md +505 -0
  32. package/.claude/commands/odyssey-planex.md +601 -0
  33. package/.claude/commands/odyssey-review-test-fix.md +427 -0
  34. package/.claude/commands/odyssey-ui.md +462 -0
  35. package/.claude/skills/insight-challenge/SKILL.md +226 -0
  36. package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  37. package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
  38. package/.claude/skills/maestro-help/SKILL.md +1 -1
  39. package/.claude/skills/maestro-help/index/catalog.json +3 -2
  40. package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
  41. package/.codex/skills/learn-decompose/SKILL.md +144 -144
  42. package/.codex/skills/learn-follow/SKILL.md +83 -83
  43. package/.codex/skills/learn-investigate/SKILL.md +84 -84
  44. package/.codex/skills/learn-retro/SKILL.md +113 -113
  45. package/.codex/skills/learn-second-opinion/SKILL.md +116 -116
  46. package/.codex/skills/maestro/SKILL.md +11 -8
  47. package/.codex/skills/maestro-amend/SKILL.md +4 -4
  48. package/.codex/skills/maestro-analyze/SKILL.md +2 -2
  49. package/.codex/skills/maestro-blueprint/SKILL.md +4 -4
  50. package/.codex/skills/maestro-companion/SKILL.md +5 -5
  51. package/.codex/skills/maestro-composer/SKILL.md +217 -217
  52. package/.codex/skills/maestro-grill/SKILL.md +1 -1
  53. package/.codex/skills/maestro-help/SKILL.md +31 -31
  54. package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
  55. package/.codex/skills/maestro-init/SKILL.md +1 -1
  56. package/.codex/skills/maestro-learn/SKILL.md +80 -80
  57. package/.codex/skills/maestro-merge/SKILL.md +76 -76
  58. package/.codex/skills/maestro-milestone-release/SKILL.md +74 -74
  59. package/.codex/skills/maestro-next/SKILL.md +1 -1
  60. package/.codex/skills/maestro-player/SKILL.md +3 -3
  61. package/.codex/skills/maestro-quick/SKILL.md +129 -129
  62. package/.codex/skills/maestro-ralph/SKILL.md +9 -9
  63. package/.codex/skills/maestro-ralph-beta/SKILL.md +35 -35
  64. package/.codex/skills/maestro-ralph-execute/SKILL.md +5 -5
  65. package/.codex/skills/maestro-tools-execute/SKILL.md +3 -3
  66. package/.codex/skills/maestro-tools-register/SKILL.md +3 -3
  67. package/.codex/skills/manage-codebase-rebuild/SKILL.md +412 -412
  68. package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
  69. package/.codex/skills/manage-harvest/SKILL.md +99 -99
  70. package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
  71. package/.codex/skills/manage-knowhow/SKILL.md +95 -95
  72. package/.codex/skills/manage-knowhow-capture/SKILL.md +137 -137
  73. package/.codex/skills/manage-status/SKILL.md +7 -7
  74. package/.codex/skills/manage-wiki/SKILL.md +55 -55
  75. package/.codex/skills/odyssey-debug/SKILL.md +456 -0
  76. package/.codex/skills/odyssey-improve/SKILL.md +466 -0
  77. package/.codex/skills/odyssey-planex/SKILL.md +409 -0
  78. package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
  79. package/.codex/skills/odyssey-ui/SKILL.md +411 -0
  80. package/.codex/skills/quality-auto-test/SKILL.md +1 -1
  81. package/.codex/skills/quality-debug/SKILL.md +8 -8
  82. package/.codex/skills/quality-refactor/SKILL.md +3 -3
  83. package/.codex/skills/quality-review/SKILL.md +1 -1
  84. package/.codex/skills/quality-sync/SKILL.md +111 -111
  85. package/.codex/skills/quality-test/SKILL.md +1 -1
  86. package/.codex/skills/spec-add/SKILL.md +2 -2
  87. package/.codex/skills/spec-load/SKILL.md +1 -1
  88. package/.codex/skills/spec-map/SKILL.md +204 -204
  89. package/.codex/skills/spec-remove/SKILL.md +75 -75
  90. package/.codex/skills/spec-setup/SKILL.md +2 -2
  91. package/.codex/skills/wiki-connect/SKILL.md +73 -73
  92. package/.codex/skills/wiki-digest/SKILL.md +87 -87
  93. package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
  94. package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
  95. package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
  96. package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
  97. package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
  98. package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
  99. package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
  100. package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
  101. package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
  102. package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
  103. package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
  104. package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
  105. package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
  106. package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
  107. package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
  108. package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
  109. package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
  110. package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
  111. package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
  112. package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
  113. package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
  114. package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
  115. package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
  116. package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
  117. package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
  118. package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
  119. package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
  120. package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
  121. package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
  122. package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
  123. package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
  124. package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
  125. package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
  126. package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
  127. package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
  128. package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
  129. package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
  130. package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
  131. package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
  132. package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
  133. package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
  134. package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
  135. package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
  136. package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
  137. package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
  138. package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
  139. package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
  140. package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
  141. package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
  142. package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
  143. package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
  144. package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
  145. package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
  146. package/dashboard/dist/index.html +2 -2
  147. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
  148. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  149. package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
  150. package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
  151. package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
  152. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
  153. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  154. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
  155. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
  156. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  157. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
  158. package/dashboard/dist-server/src/types/index.d.ts +9 -0
  159. package/dist/src/cli.js +3 -0
  160. package/dist/src/cli.js.map +1 -1
  161. package/dist/src/commands/delegate.d.ts.map +1 -1
  162. package/dist/src/commands/delegate.js +50 -8
  163. package/dist/src/commands/delegate.js.map +1 -1
  164. package/dist/src/commands/domain.d.ts +9 -0
  165. package/dist/src/commands/domain.d.ts.map +1 -0
  166. package/dist/src/commands/domain.js +445 -0
  167. package/dist/src/commands/domain.js.map +1 -0
  168. package/dist/src/commands/hooks.d.ts +10 -0
  169. package/dist/src/commands/hooks.d.ts.map +1 -1
  170. package/dist/src/commands/hooks.js +132 -22
  171. package/dist/src/commands/hooks.js.map +1 -1
  172. package/dist/src/commands/install.d.ts.map +1 -1
  173. package/dist/src/commands/install.js +82 -204
  174. package/dist/src/commands/install.js.map +1 -1
  175. package/dist/src/commands/kg.d.ts.map +1 -1
  176. package/dist/src/commands/kg.js +183 -90
  177. package/dist/src/commands/kg.js.map +1 -1
  178. package/dist/src/commands/search.d.ts +15 -8
  179. package/dist/src/commands/search.d.ts.map +1 -1
  180. package/dist/src/commands/search.js +205 -59
  181. package/dist/src/commands/search.js.map +1 -1
  182. package/dist/src/commands/spec.d.ts.map +1 -1
  183. package/dist/src/commands/spec.js +9 -1
  184. package/dist/src/commands/spec.js.map +1 -1
  185. package/dist/src/commands/update.d.ts.map +1 -1
  186. package/dist/src/commands/update.js +0 -7
  187. package/dist/src/commands/update.js.map +1 -1
  188. package/dist/src/commands/wiki.d.ts.map +1 -1
  189. package/dist/src/commands/wiki.js +8 -1
  190. package/dist/src/commands/wiki.js.map +1 -1
  191. package/dist/src/commands/workspace.d.ts +12 -0
  192. package/dist/src/commands/workspace.d.ts.map +1 -0
  193. package/dist/src/commands/workspace.js +230 -0
  194. package/dist/src/commands/workspace.js.map +1 -0
  195. package/dist/src/config/cli-tools-config.d.ts +5 -0
  196. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  197. package/dist/src/config/cli-tools-config.js +31 -0
  198. package/dist/src/config/cli-tools-config.js.map +1 -1
  199. package/dist/src/config/index.d.ts +9 -1
  200. package/dist/src/config/index.d.ts.map +1 -1
  201. package/dist/src/config/index.js +35 -1
  202. package/dist/src/config/index.js.map +1 -1
  203. package/dist/src/core/install-executor.d.ts +31 -0
  204. package/dist/src/core/install-executor.d.ts.map +1 -0
  205. package/dist/src/core/install-executor.js +231 -0
  206. package/dist/src/core/install-executor.js.map +1 -0
  207. package/dist/src/core/install-profile.d.ts +103 -0
  208. package/dist/src/core/install-profile.d.ts.map +1 -0
  209. package/dist/src/core/install-profile.js +225 -0
  210. package/dist/src/core/install-profile.js.map +1 -0
  211. package/dist/src/graph/kg/credibility.d.ts +37 -0
  212. package/dist/src/graph/kg/credibility.d.ts.map +1 -0
  213. package/dist/src/graph/kg/credibility.js +141 -0
  214. package/dist/src/graph/kg/credibility.js.map +1 -0
  215. package/dist/src/graph/kg/db/connection.d.ts +28 -0
  216. package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
  217. package/dist/src/graph/kg/db/connection.js +142 -0
  218. package/dist/src/graph/kg/db/connection.js.map +1 -0
  219. package/dist/src/graph/kg/db/index.d.ts +5 -0
  220. package/dist/src/graph/kg/db/index.d.ts.map +1 -0
  221. package/dist/src/graph/kg/db/index.js +6 -0
  222. package/dist/src/graph/kg/db/index.js.map +1 -0
  223. package/dist/src/graph/kg/db/migrations.d.ts +8 -0
  224. package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
  225. package/dist/src/graph/kg/db/migrations.js +88 -0
  226. package/dist/src/graph/kg/db/migrations.js.map +1 -0
  227. package/dist/src/graph/kg/db/queries.d.ts +84 -0
  228. package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
  229. package/dist/src/graph/kg/db/queries.js +471 -0
  230. package/dist/src/graph/kg/db/queries.js.map +1 -0
  231. package/dist/src/graph/kg/db/types.d.ts +123 -0
  232. package/dist/src/graph/kg/db/types.d.ts.map +1 -0
  233. package/dist/src/graph/kg/db/types.js +75 -0
  234. package/dist/src/graph/kg/db/types.js.map +1 -0
  235. package/dist/src/graph/kg/engine.d.ts +87 -0
  236. package/dist/src/graph/kg/engine.d.ts.map +1 -0
  237. package/dist/src/graph/kg/engine.js +247 -0
  238. package/dist/src/graph/kg/engine.js.map +1 -0
  239. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +40 -0
  240. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
  241. package/dist/src/graph/kg/extraction/code/code-extractor.js +296 -0
  242. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
  243. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
  244. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
  245. package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
  246. package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
  247. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
  248. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
  249. package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
  250. package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
  251. package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
  252. package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
  253. package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
  254. package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
  255. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
  256. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
  257. package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
  258. package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
  259. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
  260. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
  261. package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
  262. package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
  263. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
  264. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
  265. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
  266. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
  267. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
  268. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
  269. package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
  270. package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
  271. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
  272. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
  273. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
  274. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
  275. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
  276. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
  277. package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
  278. package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
  279. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
  280. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
  281. package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
  282. package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
  283. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
  284. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
  285. package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
  286. package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
  287. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
  288. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
  289. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
  290. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
  291. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
  292. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
  293. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
  294. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
  295. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
  296. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
  297. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
  298. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
  299. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
  300. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
  301. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
  302. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
  303. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
  304. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
  305. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
  306. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
  307. package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
  308. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
  309. package/dist/src/graph/kg/extraction/orchestrator.js +208 -0
  310. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
  311. package/dist/src/graph/kg/index.d.ts +29 -0
  312. package/dist/src/graph/kg/index.d.ts.map +1 -0
  313. package/dist/src/graph/kg/index.js +35 -0
  314. package/dist/src/graph/kg/index.js.map +1 -0
  315. package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
  316. package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
  317. package/dist/src/graph/kg/query/context-builder.js +184 -0
  318. package/dist/src/graph/kg/query/context-builder.js.map +1 -0
  319. package/dist/src/graph/kg/query/index.d.ts +8 -0
  320. package/dist/src/graph/kg/query/index.d.ts.map +1 -0
  321. package/dist/src/graph/kg/query/index.js +6 -0
  322. package/dist/src/graph/kg/query/index.js.map +1 -0
  323. package/dist/src/graph/kg/query/scoring.d.ts +19 -0
  324. package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
  325. package/dist/src/graph/kg/query/scoring.js +158 -0
  326. package/dist/src/graph/kg/query/scoring.js.map +1 -0
  327. package/dist/src/graph/kg/query/search.d.ts +59 -0
  328. package/dist/src/graph/kg/query/search.d.ts.map +1 -0
  329. package/dist/src/graph/kg/query/search.js +158 -0
  330. package/dist/src/graph/kg/query/search.js.map +1 -0
  331. package/dist/src/graph/kg/query/traversal.d.ts +75 -0
  332. package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
  333. package/dist/src/graph/kg/query/traversal.js +420 -0
  334. package/dist/src/graph/kg/query/traversal.js.map +1 -0
  335. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
  336. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
  337. package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
  338. package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
  339. package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
  340. package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
  341. package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
  342. package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
  343. package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
  344. package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
  345. package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
  346. package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
  347. package/dist/src/graph/kg/resolution/index.d.ts +11 -0
  348. package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
  349. package/dist/src/graph/kg/resolution/index.js +7 -0
  350. package/dist/src/graph/kg/resolution/index.js.map +1 -0
  351. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
  352. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
  353. package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
  354. package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
  355. package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
  356. package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
  357. package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
  358. package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
  359. package/dist/src/graph/kg/schema.sql +210 -0
  360. package/dist/src/graph/kg/surface/cli.d.ts +3 -0
  361. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
  362. package/dist/src/graph/kg/surface/cli.js +500 -0
  363. package/dist/src/graph/kg/surface/cli.js.map +1 -0
  364. package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
  365. package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
  366. package/dist/src/graph/kg/surface/hook-injector.js +172 -0
  367. package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
  368. package/dist/src/graph/kg/surface/index.d.ts +6 -0
  369. package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
  370. package/dist/src/graph/kg/surface/index.js +5 -0
  371. package/dist/src/graph/kg/surface/index.js.map +1 -0
  372. package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
  373. package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
  374. package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
  375. package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
  376. package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
  377. package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
  378. package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
  379. package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
  380. package/dist/src/graph/kg/sync/index.d.ts +5 -0
  381. package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
  382. package/dist/src/graph/kg/sync/index.js +4 -0
  383. package/dist/src/graph/kg/sync/index.js.map +1 -0
  384. package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
  385. package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
  386. package/dist/src/graph/kg/sync/watch-policy.js +90 -0
  387. package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
  388. package/dist/src/hooks/constants.d.ts +0 -2
  389. package/dist/src/hooks/constants.d.ts.map +1 -1
  390. package/dist/src/hooks/constants.js +0 -2
  391. package/dist/src/hooks/constants.js.map +1 -1
  392. package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
  393. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
  394. package/dist/src/hooks/keyword-spec-injector.js +157 -81
  395. package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
  396. package/dist/src/hooks/kg-auto-init.d.ts +13 -0
  397. package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
  398. package/dist/src/hooks/kg-auto-init.js +38 -0
  399. package/dist/src/hooks/kg-auto-init.js.map +1 -0
  400. package/dist/src/hooks/kg-context-injector.d.ts +1 -3
  401. package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
  402. package/dist/src/hooks/kg-context-injector.js +12 -17
  403. package/dist/src/hooks/kg-context-injector.js.map +1 -1
  404. package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
  405. package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
  406. package/dist/src/hooks/kg-sync-hook.js +21 -90
  407. package/dist/src/hooks/kg-sync-hook.js.map +1 -1
  408. package/dist/src/hooks/spec-analytics.d.ts +1 -0
  409. package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
  410. package/dist/src/hooks/spec-analytics.js +1 -3
  411. package/dist/src/hooks/spec-analytics.js.map +1 -1
  412. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  413. package/dist/src/hooks/spec-injector.js +65 -1
  414. package/dist/src/hooks/spec-injector.js.map +1 -1
  415. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  416. package/dist/src/i18n/locales/en.js +52 -9
  417. package/dist/src/i18n/locales/en.js.map +1 -1
  418. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  419. package/dist/src/i18n/locales/zh.js +52 -9
  420. package/dist/src/i18n/locales/zh.js.map +1 -1
  421. package/dist/src/i18n/types.d.ts +40 -4
  422. package/dist/src/i18n/types.d.ts.map +1 -1
  423. package/dist/src/ralph/skill-scanner.d.ts.map +1 -1
  424. package/dist/src/ralph/skill-scanner.js +9 -3
  425. package/dist/src/ralph/skill-scanner.js.map +1 -1
  426. package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
  427. package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
  428. package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
  429. package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
  430. package/dist/src/tools/domain-loader.d.ts +63 -0
  431. package/dist/src/tools/domain-loader.d.ts.map +1 -0
  432. package/dist/src/tools/domain-loader.js +295 -0
  433. package/dist/src/tools/domain-loader.js.map +1 -0
  434. package/dist/src/tools/domain-matcher.d.ts +24 -0
  435. package/dist/src/tools/domain-matcher.d.ts.map +1 -0
  436. package/dist/src/tools/domain-matcher.js +117 -0
  437. package/dist/src/tools/domain-matcher.js.map +1 -0
  438. package/dist/src/tools/domain-scanner.d.ts +32 -0
  439. package/dist/src/tools/domain-scanner.d.ts.map +1 -0
  440. package/dist/src/tools/domain-scanner.js +263 -0
  441. package/dist/src/tools/domain-scanner.js.map +1 -0
  442. package/dist/src/tools/domain-schema.d.ts +18 -0
  443. package/dist/src/tools/domain-schema.d.ts.map +1 -0
  444. package/dist/src/tools/domain-schema.js +104 -0
  445. package/dist/src/tools/domain-schema.js.map +1 -0
  446. package/dist/src/tools/spec-entry-parser.d.ts +1 -0
  447. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
  448. package/dist/src/tools/spec-entry-parser.js +1 -0
  449. package/dist/src/tools/spec-entry-parser.js.map +1 -1
  450. package/dist/src/tools/spec-loader.d.ts +5 -0
  451. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  452. package/dist/src/tools/spec-loader.js +10 -2
  453. package/dist/src/tools/spec-loader.js.map +1 -1
  454. package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
  455. package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
  456. package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
  457. package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
  458. package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
  459. package/dist/src/tui/install-ui/GroupedHub.js +210 -0
  460. package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
  461. package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
  462. package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
  463. package/dist/src/tui/install-ui/HooksConfig.js +83 -18
  464. package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
  465. package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
  466. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  467. package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
  468. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  469. package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
  470. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  471. package/dist/src/tui/install-ui/InstallExecution.js +89 -260
  472. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  473. package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
  474. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  475. package/dist/src/tui/install-ui/InstallFlow.js +45 -267
  476. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  477. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  478. package/dist/src/tui/install-ui/InstallHub.js +2 -4
  479. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  480. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  481. package/dist/src/tui/install-ui/InstallResult.js +1 -5
  482. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  483. package/dist/src/tui/install-ui/index.d.ts +5 -1
  484. package/dist/src/tui/install-ui/index.d.ts.map +1 -1
  485. package/dist/src/tui/install-ui/index.js +1 -0
  486. package/dist/src/tui/install-ui/index.js.map +1 -1
  487. package/dist/src/tui/install-ui/types.d.ts +39 -0
  488. package/dist/src/tui/install-ui/types.d.ts.map +1 -1
  489. package/dist/src/tui/install-ui/types.js +1 -1
  490. package/dist/src/tui/install-ui/types.js.map +1 -1
  491. package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
  492. package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
  493. package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
  494. package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
  495. package/dist/src/tui/shared/components.d.ts +4 -0
  496. package/dist/src/tui/shared/components.d.ts.map +1 -1
  497. package/dist/src/tui/shared/components.js +4 -0
  498. package/dist/src/tui/shared/components.js.map +1 -1
  499. package/dist/src/tui/shared/index.d.ts +1 -1
  500. package/dist/src/tui/shared/index.d.ts.map +1 -1
  501. package/dist/src/tui/shared/index.js +1 -1
  502. package/dist/src/tui/shared/index.js.map +1 -1
  503. package/dist/src/tui/shared/tokens.d.ts +5 -5
  504. package/dist/src/tui/shared/tokens.js +5 -5
  505. package/dist/src/tui/shared/tokens.js.map +1 -1
  506. package/dist/src/types/index.d.ts +9 -0
  507. package/dist/src/types/index.d.ts.map +1 -1
  508. package/dist/src/utils/cli-format.d.ts +2 -1
  509. package/dist/src/utils/cli-format.d.ts.map +1 -1
  510. package/dist/src/utils/cli-format.js +14 -3
  511. package/dist/src/utils/cli-format.js.map +1 -1
  512. package/dist/src/utils/cooldown-guard.d.ts +17 -0
  513. package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
  514. package/dist/src/utils/cooldown-guard.js +59 -0
  515. package/dist/src/utils/cooldown-guard.js.map +1 -0
  516. package/dist/src/utils/jsonl-log.d.ts.map +1 -1
  517. package/dist/src/utils/jsonl-log.js +2 -1
  518. package/dist/src/utils/jsonl-log.js.map +1 -1
  519. package/dist/src/utils/update-notices.js +17 -4
  520. package/dist/src/utils/update-notices.js.map +1 -1
  521. package/package.json +4 -5
  522. package/workflows/claude-instructions.md +23 -0
  523. package/workflows/codex-instructions.md +22 -0
  524. package/workflows/finish-work.md +25 -0
  525. package/workflows/updates/update-v3-setup.md +7 -15
  526. package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
  527. package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
  528. package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
  529. package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
  530. package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
@@ -4,6 +4,7 @@ import { Box, Text, useInput } from 'ink';
4
4
  import { McpConfig } from './McpConfig.js';
5
5
  import { HooksConfig } from './HooksConfig.js';
6
6
  import { BackupConfig } from './BackupConfig.js';
7
+ import { getHooksForLevel } from '../../commands/hooks.js';
7
8
  import { C, BORDER } from '../shared/index.js';
8
9
  const TABS = ['MCP', 'Hooks', 'Backup'];
9
10
  export function ConfigPanel({ config, onConfigChange, onDone, onBack, existingManifest, }) {
@@ -31,6 +32,13 @@ export function ConfigPanel({ config, onConfigChange, onDone, onBack, existingMa
31
32
  return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, color: C.primary, children: "Configuration" }), _jsx(Box, { marginTop: 1, gap: 2, children: TABS.map((tab, i) => {
32
33
  const isActive = i === activeTab;
33
34
  return (_jsx(Text, { color: isActive ? C.primary : C.neutral, bold: isActive, children: isActive ? `[${tab}]` : ` ${tab} ` }, tab));
34
- }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, ...BORDER.detail, paddingX: 1, children: [activeTab === 0 && (_jsx(McpConfig, { enabled: config.mcpEnabled, tools: config.mcpTools, projectRoot: config.mcpProjectRoot, mode: config.mode, onEnableChange: (v) => onConfigChange({ mcpEnabled: v }), onToolsChange: (tools) => onConfigChange({ mcpTools: tools }), onRootChange: (root) => onConfigChange({ mcpProjectRoot: root }) })), activeTab === 1 && (_jsx(HooksConfig, { level: config.hookLevel, onLevelChange: (level) => onConfigChange({ hookLevel: level }) })), activeTab === 2 && (_jsx(BackupConfig, { backupClaudeMd: config.backupClaudeMd, backupAll: config.backupAll, existingFileCount: 0, onClaudeMdChange: (v) => onConfigChange({ backupClaudeMd: v }), onAllChange: (v) => onConfigChange({ backupAll: v }) }))] })] }));
35
+ }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, ...BORDER.detail, paddingX: 1, children: [activeTab === 0 && (_jsx(McpConfig, { enabled: config.mcpEnabled, tools: config.mcpTools, projectRoot: config.mcpProjectRoot, mode: config.mode, onEnableChange: (v) => onConfigChange({ mcpEnabled: v }), onToolsChange: (tools) => onConfigChange({ mcpTools: tools }), onRootChange: (root) => onConfigChange({ mcpProjectRoot: root }) })), activeTab === 1 && (_jsx(HooksConfig, { selection: config.hooksSelection ?? {
36
+ basePreset: config.hookLevel,
37
+ selectedHooks: getHooksForLevel(config.hookLevel, 'claude'),
38
+ isCustom: false,
39
+ }, onSelectionChange: (sel) => onConfigChange({
40
+ hookLevel: sel.basePreset,
41
+ hooksSelection: sel,
42
+ }), tool: "claude" })), activeTab === 2 && (_jsx(BackupConfig, { backupClaudeMd: config.backupClaudeMd, backupAll: config.backupAll, existingFileCount: 0, onClaudeMdChange: (v) => onConfigChange({ backupClaudeMd: v }), onAllChange: (v) => onConfigChange({ backupAll: v }) }))] })] }));
35
43
  }
36
44
  //# sourceMappingURL=ConfigPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigPanel.js","sourceRoot":"","sources":["../../../../src/tui/install-ui/ConfigPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigPanel.js","sourceRoot":"","sources":["../../../../src/tui/install-ui/ConfigPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { type HookLevel } from '../../commands/hooks.js';
2
+ export interface HubItem {
3
+ id: string;
4
+ label: string;
5
+ enabled: boolean;
6
+ summary: string;
7
+ /** Shown in right-side detail panel when focused */
8
+ detail?: string;
9
+ }
10
+ export interface HubGroup {
11
+ id: string;
12
+ title: string;
13
+ items: HubItem[];
14
+ }
15
+ interface GroupedHubProps {
16
+ groups: HubGroup[];
17
+ mode: 'global' | 'project';
18
+ onModeChange: (mode: 'global' | 'project') => void;
19
+ onToggle: (id: string) => void;
20
+ onEnter: (id: string) => void;
21
+ onInstall: () => void;
22
+ onExport: () => void;
23
+ onImport: () => void;
24
+ onExit: () => void;
25
+ /** Date string from last manifest, e.g. "2026-06-15" */
26
+ lastInstallDate?: string | null;
27
+ }
28
+ export declare function GroupedHub({ groups, mode, onModeChange, onToggle, onEnter, onInstall, onExport, onImport, onExit, lastInstallDate, }: GroupedHubProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function buildGroupedHubItems(enabled: Record<string, boolean>, summaries: {
30
+ componentCount: number;
31
+ fileCount: number;
32
+ hookLevel: HookLevel;
33
+ hookSelectedCount?: number;
34
+ hookTotalCount?: number;
35
+ hookIsCustom?: boolean;
36
+ mcpToolCount: number;
37
+ mcpEnabled: boolean;
38
+ codexHookLevel: HookLevel;
39
+ codexMcpToolCount: number;
40
+ codexMcpEnabled: boolean;
41
+ codexHookSelectedCount?: number;
42
+ codexHookTotalCount?: number;
43
+ codexHookIsCustom?: boolean;
44
+ agyHookLevel: HookLevel;
45
+ agyHookSelectedCount?: number;
46
+ agyHookTotalCount?: number;
47
+ agyHookIsCustom?: boolean;
48
+ extraMcpTargetCount: number;
49
+ statuslineDetected: string | null;
50
+ statuslineTheme?: string;
51
+ backupClaudeMd: boolean;
52
+ backupAll: boolean;
53
+ }): HubGroup[];
54
+ export {};
55
+ //# sourceMappingURL=GroupedHub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupedHub.d.ts","sourceRoot":"","sources":["../../../../src/tui/install-ui/GroupedHub.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAazD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AASD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EAAE,IAAI,EAAE,YAAY,EAC1B,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EACxD,eAAe,GAChB,EAAE,eAAe,2CA0KjB;AAMD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,EAAE;IACT,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAC5E,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAC1C,cAAc,EAAE,SAAS,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC3F,YAAY,EAAE,SAAS,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACrF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;CAC7C,GACA,QAAQ,EAAE,CA4GZ"}
@@ -0,0 +1,210 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useMemo } from 'react';
3
+ import { Box, Text, useInput } from 'ink';
4
+ import { t } from '../../i18n/index.js';
5
+ import { C, SYM, SP, wrapCursor, parseNumberKey, KeyHints } from '../shared/index.js';
6
+ export function GroupedHub({ groups, mode, onModeChange, onToggle, onEnter, onInstall, onExport, onImport, onExit, lastInstallDate, }) {
7
+ const flat = useMemo(() => {
8
+ const entries = [];
9
+ groups.forEach((g, gi) => {
10
+ g.items.forEach((item, ii) => {
11
+ entries.push({ type: 'item', groupIdx: gi, itemIdx: ii, item });
12
+ });
13
+ });
14
+ return entries;
15
+ }, [groups]);
16
+ const totalRows = flat.length + 3; // items + Install + Export + Import
17
+ const [cursor, setCursor] = useState(0);
18
+ const groupStartIndices = useMemo(() => {
19
+ const starts = [];
20
+ let idx = 0;
21
+ groups.forEach((g) => {
22
+ starts.push(idx);
23
+ idx += g.items.length;
24
+ });
25
+ return starts;
26
+ }, [groups]);
27
+ const jumpNextGroup = () => {
28
+ const currentGroupIdx = cursor < flat.length
29
+ ? flat[cursor].groupIdx
30
+ : groups.length - 1;
31
+ const nextGroupIdx = (currentGroupIdx + 1) % groups.length;
32
+ setCursor(groupStartIndices[nextGroupIdx]);
33
+ };
34
+ useInput((input, key) => {
35
+ if (key.upArrow) {
36
+ setCursor((i) => wrapCursor(i, -1, totalRows));
37
+ }
38
+ else if (key.downArrow) {
39
+ setCursor((i) => wrapCursor(i, 1, totalRows));
40
+ }
41
+ else if (key.tab) {
42
+ jumpNextGroup();
43
+ }
44
+ else if (key.return) {
45
+ if (cursor < flat.length) {
46
+ onEnter(flat[cursor].item.id);
47
+ }
48
+ else if (cursor === flat.length) {
49
+ onInstall();
50
+ }
51
+ else if (cursor === flat.length + 1) {
52
+ onExport();
53
+ }
54
+ else if (cursor === flat.length + 2) {
55
+ onImport();
56
+ }
57
+ }
58
+ else if (input === ' ' && cursor < flat.length) {
59
+ onToggle(flat[cursor].item.id);
60
+ }
61
+ else if (input === 'g' || input === 'G') {
62
+ onModeChange('global');
63
+ }
64
+ else if (input === 'p' || input === 'P') {
65
+ onModeChange('project');
66
+ }
67
+ else if (input === 'e' || input === 'E') {
68
+ onExport();
69
+ }
70
+ else if (input === 'i' || input === 'I') {
71
+ onImport();
72
+ }
73
+ else if (key.escape) {
74
+ onExit();
75
+ }
76
+ else {
77
+ const idx = parseNumberKey(input, flat.length);
78
+ if (idx !== null) {
79
+ onToggle(flat[idx].item.id);
80
+ }
81
+ }
82
+ });
83
+ const focusedItem = cursor < flat.length ? flat[cursor].item : null;
84
+ // Pre-compute flat index for each entry to avoid mutable counter in render
85
+ const flatIndexMap = useMemo(() => {
86
+ const map = new Map();
87
+ flat.forEach((entry, i) => map.set(`${entry.groupIdx}-${entry.itemIdx}`, i));
88
+ return map;
89
+ }, [flat]);
90
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { bold: true, color: C.primary, children: [t.install.hubScope, " "] }), _jsxs(Text, { color: mode === 'global' ? C.success : C.neutral, bold: mode === 'global', children: [mode === 'global' ? '● ' : '○ ', t.install.hubGlobal] }), _jsx(Text, { children: " " }), _jsxs(Text, { color: mode === 'project' ? C.success : C.neutral, bold: mode === 'project', children: [mode === 'project' ? '● ' : '○ ', t.install.hubProject] }), _jsx(Text, { dimColor: true, children: " [g/p]" }), lastInstallDate && (_jsxs(Text, { dimColor: true, children: [" ", t.install.hubLastInstall.replace('{date}', lastInstallDate)] }))] }), _jsxs(Box, { marginTop: SP.sectionGap, children: [_jsxs(Box, { flexDirection: "column", width: 44, children: [groups.map((group, gi) => {
91
+ const groupItems = flat.filter((e) => e.groupIdx === gi);
92
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: C.neutral, dimColor: true, children: ['─'.repeat(2), " ", group.title, " ", '─'.repeat(Math.max(0, 36 - group.title.length))] }), groupItems.map((entry) => {
93
+ const idx = flatIndexMap.get(`${entry.groupIdx}-${entry.itemIdx}`) ?? 0;
94
+ const hl = cursor === idx;
95
+ const item = entry.item;
96
+ return (_jsxs(Box, { children: [_jsx(Text, { color: hl ? C.primary : C.neutral, children: " " }), _jsx(Text, { color: item.enabled ? (hl ? C.successBright : C.success) : C.neutral, children: item.enabled ? SYM.checkOn : SYM.checkOff }), _jsx(Text, { children: " " }), _jsx(Text, { color: hl ? C.primary : undefined, bold: hl, children: item.label.padEnd(16) }), _jsx(Text, { dimColor: true, children: item.enabled ? item.summary : '—' })] }, item.id));
97
+ }), _jsx(Text, { children: " " })] }, group.id));
98
+ }), _jsxs(Box, { flexDirection: "column", marginTop: 0, children: [_jsxs(Text, { color: cursor === flat.length ? C.successBright : C.neutral, bold: cursor === flat.length, children: [cursor === flat.length ? SYM.cursor : ' ', " ", t.install.hubExecuteInstall] }), _jsxs(Text, { color: cursor === flat.length + 1 ? C.primary : C.neutral, bold: cursor === flat.length + 1, children: [cursor === flat.length + 1 ? SYM.cursor : ' ', " ", t.install.hubExportConfig, " [e]"] }), _jsxs(Text, { color: cursor === flat.length + 2 ? C.primary : C.neutral, bold: cursor === flat.length + 2, children: [cursor === flat.length + 2 ? SYM.cursor : ' ', " ", t.install.hubImportConfig, " [i]"] })] })] }), focusedItem?.detail && (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: C.neutral, paddingX: 1, width: 30, marginLeft: 2, children: [_jsx(Text, { bold: true, color: C.primary, children: focusedItem.label }), _jsx(Text, { dimColor: true, wrap: "wrap", children: focusedItem.detail })] }))] }), _jsx(KeyHints, { hints: t.install.hubKeyHints })] }));
99
+ }
100
+ // ---------------------------------------------------------------------------
101
+ // Helper to build grouped hub items from config state
102
+ // ---------------------------------------------------------------------------
103
+ export function buildGroupedHubItems(enabled, summaries) {
104
+ const hookSummary = (level, selCount, totalCount, isCustom) => {
105
+ if (isCustom && selCount != null && totalCount != null) {
106
+ return `custom (${selCount}/${totalCount})`;
107
+ }
108
+ if (selCount != null && totalCount != null) {
109
+ return `${level} (${selCount}/${totalCount})`;
110
+ }
111
+ return level;
112
+ };
113
+ const backupSummary = summaries.backupAll
114
+ ? t.install.backupAllLabel
115
+ : summaries.backupClaudeMd
116
+ ? t.install.backupClaudeMdLabel
117
+ : '—';
118
+ return [
119
+ {
120
+ id: 'core',
121
+ title: t.install.groupCore,
122
+ items: [
123
+ {
124
+ id: 'components',
125
+ label: t.install.hubLabelComponents,
126
+ enabled: enabled.components,
127
+ summary: `${summaries.componentCount} sel · ${summaries.fileCount}f`,
128
+ detail: t.install.hubDetailComponents.replace('{count}', String(summaries.componentCount)).replace('{files}', String(summaries.fileCount)),
129
+ },
130
+ {
131
+ id: 'backup',
132
+ label: t.install.hubLabelBackup,
133
+ enabled: enabled.backup,
134
+ summary: backupSummary,
135
+ detail: t.install.hubDetailBackup,
136
+ },
137
+ ],
138
+ },
139
+ {
140
+ id: 'claude',
141
+ title: t.install.groupClaude,
142
+ items: [
143
+ {
144
+ id: 'hooks',
145
+ label: t.install.hubLabelHooks,
146
+ enabled: enabled.hooks,
147
+ summary: hookSummary(summaries.hookLevel, summaries.hookSelectedCount, summaries.hookTotalCount, summaries.hookIsCustom),
148
+ detail: t.install.hubDetailHooks.replace('{level}', summaries.hookLevel),
149
+ },
150
+ {
151
+ id: 'mcp',
152
+ label: t.install.hubLabelMcpServer,
153
+ enabled: enabled.mcp,
154
+ summary: summaries.mcpEnabled ? t.install.hubTools.replace('{count}', String(summaries.mcpToolCount)) : '—',
155
+ detail: t.install.hubDetailMcp,
156
+ },
157
+ {
158
+ id: 'statusline',
159
+ label: t.install.hubLabelStatusline,
160
+ enabled: enabled.statusline,
161
+ summary: summaries.statuslineDetected
162
+ ? t.install.statuslineDetected.replace('{cmd}', summaries.statuslineDetected)
163
+ : (summaries.statuslineTheme || 'notion'),
164
+ detail: t.install.hubDetailStatusline.replace('{theme}', summaries.statuslineTheme || 'notion'),
165
+ },
166
+ ],
167
+ },
168
+ {
169
+ id: 'codex',
170
+ title: t.install.groupCodex,
171
+ items: [
172
+ {
173
+ id: 'codexHooks',
174
+ label: t.install.hubLabelCodexHooks,
175
+ enabled: enabled.codexHooks,
176
+ summary: hookSummary(summaries.codexHookLevel, summaries.codexHookSelectedCount, summaries.codexHookTotalCount, summaries.codexHookIsCustom),
177
+ detail: t.install.hubDetailCodexHooks,
178
+ },
179
+ {
180
+ id: 'codexMcp',
181
+ label: t.install.hubLabelCodexMcp,
182
+ enabled: enabled.codexMcp,
183
+ summary: summaries.codexMcpEnabled ? t.install.hubTools.replace('{count}', String(summaries.codexMcpToolCount)) : '—',
184
+ detail: t.install.hubDetailCodexMcp,
185
+ },
186
+ ],
187
+ },
188
+ {
189
+ id: 'other',
190
+ title: t.install.groupOther,
191
+ items: [
192
+ {
193
+ id: 'agyHooks',
194
+ label: t.install.hubLabelAgyHooks,
195
+ enabled: enabled.agyHooks,
196
+ summary: hookSummary(summaries.agyHookLevel, summaries.agyHookSelectedCount, summaries.agyHookTotalCount, summaries.agyHookIsCustom),
197
+ detail: t.install.hubDetailAgyHooks,
198
+ },
199
+ {
200
+ id: 'extraMcp',
201
+ label: t.install.hubLabelExtraMcp,
202
+ enabled: enabled.extraMcp,
203
+ summary: summaries.extraMcpTargetCount > 0 ? `${summaries.extraMcpTargetCount} targets` : '0 targets',
204
+ detail: t.install.hubDetailExtraMcp,
205
+ },
206
+ ],
207
+ },
208
+ ];
209
+ }
210
+ //# sourceMappingURL=GroupedHub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupedHub.js","sourceRoot":"","sources":["../../../../src/tui/install-ui/GroupedHub.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE1C,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA+CtF,MAAM,UAAU,UAAU,CAAC,EACzB,MAAM,EAAE,IAAI,EAAE,YAAY,EAC1B,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EACxD,eAAe,GACC;IAChB,MAAM,IAAI,GAAG,OAAO,CAAc,GAAG,EAAE;QACrC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACvB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,oCAAoC;IACvE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM;YAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;YACvB,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,MAAM,YAAY,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3D,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACnB,aAAa,EAAE,CAAC;QAClB,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClC,SAAS,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,QAAQ,EAAE,CAAC;YACb,CAAC;iBAAM,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1C,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1C,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1C,QAAQ,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC1C,QAAQ,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpE,2EAA2E;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,CAAC,CAAC,OAAO,aAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,SAAS,EACzD,MAAC,IAAI,IAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,aAC5E,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAChD,EACP,KAAC,IAAI,qBAAU,EACf,MAAC,IAAI,IAAC,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,aAC9E,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAClD,EACP,KAAC,IAAI,IAAC,QAAQ,8BAAe,EAC5B,eAAe,IAAI,CAClB,MAAC,IAAI,IAAC,QAAQ,yBAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAQ,CACtF,IACG,EAGN,MAAC,GAAG,IAAC,SAAS,EAAE,EAAE,CAAC,UAAU,aAE3B,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,aAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gCACxB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;gCACzD,OAAO,CACL,MAAC,GAAG,IAAgB,aAAa,EAAC,QAAQ,aACxC,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,mBAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAG,KAAK,CAAC,KAAK,OAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAQ,EACvH,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4CACxB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;4CACxE,MAAM,EAAE,GAAG,MAAM,KAAK,GAAG,CAAC;4CAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;4CACxB,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,kBAAU,EACjD,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,YACvE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GACrC,EACP,KAAC,IAAI,oBAAS,EACd,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GACjB,EACP,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAQ,KATjD,IAAI,CAAC,EAAE,CAUX,CACP,CAAC;wCACJ,CAAC,CAAC,EACF,KAAC,IAAI,oBAAS,KApBN,KAAK,CAAC,EAAE,CAqBZ,CACP,CAAC;4BACJ,CAAC,CAAC,EAGF,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,MAAC,IAAI,IACH,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAC3D,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,aAE3B,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,IACnE,EACP,MAAC,IAAI,IACH,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EACzD,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,aAE/B,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAG,CAAC,CAAC,OAAO,CAAC,eAAe,aACrE,EACP,MAAC,IAAI,IACH,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EACzD,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,aAE/B,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAG,CAAC,CAAC,OAAO,CAAC,eAAe,aACrE,IACH,IACF,EAGL,WAAW,EAAE,MAAM,IAAI,CACtB,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,CAAC,CAAC,OAAO,EACtB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,EAAE,EACT,UAAU,EAAE,CAAC,aAEb,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,CAAC,CAAC,OAAO,YAAG,WAAW,CAAC,KAAK,GAAQ,EACvD,KAAC,IAAI,IAAC,QAAQ,QAAC,IAAI,EAAC,MAAM,YAAE,WAAW,CAAC,MAAM,GAAQ,IAClD,CACP,IACG,EAEN,KAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,GAAI,IACtC,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAClC,OAAgC,EAChC,SAYC;IAED,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,QAAiB,EAAE,UAAmB,EAAE,QAAkB,EAAE,EAAE;QACnG,IAAI,QAAQ,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvD,OAAO,WAAW,QAAQ,IAAI,UAAU,GAAG,CAAC;QAC9C,CAAC;QACD,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YAC3C,OAAO,GAAG,KAAK,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS;QACvC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;QAC1B,CAAC,CAAC,SAAS,CAAC,cAAc;YACxB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB;YAC/B,CAAC,CAAC,GAAG,CAAC;IAEV,OAAO;QACL;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;YAC1B,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,YAAY;oBAChB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB;oBACnC,OAAO,EAAE,OAAO,CAAC,UAAU;oBAC3B,OAAO,EAAE,GAAG,SAAS,CAAC,cAAc,UAAU,SAAS,CAAC,SAAS,GAAG;oBACpE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;iBAC3I;gBACD;oBACE,EAAE,EAAE,QAAQ;oBACZ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc;oBAC/B,OAAO,EAAE,OAAO,CAAC,MAAM;oBACvB,OAAO,EAAE,aAAa;oBACtB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe;iBAClC;aACF;SACF;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;YAC5B,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,OAAO;oBACX,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa;oBAC9B,OAAO,EAAE,OAAO,CAAC,KAAK;oBACtB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,YAAY,CAAC;oBACxH,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;iBACzE;gBACD;oBACE,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB;oBAClC,OAAO,EAAE,OAAO,CAAC,GAAG;oBACpB,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;oBAC3G,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;iBAC/B;gBACD;oBACE,EAAE,EAAE,YAAY;oBAChB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB;oBACnC,OAAO,EAAE,OAAO,CAAC,UAAU;oBAC3B,OAAO,EAAE,SAAS,CAAC,kBAAkB;wBACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC;wBAC7E,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,IAAI,QAAQ,CAAC;oBAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,eAAe,IAAI,QAAQ,CAAC;iBAChG;aACF;SACF;QACD;YACE,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;YAC3B,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,YAAY;oBAChB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB;oBACnC,OAAO,EAAE,OAAO,CAAC,UAAU;oBAC3B,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,sBAAsB,EAAE,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,iBAAiB,CAAC;oBAC5I,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB;iBACtC;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB;oBACjC,OAAO,EAAE,OAAO,CAAC,QAAQ;oBACzB,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;oBACrH,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB;iBACpC;aACF;SACF;QACD;YACE,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;YAC3B,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB;oBACjC,OAAO,EAAE,OAAO,CAAC,QAAQ;oBACzB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,oBAAoB,EAAE,SAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,eAAe,CAAC;oBACpI,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB;iBACpC;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB;oBACjC,OAAO,EAAE,OAAO,CAAC,QAAQ;oBACzB,OAAO,EAAE,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,mBAAmB,UAAU,CAAC,CAAC,CAAC,WAAW;oBACrG,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB;iBACpC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,12 +1,17 @@
1
1
  import { type HookLevel } from '../../commands/hooks.js';
2
+ export interface HooksSelection {
3
+ basePreset: HookLevel;
4
+ selectedHooks: string[];
5
+ isCustom: boolean;
6
+ }
2
7
  interface HooksConfigProps {
3
- level: HookLevel;
4
- onLevelChange: (level: HookLevel) => void;
5
- /** Override section title (default: t.install.hooksTitle for Claude). */
8
+ selection: HooksSelection;
9
+ onSelectionChange: (sel: HooksSelection) => void;
6
10
  title?: string;
7
- /** Override per-level descriptions (default: Claude). Codex/Agy pass their own. */
8
11
  descriptions?: Record<string, string>;
12
+ /** Which tool's hook defs to use */
13
+ tool?: 'claude' | 'codex' | 'agy';
9
14
  }
10
- export declare function HooksConfig({ level, onLevelChange, title, descriptions }: HooksConfigProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function HooksConfig({ selection, onSelectionChange, title, descriptions, tool, }: HooksConfigProps): import("react/jsx-runtime").JSX.Element;
11
16
  export {};
12
17
  //# sourceMappingURL=HooksConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HooksConfig.d.ts","sourceRoot":"","sources":["../../../../src/tui/install-ui/HooksConfig.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,yBAAyB,CAAC;AASjC,UAAU,gBAAgB;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,gBAAgB,2CAsD1F"}
1
+ {"version":3,"file":"HooksConfig.d.ts","sourceRoot":"","sources":["../../../../src/tui/install-ui/HooksConfig.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,yBAAyB,CAAC;AAYjC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,oCAAoC;IACpC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;CACnC;AAkBD,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,YAAY,EAAE,IAAe,GACrC,EAAE,gBAAgB,2CA4IlB"}
@@ -1,37 +1,102 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from 'react';
2
+ import { useState, useMemo, useCallback } from 'react';
3
3
  import { Box, Text, useInput } from 'ink';
4
- import { HOOK_LEVELS, } from '../../commands/hooks.js';
4
+ import { HOOK_LEVELS, HOOK_DEFS, CODEX_HOOK_DEFS, AGY_HOOK_DEFS, getHooksForLevel, } from '../../commands/hooks.js';
5
5
  import { t } from '../../i18n/index.js';
6
- import { C, SYM, SP, wrapCursor, parseNumberKey, KeyHints, SectionHeader } from '../shared/index.js';
7
- export function HooksConfig({ level, onLevelChange, title, descriptions }) {
8
- const [index, setIndex] = useState(() => HOOK_LEVELS.indexOf(level));
6
+ import { C, SYM, SP, wrapCursor, KeyHints, SectionHeader } from '../shared/index.js';
7
+ function groupByEvent(entries) {
8
+ const map = new Map();
9
+ for (const e of entries) {
10
+ const list = map.get(e.event) ?? [];
11
+ list.push(e);
12
+ map.set(e.event, list);
13
+ }
14
+ return Array.from(map.entries()).map(([event, hooks]) => ({ event, hooks }));
15
+ }
16
+ export function HooksConfig({ selection, onSelectionChange, title, descriptions, tool = 'claude', }) {
9
17
  const descMap = descriptions ?? t.install.hooksLevelDescriptions;
10
18
  const sectionTitle = title ?? t.install.hooksTitle;
19
+ const defs = tool === 'codex' ? CODEX_HOOK_DEFS
20
+ : tool === 'agy' ? AGY_HOOK_DEFS
21
+ : HOOK_DEFS;
22
+ const allHooks = useMemo(() => Object.entries(defs).map(([name, def]) => ({
23
+ name,
24
+ event: def.event,
25
+ level: def.level,
26
+ })), [defs]);
27
+ const eventGroups = useMemo(() => groupByEvent(allHooks), [allHooks]);
28
+ // Navigation: 4 preset rows + individual hook rows
29
+ const hookCount = allHooks.length;
30
+ const totalRows = HOOK_LEVELS.length + hookCount;
31
+ const [cursor, setCursor] = useState(Math.max(0, HOOK_LEVELS.indexOf(selection.basePreset)));
32
+ const isInPresetZone = cursor < HOOK_LEVELS.length;
33
+ const hookIndex = cursor - HOOK_LEVELS.length;
34
+ const applyPreset = useCallback((level) => {
35
+ const hooks = getHooksForLevel(level, tool);
36
+ onSelectionChange({ basePreset: level, selectedHooks: hooks, isCustom: false });
37
+ }, [tool, onSelectionChange]);
38
+ const toggleHook = useCallback((hookName) => {
39
+ const next = selection.selectedHooks.includes(hookName)
40
+ ? selection.selectedHooks.filter((h) => h !== hookName)
41
+ : [...selection.selectedHooks, hookName];
42
+ onSelectionChange({ ...selection, selectedHooks: next, isCustom: true });
43
+ }, [selection, onSelectionChange]);
11
44
  useInput((input, key) => {
12
45
  if (key.upArrow) {
13
- setIndex((i) => wrapCursor(i, -1, HOOK_LEVELS.length));
46
+ setCursor((i) => wrapCursor(i, -1, totalRows));
14
47
  }
15
48
  else if (key.downArrow) {
16
- setIndex((i) => wrapCursor(i, 1, HOOK_LEVELS.length));
49
+ setCursor((i) => wrapCursor(i, 1, totalRows));
17
50
  }
18
51
  else if (input === ' ') {
19
- onLevelChange(HOOK_LEVELS[index]);
52
+ if (isInPresetZone) {
53
+ applyPreset(HOOK_LEVELS[cursor]);
54
+ }
55
+ else {
56
+ toggleHook(allHooks[hookIndex].name);
57
+ }
58
+ }
59
+ else if (input === 'a' || input === 'A') {
60
+ applyPreset('full');
61
+ }
62
+ else if (input === 'n' || input === 'N') {
63
+ applyPreset('none');
20
64
  }
21
65
  else {
22
- const idx = parseNumberKey(input, HOOK_LEVELS.length);
23
- if (idx !== null) {
24
- setIndex(idx);
25
- onLevelChange(HOOK_LEVELS[idx]);
66
+ const num = parseInt(input, 10);
67
+ if (!isNaN(num) && num >= 1 && num <= 4) {
68
+ const level = HOOK_LEVELS[num - 1];
69
+ setCursor(num - 1);
70
+ applyPreset(level);
26
71
  }
27
72
  }
28
73
  });
29
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: sectionTitle }), _jsx(Box, { flexDirection: "column", marginTop: SP.sectionGap, children: HOOK_LEVELS.map((lvl, i) => {
30
- const isActive = lvl === level;
31
- const isHighlighted = i === index;
74
+ const { selectedHooks, isCustom, basePreset } = selection;
75
+ // Status line
76
+ const statusText = isCustom
77
+ ? t.install.hooksCustomStatus.replace('{preset}', basePreset).replace('{count}', String(selectedHooks.length)).replace('{total}', String(hookCount))
78
+ : t.install.hooksPresetStatus.replace('{preset}', basePreset).replace('{count}', String(selectedHooks.length)).replace('{total}', String(hookCount));
79
+ // Pre-compute flat index for each hook to avoid mutable counter in render
80
+ const hookFlatIndexMap = useMemo(() => {
81
+ const map = new Map();
82
+ let idx = 0;
83
+ for (const group of eventGroups) {
84
+ for (const hook of group.hooks) {
85
+ map.set(hook.name, idx++);
86
+ }
87
+ }
88
+ return map;
89
+ }, [eventGroups]);
90
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: sectionTitle }), _jsx(Box, { marginTop: SP.sectionGap, gap: 2, children: HOOK_LEVELS.map((lvl, i) => {
91
+ const isActive = lvl === basePreset && !isCustom;
92
+ const hl = cursor === i;
32
93
  const label = lvl.charAt(0).toUpperCase() + lvl.slice(1);
33
- const desc = descMap[lvl];
34
- return (_jsxs(Box, { children: [_jsxs(Text, { color: isHighlighted ? C.primary : C.neutral, children: ["[", i + 1, "]"] }), _jsxs(Text, { color: isActive ? C.success : C.neutral, children: [' ', isActive ? SYM.radioOn : SYM.radioOff, ' '] }), _jsx(Text, { color: isHighlighted ? C.primary : undefined, bold: isHighlighted, children: label }), _jsxs(Text, { dimColor: true, children: [" -- ", desc] })] }, lvl));
35
- }) }), _jsx(KeyHints, { hints: `[↑↓] Navigate [Space/1-${HOOK_LEVELS.length}] Select [Enter] Done [Esc] Back` })] }));
94
+ return (_jsxs(Box, { children: [_jsx(Text, { color: isActive ? C.success : C.neutral, children: isActive ? SYM.radioOn : SYM.radioOff }), _jsxs(Text, { color: hl ? C.primary : C.neutral, children: [" ", i + 1, " "] }), _jsx(Text, { color: hl ? C.primary : undefined, bold: hl, children: label })] }, lvl));
95
+ }) }), _jsxs(Box, { flexDirection: "column", marginTop: SP.sectionGap, children: [_jsxs(Text, { color: C.neutral, dimColor: true, children: [''.repeat(2), " ", t.install.hooksIndividual, " ", ''.repeat(30)] }), eventGroups.map((group) => (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: C.neutral, dimColor: true, children: [" ", group.event] }), group.hooks.map((hook) => {
96
+ const idx = HOOK_LEVELS.length + (hookFlatIndexMap.get(hook.name) ?? 0);
97
+ const hl = cursor === idx;
98
+ const checked = selectedHooks.includes(hook.name);
99
+ return (_jsxs(Box, { children: [_jsx(Text, { color: hl ? C.primary : undefined, children: " " }), _jsx(Text, { color: checked ? (hl ? C.successBright : C.success) : C.neutral, children: checked ? SYM.checkOn : SYM.checkOff }), _jsxs(Text, { color: hl ? C.primary : undefined, bold: hl, children: [' ', hook.name.padEnd(24)] }), _jsx(Text, { dimColor: true, children: hook.level })] }, hook.name));
100
+ })] }, group.event)))] }), _jsxs(Box, { marginTop: SP.sectionGap, children: [_jsx(Text, { dimColor: true, children: "Level: " }), _jsx(Text, { color: isCustom ? C.warning : C.success, children: statusText })] }), _jsx(KeyHints, { hints: t.install.hooksKeyHints })] }));
36
101
  }
37
102
  //# sourceMappingURL=HooksConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HooksConfig.js","sourceRoot":"","sources":["../../../../src/tui/install-ui/HooksConfig.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HooksConfig.js","sourceRoot":"","sources":["../../../../src/tui/install-ui/HooksConfig.tsx"],"names":[],"mappings":"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"}
@@ -1,33 +1,4 @@
1
- import type { HookLevel } from '../../commands/hooks.js';
2
- import type { ExtraMcpTargetId } from '../../commands/install-backend.js';
3
- export interface InstallFlowConfig {
4
- mode: 'global' | 'project';
5
- projectPath: string;
6
- installComponents: boolean;
7
- installHooks: boolean;
8
- installMcp: boolean;
9
- installCodexHooks: boolean;
10
- codexHookLevel: HookLevel;
11
- installCodexMcp: boolean;
12
- codexMcpTools: string[];
13
- codexMcpProjectRoot: string;
14
- installAgyHooks: boolean;
15
- agyHookLevel: HookLevel;
16
- installExtraMcp: boolean;
17
- extraMcpTargetIds: ExtraMcpTargetId[];
18
- installCodeGraph: boolean;
19
- installStatusline: boolean;
20
- statuslineTheme: string;
21
- hookLevel: HookLevel;
22
- componentCount: number;
23
- fileCount: number;
24
- mcpToolCount: number;
25
- selectedComponentIds: string[];
26
- mcpTools: string[];
27
- mcpProjectRoot: string;
28
- backupClaudeMd: boolean;
29
- backupAll: boolean;
30
- }
1
+ import type { InstallFlowConfig } from './types.js';
31
2
  interface InstallConfirmProps {
32
3
  config: InstallFlowConfig;
33
4
  onConfirm: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"InstallConfirm.d.ts","sourceRoot":"","sources":["../../../../src/tui/install-ui/InstallConfirm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAWD,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,mBAAmB,2CA0HhF"}
1
+ {"version":3,"file":"InstallConfirm.d.ts","sourceRoot":"","sources":["../../../../src/tui/install-ui/InstallConfirm.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AA8BD,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,mBAAmB,2CAmFhF"}