maestro-flow 0.5.2 → 0.5.31

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 (701) 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/learn-follow/SKILL.md +114 -114
  5. package/.agents/skills/learn-investigate/SKILL.md +138 -139
  6. package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
  7. package/.agents/skills/maestro/SKILL.md +8 -16
  8. package/.agents/skills/maestro-amend/SKILL.md +152 -152
  9. package/.agents/skills/maestro-analyze/SKILL.md +201 -252
  10. package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
  11. package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
  12. package/.agents/skills/maestro-collab/SKILL.md +159 -159
  13. package/.agents/skills/maestro-companion/SKILL.md +517 -517
  14. package/.agents/skills/maestro-composer/SKILL.md +173 -164
  15. package/.agents/skills/maestro-execute/SKILL.md +169 -170
  16. package/.agents/skills/maestro-fork/SKILL.md +97 -96
  17. package/.agents/skills/maestro-grill/SKILL.md +161 -162
  18. package/.agents/skills/maestro-guard/SKILL.md +93 -92
  19. package/.agents/skills/maestro-help/SKILL.md +1 -1
  20. package/.agents/skills/maestro-help/index/catalog.json +3 -2
  21. package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
  22. package/.agents/skills/maestro-init/SKILL.md +117 -118
  23. package/.agents/skills/maestro-merge/SKILL.md +73 -66
  24. package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
  25. package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
  26. package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
  27. package/.agents/skills/maestro-next/SKILL.md +241 -245
  28. package/.agents/skills/maestro-overlay/SKILL.md +176 -166
  29. package/.agents/skills/maestro-plan/SKILL.md +211 -197
  30. package/.agents/skills/maestro-player/SKILL.md +167 -167
  31. package/.agents/skills/maestro-quick/SKILL.md +69 -63
  32. package/.agents/skills/maestro-ralph/SKILL.md +13 -46
  33. package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -871
  34. package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
  35. package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
  36. package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
  37. package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
  38. package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
  39. package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
  40. package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
  41. package/.agents/skills/maestro-update/SKILL.md +109 -106
  42. package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
  43. package/.agents/skills/manage-harvest/SKILL.md +83 -81
  44. package/.agents/skills/manage-issue/SKILL.md +59 -60
  45. package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
  46. package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
  47. package/.agents/skills/manage-knowhow/SKILL.md +70 -66
  48. package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
  49. package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
  50. package/.agents/skills/manage-status/SKILL.md +52 -42
  51. package/.agents/skills/manage-wiki/SKILL.md +69 -58
  52. package/.agents/skills/odyssey-debug/SKILL.md +461 -0
  53. package/.agents/skills/odyssey-improve/SKILL.md +493 -0
  54. package/.agents/skills/odyssey-planex/SKILL.md +592 -0
  55. package/.agents/skills/odyssey-review-test-fix/SKILL.md +416 -0
  56. package/.agents/skills/odyssey-ui/SKILL.md +447 -0
  57. package/.agents/skills/quality-auto-test/SKILL.md +140 -123
  58. package/.agents/skills/quality-debug/SKILL.md +145 -106
  59. package/.agents/skills/quality-refactor/SKILL.md +91 -53
  60. package/.agents/skills/quality-retrospective/SKILL.md +109 -63
  61. package/.agents/skills/quality-review/SKILL.md +141 -114
  62. package/.agents/skills/quality-sync/SKILL.md +74 -38
  63. package/.agents/skills/quality-test/SKILL.md +133 -103
  64. package/.agents/skills/security-audit/SKILL.md +217 -166
  65. package/.agents/skills/spec-add/SKILL.md +66 -59
  66. package/.agents/skills/spec-load/SKILL.md +68 -68
  67. package/.agents/skills/spec-remove/SKILL.md +42 -42
  68. package/.agents/skills/spec-setup/SKILL.md +38 -41
  69. package/.agy/skills/insight-challenge/SKILL.md +230 -0
  70. package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  71. package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
  72. package/.agy/skills/learn-follow/SKILL.md +114 -114
  73. package/.agy/skills/learn-investigate/SKILL.md +138 -139
  74. package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
  75. package/.agy/skills/maestro/SKILL.md +8 -16
  76. package/.agy/skills/maestro-amend/SKILL.md +152 -152
  77. package/.agy/skills/maestro-analyze/SKILL.md +201 -252
  78. package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
  79. package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
  80. package/.agy/skills/maestro-collab/SKILL.md +159 -159
  81. package/.agy/skills/maestro-companion/SKILL.md +517 -517
  82. package/.agy/skills/maestro-composer/SKILL.md +173 -164
  83. package/.agy/skills/maestro-execute/SKILL.md +169 -170
  84. package/.agy/skills/maestro-fork/SKILL.md +97 -96
  85. package/.agy/skills/maestro-grill/SKILL.md +161 -162
  86. package/.agy/skills/maestro-guard/SKILL.md +93 -92
  87. package/.agy/skills/maestro-help/SKILL.md +1 -1
  88. package/.agy/skills/maestro-help/index/catalog.json +3 -2
  89. package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
  90. package/.agy/skills/maestro-init/SKILL.md +117 -118
  91. package/.agy/skills/maestro-merge/SKILL.md +73 -66
  92. package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
  93. package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
  94. package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
  95. package/.agy/skills/maestro-next/SKILL.md +241 -245
  96. package/.agy/skills/maestro-overlay/SKILL.md +176 -166
  97. package/.agy/skills/maestro-plan/SKILL.md +211 -197
  98. package/.agy/skills/maestro-player/SKILL.md +167 -167
  99. package/.agy/skills/maestro-quick/SKILL.md +69 -63
  100. package/.agy/skills/maestro-ralph/SKILL.md +13 -46
  101. package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -871
  102. package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
  103. package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
  104. package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
  105. package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
  106. package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
  107. package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
  108. package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
  109. package/.agy/skills/maestro-update/SKILL.md +109 -106
  110. package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
  111. package/.agy/skills/manage-harvest/SKILL.md +83 -81
  112. package/.agy/skills/manage-issue/SKILL.md +59 -60
  113. package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
  114. package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
  115. package/.agy/skills/manage-knowhow/SKILL.md +70 -66
  116. package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
  117. package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
  118. package/.agy/skills/manage-status/SKILL.md +52 -42
  119. package/.agy/skills/manage-wiki/SKILL.md +69 -58
  120. package/.agy/skills/odyssey-debug/SKILL.md +461 -0
  121. package/.agy/skills/odyssey-improve/SKILL.md +493 -0
  122. package/.agy/skills/odyssey-planex/SKILL.md +592 -0
  123. package/.agy/skills/odyssey-review-test-fix/SKILL.md +416 -0
  124. package/.agy/skills/odyssey-ui/SKILL.md +447 -0
  125. package/.agy/skills/quality-auto-test/SKILL.md +140 -123
  126. package/.agy/skills/quality-debug/SKILL.md +145 -106
  127. package/.agy/skills/quality-refactor/SKILL.md +91 -53
  128. package/.agy/skills/quality-retrospective/SKILL.md +109 -63
  129. package/.agy/skills/quality-review/SKILL.md +141 -114
  130. package/.agy/skills/quality-sync/SKILL.md +74 -38
  131. package/.agy/skills/quality-test/SKILL.md +133 -103
  132. package/.agy/skills/security-audit/SKILL.md +217 -166
  133. package/.agy/skills/spec-add/SKILL.md +66 -59
  134. package/.agy/skills/spec-load/SKILL.md +68 -68
  135. package/.agy/skills/spec-remove/SKILL.md +42 -42
  136. package/.agy/skills/spec-setup/SKILL.md +38 -41
  137. package/.claude/commands/learn-follow.md +127 -127
  138. package/.claude/commands/learn-investigate.md +151 -152
  139. package/.claude/commands/learn-second-opinion.md +118 -122
  140. package/.claude/commands/maestro-amend.md +164 -164
  141. package/.claude/commands/maestro-analyze.md +215 -266
  142. package/.claude/commands/maestro-blueprint.md +189 -204
  143. package/.claude/commands/maestro-brainstorm.md +209 -213
  144. package/.claude/commands/maestro-collab.md +172 -172
  145. package/.claude/commands/maestro-companion.md +531 -531
  146. package/.claude/commands/maestro-composer.md +188 -179
  147. package/.claude/commands/maestro-execute.md +183 -184
  148. package/.claude/commands/maestro-fork.md +111 -110
  149. package/.claude/commands/maestro-grill.md +175 -176
  150. package/.claude/commands/maestro-guard.md +103 -102
  151. package/.claude/commands/maestro-impeccable.md +311 -268
  152. package/.claude/commands/maestro-init.md +130 -131
  153. package/.claude/commands/maestro-merge.md +87 -80
  154. package/.claude/commands/maestro-milestone-audit.md +4 -10
  155. package/.claude/commands/maestro-milestone-complete.md +6 -7
  156. package/.claude/commands/maestro-milestone-release.md +136 -145
  157. package/.claude/commands/maestro-next.md +253 -257
  158. package/.claude/commands/maestro-overlay.md +188 -178
  159. package/.claude/commands/maestro-plan.md +225 -211
  160. package/.claude/commands/maestro-player.md +182 -182
  161. package/.claude/commands/maestro-quick.md +83 -77
  162. package/.claude/commands/maestro-ralph-beta.md +875 -885
  163. package/.claude/commands/maestro-ralph-execute.md +247 -247
  164. package/.claude/commands/maestro-ralph.md +13 -46
  165. package/.claude/commands/maestro-roadmap.md +173 -186
  166. package/.claude/commands/maestro-swarm-workflow.md +243 -264
  167. package/.claude/commands/maestro-tools-execute.md +122 -117
  168. package/.claude/commands/maestro-tools-register.md +162 -157
  169. package/.claude/commands/maestro-ui-codify.md +117 -100
  170. package/.claude/commands/maestro-universal-workflow.md +548 -561
  171. package/.claude/commands/maestro-update.md +122 -119
  172. package/.claude/commands/maestro.md +8 -16
  173. package/.claude/commands/manage-codebase-rebuild.md +87 -85
  174. package/.claude/commands/manage-harvest.md +97 -95
  175. package/.claude/commands/manage-issue-discover.md +83 -81
  176. package/.claude/commands/manage-issue.md +72 -73
  177. package/.claude/commands/manage-kg-extractors.md +128 -0
  178. package/.claude/commands/manage-knowhow-capture.md +92 -82
  179. package/.claude/commands/manage-knowhow.md +83 -79
  180. package/.claude/commands/manage-knowledge-audit.md +105 -88
  181. package/.claude/commands/manage-status.md +62 -52
  182. package/.claude/commands/manage-wiki.md +82 -71
  183. package/.claude/commands/odyssey-debug.md +459 -0
  184. package/.claude/commands/odyssey-improve.md +491 -0
  185. package/.claude/commands/odyssey-planex.md +590 -0
  186. package/.claude/commands/odyssey-review-test-fix.md +414 -0
  187. package/.claude/commands/odyssey-ui.md +445 -0
  188. package/.claude/commands/quality-auto-test.md +153 -136
  189. package/.claude/commands/quality-debug.md +159 -120
  190. package/.claude/commands/quality-refactor.md +105 -67
  191. package/.claude/commands/quality-retrospective.md +123 -77
  192. package/.claude/commands/quality-review.md +155 -128
  193. package/.claude/commands/quality-sync.md +88 -52
  194. package/.claude/commands/quality-test.md +147 -117
  195. package/.claude/commands/security-audit.md +230 -179
  196. package/.claude/commands/spec-add.md +77 -70
  197. package/.claude/commands/spec-load.md +78 -78
  198. package/.claude/commands/spec-remove.md +55 -55
  199. package/.claude/commands/spec-setup.md +49 -52
  200. package/.claude/skills/insight-challenge/SKILL.md +226 -0
  201. package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  202. package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
  203. package/.claude/skills/maestro-help/SKILL.md +1 -1
  204. package/.claude/skills/maestro-help/index/catalog.json +3 -2
  205. package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
  206. package/.codex/skills/maestro-companion/SKILL.md +1 -1
  207. package/.codex/skills/maestro-help/SKILL.md +1 -1
  208. package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
  209. package/.codex/skills/maestro-next/SKILL.md +1 -1
  210. package/.codex/skills/maestro-ralph-beta/SKILL.md +1 -1
  211. package/.codex/skills/odyssey-debug/SKILL.md +456 -0
  212. package/.codex/skills/odyssey-improve/SKILL.md +466 -0
  213. package/.codex/skills/odyssey-planex/SKILL.md +409 -0
  214. package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
  215. package/.codex/skills/odyssey-ui/SKILL.md +411 -0
  216. package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
  217. package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
  218. package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
  219. package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
  220. package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
  221. package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
  222. package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
  223. package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
  224. package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
  225. package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
  226. package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
  227. package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
  228. package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
  229. package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
  230. package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
  231. package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
  232. package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
  233. package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
  234. package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
  235. package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
  236. package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
  237. package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
  238. package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
  239. package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
  240. package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
  241. package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
  242. package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
  243. package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
  244. package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
  245. package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
  246. package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
  247. package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
  248. package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
  249. package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
  250. package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
  251. package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
  252. package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
  253. package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
  254. package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
  255. package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
  256. package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
  257. package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
  258. package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
  259. package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
  260. package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
  261. package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
  262. package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
  263. package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
  264. package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
  265. package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
  266. package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
  267. package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
  268. package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
  269. package/dashboard/dist/index.html +2 -2
  270. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
  271. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  272. package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
  273. package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
  274. package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
  275. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
  276. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  277. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
  278. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
  279. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  280. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
  281. package/dashboard/dist-server/src/types/index.d.ts +9 -0
  282. package/dist/src/cli.js +4 -1
  283. package/dist/src/cli.js.map +1 -1
  284. package/dist/src/commands/delegate.d.ts.map +1 -1
  285. package/dist/src/commands/delegate.js +50 -8
  286. package/dist/src/commands/delegate.js.map +1 -1
  287. package/dist/src/commands/domain.d.ts +9 -0
  288. package/dist/src/commands/domain.d.ts.map +1 -0
  289. package/dist/src/commands/domain.js +445 -0
  290. package/dist/src/commands/domain.js.map +1 -0
  291. package/dist/src/commands/hooks.d.ts +10 -0
  292. package/dist/src/commands/hooks.d.ts.map +1 -1
  293. package/dist/src/commands/hooks.js +132 -22
  294. package/dist/src/commands/hooks.js.map +1 -1
  295. package/dist/src/commands/install.d.ts.map +1 -1
  296. package/dist/src/commands/install.js +82 -204
  297. package/dist/src/commands/install.js.map +1 -1
  298. package/dist/src/commands/kg.d.ts.map +1 -1
  299. package/dist/src/commands/kg.js +189 -90
  300. package/dist/src/commands/kg.js.map +1 -1
  301. package/dist/src/commands/search.d.ts +15 -8
  302. package/dist/src/commands/search.d.ts.map +1 -1
  303. package/dist/src/commands/search.js +205 -59
  304. package/dist/src/commands/search.js.map +1 -1
  305. package/dist/src/commands/spec.d.ts.map +1 -1
  306. package/dist/src/commands/spec.js +9 -1
  307. package/dist/src/commands/spec.js.map +1 -1
  308. package/dist/src/commands/update.d.ts.map +1 -1
  309. package/dist/src/commands/update.js +0 -7
  310. package/dist/src/commands/update.js.map +1 -1
  311. package/dist/src/commands/wiki.d.ts.map +1 -1
  312. package/dist/src/commands/wiki.js +8 -1
  313. package/dist/src/commands/wiki.js.map +1 -1
  314. package/dist/src/commands/workspace.d.ts +12 -0
  315. package/dist/src/commands/workspace.d.ts.map +1 -0
  316. package/dist/src/commands/workspace.js +230 -0
  317. package/dist/src/commands/workspace.js.map +1 -0
  318. package/dist/src/config/cli-tools-config.d.ts +5 -0
  319. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  320. package/dist/src/config/cli-tools-config.js +31 -0
  321. package/dist/src/config/cli-tools-config.js.map +1 -1
  322. package/dist/src/config/index.d.ts +9 -1
  323. package/dist/src/config/index.d.ts.map +1 -1
  324. package/dist/src/config/index.js +35 -1
  325. package/dist/src/config/index.js.map +1 -1
  326. package/dist/src/core/install-executor.d.ts +31 -0
  327. package/dist/src/core/install-executor.d.ts.map +1 -0
  328. package/dist/src/core/install-executor.js +231 -0
  329. package/dist/src/core/install-executor.js.map +1 -0
  330. package/dist/src/core/install-profile.d.ts +103 -0
  331. package/dist/src/core/install-profile.d.ts.map +1 -0
  332. package/dist/src/core/install-profile.js +225 -0
  333. package/dist/src/core/install-profile.js.map +1 -0
  334. package/dist/src/graph/kg/credibility.d.ts +37 -0
  335. package/dist/src/graph/kg/credibility.d.ts.map +1 -0
  336. package/dist/src/graph/kg/credibility.js +141 -0
  337. package/dist/src/graph/kg/credibility.js.map +1 -0
  338. package/dist/src/graph/kg/db/connection.d.ts +28 -0
  339. package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
  340. package/dist/src/graph/kg/db/connection.js +142 -0
  341. package/dist/src/graph/kg/db/connection.js.map +1 -0
  342. package/dist/src/graph/kg/db/index.d.ts +5 -0
  343. package/dist/src/graph/kg/db/index.d.ts.map +1 -0
  344. package/dist/src/graph/kg/db/index.js +6 -0
  345. package/dist/src/graph/kg/db/index.js.map +1 -0
  346. package/dist/src/graph/kg/db/migrations.d.ts +8 -0
  347. package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
  348. package/dist/src/graph/kg/db/migrations.js +88 -0
  349. package/dist/src/graph/kg/db/migrations.js.map +1 -0
  350. package/dist/src/graph/kg/db/queries.d.ts +84 -0
  351. package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
  352. package/dist/src/graph/kg/db/queries.js +471 -0
  353. package/dist/src/graph/kg/db/queries.js.map +1 -0
  354. package/dist/src/graph/kg/db/types.d.ts +123 -0
  355. package/dist/src/graph/kg/db/types.d.ts.map +1 -0
  356. package/dist/src/graph/kg/db/types.js +75 -0
  357. package/dist/src/graph/kg/db/types.js.map +1 -0
  358. package/dist/src/graph/kg/engine.d.ts +87 -0
  359. package/dist/src/graph/kg/engine.d.ts.map +1 -0
  360. package/dist/src/graph/kg/engine.js +247 -0
  361. package/dist/src/graph/kg/engine.js.map +1 -0
  362. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +42 -0
  363. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
  364. package/dist/src/graph/kg/extraction/code/code-extractor.js +325 -0
  365. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
  366. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
  367. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
  368. package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
  369. package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
  370. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
  371. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
  372. package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
  373. package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
  374. package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
  375. package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
  376. package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
  377. package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
  378. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
  379. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
  380. package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
  381. package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
  382. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
  383. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
  384. package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
  385. package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
  386. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
  387. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
  388. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
  389. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
  390. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
  391. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
  392. package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
  393. package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
  394. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
  395. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
  396. package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
  397. package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
  398. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
  399. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
  400. package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
  401. package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
  402. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
  403. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
  404. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
  405. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
  406. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
  407. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
  408. package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
  409. package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
  410. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
  411. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
  412. package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
  413. package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
  414. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
  415. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
  416. package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
  417. package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
  418. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
  419. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
  420. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
  421. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
  422. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
  423. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
  424. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
  425. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
  426. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
  427. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
  428. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
  429. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
  430. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
  431. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
  432. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
  433. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
  434. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
  435. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
  436. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
  437. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
  438. package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
  439. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
  440. package/dist/src/graph/kg/extraction/orchestrator.js +220 -0
  441. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
  442. package/dist/src/graph/kg/index.d.ts +29 -0
  443. package/dist/src/graph/kg/index.d.ts.map +1 -0
  444. package/dist/src/graph/kg/index.js +35 -0
  445. package/dist/src/graph/kg/index.js.map +1 -0
  446. package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
  447. package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
  448. package/dist/src/graph/kg/query/context-builder.js +184 -0
  449. package/dist/src/graph/kg/query/context-builder.js.map +1 -0
  450. package/dist/src/graph/kg/query/index.d.ts +8 -0
  451. package/dist/src/graph/kg/query/index.d.ts.map +1 -0
  452. package/dist/src/graph/kg/query/index.js +6 -0
  453. package/dist/src/graph/kg/query/index.js.map +1 -0
  454. package/dist/src/graph/kg/query/scoring.d.ts +19 -0
  455. package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
  456. package/dist/src/graph/kg/query/scoring.js +158 -0
  457. package/dist/src/graph/kg/query/scoring.js.map +1 -0
  458. package/dist/src/graph/kg/query/search.d.ts +59 -0
  459. package/dist/src/graph/kg/query/search.d.ts.map +1 -0
  460. package/dist/src/graph/kg/query/search.js +158 -0
  461. package/dist/src/graph/kg/query/search.js.map +1 -0
  462. package/dist/src/graph/kg/query/traversal.d.ts +75 -0
  463. package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
  464. package/dist/src/graph/kg/query/traversal.js +420 -0
  465. package/dist/src/graph/kg/query/traversal.js.map +1 -0
  466. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
  467. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
  468. package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
  469. package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
  470. package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
  471. package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
  472. package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
  473. package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
  474. package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
  475. package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
  476. package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
  477. package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
  478. package/dist/src/graph/kg/resolution/index.d.ts +11 -0
  479. package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
  480. package/dist/src/graph/kg/resolution/index.js +7 -0
  481. package/dist/src/graph/kg/resolution/index.js.map +1 -0
  482. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
  483. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
  484. package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
  485. package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
  486. package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
  487. package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
  488. package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
  489. package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
  490. package/dist/src/graph/kg/schema.sql +215 -0
  491. package/dist/src/graph/kg/surface/cli.d.ts +3 -0
  492. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
  493. package/dist/src/graph/kg/surface/cli.js +597 -0
  494. package/dist/src/graph/kg/surface/cli.js.map +1 -0
  495. package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
  496. package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
  497. package/dist/src/graph/kg/surface/hook-injector.js +172 -0
  498. package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
  499. package/dist/src/graph/kg/surface/index.d.ts +6 -0
  500. package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
  501. package/dist/src/graph/kg/surface/index.js +5 -0
  502. package/dist/src/graph/kg/surface/index.js.map +1 -0
  503. package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
  504. package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
  505. package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
  506. package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
  507. package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
  508. package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
  509. package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
  510. package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
  511. package/dist/src/graph/kg/sync/index.d.ts +5 -0
  512. package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
  513. package/dist/src/graph/kg/sync/index.js +4 -0
  514. package/dist/src/graph/kg/sync/index.js.map +1 -0
  515. package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
  516. package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
  517. package/dist/src/graph/kg/sync/watch-policy.js +90 -0
  518. package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
  519. package/dist/src/hooks/constants.d.ts +0 -2
  520. package/dist/src/hooks/constants.d.ts.map +1 -1
  521. package/dist/src/hooks/constants.js +0 -2
  522. package/dist/src/hooks/constants.js.map +1 -1
  523. package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
  524. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
  525. package/dist/src/hooks/keyword-spec-injector.js +157 -81
  526. package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
  527. package/dist/src/hooks/kg-auto-init.d.ts +13 -0
  528. package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
  529. package/dist/src/hooks/kg-auto-init.js +38 -0
  530. package/dist/src/hooks/kg-auto-init.js.map +1 -0
  531. package/dist/src/hooks/kg-context-injector.d.ts +1 -3
  532. package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
  533. package/dist/src/hooks/kg-context-injector.js +12 -17
  534. package/dist/src/hooks/kg-context-injector.js.map +1 -1
  535. package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
  536. package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
  537. package/dist/src/hooks/kg-sync-hook.js +21 -90
  538. package/dist/src/hooks/kg-sync-hook.js.map +1 -1
  539. package/dist/src/hooks/spec-analytics.d.ts +1 -0
  540. package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
  541. package/dist/src/hooks/spec-analytics.js +1 -3
  542. package/dist/src/hooks/spec-analytics.js.map +1 -1
  543. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  544. package/dist/src/hooks/spec-injector.js +65 -1
  545. package/dist/src/hooks/spec-injector.js.map +1 -1
  546. package/dist/src/hooks/workspace.d.ts +4 -2
  547. package/dist/src/hooks/workspace.d.ts.map +1 -1
  548. package/dist/src/hooks/workspace.js +6 -2
  549. package/dist/src/hooks/workspace.js.map +1 -1
  550. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  551. package/dist/src/i18n/locales/en.js +52 -9
  552. package/dist/src/i18n/locales/en.js.map +1 -1
  553. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  554. package/dist/src/i18n/locales/zh.js +52 -9
  555. package/dist/src/i18n/locales/zh.js.map +1 -1
  556. package/dist/src/i18n/types.d.ts +40 -4
  557. package/dist/src/i18n/types.d.ts.map +1 -1
  558. package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
  559. package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
  560. package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
  561. package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
  562. package/dist/src/tools/domain-loader.d.ts +63 -0
  563. package/dist/src/tools/domain-loader.d.ts.map +1 -0
  564. package/dist/src/tools/domain-loader.js +295 -0
  565. package/dist/src/tools/domain-loader.js.map +1 -0
  566. package/dist/src/tools/domain-matcher.d.ts +24 -0
  567. package/dist/src/tools/domain-matcher.d.ts.map +1 -0
  568. package/dist/src/tools/domain-matcher.js +117 -0
  569. package/dist/src/tools/domain-matcher.js.map +1 -0
  570. package/dist/src/tools/domain-scanner.d.ts +32 -0
  571. package/dist/src/tools/domain-scanner.d.ts.map +1 -0
  572. package/dist/src/tools/domain-scanner.js +263 -0
  573. package/dist/src/tools/domain-scanner.js.map +1 -0
  574. package/dist/src/tools/domain-schema.d.ts +18 -0
  575. package/dist/src/tools/domain-schema.d.ts.map +1 -0
  576. package/dist/src/tools/domain-schema.js +104 -0
  577. package/dist/src/tools/domain-schema.js.map +1 -0
  578. package/dist/src/tools/spec-entry-parser.d.ts +1 -0
  579. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
  580. package/dist/src/tools/spec-entry-parser.js +1 -0
  581. package/dist/src/tools/spec-entry-parser.js.map +1 -1
  582. package/dist/src/tools/spec-loader.d.ts +5 -0
  583. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  584. package/dist/src/tools/spec-loader.js +10 -2
  585. package/dist/src/tools/spec-loader.js.map +1 -1
  586. package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
  587. package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
  588. package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
  589. package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
  590. package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
  591. package/dist/src/tui/install-ui/GroupedHub.js +210 -0
  592. package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
  593. package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
  594. package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
  595. package/dist/src/tui/install-ui/HooksConfig.js +83 -18
  596. package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
  597. package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
  598. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  599. package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
  600. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  601. package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
  602. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  603. package/dist/src/tui/install-ui/InstallExecution.js +89 -260
  604. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  605. package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
  606. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  607. package/dist/src/tui/install-ui/InstallFlow.js +45 -267
  608. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  609. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  610. package/dist/src/tui/install-ui/InstallHub.js +2 -4
  611. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  612. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  613. package/dist/src/tui/install-ui/InstallResult.js +1 -5
  614. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  615. package/dist/src/tui/install-ui/index.d.ts +5 -1
  616. package/dist/src/tui/install-ui/index.d.ts.map +1 -1
  617. package/dist/src/tui/install-ui/index.js +1 -0
  618. package/dist/src/tui/install-ui/index.js.map +1 -1
  619. package/dist/src/tui/install-ui/types.d.ts +39 -0
  620. package/dist/src/tui/install-ui/types.d.ts.map +1 -1
  621. package/dist/src/tui/install-ui/types.js +1 -1
  622. package/dist/src/tui/install-ui/types.js.map +1 -1
  623. package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
  624. package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
  625. package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
  626. package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
  627. package/dist/src/tui/shared/components.d.ts +4 -0
  628. package/dist/src/tui/shared/components.d.ts.map +1 -1
  629. package/dist/src/tui/shared/components.js +4 -0
  630. package/dist/src/tui/shared/components.js.map +1 -1
  631. package/dist/src/tui/shared/index.d.ts +1 -1
  632. package/dist/src/tui/shared/index.d.ts.map +1 -1
  633. package/dist/src/tui/shared/index.js +1 -1
  634. package/dist/src/tui/shared/index.js.map +1 -1
  635. package/dist/src/tui/shared/tokens.d.ts +5 -5
  636. package/dist/src/tui/shared/tokens.js +5 -5
  637. package/dist/src/tui/shared/tokens.js.map +1 -1
  638. package/dist/src/types/index.d.ts +9 -0
  639. package/dist/src/types/index.d.ts.map +1 -1
  640. package/dist/src/utils/cli-format.d.ts +2 -1
  641. package/dist/src/utils/cli-format.d.ts.map +1 -1
  642. package/dist/src/utils/cli-format.js +14 -3
  643. package/dist/src/utils/cli-format.js.map +1 -1
  644. package/dist/src/utils/cooldown-guard.d.ts +17 -0
  645. package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
  646. package/dist/src/utils/cooldown-guard.js +59 -0
  647. package/dist/src/utils/cooldown-guard.js.map +1 -0
  648. package/dist/src/utils/jsonl-log.d.ts.map +1 -1
  649. package/dist/src/utils/jsonl-log.js +2 -1
  650. package/dist/src/utils/jsonl-log.js.map +1 -1
  651. package/dist/src/utils/update-notices.js +17 -4
  652. package/dist/src/utils/update-notices.js.map +1 -1
  653. package/package.json +91 -92
  654. package/workflows/analyze.md +25 -49
  655. package/workflows/auto-test.md +699 -699
  656. package/workflows/blueprint.md +403 -431
  657. package/workflows/brainstorm.md +54 -195
  658. package/workflows/business-test.md +570 -570
  659. package/workflows/claude-instructions.md +23 -28
  660. package/workflows/codex-instructions.md +30 -58
  661. package/workflows/coding-philosophy.md +69 -69
  662. package/workflows/command-authoring.md +823 -823
  663. package/workflows/debug.md +43 -98
  664. package/workflows/delegate-usage.md +39 -241
  665. package/workflows/execute.md +4 -53
  666. package/workflows/finish-work.md +25 -0
  667. package/workflows/grill.md +12 -56
  668. package/workflows/harvest.md +22 -68
  669. package/workflows/init.md +148 -148
  670. package/workflows/instruction-authoring-guide.md +97 -0
  671. package/workflows/issue-execute.md +110 -110
  672. package/workflows/issue-gaps-analyze.codex.md +260 -260
  673. package/workflows/issue-gaps-analyze.md +216 -216
  674. package/workflows/issue-plan.md +110 -110
  675. package/workflows/issue.md +338 -346
  676. package/workflows/knowhow.md +0 -32
  677. package/workflows/learn.md +277 -277
  678. package/workflows/maestro-chain-execute.md +20 -20
  679. package/workflows/refactor.md +22 -44
  680. package/workflows/retrospective.md +16 -65
  681. package/workflows/review.md +446 -486
  682. package/workflows/roadmap.md +35 -132
  683. package/workflows/skill-authoring.md +265 -265
  684. package/workflows/spec-generate.md +470 -470
  685. package/workflows/specs-remove.md +104 -104
  686. package/workflows/sync.md +11 -41
  687. package/workflows/test-gen.md +226 -226
  688. package/workflows/test.md +385 -475
  689. package/workflows/ui-design.md +391 -391
  690. package/workflows/ui-style.md +199 -199
  691. package/workflows/updates/update-v3-setup.md +7 -15
  692. package/workflows/wiki-connect.md +151 -151
  693. package/workflows/wiki-digest.md +178 -178
  694. package/workflows/wiki-manage.md +109 -109
  695. package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
  696. package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
  697. package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
  698. package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
  699. package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
  700. package/workflows/cli-tools-usage.md +0 -252
  701. package/workflows/delegate-protocol.codex.md +0 -65
@@ -1,109 +1,109 @@
1
- # Wiki Manage Workflow
2
-
3
- Unified wiki knowledge graph management — health monitoring, interactive search, orphan cleanup, and graph statistics.
4
-
5
- Complements `wiki-connect.md` (link discovery) and `wiki-digest.md` (synthesis) with day-to-day operational tooling.
6
-
7
- ---
8
-
9
- ## Prerequisites
10
-
11
- - `.workflow/` initialized
12
- - Wiki entries exist
13
- - `maestro wiki` CLI available
14
-
15
- ---
16
-
17
- ## Argument Shape
18
-
19
- ```
20
- /manage-wiki → health dashboard (default)
21
- /manage-wiki health → health dashboard
22
- /manage-wiki search auth → search for "auth" with follow-up actions
23
- /manage-wiki cleanup → find orphans, broken links, stale entries
24
- /manage-wiki cleanup --fix → auto-fix issues
25
- /manage-wiki stats → graph statistics
26
- /manage-wiki stats --type spec → spec-only statistics
27
- ```
28
-
29
- | Flag | Effect |
30
- |------|--------|
31
- | `--type <type>` | Filter: spec, knowhow, note, issue |
32
- | `--fix` | Auto-fix issues during cleanup |
33
- | `--json` | JSON output |
34
-
35
- ---
36
-
37
- ## Subcommand: health (default)
38
-
39
- ### Step 1: Gather Data
40
-
41
- Run in parallel: `maestro wiki health`, `list --json`, `orphans`, `hubs --top 5`.
42
-
43
- ### Step 2: Render Dashboard
44
-
45
- Display: health score, entry counts by type, broken links, orphan count, top hubs. Include health status message and quick-action commands (`/wiki-connect --fix`, `/wiki-digest`, `/manage-wiki cleanup --fix`, `maestro wiki graph`).
46
-
47
- > **Scope split (complementary, not conflicting):** `/wiki-connect --fix` repairs/augments `related` links between existing entries (no deletion). `/manage-wiki cleanup --fix` deletes/flags orphans and removes broken-link entries from frontmatter. Run `wiki-connect` first to maximize link recovery, then `cleanup` to handle the true residual orphans.
48
-
49
- ---
50
-
51
- ## Subcommand: search <query>
52
-
53
- ### Step 1: Execute Search
54
-
55
- ```bash
56
- maestro wiki search "<query>" --json
57
- ```
58
-
59
- ### Step 2: Display Results
60
-
61
- Show table of results (ID, type, title, tags) with action hints: `maestro wiki get <id>`, `backlinks <id>`, `/learn-follow <id>`, `/wiki-connect --scope <type>`.
62
-
63
- ### Step 3: Interactive Follow-up
64
-
65
- If not `--json`: offer to view an entry by number selection.
66
-
67
- ---
68
-
69
- ## Subcommand: cleanup
70
-
71
- ### Step 1: Scan Issues
72
-
73
- Gather baseline via `maestro wiki health`, `orphans --json`, `graph`.
74
-
75
- ### Step 2: Categorize Issues
76
-
77
- | Issue Type | Detection | Auto-fix Action |
78
- |-----------|-----------|----------------|
79
- | Broken links | Forward link target doesn't exist | Remove broken link from frontmatter |
80
- | Orphans | No in/out links | Suggest connections via BM25 title match |
81
- | Stale entries | No updates in 90+ days, status=draft | Flag for review |
82
- | Empty body | Entry exists but body is empty/placeholder | Flag for review |
83
-
84
- ### Step 3: Display Issues
85
-
86
- Show baseline health, issue counts by type, and entry-level details.
87
-
88
- ### Step 4: Apply Fixes (--fix only)
89
-
90
- Broken links: remove from frontmatter via `maestro wiki update`. Orphans: mini wiki-connect (BM25 + tag match). Stale/empty: flag only (no auto-delete).
91
-
92
- Report: fixed count, remaining count, health delta.
93
-
94
- ---
95
-
96
- ## Subcommand: stats
97
-
98
- ### Step 1: Gather Data
99
-
100
- ```bash
101
- maestro wiki list --json
102
- ```
103
-
104
- ### Step 2: Compute & Display Statistics
105
-
106
- Compute: type distribution (count/%), top 20 tags, category distribution (specs), connectivity (avg in/out-degree, max hub), growth (entries/week).
107
-
108
- Display as bar charts and summary tables.
109
-
1
+ # Wiki Manage Workflow
2
+
3
+ Unified wiki knowledge graph management — health monitoring, interactive search, orphan cleanup, and graph statistics.
4
+
5
+ Complements `wiki-connect.md` (link discovery) and `wiki-digest.md` (synthesis) with day-to-day operational tooling.
6
+
7
+ ---
8
+
9
+ ## Prerequisites
10
+
11
+ - `.workflow/` initialized
12
+ - Wiki entries exist
13
+ - `maestro wiki` CLI available
14
+
15
+ ---
16
+
17
+ ## Argument Shape
18
+
19
+ ```
20
+ /manage-wiki → health dashboard (default)
21
+ /manage-wiki health → health dashboard
22
+ /manage-wiki search auth → search for "auth" with follow-up actions
23
+ /manage-wiki cleanup → find orphans, broken links, stale entries
24
+ /manage-wiki cleanup --fix → auto-fix issues
25
+ /manage-wiki stats → graph statistics
26
+ /manage-wiki stats --type spec → spec-only statistics
27
+ ```
28
+
29
+ | Flag | Effect |
30
+ |------|--------|
31
+ | `--type <type>` | Filter: spec, knowhow, note, issue |
32
+ | `--fix` | Auto-fix issues during cleanup |
33
+ | `--json` | JSON output |
34
+
35
+ ---
36
+
37
+ ## Subcommand: health (default)
38
+
39
+ ### Step 1: Gather Data
40
+
41
+ Run in parallel: `maestro wiki health`, `list --json`, `orphans`, `hubs --top 5`.
42
+
43
+ ### Step 2: Render Dashboard
44
+
45
+ Display: health score, entry counts by type, broken links, orphan count, top hubs. Include health status message and quick-action commands (`/wiki-connect --fix`, `/wiki-digest`, `/manage-wiki cleanup --fix`, `maestro wiki graph`).
46
+
47
+ > **Scope split (complementary, not conflicting):** `/wiki-connect --fix` repairs/augments `related` links between existing entries (no deletion). `/manage-wiki cleanup --fix` deletes/flags orphans and removes broken-link entries from frontmatter. Run `wiki-connect` first to maximize link recovery, then `cleanup` to handle the true residual orphans.
48
+
49
+ ---
50
+
51
+ ## Subcommand: search <query>
52
+
53
+ ### Step 1: Execute Search
54
+
55
+ ```bash
56
+ maestro wiki search "<query>" --json
57
+ ```
58
+
59
+ ### Step 2: Display Results
60
+
61
+ Show table of results (ID, type, title, tags) with action hints: `maestro wiki get <id>`, `backlinks <id>`, `/learn-follow <id>`, `/wiki-connect --scope <type>`.
62
+
63
+ ### Step 3: Interactive Follow-up
64
+
65
+ If not `--json`: offer to view an entry by number selection.
66
+
67
+ ---
68
+
69
+ ## Subcommand: cleanup
70
+
71
+ ### Step 1: Scan Issues
72
+
73
+ Gather baseline via `maestro wiki health`, `orphans --json`, `graph`.
74
+
75
+ ### Step 2: Categorize Issues
76
+
77
+ | Issue Type | Detection | Auto-fix Action |
78
+ |-----------|-----------|----------------|
79
+ | Broken links | Forward link target doesn't exist | Remove broken link from frontmatter |
80
+ | Orphans | No in/out links | Suggest connections via BM25 title match |
81
+ | Stale entries | No updates in 90+ days, status=draft | Flag for review |
82
+ | Empty body | Entry exists but body is empty/placeholder | Flag for review |
83
+
84
+ ### Step 3: Display Issues
85
+
86
+ Show baseline health, issue counts by type, and entry-level details.
87
+
88
+ ### Step 4: Apply Fixes (--fix only)
89
+
90
+ Broken links: remove from frontmatter via `maestro wiki update`. Orphans: mini wiki-connect (BM25 + tag match). Stale/empty: flag only (no auto-delete).
91
+
92
+ Report: fixed count, remaining count, health delta.
93
+
94
+ ---
95
+
96
+ ## Subcommand: stats
97
+
98
+ ### Step 1: Gather Data
99
+
100
+ ```bash
101
+ maestro wiki list --json
102
+ ```
103
+
104
+ ### Step 2: Compute & Display Statistics
105
+
106
+ Compute: type distribution (count/%), top 20 tags, category distribution (specs), connectivity (avg in/out-degree, max hub), growth (entries/week).
107
+
108
+ Display as bar charts and summary tables.
109
+
@@ -1,21 +0,0 @@
1
- import{d as q,o as ge,a5 as E,j as e,r as y,X as ve,a6 as _,a4 as se,R as ye,P as je,O as Ne,f as we,T as Ce,h as ke,i as B,V as Me,n as Le}from"./index-DQIlX2w_.js";import{L as Oe}from"./list-CI-XIPZh.js";import{T as oe}from"./terminal-DXx4tvzq.js";import{S as ae}from"./search-b78eLlw2.js";import{T as Se}from"./trash-2-CVh9mnRj.js";import{C as Ee}from"./chevron-right-SmErd_1F.js";import{F as Ae,a as Ie,D as De}from"./folder-B8ODoZfb.js";import{D as Pe}from"./download-DadtG2Nr.js";import{m as M}from"./proxy-CcYyZZWI.js";import{P as Te}from"./pen-line-CR8GaHt-.js";import{A as Be}from"./index-BL4h1OKY.js";import{C as We}from"./check-Bs8PM0tQ.js";import{C as Re}from"./code-DoB7rfxt.js";import{M as _e}from"./minus-BVbfXGrC.js";/**
2
- * @license lucide-react v0.577.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const Fe=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],ze=q("chevron-left",Fe);/**
7
- * @license lucide-react v0.577.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const Ge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],Q=q("globe",Ge);/**
12
- * @license lucide-react v0.577.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const Ve=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],$e=q("package",Ve);/**
17
- * @license lucide-react v0.577.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const Je=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],Ue=q("wrench",Je);function Ye(t,a,r){return t==="project"&&r?`project:${a}@${r}`:`${t}:${a}`}function He(t){const a=[],r=t.globalServers??{},o=t.projects??{},n=t.enterpriseServers??{},i=t.codex;for(const[d,x]of Object.entries(r))a.push(Y(d,x,"global"));for(const[d,x]of Object.entries(o)){const b=x.mcpServers??{},l=x.disabledMcpServers??[];for(const[p,m]of Object.entries(b))a.push({...Y(p,m,"project",d),enabled:!l.includes(p)})}for(const[d,x]of Object.entries(n))a.push({...Y(d,x,"enterprise"),enabled:!0});if(i!=null&&i.servers)for(const[d,x]of Object.entries(i.servers)){const b=a.find(l=>l.name===d&&l.scope==="global");b?b.cli.codex=!0:a.push({...Y(d,x,"codex"),cli:{claude:!1,codex:!0}})}return a}function Y(t,a,r,o){const n=typeof a.url=="string";return{id:Ye(r,t,o),name:t,scope:r,projectPath:o,enabled:a.enabled!==!1,transport:n?"http":"stdio",command:typeof a.command=="string"?a.command:void 0,args:Array.isArray(a.args)?a.args:void 0,url:n?a.url:void 0,env:typeof a.env=="object"&&a.env!==null?a.env:void 0,cli:{claude:r!=="codex",codex:r==="codex"},raw:a}}const f=ge((t,a)=>({servers:[],templates:[],categories:[],loading:!1,error:null,activeView:"list",scopeFilter:"all",search:"",selectedServer:null,templateSearch:"",templateCategory:null,editingServer:null,setActiveView:r=>t({activeView:r}),setScopeFilter:r=>t({scopeFilter:r}),setSearch:r=>t({search:r}),setSelectedServer:r=>t({selectedServer:r}),setTemplateSearch:r=>t({templateSearch:r}),setTemplateCategory:r=>t({templateCategory:r}),setEditingServer:r=>t({editingServer:r}),fetchConfig:async()=>{t({loading:!0,error:null});try{const r=await fetch(E.CONFIG);if(!r.ok)throw new Error(`Failed: ${r.status}`);const o=await r.json();t({servers:He(o),loading:!1})}catch(r){t({loading:!1,error:String(r)})}},fetchTemplates:async()=>{try{const[r,o]=await Promise.all([fetch(E.TEMPLATES),fetch(E.TEMPLATES_CATEGORIES)]);if(!r.ok||!o.ok)return;const n=await r.json(),i=await o.json();t({templates:n.templates??[],categories:i.categories??[]})}catch{}},toggleServer:async(r,o,n)=>{t(i=>({servers:i.servers.map(d=>d.name===o?{...d,enabled:n}:d)}));try{await fetch(E.TOGGLE,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:r,serverName:o,enable:n})})}catch{a().fetchConfig()}},removeServer:async(r,o)=>{const n=a().servers;t(i=>({servers:i.servers.filter(d=>d.name!==o)}));try{(await fetch(E.REMOVE_SERVER,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:r,serverName:o})})).ok||t({servers:n})}catch{t({servers:n})}},addGlobalServer:async(r,o)=>{try{await fetch(E.ADD_GLOBAL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:r,serverConfig:o})}),a().fetchConfig()}catch{}},removeGlobalServer:async r=>{const o=a().servers;t(n=>({servers:n.servers.filter(i=>i.name!==r)}));try{(await fetch(E.REMOVE_GLOBAL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:r})})).ok||t({servers:o})}catch{t({servers:o})}},updateServer:async(r,o)=>{try{await fetch(E.UPDATE_SERVER,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:r.scope,serverName:r.name,serverConfig:o,projectPath:r.projectPath})}),t({editingServer:null}),a().fetchConfig()}catch{}},installTemplate:async(r,o,n)=>{try{await fetch(E.TEMPLATES_INSTALL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateName:r,projectPath:o,scope:n})}),a().fetchConfig()}catch{}},filteredServers:()=>{const{servers:r,scopeFilter:o,search:n}=a();let i=r;if(o!=="all"&&(i=i.filter(d=>d.scope===o)),n){const d=n.toLowerCase();i=i.filter(x=>{var b,l;return x.name.toLowerCase().includes(d)||(((b=x.command)==null?void 0:b.toLowerCase().includes(d))??!1)||(((l=x.url)==null?void 0:l.toLowerCase().includes(d))??!1)})}return i},filteredTemplates:()=>{const{templates:r,templateSearch:o,templateCategory:n}=a();let i=r;if(n&&(i=i.filter(d=>d.category===n)),o){const d=o.toLowerCase();i=i.filter(x=>{var b;return x.name.toLowerCase().includes(d)||(((b=x.description)==null?void 0:b.toLowerCase().includes(d))??!1)})}return i},projectGroups:()=>{const{servers:r}=a(),o=new Map;for(const i of r){const d=i.projectPath??null,x=o.get(d)??[];x.push(i),o.set(d,x)}const n=[];for(const[i,d]of o)n.push({projectPath:i,servers:d});return n},selectedEntry:()=>{const{servers:r,selectedServer:o}=a();return o?r.find(n=>n.id===o)??null:null}}));function V({size:t=14,className:a,style:r}){return e.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"currentColor",className:a,style:r,children:e.jsx("path",{d:"M17.304 3.541l-5.15 16.918H9.29l5.15-16.918zm-9.757 10.3l-2.1 3.613H2.131l3.256-5.576zm2.74-7.354L6.41 13.49l-2.037-3.5L8.052 3.54z"})})}function $({size:t=14,className:a,style:r}){return e.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"currentColor",className:a,style:r,children:e.jsx("path",{d:"M22.282 9.821a5.985 5.985 0 0 0-.516-4.91 6.046 6.046 0 0 0-6.51-2.9A6.065 6.065 0 0 0 4.981 4.18a5.985 5.985 0 0 0-3.998 2.9 6.046 6.046 0 0 0 .743 7.097 5.98 5.98 0 0 0 .51 4.911 6.051 6.051 0 0 0 6.515 2.9A5.985 5.985 0 0 0 13.26 24a6.056 6.056 0 0 0 5.772-4.206 5.99 5.99 0 0 0 3.997-2.9 6.056 6.056 0 0 0-.747-7.073zM13.26 22.43a4.476 4.476 0 0 1-2.876-1.04l.14-.08 4.779-2.759a.795.795 0 0 0 .392-.681v-6.737l2.02 1.168a.07.07 0 0 1 .038.052v5.583a4.504 4.504 0 0 1-4.494 4.494zM3.6 18.304a4.47 4.47 0 0 1-.535-3.014l.142.085 4.783 2.759a.771.771 0 0 0 .78 0l5.843-3.369v2.332a.08.08 0 0 1-.033.062L9.74 19.95a4.5 4.5 0 0 1-6.14-1.646zM2.34 7.896a4.485 4.485 0 0 1 2.366-1.973V11.6a.766.766 0 0 0 .388.677l5.815 3.354-2.02 1.168a.076.076 0 0 1-.071 0l-4.83-2.786A4.504 4.504 0 0 1 2.34 7.872zm16.597 3.855l-5.833-3.387L15.124 7.2a.076.076 0 0 1 .071 0l4.83 2.791a4.494 4.494 0 0 1-.676 8.105v-5.678a.79.79 0 0 0-.41-.676zm2.01-3.023l-.141-.085-4.774-2.782a.776.776 0 0 0-.785 0L9.409 9.23V6.897a.066.066 0 0 1 .028-.061l4.83-2.787a4.5 4.5 0 0 1 6.68 4.66zM8.307 12.863l-2.02-1.164a.08.08 0 0 1-.038-.057V6.074a4.5 4.5 0 0 1 7.375-3.453l-.14.08-4.779 2.758a.795.795 0 0 0-.393.681zm1.097-2.361l2.602-1.506 2.607 1.506v3.012l-2.602 1.506-2.607-1.506z"})})}const ne={global:{bg:"rgba(91,141,184,0.12)",text:"var(--color-accent-blue, #5B8DB8)"},project:{bg:"rgba(145,120,181,0.12)",text:"var(--color-status-planning, #9178B5)"},enterprise:{bg:"rgba(200,134,58,0.12)",text:"var(--color-status-verifying, #C8863A)"},codex:{bg:"rgba(90,158,120,0.12)",text:"var(--color-status-completed, #5A9E78)"}},le={stdio:{bg:"rgba(91,141,184,0.08)",text:"var(--color-accent-blue, #5B8DB8)"},http:{bg:"rgba(145,120,181,0.08)",text:"var(--color-status-planning, #9178B5)"}};function Xe({server:t,onClose:a}){var p;const r=f(m=>m.removeServer),o=f(m=>m.removeGlobalServer),n=f(m=>m.setEditingServer),i=y.useMemo(()=>t.env?Object.entries(t.env):[],[t.env]),d=y.useMemo(()=>JSON.stringify(t.raw,null,2),[t.raw]),x=ne[t.scope]??ne.global,b=le[t.transport]??le.stdio;function l(){t.scope==="global"?o(t.name):r(t.projectPath??"",t.name),a()}return e.jsxs(M.aside,{initial:{width:0,opacity:0},animate:{width:380,opacity:1},exit:{width:0,opacity:0},transition:{type:"spring",stiffness:400,damping:30},className:"shrink-0 border-l border-border bg-bg-card overflow-hidden flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-[10px] px-[18px] py-[14px] border-b border-border-divider shrink-0",children:[e.jsx("div",{className:"w-9 h-9 rounded-[var(--radius-lg)] shrink-0 flex items-center justify-center",style:{background:b.bg,color:b.text},children:t.transport==="stdio"?e.jsx(oe,{size:18,strokeWidth:1.8}):e.jsx(Q,{size:18,strokeWidth:1.8})}),e.jsx("span",{className:"text-[15px] font-bold text-text-primary flex-1 min-w-0 truncate",children:t.name}),e.jsx("button",{type:"button",onClick:a,"aria-label":"Close detail panel",className:"flex items-center justify-center w-7 h-7 rounded-[var(--radius-md)] text-text-tertiary hover:text-text-primary hover:bg-bg-hover transition-colors",children:e.jsx(ve,{size:14,strokeWidth:2})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-[18px] py-[16px]",style:{width:380},children:[e.jsxs(F,{label:"Info",children:[e.jsx(H,{label:"Scope",children:e.jsx("span",{className:"text-[9px] font-bold px-[7px] py-[2px] rounded-[4px] uppercase tracking-[0.03em] font-mono",style:{background:x.bg,color:x.text},children:t.scope})}),e.jsx(H,{label:"Transport",children:e.jsx("span",{className:"text-[9px] font-semibold px-[7px] py-[2px] rounded-[4px] uppercase",style:{background:b.bg,color:b.text},children:t.transport})}),e.jsx(H,{label:"Status",children:e.jsxs("span",{className:"text-[12px] font-semibold flex items-center gap-[4px]",style:{color:t.enabled?"var(--color-status-completed, #5A9E78)":"var(--color-text-tertiary)"},children:[e.jsx("span",{className:"w-[7px] h-[7px] rounded-full inline-block",style:{background:t.enabled?"var(--color-status-completed, #5A9E78)":"var(--color-text-tertiary)"}}),t.enabled?"Enabled":"Disabled"]})}),t.projectPath&&e.jsx(H,{label:"Source",children:e.jsx("span",{className:"font-mono text-[11px] text-text-primary break-all",children:t.projectPath})})]}),e.jsxs(F,{label:"CLI Presence",children:[e.jsx(ie,{icon:e.jsx(V,{size:12}),label:"Claude Code",present:t.cli.claude,tintBg:"rgba(200,134,58,0.08)",tintColor:"var(--color-status-verifying, #C8863A)"}),e.jsx(ie,{icon:e.jsx($,{size:12}),label:"Codex CLI",present:t.cli.codex,tintBg:"rgba(90,158,120,0.08)",tintColor:"var(--color-status-completed, #5A9E78)"})]}),e.jsx(F,{label:"Command",children:e.jsx("div",{className:"bg-bg-secondary border border-border-divider rounded-[var(--radius-lg)] px-3 py-[10px] font-mono text-[11px] text-text-primary leading-[1.7] whitespace-pre-wrap break-all",children:t.command?`${t.command}${(p=t.args)!=null&&p.length?" "+t.args.join(" "):""}`:t.url??"(no command)"})}),i.length>0&&e.jsx(F,{label:"Environment",children:e.jsx("div",{className:"bg-bg-secondary border border-border-divider rounded-[var(--radius-lg)] overflow-hidden",children:e.jsx("table",{className:"w-full border-collapse",children:e.jsx("tbody",{children:i.map(([m,s])=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-2 py-1 text-[11px] font-mono font-medium whitespace-nowrap border-b border-border-divider",style:{color:"var(--color-accent-blue, #5B8DB8)"},children:m}),e.jsx("td",{className:"px-2 py-1 text-[11px] font-mono text-text-secondary break-all border-b border-border-divider",children:s})]},m))})})})}),e.jsx(F,{label:"Raw Config",children:e.jsx("div",{className:"rounded-[var(--radius-lg)] px-3 py-[10px] font-mono text-[11px] leading-[1.7] whitespace-pre-wrap break-all",style:{background:"var(--color-code-bg, #2C2723)",color:"var(--color-code-text, #D9D0C4)",border:"1px solid var(--color-code-border, #3D3731)"},children:d})})]}),e.jsxs("div",{className:"flex gap-[6px] px-[18px] py-3 border-t border-border-divider shrink-0",children:[e.jsxs("button",{type:"button",onClick:()=>n(t),className:"flex-1 flex items-center justify-center gap-[4px] px-[10px] py-[5px] rounded-[var(--radius-md)] border border-border bg-bg-card text-[10px] font-semibold text-text-secondary hover:border-text-tertiary hover:text-text-primary transition-all",children:[e.jsx(Te,{size:11,strokeWidth:2}),"Edit"]}),e.jsxs("button",{type:"button",onClick:l,className:"flex-1 flex items-center justify-center gap-[4px] px-[10px] py-[5px] rounded-[var(--radius-md)] border border-border bg-bg-card text-[10px] font-semibold text-status-failed hover:border-status-failed hover:bg-red-50 transition-all",children:[e.jsx(Se,{size:11,strokeWidth:2}),"Remove"]})]})]})}function F({label:t,children:a}){return e.jsxs("div",{className:"mb-4",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-[0.05em] text-text-tertiary mb-[6px]",children:t}),a]})}function H({label:t,children:a}){return e.jsxs("div",{className:"flex items-center gap-2 py-[3px]",children:[e.jsx("span",{className:"text-[11px] font-semibold text-text-secondary min-w-[70px] shrink-0",children:t}),a]})}function ie({icon:t,label:a,present:r,tintBg:o,tintColor:n}){return e.jsxs("div",{className:"flex items-center gap-[10px] px-[10px] py-2 rounded-[var(--radius-md)] mb-1",style:{background:r?o:void 0},children:[e.jsx("div",{className:"w-6 h-[18px] rounded-[4px] flex items-center justify-center",style:{background:o,color:n},children:t}),e.jsx("span",{className:"text-[12px] font-semibold text-text-primary flex-1",children:a}),e.jsx("span",{className:"text-[10px] font-semibold",style:{color:r?"var(--color-status-completed, #5A9E78)":"var(--color-text-tertiary)"},children:r?"Installed":"Not found"})]})}const re=["write_file","edit_file","read_file","read_many_files","team_msg"],u=ge((t,a)=>({open:!1,step:"mode",mode:"global",projectPath:"",detection:null,selectedComponents:new Set,backup:!0,mcpEnabled:!0,enabledTools:new Set(re),detecting:!1,installing:!1,result:null,error:null,manifests:[],addons:[],addonInstalling:null,setOpen:r=>{t(r?{open:r,step:"mode",result:null,error:null,detection:null}:{open:r})},setStep:r=>t({step:r}),setMode:r=>t({mode:r}),setProjectPath:r=>t({projectPath:r}),toggleComponent:r=>t(o=>{const n=new Set(o.selectedComponents);return n.has(r)?n.delete(r):n.add(r),{selectedComponents:n}}),selectAllComponents:()=>t(r=>{if(!r.detection)return{};const o=r.detection.components.filter(n=>n.available).map(n=>n.id);return r.selectedComponents.has("mcp")&&o.push("mcp"),{selectedComponents:new Set(o)}}),setBackup:r=>t({backup:r}),setMcpEnabled:r=>t({mcpEnabled:r}),toggleTool:r=>t(o=>{const n=new Set(o.enabledTools);return n.has(r)?n.delete(r):n.add(r),{enabledTools:n}}),detect:async()=>{const{mode:r,projectPath:o}=a();t({detecting:!0,error:null});try{const n=await fetch(_.DETECT,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:r,projectPath:r==="project"?o:void 0})}),i=await n.json();if(!n.ok)throw new Error(i.error??`HTTP ${n.status}`);const d=i,x=d.components.filter(b=>b.available).map(b=>b.id);x.push("mcp"),t({detecting:!1,detection:d,selectedComponents:new Set(x),step:"configure"}),a().fetchAddons()}catch(n){t({detecting:!1,error:String(n)})}},install:async()=>{const{mode:r,projectPath:o,selectedComponents:n,backup:i,mcpEnabled:d,enabledTools:x}=a();t({installing:!0,error:null,step:"progress"});try{const l=await(await fetch(_.EXECUTE,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:r,projectPath:r==="project"?o:void 0,components:Array.from(n),backup:i,mcpConfig:d&&n.has("mcp")?{enabled:!0,enabledTools:Array.from(x)}:void 0})})).json();t({installing:!1,result:l})}catch(b){t({installing:!1,result:{success:!1,filesInstalled:0,dirsCreated:0,manifestPath:"",disabledItemsRestored:0,mcpRegistered:!1,components:[],error:String(b)}})}},fetchManifests:async()=>{try{const r=await fetch(_.MANIFESTS);if(!r.ok)return;const o=await r.json();t({manifests:o.manifests??[]})}catch{}},fetchAddons:async()=>{const{mode:r,projectPath:o}=a();try{const n=new URLSearchParams({mode:r});r==="project"&&o&&n.set("projectPath",o);const i=await fetch(`${_.ADDONS}?${n}`);if(!i.ok)return;const d=await i.json();t({addons:d.addons??[]})}catch{}},installAddon:async(r,o)=>{const{mode:n,projectPath:i}=a();t({addonInstalling:r});try{(await(await fetch(_.ADDON_INSTALL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({addonId:r,mode:n,projectPath:n==="project"?i:void 0,harnesses:o})})).json()).success&&await a().fetchAddons(),t({addonInstalling:null})}catch{t({addonInstalling:null})}},reset:()=>t({step:"mode",mode:"global",projectPath:"",detection:null,selectedComponents:new Set,backup:!0,mcpEnabled:!0,enabledTools:new Set(re),detecting:!1,installing:!1,result:null,error:null,addons:[],addonInstalling:null})}));function Ke(t){const a=t.includes("/")?"/":t.includes("\\")?"\\":"/",r=t.endsWith(a)?t.slice(0,-1):t,o=r.lastIndexOf(a);return o>=0?r.slice(o+1):r}const qe=[{id:"all",label:"All"},{id:"global",label:"Global",color:"var(--color-accent-blue, #5B8DB8)"},{id:"project",label:"Project",color:"var(--color-status-planning, #9178B5)"},{id:"enterprise",label:"Enterprise",color:"var(--color-status-verifying, #C8863A)"}],ce={global:{bg:"rgba(91,141,184,0.12)",text:"var(--color-accent-blue, #5B8DB8)"},project:{bg:"rgba(145,120,181,0.12)",text:"var(--color-status-planning, #9178B5)"},enterprise:{bg:"rgba(200,134,58,0.12)",text:"var(--color-status-verifying, #C8863A)"},codex:{bg:"rgba(90,158,120,0.12)",text:"var(--color-status-completed, #5A9E78)"}};function Qe(){const t=f(c=>c.servers),a=f(c=>c.scopeFilter),r=f(c=>c.search),o=y.useMemo(()=>{let c=t;if(a!=="all"&&(c=c.filter(C=>C.scope===a)),r){const C=r.toLowerCase();c=c.filter(z=>{var O,P;return z.name.toLowerCase().includes(C)||(((O=z.command)==null?void 0:O.toLowerCase().includes(C))??!1)||(((P=z.url)==null?void 0:P.toLowerCase().includes(C))??!1)})}return c},[t,a,r]),n=f(c=>c.selectedServer),i=f(c=>c.setScopeFilter),d=f(c=>c.setSearch),x=f(c=>c.setSelectedServer),b=f(c=>c.toggleServer),l=f(c=>c.removeServer),p=f(c=>c.removeGlobalServer),m=f(c=>c.setEditingServer),s=u(c=>c.setOpen),h=t.filter(c=>c.enabled).length,w=t.filter(c=>c.scope==="global").length,k=t.filter(c=>c.scope==="project").length,S=t.filter(c=>c.scope==="enterprise").length,A=t.filter(c=>c.transport==="stdio").length,L=t.filter(c=>c.transport==="http").length,J={all:t.length,global:w,project:k,enterprise:S},W=n?t.find(c=>c.id===n)??null:null;function g(c){b(c.projectPath??"",c.name,!c.enabled)}function j(c){c.scope==="global"?p(c.name):l(c.projectPath??"",c.name)}function N(c){m(c)}return e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"flex items-center gap-5 px-5 py-2 border-b border-border-divider bg-bg-primary shrink-0",children:[e.jsx(X,{color:"var(--color-status-completed, #5A9E78)",value:h,label:"Active"}),e.jsx(X,{color:"var(--color-accent-blue, #5B8DB8)",value:w,label:"Global"}),e.jsx(X,{color:"var(--color-status-planning, #9178B5)",value:k,label:"Project"}),e.jsx(X,{color:"var(--color-status-verifying, #C8863A)",value:S,label:"Enterprise"})]}),e.jsxs("div",{className:"flex items-center gap-[10px] px-5 py-2 border-b border-border-divider shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-[6px] px-3 py-[6px] rounded-[var(--radius-lg)] bg-bg-card border border-border w-[260px] focus-within:border-[var(--color-status-planning,#9178B5)] transition-colors",children:[e.jsx(ae,{size:13,strokeWidth:2,className:"text-text-tertiary shrink-0"}),e.jsx("input",{type:"text",placeholder:"Search servers...",value:r,onChange:c=>d(c.target.value),className:"border-none bg-transparent outline-none text-[12px] text-text-primary w-full placeholder:text-text-tertiary"})]}),e.jsx("div",{className:"flex gap-[6px]",children:qe.map(c=>{const C=a===c.id;return e.jsxs("button",{type:"button",onClick:()=>i(c.id),className:["flex items-center gap-1 px-[10px] py-1 rounded-full border text-[10px] font-semibold whitespace-nowrap transition-all cursor-pointer",C?"bg-text-primary text-white border-text-primary":"bg-bg-card text-text-tertiary border-border hover:border-text-tertiary hover:text-text-secondary"].join(" "),children:[c.color&&!C&&e.jsx("span",{className:"w-[6px] h-[6px] rounded-full",style:{background:c.color}}),c.label,e.jsx("span",{className:"font-mono text-[9px] opacity-60",children:J[c.id]})]},c.id)})}),e.jsx("div",{className:"w-px h-[18px] bg-border-divider"}),e.jsx("div",{className:"flex gap-[6px]",children:["stdio","http"].map(c=>e.jsxs("button",{type:"button",className:"flex items-center gap-1 px-[10px] py-1 rounded-full border border-border bg-bg-card text-[10px] font-semibold text-text-tertiary hover:border-text-tertiary hover:text-text-secondary transition-all cursor-pointer whitespace-nowrap",children:[c.toUpperCase(),e.jsx("span",{className:"font-mono text-[9px] opacity-60",children:c==="stdio"?A:L})]},c))}),e.jsx("div",{className:"flex-1"}),e.jsxs("button",{type:"button",onClick:()=>s(!0),className:"flex items-center gap-[6px] px-[14px] py-[6px] rounded-[var(--radius-lg)] border border-border bg-bg-card text-[11px] font-semibold text-text-secondary cursor-pointer transition-all hover:border-text-tertiary hover:text-text-primary whitespace-nowrap",children:[e.jsx(Pe,{size:13,strokeWidth:2}),"Install Wizard"]}),e.jsxs("button",{type:"button",className:"flex items-center gap-[6px] px-[14px] py-[6px] rounded-[var(--radius-lg)] border-none bg-text-primary text-white text-[11px] font-semibold cursor-pointer transition-all hover:-translate-y-px hover:shadow-md whitespace-nowrap",children:[e.jsx(se,{size:13,strokeWidth:2}),"Add Server"]})]}),e.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[e.jsx("div",{className:"flex-1 overflow-y-auto min-w-0",children:e.jsxs("table",{className:"w-full border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-[14px] py-2 bg-bg-secondary border-b border-border whitespace-nowrap w-[36px]"}),e.jsx("th",{className:"sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-[14px] py-2 bg-bg-secondary border-b border-border whitespace-nowrap",children:"Name"}),e.jsx("th",{className:"sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-[14px] py-2 bg-bg-secondary border-b border-border whitespace-nowrap",children:"Command / URL"}),e.jsx("th",{className:"sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-[14px] py-2 bg-bg-secondary border-b border-border whitespace-nowrap",children:"Scope"}),e.jsx("th",{className:"sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-[14px] py-2 bg-bg-secondary border-b border-border whitespace-nowrap",children:"CLI"}),e.jsx("th",{className:"sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-[14px] py-2 bg-bg-secondary border-b border-border whitespace-nowrap w-[50px]",children:"On"}),e.jsx("th",{className:"sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-[14px] py-2 bg-bg-secondary border-b border-border whitespace-nowrap w-[140px]"})]})}),e.jsx("tbody",{children:(()=>{if(!(a==="all"||a==="project"))return o.map(v=>e.jsx(Z,{server:v,selected:n===v.id,onSelect:()=>x(n===v.id?null:v.id),onToggle:()=>g(v),onEdit:()=>N(v),onRemove:()=>j(v)},v.id));const C=o.filter(v=>v.scope==="project"),z=o.filter(v=>v.scope!=="project"),O=new Map;for(const v of C){const R=v.projectPath??"",U=O.get(R)??[];U.push(v),O.set(R,U)}const P=[];for(const v of z)P.push(e.jsx(Z,{server:v,selected:n===v.id,onSelect:()=>x(n===v.id?null:v.id),onToggle:()=>g(v),onEdit:()=>N(v),onRemove:()=>j(v)},v.id));for(const[v,R]of O){const U=Ke(v);P.push(e.jsx(Ze,{folderName:U,fullPath:v,count:R.length},`group:${v}`));for(const T of R)P.push(e.jsx(Z,{server:T,selected:n===T.id,onSelect:()=>x(n===T.id?null:T.id),onToggle:()=>g(T),onEdit:()=>N(T),onRemove:()=>j(T)},T.id))}return P.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"text-center py-8 text-text-tertiary text-[length:var(--font-size-sm)]",children:"No servers found"})}):P})()})]})}),e.jsx(Be,{children:W&&e.jsx(Xe,{server:W,onClose:()=>x(null)})})]})]})}function X({color:t,value:a,label:r}){return e.jsxs("div",{className:"flex items-center gap-[6px]",children:[e.jsx("span",{className:"w-2 h-2 rounded-full",style:{background:t}}),e.jsx("span",{className:"text-[16px] font-extrabold text-text-primary font-mono",children:a}),e.jsx("span",{className:"text-[10px] font-semibold text-text-tertiary uppercase tracking-[0.04em]",children:r})]})}function Ze({folderName:t,fullPath:a,count:r}){return e.jsx("tr",{className:"group-header-row",children:e.jsx("td",{colSpan:7,className:"px-[14px] py-[6px] bg-[rgba(145,120,181,0.04)] border-b border-border-divider",children:e.jsxs("div",{className:"flex items-center gap-[8px]",children:[e.jsx(Ae,{size:13,strokeWidth:1.8,style:{color:"var(--color-status-planning, #9178B5)",opacity:.7}}),e.jsx("span",{className:"text-[11px] font-bold text-text-secondary",title:a,children:t}),e.jsx("span",{className:"text-[9px] font-mono text-text-tertiary opacity-60",children:r})]})})})}function Z({server:t,selected:a,onSelect:r,onToggle:o,onEdit:n,onRemove:i}){var p;const d=ce[t.scope]??ce.global,x=t.command?`${t.command}${(p=t.args)!=null&&p.length?" "+t.args.join(" "):""}`:t.url??"",b=!t.cli.claude&&t.cli.codex,l=t.cli.claude&&!t.cli.codex;return e.jsxs("tr",{onClick:r,className:["cursor-pointer transition-colors group",a?"[&>td]:bg-[rgba(145,120,181,0.07)]":"hover:[&>td]:bg-bg-hover"].join(" "),children:[e.jsx("td",{className:"px-[14px] py-2 border-b border-border-divider align-middle",children:e.jsx("div",{className:"w-7 h-7 rounded-[var(--radius-md)] shrink-0 flex items-center justify-center",style:{background:t.transport==="stdio"?"rgba(91,141,184,0.08)":"rgba(145,120,181,0.08)",color:t.transport==="stdio"?"var(--color-accent-blue, #5B8DB8)":"var(--color-status-planning, #9178B5)"},children:t.transport==="stdio"?e.jsx(oe,{size:14,strokeWidth:1.8}):e.jsx(Q,{size:14,strokeWidth:1.8})})}),e.jsx("td",{className:"px-[14px] py-2 border-b border-border-divider align-middle",children:e.jsx("span",{className:"text-[12px] font-semibold text-text-primary",children:t.name})}),e.jsx("td",{className:"px-[14px] py-2 border-b border-border-divider align-middle",children:e.jsx("span",{className:"font-mono text-[11px] text-text-tertiary max-w-[280px] whitespace-nowrap overflow-hidden text-ellipsis block",children:x})}),e.jsx("td",{className:"px-[14px] py-2 border-b border-border-divider align-middle whitespace-nowrap",children:e.jsx("span",{className:"text-[9px] font-bold px-[7px] py-[2px] rounded-[4px] uppercase tracking-[0.03em] font-mono",style:{background:d.bg,color:d.text},children:t.scope})}),e.jsx("td",{className:"px-[14px] py-2 border-b border-border-divider align-middle",children:e.jsxs("div",{className:"flex gap-[3px]",children:[e.jsx("span",{className:["w-5 h-4 rounded-[3px] flex items-center justify-center",t.cli.claude?"":"opacity-25"].join(" "),style:{background:"rgba(200,134,58,0.08)",color:"var(--color-status-verifying, #C8863A)"},title:"Claude Code",children:e.jsx(V,{size:11})}),e.jsx("span",{className:["w-5 h-4 rounded-[3px] flex items-center justify-center",t.cli.codex?"":"opacity-25"].join(" "),style:{background:"rgba(90,158,120,0.08)",color:"var(--color-status-completed, #5A9E78)"},title:"Codex CLI",children:e.jsx($,{size:11})})]})}),e.jsx("td",{className:"px-[14px] py-2 border-b border-border-divider align-middle text-center",children:e.jsxs("label",{className:"relative inline-block w-8 h-[18px] cursor-pointer",onClick:m=>m.stopPropagation(),children:[e.jsx("input",{type:"checkbox",checked:t.enabled,onChange:o,disabled:t.scope==="enterprise",className:"sr-only peer"}),e.jsx("div",{className:["w-8 h-[18px] rounded-full transition-colors duration-200",t.scope==="enterprise"?"opacity-50 cursor-default":""].join(" "),style:{background:t.enabled?"var(--color-status-completed, #5A9E78)":"var(--color-border, #E8E5DE)"},children:e.jsx("div",{className:"absolute top-[2px] left-[2px] w-[14px] h-[14px] rounded-full bg-white shadow-sm transition-transform duration-200",style:{transform:t.enabled?"translateX(14px)":"translateX(0)"}})})]})}),e.jsx("td",{className:"px-[14px] py-2 border-b border-border-divider align-middle",children:e.jsxs("div",{className:"flex gap-1 items-center opacity-0 group-hover:opacity-100 transition-opacity",onClick:m=>m.stopPropagation(),children:[(l||b)&&e.jsx("button",{type:"button",className:"flex items-center gap-[3px] px-2 py-1 rounded-[5px] border border-border bg-bg-card text-text-tertiary hover:border-[var(--color-accent-blue,#5B8DB8)] hover:text-[var(--color-accent-blue,#5B8DB8)] hover:bg-[rgba(91,141,184,0.04)] transition-all whitespace-nowrap",title:l?"Copy to Codex":"Copy to Claude",children:l?e.jsxs(e.Fragment,{children:[e.jsx(Ee,{size:10,strokeWidth:2.5}),e.jsx("span",{className:"w-[14px] h-[11px] rounded-[2px] flex items-center justify-center",style:{background:"rgba(90,158,120,0.08)",color:"var(--color-status-completed, #5A9E78)"},children:e.jsx($,{size:9})})]}):e.jsxs(e.Fragment,{children:[e.jsx(ze,{size:10,strokeWidth:2.5}),e.jsx("span",{className:"w-[14px] h-[11px] rounded-[2px] flex items-center justify-center",style:{background:"rgba(200,134,58,0.08)",color:"var(--color-status-verifying, #C8863A)"},children:e.jsx(V,{size:9})})]})}),e.jsx("button",{type:"button",onClick:n,className:"flex items-center gap-1 px-[10px] py-[5px] rounded-[var(--radius-md)] border border-border bg-bg-card text-[10px] font-semibold text-text-secondary hover:border-text-tertiary hover:text-text-primary transition-all",children:e.jsx(Te,{size:11,strokeWidth:2})}),t.scope!=="enterprise"&&e.jsx("button",{type:"button",onClick:i,className:"flex items-center gap-1 px-[10px] py-[5px] rounded-[var(--radius-md)] border border-border bg-bg-card text-[10px] font-semibold text-status-failed hover:border-status-failed hover:bg-red-50 transition-all",children:e.jsx(Se,{size:11,strokeWidth:2})})]})})]})}function et(t){const a=t.includes("/")?"/":t.includes("\\")?"\\":"/",r=t.endsWith(a)?t.slice(0,-1):t,o=r.lastIndexOf(a);return o>=0?r.slice(o+1):r}const tt={global:{label:"Global Servers",color:"var(--color-accent-blue, #5B8DB8)"},project:{label:"Project Servers",color:"var(--color-status-planning, #9178B5)"},enterprise:{label:"Enterprise Managed",color:"var(--color-status-verifying, #C8863A)"},codex:{label:"Codex Servers",color:"var(--color-status-completed, #5A9E78)"}},de={global:{bg:"rgba(91,141,184,0.12)",text:"var(--color-accent-blue, #5B8DB8)"},project:{bg:"rgba(145,120,181,0.12)",text:"var(--color-status-planning, #9178B5)"},enterprise:{bg:"rgba(200,134,58,0.12)",text:"var(--color-status-verifying, #C8863A)"},codex:{bg:"rgba(90,158,120,0.12)",text:"var(--color-status-completed, #5A9E78)"}},xe={stdio:{bg:"rgba(91,141,184,0.08)",text:"var(--color-accent-blue, #5B8DB8)"},http:{bg:"rgba(145,120,181,0.08)",text:"var(--color-status-planning, #9178B5)"}};function rt(){const t=f(l=>l.servers),a=f(l=>l.scopeFilter),r=f(l=>l.search),o=f(l=>l.selectedServer),n=f(l=>l.setSelectedServer),i=f(l=>l.toggleServer),d=y.useMemo(()=>{let l=t;if(a!=="all"&&(l=l.filter(p=>p.scope===a)),r){const p=r.toLowerCase();l=l.filter(m=>{var s,h;return m.name.toLowerCase().includes(p)||(((s=m.command)==null?void 0:s.toLowerCase().includes(p))??!1)||(((h=m.url)==null?void 0:h.toLowerCase().includes(p))??!1)})}return l},[t,a,r]),x=y.useMemo(()=>{const l=new Map;for(const m of d){const s=l.get(m.scope)??[];s.push(m),l.set(m.scope,s)}const p=[];for(const m of["global","project","enterprise","codex"]){const s=l.get(m);if(s&&s.length>0){const h=tt[m]??{label:m,color:"var(--color-text-tertiary)"},w={scope:m,label:h.label,color:h.color,servers:s};if(m==="project"){const k=new Map;for(const S of s){const A=S.projectPath??"__unknown__",L=k.get(A)??[];L.push(S),k.set(A,L)}w.projectSubGroups=[];for(const[S,A]of k)w.projectSubGroups.push({projectPath:S,folderName:et(S),servers:A})}p.push(w)}}return p},[d]);function b(l){i(l.projectPath??"",l.name,!l.enabled)}return d.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)]",children:"No servers found"}):e.jsx("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:x.map((l,p)=>e.jsxs(M.div,{className:"mb-5",initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.25,delay:p*.06},children:[e.jsxs("div",{className:"flex items-center gap-2 mb-[10px] pb-[6px] border-b border-border-divider",children:[e.jsx("span",{className:"w-2 h-2 rounded-full",style:{background:l.color}}),e.jsx("span",{className:"text-[12px] font-bold text-text-primary",children:l.label}),e.jsxs("span",{className:"text-[10px] text-text-tertiary font-mono",children:[l.servers.length," server",l.servers.length!==1?"s":""]})]}),l.projectSubGroups?e.jsx("div",{className:"flex flex-col gap-[14px]",children:l.projectSubGroups.map(m=>e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-[8px] mb-[8px]",children:[e.jsx(Ae,{size:13,strokeWidth:1.8,style:{color:"var(--color-status-planning, #9178B5)",opacity:.7}}),e.jsx("span",{className:"text-[11px] font-bold text-text-secondary",title:m.projectPath,children:m.folderName}),e.jsx("span",{className:"text-[9px] font-mono text-text-tertiary opacity-60",children:m.servers.length})]}),e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(320px,1fr))] gap-[10px]",children:m.servers.map((s,h)=>e.jsx(pe,{server:s,selected:o===s.id,isEnterprise:!1,delay:h*.04,onSelect:()=>n(o===s.id?null:s.id),onToggle:()=>b(s)},s.id))})]},m.projectPath))}):e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(320px,1fr))] gap-[10px]",children:l.servers.map((m,s)=>e.jsx(pe,{server:m,selected:o===m.id,isEnterprise:l.scope==="enterprise",delay:s*.04,onSelect:()=>n(o===m.id?null:m.id),onToggle:()=>b(m)},m.id))})]},l.scope))})}function pe({server:t,selected:a,isEnterprise:r,delay:o,onSelect:n,onToggle:i}){var s;const d=de[t.scope]??de.global,x=xe[t.transport]??xe.stdio,b=t.command?`${t.command}${(s=t.args)!=null&&s.length?" "+t.args.join(" "):""}`:t.url??"",l=t.env?Object.keys(t.env):[],p=!t.cli.claude&&t.cli.codex,m=t.cli.claude&&!t.cli.codex;return e.jsxs(M.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,delay:o},onClick:n,className:["bg-bg-card border rounded-[10px] p-[14px] cursor-pointer transition-all duration-200 flex flex-col gap-2",a?"border-[var(--color-status-planning,#9178B5)] shadow-[0_0_0_2px_rgba(145,120,181,0.2)]":"border-border hover:border-text-tertiary hover:shadow-md hover:-translate-y-[2px]"].join(" "),style:r?{borderColor:"rgba(200,134,58,0.3)",background:"rgba(200,134,58,0.04)"}:void 0,children:[e.jsxs("div",{className:"flex items-center gap-[10px]",children:[e.jsx("div",{className:"w-9 h-9 rounded-[var(--radius-lg)] shrink-0 flex items-center justify-center",style:{background:t.transport==="stdio"?"rgba(91,141,184,0.08)":"rgba(145,120,181,0.08)",color:t.transport==="stdio"?"var(--color-accent-blue, #5B8DB8)":"var(--color-status-planning, #9178B5)"},children:t.transport==="stdio"?e.jsx(oe,{size:18,strokeWidth:1.8}):e.jsx(Q,{size:18,strokeWidth:1.8})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-[13px] font-bold text-text-primary truncate",children:t.name}),e.jsxs("div",{className:"flex gap-[5px] mt-[3px]",children:[e.jsx("span",{className:"text-[9px] font-bold px-[7px] py-[2px] rounded-[4px] uppercase tracking-[0.03em] font-mono",style:{background:d.bg,color:d.text},children:t.scope}),e.jsx("span",{className:"text-[9px] font-semibold px-[7px] py-[2px] rounded-[4px] uppercase",style:{background:x.bg,color:x.text},children:t.transport})]})]}),e.jsxs("label",{className:"relative inline-block w-8 h-[18px] shrink-0 cursor-pointer",onClick:h=>h.stopPropagation(),children:[e.jsx("input",{type:"checkbox",checked:t.enabled,onChange:i,disabled:r,className:"sr-only"}),e.jsx("div",{className:["w-8 h-[18px] rounded-full transition-colors duration-200 relative",r?"opacity-50 cursor-default":""].join(" "),style:{background:t.enabled?"var(--color-status-completed, #5A9E78)":"var(--color-border, #E8E5DE)"},children:e.jsx("div",{className:"absolute top-[2px] left-[2px] w-[14px] h-[14px] rounded-full bg-white shadow-sm transition-transform duration-200",style:{transform:t.enabled?"translateX(14px)":"translateX(0)"}})})]})]}),b&&e.jsx("div",{className:"font-mono text-[10px] text-text-secondary bg-bg-secondary rounded-[var(--radius-md)] px-[10px] py-[6px] whitespace-nowrap overflow-hidden text-ellipsis",style:r?{background:"rgba(200,134,58,0.08)"}:void 0,children:r?"managed (read-only)":b}),e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"flex gap-1 flex-wrap flex-1 min-w-0",children:l.map(h=>e.jsx("span",{className:"text-[9px] font-mono px-[6px] py-[2px] rounded-[4px]",style:{background:"rgba(91,141,184,0.08)",color:"var(--color-accent-blue, #5B8DB8)"},children:h},h))}),e.jsxs("div",{className:"flex gap-[3px] shrink-0 items-center",children:[(m||p)&&e.jsx("button",{type:"button",onClick:h=>h.stopPropagation(),className:"flex items-center gap-[3px] px-[7px] py-[3px] rounded-[4px] border border-border bg-bg-card text-text-tertiary transition-all hover:border-[var(--color-accent-blue,#5B8DB8)] hover:text-[var(--color-accent-blue,#5B8DB8)] hover:bg-[rgba(91,141,184,0.04)]",title:m?"Copy to Codex":"Copy to Claude",children:m?e.jsxs(e.Fragment,{children:[e.jsx(Ee,{size:9,strokeWidth:2.5}),e.jsx($,{size:11,style:{color:"var(--color-status-completed, #5A9E78)"}})]}):e.jsxs(e.Fragment,{children:[e.jsx(ze,{size:9,strokeWidth:2.5}),e.jsx(V,{size:11,style:{color:"var(--color-status-verifying, #C8863A)"}})]})}),e.jsxs("div",{className:"flex gap-[3px]",children:[e.jsx("span",{className:["w-5 h-4 rounded-[3px] flex items-center justify-center",t.cli.claude?"":"opacity-25"].join(" "),style:{background:"rgba(200,134,58,0.08)",color:"var(--color-status-verifying, #C8863A)"},title:"Claude Code",children:e.jsx(V,{size:11})}),e.jsx("span",{className:["w-5 h-4 rounded-[3px] flex items-center justify-center",t.cli.codex?"":"opacity-25"].join(" "),style:{background:"rgba(90,158,120,0.08)",color:"var(--color-status-completed, #5A9E78)"},title:"Codex CLI",children:e.jsx($,{size:11})})]})]})]})]})}const me={database:{icon:e.jsx(De,{size:18,strokeWidth:1.8}),bg:"rgba(91,141,184,0.08)",color:"var(--color-accent-blue, #5B8DB8)"},search:{icon:e.jsx(ae,{size:18,strokeWidth:1.8}),bg:"rgba(145,120,181,0.08)",color:"var(--color-status-planning, #9178B5)"},code:{icon:e.jsx(Re,{size:18,strokeWidth:1.8}),bg:"rgba(90,158,120,0.08)",color:"var(--color-status-completed, #5A9E78)"},filesystem:{icon:e.jsx(Ie,{size:18,strokeWidth:1.8}),bg:"rgba(184,149,64,0.08)",color:"var(--color-status-idle, #B89540)"},api:{icon:e.jsx(Q,{size:18,strokeWidth:1.8}),bg:"rgba(200,134,58,0.08)",color:"var(--color-status-verifying, #C8863A)"},utility:{icon:e.jsx(Ue,{size:18,strokeWidth:1.8}),bg:"rgba(160,157,151,0.08)",color:"var(--color-text-tertiary, #A09D97)"}},st={database:{bg:"rgba(91,141,184,0.12)",color:"var(--color-accent-blue, #5B8DB8)"},sql:{bg:"rgba(90,158,120,0.12)",color:"var(--color-status-completed, #5A9E78)"},search:{bg:"rgba(145,120,181,0.12)",color:"var(--color-status-planning, #9178B5)"},code:{bg:"rgba(90,158,120,0.12)",color:"var(--color-status-completed, #5A9E78)"},tools:{bg:"rgba(90,158,120,0.12)",color:"var(--color-status-completed, #5A9E78)"},filesystem:{bg:"rgba(184,149,64,0.12)",color:"var(--color-status-idle, #B89540)"},files:{bg:"rgba(184,149,64,0.12)",color:"var(--color-status-idle, #B89540)"},api:{bg:"rgba(200,134,58,0.12)",color:"var(--color-status-verifying, #C8863A)"},web:{bg:"rgba(200,134,58,0.12)",color:"var(--color-status-verifying, #C8863A)"},docs:{bg:"rgba(145,120,181,0.12)",color:"var(--color-status-planning, #9178B5)"},research:{bg:"rgba(200,134,58,0.12)",color:"var(--color-status-verifying, #C8863A)"}},ot={database:"var(--color-accent-blue, #5B8DB8)",search:"var(--color-status-planning, #9178B5)",code:"var(--color-status-completed, #5A9E78)",filesystem:"var(--color-status-idle, #B89540)",api:"var(--color-status-verifying, #C8863A)",utility:"var(--color-text-tertiary, #A09D97)"};function at(){const t=f(s=>s.templates),a=f(s=>s.categories),r=f(s=>s.servers),o=f(s=>s.templateSearch),n=f(s=>s.templateCategory),i=y.useMemo(()=>{let s=t;if(n&&(s=s.filter(h=>h.category===n)),o){const h=o.toLowerCase();s=s.filter(w=>{var k;return w.name.toLowerCase().includes(h)||(((k=w.description)==null?void 0:k.toLowerCase().includes(h))??!1)})}return s},[t,o,n]),d=f(s=>s.setTemplateSearch),x=f(s=>s.setTemplateCategory),b=f(s=>s.installTemplate),l=y.useMemo(()=>new Set(r.map(s=>s.name.toLowerCase())),[r]),p=y.useMemo(()=>{const s={};for(const h of t)h.category&&(s[h.category]=(s[h.category]??0)+1);return s},[t]),m=y.useMemo(()=>t.filter(s=>l.has(s.name.toLowerCase())).length,[t,l]);return e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"flex items-center gap-5 px-5 py-2 border-b border-border-divider bg-bg-primary shrink-0",children:[e.jsx(ee,{color:"var(--color-status-planning, #9178B5)",value:t.length,label:"Templates"}),e.jsx(ee,{color:"var(--color-accent-blue, #5B8DB8)",value:a.length,label:"Categories"}),e.jsx(ee,{color:"var(--color-status-completed, #5A9E78)",value:m,label:"Installed"})]}),e.jsxs("div",{className:"flex items-center gap-[10px] px-5 py-2 border-b border-border-divider shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-[6px] px-3 py-[6px] rounded-[var(--radius-lg)] bg-bg-card border border-border w-[260px] focus-within:border-[var(--color-status-planning,#9178B5)] transition-colors",children:[e.jsx(ae,{size:13,strokeWidth:2,className:"text-text-tertiary shrink-0"}),e.jsx("input",{type:"text",placeholder:"Search templates...",value:o,onChange:s=>d(s.target.value),className:"border-none bg-transparent outline-none text-[12px] text-text-primary w-full placeholder:text-text-tertiary"})]}),e.jsxs("div",{className:"flex gap-[6px]",children:[e.jsxs("button",{type:"button",onClick:()=>x(null),className:["flex items-center gap-1 px-[10px] py-1 rounded-full border text-[10px] font-semibold whitespace-nowrap transition-all cursor-pointer",n===null?"bg-text-primary text-white border-text-primary":"bg-bg-card text-text-tertiary border-border hover:border-text-tertiary hover:text-text-secondary"].join(" "),children:["All",e.jsx("span",{className:"font-mono text-[9px] opacity-60",children:t.length})]}),a.map(s=>{const h=n===s,w=ot[s.toLowerCase()];return e.jsxs("button",{type:"button",onClick:()=>x(h?null:s),className:["flex items-center gap-1 px-[10px] py-1 rounded-full border text-[10px] font-semibold whitespace-nowrap transition-all cursor-pointer",h?"bg-text-primary text-white border-text-primary":"bg-bg-card text-text-tertiary border-border hover:border-text-tertiary hover:text-text-secondary"].join(" "),children:[w&&!h&&e.jsx("span",{className:"w-[6px] h-[6px] rounded-full",style:{background:w}}),s,e.jsx("span",{className:"font-mono text-[9px] opacity-60",children:p[s]??0})]},s)})]}),e.jsx("div",{className:"flex-1"}),e.jsxs("button",{type:"button",className:"flex items-center gap-[6px] px-[14px] py-[6px] rounded-[var(--radius-lg)] border-none bg-text-primary text-white text-[11px] font-semibold cursor-pointer transition-all hover:-translate-y-px hover:shadow-md whitespace-nowrap",children:[e.jsx(se,{size:13,strokeWidth:2}),"New Template"]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:i.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)]",children:"No templates found"}):e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] gap-3",children:i.map((s,h)=>e.jsx(nt,{template:s,installed:l.has(s.name.toLowerCase()),delay:h*.04,onInstall:()=>void b(s.name)},s.id))})})]})}function ee({color:t,value:a,label:r}){return e.jsxs("div",{className:"flex items-center gap-[6px]",children:[e.jsx("span",{className:"w-2 h-2 rounded-full",style:{background:t}}),e.jsx("span",{className:"text-[16px] font-extrabold text-text-primary font-mono",children:a}),e.jsx("span",{className:"text-[10px] font-semibold text-text-tertiary uppercase tracking-[0.04em]",children:r})]})}function nt({template:t,installed:a,delay:r,onInstall:o}){var x,b;const n=((x=t.category)==null?void 0:x.toLowerCase())??"",i=me[n]??me.utility,d=t.serverConfig.command?`${t.serverConfig.command}${(b=t.serverConfig.args)!=null&&b.length?" "+t.serverConfig.args.join(" "):""}`:"";return e.jsxs(M.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,delay:r},className:"bg-bg-card border border-border rounded-[10px] p-[14px] transition-all duration-200 cursor-pointer flex flex-col gap-[10px] hover:border-text-tertiary hover:shadow-md hover:-translate-y-[2px]",children:[e.jsxs("div",{className:"flex items-start gap-[10px]",children:[e.jsx("div",{className:"w-9 h-9 rounded-[var(--radius-lg)] shrink-0 flex items-center justify-center",style:{background:i.bg,color:i.color},children:i.icon}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-[13px] font-bold text-text-primary",children:t.name}),t.description&&e.jsx("div",{className:"text-[11px] text-text-secondary leading-[1.5] mt-[2px] line-clamp-2",children:t.description})]})]}),d&&e.jsx("div",{className:"font-mono text-[10px] text-text-secondary bg-bg-secondary rounded-[var(--radius-md)] px-[10px] py-[6px] whitespace-nowrap overflow-hidden text-ellipsis",children:d}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"flex gap-1 flex-wrap",children:(t.tags??[]).map(l=>{const p=st[l.toLowerCase()]??{bg:"rgba(160,157,151,0.12)",color:"var(--color-text-tertiary)"};return e.jsx("span",{className:"text-[9px] font-semibold px-[6px] py-[2px] rounded-[4px] uppercase tracking-[0.03em]",style:{background:p.bg,color:p.color},children:l},l)})}),a?e.jsxs("span",{className:"flex items-center gap-1 px-[10px] py-1 rounded-[var(--radius-md)] border text-[10px] font-semibold whitespace-nowrap",style:{borderColor:"var(--color-status-completed, #5A9E78)",color:"var(--color-status-completed, #5A9E78)",background:"rgba(90,158,120,0.06)"},children:[e.jsx(We,{size:10,strokeWidth:2.5}),"Installed"]}):e.jsxs("button",{type:"button",onClick:l=>{l.stopPropagation(),o()},className:"flex items-center gap-1 px-[10px] py-1 rounded-[var(--radius-md)] border border-border bg-bg-card text-[10px] font-semibold text-text-secondary transition-all hover:border-[var(--color-status-completed,#5A9E78)] hover:text-[var(--color-status-completed,#5A9E78)] hover:bg-[rgba(90,158,120,0.04)] whitespace-nowrap cursor-pointer",children:[e.jsx(Pe,{size:10,strokeWidth:2.5}),"Install"]})]})]})}const be={global:{bg:"rgba(91,141,184,0.12)",text:"var(--color-accent-blue, #5B8DB8)"},project:{bg:"rgba(145,120,181,0.12)",text:"var(--color-status-planning, #9178B5)"},enterprise:{bg:"rgba(200,134,58,0.12)",text:"var(--color-status-verifying, #C8863A)"},codex:{bg:"rgba(90,158,120,0.12)",text:"var(--color-status-completed, #5A9E78)"}};function lt(){const t=f(o=>o.editingServer),a=f(o=>o.setEditingServer),r=f(o=>o.updateServer);return t?e.jsx(ye,{open:!!t,onOpenChange:o=>{o||a(null)},children:e.jsxs(je,{children:[e.jsx(Ne,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),e.jsxs(we,{className:B("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-[560px] max-w-[95vw] max-h-[85vh]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-lg","flex flex-col overflow-hidden","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"),children:[e.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Ce,{className:"text-[14px] font-semibold text-text-primary",children:"Edit Server"}),e.jsx(ct,{scope:t.scope})]}),e.jsx(ke,{className:B("w-7 h-7 flex items-center justify-center rounded-[var(--radius-sm)]","text-text-tertiary hover:text-text-primary hover:bg-bg-hover","transition-colors"),"aria-label":"Close",children:e.jsx(ve,{size:14,strokeWidth:2})})]}),e.jsx(it,{server:t,onSave:o=>void r(t,o),onCancel:()=>a(null)})]})]})}):null}function it({server:t,onSave:a,onCancel:r}){var W;const o=t.transport==="stdio",n=t.scope==="enterprise",[i,d]=y.useState(t.command??""),[x,b]=y.useState(((W=t.args)==null?void 0:W.join(" "))??""),[l,p]=y.useState(t.url??""),[m,s]=y.useState(()=>t.env?Object.entries(t.env).map(([g,j])=>({key:g,value:j})):[]),[h,w]=y.useState(!1),k=y.useMemo(()=>()=>{const g={...t.raw};if(o){g.command=i;const N=x.trim().split(/\s+/).filter(Boolean);N.length>0?g.args=N:delete g.args,delete g.url}else g.url=l,delete g.command,delete g.args;delete g.env;const j={};for(const N of m)N.key.trim()&&(j[N.key.trim()]=N.value);return Object.keys(j).length>0&&(g.env=j),delete g.enabled,g},[t.raw,o,i,x,l,m]);function S(){w(!0),a(k())}function A(){s(g=>[...g,{key:"",value:""}])}function L(g){s(j=>j.filter((N,c)=>c!==g))}function J(g,j,N){s(c=>c.map((C,z)=>z===g?{...C,[j]:N}:C))}return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:[e.jsx(I,{label:"Server Name",children:e.jsx("input",{type:"text",value:t.name,readOnly:!0,className:"w-full px-3 py-2 rounded-[var(--radius-md)] border border-border bg-bg-secondary text-[12px] text-text-tertiary font-mono cursor-not-allowed"})}),e.jsx(I,{label:"Transport",children:e.jsx("div",{className:"flex items-center gap-2",children:e.jsx("span",{className:"text-[9px] font-bold px-[7px] py-[2px] rounded-[4px] uppercase tracking-[0.03em] font-mono",style:{background:o?"rgba(91,141,184,0.08)":"rgba(145,120,181,0.08)",color:o?"var(--color-accent-blue, #5B8DB8)":"var(--color-status-planning, #9178B5)"},children:t.transport})})}),n&&e.jsx("div",{className:"mb-4 px-3 py-2 rounded-[var(--radius-md)] border border-[var(--color-status-verifying,#C8863A)] bg-[rgba(200,134,58,0.06)] text-[11px] text-[var(--color-status-verifying,#C8863A)]",children:"Enterprise-managed servers cannot be edited from the dashboard."}),o&&e.jsx(I,{label:"Command",children:e.jsx("input",{type:"text",value:i,onChange:g=>d(g.target.value),disabled:n,placeholder:"e.g. npx",className:G})}),o&&e.jsx(I,{label:"Arguments",children:e.jsx("input",{type:"text",value:x,onChange:g=>b(g.target.value),disabled:n,placeholder:"space-separated arguments",className:G})}),!o&&e.jsx(I,{label:"URL",children:e.jsx("input",{type:"text",value:l,onChange:g=>p(g.target.value),disabled:n,placeholder:"https://...",className:G})}),e.jsx(I,{label:"Environment Variables",children:e.jsxs("div",{className:"space-y-2",children:[m.map((g,j)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"text",value:g.key,onChange:N=>J(j,"key",N.target.value),disabled:n,placeholder:"KEY",className:B(G,"w-[160px] shrink-0 font-mono text-[11px]")}),e.jsx("input",{type:"text",value:g.value,onChange:N=>J(j,"value",N.target.value),disabled:n,placeholder:"value",className:B(G,"flex-1 font-mono text-[11px]")}),!n&&e.jsx("button",{type:"button",onClick:()=>L(j),className:"shrink-0 w-6 h-6 flex items-center justify-center rounded-[var(--radius-sm)] text-text-tertiary hover:text-status-failed hover:bg-red-50 transition-colors",children:e.jsx(_e,{size:12,strokeWidth:2})})]},j)),!n&&e.jsxs("button",{type:"button",onClick:A,className:"flex items-center gap-1 px-2 py-1 text-[10px] font-semibold text-text-tertiary hover:text-text-primary transition-colors",children:[e.jsx(se,{size:11,strokeWidth:2}),"Add variable"]})]})})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 px-5 py-3 border-t border-border shrink-0",children:[e.jsx("button",{type:"button",onClick:r,className:"px-4 py-[6px] rounded-[var(--radius-md)] border border-border bg-bg-card text-[11px] font-semibold text-text-secondary hover:text-text-primary transition-colors",children:"Cancel"}),e.jsx("button",{type:"button",onClick:S,disabled:h||n,className:B("px-4 py-[6px] rounded-[var(--radius-md)] border-none bg-text-primary text-white text-[11px] font-semibold transition-all","hover:-translate-y-px hover:shadow-md",(h||n)&&"opacity-50 cursor-not-allowed hover:translate-y-0 hover:shadow-none"),children:h?"Saving...":"Save Changes"})]})]})}const G=B("w-full px-3 py-2 rounded-[var(--radius-md)] border border-border bg-bg-card","text-[12px] text-text-primary outline-none","focus:border-[var(--color-status-planning,#9178B5)] transition-colors","placeholder:text-text-tertiary","disabled:opacity-50 disabled:cursor-not-allowed");function I({label:t,children:a}){return e.jsxs("div",{className:"mb-4",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-[0.05em] text-text-tertiary mb-[6px]",children:t}),a]})}function ct({scope:t}){const a=be[t]??be.global;return e.jsx("span",{className:"text-[9px] font-bold px-[7px] py-[2px] rounded-[4px] uppercase tracking-[0.03em] font-mono",style:{background:a.bg,color:a.text},children:t})}const ue=[{id:"mode",label:"Mode"},{id:"configure",label:"Configure"},{id:"review",label:"Review"},{id:"progress",label:"Install"}];function dt({current:t}){const a=ue.findIndex(r=>r.id===t);return e.jsx("div",{className:"flex items-center gap-1 px-1",children:ue.map((r,o)=>{const n=o<a,i=o===a;return e.jsxs("div",{className:"flex items-center gap-1",children:[o>0&&e.jsx("div",{className:"w-8 h-px",style:{background:n?"var(--color-status-completed, #5A9E78)":"var(--color-border, #E8E5DE)"}}),e.jsxs("div",{className:"flex items-center gap-[6px]",children:[e.jsx("div",{className:"w-5 h-5 rounded-full flex items-center justify-center text-[9px] font-bold font-mono",style:{background:n?"var(--color-status-completed, #5A9E78)":i?"var(--color-text-primary, #1A1917)":"var(--color-bg-card, #F8F7F5)",color:n||i?"#fff":"var(--color-text-tertiary)",border:!n&&!i?"1px solid var(--color-border, #E8E5DE)":"none"},children:n?e.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})}):o+1}),e.jsx("span",{className:"text-[11px] font-semibold whitespace-nowrap",style:{color:i?"var(--color-text-primary)":"var(--color-text-tertiary)"},children:r.label})]})]},r.id)})})}function xt(){const t=u(p=>p.mode),a=u(p=>p.setMode),r=u(p=>p.projectPath),o=u(p=>p.setProjectPath),n=u(p=>p.detecting),i=u(p=>p.error),d=u(p=>p.detect),x=u(p=>p.manifests),b=u(p=>p.fetchManifests);y.useEffect(()=>{b()},[b]);const l=t==="global"||t==="project"&&r.trim().length>0;return e.jsxs("div",{className:"flex flex-col gap-6 max-w-[520px] mx-auto py-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-[14px] font-semibold text-text-primary mb-1",children:"Installation Mode"}),e.jsx("p",{className:"text-[12px] text-text-tertiary",children:"Choose where to install maestro commands, agents, and workflows."})]}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(he,{selected:t==="global",onClick:()=>a("global"),title:"Global",description:"Install to home directory (~/.claude/, ~/.maestro/). Available across all projects.",recommended:!0}),e.jsx(he,{selected:t==="project",onClick:()=>a("project"),title:"Project",description:"Install to a specific project directory. Commands are project-scoped."})]}),t==="project"&&e.jsxs("div",{className:"flex flex-col gap-[6px]",children:[e.jsx("label",{className:"text-[11px] font-semibold text-text-secondary uppercase tracking-[0.04em]",children:"Project Path"}),e.jsx("input",{type:"text",value:r,onChange:p=>o(p.target.value),placeholder:"/path/to/your/project",className:"w-full px-3 py-2 rounded-[var(--radius-md)] border border-border bg-bg-card text-[12px] text-text-primary placeholder:text-text-tertiary focus:outline-none focus:border-[var(--color-status-planning,#9178B5)] transition-colors"})]}),x.length>0&&e.jsxs("div",{className:"rounded-[var(--radius-md)] border border-border bg-[rgba(184,149,64,0.04)] px-4 py-3",children:[e.jsx("p",{className:"text-[11px] font-semibold text-[var(--color-status-executing,#B89540)] mb-1",children:"Existing installations found"}),e.jsx("div",{className:"flex flex-col gap-1",children:x.slice(0,3).map(p=>e.jsxs("p",{className:"text-[10px] text-text-tertiary font-mono",children:[p.scope," — v",p.version," — ",new Date(p.installedAt).toLocaleDateString()]},p.id))})]}),i&&e.jsx("div",{className:"rounded-[var(--radius-md)] border border-[rgba(196,101,85,0.3)] bg-[rgba(196,101,85,0.04)] px-4 py-3",children:e.jsx("p",{className:"text-[11px] text-status-failed",children:i})}),e.jsx("div",{className:"flex justify-end pt-2",children:e.jsx("button",{type:"button",disabled:!l||n,onClick:()=>void d(),className:"flex items-center gap-[6px] px-5 py-[8px] rounded-[var(--radius-lg)] border-none bg-text-primary text-white text-[12px] font-semibold cursor-pointer transition-all hover:-translate-y-px hover:shadow-md disabled:opacity-40 disabled:cursor-default disabled:transform-none",children:n?e.jsxs(e.Fragment,{children:[e.jsx(pt,{}),"Scanning..."]}):"Next"})})]})}function he({selected:t,onClick:a,title:r,description:o,recommended:n}){return e.jsxs("button",{type:"button",onClick:a,className:"flex items-start gap-3 p-4 rounded-[var(--radius-lg)] border text-left transition-all cursor-pointer w-full",style:{borderColor:t?"var(--color-text-primary, #1A1917)":"var(--color-border, #E8E5DE)",background:t?"rgba(26,25,23,0.02)":"var(--color-bg-card, #F8F7F5)"},children:[e.jsx("div",{className:"w-[18px] h-[18px] rounded-full border-2 flex items-center justify-center shrink-0 mt-[1px]",style:{borderColor:t?"var(--color-text-primary, #1A1917)":"var(--color-border, #E8E5DE)"},children:t&&e.jsx("div",{className:"w-[10px] h-[10px] rounded-full",style:{background:"var(--color-text-primary, #1A1917)"}})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[13px] font-semibold text-text-primary",children:r}),n&&e.jsx("span",{className:"text-[8px] font-bold px-[6px] py-[1px] rounded-full bg-[rgba(90,158,120,0.1)] text-[var(--color-status-completed,#5A9E78)] uppercase tracking-wider",children:"Recommended"})]}),e.jsx("p",{className:"text-[11px] text-text-tertiary mt-[2px] leading-[1.4]",children:o})]})]})}function pt(){return e.jsxs("svg",{className:"animate-spin w-[14px] h-[14px]",viewBox:"0 0 24 24",fill:"none",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.3"}),e.jsx("path",{d:"M12 2a10 10 0 0 1 10 10",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]})}function mt(){const t=u(s=>s.detection),a=u(s=>s.selectedComponents),r=u(s=>s.toggleComponent),o=u(s=>s.selectAllComponents),n=u(s=>s.backup),i=u(s=>s.setBackup),d=u(s=>s.mcpEnabled),x=u(s=>s.setMcpEnabled),b=u(s=>s.enabledTools),l=u(s=>s.toggleTool),p=u(s=>s.setStep);if(!t)return null;const m=t.components.filter(s=>s.available).every(s=>a.has(s.id));return e.jsxs("div",{className:"flex flex-col gap-5 max-w-[560px] mx-auto py-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("h3",{className:"text-[13px] font-semibold text-text-primary",children:"Components"}),e.jsx("button",{type:"button",onClick:o,className:"text-[10px] font-semibold text-text-tertiary hover:text-text-primary transition-colors cursor-pointer",children:m?"All selected":"Select all"})]}),e.jsxs("div",{className:"flex flex-col gap-[6px]",children:[t.components.map(s=>e.jsxs("label",{className:"flex items-center gap-3 px-3 py-[10px] rounded-[var(--radius-md)] border border-border bg-bg-card cursor-pointer hover:bg-bg-hover transition-colors",style:{opacity:s.available?1:.4,pointerEvents:s.available?"auto":"none"},children:[e.jsx("input",{type:"checkbox",checked:a.has(s.id),onChange:()=>r(s.id),disabled:!s.available,className:"w-[14px] h-[14px] accent-[var(--color-text-primary,#1A1917)] cursor-pointer"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-[12px] font-semibold text-text-primary",children:s.label}),e.jsxs("span",{className:"text-[10px] text-text-tertiary ml-2 font-mono",children:[s.fileCount," files"]})]}),e.jsx("span",{className:"text-[9px] text-text-tertiary font-mono max-w-[200px] truncate",title:s.targetDir,children:s.targetDir.replace(/\\/g,"/").replace(/^.*\/\./,"~/.")})]},s.id)),e.jsxs("label",{className:"flex items-center gap-3 px-3 py-[10px] rounded-[var(--radius-md)] border border-border bg-bg-card cursor-pointer hover:bg-bg-hover transition-colors",children:[e.jsx("input",{type:"checkbox",checked:a.has("mcp"),onChange:()=>r("mcp"),className:"w-[14px] h-[14px] accent-[var(--color-text-primary,#1A1917)] cursor-pointer"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-[12px] font-semibold text-text-primary",children:"MCP Server"}),e.jsx("span",{className:"text-[10px] text-text-tertiary ml-2",children:"Register maestro-tools MCP"})]})]})]})]}),t.existingManifest&&e.jsxs("div",{className:"rounded-[var(--radius-md)] border border-[rgba(184,149,64,0.3)] bg-[rgba(184,149,64,0.04)] px-4 py-3",children:[e.jsxs("p",{className:"text-[11px] font-semibold text-[var(--color-status-executing,#B89540)] mb-2",children:["Existing installation (v",t.existingManifest.version,") will be overwritten"]}),e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:n,onChange:s=>i(s.target.checked),className:"w-[14px] h-[14px] accent-[var(--color-status-executing,#B89540)] cursor-pointer"}),e.jsx("span",{className:"text-[11px] text-text-secondary",children:"Create backup before installing"})]})]}),a.has("mcp")&&e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("h3",{className:"text-[13px] font-semibold text-text-primary",children:"MCP Tools"}),e.jsxs("label",{className:"flex items-center gap-[6px] cursor-pointer ml-auto",children:[e.jsx("input",{type:"checkbox",checked:d,onChange:s=>x(s.target.checked),className:"w-[13px] h-[13px] accent-[var(--color-text-primary,#1A1917)] cursor-pointer"}),e.jsx("span",{className:"text-[10px] text-text-secondary font-semibold",children:"Enable MCP"})]})]}),d&&e.jsx("div",{className:"flex flex-wrap gap-[6px]",children:re.map(s=>e.jsx("button",{type:"button",onClick:()=>l(s),className:"px-[10px] py-[5px] rounded-full border text-[10px] font-mono font-semibold transition-all cursor-pointer",style:{borderColor:b.has(s)?"var(--color-text-primary)":"var(--color-border)",background:b.has(s)?"var(--color-text-primary)":"var(--color-bg-card)",color:b.has(s)?"#fff":"var(--color-text-tertiary)"},children:s},s))})]}),e.jsx(bt,{}),t.disabledItems.length>0&&e.jsxs("div",{className:"rounded-[var(--radius-md)] border border-border bg-bg-card px-4 py-3",children:[e.jsxs("p",{className:"text-[11px] font-semibold text-text-secondary mb-1",children:[t.disabledItems.length," disabled item(s) will be preserved"]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:t.disabledItems.map(s=>e.jsxs("span",{className:"text-[9px] font-mono text-text-tertiary px-[6px] py-[2px] rounded bg-bg-secondary",children:[s.name," (",s.type,")"]},s.relativePath))})]}),e.jsxs("div",{className:"flex items-center justify-between pt-2",children:[e.jsx("button",{type:"button",onClick:()=>p("mode"),className:"px-4 py-[7px] rounded-[var(--radius-lg)] border border-border bg-bg-card text-[12px] font-semibold text-text-secondary hover:text-text-primary hover:border-text-tertiary transition-all cursor-pointer",children:"Back"}),e.jsx("button",{type:"button",onClick:()=>p("review"),disabled:a.size===0,className:"px-5 py-[8px] rounded-[var(--radius-lg)] border-none bg-text-primary text-white text-[12px] font-semibold cursor-pointer transition-all hover:-translate-y-px hover:shadow-md disabled:opacity-40 disabled:cursor-default disabled:transform-none",children:"Review"})]})]})}function bt(){const t=u(o=>o.addons),a=u(o=>o.addonInstalling),r=u(o=>o.installAddon);return t.length===0?null:e.jsxs("div",{children:[e.jsx("h3",{className:"text-[13px] font-semibold text-text-primary mb-3",children:"Addons"}),e.jsx("div",{className:"flex flex-col gap-[6px]",children:t.map(o=>{var d;const n=Object.entries(o.harnesses),i=n.every(([,x])=>x);return e.jsxs("div",{className:"px-3 py-[10px] rounded-[var(--radius-md)] border border-border bg-bg-card",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[12px] font-semibold text-text-primary",children:o.name}),(d=o.tags)==null?void 0:d.map(x=>e.jsx("span",{className:"text-[9px] font-mono text-text-tertiary px-[5px] py-[1px] rounded bg-bg-secondary",children:x},x))]}),e.jsx("p",{className:"text-[10px] text-text-tertiary mt-[2px] leading-relaxed",children:o.description})]}),i?e.jsx("span",{className:"text-[10px] font-semibold text-[var(--color-status-completed,#5A9E78)] px-3 py-[5px] shrink-0",children:"Installed"}):e.jsx("button",{type:"button",disabled:a===o.id,onClick:()=>r(o.id),className:"px-3 py-[5px] rounded-[var(--radius-md)] border border-text-primary bg-transparent text-[10px] font-semibold text-text-primary hover:bg-text-primary hover:text-white transition-all cursor-pointer disabled:opacity-40 disabled:cursor-default shrink-0",children:a===o.id?"Installing...":"Install All"})]}),e.jsx("div",{className:"flex items-center gap-3 mt-2",children:n.map(([x,b])=>e.jsxs("div",{className:"flex items-center gap-[5px]",children:[e.jsx("span",{className:"w-[6px] h-[6px] rounded-full shrink-0",style:{background:b?"var(--color-status-completed,#5A9E78)":"var(--color-text-tertiary)"}}),e.jsx("span",{className:"text-[10px] font-mono text-text-tertiary",children:x}),!b&&!i&&e.jsx("button",{type:"button",disabled:a===o.id,onClick:()=>r(o.id,[x]),className:"text-[9px] text-text-tertiary hover:text-text-primary underline cursor-pointer disabled:opacity-40 disabled:cursor-default",children:"install"})]},x))})]},o.id)})})]})}function ut(){const t=u(s=>s.mode),a=u(s=>s.projectPath),r=u(s=>s.detection),o=u(s=>s.selectedComponents),n=u(s=>s.backup),i=u(s=>s.mcpEnabled),d=u(s=>s.enabledTools),x=u(s=>s.setStep),b=u(s=>s.install);if(!r)return null;const l=r.components.filter(s=>s.available&&o.has(s.id)),p=l.reduce((s,h)=>s+h.fileCount,0),m=o.has("mcp");return e.jsxs("div",{className:"flex flex-col gap-5 max-w-[560px] mx-auto py-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-[14px] font-semibold text-text-primary mb-1",children:"Review Installation"}),e.jsx("p",{className:"text-[12px] text-text-tertiary",children:"Confirm the following will be installed."})]}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx(K,{label:"Mode",value:t}),e.jsx(K,{label:"Components",value:String(l.length+(m?1:0))}),e.jsx(K,{label:"Files",value:String(p)}),e.jsx(K,{label:"Backup",value:n&&r.existingManifest?"Yes":"No"})]}),t==="project"&&a&&e.jsxs("div",{className:"flex gap-2 items-center text-[11px]",children:[e.jsx("span",{className:"font-semibold text-text-secondary",children:"Project:"}),e.jsx("span",{className:"font-mono text-text-tertiary",children:a})]}),e.jsx("div",{className:"rounded-[var(--radius-md)] border border-border overflow-hidden",children:e.jsxs("table",{className:"w-full border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left text-[9px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-3 py-[6px] bg-bg-secondary border-b border-border",children:"Component"}),e.jsx("th",{className:"text-left text-[9px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-3 py-[6px] bg-bg-secondary border-b border-border",children:"Target"}),e.jsx("th",{className:"text-right text-[9px] font-semibold uppercase tracking-[0.05em] text-text-tertiary px-3 py-[6px] bg-bg-secondary border-b border-border w-[60px]",children:"Files"})]})}),e.jsxs("tbody",{children:[l.map(s=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-3 py-2 border-b border-border-divider text-[11px] font-semibold text-text-primary",children:s.label}),e.jsx("td",{className:"px-3 py-2 border-b border-border-divider text-[10px] font-mono text-text-tertiary max-w-[250px] truncate",title:s.targetDir,children:s.targetDir.replace(/\\/g,"/").replace(/^.*\/\./,"~/.")}),e.jsx("td",{className:"px-3 py-2 border-b border-border-divider text-[11px] font-mono text-text-secondary text-right",children:s.fileCount})]},s.id)),m&&e.jsxs("tr",{children:[e.jsx("td",{className:"px-3 py-2 border-b border-border-divider text-[11px] font-semibold text-text-primary",children:"MCP Server"}),e.jsx("td",{className:"px-3 py-2 border-b border-border-divider text-[10px] font-mono text-text-tertiary",children:t==="project"?".mcp.json":"~/.claude.json"}),e.jsx("td",{className:"px-3 py-2 border-b border-border-divider text-[11px] font-mono text-text-secondary text-right",children:"—"})]})]})]})}),m&&i&&e.jsxs("div",{className:"rounded-[var(--radius-md)] border border-border bg-bg-card px-4 py-3",children:[e.jsx("p",{className:"text-[10px] font-semibold text-text-secondary uppercase tracking-[0.04em] mb-1",children:"MCP Tools"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:Array.from(d).map(s=>e.jsx("span",{className:"text-[9px] font-mono font-semibold px-[7px] py-[2px] rounded-full bg-[rgba(90,158,120,0.08)] text-[var(--color-status-completed,#5A9E78)]",children:s},s))})]}),e.jsxs("div",{className:"flex items-center justify-between pt-2",children:[e.jsx("button",{type:"button",onClick:()=>x("configure"),className:"px-4 py-[7px] rounded-[var(--radius-lg)] border border-border bg-bg-card text-[12px] font-semibold text-text-secondary hover:text-text-primary hover:border-text-tertiary transition-all cursor-pointer",children:"Back"}),e.jsx("button",{type:"button",onClick:()=>void b(),className:"px-5 py-[8px] rounded-[var(--radius-lg)] border-none bg-[var(--color-status-completed,#5A9E78)] text-white text-[12px] font-semibold cursor-pointer transition-all hover:-translate-y-px hover:shadow-md",children:"Install"})]})]})}function K({label:t,value:a}){return e.jsxs("div",{className:"flex-1 rounded-[var(--radius-md)] border border-border bg-bg-card px-3 py-2 text-center",children:[e.jsx("div",{className:"text-[14px] font-extrabold text-text-primary font-mono capitalize",children:a}),e.jsx("div",{className:"text-[9px] font-semibold text-text-tertiary uppercase tracking-[0.04em]",children:t})]})}function ht(){const t=u(n=>n.installing),a=u(n=>n.result),r=u(n=>n.setOpen),o=u(n=>n.reset);return t?e.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 py-16",children:[e.jsxs("svg",{className:"animate-spin w-8 h-8 text-text-primary",viewBox:"0 0 24 24",fill:"none",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"2.5",opacity:"0.15"}),e.jsx("path",{d:"M12 2a10 10 0 0 1 10 10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})]}),e.jsx("p",{className:"text-[13px] font-semibold text-text-primary",children:"Installing..."}),e.jsx("p",{className:"text-[11px] text-text-tertiary",children:"Copying files and registering configuration"})]}):a?a.success?e.jsxs("div",{className:"flex flex-col items-center gap-5 py-10 max-w-[440px] mx-auto",children:[e.jsx("div",{className:"w-12 h-12 rounded-full flex items-center justify-center",style:{background:"rgba(90,158,120,0.1)"},children:e.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-status-completed, #5A9E78)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})})}),e.jsxs("div",{className:"text-center",children:[e.jsx("h3",{className:"text-[14px] font-semibold text-text-primary mb-1",children:"Installation Complete"}),e.jsx("p",{className:"text-[11px] text-text-tertiary",children:"All components installed successfully."})]}),e.jsxs("div",{className:"w-full rounded-[var(--radius-md)] border border-border bg-bg-card overflow-hidden",children:[e.jsx(D,{label:"Files installed",value:String(a.filesInstalled)}),e.jsx(D,{label:"Directories created",value:String(a.dirsCreated)}),e.jsx(D,{label:"Components",value:a.components.join(", ")}),a.disabledItemsRestored>0&&e.jsx(D,{label:"Disabled items restored",value:String(a.disabledItemsRestored)}),e.jsx(D,{label:"MCP registered",value:a.mcpRegistered?"Yes":"No"}),e.jsx(D,{label:"Manifest",value:a.manifestPath.replace(/\\/g,"/").split("/").slice(-1)[0],last:!0})]}),a.migrationWarnings&&a.migrationWarnings.length>0&&e.jsxs("div",{className:"w-full rounded-[var(--radius-md)] border border-[rgba(184,149,64,0.3)] bg-[rgba(184,149,64,0.04)] px-4 py-3",children:[e.jsx("p",{className:"text-[11px] font-semibold text-[var(--color-status-executing,#B89540)] mb-2",children:"Migration Warnings"}),a.migrationWarnings.map((n,i)=>e.jsx("p",{className:"text-[10px] text-text-secondary mb-1 break-all",children:n},i))]}),e.jsx("button",{type:"button",onClick:()=>r(!1),className:"px-5 py-[8px] rounded-[var(--radius-lg)] border-none bg-text-primary text-white text-[12px] font-semibold cursor-pointer transition-all hover:-translate-y-px hover:shadow-md",children:"Done"})]}):e.jsxs("div",{className:"flex flex-col items-center gap-5 py-10 max-w-[440px] mx-auto",children:[e.jsx("div",{className:"w-12 h-12 rounded-full flex items-center justify-center",style:{background:"rgba(196,101,85,0.1)"},children:e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-status-failed, #C46555)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),e.jsxs("div",{className:"text-center",children:[e.jsx("h3",{className:"text-[14px] font-semibold text-text-primary mb-1",children:"Installation Failed"}),e.jsx("p",{className:"text-[11px] text-status-failed",children:a.error})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx("button",{type:"button",onClick:o,className:"px-4 py-[7px] rounded-[var(--radius-lg)] border border-border bg-bg-card text-[12px] font-semibold text-text-secondary hover:text-text-primary transition-all cursor-pointer",children:"Try Again"}),e.jsx("button",{type:"button",onClick:()=>r(!1),className:"px-4 py-[7px] rounded-[var(--radius-lg)] border-none bg-text-primary text-white text-[12px] font-semibold cursor-pointer transition-all",children:"Close"})]})]}):null}function D({label:t,value:a,last:r}){return e.jsxs("div",{className:"flex items-center justify-between px-4 py-[8px]",style:{borderBottom:r?"none":"1px solid var(--color-border-divider)"},children:[e.jsx("span",{className:"text-[10px] font-semibold text-text-tertiary uppercase tracking-[0.04em]",children:t}),e.jsx("span",{className:"text-[11px] font-mono text-text-primary",children:a})]})}function ft(){const t=u(n=>n.open),a=u(n=>n.setOpen),r=u(n=>n.step),o=u(n=>n.installing);return e.jsx(ye,{open:t,onOpenChange:n=>{!n&&o||a(n)},children:e.jsxs(je,{children:[e.jsx(Ne,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),e.jsxs(we,{className:B("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-[640px] max-w-[95vw] max-h-[85vh]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-lg","flex flex-col overflow-hidden","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"),children:[e.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(Ce,{className:"text-[14px] font-semibold text-text-primary",children:"Install Wizard"}),e.jsx(dt,{current:r})]}),!o&&e.jsx(ke,{className:B("w-7 h-7 flex items-center justify-center rounded-[var(--radius-sm)]","text-text-tertiary hover:text-text-primary hover:bg-bg-hover","transition-colors"),"aria-label":"Close",children:e.jsxs("svg",{className:"w-[14px] h-[14px]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-5",children:[r==="mode"&&e.jsx(xt,{}),r==="configure"&&e.jsx(mt,{}),r==="review"&&e.jsx(ut,{}),r==="progress"&&e.jsx(ht,{})]})]})]})})}const gt=[{label:"List",icon:e.jsx(Oe,{size:14,strokeWidth:1.8}),shortcut:"1"},{label:"Cards",icon:e.jsx(Le,{size:14,strokeWidth:1.8}),shortcut:"2"},{label:"Templates",icon:e.jsx($e,{size:14,strokeWidth:1.8}),shortcut:"3"}],fe=["list","cards","templates"],te={initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8}};function Mt(){const t=f(l=>l.activeView),a=f(l=>l.setActiveView),r=f(l=>l.fetchConfig),o=f(l=>l.fetchTemplates),n=f(l=>l.loading),i=f(l=>l.error),{register:d,unregister:x}=y.useContext(Me),b=y.useCallback(l=>a(fe[l]),[a]);return y.useEffect(()=>{d({items:gt.map(l=>({label:l.label,icon:l.icon,shortcut:l.shortcut})),activeIndex:fe.indexOf(t),onSwitch:b})},[t,d,b]),y.useEffect(()=>()=>x(),[x]),y.useEffect(()=>{function l(p){p.target instanceof HTMLInputElement||p.target instanceof HTMLTextAreaElement||(p.key==="1"?a("list"):p.key==="2"?a("cards"):p.key==="3"&&a("templates"))}return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[a]),y.useEffect(()=>{r(),o()},[r,o]),n?e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-sm)]",children:"Loading MCP configuration..."}):i?e.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[e.jsx("span",{className:"text-status-failed text-[length:var(--font-size-sm)]",children:"Failed to load MCP config"}),e.jsx("span",{className:"text-text-tertiary text-[length:var(--font-size-xs)]",children:i}),e.jsx("button",{type:"button",onClick:()=>void r(),className:"px-3 py-1 rounded-[var(--radius-md)] text-[11px] font-semibold text-text-secondary hover:text-text-primary transition-all",style:{border:"var(--style-btn-secondary-border)",background:"var(--style-btn-secondary-bg)"},children:"Retry"})]}):e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsx(ft,{}),e.jsx(lt,{}),e.jsxs(Be,{mode:"wait",children:[t==="list"&&e.jsx(M.div,{className:"flex-1 flex flex-col overflow-hidden",variants:te,initial:"initial",animate:"animate",exit:"exit",transition:{duration:.25,ease:[.34,1.56,.64,1]},children:e.jsx(Qe,{})},"list"),t==="cards"&&e.jsx(M.div,{className:"flex-1 flex flex-col overflow-hidden",variants:te,initial:"initial",animate:"animate",exit:"exit",transition:{duration:.25,ease:[.34,1.56,.64,1]},children:e.jsx(rt,{})},"cards"),t==="templates"&&e.jsx(M.div,{className:"flex-1 flex flex-col overflow-hidden",variants:te,initial:"initial",animate:"animate",exit:"exit",transition:{duration:.25,ease:[.34,1.56,.64,1]},children:e.jsx(at,{})},"templates")]})]})}export{Mt as McpPage};
@@ -1,36 +0,0 @@
1
- import{d as S,o as se,a7 as F,r as p,j as e,a4 as H,a8 as ie,F as U,a9 as le,X as ce,R as de,P as xe,O as pe,f as be,T as ue,h as O,i as A,V as me}from"./index-DQIlX2w_.js";import{u as ge}from"./shallow-CJEesgtu.js";import{C as ye}from"./columns-3-Ch5KIyRa.js";import{L as fe}from"./list-CI-XIPZh.js";import{S as he}from"./search-b78eLlw2.js";import{C as Y}from"./circle-CjpslL_D.js";import{m as z}from"./proxy-CcYyZZWI.js";import{C as ve}from"./circle-alert-CuzAg2fd.js";import{T as J}from"./trash-2-CVh9mnRj.js";import{P as X}from"./pen-line-CR8GaHt-.js";import{C as we}from"./check-Bs8PM0tQ.js";/**
2
- * @license lucide-react v0.577.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const je=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Q=S("arrow-down",je);/**
7
- * @license lucide-react v0.577.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const ke=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]],Ne=S("compass",ke);/**
12
- * @license lucide-react v0.577.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const Ce=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Ee=S("eye-off",Ce);/**
17
- * @license lucide-react v0.577.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const Be=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ae=S("eye",Be);/**
22
- * @license lucide-react v0.577.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const Se=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],De=S("settings",Se);/**
27
- * @license lucide-react v0.577.0 - ISC
28
- *
29
- * This source code is licensed under the ISC license.
30
- * See the LICENSE file in the root directory of this source tree.
31
- */const Te=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],R=S("shield",Te);/**
32
- * @license lucide-react v0.577.0 - ISC
33
- *
34
- * This source code is licensed under the ISC license.
35
- * See the LICENSE file in the root directory of this source tree.
36
- */const Fe=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],Z=S("tag",Fe),y=se((r,c)=>({entries:[],files:[],loading:!1,error:null,activeView:"kanban",typeFilter:"all",categoryFilter:"all",keywordFilter:"all",search:"",selectedEntry:null,hiddenColumns:new Set,setActiveView:o=>r({activeView:o}),setTypeFilter:o=>r({typeFilter:o}),setCategoryFilter:o=>r({categoryFilter:o}),setKeywordFilter:o=>r({keywordFilter:o}),setSearch:o=>r({search:o}),setSelectedEntry:o=>r({selectedEntry:o}),toggleColumn:o=>r(n=>{const s=new Set(n.hiddenColumns);return s.has(o)?s.delete(o):s.add(o),{hiddenColumns:s}}),fetchEntries:async()=>{r({loading:!0,error:null});try{const o=await fetch(F.SPECS);if(!o.ok)throw new Error(`Failed: ${o.status}`);const n=await o.json();r({entries:n.entries??[],loading:!1})}catch(o){r({loading:!1,error:String(o)})}},fetchFiles:async()=>{try{const o=await fetch(F.SPECS_FILES);if(!o.ok)return;const n=await o.json();r({files:n.files??[]})}catch{}},addEntry:async(o,n,s)=>{r({error:null});try{const d=await fetch(F.SPECS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:o,content:n,file:s})});if(!d.ok){const g=await d.json().catch(()=>({error:`HTTP ${d.status}`}));throw new Error(g.error)}return c().fetchEntries(),null}catch(d){return r({error:String(d)}),null}},deleteEntry:async o=>{r({error:null});const n=c().entries;r(s=>({entries:s.entries.filter(d=>d.id!==o)}));try{(await fetch(`${F.SPECS}/${o}`,{method:"DELETE"})).ok||r({entries:n})}catch{r({entries:n})}},filteredEntries:()=>{const{entries:o,typeFilter:n,categoryFilter:s,keywordFilter:d,search:g}=c();let f=o;if(n!=="all"&&(f=f.filter(u=>u.type===n)),s!=="all"&&(f=f.filter(u=>u.category===s)),d!=="all"&&(f=f.filter(u=>u.keywords.includes(d))),g){const u=g.toLowerCase();f=f.filter(h=>h.title.toLowerCase().includes(u)||h.content.toLowerCase().includes(u)||h.id.toLowerCase().includes(u)||h.keywords.some(v=>v.toLowerCase().includes(u)))}return f},entriesByType:()=>{const o=c().filteredEntries(),n={bug:[],pattern:[],decision:[],rule:[],debug:[],test:[],review:[],validation:[],general:[],learning:[],coding:[],arch:[],quality:[]};for(const s of o)(n[s.type]??n.general).push(s);return n},typeCounts:()=>{const{entries:o}=c(),n={all:o.length,bug:0,pattern:0,decision:0,rule:0,debug:0,test:0,review:0,validation:0,general:0};for(const s of o)n[s.type]=(n[s.type]??0)+1;return n},allCategories:()=>{const{entries:o}=c(),n=new Set;for(const s of o)s.category&&n.add(s.category);return Array.from(n).sort()},allKeywords:()=>{const{entries:o}=c(),n=new Set;for(const s of o)for(const d of s.keywords)n.add(d);return Array.from(n).sort()}})),_e={general:{label:"General",icon:e.jsx(Y,{size:14,strokeWidth:1.8}),tintBg:"var(--color-tint-pending)",color:"#A09D97"},planning:{label:"Planning",icon:e.jsx(Ne,{size:14,strokeWidth:1.8}),tintBg:"var(--color-tint-planning)",color:"#9178B5"},execution:{label:"Execution",icon:e.jsx(De,{size:14,strokeWidth:1.8}),tintBg:"var(--color-tint-exploring)",color:"#5B8DB8"},debug:{label:"Debug",icon:e.jsx(ve,{size:14,strokeWidth:1.8}),tintBg:"var(--color-tint-blocked)",color:"#C46555"},test:{label:"Test",icon:e.jsx(R,{size:14,strokeWidth:1.8}),tintBg:"var(--color-tint-completed)",color:"#5A9E78"},review:{label:"Review",icon:e.jsx(le,{size:14,strokeWidth:1.8}),tintBg:"rgba(219,176,108,0.12)",color:"#C4A055"},validation:{label:"Validation",icon:e.jsx(R,{size:14,strokeWidth:1.8}),tintBg:"rgba(90,158,120,0.10)",color:"#3D8B5F"}},Le=["general","planning","execution","debug","test","review","validation"],ze={label:"",icon:e.jsx(Y,{size:14,strokeWidth:1.8}),tintBg:"var(--color-tint-pending)",color:"#A09D97"};function I(r){return _e[r]??{...ze,label:r.charAt(0).toUpperCase()+r.slice(1)}}const Me={coding:{bg:"var(--color-tint-exploring)",text:"#5B8DB8"},arch:{bg:"var(--color-tint-planning)",text:"#9178B5"},quality:{bg:"var(--color-tint-completed)",text:"#5A9E78"},debug:{bg:"rgba(196,101,85,0.10)",text:"#B85B4A"},test:{bg:"rgba(90,158,120,0.10)",text:"#3D8B5F"},review:{bg:"rgba(219,176,108,0.12)",text:"#C4A055"},learning:{bg:"var(--color-tint-blocked)",text:"#C46555"},bug:{bg:"var(--color-tint-blocked)",text:"#C46555"},pattern:{bg:"var(--color-tint-exploring)",text:"#5B8DB8"},decision:{bg:"var(--color-tint-planning)",text:"#9178B5"},rule:{bg:"var(--color-tint-completed)",text:"#5A9E78"},validation:{bg:"rgba(91,141,184,0.10)",text:"#4A7DA8"},general:{bg:"var(--color-tint-pending)",text:"#A09D97"}},We={bg:"var(--color-tint-pending)",text:"#A09D97"};function qe(r){if(!r)return"--";const c=new Date(r);if(isNaN(c.getTime()))return"--";const n=Date.now()-c.getTime(),s=Math.floor(n/6e4);if(s<1)return"now";if(s<60)return`${s}m ago`;const d=Math.floor(s/60);return d<24?`${d}h ago`:`${Math.floor(d/24)}d ago`}function $e({onAddEntry:r}){const c=y(a=>a.entries),o=y(a=>a.typeFilter),n=y(a=>a.keywordFilter),s=y(a=>a.search),d=y(a=>a.selectedEntry),g=y(a=>a.setSelectedEntry),f=y(a=>a.setKeywordFilter),u=y(a=>a.hiddenColumns),h=y(a=>a.toggleColumn),v=p.useMemo(()=>{const a=new Set;for(const x of c)x.category&&a.add(x.category);const i=[];for(const x of Le)a.has(x)&&(i.push(x),a.delete(x));for(const x of Array.from(a).sort())i.push(x);return i},[c]),N=p.useMemo(()=>{const a=new Set;for(const i of c)for(const x of i.keywords)a.add(x);return Array.from(a).sort()},[c]),w=p.useMemo(()=>{let a=c;if(o!=="all"&&(a=a.filter(i=>i.type===o)),n!=="all"&&(a=a.filter(i=>i.keywords.includes(n))),s){const i=s.toLowerCase();a=a.filter(x=>x.title.toLowerCase().includes(i)||x.content.toLowerCase().includes(i)||x.id.toLowerCase().includes(i)||x.keywords.some(C=>C.toLowerCase().includes(i)))}return a},[c,o,n,s]),m=p.useMemo(()=>{const a={};for(const i of v)a[i]=[];for(const i of w){const x=i.category||"general";a[x]||(a[x]=[]),a[x].push(i)}return a},[w,v]),k=p.useMemo(()=>{const a={};for(const i of c){const x=i.category||"general";a[x]=(a[x]??0)+1}return a},[c]),B=p.useMemo(()=>v.filter(a=>!u.has(a)),[v,u]);return e.jsxs("div",{className:"flex flex-col flex-1 overflow-hidden",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-[6px] px-5 py-2 border-b border-border-divider bg-bg-primary shrink-0",children:[v.map(a=>{const i=I(a),x=!u.has(a),C=k[a]??0;return e.jsxs("button",{type:"button",onClick:()=>h(a),className:["text-[11px] font-medium px-[10px] py-[4px] rounded-full border cursor-pointer transition-all","flex items-center gap-[5px]",x?"bg-bg-card text-text-primary border-border hover:shadow-sm":"bg-bg-secondary text-text-quaternary border-border-divider opacity-60"].join(" "),style:x?{borderColor:i.color,boxShadow:`0 0 0 1px ${i.color}22`}:void 0,children:[e.jsx("span",{className:"w-2 h-2 rounded-full shrink-0 transition-opacity",style:{background:i.color,opacity:x?1:.35}}),i.label,e.jsx("span",{className:"text-[10px] font-mono opacity-60",children:C})]},a)}),N.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-px h-[18px] bg-border-divider mx-1"}),e.jsx(Z,{size:11,strokeWidth:2,className:"text-text-quaternary shrink-0"}),N.map(a=>{const i=n===a;return e.jsx("button",{type:"button",onClick:()=>f(i?"all":a),className:["text-[10px] font-medium px-2 py-[2px] rounded-[4px] border cursor-pointer transition-all",i?"bg-text-primary text-white border-text-primary":"bg-bg-card text-text-tertiary border-border-divider hover:border-text-tertiary hover:text-text-primary"].join(" "),children:a},a)})]})]}),e.jsxs("div",{className:"flex gap-3 flex-1 overflow-x-auto p-3",children:[B.map((a,i)=>{const x=I(a),C=m[a]??[];return e.jsxs("div",{className:"flex flex-col min-w-[260px] flex-1 bg-bg-secondary rounded-[12px] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 px-[14px] py-3 border-b border-black/[0.04]",children:[e.jsx("div",{className:"w-7 h-7 rounded-[8px] flex items-center justify-center shrink-0",style:{background:x.tintBg,color:x.color},children:x.icon}),e.jsx("span",{className:"text-[13px] font-bold text-text-primary",children:x.label}),e.jsx("span",{className:"text-[10px] text-text-tertiary bg-bg-card px-[6px] rounded-full font-mono",children:C.length}),e.jsx("button",{type:"button",onClick:r,className:"ml-auto w-6 h-6 rounded-[6px] border border-dashed border-border bg-transparent cursor-pointer flex items-center justify-center text-text-quaternary hover:border-text-tertiary hover:text-text-primary hover:bg-bg-card transition-all",children:e.jsx(H,{size:12,strokeWidth:2})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-2 flex flex-col gap-2",children:[C.map((E,D)=>e.jsx(Ve,{entry:E,selected:d===E.id,onClick:()=>g(E.id),index:i*100+D},E.id)),C.length===0&&e.jsx("div",{className:"flex items-center justify-center py-8 text-[11px] text-text-quaternary",children:"No entries"})]})]},a)}),B.length===0&&e.jsx("div",{className:"flex items-center justify-center flex-1 text-[13px] text-text-tertiary",children:"All columns hidden — click a category tag above to show it."})]})]})}function Ve({entry:r,selected:c,onClick:o,index:n}){const s=Me[r.type]??We;return e.jsxs(z.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,delay:Math.min(n*.03,.3)},onClick:o,className:["bg-bg-card rounded-[10px] px-[14px] py-3 border cursor-pointer","transition-all duration-[180ms]","hover:-translate-y-[2px] hover:shadow-[0_4px_16px_rgba(0,0,0,0.06)] hover:border-border",c?"border-[#9178B5] shadow-[0_0_0_2px_rgba(145,120,181,0.2)]":"border-border-divider"].join(" "),children:[e.jsxs("div",{className:"flex items-center gap-[6px] mb-2",children:[e.jsx("span",{className:"text-[9px] font-bold px-[7px] py-[2px] rounded-[4px] uppercase font-mono tracking-[0.04em]",style:{background:s.bg,color:s.text},children:r.type}),e.jsx("span",{className:"text-[10px] font-mono text-text-quaternary ml-auto",children:r.id})]}),e.jsx("div",{className:"text-[13px] text-text-primary font-medium leading-[1.5] mb-2 line-clamp-3",children:r.content||r.title}),r.keywords.length>0&&e.jsxs("div",{className:"flex flex-wrap gap-1 mb-2",children:[r.keywords.slice(0,4).map(d=>e.jsx("span",{className:"text-[9px] px-[5px] py-[1px] rounded-[3px] bg-bg-secondary text-text-tertiary font-mono",children:d},d)),r.keywords.length>4&&e.jsxs("span",{className:"text-[9px] text-text-quaternary font-mono",children:["+",r.keywords.length-4]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"text-[10px] text-text-quaternary font-mono flex items-center gap-[3px]",children:[e.jsx(ie,{size:10,strokeWidth:2}),qe(r.timestamp)]}),r.file&&e.jsxs("span",{className:"text-[10px] text-text-tertiary flex items-center gap-[3px] ml-auto",children:[e.jsx(U,{size:10,strokeWidth:2}),r.file.split("/").pop()]})]})]})}const Pe={coding:{bg:"var(--color-tint-exploring)",text:"#5B8DB8"},arch:{bg:"var(--color-tint-planning)",text:"#9178B5"},quality:{bg:"var(--color-tint-completed)",text:"#5A9E78"},debug:{bg:"rgba(196,101,85,0.10)",text:"#B85B4A"},test:{bg:"rgba(90,158,120,0.10)",text:"#3D8B5F"},review:{bg:"rgba(219,176,108,0.12)",text:"#C4A055"},learning:{bg:"var(--color-tint-blocked)",text:"#C46555"},bug:{bg:"var(--color-tint-blocked)",text:"#C46555"},pattern:{bg:"var(--color-tint-exploring)",text:"#5B8DB8"},decision:{bg:"var(--color-tint-planning)",text:"#9178B5"},rule:{bg:"var(--color-tint-completed)",text:"#5A9E78"},validation:{bg:"rgba(91,141,184,0.10)",text:"#4A7DA8"},general:{bg:"var(--color-tint-pending)",text:"#A09D97"}},Oe={bg:"var(--color-tint-pending)",text:"#A09D97"},Re={coding:"#5B8DB8",arch:"#9178B5",quality:"#5A9E78",debug:"#B85B4A",test:"#3D8B5F",review:"#C4A055",learning:"#C46555",bug:"#C46555",pattern:"#5B8DB8",decision:"#9178B5",rule:"#5A9E78",validation:"#4A7DA8",general:"#A09D97"},ee={coding:"#5B8DB8",arch:"#9178B5",quality:"#5A9E78",learning:"#A09D97",debug:"#C46555",test:"#5A9E78",review:"#C4A055"},Ie=[{value:"all",label:"All"},{value:"bug",label:"Bug"},{value:"pattern",label:"Pattern"},{value:"decision",label:"Decision"},{value:"rule",label:"Rule"},{value:"debug",label:"Debug"},{value:"test",label:"Test"},{value:"review",label:"Review"},{value:"validation",label:"Validation"},{value:"general",label:"General"}],K=[{key:"id",label:"ID",width:60},{key:"type",label:"Type",width:80},{key:"category",label:"Category",width:100},{key:"content",label:"Content",alwaysVisible:!0},{key:"keywords",label:"Keywords",width:180},{key:"file",label:"File",width:140},{key:"added",label:"Added",width:90},{key:"actions",label:"",width:80,alwaysVisible:!0}];function Ke(r){if(!r)return"--";const c=new Date(r);if(isNaN(c.getTime()))return"--";const n=Date.now()-c.getTime(),s=Math.floor(n/6e4);if(s<1)return"now";if(s<60)return`${s}m ago`;const d=Math.floor(s/60);return d<24?`${d}h ago`:`${Math.floor(d/24)}d ago`}function Ge(){const r=y(t=>t.entries),c=y(t=>t.typeFilter),o=y(t=>t.setTypeFilter),n=y(t=>t.categoryFilter),s=y(t=>t.setCategoryFilter),d=y(t=>t.keywordFilter),g=y(t=>t.setKeywordFilter),f=y(t=>t.search),u=y(t=>t.selectedEntry),h=y(t=>t.setSelectedEntry),v=y(t=>t.deleteEntry),N=y(t=>t.addEntry),[w,m]=p.useState("timestamp"),[k,B]=p.useState("desc"),[a,i]=p.useState(!1),[x,C]=p.useState("bug"),[E,D]=p.useState(""),[L,te]=p.useState(new Set),re=p.useCallback(t=>{te(l=>{const b=new Set(l);return b.has(t)?b.delete(t):b.add(t),b})},[]),T=p.useMemo(()=>K.filter(t=>t.alwaysVisible||!L.has(t.key)),[L]),M=p.useMemo(()=>{const t=new Set;for(const l of r)l.category&&t.add(l.category);return Array.from(t).sort()},[r]),W=p.useMemo(()=>{const t=new Set;for(const l of r)for(const b of l.keywords)t.add(b);return Array.from(t).sort()},[r]),oe=p.useMemo(()=>{const t={all:r.length,bug:0,pattern:0,decision:0,rule:0,general:0};for(const l of r)t[l.type]=(t[l.type]??0)+1;return t},[r]),ae=p.useMemo(()=>{const t={};for(const l of r){const b=l.category||"general";t[b]=(t[b]??0)+1}return t},[r]),q=p.useMemo(()=>{let t=r;if(c!=="all"&&(t=t.filter(l=>l.type===c)),n!=="all"&&(t=t.filter(l=>l.category===n)),d!=="all"&&(t=t.filter(l=>l.keywords.includes(d))),f){const l=f.toLowerCase();t=t.filter(b=>b.title.toLowerCase().includes(l)||b.content.toLowerCase().includes(l)||b.id.toLowerCase().includes(l)||b.keywords.some(j=>j.toLowerCase().includes(l)))}return t},[r,c,n,d,f]),$=p.useMemo(()=>{const t=[...q];return t.sort((l,b)=>{let j=0;return w==="timestamp"?j=new Date(l.timestamp).getTime()-new Date(b.timestamp).getTime():w==="id"?j=l.id.localeCompare(b.id):w==="type"?j=l.type.localeCompare(b.type):w==="category"&&(j=(l.category||"").localeCompare(b.category||"")),k==="desc"?-j:j}),t},[q,w,k]),V=p.useCallback(t=>{m(l=>l===t?(B(b=>b==="desc"?"asc":"desc"),l):(B("desc"),t))},[]),P=p.useCallback(async()=>{E.trim()&&(await N(x,E.trim(),"learnings.md"),D(""),i(!1))},[x,E,N]),ne=p.useCallback((t,l)=>{t.stopPropagation(),v(l)},[v]);return e.jsxs("div",{className:"flex flex-col flex-1 overflow-hidden",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 px-5 py-2 border-b border-border-divider bg-bg-primary shrink-0",children:[e.jsx("span",{className:"text-[10px] font-semibold text-text-quaternary uppercase tracking-[0.06em]",children:"Type"}),Ie.map(t=>{const l=c===t.value;return e.jsxs("button",{type:"button",onClick:()=>o(t.value),className:["text-[11px] font-medium px-3 py-1 rounded-full border cursor-pointer transition-all","flex items-center gap-[5px]",l?"bg-text-primary text-white border-text-primary":"bg-bg-card text-text-secondary border-border hover:border-text-tertiary hover:text-text-primary"].join(" "),children:[t.value!=="all"&&e.jsx("span",{className:"w-[6px] h-[6px] rounded-full",style:{background:l?"var(--color-text-inverse)":Re[t.value]}}),t.label,e.jsx("span",{className:"text-[10px] font-mono opacity-70",children:oe[t.value]??0})]},t.value)}),M.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-px h-[18px] bg-border-divider mx-1"}),e.jsx("span",{className:"text-[10px] font-semibold text-text-quaternary uppercase tracking-[0.06em]",children:"Category"}),e.jsx("button",{type:"button",onClick:()=>s("all"),className:["text-[11px] font-medium px-2 py-[3px] rounded-full border cursor-pointer transition-all",n==="all"?"bg-text-primary text-white border-text-primary":"bg-bg-card text-text-secondary border-border hover:border-text-tertiary hover:text-text-primary"].join(" "),children:"All"}),M.map(t=>{const l=n===t,b=ee[t]??"#A09D97";return e.jsxs("button",{type:"button",onClick:()=>s(l?"all":t),className:["text-[11px] font-medium px-[10px] py-[3px] rounded-full border cursor-pointer transition-all","flex items-center gap-[5px]",l?"border-transparent text-white":"bg-bg-card text-text-secondary border-border hover:border-text-tertiary hover:text-text-primary"].join(" "),style:l?{background:b}:void 0,children:[e.jsx("span",{className:"w-[6px] h-[6px] rounded-full",style:{background:l?"var(--color-text-inverse)":b}}),t.charAt(0).toUpperCase()+t.slice(1),e.jsx("span",{className:"text-[10px] font-mono opacity-70",children:ae[t]??0})]},t)})]}),W.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-px h-[18px] bg-border-divider mx-1"}),e.jsx("span",{className:"text-[10px] font-semibold text-text-quaternary uppercase tracking-[0.06em]",children:e.jsx(Z,{size:10,strokeWidth:2,className:"inline-block mr-[2px] align-middle"})}),W.map(t=>{const l=d===t;return e.jsx("button",{type:"button",onClick:()=>g(l?"all":t),className:["text-[10px] font-medium px-2 py-[2px] rounded-[4px] border cursor-pointer transition-all",l?"bg-text-primary text-white border-text-primary":"bg-bg-card text-text-tertiary border-border-divider hover:border-text-tertiary hover:text-text-primary"].join(" "),children:t},t)})]}),e.jsx("div",{className:"flex-1"}),e.jsx("div",{className:"flex items-center gap-1",children:K.filter(t=>!t.alwaysVisible).map(t=>{const l=L.has(t.key);return e.jsxs("button",{type:"button",onClick:()=>re(t.key),className:["text-[10px] font-medium px-[6px] py-[3px] rounded-[4px] border cursor-pointer transition-all","flex items-center gap-[3px]",l?"bg-bg-secondary text-text-quaternary border-border-divider opacity-50":"bg-bg-card text-text-tertiary border-border hover:text-text-primary"].join(" "),title:`${l?"Show":"Hide"} ${t.label} column`,children:[l?e.jsx(Ee,{size:9,strokeWidth:2}):e.jsx(Ae,{size:9,strokeWidth:2}),t.label]},t.key)})}),e.jsx("div",{className:"w-px h-[18px] bg-border-divider"}),e.jsxs("button",{type:"button",onClick:()=>V("timestamp"),className:"text-[11px] font-medium px-[10px] py-1 rounded-[6px] border border-border bg-bg-card text-text-tertiary cursor-pointer font-sans transition-all hover:border-text-tertiary hover:text-text-primary flex items-center gap-1",children:[e.jsx(Q,{size:12,strokeWidth:2,className:k==="asc"?"rotate-180 transition-transform":"transition-transform"}),k==="desc"?"Newest":"Oldest"]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsxs("table",{className:"w-full border-collapse",children:[e.jsx("thead",{children:e.jsx("tr",{children:T.map(t=>{const b={id:"id",type:"type",category:"category",added:"timestamp"}[t.key];return e.jsx(He,{width:t.width,active:b?w===b:!1,onClick:b?()=>V(b):void 0,children:t.label},t.key)})})}),e.jsxs("tbody",{children:[a&&e.jsx("tr",{children:T.map(t=>{const l="var(--color-tint-planning)",b="rgba(145,120,181,0.3)";return t.key==="id"?e.jsx("td",{className:"px-3 py-[10px] border-b-2 align-top",style:{background:l,borderBottomColor:b},children:e.jsx("span",{className:"font-mono text-[11px] font-semibold",style:{color:"var(--color-status-planning)"},children:"NEW"})},t.key):t.key==="type"?e.jsx("td",{className:"px-3 py-[10px] border-b-2 align-top",style:{background:l,borderBottomColor:b},children:e.jsxs("select",{value:x,onChange:j=>C(j.target.value),className:"px-2 py-1 rounded-[6px] border border-border bg-bg-card text-[11px] text-text-primary font-sans outline-none cursor-pointer",children:[e.jsx("option",{value:"bug",children:"bug"}),e.jsx("option",{value:"pattern",children:"pattern"}),e.jsx("option",{value:"decision",children:"decision"}),e.jsx("option",{value:"rule",children:"rule"}),e.jsx("option",{value:"debug",children:"debug"}),e.jsx("option",{value:"test",children:"test"}),e.jsx("option",{value:"review",children:"review"}),e.jsx("option",{value:"validation",children:"validation"}),e.jsx("option",{value:"general",children:"general"})]})},t.key):t.key==="content"?e.jsx("td",{className:"px-3 py-[10px] border-b-2 align-top",style:{background:l,borderBottomColor:b},children:e.jsx("input",{type:"text",value:E,onChange:j=>D(j.target.value),placeholder:"Describe the entry...",autoFocus:!0,onKeyDown:j=>{j.key==="Enter"&&P(),j.key==="Escape"&&i(!1)},className:"w-full px-[10px] py-[6px] rounded-[6px] border border-border bg-bg-card text-[13px] text-text-primary font-sans outline-none focus:border-[#9178B5] transition-colors"})},t.key):t.key==="actions"?e.jsx("td",{className:"px-3 py-[10px] border-b-2 align-top",style:{background:l,borderBottomColor:b},children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{type:"button",onClick:()=>void P(),className:"px-3 py-[5px] rounded-[6px] border-none bg-text-primary text-white text-[11px] font-semibold cursor-pointer font-sans hover:bg-[#1A1816] transition-all",children:"Save"}),e.jsx("button",{type:"button",onClick:()=>i(!1),className:"px-3 py-[5px] rounded-[6px] border-none bg-bg-secondary text-text-secondary text-[11px] font-semibold cursor-pointer font-sans hover:bg-bg-tertiary transition-all",children:"Cancel"})]})},t.key):e.jsx("td",{className:"px-3 py-[10px] border-b-2 align-top font-mono text-[11px] text-text-tertiary",style:{background:l,borderBottomColor:b},children:"—"},t.key)})}),$.map((t,l)=>e.jsx(Ue,{entry:t,selected:u===t.id,onClick:()=>h(t.id),onDelete:ne,index:l,visibleColumns:T},t.id)),$.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:T.length,className:"text-center py-12 text-[13px] text-text-tertiary",children:"No entries found"})})]})]})})]})}function He({children:r,width:c,active:o,onClick:n}){return e.jsxs("th",{style:{width:c?`${c}px`:void 0},onClick:n,className:["sticky top-0 z-10 text-left text-[10px] font-semibold uppercase tracking-[0.06em] px-3 py-2","bg-bg-secondary border-b border-border select-none whitespace-nowrap",n?"cursor-pointer":"",o?"text-text-primary":"text-text-tertiary hover:text-text-primary"].join(" "),children:[r,o&&e.jsx(Q,{size:10,strokeWidth:2,className:"inline-block align-middle ml-[3px]"})]})}function Ue({entry:r,selected:c,onClick:o,onDelete:n,index:s,visibleColumns:d}){const g=Pe[r.type]??Oe,f=ee[r.category]??"#A09D97",u={id:e.jsx("span",{className:"font-mono text-[11px] text-text-tertiary whitespace-nowrap",children:r.id}),type:e.jsx("span",{className:"text-[9px] font-bold px-[7px] py-[2px] rounded-[4px] uppercase font-mono tracking-[0.04em] whitespace-nowrap inline-block",style:{background:g.bg,color:g.text},children:r.type}),category:e.jsx("span",{className:"text-[10px] font-semibold px-[7px] py-[2px] rounded-[4px] uppercase font-mono tracking-[0.04em] whitespace-nowrap inline-block",style:{background:`${f}15`,color:f},children:r.category||"general"}),content:e.jsx("span",{className:"text-[13px] text-text-primary font-medium leading-[1.5] max-w-[500px] block",children:r.content||r.title}),keywords:e.jsxs("div",{className:"flex flex-wrap gap-[3px]",children:[r.keywords.slice(0,3).map(h=>e.jsx("span",{className:"text-[9px] px-[5px] py-[1px] rounded-[3px] bg-bg-secondary text-text-tertiary font-mono whitespace-nowrap",children:h},h)),r.keywords.length>3&&e.jsxs("span",{className:"text-[9px] text-text-quaternary font-mono",children:["+",r.keywords.length-3]})]}),file:e.jsx("span",{className:"font-mono text-[11px] text-text-tertiary whitespace-nowrap",children:r.file?r.file.split("/").pop():""}),added:e.jsx("span",{className:"font-mono text-[11px] text-text-quaternary whitespace-nowrap",children:Ke(r.timestamp)}),actions:e.jsxs("div",{className:"flex gap-[2px] whitespace-nowrap",children:[e.jsx("button",{type:"button",onClick:h=>{h.stopPropagation(),o()},className:"w-7 h-7 rounded-[6px] border-none bg-transparent cursor-pointer text-text-quaternary flex items-center justify-center transition-all opacity-0 group-hover:opacity-100 hover:bg-bg-hover hover:text-text-primary",children:e.jsx(X,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",onClick:h=>n(h,r.id),className:"w-7 h-7 rounded-[6px] border-none bg-transparent cursor-pointer text-text-quaternary flex items-center justify-center transition-all opacity-0 group-hover:opacity-100 hover:bg-[rgba(196,101,85,0.08)] hover:text-[#C46555]",children:e.jsx(J,{size:14,strokeWidth:1.8})})]})};return e.jsx(z.tr,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.15,delay:Math.min(s*.02,.3)},onClick:o,className:["cursor-pointer transition-colors group",c?"[&>td]:bg-tint-planning":"hover:[&>td]:bg-bg-hover"].join(" "),children:d.map(h=>e.jsx("td",{className:"px-3 py-[10px] border-b border-border-divider align-top",children:u[h.key]},h.key))})}const Ye={coding:{bg:"var(--color-tint-exploring)",text:"#5B8DB8"},arch:{bg:"var(--color-tint-planning)",text:"#9178B5"},quality:{bg:"var(--color-tint-completed)",text:"#5A9E78"},debug:{bg:"rgba(196,101,85,0.10)",text:"#B85B4A"},test:{bg:"rgba(90,158,120,0.10)",text:"#3D8B5F"},review:{bg:"rgba(219,176,108,0.12)",text:"#C4A055"},learning:{bg:"var(--color-tint-blocked)",text:"#C46555"},bug:{bg:"var(--color-tint-blocked)",text:"#C46555"},pattern:{bg:"var(--color-tint-exploring)",text:"#5B8DB8"},decision:{bg:"var(--color-tint-planning)",text:"#9178B5"},rule:{bg:"var(--color-tint-completed)",text:"#5A9E78"},validation:{bg:"rgba(91,141,184,0.10)",text:"#4A7DA8"},general:{bg:"var(--color-tint-pending)",text:"#A09D97"}},Je={bg:"var(--color-tint-pending)",text:"#A09D97"};function Xe(r){if(!r)return"--";const c=new Date(r);if(isNaN(c.getTime()))return"--";const n=Date.now()-c.getTime(),s=Math.floor(n/6e4);if(s<1)return"now";if(s<60)return`${s}m ago`;const d=Math.floor(s/60);if(d<24)return`${d}h ago`;const g=Math.floor(d/24);return g<7?`${g}d ago`:c.toLocaleDateString()}function Qe({entry:r,onClose:c}){const o=y(g=>g.deleteEntry),n=p.useMemo(()=>Ye[r.type]??Je,[r.type]),s=p.useMemo(()=>r.file?r.file.split("/").pop():"",[r.file]);function d(){o(r.id),c()}return e.jsxs(z.aside,{initial:{width:0,opacity:0},animate:{width:380,opacity:1},exit:{width:0,opacity:0},transition:{type:"spring",stiffness:400,damping:30},className:"shrink-0 border-l border-border bg-bg-primary overflow-hidden flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border-divider shrink-0 min-h-[48px]",children:[e.jsx("span",{className:"text-[12px] font-semibold text-text-primary",children:"Entry Detail"}),e.jsx("button",{type:"button",onClick:c,"aria-label":"Close detail panel",className:"w-7 h-7 rounded-[8px] border-none bg-transparent cursor-pointer text-text-tertiary flex items-center justify-center hover:bg-bg-hover hover:text-text-primary transition-colors",children:e.jsx(ce,{size:14,strokeWidth:2})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-4 py-4",style:{width:380},children:[e.jsx("span",{className:"inline-flex items-center gap-[5px] text-[10px] font-bold px-[10px] py-[3px] rounded-[6px] mb-3 uppercase tracking-[0.04em]",style:{background:n.bg,color:n.text},children:r.type}),e.jsx("div",{className:"text-[16px] font-bold text-text-primary leading-[1.5] mb-4",children:r.title||r.content}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 mb-4",children:[e.jsx(_,{label:"ID",value:r.id,mono:!0}),e.jsx(_,{label:"Added",value:Xe(r.timestamp),mono:!0}),e.jsx(_,{label:"File",value:s||"--",mono:!0}),e.jsx(_,{label:"Type",value:r.type})]}),r.content&&r.title&&r.content!==r.title&&e.jsxs("div",{className:"mb-4",children:[e.jsx("div",{className:"text-[9px] font-semibold uppercase tracking-[0.06em] text-text-quaternary mb-[6px]",children:"Description"}),e.jsx("div",{className:"text-[13px] text-text-secondary leading-[1.6] whitespace-pre-wrap",children:r.content})]}),e.jsxs("div",{className:"flex gap-2 pt-3 border-t border-border-divider",children:[e.jsxs("button",{type:"button",className:"flex-1 py-2 rounded-[8px] border border-text-primary bg-text-primary text-[12px] font-semibold text-white cursor-pointer font-sans flex items-center justify-center gap-[6px] hover:bg-[#1A1816] transition-all",children:[e.jsx(X,{size:13,strokeWidth:2}),"Edit"]}),e.jsxs("button",{type:"button",onClick:d,className:"flex-1 py-2 rounded-[8px] border border-border bg-bg-card text-[12px] font-semibold text-text-secondary cursor-pointer font-sans flex items-center justify-center gap-[6px] hover:border-[#C46555] hover:text-[#C46555] hover:bg-[rgba(196,101,85,0.08)] transition-all",children:[e.jsx(J,{size:13,strokeWidth:2}),"Delete"]})]})]})]})}function _({label:r,value:c,mono:o}){return e.jsxs("div",{className:"px-3 py-2 bg-bg-secondary rounded-[8px]",children:[e.jsx("div",{className:"text-[9px] font-semibold uppercase tracking-[0.04em] text-text-quaternary mb-[2px]",children:r}),e.jsx("div",{className:["text-[13px] font-semibold text-text-primary",o?"font-mono text-[12px]":""].join(" "),children:c})]})}const Ze=[{value:"bug",label:"Bug",activeBg:"var(--color-tint-blocked)",activeText:"#C46555",activeBorder:"#C46555"},{value:"pattern",label:"Pattern",activeBg:"var(--color-tint-exploring)",activeText:"#5B8DB8",activeBorder:"#5B8DB8"},{value:"decision",label:"Decision",activeBg:"var(--color-tint-planning)",activeText:"#9178B5",activeBorder:"#9178B5"},{value:"rule",label:"Rule",activeBg:"var(--color-tint-completed)",activeText:"#5A9E78",activeBorder:"#5A9E78"},{value:"debug",label:"Debug",activeBg:"rgba(196,101,85,0.10)",activeText:"#B85B4A",activeBorder:"#B85B4A"},{value:"test",label:"Test",activeBg:"rgba(90,158,120,0.10)",activeText:"#3D8B5F",activeBorder:"#3D8B5F"},{value:"review",label:"Review",activeBg:"rgba(219,176,108,0.12)",activeText:"#C4A055",activeBorder:"#C4A055"},{value:"validation",label:"Validation",activeBg:"rgba(91,141,184,0.10)",activeText:"#4A7DA8",activeBorder:"#4A7DA8"}];function et({open:r,onOpenChange:c}){const o=y(m=>m.addEntry),n=y(m=>m.files),[s,d]=p.useState("bug"),[g,f]=p.useState(""),[u,h]=p.useState(""),[v,N]=p.useState(!1);p.useEffect(()=>{r||(d("bug"),f(""),h(""))},[r]),p.useEffect(()=>{n.length>0&&!u&&h(n[0].path)},[n,u]);const w=p.useCallback(async()=>{g.trim()&&(N(!0),await o(s,g.trim(),u),N(!1),c(!1))},[s,g,u,o,c]);return e.jsx(de,{open:r,onOpenChange:c,children:e.jsxs(xe,{children:[e.jsx(pe,{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),e.jsxs(be,{className:A("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-[480px] max-w-[95vw] max-h-[80vh]","rounded-[16px] border border-border bg-bg-card shadow-lg","flex flex-col overflow-hidden","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"),children:[e.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-divider shrink-0",children:[e.jsx(ue,{className:"text-[16px] font-bold text-text-primary",children:"New Spec Entry"}),e.jsx(O,{className:A("w-7 h-7 flex items-center justify-center rounded-[8px]","text-text-tertiary hover:text-text-primary hover:bg-bg-hover","transition-colors border-none bg-transparent cursor-pointer"),"aria-label":"Close",children:e.jsxs("svg",{className:"w-[14px] h-[14px]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-5",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"block text-[11px] font-semibold text-text-tertiary uppercase tracking-[0.04em] mb-[6px]",children:"Type"}),e.jsx("div",{className:"grid grid-cols-4 gap-2",children:Ze.map(m=>{const k=s===m.value;return e.jsx("button",{type:"button",onClick:()=>d(m.value),className:A("py-[10px] rounded-[10px] border-[1.5px] bg-bg-card cursor-pointer","text-center text-[11px] font-semibold font-sans transition-all"),style:k?{borderColor:m.activeBorder,color:m.activeText,background:m.activeBg,fontWeight:700}:{borderColor:"var(--color-border, #E8E5DE)",color:"var(--color-text-tertiary, #A09D97)"},children:m.label},m.value)})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"block text-[11px] font-semibold text-text-tertiary uppercase tracking-[0.04em] mb-[6px]",children:"Content"}),e.jsx("textarea",{value:g,onChange:m=>f(m.target.value),placeholder:"Describe the bug, pattern, decision, or rule...",rows:5,className:A("w-full min-h-[120px] px-[14px] py-[10px] rounded-[8px]","border border-border bg-bg-primary text-[13px] text-text-primary","font-sans leading-[1.6] resize-y outline-none","focus:border-[#9178B5] transition-colors","placeholder:text-text-quaternary")}),e.jsx("div",{className:"text-[11px] text-text-quaternary mt-1",children:"Supports markdown. Will be timestamped automatically."})]}),n.length>0&&e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"block text-[11px] font-semibold text-text-tertiary uppercase tracking-[0.04em] mb-[6px]",children:"Target File"}),e.jsx("select",{value:u,onChange:m=>h(m.target.value),className:A("w-full px-3 py-2 rounded-[8px] border border-border","bg-bg-primary text-[12px] text-text-primary font-sans","outline-none cursor-pointer","focus:border-[#9178B5] transition-colors"),children:n.map(m=>e.jsxs("option",{value:m.path,children:[m.name," (",m.category,")"]},m.path))})]}),u&&e.jsxs("div",{className:"bg-bg-primary rounded-[10px] px-4 py-[14px] border border-border-divider",children:[e.jsx("div",{className:"text-[9px] font-semibold uppercase tracking-[0.06em] text-text-quaternary mb-2",children:"Will write to"}),e.jsxs("div",{className:"flex items-center gap-[6px] px-[10px] py-[6px] rounded-[6px] bg-bg-card border border-border-divider text-[11px] font-mono text-text-secondary",children:[e.jsx(U,{size:12,strokeWidth:1.8,className:"text-text-tertiary"}),e.jsx("span",{className:"text-text-primary font-semibold",children:u})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 px-5 py-4 border-t border-border-divider shrink-0",children:[e.jsx(O,{className:A("px-4 py-2 rounded-[8px] border border-border bg-bg-card","text-[12px] font-semibold text-text-secondary cursor-pointer font-sans","hover:border-text-tertiary hover:text-text-primary transition-all"),children:"Cancel"}),e.jsxs("button",{type:"button",disabled:!g.trim()||v,onClick:()=>void w(),className:A("flex items-center gap-[6px] px-[14px] py-2 rounded-[8px] border-none","bg-text-primary text-white text-[12px] font-semibold cursor-pointer font-sans","hover:bg-[#1A1816] hover:-translate-y-px hover:shadow-md transition-all","disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:translate-y-0 disabled:hover:shadow-none"),children:[e.jsx(we,{size:14,strokeWidth:2}),v?"Adding...":"Add Entry"]})]})]})]})})}const tt=[{label:"Kanban",icon:e.jsx(ye,{size:14,strokeWidth:1.8}),shortcut:"1"},{label:"Table",icon:e.jsx(fe,{size:14,strokeWidth:1.8}),shortcut:"2"}],G=["kanban","table"];function bt(){const{activeView:r,setActiveView:c,fetchEntries:o,fetchFiles:n,entries:s,search:d,setSearch:g,selectedEntry:f,setSelectedEntry:u,loading:h,error:v}=y(ge(i=>({activeView:i.activeView,setActiveView:i.setActiveView,fetchEntries:i.fetchEntries,fetchFiles:i.fetchFiles,entries:i.entries,search:i.search,setSearch:i.setSearch,selectedEntry:i.selectedEntry,setSelectedEntry:i.setSelectedEntry,loading:i.loading,error:i.error}))),[N,w]=p.useState(!1),{register:m,unregister:k}=p.useContext(me),B=p.useCallback(i=>c(G[i]),[c]);p.useEffect(()=>{m({items:tt.map(i=>({label:i.label,icon:i.icon,shortcut:i.shortcut})),activeIndex:G.indexOf(r),onSwitch:B})},[r,m,B]),p.useEffect(()=>()=>k(),[k]),p.useEffect(()=>{function i(x){x.target instanceof HTMLInputElement||x.target instanceof HTMLTextAreaElement||(x.key==="1"?c("kanban"):x.key==="2"&&c("table"))}return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[c]),p.useEffect(()=>{o(),n()},[o,n]);const a=f?s.find(i=>i.id===f)??null:null;return h&&s.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-sm)]",children:"Loading specs..."}):v&&s.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[e.jsx("span",{className:"text-status-failed text-[length:var(--font-size-sm)]",children:"Failed to load specs"}),e.jsx("span",{className:"text-text-tertiary text-[length:var(--font-size-xs)]",children:v}),e.jsx("button",{type:"button",onClick:()=>void o(),className:"px-3 py-1 rounded-[var(--radius-md)] border border-border bg-bg-card text-[11px] font-semibold text-text-secondary hover:text-text-primary transition-all",children:"Retry"})]}):e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-[10px] px-5 py-[10px] border-b border-border-divider shrink-0",children:[e.jsx("span",{className:"text-[16px] font-bold text-text-primary",children:"Specs"}),e.jsxs("span",{className:"text-[11px] text-text-tertiary font-mono tabular-nums",children:[s.length," entries"]}),e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center gap-[6px] px-3 py-[5px] rounded-[8px] bg-bg-card w-[240px] focus-within:border-[#9178B5] transition-colors",style:{border:"var(--style-btn-secondary-border)"},children:[e.jsx(he,{size:13,strokeWidth:2,className:"text-text-quaternary shrink-0"}),e.jsx("input",{type:"text",placeholder:"Search specs...",value:d,onChange:i=>g(i.target.value),className:"border-none bg-transparent outline-none text-[12px] text-text-primary font-sans w-full placeholder:text-text-quaternary"})]}),e.jsxs("button",{type:"button",onClick:()=>w(!0),className:"flex items-center gap-[6px] px-[14px] py-[6px] rounded-[8px] border-none bg-text-primary text-white text-[12px] font-semibold cursor-pointer font-sans hover:bg-[#1A1816] hover:[transform:var(--style-card-hover-transform)] hover:[box-shadow:var(--style-card-hover-shadow)] transition-all",children:[e.jsx(H,{size:14,strokeWidth:2}),"New Entry"]})]}),e.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[e.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden min-w-0",children:[r==="kanban"&&e.jsx("div",{className:"flex-1 flex flex-col overflow-hidden motion-safe:animate-[view-fade-in_250ms_ease-out_both]",children:e.jsx($e,{onAddEntry:()=>w(!0)})}),r==="table"&&e.jsx("div",{className:"flex-1 flex flex-col overflow-hidden motion-safe:animate-[view-fade-in_250ms_ease-out_both]",children:e.jsx(Ge,{})})]}),a&&e.jsx(Qe,{entry:a,onClose:()=>u(null)})]}),e.jsx(et,{open:N,onOpenChange:w})]})}export{bt as SpecsPage};