claude-code-workflow 7.2.6 → 7.2.7

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 (206) hide show
  1. package/ccw/dist/core/routes/codexlens/config-handlers.d.ts.map +1 -1
  2. package/ccw/dist/core/routes/codexlens/config-handlers.js +4 -0
  3. package/ccw/dist/core/routes/codexlens/config-handlers.js.map +1 -1
  4. package/ccw/dist/mcp-server/index.js +85 -8
  5. package/ccw/dist/mcp-server/index.js.map +1 -1
  6. package/ccw/dist/tools/smart-search.d.ts +72 -1
  7. package/ccw/dist/tools/smart-search.d.ts.map +1 -1
  8. package/ccw/dist/tools/smart-search.js +726 -117
  9. package/ccw/dist/tools/smart-search.js.map +1 -1
  10. package/ccw/frontend/dist/assets/{AlertDialog-BMFUcfv_.js → AlertDialog-CSZq4WHZ.js} +2 -2
  11. package/ccw/frontend/dist/assets/{AlertDialog-BMFUcfv_.js.map → AlertDialog-CSZq4WHZ.js.map} +1 -1
  12. package/ccw/frontend/dist/assets/{AnalysisPage-Bxa333tD.js → AnalysisPage-DVDvLHqI.js} +2 -2
  13. package/ccw/frontend/dist/assets/{AnalysisPage-Bxa333tD.js.map → AnalysisPage-DVDvLHqI.js.map} +1 -1
  14. package/ccw/frontend/dist/assets/{ApiSettingsPage-BFVU-wcR.js → ApiSettingsPage-D69j8mI6.js} +2 -2
  15. package/ccw/frontend/dist/assets/{ApiSettingsPage-BFVU-wcR.js.map → ApiSettingsPage-D69j8mI6.js.map} +1 -1
  16. package/ccw/frontend/dist/assets/{CliModeToggle-MDoFAJPL.js → CliModeToggle-fF9xHeGR.js} +2 -2
  17. package/ccw/frontend/dist/assets/{CliModeToggle-MDoFAJPL.js.map → CliModeToggle-fF9xHeGR.js.map} +1 -1
  18. package/ccw/frontend/dist/assets/{CliSessionSharePage-DkRmLiNN.js → CliSessionSharePage-Ce8tOQNx.js} +2 -2
  19. package/ccw/frontend/dist/assets/{CliSessionSharePage-DkRmLiNN.js.map → CliSessionSharePage-Ce8tOQNx.js.map} +1 -1
  20. package/ccw/frontend/dist/assets/{CliViewerPage-DN8jWddy.js → CliViewerPage-Bsp1zmfD.js} +2 -2
  21. package/ccw/frontend/dist/assets/{CliViewerPage-DN8jWddy.js.map → CliViewerPage-Bsp1zmfD.js.map} +1 -1
  22. package/ccw/frontend/dist/assets/{CodexLensManagerPage-Du_VAJtC.js → CodexLensManagerPage-DUMzbrr9.js} +9 -9
  23. package/ccw/frontend/dist/assets/CodexLensManagerPage-DUMzbrr9.js.map +1 -0
  24. package/ccw/frontend/dist/assets/{Collapsible-CF5bSyzt.js → Collapsible-I5pixbHb.js} +2 -2
  25. package/ccw/frontend/dist/assets/{Collapsible-CF5bSyzt.js.map → Collapsible-I5pixbHb.js.map} +1 -1
  26. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bm_P9I76.js → CommandsManagerPage-BH2xukdx.js} +2 -2
  27. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bm_P9I76.js.map → CommandsManagerPage-BH2xukdx.js.map} +1 -1
  28. package/ccw/frontend/dist/assets/{DeepWikiPage-2YIlfWhz.js → DeepWikiPage-D41ccWzY.js} +2 -2
  29. package/ccw/frontend/dist/assets/{DeepWikiPage-2YIlfWhz.js.map → DeepWikiPage-D41ccWzY.js.map} +1 -1
  30. package/ccw/frontend/dist/assets/{EndpointsPage-CMVNz5PY.js → EndpointsPage-5a8jfEWN.js} +2 -2
  31. package/ccw/frontend/dist/assets/{EndpointsPage-CMVNz5PY.js.map → EndpointsPage-5a8jfEWN.js.map} +1 -1
  32. package/ccw/frontend/dist/assets/{ExplorerPage-C-KFz8YU.js → ExplorerPage-YCqIOu1v.js} +2 -2
  33. package/ccw/frontend/dist/assets/{ExplorerPage-C-KFz8YU.js.map → ExplorerPage-YCqIOu1v.js.map} +1 -1
  34. package/ccw/frontend/dist/assets/{FixSessionPage-CdKND69l.js → FixSessionPage-wK1s4kbo.js} +2 -2
  35. package/ccw/frontend/dist/assets/{FixSessionPage-CdKND69l.js.map → FixSessionPage-wK1s4kbo.js.map} +1 -1
  36. package/ccw/frontend/dist/assets/{FloatingFileBrowser-Bf4iqOSd.js → FloatingFileBrowser-B1U6uk_5.js} +2 -2
  37. package/ccw/frontend/dist/assets/{FloatingFileBrowser-Bf4iqOSd.js.map → FloatingFileBrowser-B1U6uk_5.js.map} +1 -1
  38. package/ccw/frontend/dist/assets/{FloatingPanel-CJbvABPb.js → FloatingPanel-D51p5jNy.js} +2 -2
  39. package/ccw/frontend/dist/assets/{FloatingPanel-CJbvABPb.js.map → FloatingPanel-D51p5jNy.js.map} +1 -1
  40. package/ccw/frontend/dist/assets/{GraphExplorerPage-DPoozRTR.js → GraphExplorerPage-DpIWrpWH.js} +2 -2
  41. package/ccw/frontend/dist/assets/{GraphExplorerPage-DPoozRTR.js.map → GraphExplorerPage-DpIWrpWH.js.map} +1 -1
  42. package/ccw/frontend/dist/assets/{HistoryPage-DOMa9gJX.js → HistoryPage-C09lyJGN.js} +2 -2
  43. package/ccw/frontend/dist/assets/{HistoryPage-DOMa9gJX.js.map → HistoryPage-C09lyJGN.js.map} +1 -1
  44. package/ccw/frontend/dist/assets/{HookManagerPage-Cfn2UEyy.js → HookManagerPage-CFBe8F_G.js} +2 -2
  45. package/ccw/frontend/dist/assets/{HookManagerPage-Cfn2UEyy.js.map → HookManagerPage-CFBe8F_G.js.map} +1 -1
  46. package/ccw/frontend/dist/assets/{InstallationsPage-qngOxLvm.js → InstallationsPage-qt7NxnsB.js} +2 -2
  47. package/ccw/frontend/dist/assets/{InstallationsPage-qngOxLvm.js.map → InstallationsPage-qt7NxnsB.js.map} +1 -1
  48. package/ccw/frontend/dist/assets/{IssueHubPage-Cvf7tH8p.js → IssueHubPage-CHol1-Ap.js} +2 -2
  49. package/ccw/frontend/dist/assets/{IssueHubPage-Cvf7tH8p.js.map → IssueHubPage-CHol1-Ap.js.map} +1 -1
  50. package/ccw/frontend/dist/assets/{LiteTasksPage-D20smVCY.js → LiteTasksPage-jH00SLnZ.js} +2 -2
  51. package/ccw/frontend/dist/assets/{LiteTasksPage-D20smVCY.js.map → LiteTasksPage-jH00SLnZ.js.map} +1 -1
  52. package/ccw/frontend/dist/assets/{McpManagerPage-Bld27yu4.js → McpManagerPage-BS-HgeQJ.js} +11 -11
  53. package/ccw/frontend/dist/assets/McpManagerPage-BS-HgeQJ.js.map +1 -0
  54. package/ccw/frontend/dist/assets/{MemoryPage-DmknNdBh.js → MemoryPage-1UahrmRX.js} +2 -2
  55. package/ccw/frontend/dist/assets/{MemoryPage-DmknNdBh.js.map → MemoryPage-1UahrmRX.js.map} +1 -1
  56. package/ccw/frontend/dist/assets/{NotFoundPage-DdwPN1xU.js → NotFoundPage-5FVm_IkS.js} +2 -2
  57. package/ccw/frontend/dist/assets/{NotFoundPage-DdwPN1xU.js.map → NotFoundPage-5FVm_IkS.js.map} +1 -1
  58. package/ccw/frontend/dist/assets/{OrchestratorPage-CgDdmvBg.js → OrchestratorPage-ThBG24Gg.js} +2 -2
  59. package/ccw/frontend/dist/assets/{OrchestratorPage-CgDdmvBg.js.map → OrchestratorPage-ThBG24Gg.js.map} +1 -1
  60. package/ccw/frontend/dist/assets/{ProjectOverviewPage-9Ze9quxh.js → ProjectOverviewPage-CrmW0IxI.js} +2 -2
  61. package/ccw/frontend/dist/assets/{ProjectOverviewPage-9Ze9quxh.js.map → ProjectOverviewPage-CrmW0IxI.js.map} +1 -1
  62. package/ccw/frontend/dist/assets/{PromptHistoryPage-YRkBppOx.js → PromptHistoryPage-1cCGwS3s.js} +2 -2
  63. package/ccw/frontend/dist/assets/{PromptHistoryPage-YRkBppOx.js.map → PromptHistoryPage-1cCGwS3s.js.map} +1 -1
  64. package/ccw/frontend/dist/assets/{ReviewSessionPage-DSaeHw83.js → ReviewSessionPage-DxiEc9HK.js} +2 -2
  65. package/ccw/frontend/dist/assets/{ReviewSessionPage-DSaeHw83.js.map → ReviewSessionPage-DxiEc9HK.js.map} +1 -1
  66. package/ccw/frontend/dist/assets/{RulesManagerPage-BpGwS_jB.js → RulesManagerPage-BpplliZF.js} +2 -2
  67. package/ccw/frontend/dist/assets/{RulesManagerPage-BpGwS_jB.js.map → RulesManagerPage-BpplliZF.js.map} +1 -1
  68. package/ccw/frontend/dist/assets/{SessionDetailPage-B_YHME7k.js → SessionDetailPage-crDIiysh.js} +2 -2
  69. package/ccw/frontend/dist/assets/{SessionDetailPage-B_YHME7k.js.map → SessionDetailPage-crDIiysh.js.map} +1 -1
  70. package/ccw/frontend/dist/assets/{SessionsPage-bW6kEEib.js → SessionsPage-DThweYY8.js} +2 -2
  71. package/ccw/frontend/dist/assets/{SessionsPage-bW6kEEib.js.map → SessionsPage-DThweYY8.js.map} +1 -1
  72. package/ccw/frontend/dist/assets/{SettingsPage-CSwUd2Bw.js → SettingsPage-OCdOz5-z.js} +4 -4
  73. package/ccw/frontend/dist/assets/{SettingsPage-CSwUd2Bw.js.map → SettingsPage-OCdOz5-z.js.map} +1 -1
  74. package/ccw/frontend/dist/assets/{SkillsManagerPage-CyqKvFUi.js → SkillsManagerPage-BJd3bK1G.js} +2 -2
  75. package/ccw/frontend/dist/assets/{SkillsManagerPage-CyqKvFUi.js.map → SkillsManagerPage-BJd3bK1G.js.map} +1 -1
  76. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DHqQNW_y.js → SpecsSettingsPage-BAWL2cpO.js} +2 -2
  77. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DHqQNW_y.js.map → SpecsSettingsPage-BAWL2cpO.js.map} +1 -1
  78. package/ccw/frontend/dist/assets/{Switch-s_-xzEWF.js → Switch-w0I3JCcC.js} +2 -2
  79. package/ccw/frontend/dist/assets/{Switch-s_-xzEWF.js.map → Switch-w0I3JCcC.js.map} +1 -1
  80. package/ccw/frontend/dist/assets/{TabsNavigation-CU50UxOb.js → TabsNavigation-jhUge9YV.js} +2 -2
  81. package/ccw/frontend/dist/assets/{TabsNavigation-CU50UxOb.js.map → TabsNavigation-jhUge9YV.js.map} +1 -1
  82. package/ccw/frontend/dist/assets/{TaskDrawer-128XISsA.js → TaskDrawer-APWpZulm.js} +2 -2
  83. package/ccw/frontend/dist/assets/{TaskDrawer-128XISsA.js.map → TaskDrawer-APWpZulm.js.map} +1 -1
  84. package/ccw/frontend/dist/assets/{TeamPage-Bg_KII8B.js → TeamPage-8OnLsAfJ.js} +2 -2
  85. package/ccw/frontend/dist/assets/{TeamPage-Bg_KII8B.js.map → TeamPage-8OnLsAfJ.js.map} +1 -1
  86. package/ccw/frontend/dist/assets/{TerminalDashboardPage-CQ9K2zwB.js → TerminalDashboardPage-Be1hcN4p.js} +2 -2
  87. package/ccw/frontend/dist/assets/{TerminalDashboardPage-CQ9K2zwB.js.map → TerminalDashboardPage-Be1hcN4p.js.map} +1 -1
  88. package/ccw/frontend/dist/assets/{archive--nR2vYUk.js → archive-Bo1tC9yo.js} +2 -2
  89. package/ccw/frontend/dist/assets/{archive--nR2vYUk.js.map → archive-Bo1tC9yo.js.map} +1 -1
  90. package/ccw/frontend/dist/assets/{archive-restore-CZ7graO0.js → archive-restore-DYx41yLJ.js} +2 -2
  91. package/ccw/frontend/dist/assets/{archive-restore-CZ7graO0.js.map → archive-restore-DYx41yLJ.js.map} +1 -1
  92. package/ccw/frontend/dist/assets/{arrow-right-ChKhpVhq.js → arrow-right-C6pOqWF1.js} +2 -2
  93. package/ccw/frontend/dist/assets/{arrow-right-ChKhpVhq.js.map → arrow-right-C6pOqWF1.js.map} +1 -1
  94. package/ccw/frontend/dist/assets/{bookmark-plus-X-JcgObI.js → bookmark-plus-4Qpa6hMJ.js} +2 -2
  95. package/ccw/frontend/dist/assets/{bookmark-plus-X-JcgObI.js.map → bookmark-plus-4Qpa6hMJ.js.map} +1 -1
  96. package/ccw/frontend/dist/assets/{bot-C3uo7Fkg.js → bot-HXJTmx8r.js} +2 -2
  97. package/ccw/frontend/dist/assets/{bot-C3uo7Fkg.js.map → bot-HXJTmx8r.js.map} +1 -1
  98. package/ccw/frontend/dist/assets/{braces-5wZupwrA.js → braces-Dj2IdY7I.js} +2 -2
  99. package/ccw/frontend/dist/assets/{braces-5wZupwrA.js.map → braces-Dj2IdY7I.js.map} +1 -1
  100. package/ccw/frontend/dist/assets/{circle-stop-DZ5hLKjQ.js → circle-stop-M29TJKHc.js} +2 -2
  101. package/ccw/frontend/dist/assets/{circle-stop-DZ5hLKjQ.js.map → circle-stop-M29TJKHc.js.map} +1 -1
  102. package/ccw/frontend/dist/assets/{cpu-Dc8IS79i.js → cpu-DX15mzMT.js} +2 -2
  103. package/ccw/frontend/dist/assets/{cpu-Dc8IS79i.js.map → cpu-DX15mzMT.js.map} +1 -1
  104. package/ccw/frontend/dist/assets/{ellipsis-vertical-B4pqbrsR.js → ellipsis-vertical-Fs6bysWx.js} +2 -2
  105. package/ccw/frontend/dist/assets/{ellipsis-vertical-B4pqbrsR.js.map → ellipsis-vertical-Fs6bysWx.js.map} +1 -1
  106. package/ccw/frontend/dist/assets/{eye-BwniwXnu.js → eye-D6BRlJ1r.js} +2 -2
  107. package/ccw/frontend/dist/assets/{eye-BwniwXnu.js.map → eye-D6BRlJ1r.js.map} +1 -1
  108. package/ccw/frontend/dist/assets/{eye-off-BWntEdln.js → eye-off-DjbIj5iN.js} +2 -2
  109. package/ccw/frontend/dist/assets/{eye-off-BWntEdln.js.map → eye-off-DjbIj5iN.js.map} +1 -1
  110. package/ccw/frontend/dist/assets/{file-json-BDcmkaVn.js → file-json-kg4Lid-H.js} +2 -2
  111. package/ccw/frontend/dist/assets/{file-json-BDcmkaVn.js.map → file-json-kg4Lid-H.js.map} +1 -1
  112. package/ccw/frontend/dist/assets/{file-text-DsqI3R_g.js → file-text-BMy5pXNV.js} +2 -2
  113. package/ccw/frontend/dist/assets/{file-text-DsqI3R_g.js.map → file-text-BMy5pXNV.js.map} +1 -1
  114. package/ccw/frontend/dist/assets/{filter-CQMcD8RT.js → filter-BTN-lUUb.js} +2 -2
  115. package/ccw/frontend/dist/assets/{filter-CQMcD8RT.js.map → filter-BTN-lUUb.js.map} +1 -1
  116. package/ccw/frontend/dist/assets/{folder-jX77-MUi.js → folder-ChYtty7V.js} +2 -2
  117. package/ccw/frontend/dist/assets/{folder-jX77-MUi.js.map → folder-ChYtty7V.js.map} +1 -1
  118. package/ccw/frontend/dist/assets/{gauge-yQjRXM3o.js → gauge-C0VJbjRb.js} +2 -2
  119. package/ccw/frontend/dist/assets/{gauge-yQjRXM3o.js.map → gauge-C0VJbjRb.js.map} +1 -1
  120. package/ccw/frontend/dist/assets/{globe-BecpCHYI.js → globe-DbNfDXnv.js} +2 -2
  121. package/ccw/frontend/dist/assets/{globe-BecpCHYI.js.map → globe-DbNfDXnv.js.map} +1 -1
  122. package/ccw/frontend/dist/assets/{grid-3x3-BrvzDFqU.js → grid-3x3-xWcpBNxo.js} +2 -2
  123. package/ccw/frontend/dist/assets/{grid-3x3-BrvzDFqU.js.map → grid-3x3-xWcpBNxo.js.map} +1 -1
  124. package/ccw/frontend/dist/assets/{hard-drive-B0cynodE.js → hard-drive-BTACzgUO.js} +2 -2
  125. package/ccw/frontend/dist/assets/{hard-drive-B0cynodE.js.map → hard-drive-BTACzgUO.js.map} +1 -1
  126. package/ccw/frontend/dist/assets/{hash-xOrTLxBg.js → hash-B0dYlmyB.js} +2 -2
  127. package/ccw/frontend/dist/assets/{hash-xOrTLxBg.js.map → hash-B0dYlmyB.js.map} +1 -1
  128. package/ccw/frontend/dist/assets/{history-BzXwj8RL.js → history-CRRLu6ck.js} +2 -2
  129. package/ccw/frontend/dist/assets/{history-BzXwj8RL.js.map → history-CRRLu6ck.js.map} +1 -1
  130. package/ccw/frontend/dist/assets/{index-BNZGm_Ur.js → index-BJIIo0B3.js} +2 -2
  131. package/ccw/frontend/dist/assets/{index-BNZGm_Ur.js.map → index-BJIIo0B3.js.map} +1 -1
  132. package/ccw/frontend/dist/assets/{index-osmL8__2.js → index-BP-D3Wv6.js} +2 -2
  133. package/ccw/frontend/dist/assets/{index-osmL8__2.js.map → index-BP-D3Wv6.js.map} +1 -1
  134. package/ccw/frontend/dist/assets/{index-DflI9CwB.js → index-B_QzEioU.js} +2 -2
  135. package/ccw/frontend/dist/assets/{index-DflI9CwB.js.map → index-B_QzEioU.js.map} +1 -1
  136. package/ccw/frontend/dist/assets/{index-B9aFbBPN.js → index-BpoRYgiq.js} +2 -2
  137. package/ccw/frontend/dist/assets/{index-B9aFbBPN.js.map → index-BpoRYgiq.js.map} +1 -1
  138. package/ccw/frontend/dist/assets/{index-Dy0tUf1F.js → index-CeESlrZb.js} +8 -8
  139. package/ccw/frontend/dist/assets/{index-Dy0tUf1F.js.map → index-CeESlrZb.js.map} +1 -1
  140. package/ccw/frontend/dist/assets/{index-D3uMibtZ.js → index-DzTbMyaS.js} +4 -4
  141. package/ccw/frontend/dist/assets/{index-D3uMibtZ.js.map → index-DzTbMyaS.js.map} +1 -1
  142. package/ccw/frontend/dist/assets/{layout-grid-CWFZqQWu.js → layout-grid-ZN26YcTM.js} +2 -2
  143. package/ccw/frontend/dist/assets/{layout-grid-CWFZqQWu.js.map → layout-grid-ZN26YcTM.js.map} +1 -1
  144. package/ccw/frontend/dist/assets/{lightbulb-BRLgsWe3.js → lightbulb-BHrwx9j6.js} +2 -2
  145. package/ccw/frontend/dist/assets/{lightbulb-BRLgsWe3.js.map → lightbulb-BHrwx9j6.js.map} +1 -1
  146. package/ccw/frontend/dist/assets/{link-2-BpKdq14u.js → link-2-zZRu2j4G.js} +2 -2
  147. package/ccw/frontend/dist/assets/{link-2-BpKdq14u.js.map → link-2-zZRu2j4G.js.map} +1 -1
  148. package/ccw/frontend/dist/assets/{link-BxUCReDi.js → link-8lz-HgnZ.js} +2 -2
  149. package/ccw/frontend/dist/assets/{link-BxUCReDi.js.map → link-8lz-HgnZ.js.map} +1 -1
  150. package/ccw/frontend/dist/assets/{list-Ce9EsAg8.js → list-DlablIjt.js} +2 -2
  151. package/ccw/frontend/dist/assets/{list-Ce9EsAg8.js.map → list-DlablIjt.js.map} +1 -1
  152. package/ccw/frontend/dist/assets/{map-pin-CxzQV1hS.js → map-pin-JAsCUplr.js} +2 -2
  153. package/ccw/frontend/dist/assets/{map-pin-CxzQV1hS.js.map → map-pin-JAsCUplr.js.map} +1 -1
  154. package/ccw/frontend/dist/assets/{messages-square-Dyodk79r.js → messages-square-D0iSFb2Y.js} +2 -2
  155. package/ccw/frontend/dist/assets/{messages-square-Dyodk79r.js.map → messages-square-D0iSFb2Y.js.map} +1 -1
  156. package/ccw/frontend/dist/assets/{minimize-2-s0009UK9.js → minimize-2-BJmkU9CE.js} +2 -2
  157. package/ccw/frontend/dist/assets/{minimize-2-s0009UK9.js.map → minimize-2-BJmkU9CE.js.map} +1 -1
  158. package/ccw/frontend/dist/assets/{package-C69biuJL.js → package-DYrbBCxk.js} +2 -2
  159. package/ccw/frontend/dist/assets/{package-C69biuJL.js.map → package-DYrbBCxk.js.map} +1 -1
  160. package/ccw/frontend/dist/assets/{plug-DERl-wQd.js → plug-VG7-23M-.js} +2 -2
  161. package/ccw/frontend/dist/assets/{plug-DERl-wQd.js.map → plug-VG7-23M-.js.map} +1 -1
  162. package/ccw/frontend/dist/assets/{power-CdvaDgTh.js → power-zPFYNx7u.js} +2 -2
  163. package/ccw/frontend/dist/assets/{power-CdvaDgTh.js.map → power-zPFYNx7u.js.map} +1 -1
  164. package/ccw/frontend/dist/assets/{save-C_Uot2e4.js → save-D4XQY9i9.js} +2 -2
  165. package/ccw/frontend/dist/assets/{save-C_Uot2e4.js.map → save-D4XQY9i9.js.map} +1 -1
  166. package/ccw/frontend/dist/assets/{send-R1XtAXeP.js → send-ClSnDjj-.js} +2 -2
  167. package/ccw/frontend/dist/assets/{send-R1XtAXeP.js.map → send-ClSnDjj-.js.map} +1 -1
  168. package/ccw/frontend/dist/assets/{square-check-big-Cyqi4INj.js → square-check-big-Bffh_MFc.js} +2 -2
  169. package/ccw/frontend/dist/assets/{square-check-big-Cyqi4INj.js.map → square-check-big-Bffh_MFc.js.map} +1 -1
  170. package/ccw/frontend/dist/assets/{square-pen-BmLNjUUw.js → square-pen-DsOvAvME.js} +2 -2
  171. package/ccw/frontend/dist/assets/{square-pen-BmLNjUUw.js.map → square-pen-DsOvAvME.js.map} +1 -1
  172. package/ccw/frontend/dist/assets/{star-CakKtIYu.js → star-TLJjvoy2.js} +2 -2
  173. package/ccw/frontend/dist/assets/{star-CakKtIYu.js.map → star-TLJjvoy2.js.map} +1 -1
  174. package/ccw/frontend/dist/assets/{style-DdNmehyz.js → style-BXKXgpOY.js} +2 -2
  175. package/ccw/frontend/dist/assets/{style-DdNmehyz.js.map → style-BXKXgpOY.js.map} +1 -1
  176. package/ccw/frontend/dist/assets/{target-CUvfwM3S.js → target-FDuAB6SF.js} +2 -2
  177. package/ccw/frontend/dist/assets/{target-CUvfwM3S.js.map → target-FDuAB6SF.js.map} +1 -1
  178. package/ccw/frontend/dist/assets/{test-tube-BVwrOGiZ.js → test-tube-B9vj-Im8.js} +2 -2
  179. package/ccw/frontend/dist/assets/{test-tube-BVwrOGiZ.js.map → test-tube-B9vj-Im8.js.map} +1 -1
  180. package/ccw/frontend/dist/assets/{upload-CY1NwcDw.js → upload-CHgTrVN5.js} +2 -2
  181. package/ccw/frontend/dist/assets/{upload-CY1NwcDw.js.map → upload-CHgTrVN5.js.map} +1 -1
  182. package/ccw/frontend/dist/assets/{useApiSettings-9JuzUfPE.js → useApiSettings-XsHrqf-L.js} +2 -2
  183. package/ccw/frontend/dist/assets/{useApiSettings-9JuzUfPE.js.map → useApiSettings-XsHrqf-L.js.map} +1 -1
  184. package/ccw/frontend/dist/assets/{useCli-Bb7Zo-OI.js → useCli-DOlWtux5.js} +2 -2
  185. package/ccw/frontend/dist/assets/{useCli-Bb7Zo-OI.js.map → useCli-DOlWtux5.js.map} +1 -1
  186. package/ccw/frontend/dist/assets/{useCommands-BUu-hUYI.js → useCommands-DazCajiX.js} +2 -2
  187. package/ccw/frontend/dist/assets/{useCommands-BUu-hUYI.js.map → useCommands-DazCajiX.js.map} +1 -1
  188. package/ccw/frontend/dist/assets/{useDebounce-CptXgLBn.js → useDebounce-Cah-bua6.js} +2 -2
  189. package/ccw/frontend/dist/assets/{useDebounce-CptXgLBn.js.map → useDebounce-Cah-bua6.js.map} +1 -1
  190. package/ccw/frontend/dist/assets/{useFileExplorer-B7dN8VT1.js → useFileExplorer-B9SCPhhl.js} +2 -2
  191. package/ccw/frontend/dist/assets/{useFileExplorer-B7dN8VT1.js.map → useFileExplorer-B9SCPhhl.js.map} +1 -1
  192. package/ccw/frontend/dist/assets/{useLocale-D6USNXOr.js → useLocale-CmG6pxZe.js} +2 -2
  193. package/ccw/frontend/dist/assets/{useLocale-D6USNXOr.js.map → useLocale-CmG6pxZe.js.map} +1 -1
  194. package/ccw/frontend/dist/assets/{useSkills-r8yfiQ-u.js → useSkills-DvEJ0JOv.js} +3 -3
  195. package/ccw/frontend/dist/assets/{useSkills-r8yfiQ-u.js.map → useSkills-DvEJ0JOv.js.map} +1 -1
  196. package/ccw/frontend/dist/assets/{useSystemSettings-BVWDQLMy.js → useSystemSettings-BDpwSa04.js} +2 -2
  197. package/ccw/frontend/dist/assets/{useSystemSettings-BVWDQLMy.js.map → useSystemSettings-BDpwSa04.js.map} +1 -1
  198. package/ccw/frontend/dist/assets/{wand-sparkles-Zdaej5bR.js → wand-sparkles-T2KGCRiy.js} +2 -2
  199. package/ccw/frontend/dist/assets/{wand-sparkles-Zdaej5bR.js.map → wand-sparkles-T2KGCRiy.js.map} +1 -1
  200. package/ccw/frontend/dist/index.html +1 -1
  201. package/codex-lens/src/codexlens/cli/commands.py +12 -1
  202. package/codex-lens/src/codexlens/config.py +12 -0
  203. package/codex-lens/src/codexlens/env_config.py +1 -0
  204. package/package.json +1 -1
  205. package/ccw/frontend/dist/assets/CodexLensManagerPage-Du_VAJtC.js.map +0 -1
  206. package/ccw/frontend/dist/assets/McpManagerPage-Bld27yu4.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import{O as ke,ab as V,aF as W,al as X,aH as B,e0 as Ms,e1 as As,e2 as Ps,e3 as Ts,e4 as Rs,e5 as Os,e6 as Fs,e7 as Ks,e8 as Bs,e9 as Gs,ea as Xs,eb as qs,ec as Us,ed as zs,ee as Ws,ef as Hs,eg as Vs,eh as Qs,ei as Ys,ej as Zs,ek as $s,el as Js,em as et,en as st,eo as tt,ep as nt,eq as at,er as it,es as rt,et as lt,eu as ct,ev as dt,ew as ot,u as z,a9 as Be,aa as Ge,ex as xt,r as h,j as e,Z as ue,C,ai as ie,aj as re,e as D,X as ss,a as Z,k as Xe,m as Ne,bp as qe,c as T,cn as Ve,B as q,l as mt,aU as ts,d6 as ut,ae as ht,ck as Qe,K as gt,ap as pt,a1 as ft,bu as U,I as ye,bf as vt,aq as pe,ar as fe,as as ve,at as je,au as F,R as he,W as Se,N as Le,aw as Oe,bO as Re,af as ns,T as as,an as De,b as we,M as jt,aR as Nt,U as is,cK as yt,x as rs,y as ls,z as cs,A as ds,E as os,ey as bt,ez as Et,G as xs,bq as Ye,av as Ct}from"./index-D3uMibtZ.js";import{T as St}from"./TabsNavigation-CU50UxOb.js";import{A as wt,h as _t,a as Lt,b as Dt,c as It,d as kt,e as Mt,f as At,g as Pt}from"./AlertDialog-BMFUcfv_.js";import{a as H}from"./useLocale-D6USNXOr.js";import{s as G}from"./errorSanitizer-IY9pf5g4.js";import{E as Tt}from"./eye-off-BWntEdln.js";import{E as Rt}from"./eye-BwniwXnu.js";import{C as Ue}from"./cpu-Dc8IS79i.js";import{a as Ot,P as Ft}from"./power-CdvaDgTh.js";import{F as Kt}from"./file-text-DsqI3R_g.js";import{C as Bt,a as Gt,b as Xt}from"./Collapsible-CF5bSyzt.js";import{S as Fe}from"./save-C_Uot2e4.js";import{F as ms}from"./filter-CQMcD8RT.js";import{P as Ie}from"./package-C69biuJL.js";import{H as qt}from"./hard-drive-B0cynodE.js";/**
1
+ import{O as ke,ab as V,aF as W,al as X,aH as B,e0 as Ms,e1 as As,e2 as Ps,e3 as Ts,e4 as Os,e5 as Rs,e6 as Fs,e7 as Ks,e8 as Bs,e9 as Gs,ea as Xs,eb as qs,ec as Us,ed as zs,ee as Ws,ef as Hs,eg as Vs,eh as Qs,ei as Ys,ej as Zs,ek as $s,el as Js,em as et,en as st,eo as tt,ep as nt,eq as at,er as it,es as rt,et as lt,eu as ct,ev as dt,ew as ot,u as z,a9 as Be,aa as Ge,ex as xt,r as h,j as e,Z as ue,C,ai as ie,aj as re,e as D,X as ss,a as Z,k as Xe,m as Ne,bp as qe,c as T,cn as Ve,B as q,l as mt,aU as ts,d6 as ut,ae as ht,ck as Qe,K as gt,ap as pt,a1 as ft,bu as U,I as ye,bf as vt,aq as pe,ar as fe,as as ve,at as je,au as F,R as he,W as Se,N as Le,aw as Re,bO as Oe,af as ns,T as as,an as De,b as we,M as jt,aR as Nt,U as is,cK as yt,x as rs,y as ls,z as cs,A as ds,E as os,ey as bt,ez as Et,G as xs,bq as Ye,av as Ct}from"./index-DzTbMyaS.js";import{T as St}from"./TabsNavigation-jhUge9YV.js";import{A as wt,h as _t,a as Lt,b as Dt,c as It,d as kt,e as Mt,f as At,g as Pt}from"./AlertDialog-CSZq4WHZ.js";import{a as H}from"./useLocale-CmG6pxZe.js";import{s as G}from"./errorSanitizer-IY9pf5g4.js";import{E as Tt}from"./eye-off-DjbIj5iN.js";import{E as Ot}from"./eye-D6BRlJ1r.js";import{C as Ue}from"./cpu-DX15mzMT.js";import{a as Rt,P as Ft}from"./power-zPFYNx7u.js";import{F as Kt}from"./file-text-BMy5pXNV.js";import{C as Bt,a as Gt,b as Xt}from"./Collapsible-I5pixbHb.js";import{S as Fe}from"./save-D4XQY9i9.js";import{F as ms}from"./filter-BTN-lUUb.js";import{P as Ie}from"./package-DYrbBCxk.js";import{H as qt}from"./hard-drive-BTACzgUO.js";/**
2
2
  * @license lucide-react v0.460.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -18,19 +18,19 @@ import{O as ke,ab as V,aF as W,al as X,aH as B,e0 as Ms,e1 as As,e2 as Ps,e3 as
18
18
  *
19
19
  * This source code is licensed under the ISC license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
- */const zt=ke("Scissors",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]]),p={all:["codexLens"],dashboard:()=>[...p.all,"dashboard"],status:()=>[...p.all,"status"],workspace:t=>[...p.all,"workspace",t],config:()=>[...p.all,"config"],models:()=>[...p.all,"models"],modelInfo:t=>[...p.models(),"info",t],env:()=>[...p.all,"env"],gpu:()=>[...p.all,"gpu"],gpuList:()=>[...p.gpu(),"list"],gpuDetect:()=>[...p.gpu(),"detect"],ignorePatterns:()=>[...p.all,"ignorePatterns"],indexes:()=>[...p.all,"indexes"],indexingStatus:()=>[...p.all,"indexingStatus"],search:t=>[...p.all,"search",t],filesSearch:t=>[...p.all,"filesSearch",t],symbolSearch:t=>[...p.all,"symbolSearch",t],lspStatus:()=>[...p.all,"lspStatus"],semanticSearch:t=>[...p.all,"semanticSearch",t],watcher:()=>[...p.all,"watcher"],rerankerConfig:()=>[...p.all,"rerankerConfig"],ccwTools:()=>[...p.all,"ccwTools"]},ge=30*1e3,Me=120*1e3,hs=600*1e3;function Wt(t={}){var i,l,r,d;const{enabled:s=!0,staleTime:a=ge}=t,n=V({queryKey:p.dashboard(),queryFn:$s,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{data:n.data,installed:((i=n.data)==null?void 0:i.installed)??!1,status:(l=n.data)==null?void 0:l.status,config:(r=n.data)==null?void 0:r.config,semantic:(d=n.data)==null?void 0:d.semantic,isLoading:n.isLoading,isFetching:n.isFetching,error:n.error,refetch:c}}function Ht(t={}){var i,l,r,d;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.config(),queryFn:Js,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{config:n.data,indexDir:((i=n.data)==null?void 0:i.index_dir)??"~/.codexlens/indexes",indexCount:((l=n.data)==null?void 0:l.index_count)??0,apiMaxWorkers:((r=n.data)==null?void 0:r.api_max_workers)??4,apiBatchSize:((d=n.data)==null?void 0:d.api_batch_size)??8,isLoading:n.isLoading,error:n.error,refetch:c}}function gs(t={}){var d;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.models(),queryFn:et,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()},i=((d=n.data)==null?void 0:d.models)??[],l=i==null?void 0:i.filter(o=>o.type==="embedding"),r=i==null?void 0:i.filter(o=>o.type==="reranker");return{models:i,embeddingModels:l,rerankerModels:r,isLoading:n.isLoading,error:n.error,refetch:c}}function ps(t={}){var i,l,r;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.env(),queryFn:st,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{data:n.data,env:(i=n.data)==null?void 0:i.env,settings:(l=n.data)==null?void 0:l.settings,raw:(r=n.data)==null?void 0:r.raw,isLoading:n.isLoading,error:n.error,refetch:c}}function Vt(t={}){var i,l,r;const{enabled:s=!0,staleTime:a=hs}=t,n=V({queryKey:p.ignorePatterns(),queryFn:tt,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{data:n.data,patterns:(i=n.data)==null?void 0:i.patterns,extensionFilters:(l=n.data)==null?void 0:l.extensionFilters,defaults:(r=n.data)==null?void 0:r.defaults,isLoading:n.isLoading,error:n.error,refetch:c}}function Qt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ms,onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensConfigUpdate.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.config()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensConfigUpdate.success"}))},onError:l=>{const r=G(l,"codexLensConfigUpdate"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updateConfig:i.mutateAsync,isUpdating:i.isPending,error:i.error}}function Yt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:As,onMutate:()=>{n(s({id:"codexlens.bootstrapping"}),s({id:"common.feedback.codexLensBootstrap.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.all}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensBootstrap.success"}))},onError:l=>{const r=G(l,"codexLensBootstrap"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{bootstrap:i.mutateAsync,isBootstrapping:i.isPending,error:i.error}}function Zt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ps,onMutate:()=>{n(s({id:"codexlens.semantic.installing"}),s({id:"common.feedback.codexLensInstallSemantic.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.all}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensInstallSemantic.success"}))},onError:l=>{const r=G(l,"codexLensInstallSemantic"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{installSemantic:i.mutateAsync,isInstalling:i.isPending,error:i.error}}function $t(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ts,onMutate:()=>{n(s({id:"codexlens.uninstalling"}),s({id:"common.feedback.codexLensUninstall.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.all}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUninstall.success"}))},onError:l=>{const r=G(l,"codexLensUninstall"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{uninstall:i.mutateAsync,isUninstalling:i.isPending,error:i.error}}function Jt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({profile:l,modelName:r,modelType:d})=>{if(l)return Rs(l);if(r)return Os(r,d);throw new Error("Either profile or modelName must be provided")},onMutate:()=>{n(s({id:"codexlens.models.downloading"}),s({id:"common.feedback.codexLensDownloadModel.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.models()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensDownloadModel.success"}))},onError:l=>{const r=G(l,"codexLensDownloadModel"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{downloadModel:l=>i.mutateAsync({profile:l}),downloadCustomModel:(l,r)=>i.mutateAsync({modelName:l,modelType:r}),isDownloading:i.isPending,error:i.error}}function en(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({profile:l,cachePath:r})=>{if(l)return Fs(l);if(r)return Ks(r);throw new Error("Either profile or cachePath must be provided")},onMutate:()=>{n(s({id:"common.actions.deleting"}),s({id:"common.feedback.codexLensDeleteModel.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.models()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensDeleteModel.success"}))},onError:l=>{const r=G(l,"codexLensDeleteModel"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{deleteModel:l=>i.mutateAsync({profile:l}),deleteModelByPath:l=>i.mutateAsync({cachePath:l}),isDeleting:i.isPending,error:i.error}}function ze(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:l=>Bs(l),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensUpdateEnv.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.env()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUpdateEnv.success"}))},onError:l=>{const r=G(l,"codexLensUpdateEnv"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updateEnv:i.mutateAsync,isUpdating:i.isPending,error:i.error}}function sn(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:r=>Gs(r),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensSelectGpu.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.gpu()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensSelectGpu.success"}))},onError:r=>{const d=G(r,"codexLensSelectGpu"),o=s({id:d.messageKey}),x=s({id:"common.error"});c(x,o)}}),l=B({mutationFn:()=>Xs(),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensResetGpu.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.gpu()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensResetGpu.success"}))},onError:r=>{const d=G(r,"codexLensResetGpu"),o=s({id:d.messageKey}),x=s({id:"common.error"});c(x,o)}});return{selectGpu:i.mutateAsync,resetGpu:l.mutateAsync,isSelecting:i.isPending,isResetting:l.isPending,error:i.error||l.error}}function fs(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:qs,onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensUpdatePatterns.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.ignorePatterns()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUpdatePatterns.success"}))},onError:l=>{const r=G(l,"codexLensUpdatePatterns"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updatePatterns:i.mutateAsync,isUpdating:i.isPending,error:i.error}}function tn(){var s;const t=V({queryKey:p.indexingStatus(),queryFn:nt,staleTime:ge,refetchInterval:a=>{var n;return(n=a.state.data)!=null&&n.inProgress?2e3:!1},retry:!1});return{data:t.data,inProgress:((s=t.data)==null?void 0:s.inProgress)??!1,isLoading:t.isLoading,error:t.error}}function vs(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({projectPath:l,options:r={}})=>Us(l,r),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensRebuildIndex.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.indexes()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensRebuildIndex.success"}))},onError:l=>{const r=G(l,"codexLensRebuildIndex"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{rebuildIndex:(l,r)=>i.mutateAsync({projectPath:l,options:r}),isRebuilding:i.isPending,error:i.error}}function js(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({projectPath:l,options:r={}})=>zs(l,r),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensUpdateIndex.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.indexes()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUpdateIndex.success"}))},onError:l=>{const r=G(l,"codexLensUpdateIndex"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updateIndex:(l,r)=>i.mutateAsync({projectPath:l,options:r}),isUpdating:i.isPending,error:i.error}}function Ns(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ws,onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensCancelIndexing.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.indexingStatus()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensCancelIndexing.success"}))},onError:l=>{const r=G(l,"codexLensCancelIndexing"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{cancelIndexing:i.mutateAsync,isCancelling:i.isPending,error:i.error}}function We(){const t=Qt(),s=Yt(),a=Zt(),n=$t(),c=Jt(),i=en(),l=ze(),r=sn(),d=fs(),o=vs(),x=js(),j=Ns();return{updateConfig:t.updateConfig,isUpdatingConfig:t.isUpdating,bootstrap:s.bootstrap,isBootstrapping:s.isBootstrapping,installSemantic:a.installSemantic,isInstallingSemantic:a.isInstalling,uninstall:n.uninstall,isUninstalling:n.isUninstalling,downloadModel:c.downloadModel,downloadCustomModel:c.downloadCustomModel,isDownloading:c.isDownloading,deleteModel:i.deleteModel,deleteModelByPath:i.deleteModelByPath,isDeleting:i.isDeleting,updateEnv:l.updateEnv,isUpdatingEnv:l.isUpdating,selectGpu:r.selectGpu,resetGpu:r.resetGpu,isSelectingGpu:r.isSelecting||r.isResetting,updatePatterns:d.updatePatterns,isUpdatingPatterns:d.isUpdating,rebuildIndex:o.rebuildIndex,isRebuildingIndex:o.isRebuilding,updateIndex:x.updateIndex,isUpdatingIndex:x.isUpdating,cancelIndexing:j.cancelIndexing,isCancellingIndexing:j.isCancelling,isMutating:t.isUpdating||s.isBootstrapping||a.isInstalling||n.isUninstalling||c.isDownloading||i.isDeleting||l.isUpdating||r.isSelecting||r.isResetting||d.isUpdating||o.isRebuilding||x.isUpdating||j.isCancelling}}function nn(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.search(t),queryFn:()=>at(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,results:(i=n.data)==null?void 0:i.results,isLoading:n.isLoading,error:n.error,refetch:c}}function an(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.filesSearch(t),queryFn:()=>it(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,files:(i=n.data)==null?void 0:i.files,isLoading:n.isLoading,error:n.error,refetch:c}}function rn(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.symbolSearch(t),queryFn:()=>rt(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,symbols:(i=n.data)==null?void 0:i.symbols,isLoading:n.isLoading,error:n.error,refetch:c}}function ys(t={}){var i,l,r,d,o,x,j;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.lspStatus(),queryFn:lt,staleTime:a,enabled:s,refetchInterval:m=>{const E=m.state.data;return E!=null&&E.available?5e3:!1},retry:2}),c=async()=>{await n.refetch()};return{data:n.data,available:((i=n.data)==null?void 0:i.available)??!1,semanticAvailable:((l=n.data)==null?void 0:l.semantic_available)??!1,vectorIndex:((r=n.data)==null?void 0:r.vector_index)??!1,projectCount:((d=n.data)==null?void 0:d.project_count)??0,embeddings:(o=n.data)==null?void 0:o.embeddings,modes:((x=n.data)==null?void 0:x.modes)??[],strategies:((j=n.data)==null?void 0:j.strategies)??[],isLoading:n.isLoading,error:n.error,refetch:c}}function ln(){const t=W(),s=H(),{success:a,error:n}=X(),c=B({mutationFn:({path:r})=>Qs(r),onSuccess:()=>{t.invalidateQueries({queryKey:p.lspStatus()}),a(s({id:"common.success"}),s({id:"codexlens.lsp.started"}))},onError:r=>{const d=G(r,"codexLensLspStart"),o=s({id:d.messageKey}),x=s({id:"common.error"});n(x,o)}}),i=B({mutationFn:({path:r})=>Ys(r),onSuccess:()=>{t.invalidateQueries({queryKey:p.lspStatus()}),a(s({id:"common.success"}),s({id:"codexlens.lsp.stopped"}))},onError:r=>{const d=G(r,"codexLensLspStop"),o=s({id:d.messageKey}),x=s({id:"common.error"});n(x,o)}}),l=B({mutationFn:({path:r})=>Zs(r),onSuccess:()=>{t.invalidateQueries({queryKey:p.lspStatus()}),a(s({id:"common.success"}),s({id:"codexlens.lsp.restarted"}))},onError:r=>{const d=G(r,"codexLensLspRestart"),o=s({id:d.messageKey}),x=s({id:"common.error"});n(x,o)}});return{startLsp:r=>c.mutateAsync({path:r}),stopLsp:r=>i.mutateAsync({path:r}),restartLsp:r=>l.mutateAsync({path:r}),isStarting:c.isPending,isStopping:i.isPending,isRestarting:l.isPending}}function cn(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.semanticSearch(t),queryFn:()=>ct(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,results:(i=n.data)==null?void 0:i.results,isLoading:n.isLoading,error:n.error,refetch:c}}function dn(t={}){var n,c,i,l;const{enabled:s=!0}=t,a=V({queryKey:p.watcher(),queryFn:dt,staleTime:ge,enabled:s,refetchInterval:r=>{const d=r.state.data;return d!=null&&d.running?3e3:!1},retry:2});return{data:a.data,running:((n=a.data)==null?void 0:n.running)??!1,rootPath:((c=a.data)==null?void 0:c.root_path)??"",eventsProcessed:((i=a.data)==null?void 0:i.events_processed)??0,uptimeSeconds:((l=a.data)==null?void 0:l.uptime_seconds)??0,isLoading:a.isLoading,error:a.error}}function on(){const t=W(),s=H(),{success:a,error:n}=X(),c=B({mutationFn:({path:l,debounceMs:r})=>Hs(l,r),onSuccess:()=>{t.invalidateQueries({queryKey:p.watcher()}),a(s({id:"common.success"}),s({id:"codexlens.watcher.started"}))},onError:l=>{const r=G(l,"codexLensWatcherStart"),d=s({id:r.messageKey}),o=s({id:"common.error"});n(o,d)}}),i=B({mutationFn:()=>Vs(),onSuccess:()=>{t.invalidateQueries({queryKey:p.watcher()}),a(s({id:"common.success"}),s({id:"codexlens.watcher.stopped"}))},onError:l=>{const r=G(l,"codexLensWatcherStop"),d=s({id:r.messageKey}),o=s({id:"common.error"});n(o,d)}});return{startWatcher:(l,r)=>c.mutateAsync({path:l,debounceMs:r}),stopWatcher:()=>i.mutateAsync(),isStarting:c.isPending,isStopping:i.isPending}}function xn(){const t=V({queryKey:p.ccwTools(),queryFn:ot,staleTime:hs,retry:2});return{tools:t.data??[],isLoading:t.isLoading,error:t.error}}function mn({disabled:t=!1,onRefresh:s}){const{formatMessage:a}=z(),{success:n,error:c,wsLastMessage:i}=X(),l=Be(Ge),{inProgress:r}=tn(),{rebuildIndex:d,isRebuilding:o}=vs(),{updateIndex:x,isUpdating:j}=js(),{cancelIndexing:m,isCancelling:E}=Ns();xt();const[b,S]=h.useState(null),[w,P]=h.useState(null);h.useEffect(()=>{if((i==null?void 0:i.type)==="CODEXLENS_INDEX_PROGRESS"){const N=i.payload;S(N),(N.stage==="complete"||N.stage==="error"||N.stage==="cancelled")&&(N.stage==="complete"?(n(a({id:"codexlens.index.operationComplete"}),N.message),s==null||s()):N.stage==="error"&&c(a({id:"codexlens.index.operationFailed"}),N.message),P(null),S(null))}},[i,a,n,c,s]);const y=o||j||r||!!w,g=async N=>{if(!l){c(a({id:"codexlens.index.noProject"}),a({id:"codexlens.index.noProjectDesc"}));return}P(N.id),S({stage:"start",message:a({id:"codexlens.index.starting"}),percent:0});try{const I=N.type.includes("vector");if(N.type.includes("incremental")){const f=await x(l,{indexType:I?"vector":"normal"});if(!f.success)throw new Error(f.error||"Update failed")}else{const f=await d(l,{indexType:I?"vector":"normal"});if(!f.success)throw new Error(f.error||"Rebuild failed")}}catch(I){P(null),S(null),c(a({id:"codexlens.index.operationFailed"}),I instanceof Error?I.message:a({id:"codexlens.index.unknownError"}))}},v=async()=>{const N=await m();N.success?(P(null),S(null)):c(a({id:"codexlens.index.cancelFailed"}),N.error||a({id:"codexlens.index.unknownError"}))},L=[{id:"fts_full",type:"fts_full",label:a({id:"codexlens.overview.actions.ftsFull"}),description:a({id:"codexlens.overview.actions.ftsFullDesc"}),icon:e.jsx(_e,{className:"w-4 h-4"})},{id:"fts_incremental",type:"fts_incremental",label:a({id:"codexlens.overview.actions.ftsIncremental"}),description:a({id:"codexlens.overview.actions.ftsIncrementalDesc"}),icon:e.jsx(ue,{className:"w-4 h-4"})},{id:"vector_full",type:"vector_full",label:a({id:"codexlens.overview.actions.vectorFull"}),description:a({id:"codexlens.overview.actions.vectorFullDesc"}),icon:e.jsx(_e,{className:"w-4 h-4"})},{id:"vector_incremental",type:"vector_incremental",label:a({id:"codexlens.overview.actions.vectorIncremental"}),description:a({id:"codexlens.overview.actions.vectorIncrementalDesc"}),icon:e.jsx(ue,{className:"w-4 h-4"})}];if(b&&w){const N=L.find(k=>k.id===w),I=b.stage==="complete",O=b.stage==="error",f=b.stage==="cancelled";return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsx("span",{children:N==null?void 0:N.label}),!I&&!O&&!f&&e.jsxs(D,{variant:"ghost",size:"sm",onClick:v,disabled:E,children:[e.jsx(ss,{className:"w-4 h-4 mr-1"}),a({id:"common.actions.cancel"})]})]})}),e.jsxs(Z,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[I?e.jsx(Xe,{className:"w-6 h-6 text-success"}):O||f?e.jsx(Ne,{className:"w-6 h-6 text-destructive"}):e.jsx(_e,{className:"w-6 h-6 text-primary animate-spin"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:a(I?{id:"codexlens.index.complete"}:O?{id:"codexlens.index.failed"}:f?{id:"codexlens.index.cancelled"}:{id:"codexlens.index.inProgress"})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.message})]})]}),!I&&!O&&!f&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(qe,{value:b.percent,className:"h-2"}),e.jsxs("p",{className:"text-xs text-muted-foreground text-right",children:[b.percent,"%"]})]}),(I||O||f)&&e.jsx("div",{className:"flex justify-end",children:e.jsx(D,{variant:"outline",size:"sm",onClick:()=>{P(null),S(null)},children:a({id:"common.actions.close"})})})]})]})}return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsx(re,{className:"text-base",children:a({id:"codexlens.overview.actions.title"})})}),e.jsx(Z,{children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:L.map(N=>e.jsxs(D,{variant:"outline",className:"h-auto p-4 flex flex-col items-start gap-2 text-left",onClick:()=>g(N),disabled:t||y,children:[e.jsxs("div",{className:"flex items-center gap-2 w-full",children:[e.jsx("span",{className:T("text-muted-foreground",(t||y)&&"opacity-50"),children:N.icon}),e.jsx("span",{className:"font-medium",children:N.label})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:N.description})]},N.id))})})]})}function un(t){if(t<60)return`${t}s`;if(t<3600){const n=Math.floor(t/60),c=t%60;return`${n}m ${c}s`}const s=Math.floor(t/3600),a=Math.floor(t%3600/60);return`${s}h ${a}m`}function hn({disabled:t=!1}){const{formatMessage:s}=z(),a=Be(Ge),{running:n,rootPath:c,eventsProcessed:i,uptimeSeconds:l,isLoading:r}=dn(),{startWatcher:d,stopWatcher:o,isStarting:x,isStopping:j}=on(),m=x||j,E=async()=>{n?await o():await d(a)};return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ve,{className:"w-4 h-4"}),e.jsx("span",{children:s({id:"codexlens.watcher.title"})})]}),e.jsx(q,{variant:n?"success":"secondary",children:s(n?{id:"codexlens.watcher.status.running"}:{id:"codexlens.watcher.status.stopped"})})]})}),e.jsxs(Z,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(Ve,{className:T("w-4 h-4",n?"text-success":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.watcher.eventsProcessed"})}),e.jsx("p",{className:"font-semibold text-foreground",children:i})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(mt,{className:T("w-4 h-4",n?"text-info":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.watcher.uptime"})}),e.jsx("p",{className:"font-semibold text-foreground",children:n?un(l):"--"})]})]})]}),n&&c&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(ts,{className:"w-4 h-4 text-muted-foreground flex-shrink-0"}),e.jsx("span",{className:"text-muted-foreground truncate",title:c,children:c})]}),e.jsx(D,{variant:n?"outline":"default",size:"sm",className:"w-full",onClick:E,disabled:t||m||r,children:n?e.jsxs(e.Fragment,{children:[e.jsx(Tt,{className:"w-4 h-4 mr-2"}),s(j?{id:"codexlens.watcher.stopping"}:{id:"codexlens.watcher.stop"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Rt,{className:"w-4 h-4 mr-2"}),s(x?{id:"codexlens.watcher.starting"}:{id:"codexlens.watcher.start"})]})})]})]})}function gn({disabled:t=!1}){const{formatMessage:s}=z(),a=Be(Ge),{available:n,semanticAvailable:c,projectCount:i,modes:l,isLoading:r}=ys(),{startLsp:d,stopLsp:o,restartLsp:x,isStarting:j,isStopping:m,isRestarting:E}=ln(),b=j||m||E,S=async()=>{n?await o(a):await d(a)},w=async()=>{await x(a)};return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-4 h-4"}),e.jsx("span",{children:s({id:"codexlens.lsp.title"})})]}),e.jsx(q,{variant:n?"success":"secondary",children:s(n?{id:"codexlens.lsp.status.running"}:{id:"codexlens.lsp.status.stopped"})})]})}),e.jsxs(Z,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(ts,{className:T("w-4 h-4",n?"text-success":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.lsp.projects"})}),e.jsx("p",{className:"font-semibold text-foreground",children:n?i:"--"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(Ue,{className:T("w-4 h-4",c?"text-info":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.lsp.semanticAvailable"})}),e.jsx("p",{className:"font-semibold text-foreground",children:s(c?{id:"codexlens.lsp.available"}:{id:"codexlens.lsp.unavailable"})})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(ht,{className:T("w-4 h-4",n&&l.length>0?"text-accent":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.lsp.modes"})}),e.jsx("p",{className:"font-semibold text-foreground",children:n?l.length:"--"})]})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(D,{variant:n?"outline":"default",size:"sm",className:"flex-1",onClick:S,disabled:t||b||r,children:n?e.jsxs(e.Fragment,{children:[e.jsx(Ot,{className:"w-4 h-4 mr-2"}),s(m?{id:"codexlens.lsp.stopping"}:{id:"codexlens.lsp.stop"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ft,{className:"w-4 h-4 mr-2"}),s(j?{id:"codexlens.lsp.starting"}:{id:"codexlens.lsp.start"})]})}),n&&e.jsxs(D,{variant:"outline",size:"sm",onClick:w,disabled:t||b||r,children:[e.jsx(_e,{className:T("w-4 h-4 mr-2",E&&"animate-spin")}),s(E?{id:"codexlens.lsp.restarting"}:{id:"codexlens.lsp.restart"})]})]})]})]})}function pn({installed:t,status:s,config:a,isLoading:n,onRefresh:c}){const{formatMessage:i}=z();if(n)return e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[1,2,3,4].map(x=>e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"animate-pulse",children:[e.jsx("div",{className:"h-4 bg-muted rounded w-20 mb-2"}),e.jsx("div",{className:"h-8 bg-muted rounded w-16"})]})},x))})});if(!t)return e.jsxs(C,{className:"p-8 text-center",children:[e.jsx(Qe,{className:"w-12 h-12 mx-auto text-muted-foreground/50 mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:i({id:"codexlens.overview.notInstalled.title"})}),e.jsx("p",{className:"text-muted-foreground",children:i({id:"codexlens.overview.notInstalled.message"})})]});const l=(s==null?void 0:s.ready)??!1,r=(s==null?void 0:s.version)??"Unknown",d=(a==null?void 0:a.index_dir)??"~/.codexlens/indexes",o=(a==null?void 0:a.index_count)??0;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:T("p-2 rounded-lg",l?"bg-success/10":"bg-warning/10"),children:l?e.jsx(Xe,{className:"w-5 h-5 text-success"}):e.jsx(gt,{className:"w-5 h-5 text-warning"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.installation"})}),e.jsx("p",{className:"text-lg font-semibold text-foreground",children:i(l?{id:"codexlens.overview.status.ready"}:{id:"codexlens.overview.status.notReady"})})]})]})}),e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-primary/10",children:e.jsx(Qe,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.version"})}),e.jsx("p",{className:"text-lg font-semibold text-foreground",children:r})]})]})}),e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-info/10",children:e.jsx(Kt,{className:"w-5 h-5 text-info"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.indexPath"})}),e.jsx("p",{className:"text-sm font-semibold text-foreground truncate",title:d,children:d})]})]})}),e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-accent/10",children:e.jsx(ue,{className:"w-5 h-5 text-accent"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.indexCount"})}),e.jsx("p",{className:"text-lg font-semibold text-foreground",children:o})]})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsx(hn,{disabled:!l}),e.jsx(gn,{disabled:!l})]}),e.jsx(mn,{disabled:!l,onRefresh:c}),s&&e.jsxs(C,{children:[e.jsx(ie,{children:e.jsx(re,{className:"text-base",children:i({id:"codexlens.overview.venv.title"})})}),e.jsx(Z,{children:e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:i({id:"codexlens.overview.venv.pythonVersion"})}),e.jsx("span",{className:"text-foreground font-mono",children:s.pythonVersion||"Unknown"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:i({id:"codexlens.overview.venv.venvPath"})}),e.jsx("span",{className:"text-foreground font-mono truncate ml-4",title:s.venvPath,children:s.venvPath||"Unknown"})]})]})})]})]})}const bs={embedding:{id:"embedding",labelKey:"codexlens.envGroup.embedding",icon:"box",vars:{CODEXLENS_EMBEDDING_BACKEND:{key:"CODEXLENS_EMBEDDING_BACKEND",labelKey:"codexlens.envField.backend",type:"select",options:["local","api"],default:"local",settingsPath:"embedding.backend"},CODEXLENS_EMBEDDING_MODEL:{key:"CODEXLENS_EMBEDDING_MODEL",labelKey:"codexlens.envField.model",type:"model-select",placeholder:"Select or enter model...",default:"fast",settingsPath:"embedding.model",localModels:[{group:"FastEmbed Profiles",items:["fast","code","base","minilm","multilingual","balanced"]}],apiModels:[{group:"OpenAI",items:["text-embedding-3-small","text-embedding-3-large","text-embedding-ada-002"]},{group:"Cohere",items:["embed-english-v3.0","embed-multilingual-v3.0","embed-english-light-v3.0"]},{group:"Voyage",items:["voyage-3","voyage-3-lite","voyage-code-3","voyage-multilingual-2"]},{group:"SiliconFlow",items:["BAAI/bge-m3","BAAI/bge-large-zh-v1.5","BAAI/bge-large-en-v1.5"]},{group:"Jina",items:["jina-embeddings-v3","jina-embeddings-v2-base-en","jina-embeddings-v2-base-zh"]}]},CODEXLENS_USE_GPU:{key:"CODEXLENS_USE_GPU",labelKey:"codexlens.envField.useGpu",type:"select",options:["true","false"],default:"true",settingsPath:"embedding.use_gpu",showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="local"},CODEXLENS_EMBEDDING_POOL_ENABLED:{key:"CODEXLENS_EMBEDDING_POOL_ENABLED",labelKey:"codexlens.envField.highAvailability",type:"select",options:["true","false"],default:"false",settingsPath:"embedding.pool_enabled",showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="api"},CODEXLENS_EMBEDDING_STRATEGY:{key:"CODEXLENS_EMBEDDING_STRATEGY",labelKey:"codexlens.envField.loadBalanceStrategy",type:"select",options:["round_robin","latency_aware","weighted_random"],default:"latency_aware",settingsPath:"embedding.strategy",showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="api"&&t.CODEXLENS_EMBEDDING_POOL_ENABLED==="true"},CODEXLENS_EMBEDDING_COOLDOWN:{key:"CODEXLENS_EMBEDDING_COOLDOWN",labelKey:"codexlens.envField.rateLimitCooldown",type:"number",placeholder:"60",default:"60",settingsPath:"embedding.cooldown",min:0,max:300,showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="api"&&t.CODEXLENS_EMBEDDING_POOL_ENABLED==="true"}}},reranker:{id:"reranker",labelKey:"codexlens.envGroup.reranker",icon:"arrow-up-down",vars:{CODEXLENS_RERANKER_ENABLED:{key:"CODEXLENS_RERANKER_ENABLED",labelKey:"codexlens.envField.enabled",type:"select",options:["true","false"],default:"true",settingsPath:"reranker.enabled"},CODEXLENS_RERANKER_BACKEND:{key:"CODEXLENS_RERANKER_BACKEND",labelKey:"codexlens.envField.backend",type:"select",options:["onnx","api","litellm","legacy"],default:"onnx",settingsPath:"reranker.backend"},CODEXLENS_RERANKER_MODEL:{key:"CODEXLENS_RERANKER_MODEL",labelKey:"codexlens.envField.model",type:"model-select",placeholder:"Select or enter model...",default:"Xenova/ms-marco-MiniLM-L-6-v2",settingsPath:"reranker.model",localModels:[{group:"FastEmbed/ONNX",items:["Xenova/ms-marco-MiniLM-L-6-v2","cross-encoder/ms-marco-MiniLM-L-6-v2","BAAI/bge-reranker-base"]}],apiModels:[{group:"Cohere",items:["rerank-english-v3.0","rerank-multilingual-v3.0","rerank-english-v2.0"]},{group:"Voyage",items:["rerank-2","rerank-2-lite","rerank-1"]},{group:"SiliconFlow",items:["BAAI/bge-reranker-v2-m3","BAAI/bge-reranker-large","BAAI/bge-reranker-base"]},{group:"Jina",items:["jina-reranker-v2-base-multilingual","jina-reranker-v1-base-en"]}]},CODEXLENS_RERANKER_TOP_K:{key:"CODEXLENS_RERANKER_TOP_K",labelKey:"codexlens.envField.topKResults",type:"number",placeholder:"50",default:"50",settingsPath:"reranker.top_k",min:5,max:200},CODEXLENS_RERANKER_POOL_ENABLED:{key:"CODEXLENS_RERANKER_POOL_ENABLED",labelKey:"codexlens.envField.highAvailability",type:"select",options:["true","false"],default:"false",settingsPath:"reranker.pool_enabled",showWhen:t=>t.CODEXLENS_RERANKER_BACKEND==="api"||t.CODEXLENS_RERANKER_BACKEND==="litellm"},CODEXLENS_RERANKER_STRATEGY:{key:"CODEXLENS_RERANKER_STRATEGY",labelKey:"codexlens.envField.loadBalanceStrategy",type:"select",options:["round_robin","latency_aware","weighted_random"],default:"latency_aware",settingsPath:"reranker.strategy",showWhen:t=>(t.CODEXLENS_RERANKER_BACKEND==="api"||t.CODEXLENS_RERANKER_BACKEND==="litellm")&&t.CODEXLENS_RERANKER_POOL_ENABLED==="true"},CODEXLENS_RERANKER_COOLDOWN:{key:"CODEXLENS_RERANKER_COOLDOWN",labelKey:"codexlens.envField.rateLimitCooldown",type:"number",placeholder:"60",default:"60",settingsPath:"reranker.cooldown",min:0,max:300,showWhen:t=>(t.CODEXLENS_RERANKER_BACKEND==="api"||t.CODEXLENS_RERANKER_BACKEND==="litellm")&&t.CODEXLENS_RERANKER_POOL_ENABLED==="true"}}},concurrency:{id:"concurrency",labelKey:"codexlens.envGroup.concurrency",icon:"cpu",vars:{CODEXLENS_API_MAX_WORKERS:{key:"CODEXLENS_API_MAX_WORKERS",labelKey:"codexlens.envField.maxWorkers",type:"number",placeholder:"4",default:"4",settingsPath:"api.max_workers",min:1,max:32},CODEXLENS_API_BATCH_SIZE:{key:"CODEXLENS_API_BATCH_SIZE",labelKey:"codexlens.envField.batchSize",type:"number",placeholder:"8",default:"8",settingsPath:"api.batch_size",min:1,max:64,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC!=="true"},CODEXLENS_API_BATCH_SIZE_DYNAMIC:{key:"CODEXLENS_API_BATCH_SIZE_DYNAMIC",labelKey:"codexlens.envField.dynamicBatchSize",type:"checkbox",default:"false",settingsPath:"api.batch_size_dynamic"},CODEXLENS_API_BATCH_SIZE_UTILIZATION:{key:"CODEXLENS_API_BATCH_SIZE_UTILIZATION",labelKey:"codexlens.envField.batchSizeUtilization",type:"number",placeholder:"0.8",default:"0.8",settingsPath:"api.batch_size_utilization_factor",min:.1,max:.95,step:.05,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC==="true"},CODEXLENS_API_BATCH_SIZE_MAX:{key:"CODEXLENS_API_BATCH_SIZE_MAX",labelKey:"codexlens.envField.batchSizeMax",type:"number",placeholder:"2048",default:"2048",settingsPath:"api.batch_size_max",min:1,max:4096,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC==="true"},CODEXLENS_CHARS_PER_TOKEN:{key:"CODEXLENS_CHARS_PER_TOKEN",labelKey:"codexlens.envField.charsPerToken",type:"number",placeholder:"4",default:"4",settingsPath:"api.chars_per_token_estimate",min:1,max:10,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC==="true"}}},cascade:{id:"cascade",labelKey:"codexlens.envGroup.cascade",icon:"git-branch",vars:{CODEXLENS_CASCADE_STRATEGY:{key:"CODEXLENS_CASCADE_STRATEGY",labelKey:"codexlens.envField.searchStrategy",type:"select",options:["binary","hybrid","binary_rerank","dense_rerank","staged"],default:"dense_rerank",settingsPath:"cascade.strategy"},CODEXLENS_CASCADE_COARSE_K:{key:"CODEXLENS_CASCADE_COARSE_K",labelKey:"codexlens.envField.coarseK",type:"number",placeholder:"100",default:"100",settingsPath:"cascade.coarse_k",min:10,max:500},CODEXLENS_CASCADE_FINE_K:{key:"CODEXLENS_CASCADE_FINE_K",labelKey:"codexlens.envField.fineK",type:"number",placeholder:"10",default:"10",settingsPath:"cascade.fine_k",min:1,max:100},CODEXLENS_STAGED_STAGE2_MODE:{key:"CODEXLENS_STAGED_STAGE2_MODE",labelKey:"codexlens.envField.stagedStage2Mode",type:"select",options:["precomputed","realtime","static_global_graph"],default:"precomputed",settingsPath:"staged.stage2_mode",showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"},CODEXLENS_STAGED_CLUSTERING_STRATEGY:{key:"CODEXLENS_STAGED_CLUSTERING_STRATEGY",labelKey:"codexlens.envField.stagedClusteringStrategy",type:"select",options:["auto","hdbscan","dbscan","frequency","noop","score","dir_rr","path"],default:"auto",settingsPath:"staged.clustering_strategy",showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"},CODEXLENS_STAGED_CLUSTERING_MIN_SIZE:{key:"CODEXLENS_STAGED_CLUSTERING_MIN_SIZE",labelKey:"codexlens.envField.stagedClusteringMinSize",type:"number",placeholder:"3",default:"3",settingsPath:"staged.clustering_min_size",min:1,max:50,showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"},CODEXLENS_ENABLE_STAGED_RERANK:{key:"CODEXLENS_ENABLE_STAGED_RERANK",labelKey:"codexlens.envField.enableStagedRerank",type:"checkbox",default:"true",settingsPath:"staged.enable_rerank",showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"}}},indexing:{id:"indexing",labelKey:"codexlens.envGroup.indexing",icon:"git-branch",vars:{CODEXLENS_USE_ASTGREP:{key:"CODEXLENS_USE_ASTGREP",labelKey:"codexlens.envField.useAstGrep",type:"checkbox",default:"false",settingsPath:"parsing.use_astgrep"},CODEXLENS_STATIC_GRAPH_ENABLED:{key:"CODEXLENS_STATIC_GRAPH_ENABLED",labelKey:"codexlens.envField.staticGraphEnabled",type:"checkbox",default:"false",settingsPath:"indexing.static_graph_enabled"},CODEXLENS_STATIC_GRAPH_RELATIONSHIP_TYPES:{key:"CODEXLENS_STATIC_GRAPH_RELATIONSHIP_TYPES",labelKey:"codexlens.envField.staticGraphRelationshipTypes",type:"text",placeholder:"imports,inherits,calls",default:"imports,inherits",settingsPath:"indexing.static_graph_relationship_types",showWhen:t=>t.CODEXLENS_STATIC_GRAPH_ENABLED==="true"}}},chunking:{id:"chunking",labelKey:"codexlens.envGroup.chunking",icon:"scissors",vars:{CHUNK_STRIP_COMMENTS:{key:"CHUNK_STRIP_COMMENTS",labelKey:"codexlens.envField.stripComments",type:"select",options:["true","false"],default:"true",settingsPath:"chunking.strip_comments"},CHUNK_STRIP_DOCSTRINGS:{key:"CHUNK_STRIP_DOCSTRINGS",labelKey:"codexlens.envField.stripDocstrings",type:"select",options:["true","false"],default:"true",settingsPath:"chunking.strip_docstrings"},RERANKER_TEST_FILE_PENALTY:{key:"RERANKER_TEST_FILE_PENALTY",labelKey:"codexlens.envField.testFilePenalty",type:"number",placeholder:"0.0",default:"0.0",settingsPath:"reranker.test_file_penalty",min:0,max:1,step:.1},RERANKER_DOCSTRING_WEIGHT:{key:"RERANKER_DOCSTRING_WEIGHT",labelKey:"codexlens.envField.docstringWeight",type:"number",placeholder:"1.0",default:"1.0",settingsPath:"reranker.docstring_weight",min:0,max:1,step:.1}}}};function fn(t,s){return t.showWhen?t.showWhen(s):!0}function vn(){const t={};for(const s of Object.values(bs))for(const[a,n]of Object.entries(s.vars))n.default!==void 0&&(t[a]=n.default);return t}function jn({field:t,value:s,onChange:a,localModels:n=[],backendType:c,disabled:i=!1}){const{formatMessage:l}=z(),[r,d]=h.useState(!1),[o,x]=h.useState(""),j=h.useRef(null),m=h.useRef(null);h.useEffect(()=>{function y(g){j.current&&!j.current.contains(g.target)&&d(!1)}if(r)return document.addEventListener("mousedown",y),()=>document.removeEventListener("mousedown",y)},[r]);const E=h.useMemo(()=>{const y=[];if(c==="api"){const g=t.apiModels||[];for(const v of g)for(const L of v.items)y.push({id:L,label:L,group:v.group})}else if(n.length>0)for(const g of n){const v=g.profile||g.name,L=g.profile&&g.name&&g.profile!==g.name?`${g.profile} (${g.name})`:g.name||g.profile;y.push({id:v,label:L,group:l({id:"codexlens.downloadedModels",defaultMessage:"Downloaded Models"})})}else{const g=t.localModels||[];for(const v of g)for(const L of v.items)y.push({id:L,label:L,group:v.group})}return y},[c,t.apiModels,t.localModels,n,l]),b=h.useMemo(()=>{if(!o)return E;const y=o.toLowerCase();return E.filter(g=>g.id.toLowerCase().includes(y)||g.label.toLowerCase().includes(y))},[E,o]),S=h.useMemo(()=>{const y={};for(const g of b)y[g.group]||(y[g.group]=[]),y[g.group].push(g);return y},[b]),w=y=>{a(y),d(!1),x("")},P=y=>{const g=y.target.value;x(g),a(g),r||d(!0)};return e.jsxs("div",{ref:j,className:"relative flex-1",children:[e.jsxs("div",{className:"relative",children:[e.jsx("input",{ref:m,type:"text",value:r&&o||s,onChange:P,onFocus:()=>{d(!0),x("")},placeholder:t.placeholder||"Select model...",disabled:i,className:T("flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 pr-8 text-sm","ring-offset-background placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50")}),e.jsx(pt,{className:"absolute right-2 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none"})]}),r&&!i&&e.jsx("div",{className:"absolute z-50 mt-1 w-full rounded-md border border-border bg-card shadow-md",children:e.jsx("div",{className:"max-h-56 overflow-y-auto p-1",children:Object.keys(S).length===0?e.jsx("div",{className:"py-3 text-center text-xs text-muted-foreground",children:l(c==="api"?{id:"codexlens.noConfiguredModels",defaultMessage:"No models configured"}:{id:"codexlens.noLocalModels",defaultMessage:"No models downloaded"})}):Object.entries(S).map(([y,g])=>e.jsxs("div",{children:[e.jsx("div",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:y}),g.map(v=>e.jsx("button",{type:"button",onClick:()=>w(v.id),className:T("flex w-full items-center rounded-sm px-2 py-1.5 text-xs cursor-pointer","hover:bg-accent hover:text-accent-foreground",s===v.id&&"bg-accent/50"),children:v.label},v.id))]},y))})})]})}const Nn={box:us,"arrow-up-down":Ut,cpu:Ue,"git-branch":ft,scissors:zt};function yn({groups:t,values:s,onChange:a,disabled:n=!1,localEmbeddingModels:c=[],localRerankerModels:i=[]}){const{formatMessage:l}=z(),r=h.useMemo(()=>Object.entries(t),[t]);return e.jsx("div",{className:"space-y-3",children:r.map(([d,o])=>{const x=Nn[o.icon]||us;return e.jsx(Bt,{defaultOpen:!0,children:e.jsxs("div",{className:"border border-border rounded-lg",children:[e.jsxs(Gt,{className:"flex w-full items-center gap-2 p-3 text-xs font-medium text-muted-foreground hover:text-foreground transition-colors",children:[e.jsx(x,{className:"w-3.5 h-3.5"}),l({id:o.labelKey,defaultMessage:d})]}),e.jsx(Xt,{children:e.jsx("div",{className:"px-3 pb-3 space-y-2",children:Object.entries(o.vars).map(([j,m])=>fn(m,s)?e.jsx(bn,{field:m,value:s[j]??m.default??"",onChange:b=>a(j,b),allValues:s,disabled:n,localModels:j.includes("EMBEDDING")?c:i,formatMessage:l},j):null)})})]})},d)})})}function bn({field:t,value:s,onChange:a,allValues:n,disabled:c,localModels:i,formatMessage:l}){const r=l({id:t.labelKey,defaultMessage:t.key});switch(t.type){case"select":return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsxs(pe,{value:s,onValueChange:a,disabled:c,children:[e.jsx(fe,{className:T("flex-1 h-8 text-xs"),children:e.jsx(ve,{})}),e.jsx(je,{children:(t.options||[]).map(d=>e.jsx(F,{value:d,className:"text-xs",children:d},d))})]})]});case"number":return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx(ye,{type:"number",className:"flex-1 h-8 text-xs",value:s,onChange:d=>a(d.target.value),placeholder:t.placeholder,min:t.min,max:t.max,step:t.step??1,disabled:c})]});case"checkbox":return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx("div",{className:"flex-1 flex items-center h-8",children:e.jsx(vt,{checked:s==="true",onCheckedChange:d=>a(d?"true":"false"),disabled:c})})]});case"model-select":{const o=t.key.includes("EMBEDDING")?"CODEXLENS_EMBEDDING_BACKEND":"CODEXLENS_RERANKER_BACKEND",x=n[o],j=x==="api"||x==="litellm"?"api":"local";return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx(jn,{field:t,value:s,onChange:a,localModels:i,backendType:j,disabled:c})]})}case"text":default:return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx(ye,{type:"text",className:"flex-1 h-8 text-xs",value:s,onChange:d=>a(d.target.value),placeholder:t.placeholder,disabled:c})]})}}function En({enabled:t=!0}){const{formatMessage:s}=z(),{success:a,error:n}=X(),{config:c,indexCount:i,apiMaxWorkers:l,apiBatchSize:r,isLoading:d,refetch:o}=Ht({enabled:t}),{env:x,settings:j,isLoading:m,refetch:E}=ps({enabled:t}),{embeddingModels:b,rerankerModels:S}=gs({enabled:t}),{updateEnv:w,isUpdating:P}=ze(),[y,g]=h.useState(""),[v,L]=h.useState(""),[N,I]=h.useState({}),[O,f]=h.useState(!1),[k,A]=h.useState({}),[le,ce]=h.useState("");h.useEffect(()=>{c&&(g(c.index_dir||""),ce(c.index_dir||""))},[c]),h.useEffect(()=>{if(x||j){const $={...vn()};if(j)for(const[J,ee]of Object.entries(j))ee&&($[J]=ee);if(x)for(const[J,ee]of Object.entries(x))ee&&($[J]=ee);I($),A($),f(!1)}},[x,j]);const te=h.useCallback((M,$)=>{if($!==le)return!0;for(const J of Object.keys(M))if(M[J]!==k[J])return!0;return!1},[k,le]),de=h.useCallback((M,$)=>{I(J=>{const ee={...J,[M]:$};return f(te(ee,y)),ee})},[te,y]),R=h.useCallback(M=>{g(M),L(""),f(te(N,M))},[te,N]),ne=h.useMemo(()=>(b||[]).filter(M=>M.installed),[b]),oe=h.useMemo(()=>(S||[]).filter(M=>M.installed),[S]),xe=async()=>{if(!y.trim()){L(s({id:"codexlens.settings.validation.indexDirRequired"}));return}try{const M=await w({env:N});M.success?(a(s({id:"codexlens.settings.saveSuccess"}),M.message||s({id:"codexlens.settings.configUpdated"})),E(),o(),f(!1),A(N),ce(y)):n(s({id:"codexlens.settings.saveFailed"}),M.message||s({id:"codexlens.settings.saveError"}))}catch(M){n(s({id:"codexlens.settings.saveFailed"}),M instanceof Error?M.message:s({id:"codexlens.settings.unknownError"}))}},ae=()=>{I(k),g(le),L(""),f(!1)},Q=d||m;return e.jsxs("div",{className:"space-y-6",children:[e.jsx(C,{className:"p-4 bg-muted/30",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:s({id:"codexlens.settings.currentCount"})}),e.jsx("p",{className:"text-foreground font-medium",children:i})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:s({id:"codexlens.settings.currentWorkers"})}),e.jsx("p",{className:"text-foreground font-medium",children:l})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:s({id:"codexlens.settings.currentBatchSize"})}),e.jsx("p",{className:"text-foreground font-medium",children:r})]})]})}),e.jsxs(C,{className:"p-6",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-4",children:s({id:"codexlens.settings.configTitle"})}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsx(U,{htmlFor:"index_dir",children:s({id:"codexlens.settings.indexDir.label"})}),e.jsx(ye,{id:"index_dir",value:y,onChange:M=>R(M.target.value),placeholder:s({id:"codexlens.settings.indexDir.placeholder"}),error:!!v,disabled:Q}),v&&e.jsx("p",{className:"text-sm text-destructive",children:v}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.settings.indexDir.hint"})})]}),e.jsx(yn,{groups:bs,values:N,onChange:de,disabled:Q,localEmbeddingModels:ne,localRerankerModels:oe}),e.jsxs("div",{className:"flex items-center gap-2 mt-6",children:[e.jsxs(D,{onClick:xe,disabled:Q||P||!O,children:[e.jsx(Fe,{className:T("w-4 h-4 mr-2",P&&"animate-spin")}),s(P?{id:"codexlens.settings.saving"}:{id:"codexlens.settings.save"})]}),e.jsxs(D,{variant:"outline",onClick:ae,disabled:Q||!O,children:[e.jsx(he,{className:"w-4 h-4 mr-2"}),s({id:"codexlens.settings.reset"})]})]})]})]})}const Cn="codex_lens";function Ze(t){return t.name.startsWith(Cn)}function Sn(){const{formatMessage:t}=z(),{tools:s,isLoading:a,error:n}=xn(),c=s.filter(Ze),i=s.filter(l=>!Ze(l));return a?e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]})}),e.jsx(Z,{children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Le,{className:"w-4 h-4 animate-spin"}),e.jsx("span",{children:t({id:"codexlens.mcp.loading"})})]})})]}):n?e.jsxs(C,{className:"border-destructive/20",children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]})}),e.jsx(Z,{children:e.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[e.jsx(Ne,{className:"w-4 h-4 text-destructive flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-destructive",children:t({id:"codexlens.mcp.error"})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t({id:"codexlens.mcp.errorDesc"})})]})]})})]}):s.length===0?e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]})}),e.jsx(Z,{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:t({id:"codexlens.mcp.emptyDesc"})})})]}):e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]}),e.jsx(q,{variant:"outline",className:"text-xs",children:t({id:"codexlens.mcp.totalCount"},{count:s.length})})]})}),e.jsxs(Z,{className:"space-y-4",children:[c.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground uppercase mb-2",children:t({id:"codexlens.mcp.codexLensSection"})}),e.jsx("div",{className:"space-y-1.5",children:c.map(l=>e.jsx($e,{tool:l,variant:"default"},l.name))})]}),i.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground uppercase mb-2",children:t({id:"codexlens.mcp.otherSection"})}),e.jsx("div",{className:"space-y-1.5",children:i.map(l=>e.jsx($e,{tool:l,variant:"secondary"},l.name))})]})]})]})}function $e({tool:t,variant:s}){return e.jsxs("div",{className:"flex items-center gap-2 py-1 px-2 rounded-md hover:bg-muted/50 transition-colors",children:[e.jsx(q,{variant:s,className:"text-xs font-mono shrink-0",children:t.name}),e.jsx("span",{className:"text-xs text-muted-foreground truncate",title:t.description,children:t.description})]})}const Je=/^[-\w.*\\/]+$/;function Ce(t){return t.split(/[\n,]/).map(s=>s.trim()).filter(Boolean)}function Ke(t){return t.map(s=>s.trim()).filter(Boolean).join(`
22
- `)}function es(t){return Ke(Ce(t))}function wn({enabled:t=!0}){const{formatMessage:s}=z(),{success:a,error:n}=X(),{raw:c,env:i,settings:l,isLoading:r,error:d,refetch:o}=ps({enabled:t}),{patterns:x,extensionFilters:j,defaults:m,isLoading:E,error:b,refetch:S}=Vt({enabled:t}),{updateEnv:w,isUpdating:P}=ze(),{updatePatterns:y,isUpdating:g}=fs(),[v,L]=h.useState(""),[N,I]=h.useState(""),[O,f]=h.useState(""),[k,A]=h.useState({}),[le,ce]=h.useState(!1),[te,de]=h.useState(!1),[R,ne]=h.useState(!1),oe=x??[],xe=j??[],ae=(m==null?void 0:m.patterns)??[],Q=(m==null?void 0:m.extensionFilters)??[];h.useEffect(()=>{r||(L(c??""),A({}),ce(!1),ne(!1))},[c,r]),h.useEffect(()=>{if(!E){const u=x??[],_=j??[];I(u.join(`
21
+ */const zt=ke("Scissors",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]]),p={all:["codexLens"],dashboard:()=>[...p.all,"dashboard"],status:()=>[...p.all,"status"],workspace:t=>[...p.all,"workspace",t],config:()=>[...p.all,"config"],models:()=>[...p.all,"models"],modelInfo:t=>[...p.models(),"info",t],env:()=>[...p.all,"env"],gpu:()=>[...p.all,"gpu"],gpuList:()=>[...p.gpu(),"list"],gpuDetect:()=>[...p.gpu(),"detect"],ignorePatterns:()=>[...p.all,"ignorePatterns"],indexes:()=>[...p.all,"indexes"],indexingStatus:()=>[...p.all,"indexingStatus"],search:t=>[...p.all,"search",t],filesSearch:t=>[...p.all,"filesSearch",t],symbolSearch:t=>[...p.all,"symbolSearch",t],lspStatus:()=>[...p.all,"lspStatus"],semanticSearch:t=>[...p.all,"semanticSearch",t],watcher:()=>[...p.all,"watcher"],rerankerConfig:()=>[...p.all,"rerankerConfig"],ccwTools:()=>[...p.all,"ccwTools"]},ge=30*1e3,Me=120*1e3,hs=600*1e3;function Wt(t={}){var i,l,r,d;const{enabled:s=!0,staleTime:a=ge}=t,n=V({queryKey:p.dashboard(),queryFn:$s,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{data:n.data,installed:((i=n.data)==null?void 0:i.installed)??!1,status:(l=n.data)==null?void 0:l.status,config:(r=n.data)==null?void 0:r.config,semantic:(d=n.data)==null?void 0:d.semantic,isLoading:n.isLoading,isFetching:n.isFetching,error:n.error,refetch:c}}function Ht(t={}){var i,l,r,d;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.config(),queryFn:Js,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{config:n.data,indexDir:((i=n.data)==null?void 0:i.index_dir)??"~/.codexlens/indexes",indexCount:((l=n.data)==null?void 0:l.index_count)??0,apiMaxWorkers:((r=n.data)==null?void 0:r.api_max_workers)??4,apiBatchSize:((d=n.data)==null?void 0:d.api_batch_size)??8,isLoading:n.isLoading,error:n.error,refetch:c}}function gs(t={}){var d;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.models(),queryFn:et,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()},i=((d=n.data)==null?void 0:d.models)??[],l=i==null?void 0:i.filter(o=>o.type==="embedding"),r=i==null?void 0:i.filter(o=>o.type==="reranker");return{models:i,embeddingModels:l,rerankerModels:r,isLoading:n.isLoading,error:n.error,refetch:c}}function ps(t={}){var i,l,r;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.env(),queryFn:st,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{data:n.data,env:(i=n.data)==null?void 0:i.env,settings:(l=n.data)==null?void 0:l.settings,raw:(r=n.data)==null?void 0:r.raw,isLoading:n.isLoading,error:n.error,refetch:c}}function Vt(t={}){var i,l,r;const{enabled:s=!0,staleTime:a=hs}=t,n=V({queryKey:p.ignorePatterns(),queryFn:tt,staleTime:a,enabled:s,retry:2}),c=async()=>{await n.refetch()};return{data:n.data,patterns:(i=n.data)==null?void 0:i.patterns,extensionFilters:(l=n.data)==null?void 0:l.extensionFilters,defaults:(r=n.data)==null?void 0:r.defaults,isLoading:n.isLoading,error:n.error,refetch:c}}function Qt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ms,onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensConfigUpdate.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.config()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensConfigUpdate.success"}))},onError:l=>{const r=G(l,"codexLensConfigUpdate"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updateConfig:i.mutateAsync,isUpdating:i.isPending,error:i.error}}function Yt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:As,onMutate:()=>{n(s({id:"codexlens.bootstrapping"}),s({id:"common.feedback.codexLensBootstrap.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.all}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensBootstrap.success"}))},onError:l=>{const r=G(l,"codexLensBootstrap"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{bootstrap:i.mutateAsync,isBootstrapping:i.isPending,error:i.error}}function Zt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ps,onMutate:()=>{n(s({id:"codexlens.semantic.installing"}),s({id:"common.feedback.codexLensInstallSemantic.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.all}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensInstallSemantic.success"}))},onError:l=>{const r=G(l,"codexLensInstallSemantic"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{installSemantic:i.mutateAsync,isInstalling:i.isPending,error:i.error}}function $t(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ts,onMutate:()=>{n(s({id:"codexlens.uninstalling"}),s({id:"common.feedback.codexLensUninstall.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.all}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUninstall.success"}))},onError:l=>{const r=G(l,"codexLensUninstall"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{uninstall:i.mutateAsync,isUninstalling:i.isPending,error:i.error}}function Jt(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({profile:l,modelName:r,modelType:d})=>{if(l)return Os(l);if(r)return Rs(r,d);throw new Error("Either profile or modelName must be provided")},onMutate:()=>{n(s({id:"codexlens.models.downloading"}),s({id:"common.feedback.codexLensDownloadModel.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.models()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensDownloadModel.success"}))},onError:l=>{const r=G(l,"codexLensDownloadModel"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{downloadModel:l=>i.mutateAsync({profile:l}),downloadCustomModel:(l,r)=>i.mutateAsync({modelName:l,modelType:r}),isDownloading:i.isPending,error:i.error}}function en(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({profile:l,cachePath:r})=>{if(l)return Fs(l);if(r)return Ks(r);throw new Error("Either profile or cachePath must be provided")},onMutate:()=>{n(s({id:"common.actions.deleting"}),s({id:"common.feedback.codexLensDeleteModel.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.models()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensDeleteModel.success"}))},onError:l=>{const r=G(l,"codexLensDeleteModel"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{deleteModel:l=>i.mutateAsync({profile:l}),deleteModelByPath:l=>i.mutateAsync({cachePath:l}),isDeleting:i.isPending,error:i.error}}function ze(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:l=>Bs(l),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensUpdateEnv.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.env()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUpdateEnv.success"}))},onError:l=>{const r=G(l,"codexLensUpdateEnv"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updateEnv:i.mutateAsync,isUpdating:i.isPending,error:i.error}}function sn(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:r=>Gs(r),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensSelectGpu.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.gpu()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensSelectGpu.success"}))},onError:r=>{const d=G(r,"codexLensSelectGpu"),o=s({id:d.messageKey}),x=s({id:"common.error"});c(x,o)}}),l=B({mutationFn:()=>Xs(),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensResetGpu.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.gpu()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensResetGpu.success"}))},onError:r=>{const d=G(r,"codexLensResetGpu"),o=s({id:d.messageKey}),x=s({id:"common.error"});c(x,o)}});return{selectGpu:i.mutateAsync,resetGpu:l.mutateAsync,isSelecting:i.isPending,isResetting:l.isPending,error:i.error||l.error}}function fs(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:qs,onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensUpdatePatterns.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.ignorePatterns()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUpdatePatterns.success"}))},onError:l=>{const r=G(l,"codexLensUpdatePatterns"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updatePatterns:i.mutateAsync,isUpdating:i.isPending,error:i.error}}function tn(){var s;const t=V({queryKey:p.indexingStatus(),queryFn:nt,staleTime:ge,refetchInterval:a=>{var n;return(n=a.state.data)!=null&&n.inProgress?2e3:!1},retry:!1});return{data:t.data,inProgress:((s=t.data)==null?void 0:s.inProgress)??!1,isLoading:t.isLoading,error:t.error}}function vs(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({projectPath:l,options:r={}})=>Us(l,r),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensRebuildIndex.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.indexes()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensRebuildIndex.success"}))},onError:l=>{const r=G(l,"codexLensRebuildIndex"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{rebuildIndex:(l,r)=>i.mutateAsync({projectPath:l,options:r}),isRebuilding:i.isPending,error:i.error}}function js(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:async({projectPath:l,options:r={}})=>zs(l,r),onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensUpdateIndex.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.indexes()}),t.invalidateQueries({queryKey:p.dashboard()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensUpdateIndex.success"}))},onError:l=>{const r=G(l,"codexLensUpdateIndex"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{updateIndex:(l,r)=>i.mutateAsync({projectPath:l,options:r}),isUpdating:i.isPending,error:i.error}}function Ns(){const t=W(),s=H(),{success:a,info:n,error:c}=X(),i=B({mutationFn:Ws,onMutate:()=>{n(s({id:"common.status.inProgress"}),s({id:"common.feedback.codexLensCancelIndexing.success"}))},onSuccess:()=>{t.invalidateQueries({queryKey:p.indexingStatus()}),a(s({id:"common.success"}),s({id:"common.feedback.codexLensCancelIndexing.success"}))},onError:l=>{const r=G(l,"codexLensCancelIndexing"),d=s({id:r.messageKey}),o=s({id:"common.error"});c(o,d)}});return{cancelIndexing:i.mutateAsync,isCancelling:i.isPending,error:i.error}}function We(){const t=Qt(),s=Yt(),a=Zt(),n=$t(),c=Jt(),i=en(),l=ze(),r=sn(),d=fs(),o=vs(),x=js(),j=Ns();return{updateConfig:t.updateConfig,isUpdatingConfig:t.isUpdating,bootstrap:s.bootstrap,isBootstrapping:s.isBootstrapping,installSemantic:a.installSemantic,isInstallingSemantic:a.isInstalling,uninstall:n.uninstall,isUninstalling:n.isUninstalling,downloadModel:c.downloadModel,downloadCustomModel:c.downloadCustomModel,isDownloading:c.isDownloading,deleteModel:i.deleteModel,deleteModelByPath:i.deleteModelByPath,isDeleting:i.isDeleting,updateEnv:l.updateEnv,isUpdatingEnv:l.isUpdating,selectGpu:r.selectGpu,resetGpu:r.resetGpu,isSelectingGpu:r.isSelecting||r.isResetting,updatePatterns:d.updatePatterns,isUpdatingPatterns:d.isUpdating,rebuildIndex:o.rebuildIndex,isRebuildingIndex:o.isRebuilding,updateIndex:x.updateIndex,isUpdatingIndex:x.isUpdating,cancelIndexing:j.cancelIndexing,isCancellingIndexing:j.isCancelling,isMutating:t.isUpdating||s.isBootstrapping||a.isInstalling||n.isUninstalling||c.isDownloading||i.isDeleting||l.isUpdating||r.isSelecting||r.isResetting||d.isUpdating||o.isRebuilding||x.isUpdating||j.isCancelling}}function nn(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.search(t),queryFn:()=>at(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,results:(i=n.data)==null?void 0:i.results,isLoading:n.isLoading,error:n.error,refetch:c}}function an(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.filesSearch(t),queryFn:()=>it(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,files:(i=n.data)==null?void 0:i.files,isLoading:n.isLoading,error:n.error,refetch:c}}function rn(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.symbolSearch(t),queryFn:()=>rt(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,symbols:(i=n.data)==null?void 0:i.symbols,isLoading:n.isLoading,error:n.error,refetch:c}}function ys(t={}){var i,l,r,d,o,x,j;const{enabled:s=!0,staleTime:a=Me}=t,n=V({queryKey:p.lspStatus(),queryFn:lt,staleTime:a,enabled:s,refetchInterval:m=>{const E=m.state.data;return E!=null&&E.available?5e3:!1},retry:2}),c=async()=>{await n.refetch()};return{data:n.data,available:((i=n.data)==null?void 0:i.available)??!1,semanticAvailable:((l=n.data)==null?void 0:l.semantic_available)??!1,vectorIndex:((r=n.data)==null?void 0:r.vector_index)??!1,projectCount:((d=n.data)==null?void 0:d.project_count)??0,embeddings:(o=n.data)==null?void 0:o.embeddings,modes:((x=n.data)==null?void 0:x.modes)??[],strategies:((j=n.data)==null?void 0:j.strategies)??[],isLoading:n.isLoading,error:n.error,refetch:c}}function ln(){const t=W(),s=H(),{success:a,error:n}=X(),c=B({mutationFn:({path:r})=>Qs(r),onSuccess:()=>{t.invalidateQueries({queryKey:p.lspStatus()}),a(s({id:"common.success"}),s({id:"codexlens.lsp.started"}))},onError:r=>{const d=G(r,"codexLensLspStart"),o=s({id:d.messageKey}),x=s({id:"common.error"});n(x,o)}}),i=B({mutationFn:({path:r})=>Ys(r),onSuccess:()=>{t.invalidateQueries({queryKey:p.lspStatus()}),a(s({id:"common.success"}),s({id:"codexlens.lsp.stopped"}))},onError:r=>{const d=G(r,"codexLensLspStop"),o=s({id:d.messageKey}),x=s({id:"common.error"});n(x,o)}}),l=B({mutationFn:({path:r})=>Zs(r),onSuccess:()=>{t.invalidateQueries({queryKey:p.lspStatus()}),a(s({id:"common.success"}),s({id:"codexlens.lsp.restarted"}))},onError:r=>{const d=G(r,"codexLensLspRestart"),o=s({id:d.messageKey}),x=s({id:"common.error"});n(x,o)}});return{startLsp:r=>c.mutateAsync({path:r}),stopLsp:r=>i.mutateAsync({path:r}),restartLsp:r=>l.mutateAsync({path:r}),isStarting:c.isPending,isStopping:i.isPending,isRestarting:l.isPending}}function cn(t,s={}){var i;const{enabled:a=!1}=s,n=V({queryKey:p.semanticSearch(t),queryFn:()=>ct(t),enabled:a,staleTime:ge,retry:1}),c=async()=>{await n.refetch()};return{data:n.data,results:(i=n.data)==null?void 0:i.results,isLoading:n.isLoading,error:n.error,refetch:c}}function dn(t={}){var n,c,i,l;const{enabled:s=!0}=t,a=V({queryKey:p.watcher(),queryFn:dt,staleTime:ge,enabled:s,refetchInterval:r=>{const d=r.state.data;return d!=null&&d.running?3e3:!1},retry:2});return{data:a.data,running:((n=a.data)==null?void 0:n.running)??!1,rootPath:((c=a.data)==null?void 0:c.root_path)??"",eventsProcessed:((i=a.data)==null?void 0:i.events_processed)??0,uptimeSeconds:((l=a.data)==null?void 0:l.uptime_seconds)??0,isLoading:a.isLoading,error:a.error}}function on(){const t=W(),s=H(),{success:a,error:n}=X(),c=B({mutationFn:({path:l,debounceMs:r})=>Hs(l,r),onSuccess:()=>{t.invalidateQueries({queryKey:p.watcher()}),a(s({id:"common.success"}),s({id:"codexlens.watcher.started"}))},onError:l=>{const r=G(l,"codexLensWatcherStart"),d=s({id:r.messageKey}),o=s({id:"common.error"});n(o,d)}}),i=B({mutationFn:()=>Vs(),onSuccess:()=>{t.invalidateQueries({queryKey:p.watcher()}),a(s({id:"common.success"}),s({id:"codexlens.watcher.stopped"}))},onError:l=>{const r=G(l,"codexLensWatcherStop"),d=s({id:r.messageKey}),o=s({id:"common.error"});n(o,d)}});return{startWatcher:(l,r)=>c.mutateAsync({path:l,debounceMs:r}),stopWatcher:()=>i.mutateAsync(),isStarting:c.isPending,isStopping:i.isPending}}function xn(){const t=V({queryKey:p.ccwTools(),queryFn:ot,staleTime:hs,retry:2});return{tools:t.data??[],isLoading:t.isLoading,error:t.error}}function mn({disabled:t=!1,onRefresh:s}){const{formatMessage:a}=z(),{success:n,error:c,wsLastMessage:i}=X(),l=Be(Ge),{inProgress:r}=tn(),{rebuildIndex:d,isRebuilding:o}=vs(),{updateIndex:x,isUpdating:j}=js(),{cancelIndexing:m,isCancelling:E}=Ns();xt();const[b,S]=h.useState(null),[w,P]=h.useState(null);h.useEffect(()=>{if((i==null?void 0:i.type)==="CODEXLENS_INDEX_PROGRESS"){const N=i.payload;S(N),(N.stage==="complete"||N.stage==="error"||N.stage==="cancelled")&&(N.stage==="complete"?(n(a({id:"codexlens.index.operationComplete"}),N.message),s==null||s()):N.stage==="error"&&c(a({id:"codexlens.index.operationFailed"}),N.message),P(null),S(null))}},[i,a,n,c,s]);const y=o||j||r||!!w,g=async N=>{if(!l){c(a({id:"codexlens.index.noProject"}),a({id:"codexlens.index.noProjectDesc"}));return}P(N.id),S({stage:"start",message:a({id:"codexlens.index.starting"}),percent:0});try{const I=N.type.includes("vector");if(N.type.includes("incremental")){const f=await x(l,{indexType:I?"vector":"normal"});if(!f.success)throw new Error(f.error||"Update failed")}else{const f=await d(l,{indexType:I?"vector":"normal"});if(!f.success)throw new Error(f.error||"Rebuild failed")}}catch(I){P(null),S(null),c(a({id:"codexlens.index.operationFailed"}),I instanceof Error?I.message:a({id:"codexlens.index.unknownError"}))}},v=async()=>{const N=await m();N.success?(P(null),S(null)):c(a({id:"codexlens.index.cancelFailed"}),N.error||a({id:"codexlens.index.unknownError"}))},L=[{id:"fts_full",type:"fts_full",label:a({id:"codexlens.overview.actions.ftsFull"}),description:a({id:"codexlens.overview.actions.ftsFullDesc"}),icon:e.jsx(_e,{className:"w-4 h-4"})},{id:"fts_incremental",type:"fts_incremental",label:a({id:"codexlens.overview.actions.ftsIncremental"}),description:a({id:"codexlens.overview.actions.ftsIncrementalDesc"}),icon:e.jsx(ue,{className:"w-4 h-4"})},{id:"vector_full",type:"vector_full",label:a({id:"codexlens.overview.actions.vectorFull"}),description:a({id:"codexlens.overview.actions.vectorFullDesc"}),icon:e.jsx(_e,{className:"w-4 h-4"})},{id:"vector_incremental",type:"vector_incremental",label:a({id:"codexlens.overview.actions.vectorIncremental"}),description:a({id:"codexlens.overview.actions.vectorIncrementalDesc"}),icon:e.jsx(ue,{className:"w-4 h-4"})}];if(b&&w){const N=L.find(k=>k.id===w),I=b.stage==="complete",R=b.stage==="error",f=b.stage==="cancelled";return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsx("span",{children:N==null?void 0:N.label}),!I&&!R&&!f&&e.jsxs(D,{variant:"ghost",size:"sm",onClick:v,disabled:E,children:[e.jsx(ss,{className:"w-4 h-4 mr-1"}),a({id:"common.actions.cancel"})]})]})}),e.jsxs(Z,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[I?e.jsx(Xe,{className:"w-6 h-6 text-success"}):R||f?e.jsx(Ne,{className:"w-6 h-6 text-destructive"}):e.jsx(_e,{className:"w-6 h-6 text-primary animate-spin"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:a(I?{id:"codexlens.index.complete"}:R?{id:"codexlens.index.failed"}:f?{id:"codexlens.index.cancelled"}:{id:"codexlens.index.inProgress"})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.message})]})]}),!I&&!R&&!f&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(qe,{value:b.percent,className:"h-2"}),e.jsxs("p",{className:"text-xs text-muted-foreground text-right",children:[b.percent,"%"]})]}),(I||R||f)&&e.jsx("div",{className:"flex justify-end",children:e.jsx(D,{variant:"outline",size:"sm",onClick:()=>{P(null),S(null)},children:a({id:"common.actions.close"})})})]})]})}return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsx(re,{className:"text-base",children:a({id:"codexlens.overview.actions.title"})})}),e.jsx(Z,{children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:L.map(N=>e.jsxs(D,{variant:"outline",className:"h-auto p-4 flex flex-col items-start gap-2 text-left",onClick:()=>g(N),disabled:t||y,children:[e.jsxs("div",{className:"flex items-center gap-2 w-full",children:[e.jsx("span",{className:T("text-muted-foreground",(t||y)&&"opacity-50"),children:N.icon}),e.jsx("span",{className:"font-medium",children:N.label})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:N.description})]},N.id))})})]})}function un(t){if(t<60)return`${t}s`;if(t<3600){const n=Math.floor(t/60),c=t%60;return`${n}m ${c}s`}const s=Math.floor(t/3600),a=Math.floor(t%3600/60);return`${s}h ${a}m`}function hn({disabled:t=!1}){const{formatMessage:s}=z(),a=Be(Ge),{running:n,rootPath:c,eventsProcessed:i,uptimeSeconds:l,isLoading:r}=dn(),{startWatcher:d,stopWatcher:o,isStarting:x,isStopping:j}=on(),m=x||j,E=async()=>{n?await o():await d(a)};return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ve,{className:"w-4 h-4"}),e.jsx("span",{children:s({id:"codexlens.watcher.title"})})]}),e.jsx(q,{variant:n?"success":"secondary",children:s(n?{id:"codexlens.watcher.status.running"}:{id:"codexlens.watcher.status.stopped"})})]})}),e.jsxs(Z,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(Ve,{className:T("w-4 h-4",n?"text-success":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.watcher.eventsProcessed"})}),e.jsx("p",{className:"font-semibold text-foreground",children:i})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(mt,{className:T("w-4 h-4",n?"text-info":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.watcher.uptime"})}),e.jsx("p",{className:"font-semibold text-foreground",children:n?un(l):"--"})]})]})]}),n&&c&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(ts,{className:"w-4 h-4 text-muted-foreground flex-shrink-0"}),e.jsx("span",{className:"text-muted-foreground truncate",title:c,children:c})]}),e.jsx(D,{variant:n?"outline":"default",size:"sm",className:"w-full",onClick:E,disabled:t||m||r,children:n?e.jsxs(e.Fragment,{children:[e.jsx(Tt,{className:"w-4 h-4 mr-2"}),s(j?{id:"codexlens.watcher.stopping"}:{id:"codexlens.watcher.stop"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ot,{className:"w-4 h-4 mr-2"}),s(x?{id:"codexlens.watcher.starting"}:{id:"codexlens.watcher.start"})]})})]})]})}function gn({disabled:t=!1}){const{formatMessage:s}=z(),a=Be(Ge),{available:n,semanticAvailable:c,projectCount:i,modes:l,isLoading:r}=ys(),{startLsp:d,stopLsp:o,restartLsp:x,isStarting:j,isStopping:m,isRestarting:E}=ln(),b=j||m||E,S=async()=>{n?await o(a):await d(a)},w=async()=>{await x(a)};return e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-4 h-4"}),e.jsx("span",{children:s({id:"codexlens.lsp.title"})})]}),e.jsx(q,{variant:n?"success":"secondary",children:s(n?{id:"codexlens.lsp.status.running"}:{id:"codexlens.lsp.status.stopped"})})]})}),e.jsxs(Z,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(ts,{className:T("w-4 h-4",n?"text-success":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.lsp.projects"})}),e.jsx("p",{className:"font-semibold text-foreground",children:n?i:"--"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(Ue,{className:T("w-4 h-4",c?"text-info":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.lsp.semanticAvailable"})}),e.jsx("p",{className:"font-semibold text-foreground",children:s(c?{id:"codexlens.lsp.available"}:{id:"codexlens.lsp.unavailable"})})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(ht,{className:T("w-4 h-4",n&&l.length>0?"text-accent":"text-muted-foreground")}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground text-xs",children:s({id:"codexlens.lsp.modes"})}),e.jsx("p",{className:"font-semibold text-foreground",children:n?l.length:"--"})]})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(D,{variant:n?"outline":"default",size:"sm",className:"flex-1",onClick:S,disabled:t||b||r,children:n?e.jsxs(e.Fragment,{children:[e.jsx(Rt,{className:"w-4 h-4 mr-2"}),s(m?{id:"codexlens.lsp.stopping"}:{id:"codexlens.lsp.stop"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ft,{className:"w-4 h-4 mr-2"}),s(j?{id:"codexlens.lsp.starting"}:{id:"codexlens.lsp.start"})]})}),n&&e.jsxs(D,{variant:"outline",size:"sm",onClick:w,disabled:t||b||r,children:[e.jsx(_e,{className:T("w-4 h-4 mr-2",E&&"animate-spin")}),s(E?{id:"codexlens.lsp.restarting"}:{id:"codexlens.lsp.restart"})]})]})]})]})}function pn({installed:t,status:s,config:a,isLoading:n,onRefresh:c}){const{formatMessage:i}=z();if(n)return e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[1,2,3,4].map(x=>e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"animate-pulse",children:[e.jsx("div",{className:"h-4 bg-muted rounded w-20 mb-2"}),e.jsx("div",{className:"h-8 bg-muted rounded w-16"})]})},x))})});if(!t)return e.jsxs(C,{className:"p-8 text-center",children:[e.jsx(Qe,{className:"w-12 h-12 mx-auto text-muted-foreground/50 mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:i({id:"codexlens.overview.notInstalled.title"})}),e.jsx("p",{className:"text-muted-foreground",children:i({id:"codexlens.overview.notInstalled.message"})})]});const l=(s==null?void 0:s.ready)??!1,r=(s==null?void 0:s.version)??"Unknown",d=(a==null?void 0:a.index_dir)??"~/.codexlens/indexes",o=(a==null?void 0:a.index_count)??0;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:T("p-2 rounded-lg",l?"bg-success/10":"bg-warning/10"),children:l?e.jsx(Xe,{className:"w-5 h-5 text-success"}):e.jsx(gt,{className:"w-5 h-5 text-warning"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.installation"})}),e.jsx("p",{className:"text-lg font-semibold text-foreground",children:i(l?{id:"codexlens.overview.status.ready"}:{id:"codexlens.overview.status.notReady"})})]})]})}),e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-primary/10",children:e.jsx(Qe,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.version"})}),e.jsx("p",{className:"text-lg font-semibold text-foreground",children:r})]})]})}),e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-info/10",children:e.jsx(Kt,{className:"w-5 h-5 text-info"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.indexPath"})}),e.jsx("p",{className:"text-sm font-semibold text-foreground truncate",title:d,children:d})]})]})}),e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-accent/10",children:e.jsx(ue,{className:"w-5 h-5 text-accent"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i({id:"codexlens.overview.status.indexCount"})}),e.jsx("p",{className:"text-lg font-semibold text-foreground",children:o})]})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsx(hn,{disabled:!l}),e.jsx(gn,{disabled:!l})]}),e.jsx(mn,{disabled:!l,onRefresh:c}),s&&e.jsxs(C,{children:[e.jsx(ie,{children:e.jsx(re,{className:"text-base",children:i({id:"codexlens.overview.venv.title"})})}),e.jsx(Z,{children:e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:i({id:"codexlens.overview.venv.pythonVersion"})}),e.jsx("span",{className:"text-foreground font-mono",children:s.pythonVersion||"Unknown"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:i({id:"codexlens.overview.venv.venvPath"})}),e.jsx("span",{className:"text-foreground font-mono truncate ml-4",title:s.venvPath,children:s.venvPath||"Unknown"})]})]})})]})]})}const bs={embedding:{id:"embedding",labelKey:"codexlens.envGroup.embedding",icon:"box",vars:{CODEXLENS_EMBEDDING_BACKEND:{key:"CODEXLENS_EMBEDDING_BACKEND",labelKey:"codexlens.envField.backend",type:"select",options:["local","api"],default:"local",settingsPath:"embedding.backend"},CODEXLENS_EMBEDDING_MODEL:{key:"CODEXLENS_EMBEDDING_MODEL",labelKey:"codexlens.envField.model",type:"model-select",placeholder:"Select or enter model...",default:"fast",settingsPath:"embedding.model",localModels:[{group:"FastEmbed Profiles",items:["fast","code","base","minilm","multilingual","balanced"]}],apiModels:[{group:"OpenAI",items:["text-embedding-3-small","text-embedding-3-large","text-embedding-ada-002"]},{group:"Cohere",items:["embed-english-v3.0","embed-multilingual-v3.0","embed-english-light-v3.0"]},{group:"Voyage",items:["voyage-3","voyage-3-lite","voyage-code-3","voyage-multilingual-2"]},{group:"SiliconFlow",items:["BAAI/bge-m3","BAAI/bge-large-zh-v1.5","BAAI/bge-large-en-v1.5"]},{group:"Jina",items:["jina-embeddings-v3","jina-embeddings-v2-base-en","jina-embeddings-v2-base-zh"]}]},CODEXLENS_AUTO_EMBED_MISSING:{key:"CODEXLENS_AUTO_EMBED_MISSING",labelKey:"codexlens.envField.autoEmbedMissing",type:"checkbox",default:"true",settingsPath:"embedding.auto_embed_missing"},CODEXLENS_USE_GPU:{key:"CODEXLENS_USE_GPU",labelKey:"codexlens.envField.useGpu",type:"select",options:["true","false"],default:"true",settingsPath:"embedding.use_gpu",showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="local"},CODEXLENS_EMBEDDING_POOL_ENABLED:{key:"CODEXLENS_EMBEDDING_POOL_ENABLED",labelKey:"codexlens.envField.highAvailability",type:"select",options:["true","false"],default:"false",settingsPath:"embedding.pool_enabled",showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="api"},CODEXLENS_EMBEDDING_STRATEGY:{key:"CODEXLENS_EMBEDDING_STRATEGY",labelKey:"codexlens.envField.loadBalanceStrategy",type:"select",options:["round_robin","latency_aware","weighted_random"],default:"latency_aware",settingsPath:"embedding.strategy",showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="api"&&t.CODEXLENS_EMBEDDING_POOL_ENABLED==="true"},CODEXLENS_EMBEDDING_COOLDOWN:{key:"CODEXLENS_EMBEDDING_COOLDOWN",labelKey:"codexlens.envField.rateLimitCooldown",type:"number",placeholder:"60",default:"60",settingsPath:"embedding.cooldown",min:0,max:300,showWhen:t=>t.CODEXLENS_EMBEDDING_BACKEND==="api"&&t.CODEXLENS_EMBEDDING_POOL_ENABLED==="true"}}},reranker:{id:"reranker",labelKey:"codexlens.envGroup.reranker",icon:"arrow-up-down",vars:{CODEXLENS_RERANKER_ENABLED:{key:"CODEXLENS_RERANKER_ENABLED",labelKey:"codexlens.envField.enabled",type:"select",options:["true","false"],default:"true",settingsPath:"reranker.enabled"},CODEXLENS_RERANKER_BACKEND:{key:"CODEXLENS_RERANKER_BACKEND",labelKey:"codexlens.envField.backend",type:"select",options:["onnx","api","litellm","legacy"],default:"onnx",settingsPath:"reranker.backend"},CODEXLENS_RERANKER_MODEL:{key:"CODEXLENS_RERANKER_MODEL",labelKey:"codexlens.envField.model",type:"model-select",placeholder:"Select or enter model...",default:"Xenova/ms-marco-MiniLM-L-6-v2",settingsPath:"reranker.model",localModels:[{group:"FastEmbed/ONNX",items:["Xenova/ms-marco-MiniLM-L-6-v2","cross-encoder/ms-marco-MiniLM-L-6-v2","BAAI/bge-reranker-base"]}],apiModels:[{group:"Cohere",items:["rerank-english-v3.0","rerank-multilingual-v3.0","rerank-english-v2.0"]},{group:"Voyage",items:["rerank-2","rerank-2-lite","rerank-1"]},{group:"SiliconFlow",items:["BAAI/bge-reranker-v2-m3","BAAI/bge-reranker-large","BAAI/bge-reranker-base"]},{group:"Jina",items:["jina-reranker-v2-base-multilingual","jina-reranker-v1-base-en"]}]},CODEXLENS_RERANKER_TOP_K:{key:"CODEXLENS_RERANKER_TOP_K",labelKey:"codexlens.envField.topKResults",type:"number",placeholder:"50",default:"50",settingsPath:"reranker.top_k",min:5,max:200},CODEXLENS_RERANKER_POOL_ENABLED:{key:"CODEXLENS_RERANKER_POOL_ENABLED",labelKey:"codexlens.envField.highAvailability",type:"select",options:["true","false"],default:"false",settingsPath:"reranker.pool_enabled",showWhen:t=>t.CODEXLENS_RERANKER_BACKEND==="api"||t.CODEXLENS_RERANKER_BACKEND==="litellm"},CODEXLENS_RERANKER_STRATEGY:{key:"CODEXLENS_RERANKER_STRATEGY",labelKey:"codexlens.envField.loadBalanceStrategy",type:"select",options:["round_robin","latency_aware","weighted_random"],default:"latency_aware",settingsPath:"reranker.strategy",showWhen:t=>(t.CODEXLENS_RERANKER_BACKEND==="api"||t.CODEXLENS_RERANKER_BACKEND==="litellm")&&t.CODEXLENS_RERANKER_POOL_ENABLED==="true"},CODEXLENS_RERANKER_COOLDOWN:{key:"CODEXLENS_RERANKER_COOLDOWN",labelKey:"codexlens.envField.rateLimitCooldown",type:"number",placeholder:"60",default:"60",settingsPath:"reranker.cooldown",min:0,max:300,showWhen:t=>(t.CODEXLENS_RERANKER_BACKEND==="api"||t.CODEXLENS_RERANKER_BACKEND==="litellm")&&t.CODEXLENS_RERANKER_POOL_ENABLED==="true"}}},concurrency:{id:"concurrency",labelKey:"codexlens.envGroup.concurrency",icon:"cpu",vars:{CODEXLENS_API_MAX_WORKERS:{key:"CODEXLENS_API_MAX_WORKERS",labelKey:"codexlens.envField.maxWorkers",type:"number",placeholder:"4",default:"4",settingsPath:"api.max_workers",min:1,max:32},CODEXLENS_API_BATCH_SIZE:{key:"CODEXLENS_API_BATCH_SIZE",labelKey:"codexlens.envField.batchSize",type:"number",placeholder:"8",default:"8",settingsPath:"api.batch_size",min:1,max:64,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC!=="true"},CODEXLENS_API_BATCH_SIZE_DYNAMIC:{key:"CODEXLENS_API_BATCH_SIZE_DYNAMIC",labelKey:"codexlens.envField.dynamicBatchSize",type:"checkbox",default:"false",settingsPath:"api.batch_size_dynamic"},CODEXLENS_API_BATCH_SIZE_UTILIZATION:{key:"CODEXLENS_API_BATCH_SIZE_UTILIZATION",labelKey:"codexlens.envField.batchSizeUtilization",type:"number",placeholder:"0.8",default:"0.8",settingsPath:"api.batch_size_utilization_factor",min:.1,max:.95,step:.05,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC==="true"},CODEXLENS_API_BATCH_SIZE_MAX:{key:"CODEXLENS_API_BATCH_SIZE_MAX",labelKey:"codexlens.envField.batchSizeMax",type:"number",placeholder:"2048",default:"2048",settingsPath:"api.batch_size_max",min:1,max:4096,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC==="true"},CODEXLENS_CHARS_PER_TOKEN:{key:"CODEXLENS_CHARS_PER_TOKEN",labelKey:"codexlens.envField.charsPerToken",type:"number",placeholder:"4",default:"4",settingsPath:"api.chars_per_token_estimate",min:1,max:10,showWhen:t=>t.CODEXLENS_API_BATCH_SIZE_DYNAMIC==="true"}}},cascade:{id:"cascade",labelKey:"codexlens.envGroup.cascade",icon:"git-branch",vars:{CODEXLENS_CASCADE_STRATEGY:{key:"CODEXLENS_CASCADE_STRATEGY",labelKey:"codexlens.envField.searchStrategy",type:"select",options:["binary","hybrid","binary_rerank","dense_rerank","staged"],default:"dense_rerank",settingsPath:"cascade.strategy"},CODEXLENS_CASCADE_COARSE_K:{key:"CODEXLENS_CASCADE_COARSE_K",labelKey:"codexlens.envField.coarseK",type:"number",placeholder:"100",default:"100",settingsPath:"cascade.coarse_k",min:10,max:500},CODEXLENS_CASCADE_FINE_K:{key:"CODEXLENS_CASCADE_FINE_K",labelKey:"codexlens.envField.fineK",type:"number",placeholder:"10",default:"10",settingsPath:"cascade.fine_k",min:1,max:100},CODEXLENS_STAGED_STAGE2_MODE:{key:"CODEXLENS_STAGED_STAGE2_MODE",labelKey:"codexlens.envField.stagedStage2Mode",type:"select",options:["precomputed","realtime","static_global_graph"],default:"precomputed",settingsPath:"staged.stage2_mode",showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"},CODEXLENS_STAGED_CLUSTERING_STRATEGY:{key:"CODEXLENS_STAGED_CLUSTERING_STRATEGY",labelKey:"codexlens.envField.stagedClusteringStrategy",type:"select",options:["auto","hdbscan","dbscan","frequency","noop","score","dir_rr","path"],default:"auto",settingsPath:"staged.clustering_strategy",showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"},CODEXLENS_STAGED_CLUSTERING_MIN_SIZE:{key:"CODEXLENS_STAGED_CLUSTERING_MIN_SIZE",labelKey:"codexlens.envField.stagedClusteringMinSize",type:"number",placeholder:"3",default:"3",settingsPath:"staged.clustering_min_size",min:1,max:50,showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"},CODEXLENS_ENABLE_STAGED_RERANK:{key:"CODEXLENS_ENABLE_STAGED_RERANK",labelKey:"codexlens.envField.enableStagedRerank",type:"checkbox",default:"true",settingsPath:"staged.enable_rerank",showWhen:t=>t.CODEXLENS_CASCADE_STRATEGY==="staged"}}},indexing:{id:"indexing",labelKey:"codexlens.envGroup.indexing",icon:"git-branch",vars:{CODEXLENS_USE_ASTGREP:{key:"CODEXLENS_USE_ASTGREP",labelKey:"codexlens.envField.useAstGrep",type:"checkbox",default:"false",settingsPath:"parsing.use_astgrep"},CODEXLENS_STATIC_GRAPH_ENABLED:{key:"CODEXLENS_STATIC_GRAPH_ENABLED",labelKey:"codexlens.envField.staticGraphEnabled",type:"checkbox",default:"false",settingsPath:"indexing.static_graph_enabled"},CODEXLENS_STATIC_GRAPH_RELATIONSHIP_TYPES:{key:"CODEXLENS_STATIC_GRAPH_RELATIONSHIP_TYPES",labelKey:"codexlens.envField.staticGraphRelationshipTypes",type:"text",placeholder:"imports,inherits,calls",default:"imports,inherits",settingsPath:"indexing.static_graph_relationship_types",showWhen:t=>t.CODEXLENS_STATIC_GRAPH_ENABLED==="true"}}},chunking:{id:"chunking",labelKey:"codexlens.envGroup.chunking",icon:"scissors",vars:{CHUNK_STRIP_COMMENTS:{key:"CHUNK_STRIP_COMMENTS",labelKey:"codexlens.envField.stripComments",type:"select",options:["true","false"],default:"true",settingsPath:"chunking.strip_comments"},CHUNK_STRIP_DOCSTRINGS:{key:"CHUNK_STRIP_DOCSTRINGS",labelKey:"codexlens.envField.stripDocstrings",type:"select",options:["true","false"],default:"true",settingsPath:"chunking.strip_docstrings"},RERANKER_TEST_FILE_PENALTY:{key:"RERANKER_TEST_FILE_PENALTY",labelKey:"codexlens.envField.testFilePenalty",type:"number",placeholder:"0.0",default:"0.0",settingsPath:"reranker.test_file_penalty",min:0,max:1,step:.1},RERANKER_DOCSTRING_WEIGHT:{key:"RERANKER_DOCSTRING_WEIGHT",labelKey:"codexlens.envField.docstringWeight",type:"number",placeholder:"1.0",default:"1.0",settingsPath:"reranker.docstring_weight",min:0,max:1,step:.1}}}};function fn(t,s){return t.showWhen?t.showWhen(s):!0}function vn(){const t={};for(const s of Object.values(bs))for(const[a,n]of Object.entries(s.vars))n.default!==void 0&&(t[a]=n.default);return t}function jn({field:t,value:s,onChange:a,localModels:n=[],backendType:c,disabled:i=!1}){const{formatMessage:l}=z(),[r,d]=h.useState(!1),[o,x]=h.useState(""),j=h.useRef(null),m=h.useRef(null);h.useEffect(()=>{function y(g){j.current&&!j.current.contains(g.target)&&d(!1)}if(r)return document.addEventListener("mousedown",y),()=>document.removeEventListener("mousedown",y)},[r]);const E=h.useMemo(()=>{const y=[];if(c==="api"){const g=t.apiModels||[];for(const v of g)for(const L of v.items)y.push({id:L,label:L,group:v.group})}else if(n.length>0)for(const g of n){const v=g.profile||g.name,L=g.profile&&g.name&&g.profile!==g.name?`${g.profile} (${g.name})`:g.name||g.profile;y.push({id:v,label:L,group:l({id:"codexlens.downloadedModels",defaultMessage:"Downloaded Models"})})}else{const g=t.localModels||[];for(const v of g)for(const L of v.items)y.push({id:L,label:L,group:v.group})}return y},[c,t.apiModels,t.localModels,n,l]),b=h.useMemo(()=>{if(!o)return E;const y=o.toLowerCase();return E.filter(g=>g.id.toLowerCase().includes(y)||g.label.toLowerCase().includes(y))},[E,o]),S=h.useMemo(()=>{const y={};for(const g of b)y[g.group]||(y[g.group]=[]),y[g.group].push(g);return y},[b]),w=y=>{a(y),d(!1),x("")},P=y=>{const g=y.target.value;x(g),a(g),r||d(!0)};return e.jsxs("div",{ref:j,className:"relative flex-1",children:[e.jsxs("div",{className:"relative",children:[e.jsx("input",{ref:m,type:"text",value:r&&o||s,onChange:P,onFocus:()=>{d(!0),x("")},placeholder:t.placeholder||"Select model...",disabled:i,className:T("flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 pr-8 text-sm","ring-offset-background placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50")}),e.jsx(pt,{className:"absolute right-2 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none"})]}),r&&!i&&e.jsx("div",{className:"absolute z-50 mt-1 w-full rounded-md border border-border bg-card shadow-md",children:e.jsx("div",{className:"max-h-56 overflow-y-auto p-1",children:Object.keys(S).length===0?e.jsx("div",{className:"py-3 text-center text-xs text-muted-foreground",children:l(c==="api"?{id:"codexlens.noConfiguredModels",defaultMessage:"No models configured"}:{id:"codexlens.noLocalModels",defaultMessage:"No models downloaded"})}):Object.entries(S).map(([y,g])=>e.jsxs("div",{children:[e.jsx("div",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:y}),g.map(v=>e.jsx("button",{type:"button",onClick:()=>w(v.id),className:T("flex w-full items-center rounded-sm px-2 py-1.5 text-xs cursor-pointer","hover:bg-accent hover:text-accent-foreground",s===v.id&&"bg-accent/50"),children:v.label},v.id))]},y))})})]})}const Nn={box:us,"arrow-up-down":Ut,cpu:Ue,"git-branch":ft,scissors:zt};function yn({groups:t,values:s,onChange:a,disabled:n=!1,localEmbeddingModels:c=[],localRerankerModels:i=[]}){const{formatMessage:l}=z(),r=h.useMemo(()=>Object.entries(t),[t]);return e.jsx("div",{className:"space-y-3",children:r.map(([d,o])=>{const x=Nn[o.icon]||us;return e.jsx(Bt,{defaultOpen:!0,children:e.jsxs("div",{className:"border border-border rounded-lg",children:[e.jsxs(Gt,{className:"flex w-full items-center gap-2 p-3 text-xs font-medium text-muted-foreground hover:text-foreground transition-colors",children:[e.jsx(x,{className:"w-3.5 h-3.5"}),l({id:o.labelKey,defaultMessage:d})]}),e.jsx(Xt,{children:e.jsx("div",{className:"px-3 pb-3 space-y-2",children:Object.entries(o.vars).map(([j,m])=>fn(m,s)?e.jsx(bn,{field:m,value:s[j]??m.default??"",onChange:b=>a(j,b),allValues:s,disabled:n,localModels:j.includes("EMBEDDING")?c:i,formatMessage:l},j):null)})})]})},d)})})}function bn({field:t,value:s,onChange:a,allValues:n,disabled:c,localModels:i,formatMessage:l}){const r=l({id:t.labelKey,defaultMessage:t.key});switch(t.type){case"select":return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsxs(pe,{value:s,onValueChange:a,disabled:c,children:[e.jsx(fe,{className:T("flex-1 h-8 text-xs"),children:e.jsx(ve,{})}),e.jsx(je,{children:(t.options||[]).map(d=>e.jsx(F,{value:d,className:"text-xs",children:d},d))})]})]});case"number":return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx(ye,{type:"number",className:"flex-1 h-8 text-xs",value:s,onChange:d=>a(d.target.value),placeholder:t.placeholder,min:t.min,max:t.max,step:t.step??1,disabled:c})]});case"checkbox":return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx("div",{className:"flex-1 flex items-center h-8",children:e.jsx(vt,{checked:s==="true",onCheckedChange:d=>a(d?"true":"false"),disabled:c})})]});case"model-select":{const o=t.key.includes("EMBEDDING")?"CODEXLENS_EMBEDDING_BACKEND":"CODEXLENS_RERANKER_BACKEND",x=n[o],j=x==="api"||x==="litellm"?"api":"local";return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx(jn,{field:t,value:s,onChange:a,localModels:i,backendType:j,disabled:c})]})}case"text":default:return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{className:"text-xs text-muted-foreground w-28 flex-shrink-0",title:t.key,children:r}),e.jsx(ye,{type:"text",className:"flex-1 h-8 text-xs",value:s,onChange:d=>a(d.target.value),placeholder:t.placeholder,disabled:c})]})}}function En({enabled:t=!0}){const{formatMessage:s}=z(),{success:a,error:n}=X(),{config:c,indexCount:i,apiMaxWorkers:l,apiBatchSize:r,isLoading:d,refetch:o}=Ht({enabled:t}),{env:x,settings:j,isLoading:m,refetch:E}=ps({enabled:t}),{embeddingModels:b,rerankerModels:S}=gs({enabled:t}),{updateEnv:w,isUpdating:P}=ze(),[y,g]=h.useState(""),[v,L]=h.useState(""),[N,I]=h.useState({}),[R,f]=h.useState(!1),[k,A]=h.useState({}),[le,ce]=h.useState("");h.useEffect(()=>{c&&(g(c.index_dir||""),ce(c.index_dir||""))},[c]),h.useEffect(()=>{if(x||j){const $={...vn()};if(j)for(const[J,ee]of Object.entries(j))ee&&($[J]=ee);if(x)for(const[J,ee]of Object.entries(x))ee&&($[J]=ee);I($),A($),f(!1)}},[x,j]);const te=h.useCallback((M,$)=>{if($!==le)return!0;for(const J of Object.keys(M))if(M[J]!==k[J])return!0;return!1},[k,le]),de=h.useCallback((M,$)=>{I(J=>{const ee={...J,[M]:$};return f(te(ee,y)),ee})},[te,y]),O=h.useCallback(M=>{g(M),L(""),f(te(N,M))},[te,N]),ne=h.useMemo(()=>(b||[]).filter(M=>M.installed),[b]),oe=h.useMemo(()=>(S||[]).filter(M=>M.installed),[S]),xe=async()=>{if(!y.trim()){L(s({id:"codexlens.settings.validation.indexDirRequired"}));return}try{const M=await w({env:N});M.success?(a(s({id:"codexlens.settings.saveSuccess"}),M.message||s({id:"codexlens.settings.configUpdated"})),E(),o(),f(!1),A(N),ce(y)):n(s({id:"codexlens.settings.saveFailed"}),M.message||s({id:"codexlens.settings.saveError"}))}catch(M){n(s({id:"codexlens.settings.saveFailed"}),M instanceof Error?M.message:s({id:"codexlens.settings.unknownError"}))}},ae=()=>{I(k),g(le),L(""),f(!1)},Q=d||m;return e.jsxs("div",{className:"space-y-6",children:[e.jsx(C,{className:"p-4 bg-muted/30",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:s({id:"codexlens.settings.currentCount"})}),e.jsx("p",{className:"text-foreground font-medium",children:i})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:s({id:"codexlens.settings.currentWorkers"})}),e.jsx("p",{className:"text-foreground font-medium",children:l})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:s({id:"codexlens.settings.currentBatchSize"})}),e.jsx("p",{className:"text-foreground font-medium",children:r})]})]})}),e.jsxs(C,{className:"p-6",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-4",children:s({id:"codexlens.settings.configTitle"})}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsx(U,{htmlFor:"index_dir",children:s({id:"codexlens.settings.indexDir.label"})}),e.jsx(ye,{id:"index_dir",value:y,onChange:M=>O(M.target.value),placeholder:s({id:"codexlens.settings.indexDir.placeholder"}),error:!!v,disabled:Q}),v&&e.jsx("p",{className:"text-sm text-destructive",children:v}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.settings.indexDir.hint"})})]}),e.jsx(yn,{groups:bs,values:N,onChange:de,disabled:Q,localEmbeddingModels:ne,localRerankerModels:oe}),e.jsxs("div",{className:"flex items-center gap-2 mt-6",children:[e.jsxs(D,{onClick:xe,disabled:Q||P||!R,children:[e.jsx(Fe,{className:T("w-4 h-4 mr-2",P&&"animate-spin")}),s(P?{id:"codexlens.settings.saving"}:{id:"codexlens.settings.save"})]}),e.jsxs(D,{variant:"outline",onClick:ae,disabled:Q||!R,children:[e.jsx(he,{className:"w-4 h-4 mr-2"}),s({id:"codexlens.settings.reset"})]})]})]})]})}const Cn="codex_lens";function Ze(t){return t.name.startsWith(Cn)}function Sn(){const{formatMessage:t}=z(),{tools:s,isLoading:a,error:n}=xn(),c=s.filter(Ze),i=s.filter(l=>!Ze(l));return a?e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]})}),e.jsx(Z,{children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Le,{className:"w-4 h-4 animate-spin"}),e.jsx("span",{children:t({id:"codexlens.mcp.loading"})})]})})]}):n?e.jsxs(C,{className:"border-destructive/20",children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]})}),e.jsx(Z,{children:e.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[e.jsx(Ne,{className:"w-4 h-4 text-destructive flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-destructive",children:t({id:"codexlens.mcp.error"})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t({id:"codexlens.mcp.errorDesc"})})]})]})})]}):s.length===0?e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]})}),e.jsx(Z,{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:t({id:"codexlens.mcp.emptyDesc"})})})]}):e.jsxs(C,{children:[e.jsx(ie,{children:e.jsxs(re,{className:"text-base flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Se,{className:"w-4 h-4"}),e.jsx("span",{children:t({id:"codexlens.mcp.title"})})]}),e.jsx(q,{variant:"outline",className:"text-xs",children:t({id:"codexlens.mcp.totalCount"},{count:s.length})})]})}),e.jsxs(Z,{className:"space-y-4",children:[c.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground uppercase mb-2",children:t({id:"codexlens.mcp.codexLensSection"})}),e.jsx("div",{className:"space-y-1.5",children:c.map(l=>e.jsx($e,{tool:l,variant:"default"},l.name))})]}),i.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground uppercase mb-2",children:t({id:"codexlens.mcp.otherSection"})}),e.jsx("div",{className:"space-y-1.5",children:i.map(l=>e.jsx($e,{tool:l,variant:"secondary"},l.name))})]})]})]})}function $e({tool:t,variant:s}){return e.jsxs("div",{className:"flex items-center gap-2 py-1 px-2 rounded-md hover:bg-muted/50 transition-colors",children:[e.jsx(q,{variant:s,className:"text-xs font-mono shrink-0",children:t.name}),e.jsx("span",{className:"text-xs text-muted-foreground truncate",title:t.description,children:t.description})]})}const Je=/^[-\w.*\\/]+$/;function Ce(t){return t.split(/[\n,]/).map(s=>s.trim()).filter(Boolean)}function Ke(t){return t.map(s=>s.trim()).filter(Boolean).join(`
22
+ `)}function es(t){return Ke(Ce(t))}function wn({enabled:t=!0}){const{formatMessage:s}=z(),{success:a,error:n}=X(),{raw:c,env:i,settings:l,isLoading:r,error:d,refetch:o}=ps({enabled:t}),{patterns:x,extensionFilters:j,defaults:m,isLoading:E,error:b,refetch:S}=Vt({enabled:t}),{updateEnv:w,isUpdating:P}=ze(),{updatePatterns:y,isUpdating:g}=fs(),[v,L]=h.useState(""),[N,I]=h.useState(""),[R,f]=h.useState(""),[k,A]=h.useState({}),[le,ce]=h.useState(!1),[te,de]=h.useState(!1),[O,ne]=h.useState(!1),oe=x??[],xe=j??[],ae=(m==null?void 0:m.patterns)??[],Q=(m==null?void 0:m.extensionFilters)??[];h.useEffect(()=>{r||(L(c??""),A({}),ce(!1),ne(!1))},[c,r]),h.useEffect(()=>{if(!E){const u=x??[],_=j??[];I(u.join(`
23
23
  `)),f(_.join(`
24
- `)),A(K=>({...K,ignorePatterns:void 0,extensionFilters:void 0})),de(!1)}},[j,E,x]);const M=(u,_)=>{const K=Ke(oe),Y=Ke(xe);de(es(u)!==K||es(_)!==Y)},$=u=>{L(u);const _=c??"";ce(u!==_),ne(u!==_),k.env&&A(K=>({...K,env:void 0}))},J=u=>{I(u),M(u,O),k.ignorePatterns&&A(_=>({..._,ignorePatterns:void 0}))},ee=u=>{f(u),M(N,u),k.extensionFilters&&A(_=>({..._,extensionFilters:void 0}))},He=u=>{const _={},K=u.split(`
25
- `);for(const Y of K){const me=Y.trim();if(me&&!me.startsWith("#")&&me.includes("=")){const[se,...Is]=me.split("="),ks=Is.join("=");se&&(_[se.trim()]=ks.trim())}}return _},Es=()=>{const u={},_=He(v),K=Object.keys(_).filter(Y=>!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(Y));return K.length>0&&(u.env=s({id:"codexlens.advanced.validation.invalidKeys"},{keys:K.join(", ")})),A(Y=>({...Y,env:u.env})),Object.keys(u).length===0},Cs=()=>{const u={},_=Ce(N),K=Ce(O),Y=_.filter(se=>!Je.test(se));Y.length>0&&(u.ignorePatterns=s({id:"codexlens.advanced.validation.invalidIgnorePatterns",defaultMessage:"Invalid ignore patterns: {values}"},{values:Y.join(", ")}));const me=K.filter(se=>!Je.test(se));return me.length>0&&(u.extensionFilters=s({id:"codexlens.advanced.validation.invalidExtensionFilters",defaultMessage:"Invalid file filters: {values}"},{values:me.join(", ")})),A(se=>({...se,ignorePatterns:u.ignorePatterns,extensionFilters:u.extensionFilters})),Object.values(u).every(se=>!se)},Ss=async()=>{if(Es())try{const u=He(v),_=await w({env:u});_.success?(a(s({id:"codexlens.advanced.saveSuccess"}),_.message||s({id:"codexlens.advanced.envUpdated"})),o(),ne(!1)):n(s({id:"codexlens.advanced.saveFailed"}),_.message||s({id:"codexlens.advanced.saveError"}))}catch(u){n(s({id:"codexlens.advanced.saveFailed"}),u instanceof Error?u.message:s({id:"codexlens.advanced.unknownError"}))}},ws=()=>{L(c??""),A(u=>({...u,env:void 0})),ce(!1),ne(!1)},_s=async()=>{if(!Cs())return;const u=Ce(N),_=Ce(O);try{const K=await y({patterns:u,extensionFilters:_});K.success&&(I((K.patterns??u).join(`
24
+ `)),A(K=>({...K,ignorePatterns:void 0,extensionFilters:void 0})),de(!1)}},[j,E,x]);const M=(u,_)=>{const K=Ke(oe),Y=Ke(xe);de(es(u)!==K||es(_)!==Y)},$=u=>{L(u);const _=c??"";ce(u!==_),ne(u!==_),k.env&&A(K=>({...K,env:void 0}))},J=u=>{I(u),M(u,R),k.ignorePatterns&&A(_=>({..._,ignorePatterns:void 0}))},ee=u=>{f(u),M(N,u),k.extensionFilters&&A(_=>({..._,extensionFilters:void 0}))},He=u=>{const _={},K=u.split(`
25
+ `);for(const Y of K){const me=Y.trim();if(me&&!me.startsWith("#")&&me.includes("=")){const[se,...Is]=me.split("="),ks=Is.join("=");se&&(_[se.trim()]=ks.trim())}}return _},Es=()=>{const u={},_=He(v),K=Object.keys(_).filter(Y=>!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(Y));return K.length>0&&(u.env=s({id:"codexlens.advanced.validation.invalidKeys"},{keys:K.join(", ")})),A(Y=>({...Y,env:u.env})),Object.keys(u).length===0},Cs=()=>{const u={},_=Ce(N),K=Ce(R),Y=_.filter(se=>!Je.test(se));Y.length>0&&(u.ignorePatterns=s({id:"codexlens.advanced.validation.invalidIgnorePatterns",defaultMessage:"Invalid ignore patterns: {values}"},{values:Y.join(", ")}));const me=K.filter(se=>!Je.test(se));return me.length>0&&(u.extensionFilters=s({id:"codexlens.advanced.validation.invalidExtensionFilters",defaultMessage:"Invalid file filters: {values}"},{values:me.join(", ")})),A(se=>({...se,ignorePatterns:u.ignorePatterns,extensionFilters:u.extensionFilters})),Object.values(u).every(se=>!se)},Ss=async()=>{if(Es())try{const u=He(v),_=await w({env:u});_.success?(a(s({id:"codexlens.advanced.saveSuccess"}),_.message||s({id:"codexlens.advanced.envUpdated"})),o(),ne(!1)):n(s({id:"codexlens.advanced.saveFailed"}),_.message||s({id:"codexlens.advanced.saveError"}))}catch(u){n(s({id:"codexlens.advanced.saveFailed"}),u instanceof Error?u.message:s({id:"codexlens.advanced.unknownError"}))}},ws=()=>{L(c??""),A(u=>({...u,env:void 0})),ce(!1),ne(!1)},_s=async()=>{if(!Cs())return;const u=Ce(N),_=Ce(R);try{const K=await y({patterns:u,extensionFilters:_});K.success&&(I((K.patterns??u).join(`
26
26
  `)),f((K.extensionFilters??_).join(`
27
27
  `)),de(!1),A(Y=>({...Y,ignorePatterns:void 0,extensionFilters:void 0})),await S())}catch{}},Ls=()=>{I(oe.join(`
28
28
  `)),f(xe.join(`
29
29
  `)),A(u=>({...u,ignorePatterns:void 0,extensionFilters:void 0})),de(!1)},Ds=()=>{const u=ae.join(`
30
30
  `),_=Q.join(`
31
- `);I(u),f(_),A(K=>({...K,ignorePatterns:void 0,extensionFilters:void 0})),M(u,_)},Ae=r,be=E,Pe=i?Object.entries(i).map(([u,_])=>({key:u,value:_})):[],Te=l?Object.entries(l).map(([u,_])=>({key:u,value:_})):[];return e.jsxs("div",{className:"space-y-6",children:[d&&e.jsx(C,{className:"p-4 bg-destructive/10 border-destructive/20",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Ne,{className:"w-5 h-5 text-destructive flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-medium text-destructive-foreground",children:s({id:"codexlens.advanced.loadError"})}),e.jsx("p",{className:"text-xs text-destructive-foreground/80 mt-1",children:d.message||s({id:"codexlens.advanced.loadErrorDesc"})}),e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>o(),className:"mt-2",children:[e.jsx(he,{className:"w-3 h-3 mr-1"}),s({id:"common.actions.retry"})]})]})]})}),R&&e.jsx(C,{className:"p-4 bg-warning/10 border-warning/20",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Oe,{className:"w-5 h-5 text-warning flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning-foreground",children:s({id:"codexlens.advanced.warningTitle"})}),e.jsx("p",{className:"text-xs text-warning-foreground/80 mt-1",children:s({id:"codexlens.advanced.warningMessage"})})]})]})}),(Pe.length>0||Te.length>0)&&e.jsxs(C,{className:"p-4 bg-muted/30",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground mb-3",children:s({id:"codexlens.advanced.currentVars"})}),e.jsxs("div",{className:"space-y-3",children:[Te.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:s({id:"codexlens.advanced.settingsVars"})}),e.jsx("div",{className:"flex flex-wrap gap-2",children:Te.map(({key:u})=>e.jsx(q,{variant:"outline",className:"font-mono text-xs",children:u},u))})]}),Pe.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:s({id:"codexlens.advanced.customVars"})}),e.jsx("div",{className:"flex flex-wrap gap-2",children:Pe.map(({key:u})=>e.jsx(q,{variant:"secondary",className:"font-mono text-xs",children:u},u))})]})]})]}),e.jsx(Sn,{}),e.jsxs(C,{className:"p-6",children:[e.jsxs("div",{className:"flex flex-col gap-3 mb-4 lg:flex-row lg:items-center lg:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ms,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:s({id:"codexlens.advanced.indexFilters",defaultMessage:"Index Filters"})})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(q,{variant:"outline",className:"text-xs",children:s({id:"codexlens.advanced.ignorePatternCount",defaultMessage:"Directory filters: {count}"},{count:oe.length})}),e.jsx(q,{variant:"outline",className:"text-xs",children:s({id:"codexlens.advanced.extensionFilterCount",defaultMessage:"File filters: {count}"},{count:xe.length})})]})]}),e.jsxs("div",{className:"space-y-4",children:[b&&e.jsx("div",{className:"rounded-md border border-destructive/20 bg-destructive/5 p-3",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Ne,{className:"w-4 h-4 mt-0.5 text-destructive"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-destructive",children:s({id:"codexlens.advanced.filtersLoadError",defaultMessage:"Unable to load current filter settings"})}),e.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:b.message})]})]})}),e.jsxs("div",{className:"grid gap-4 xl:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"ignore-patterns-input",children:s({id:"codexlens.advanced.ignorePatterns",defaultMessage:"Ignored directories / paths"})}),e.jsx(Re,{id:"ignore-patterns-input",value:N,onChange:u=>J(u.target.value),placeholder:s({id:"codexlens.advanced.ignorePatternsPlaceholder",defaultMessage:`dist
31
+ `);I(u),f(_),A(K=>({...K,ignorePatterns:void 0,extensionFilters:void 0})),M(u,_)},Ae=r,be=E,Pe=i?Object.entries(i).map(([u,_])=>({key:u,value:_})):[],Te=l?Object.entries(l).map(([u,_])=>({key:u,value:_})):[];return e.jsxs("div",{className:"space-y-6",children:[d&&e.jsx(C,{className:"p-4 bg-destructive/10 border-destructive/20",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Ne,{className:"w-5 h-5 text-destructive flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-medium text-destructive-foreground",children:s({id:"codexlens.advanced.loadError"})}),e.jsx("p",{className:"text-xs text-destructive-foreground/80 mt-1",children:d.message||s({id:"codexlens.advanced.loadErrorDesc"})}),e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>o(),className:"mt-2",children:[e.jsx(he,{className:"w-3 h-3 mr-1"}),s({id:"common.actions.retry"})]})]})]})}),O&&e.jsx(C,{className:"p-4 bg-warning/10 border-warning/20",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Re,{className:"w-5 h-5 text-warning flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-warning-foreground",children:s({id:"codexlens.advanced.warningTitle"})}),e.jsx("p",{className:"text-xs text-warning-foreground/80 mt-1",children:s({id:"codexlens.advanced.warningMessage"})})]})]})}),(Pe.length>0||Te.length>0)&&e.jsxs(C,{className:"p-4 bg-muted/30",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground mb-3",children:s({id:"codexlens.advanced.currentVars"})}),e.jsxs("div",{className:"space-y-3",children:[Te.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:s({id:"codexlens.advanced.settingsVars"})}),e.jsx("div",{className:"flex flex-wrap gap-2",children:Te.map(({key:u})=>e.jsx(q,{variant:"outline",className:"font-mono text-xs",children:u},u))})]}),Pe.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:s({id:"codexlens.advanced.customVars"})}),e.jsx("div",{className:"flex flex-wrap gap-2",children:Pe.map(({key:u})=>e.jsx(q,{variant:"secondary",className:"font-mono text-xs",children:u},u))})]})]})]}),e.jsx(Sn,{}),e.jsxs(C,{className:"p-6",children:[e.jsxs("div",{className:"flex flex-col gap-3 mb-4 lg:flex-row lg:items-center lg:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ms,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:s({id:"codexlens.advanced.indexFilters",defaultMessage:"Index Filters"})})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(q,{variant:"outline",className:"text-xs",children:s({id:"codexlens.advanced.ignorePatternCount",defaultMessage:"Directory filters: {count}"},{count:oe.length})}),e.jsx(q,{variant:"outline",className:"text-xs",children:s({id:"codexlens.advanced.extensionFilterCount",defaultMessage:"File filters: {count}"},{count:xe.length})})]})]}),e.jsxs("div",{className:"space-y-4",children:[b&&e.jsx("div",{className:"rounded-md border border-destructive/20 bg-destructive/5 p-3",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Ne,{className:"w-4 h-4 mt-0.5 text-destructive"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-destructive",children:s({id:"codexlens.advanced.filtersLoadError",defaultMessage:"Unable to load current filter settings"})}),e.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:b.message})]})]})}),e.jsxs("div",{className:"grid gap-4 xl:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"ignore-patterns-input",children:s({id:"codexlens.advanced.ignorePatterns",defaultMessage:"Ignored directories / paths"})}),e.jsx(Oe,{id:"ignore-patterns-input",value:N,onChange:u=>J(u.target.value),placeholder:s({id:"codexlens.advanced.ignorePatternsPlaceholder",defaultMessage:`dist
32
32
  frontend/dist
33
- coverage`}),className:T("min-h-[220px] font-mono text-sm",k.ignorePatterns&&"border-destructive focus-visible:ring-destructive"),disabled:be||g}),k.ignorePatterns&&e.jsx("p",{className:"text-sm text-destructive",children:k.ignorePatterns}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.advanced.ignorePatternsHint",defaultMessage:"One entry per line. Supports exact names, relative paths, and glob patterns."})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"extension-filters-input",children:s({id:"codexlens.advanced.extensionFilters",defaultMessage:"Skipped files / globs"})}),e.jsx(Re,{id:"extension-filters-input",value:O,onChange:u=>ee(u.target.value),placeholder:s({id:"codexlens.advanced.extensionFiltersPlaceholder",defaultMessage:`*.min.js
33
+ coverage`}),className:T("min-h-[220px] font-mono text-sm",k.ignorePatterns&&"border-destructive focus-visible:ring-destructive"),disabled:be||g}),k.ignorePatterns&&e.jsx("p",{className:"text-sm text-destructive",children:k.ignorePatterns}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.advanced.ignorePatternsHint",defaultMessage:"One entry per line. Supports exact names, relative paths, and glob patterns."})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"extension-filters-input",children:s({id:"codexlens.advanced.extensionFilters",defaultMessage:"Skipped files / globs"})}),e.jsx(Oe,{id:"extension-filters-input",value:R,onChange:u=>ee(u.target.value),placeholder:s({id:"codexlens.advanced.extensionFiltersPlaceholder",defaultMessage:`*.min.js
34
34
  *.map
35
- package-lock.json`}),className:T("min-h-[220px] font-mono text-sm",k.extensionFilters&&"border-destructive focus-visible:ring-destructive"),disabled:be||g}),k.extensionFilters&&e.jsx("p",{className:"text-sm text-destructive",children:k.extensionFilters}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.advanced.extensionFiltersHint",defaultMessage:"Use this for generated or low-value files that should stay out of the index."})})]})]}),e.jsxs("div",{className:"grid gap-3 rounded-md border border-border/60 bg-muted/30 p-3 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-foreground",children:s({id:"codexlens.advanced.defaultIgnorePatterns",defaultMessage:"Default directory filters"})}),e.jsxs("div",{className:"mt-2 flex flex-wrap gap-2",children:[ae.slice(0,6).map(u=>e.jsx(q,{variant:"secondary",className:"font-mono text-xs",children:u},u)),ae.length>6&&e.jsxs(q,{variant:"outline",className:"text-xs",children:["+",ae.length-6]})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-foreground",children:s({id:"codexlens.advanced.defaultExtensionFilters",defaultMessage:"Default file filters"})}),e.jsxs("div",{className:"mt-2 flex flex-wrap gap-2",children:[Q.slice(0,6).map(u=>e.jsx(q,{variant:"secondary",className:"font-mono text-xs",children:u},u)),Q.length>6&&e.jsxs(q,{variant:"outline",className:"text-xs",children:["+",Q.length-6]})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(D,{onClick:_s,disabled:be||g||!te,children:[e.jsx(Fe,{className:T("w-4 h-4 mr-2",g&&"animate-spin")}),s(g?{id:"codexlens.advanced.saving",defaultMessage:"Saving..."}:{id:"codexlens.advanced.saveFilters",defaultMessage:"Save filters"})]}),e.jsxs(D,{variant:"outline",onClick:Ls,disabled:be||!te,children:[e.jsx(he,{className:"w-4 h-4 mr-2"}),s({id:"codexlens.advanced.reset",defaultMessage:"Reset"})]}),e.jsx(D,{variant:"outline",onClick:Ds,disabled:be||g,children:s({id:"codexlens.advanced.restoreDefaults",defaultMessage:"Restore defaults"})})]})]})]}),e.jsxs(C,{className:"p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ns,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:s({id:"codexlens.advanced.envEditor"})})]}),e.jsxs(q,{variant:"outline",className:"text-xs",children:[s({id:"codexlens.advanced.envFile"}),": .env"]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"env-input",children:s({id:"codexlens.advanced.envContent"})}),e.jsx(Re,{id:"env-input",value:v,onChange:u=>$(u.target.value),placeholder:s({id:"codexlens.advanced.envPlaceholder"}),className:T("min-h-[300px] font-mono text-sm",k.env&&"border-destructive focus-visible:ring-destructive"),disabled:Ae}),k.env&&e.jsx("p",{className:"text-sm text-destructive",children:k.env}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.advanced.envHint"})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(D,{onClick:Ss,disabled:Ae||P||!le,children:[e.jsx(Fe,{className:T("w-4 h-4 mr-2",P&&"animate-spin")}),s(P?{id:"codexlens.advanced.saving"}:{id:"codexlens.advanced.save"})]}),e.jsxs(D,{variant:"outline",onClick:ws,disabled:Ae||!le,children:[e.jsx(he,{className:"w-4 h-4 mr-2"}),s({id:"codexlens.advanced.reset"})]})]})]})]}),e.jsxs(C,{className:"p-4 bg-info/10 border-info/20",children:[e.jsx("h4",{className:"text-sm font-medium text-info-foreground mb-2",children:s({id:"codexlens.advanced.helpTitle"})}),e.jsxs("ul",{className:"text-xs text-info-foreground/80 space-y-1",children:[e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpComment"})]}),e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpFormat"})]}),e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpQuotes"})]}),e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpRestart"})]})]})]})]})}function _n(t){return t==="embedding"?"default":"secondary"}function Ln(t){return t||"-"}function Dn({model:t,isDownloading:s=!1,downloadProgress:a=0,isDeleting:n=!1,onDownload:c,onDelete:i,onCancelDownload:l}){const{formatMessage:r}=z(),d=()=>{c(t.profile)},o=()=>{confirm(r({id:"codexlens.models.deleteConfirm"},{modelName:t.name}))&&i(t.profile)};return e.jsx(C,{className:T("overflow-hidden hover-glow",!t.installed&&"opacity-80"),children:e.jsxs("div",{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx("div",{className:T("p-2 rounded-lg flex-shrink-0",t.installed?"bg-success/10":"bg-muted"),children:t.installed?e.jsx(qt,{className:"w-4 h-4 text-success"}):e.jsx(Ie,{className:"w-4 h-4 text-muted-foreground"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:t.name}),e.jsx(q,{variant:_n(t.type),className:"text-xs flex-shrink-0",children:t.type}),e.jsx(q,{variant:t.installed?"success":"outline",className:"text-xs flex-shrink-0",children:t.installed?r({id:"codexlens.models.status.downloaded"}):r({id:"codexlens.models.status.available"})})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-1 text-xs text-muted-foreground",children:[t.dimensions&&e.jsxs("span",{children:[t.dimensions,"d"]}),e.jsx("span",{children:Ln(t.size)}),t.recommended&&e.jsx(q,{variant:"success",className:"text-[10px] px-1 py-0",children:"Rec"})]}),t.description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t.description})]})]}),e.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:s?e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 text-destructive hover:text-destructive hover:bg-destructive/10",onClick:l,title:r({id:"codexlens.models.actions.cancel"}),children:e.jsx(ss,{className:"w-4 h-4"})}):t.installed?e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 text-destructive hover:text-destructive hover:bg-destructive/10",onClick:o,disabled:n,title:r({id:"codexlens.models.actions.delete"}),children:n?e.jsx(Le,{className:"w-4 h-4 animate-spin"}):e.jsx(as,{className:"w-4 h-4"})}):e.jsxs(D,{variant:"ghost",size:"sm",className:"h-8 px-2",onClick:d,title:r({id:"codexlens.models.actions.download"}),children:[e.jsx(De,{className:"w-4 h-4 mr-1"}),e.jsx("span",{className:"text-xs",children:r({id:"codexlens.models.actions.download"})})]})})]}),s&&e.jsxs("div",{className:"mt-3 space-y-1",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:r({id:"codexlens.models.downloading"})}),e.jsxs("span",{className:"font-medium",children:[a,"%"]})]}),e.jsx(qe,{value:a,className:"h-2"})]})]})})}function In({isDownloading:t,onDownload:s}){const{formatMessage:a}=z(),[n,c]=h.useState(""),[i,l]=h.useState("embedding"),r=d=>{d.preventDefault(),n.trim()&&(s(n.trim(),i),c(""))};return e.jsxs(C,{className:"p-4 bg-primary/5 border-primary/20",children:[e.jsxs("h3",{className:"text-sm font-medium text-foreground mb-3 flex items-center gap-2",children:[e.jsx(Ie,{className:"w-4 h-4 text-primary"}),a({id:"codexlens.models.custom.title"})]}),e.jsxs("form",{onSubmit:r,className:"space-y-3",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ye,{placeholder:a({id:"codexlens.models.custom.placeholder"}),value:n,onChange:d=>c(d.target.value),disabled:t,className:"flex-1"}),e.jsxs("select",{value:i,onChange:d=>l(d.target.value),disabled:t,className:"px-3 py-2 text-sm rounded-md border border-input bg-background",children:[e.jsx("option",{value:"embedding",children:a({id:"codexlens.models.types.embedding"})}),e.jsx("option",{value:"reranker",children:a({id:"codexlens.models.types.reranker"})})]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a({id:"codexlens.models.custom.description"})})]})]})}function kn(t,s,a){let n=t;if(s==="embedding"?n=n.filter(c=>c.type==="embedding"):s==="reranker"?n=n.filter(c=>c.type==="reranker"):s==="downloaded"?n=n.filter(c=>c.installed):s==="available"&&(n=n.filter(c=>!c.installed)),a.trim()){const c=a.toLowerCase();n=n.filter(i=>{var l;return i.name.toLowerCase().includes(c)||i.profile.toLowerCase().includes(c)||(((l=i.description)==null?void 0:l.toLowerCase().includes(c))??!1)})}return n}function Mn({installed:t=!1}){const{formatMessage:s}=z(),[a,n]=h.useState(""),[c,i]=h.useState("all"),[l,r]=h.useState(null),[d,o]=h.useState(0),{models:x,isLoading:j,error:m,refetch:E}=gs({enabled:t}),{downloadModel:b,downloadCustomModel:S,deleteModel:w,isDownloading:P,isDeleting:y}=We(),g=h.useMemo(()=>x?kn(x,c,a):[],[x,c,a]),v=h.useMemo(()=>x?{total:x.length,embedding:x.filter(f=>f.type==="embedding").length,reranker:x.filter(f=>f.type==="reranker").length,downloaded:x.filter(f=>f.installed).length,available:x.filter(f=>!f.installed).length}:null,[x]),L=async f=>{r(f),o(0);const k=setInterval(()=>{o(A=>A>=95?(clearInterval(k),95):A+5)},500);try{(await b(f)).success?(o(100),setTimeout(()=>{r(null),o(0),E()},500)):(r(null),o(0))}catch{r(null),o(0)}finally{clearInterval(k)}},N=async(f,k)=>{try{(await S(f,k)).success&&E()}catch(A){console.error("Failed to download custom model:",A)}},I=async f=>{(await w(f)).success&&E()},O=[{type:"all",label:s({id:"codexlens.models.filters.all"}),count:v==null?void 0:v.total},{type:"embedding",label:s({id:"codexlens.models.types.embedding"}),count:v==null?void 0:v.embedding},{type:"reranker",label:s({id:"codexlens.models.types.reranker"}),count:v==null?void 0:v.reranker},{type:"downloaded",label:s({id:"codexlens.models.status.downloaded"}),count:v==null?void 0:v.downloaded},{type:"available",label:s({id:"codexlens.models.status.available"}),count:v==null?void 0:v.available}];return t?e.jsxs("div",{className:"space-y-4",children:[e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[e.jsx(we,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(ye,{placeholder:s({id:"codexlens.models.searchPlaceholder"}),value:a,onChange:f=>n(f.target.value),className:"pl-9"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>E(),disabled:j,children:[e.jsx(he,{className:T("w-4 h-4 mr-1",j&&"animate-spin")}),s({id:"common.actions.refresh"})]})})]})}),e.jsxs(C,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(ms,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:s({id:"codexlens.models.filters.label"})})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:O.map(({type:f,label:k,count:A})=>e.jsxs(D,{variant:c===f?"default":"outline",size:"sm",onClick:()=>i(f),className:"relative",children:[k,A!==void 0&&e.jsx(q,{variant:c===f?"secondary":"default",className:"ml-2",children:A})]},f))})]}),e.jsx(In,{isDownloading:P,onDownload:N}),m?e.jsxs(C,{className:"p-8 text-center",children:[e.jsx(Ne,{className:"w-12 h-12 mx-auto text-destructive/50 mb-3"}),e.jsx("h3",{className:"text-sm font-medium text-destructive-foreground mb-1",children:s({id:"codexlens.models.error.title"})}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:m.message||s({id:"codexlens.models.error.description"})}),e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>E(),children:[e.jsx(he,{className:"w-3 h-3 mr-1"}),s({id:"common.actions.retry"})]})]}):j?e.jsx(C,{className:"p-8 text-center",children:e.jsx("p",{className:"text-muted-foreground",children:s({id:"common.actions.loading"})})}):g.length===0?e.jsxs(C,{className:"p-8 text-center",children:[e.jsx(Ie,{className:"w-12 h-12 mx-auto text-muted-foreground/30 mb-3"}),e.jsx("h3",{className:"text-sm font-medium text-foreground mb-1",children:x&&x.length>0?s({id:"codexlens.models.empty.filtered"}):s({id:"codexlens.models.empty.title"})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:x&&x.length>0?s({id:"codexlens.models.empty.filteredDesc"}):s({id:"codexlens.models.empty.description"})})]}):e.jsx("div",{className:"space-y-3",children:g.map(f=>e.jsx(Dn,{model:f,isDownloading:l===f.profile,downloadProgress:d,isDeleting:y&&l!==f.profile,onDownload:L,onDelete:I,onCancelDownload:()=>{r(null),o(0)}},f.profile))})]}):e.jsxs(C,{className:"p-12 text-center",children:[e.jsx(Ie,{className:"w-16 h-16 mx-auto text-muted-foreground/30 mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:s({id:"codexlens.models.notInstalled.title"})}),e.jsx("p",{className:"text-muted-foreground",children:s({id:"codexlens.models.notInstalled.description"})})]})}function An({enabled:t}){const{formatMessage:s}=z(),[a,n]=h.useState("search"),[c,i]=h.useState("dense_rerank"),[l,r]=h.useState("fusion"),[d,o]=h.useState("rrf"),[x,j]=h.useState("precomputed"),[m,E]=h.useState(""),[b,S]=h.useState(!1),w=ys({enabled:t}),P={query:m,limit:20,mode:a!=="symbol"&&a!=="semantic"?c:void 0,max_content_length:200,extra_files_count:10},y=nn(P,{enabled:t&&b&&a==="search"&&m.trim().length>0}),g=an(P,{enabled:t&&b&&a==="search_files"&&m.trim().length>0}),v=rn({query:m,limit:20},{enabled:t&&b&&a==="symbol"&&m.trim().length>0}),L=cn({query:m,mode:l,fusion_strategy:l==="fusion"?d:void 0,staged_stage2_mode:l==="fusion"&&d==="staged"?x:void 0,limit:20,include_match_reason:!0},{enabled:t&&b&&a==="semantic"&&m.trim().length>0}),N=a==="search"?y.isLoading:a==="search_files"?g.isLoading:a==="symbol"?v.isLoading:L.isLoading,I=()=>{m.trim()&&S(!0)},O=R=>{R.key==="Enter"&&I()},f=R=>{n(R),S(!1)},k=R=>{i(R),S(!1)},A=R=>{r(R),S(!1)},le=R=>{o(R),S(!1)},ce=R=>{j(R),S(!1)},te=R=>{E(R),S(!1)},de=()=>{var R,ne,oe,xe,ae,Q,M;return a==="symbol"?(R=v.data)!=null&&R.success?`${((ne=v.data.symbols)==null?void 0:ne.length)??0} ${s({id:"codexlens.search.resultsCount"})}`:"":a==="search"?(oe=y.data)!=null&&oe.success?`${((xe=y.data.results)==null?void 0:xe.length)??0} ${s({id:"codexlens.search.resultsCount"})}`:"":a==="search_files"?(ae=g.data)!=null&&ae.success?`${((Q=g.data.files)==null?void 0:Q.length)??0} ${s({id:"codexlens.search.resultsCount"})}`:"":a==="semantic"&&(M=L.data)!=null&&M.success?`${L.data.count??0} ${s({id:"codexlens.search.resultsCount"})}`:""};return t?e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:[s({id:"codexlens.search.lspStatus"}),":"]}),w.isLoading?e.jsx("span",{className:"text-muted-foreground",children:"..."}):w.available?e.jsxs("span",{className:"flex items-center gap-1 text-green-600 dark:text-green-400",children:[e.jsx(jt,{className:"w-3.5 h-3.5"}),s({id:"codexlens.search.lspAvailable"})]}):w.semanticAvailable?e.jsxs("span",{className:"flex items-center gap-1 text-yellow-600 dark:text-yellow-400",children:[e.jsx(Oe,{className:"w-3.5 h-3.5"}),s({id:"codexlens.search.lspNoVector"})]}):e.jsxs("span",{className:"flex items-center gap-1 text-yellow-600 dark:text-yellow-400",children:[e.jsx(Oe,{className:"w-3.5 h-3.5"}),s({id:"codexlens.search.lspNoSemantic"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.type"})}),e.jsxs(pe,{value:a,onValueChange:f,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"search",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(we,{className:"w-4 h-4"}),s({id:"codexlens.search.content"})]})}),e.jsx(F,{value:"search_files",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ns,{className:"w-4 h-4"}),s({id:"codexlens.search.files"})]})}),e.jsx(F,{value:"symbol",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Nt,{className:"w-4 h-4"}),s({id:"codexlens.search.symbol"})]})}),e.jsx(F,{value:"semantic",disabled:!w.available,children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(is,{className:"w-4 h-4"}),s({id:"codexlens.search.semantic"})]})})]})]})]}),(a==="search"||a==="search_files")&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.mode"})}),e.jsxs(pe,{value:c,onValueChange:k,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"dense_rerank",children:s({id:"codexlens.search.mode.semantic"})}),e.jsx(F,{value:"fts",children:s({id:"codexlens.search.mode.exact"})}),e.jsx(F,{value:"fuzzy",children:s({id:"codexlens.search.mode.fuzzy"})})]})]})]}),a==="semantic"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.semanticMode"})}),e.jsxs(pe,{value:l,onValueChange:A,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"fusion",children:s({id:"codexlens.search.semanticMode.fusion"})}),e.jsx(F,{value:"vector",children:s({id:"codexlens.search.semanticMode.vector"})}),e.jsx(F,{value:"structural",children:s({id:"codexlens.search.semanticMode.structural"})})]})]})]})]}),a==="semantic"&&l==="fusion"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.fusionStrategy"})}),e.jsxs(pe,{value:d,onValueChange:le,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"rrf",children:s({id:"codexlens.search.fusionStrategy.rrf"})}),e.jsx(F,{value:"dense_rerank",children:s({id:"codexlens.search.fusionStrategy.dense_rerank"})}),e.jsx(F,{value:"binary",children:s({id:"codexlens.search.fusionStrategy.binary"})}),e.jsx(F,{value:"hybrid",children:s({id:"codexlens.search.fusionStrategy.hybrid"})}),e.jsx(F,{value:"staged",children:s({id:"codexlens.search.fusionStrategy.staged"})})]})]})]}),a==="semantic"&&l==="fusion"&&d==="staged"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.stagedStage2Mode"})}),e.jsxs(pe,{value:x,onValueChange:ce,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"precomputed",children:s({id:"codexlens.search.stagedStage2Mode.precomputed"})}),e.jsx(F,{value:"realtime",children:s({id:"codexlens.search.stagedStage2Mode.realtime"})}),e.jsx(F,{value:"static_global_graph",children:s({id:"codexlens.search.stagedStage2Mode.static_global_graph"})})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"search-query",children:s({id:"codexlens.search.query"})}),e.jsx(ye,{id:"search-query",placeholder:s({id:"codexlens.search.queryPlaceholder"}),value:m,onChange:R=>te(R.target.value),onKeyPress:O,disabled:N})]}),e.jsxs(D,{onClick:I,disabled:!m.trim()||N,className:"w-full",children:[e.jsx(we,{className:T("w-4 h-4 mr-2",N&&"animate-spin")}),s(N?{id:"codexlens.search.searching"}:{id:"codexlens.search.button"})]}),b&&!N&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"text-sm font-medium",children:s({id:"codexlens.search.results"})}),e.jsx("span",{className:"text-xs text-muted-foreground",children:de()})]}),a==="symbol"&&v.data&&(v.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(v.data.symbols,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:v.data.error||s({id:"common.error"})})),a==="search"&&y.data&&(y.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(y.data.results,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:y.data.error||s({id:"common.error"})})),a==="search_files"&&g.data&&(g.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(g.data.files,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:g.data.error||s({id:"common.error"})})),a==="semantic"&&L.data&&(L.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(L.data.results,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:L.data.error||s({id:"common.error"})}))]})]}):e.jsx("div",{className:"flex items-center justify-center p-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx(we,{className:"w-12 h-12 mx-auto text-muted-foreground/50 mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:s({id:"codexlens.search.notInstalled.title"})}),e.jsx("p",{className:"text-muted-foreground",children:s({id:"codexlens.search.notInstalled.description"})})]})})}function Pn({open:t,onOpenChange:s,onSuccess:a}){const{formatMessage:n}=z(),{success:c,error:i}=X(),{installSemantic:l,isInstallingSemantic:r}=We(),[d,o]=h.useState("cpu"),x=[{value:"cpu",label:n({id:"codexlens.semantic.gpu.cpu"}),description:n({id:"codexlens.semantic.gpu.cpuDesc"}),icon:e.jsx(Ue,{className:"w-5 h-5"})},{value:"directml",label:n({id:"codexlens.semantic.gpu.directml"}),description:n({id:"codexlens.semantic.gpu.directmlDesc"}),icon:e.jsx(yt,{className:"w-5 h-5"}),recommended:!0},{value:"cuda",label:n({id:"codexlens.semantic.gpu.cuda"}),description:n({id:"codexlens.semantic.gpu.cudaDesc"}),icon:e.jsx(ue,{className:"w-5 h-5"})}],j=async()=>{try{const m=await l(d);if(m.success)c(n({id:"codexlens.semantic.installSuccess"}),m.message||n({id:"codexlens.semantic.installSuccessDesc"},{mode:d})),a==null||a(),s(!1);else throw new Error(m.message||"Installation failed")}catch(m){i(n({id:"codexlens.semantic.installFailed"}),m instanceof Error?m.message:n({id:"codexlens.semantic.unknownError"}))}};return e.jsx(rs,{open:t,onOpenChange:s,children:e.jsxs(ls,{className:"max-w-2xl",children:[e.jsxs(cs,{children:[e.jsxs(ds,{className:"flex items-center gap-2",children:[e.jsx(ue,{className:"w-5 h-5 text-primary"}),n({id:"codexlens.semantic.installTitle"})]}),e.jsx(os,{children:n({id:"codexlens.semantic.installDescription"})})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsx(C,{className:"bg-muted/50 border-muted",children:e.jsxs(Z,{className:"p-4 flex items-start gap-3",children:[e.jsx(Ne,{className:"w-5 h-5 text-info mt-0.5 flex-shrink-0"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:n({id:"codexlens.semantic.installInfo"})})]})}),e.jsx(bt,{value:d,onValueChange:m=>o(m),children:e.jsx("div",{className:"grid grid-cols-1 gap-3",children:x.map(m=>e.jsx(C,{className:T("cursor-pointer transition-colors hover:bg-accent/50",d===m.value&&"border-primary bg-accent"),children:e.jsx(Z,{className:"p-4",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(Et,{value:m.value,id:`gpu-mode-${m.value}`,className:"mt-1"}),e.jsxs("div",{className:"flex items-start gap-3 flex-1",children:[e.jsx("div",{className:T("p-2 rounded-lg",d===m.value?"bg-primary/20 text-primary":"bg-muted text-muted-foreground"),children:m.icon}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:`gpu-mode-${m.value}`,className:"font-medium cursor-pointer",children:m.label}),m.recommended&&e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-primary/10 text-primary",children:n({id:"codexlens.semantic.recommended"})})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:m.description})]})]})]})})},m.value))})})]}),e.jsxs(xs,{children:[e.jsx(D,{variant:"outline",onClick:()=>s(!1),disabled:r,children:n({id:"common.actions.cancel"})}),e.jsx(D,{onClick:j,disabled:r,children:r?e.jsxs(e.Fragment,{children:[e.jsx(ue,{className:"w-4 h-4 mr-2 animate-pulse"}),n({id:"codexlens.semantic.installing"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Xe,{className:"w-4 h-4 mr-2"}),n({id:"codexlens.semantic.install"})]})})]})]})})}const Ee=[{progress:10,messageId:"codexlens.install.stage.creatingVenv"},{progress:30,messageId:"codexlens.install.stage.installingPip"},{progress:50,messageId:"codexlens.install.stage.installingPackage"},{progress:70,messageId:"codexlens.install.stage.settingUpDeps"},{progress:90,messageId:"codexlens.install.stage.finalizing"}],Tn=1500,Rn=[{labelId:"codexlens.install.pythonVenv",descId:"codexlens.install.pythonVenvDesc"},{labelId:"codexlens.install.codexlensPackage",descId:"codexlens.install.codexlensPackageDesc"},{labelId:"codexlens.install.sqliteFts",descId:"codexlens.install.sqliteFtsDesc"}];function On({open:t,onOpenChange:s,onInstall:a,onSuccess:n}){const{formatMessage:c}=z(),[i,l]=h.useState(!1),[r,d]=h.useState(0),[o,x]=h.useState(""),[j,m]=h.useState(!1),E=h.useRef(null),b=h.useCallback(()=>{E.current&&(clearInterval(E.current),E.current=null)},[]);h.useEffect(()=>{t||(l(!1),d(0),x(""),m(!1),b())},[t,b]),h.useEffect(()=>()=>b(),[b]);const S=async()=>{l(!0),d(0),m(!1);let w=0;x(c({id:Ee[0].messageId})),d(Ee[0].progress),w=1,E.current=setInterval(()=>{w<Ee.length&&(x(c({id:Ee[w].messageId})),d(Ee[w].progress),w++)},Tn);try{const P=await a();b(),P.success?(d(100),x(c({id:"codexlens.install.stage.complete"})),m(!0),setTimeout(()=>{s(!1),n==null||n()},1200)):(l(!1),d(0),x(""))}catch{b(),l(!1),d(0),x("")}};return e.jsx(rs,{open:t,onOpenChange:i?void 0:s,children:e.jsxs(ls,{className:"max-w-lg",onPointerDownOutside:i?w=>w.preventDefault():void 0,children:[e.jsxs(cs,{children:[e.jsxs(ds,{className:"flex items-center gap-2",children:[e.jsx(De,{className:"w-5 h-5 text-primary"}),c({id:"codexlens.install.title"})]}),e.jsx(os,{children:c({id:"codexlens.install.description"})})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium mb-2",children:c({id:"codexlens.install.checklist"})}),e.jsx("ul",{className:"space-y-2",children:Rn.map(w=>e.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[e.jsx(Ye,{className:"w-4 h-4 text-green-500 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:c({id:w.labelId})})," - ",c({id:w.descId})]})]},w.labelId))})]}),e.jsx(C,{className:"bg-primary/5 border-primary/20",children:e.jsxs(Z,{className:"p-3 flex items-start gap-2",children:[e.jsx(Ct,{className:"w-4 h-4 text-primary mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground",children:c({id:"codexlens.install.location"})}),e.jsx("p",{className:"mt-1",children:e.jsx("code",{className:"bg-muted px-1.5 py-0.5 rounded text-xs",children:c({id:"codexlens.install.locationPath"})})}),e.jsx("p",{className:"mt-1",children:c({id:"codexlens.install.timeEstimate"})})]})]})}),i&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[j?e.jsx(Ye,{className:"w-5 h-5 text-green-500"}):e.jsx(Le,{className:"w-5 h-5 text-primary animate-spin"}),e.jsx("span",{className:"text-sm",children:o})]}),e.jsx(qe,{value:r,className:"h-2"})]})]}),e.jsxs(xs,{children:[e.jsx(D,{variant:"outline",onClick:()=>s(!1),disabled:i,children:c({id:"common.actions.cancel"})}),e.jsx(D,{onClick:S,disabled:i,children:i?e.jsxs(e.Fragment,{children:[e.jsx(Le,{className:"w-4 h-4 mr-2 animate-spin"}),c({id:"codexlens.install.installing"})]}):e.jsxs(e.Fragment,{children:[e.jsx(De,{className:"w-4 h-4 mr-2"}),c({id:"codexlens.install.installNow"})]})})]})]})})}function Jn(){const{formatMessage:t}=z(),[s,a]=h.useState("overview"),[n,c]=h.useState(!1),[i,l]=h.useState(!1),[r,d]=h.useState(!1),{installed:o,status:x,config:j,semantic:m,isLoading:E,isFetching:b,refetch:S}=Wt(),{bootstrap:w,isBootstrapping:P,uninstall:y,isUninstalling:g}=We(),v=()=>{S()},L=()=>{d(!0)},N=async()=>await w(),I=async()=>{(await y()).success&&S(),c(!1)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-foreground flex items-center gap-2",children:[e.jsx(is,{className:"w-6 h-6 text-primary"}),t({id:"codexlens.title"})]}),e.jsx("p",{className:"text-muted-foreground mt-1",children:t({id:"codexlens.description"})})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(D,{variant:"outline",onClick:v,disabled:b,children:[e.jsx(he,{className:T("w-4 h-4 mr-2",b&&"animate-spin")}),t({id:"common.actions.refresh"})]}),o?e.jsxs(e.Fragment,{children:[e.jsxs(D,{variant:"outline",onClick:()=>l(!0),disabled:!(m!=null&&m.available),children:[e.jsx(ue,{className:"w-4 h-4 mr-2"}),t({id:"codexlens.semantic.install"})]}),e.jsxs(wt,{open:n,onOpenChange:c,children:[e.jsx(_t,{asChild:!0,children:e.jsxs(D,{variant:"destructive",disabled:g,children:[e.jsx(as,{className:T("w-4 h-4 mr-2",g&&"animate-spin")}),t(g?{id:"codexlens.uninstalling"}:{id:"codexlens.uninstall"})]})}),e.jsxs(Lt,{children:[e.jsxs(Dt,{children:[e.jsx(It,{children:t({id:"codexlens.confirmUninstallTitle"})}),e.jsx(kt,{children:t({id:"codexlens.confirmUninstall"})})]}),e.jsxs(Mt,{children:[e.jsx(At,{disabled:g,children:t({id:"common.actions.cancel"})}),e.jsx(Pt,{onClick:I,disabled:g,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:t(g?{id:"codexlens.uninstalling"}:{id:"common.actions.confirm"})})]})]})]})]}):e.jsxs(D,{onClick:L,disabled:P,children:[e.jsx(De,{className:T("w-4 h-4 mr-2",P&&"animate-spin")}),t(P?{id:"codexlens.bootstrapping"}:{id:"codexlens.bootstrap"})]})]})]}),!o&&!E&&e.jsx(C,{className:"p-4 bg-warning/10 border-warning/20",children:e.jsx("p",{className:"text-sm text-warning-foreground",children:t({id:"codexlens.notInstalled"})})}),e.jsx(St,{value:s,onValueChange:a,tabs:[{value:"overview",label:t({id:"codexlens.tabs.overview"})},{value:"settings",label:t({id:"codexlens.tabs.settings"})},{value:"models",label:t({id:"codexlens.tabs.models"})},{value:"search",label:t({id:"codexlens.tabs.search"})},{value:"advanced",label:t({id:"codexlens.tabs.advanced"})}]}),s==="overview"&&e.jsx("div",{className:"mt-4",children:e.jsx(pn,{installed:o,status:x,config:j,isLoading:E,onRefresh:v})}),s==="settings"&&e.jsx("div",{className:"mt-4",children:e.jsx(En,{enabled:o})}),s==="models"&&e.jsx("div",{className:"mt-4",children:e.jsx(Mn,{installed:o})}),s==="search"&&e.jsx("div",{className:"mt-4",children:e.jsx(An,{enabled:o})}),s==="advanced"&&e.jsx("div",{className:"mt-4",children:e.jsx(wn,{enabled:o})}),e.jsx(Pn,{open:i,onOpenChange:l,onSuccess:()=>S()}),e.jsx(On,{open:r,onOpenChange:d,onInstall:N,onSuccess:()=>S()})]})}export{Jn as CodexLensManagerPage,Jn as default};
36
- //# sourceMappingURL=CodexLensManagerPage-Du_VAJtC.js.map
35
+ package-lock.json`}),className:T("min-h-[220px] font-mono text-sm",k.extensionFilters&&"border-destructive focus-visible:ring-destructive"),disabled:be||g}),k.extensionFilters&&e.jsx("p",{className:"text-sm text-destructive",children:k.extensionFilters}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.advanced.extensionFiltersHint",defaultMessage:"Use this for generated or low-value files that should stay out of the index."})})]})]}),e.jsxs("div",{className:"grid gap-3 rounded-md border border-border/60 bg-muted/30 p-3 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-foreground",children:s({id:"codexlens.advanced.defaultIgnorePatterns",defaultMessage:"Default directory filters"})}),e.jsxs("div",{className:"mt-2 flex flex-wrap gap-2",children:[ae.slice(0,6).map(u=>e.jsx(q,{variant:"secondary",className:"font-mono text-xs",children:u},u)),ae.length>6&&e.jsxs(q,{variant:"outline",className:"text-xs",children:["+",ae.length-6]})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-foreground",children:s({id:"codexlens.advanced.defaultExtensionFilters",defaultMessage:"Default file filters"})}),e.jsxs("div",{className:"mt-2 flex flex-wrap gap-2",children:[Q.slice(0,6).map(u=>e.jsx(q,{variant:"secondary",className:"font-mono text-xs",children:u},u)),Q.length>6&&e.jsxs(q,{variant:"outline",className:"text-xs",children:["+",Q.length-6]})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(D,{onClick:_s,disabled:be||g||!te,children:[e.jsx(Fe,{className:T("w-4 h-4 mr-2",g&&"animate-spin")}),s(g?{id:"codexlens.advanced.saving",defaultMessage:"Saving..."}:{id:"codexlens.advanced.saveFilters",defaultMessage:"Save filters"})]}),e.jsxs(D,{variant:"outline",onClick:Ls,disabled:be||!te,children:[e.jsx(he,{className:"w-4 h-4 mr-2"}),s({id:"codexlens.advanced.reset",defaultMessage:"Reset"})]}),e.jsx(D,{variant:"outline",onClick:Ds,disabled:be||g,children:s({id:"codexlens.advanced.restoreDefaults",defaultMessage:"Restore defaults"})})]})]})]}),e.jsxs(C,{className:"p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ns,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:s({id:"codexlens.advanced.envEditor"})})]}),e.jsxs(q,{variant:"outline",className:"text-xs",children:[s({id:"codexlens.advanced.envFile"}),": .env"]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"env-input",children:s({id:"codexlens.advanced.envContent"})}),e.jsx(Oe,{id:"env-input",value:v,onChange:u=>$(u.target.value),placeholder:s({id:"codexlens.advanced.envPlaceholder"}),className:T("min-h-[300px] font-mono text-sm",k.env&&"border-destructive focus-visible:ring-destructive"),disabled:Ae}),k.env&&e.jsx("p",{className:"text-sm text-destructive",children:k.env}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s({id:"codexlens.advanced.envHint"})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(D,{onClick:Ss,disabled:Ae||P||!le,children:[e.jsx(Fe,{className:T("w-4 h-4 mr-2",P&&"animate-spin")}),s(P?{id:"codexlens.advanced.saving"}:{id:"codexlens.advanced.save"})]}),e.jsxs(D,{variant:"outline",onClick:ws,disabled:Ae||!le,children:[e.jsx(he,{className:"w-4 h-4 mr-2"}),s({id:"codexlens.advanced.reset"})]})]})]})]}),e.jsxs(C,{className:"p-4 bg-info/10 border-info/20",children:[e.jsx("h4",{className:"text-sm font-medium text-info-foreground mb-2",children:s({id:"codexlens.advanced.helpTitle"})}),e.jsxs("ul",{className:"text-xs text-info-foreground/80 space-y-1",children:[e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpComment"})]}),e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpFormat"})]}),e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpQuotes"})]}),e.jsxs("li",{children:["• ",s({id:"codexlens.advanced.helpRestart"})]})]})]})]})}function _n(t){return t==="embedding"?"default":"secondary"}function Ln(t){return t||"-"}function Dn({model:t,isDownloading:s=!1,downloadProgress:a=0,isDeleting:n=!1,onDownload:c,onDelete:i,onCancelDownload:l}){const{formatMessage:r}=z(),d=()=>{c(t.profile)},o=()=>{confirm(r({id:"codexlens.models.deleteConfirm"},{modelName:t.name}))&&i(t.profile)};return e.jsx(C,{className:T("overflow-hidden hover-glow",!t.installed&&"opacity-80"),children:e.jsxs("div",{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx("div",{className:T("p-2 rounded-lg flex-shrink-0",t.installed?"bg-success/10":"bg-muted"),children:t.installed?e.jsx(qt,{className:"w-4 h-4 text-success"}):e.jsx(Ie,{className:"w-4 h-4 text-muted-foreground"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:t.name}),e.jsx(q,{variant:_n(t.type),className:"text-xs flex-shrink-0",children:t.type}),e.jsx(q,{variant:t.installed?"success":"outline",className:"text-xs flex-shrink-0",children:t.installed?r({id:"codexlens.models.status.downloaded"}):r({id:"codexlens.models.status.available"})})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-1 text-xs text-muted-foreground",children:[t.dimensions&&e.jsxs("span",{children:[t.dimensions,"d"]}),e.jsx("span",{children:Ln(t.size)}),t.recommended&&e.jsx(q,{variant:"success",className:"text-[10px] px-1 py-0",children:"Rec"})]}),t.description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t.description})]})]}),e.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:s?e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 text-destructive hover:text-destructive hover:bg-destructive/10",onClick:l,title:r({id:"codexlens.models.actions.cancel"}),children:e.jsx(ss,{className:"w-4 h-4"})}):t.installed?e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 text-destructive hover:text-destructive hover:bg-destructive/10",onClick:o,disabled:n,title:r({id:"codexlens.models.actions.delete"}),children:n?e.jsx(Le,{className:"w-4 h-4 animate-spin"}):e.jsx(as,{className:"w-4 h-4"})}):e.jsxs(D,{variant:"ghost",size:"sm",className:"h-8 px-2",onClick:d,title:r({id:"codexlens.models.actions.download"}),children:[e.jsx(De,{className:"w-4 h-4 mr-1"}),e.jsx("span",{className:"text-xs",children:r({id:"codexlens.models.actions.download"})})]})})]}),s&&e.jsxs("div",{className:"mt-3 space-y-1",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:r({id:"codexlens.models.downloading"})}),e.jsxs("span",{className:"font-medium",children:[a,"%"]})]}),e.jsx(qe,{value:a,className:"h-2"})]})]})})}function In({isDownloading:t,onDownload:s}){const{formatMessage:a}=z(),[n,c]=h.useState(""),[i,l]=h.useState("embedding"),r=d=>{d.preventDefault(),n.trim()&&(s(n.trim(),i),c(""))};return e.jsxs(C,{className:"p-4 bg-primary/5 border-primary/20",children:[e.jsxs("h3",{className:"text-sm font-medium text-foreground mb-3 flex items-center gap-2",children:[e.jsx(Ie,{className:"w-4 h-4 text-primary"}),a({id:"codexlens.models.custom.title"})]}),e.jsxs("form",{onSubmit:r,className:"space-y-3",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ye,{placeholder:a({id:"codexlens.models.custom.placeholder"}),value:n,onChange:d=>c(d.target.value),disabled:t,className:"flex-1"}),e.jsxs("select",{value:i,onChange:d=>l(d.target.value),disabled:t,className:"px-3 py-2 text-sm rounded-md border border-input bg-background",children:[e.jsx("option",{value:"embedding",children:a({id:"codexlens.models.types.embedding"})}),e.jsx("option",{value:"reranker",children:a({id:"codexlens.models.types.reranker"})})]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a({id:"codexlens.models.custom.description"})})]})]})}function kn(t,s,a){let n=t;if(s==="embedding"?n=n.filter(c=>c.type==="embedding"):s==="reranker"?n=n.filter(c=>c.type==="reranker"):s==="downloaded"?n=n.filter(c=>c.installed):s==="available"&&(n=n.filter(c=>!c.installed)),a.trim()){const c=a.toLowerCase();n=n.filter(i=>{var l;return i.name.toLowerCase().includes(c)||i.profile.toLowerCase().includes(c)||(((l=i.description)==null?void 0:l.toLowerCase().includes(c))??!1)})}return n}function Mn({installed:t=!1}){const{formatMessage:s}=z(),[a,n]=h.useState(""),[c,i]=h.useState("all"),[l,r]=h.useState(null),[d,o]=h.useState(0),{models:x,isLoading:j,error:m,refetch:E}=gs({enabled:t}),{downloadModel:b,downloadCustomModel:S,deleteModel:w,isDownloading:P,isDeleting:y}=We(),g=h.useMemo(()=>x?kn(x,c,a):[],[x,c,a]),v=h.useMemo(()=>x?{total:x.length,embedding:x.filter(f=>f.type==="embedding").length,reranker:x.filter(f=>f.type==="reranker").length,downloaded:x.filter(f=>f.installed).length,available:x.filter(f=>!f.installed).length}:null,[x]),L=async f=>{r(f),o(0);const k=setInterval(()=>{o(A=>A>=95?(clearInterval(k),95):A+5)},500);try{(await b(f)).success?(o(100),setTimeout(()=>{r(null),o(0),E()},500)):(r(null),o(0))}catch{r(null),o(0)}finally{clearInterval(k)}},N=async(f,k)=>{try{(await S(f,k)).success&&E()}catch(A){console.error("Failed to download custom model:",A)}},I=async f=>{(await w(f)).success&&E()},R=[{type:"all",label:s({id:"codexlens.models.filters.all"}),count:v==null?void 0:v.total},{type:"embedding",label:s({id:"codexlens.models.types.embedding"}),count:v==null?void 0:v.embedding},{type:"reranker",label:s({id:"codexlens.models.types.reranker"}),count:v==null?void 0:v.reranker},{type:"downloaded",label:s({id:"codexlens.models.status.downloaded"}),count:v==null?void 0:v.downloaded},{type:"available",label:s({id:"codexlens.models.status.available"}),count:v==null?void 0:v.available}];return t?e.jsxs("div",{className:"space-y-4",children:[e.jsx(C,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[e.jsx(we,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(ye,{placeholder:s({id:"codexlens.models.searchPlaceholder"}),value:a,onChange:f=>n(f.target.value),className:"pl-9"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>E(),disabled:j,children:[e.jsx(he,{className:T("w-4 h-4 mr-1",j&&"animate-spin")}),s({id:"common.actions.refresh"})]})})]})}),e.jsxs(C,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(ms,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:s({id:"codexlens.models.filters.label"})})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:R.map(({type:f,label:k,count:A})=>e.jsxs(D,{variant:c===f?"default":"outline",size:"sm",onClick:()=>i(f),className:"relative",children:[k,A!==void 0&&e.jsx(q,{variant:c===f?"secondary":"default",className:"ml-2",children:A})]},f))})]}),e.jsx(In,{isDownloading:P,onDownload:N}),m?e.jsxs(C,{className:"p-8 text-center",children:[e.jsx(Ne,{className:"w-12 h-12 mx-auto text-destructive/50 mb-3"}),e.jsx("h3",{className:"text-sm font-medium text-destructive-foreground mb-1",children:s({id:"codexlens.models.error.title"})}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:m.message||s({id:"codexlens.models.error.description"})}),e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>E(),children:[e.jsx(he,{className:"w-3 h-3 mr-1"}),s({id:"common.actions.retry"})]})]}):j?e.jsx(C,{className:"p-8 text-center",children:e.jsx("p",{className:"text-muted-foreground",children:s({id:"common.actions.loading"})})}):g.length===0?e.jsxs(C,{className:"p-8 text-center",children:[e.jsx(Ie,{className:"w-12 h-12 mx-auto text-muted-foreground/30 mb-3"}),e.jsx("h3",{className:"text-sm font-medium text-foreground mb-1",children:x&&x.length>0?s({id:"codexlens.models.empty.filtered"}):s({id:"codexlens.models.empty.title"})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:x&&x.length>0?s({id:"codexlens.models.empty.filteredDesc"}):s({id:"codexlens.models.empty.description"})})]}):e.jsx("div",{className:"space-y-3",children:g.map(f=>e.jsx(Dn,{model:f,isDownloading:l===f.profile,downloadProgress:d,isDeleting:y&&l!==f.profile,onDownload:L,onDelete:I,onCancelDownload:()=>{r(null),o(0)}},f.profile))})]}):e.jsxs(C,{className:"p-12 text-center",children:[e.jsx(Ie,{className:"w-16 h-16 mx-auto text-muted-foreground/30 mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:s({id:"codexlens.models.notInstalled.title"})}),e.jsx("p",{className:"text-muted-foreground",children:s({id:"codexlens.models.notInstalled.description"})})]})}function An({enabled:t}){const{formatMessage:s}=z(),[a,n]=h.useState("search"),[c,i]=h.useState("dense_rerank"),[l,r]=h.useState("fusion"),[d,o]=h.useState("rrf"),[x,j]=h.useState("precomputed"),[m,E]=h.useState(""),[b,S]=h.useState(!1),w=ys({enabled:t}),P={query:m,limit:20,mode:a!=="symbol"&&a!=="semantic"?c:void 0,max_content_length:200,extra_files_count:10},y=nn(P,{enabled:t&&b&&a==="search"&&m.trim().length>0}),g=an(P,{enabled:t&&b&&a==="search_files"&&m.trim().length>0}),v=rn({query:m,limit:20},{enabled:t&&b&&a==="symbol"&&m.trim().length>0}),L=cn({query:m,mode:l,fusion_strategy:l==="fusion"?d:void 0,staged_stage2_mode:l==="fusion"&&d==="staged"?x:void 0,limit:20,include_match_reason:!0},{enabled:t&&b&&a==="semantic"&&m.trim().length>0}),N=a==="search"?y.isLoading:a==="search_files"?g.isLoading:a==="symbol"?v.isLoading:L.isLoading,I=()=>{m.trim()&&S(!0)},R=O=>{O.key==="Enter"&&I()},f=O=>{n(O),S(!1)},k=O=>{i(O),S(!1)},A=O=>{r(O),S(!1)},le=O=>{o(O),S(!1)},ce=O=>{j(O),S(!1)},te=O=>{E(O),S(!1)},de=()=>{var O,ne,oe,xe,ae,Q,M;return a==="symbol"?(O=v.data)!=null&&O.success?`${((ne=v.data.symbols)==null?void 0:ne.length)??0} ${s({id:"codexlens.search.resultsCount"})}`:"":a==="search"?(oe=y.data)!=null&&oe.success?`${((xe=y.data.results)==null?void 0:xe.length)??0} ${s({id:"codexlens.search.resultsCount"})}`:"":a==="search_files"?(ae=g.data)!=null&&ae.success?`${((Q=g.data.files)==null?void 0:Q.length)??0} ${s({id:"codexlens.search.resultsCount"})}`:"":a==="semantic"&&(M=L.data)!=null&&M.success?`${L.data.count??0} ${s({id:"codexlens.search.resultsCount"})}`:""};return t?e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:[s({id:"codexlens.search.lspStatus"}),":"]}),w.isLoading?e.jsx("span",{className:"text-muted-foreground",children:"..."}):w.available?e.jsxs("span",{className:"flex items-center gap-1 text-green-600 dark:text-green-400",children:[e.jsx(jt,{className:"w-3.5 h-3.5"}),s({id:"codexlens.search.lspAvailable"})]}):w.semanticAvailable?e.jsxs("span",{className:"flex items-center gap-1 text-yellow-600 dark:text-yellow-400",children:[e.jsx(Re,{className:"w-3.5 h-3.5"}),s({id:"codexlens.search.lspNoVector"})]}):e.jsxs("span",{className:"flex items-center gap-1 text-yellow-600 dark:text-yellow-400",children:[e.jsx(Re,{className:"w-3.5 h-3.5"}),s({id:"codexlens.search.lspNoSemantic"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.type"})}),e.jsxs(pe,{value:a,onValueChange:f,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"search",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(we,{className:"w-4 h-4"}),s({id:"codexlens.search.content"})]})}),e.jsx(F,{value:"search_files",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ns,{className:"w-4 h-4"}),s({id:"codexlens.search.files"})]})}),e.jsx(F,{value:"symbol",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Nt,{className:"w-4 h-4"}),s({id:"codexlens.search.symbol"})]})}),e.jsx(F,{value:"semantic",disabled:!w.available,children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(is,{className:"w-4 h-4"}),s({id:"codexlens.search.semantic"})]})})]})]})]}),(a==="search"||a==="search_files")&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.mode"})}),e.jsxs(pe,{value:c,onValueChange:k,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"dense_rerank",children:s({id:"codexlens.search.mode.semantic"})}),e.jsx(F,{value:"fts",children:s({id:"codexlens.search.mode.exact"})}),e.jsx(F,{value:"fuzzy",children:s({id:"codexlens.search.mode.fuzzy"})})]})]})]}),a==="semantic"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.semanticMode"})}),e.jsxs(pe,{value:l,onValueChange:A,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"fusion",children:s({id:"codexlens.search.semanticMode.fusion"})}),e.jsx(F,{value:"vector",children:s({id:"codexlens.search.semanticMode.vector"})}),e.jsx(F,{value:"structural",children:s({id:"codexlens.search.semanticMode.structural"})})]})]})]})]}),a==="semantic"&&l==="fusion"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.fusionStrategy"})}),e.jsxs(pe,{value:d,onValueChange:le,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"rrf",children:s({id:"codexlens.search.fusionStrategy.rrf"})}),e.jsx(F,{value:"dense_rerank",children:s({id:"codexlens.search.fusionStrategy.dense_rerank"})}),e.jsx(F,{value:"binary",children:s({id:"codexlens.search.fusionStrategy.binary"})}),e.jsx(F,{value:"hybrid",children:s({id:"codexlens.search.fusionStrategy.hybrid"})}),e.jsx(F,{value:"staged",children:s({id:"codexlens.search.fusionStrategy.staged"})})]})]})]}),a==="semantic"&&l==="fusion"&&d==="staged"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:s({id:"codexlens.search.stagedStage2Mode"})}),e.jsxs(pe,{value:x,onValueChange:ce,children:[e.jsx(fe,{children:e.jsx(ve,{})}),e.jsxs(je,{children:[e.jsx(F,{value:"precomputed",children:s({id:"codexlens.search.stagedStage2Mode.precomputed"})}),e.jsx(F,{value:"realtime",children:s({id:"codexlens.search.stagedStage2Mode.realtime"})}),e.jsx(F,{value:"static_global_graph",children:s({id:"codexlens.search.stagedStage2Mode.static_global_graph"})})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"search-query",children:s({id:"codexlens.search.query"})}),e.jsx(ye,{id:"search-query",placeholder:s({id:"codexlens.search.queryPlaceholder"}),value:m,onChange:O=>te(O.target.value),onKeyPress:R,disabled:N})]}),e.jsxs(D,{onClick:I,disabled:!m.trim()||N,className:"w-full",children:[e.jsx(we,{className:T("w-4 h-4 mr-2",N&&"animate-spin")}),s(N?{id:"codexlens.search.searching"}:{id:"codexlens.search.button"})]}),b&&!N&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"text-sm font-medium",children:s({id:"codexlens.search.results"})}),e.jsx("span",{className:"text-xs text-muted-foreground",children:de()})]}),a==="symbol"&&v.data&&(v.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(v.data.symbols,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:v.data.error||s({id:"common.error"})})),a==="search"&&y.data&&(y.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(y.data.results,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:y.data.error||s({id:"common.error"})})),a==="search_files"&&g.data&&(g.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(g.data.files,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:g.data.error||s({id:"common.error"})})),a==="semantic"&&L.data&&(L.data.success?e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4",children:e.jsx("pre",{className:"text-xs overflow-auto max-h-96",children:JSON.stringify(L.data.results,null,2)})}):e.jsx("div",{className:"text-sm text-destructive",children:L.data.error||s({id:"common.error"})}))]})]}):e.jsx("div",{className:"flex items-center justify-center p-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx(we,{className:"w-12 h-12 mx-auto text-muted-foreground/50 mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:s({id:"codexlens.search.notInstalled.title"})}),e.jsx("p",{className:"text-muted-foreground",children:s({id:"codexlens.search.notInstalled.description"})})]})})}function Pn({open:t,onOpenChange:s,onSuccess:a}){const{formatMessage:n}=z(),{success:c,error:i}=X(),{installSemantic:l,isInstallingSemantic:r}=We(),[d,o]=h.useState("cpu"),x=[{value:"cpu",label:n({id:"codexlens.semantic.gpu.cpu"}),description:n({id:"codexlens.semantic.gpu.cpuDesc"}),icon:e.jsx(Ue,{className:"w-5 h-5"})},{value:"directml",label:n({id:"codexlens.semantic.gpu.directml"}),description:n({id:"codexlens.semantic.gpu.directmlDesc"}),icon:e.jsx(yt,{className:"w-5 h-5"}),recommended:!0},{value:"cuda",label:n({id:"codexlens.semantic.gpu.cuda"}),description:n({id:"codexlens.semantic.gpu.cudaDesc"}),icon:e.jsx(ue,{className:"w-5 h-5"})}],j=async()=>{try{const m=await l(d);if(m.success)c(n({id:"codexlens.semantic.installSuccess"}),m.message||n({id:"codexlens.semantic.installSuccessDesc"},{mode:d})),a==null||a(),s(!1);else throw new Error(m.message||"Installation failed")}catch(m){i(n({id:"codexlens.semantic.installFailed"}),m instanceof Error?m.message:n({id:"codexlens.semantic.unknownError"}))}};return e.jsx(rs,{open:t,onOpenChange:s,children:e.jsxs(ls,{className:"max-w-2xl",children:[e.jsxs(cs,{children:[e.jsxs(ds,{className:"flex items-center gap-2",children:[e.jsx(ue,{className:"w-5 h-5 text-primary"}),n({id:"codexlens.semantic.installTitle"})]}),e.jsx(os,{children:n({id:"codexlens.semantic.installDescription"})})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsx(C,{className:"bg-muted/50 border-muted",children:e.jsxs(Z,{className:"p-4 flex items-start gap-3",children:[e.jsx(Ne,{className:"w-5 h-5 text-info mt-0.5 flex-shrink-0"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:n({id:"codexlens.semantic.installInfo"})})]})}),e.jsx(bt,{value:d,onValueChange:m=>o(m),children:e.jsx("div",{className:"grid grid-cols-1 gap-3",children:x.map(m=>e.jsx(C,{className:T("cursor-pointer transition-colors hover:bg-accent/50",d===m.value&&"border-primary bg-accent"),children:e.jsx(Z,{className:"p-4",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(Et,{value:m.value,id:`gpu-mode-${m.value}`,className:"mt-1"}),e.jsxs("div",{className:"flex items-start gap-3 flex-1",children:[e.jsx("div",{className:T("p-2 rounded-lg",d===m.value?"bg-primary/20 text-primary":"bg-muted text-muted-foreground"),children:m.icon}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:`gpu-mode-${m.value}`,className:"font-medium cursor-pointer",children:m.label}),m.recommended&&e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-primary/10 text-primary",children:n({id:"codexlens.semantic.recommended"})})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:m.description})]})]})]})})},m.value))})})]}),e.jsxs(xs,{children:[e.jsx(D,{variant:"outline",onClick:()=>s(!1),disabled:r,children:n({id:"common.actions.cancel"})}),e.jsx(D,{onClick:j,disabled:r,children:r?e.jsxs(e.Fragment,{children:[e.jsx(ue,{className:"w-4 h-4 mr-2 animate-pulse"}),n({id:"codexlens.semantic.installing"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Xe,{className:"w-4 h-4 mr-2"}),n({id:"codexlens.semantic.install"})]})})]})]})})}const Ee=[{progress:10,messageId:"codexlens.install.stage.creatingVenv"},{progress:30,messageId:"codexlens.install.stage.installingPip"},{progress:50,messageId:"codexlens.install.stage.installingPackage"},{progress:70,messageId:"codexlens.install.stage.settingUpDeps"},{progress:90,messageId:"codexlens.install.stage.finalizing"}],Tn=1500,On=[{labelId:"codexlens.install.pythonVenv",descId:"codexlens.install.pythonVenvDesc"},{labelId:"codexlens.install.codexlensPackage",descId:"codexlens.install.codexlensPackageDesc"},{labelId:"codexlens.install.sqliteFts",descId:"codexlens.install.sqliteFtsDesc"}];function Rn({open:t,onOpenChange:s,onInstall:a,onSuccess:n}){const{formatMessage:c}=z(),[i,l]=h.useState(!1),[r,d]=h.useState(0),[o,x]=h.useState(""),[j,m]=h.useState(!1),E=h.useRef(null),b=h.useCallback(()=>{E.current&&(clearInterval(E.current),E.current=null)},[]);h.useEffect(()=>{t||(l(!1),d(0),x(""),m(!1),b())},[t,b]),h.useEffect(()=>()=>b(),[b]);const S=async()=>{l(!0),d(0),m(!1);let w=0;x(c({id:Ee[0].messageId})),d(Ee[0].progress),w=1,E.current=setInterval(()=>{w<Ee.length&&(x(c({id:Ee[w].messageId})),d(Ee[w].progress),w++)},Tn);try{const P=await a();b(),P.success?(d(100),x(c({id:"codexlens.install.stage.complete"})),m(!0),setTimeout(()=>{s(!1),n==null||n()},1200)):(l(!1),d(0),x(""))}catch{b(),l(!1),d(0),x("")}};return e.jsx(rs,{open:t,onOpenChange:i?void 0:s,children:e.jsxs(ls,{className:"max-w-lg",onPointerDownOutside:i?w=>w.preventDefault():void 0,children:[e.jsxs(cs,{children:[e.jsxs(ds,{className:"flex items-center gap-2",children:[e.jsx(De,{className:"w-5 h-5 text-primary"}),c({id:"codexlens.install.title"})]}),e.jsx(os,{children:c({id:"codexlens.install.description"})})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium mb-2",children:c({id:"codexlens.install.checklist"})}),e.jsx("ul",{className:"space-y-2",children:On.map(w=>e.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[e.jsx(Ye,{className:"w-4 h-4 text-green-500 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:c({id:w.labelId})})," - ",c({id:w.descId})]})]},w.labelId))})]}),e.jsx(C,{className:"bg-primary/5 border-primary/20",children:e.jsxs(Z,{className:"p-3 flex items-start gap-2",children:[e.jsx(Ct,{className:"w-4 h-4 text-primary mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground",children:c({id:"codexlens.install.location"})}),e.jsx("p",{className:"mt-1",children:e.jsx("code",{className:"bg-muted px-1.5 py-0.5 rounded text-xs",children:c({id:"codexlens.install.locationPath"})})}),e.jsx("p",{className:"mt-1",children:c({id:"codexlens.install.timeEstimate"})})]})]})}),i&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[j?e.jsx(Ye,{className:"w-5 h-5 text-green-500"}):e.jsx(Le,{className:"w-5 h-5 text-primary animate-spin"}),e.jsx("span",{className:"text-sm",children:o})]}),e.jsx(qe,{value:r,className:"h-2"})]})]}),e.jsxs(xs,{children:[e.jsx(D,{variant:"outline",onClick:()=>s(!1),disabled:i,children:c({id:"common.actions.cancel"})}),e.jsx(D,{onClick:S,disabled:i,children:i?e.jsxs(e.Fragment,{children:[e.jsx(Le,{className:"w-4 h-4 mr-2 animate-spin"}),c({id:"codexlens.install.installing"})]}):e.jsxs(e.Fragment,{children:[e.jsx(De,{className:"w-4 h-4 mr-2"}),c({id:"codexlens.install.installNow"})]})})]})]})})}function Jn(){const{formatMessage:t}=z(),[s,a]=h.useState("overview"),[n,c]=h.useState(!1),[i,l]=h.useState(!1),[r,d]=h.useState(!1),{installed:o,status:x,config:j,semantic:m,isLoading:E,isFetching:b,refetch:S}=Wt(),{bootstrap:w,isBootstrapping:P,uninstall:y,isUninstalling:g}=We(),v=()=>{S()},L=()=>{d(!0)},N=async()=>await w(),I=async()=>{(await y()).success&&S(),c(!1)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-foreground flex items-center gap-2",children:[e.jsx(is,{className:"w-6 h-6 text-primary"}),t({id:"codexlens.title"})]}),e.jsx("p",{className:"text-muted-foreground mt-1",children:t({id:"codexlens.description"})})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(D,{variant:"outline",onClick:v,disabled:b,children:[e.jsx(he,{className:T("w-4 h-4 mr-2",b&&"animate-spin")}),t({id:"common.actions.refresh"})]}),o?e.jsxs(e.Fragment,{children:[e.jsxs(D,{variant:"outline",onClick:()=>l(!0),disabled:!(m!=null&&m.available),children:[e.jsx(ue,{className:"w-4 h-4 mr-2"}),t({id:"codexlens.semantic.install"})]}),e.jsxs(wt,{open:n,onOpenChange:c,children:[e.jsx(_t,{asChild:!0,children:e.jsxs(D,{variant:"destructive",disabled:g,children:[e.jsx(as,{className:T("w-4 h-4 mr-2",g&&"animate-spin")}),t(g?{id:"codexlens.uninstalling"}:{id:"codexlens.uninstall"})]})}),e.jsxs(Lt,{children:[e.jsxs(Dt,{children:[e.jsx(It,{children:t({id:"codexlens.confirmUninstallTitle"})}),e.jsx(kt,{children:t({id:"codexlens.confirmUninstall"})})]}),e.jsxs(Mt,{children:[e.jsx(At,{disabled:g,children:t({id:"common.actions.cancel"})}),e.jsx(Pt,{onClick:I,disabled:g,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:t(g?{id:"codexlens.uninstalling"}:{id:"common.actions.confirm"})})]})]})]})]}):e.jsxs(D,{onClick:L,disabled:P,children:[e.jsx(De,{className:T("w-4 h-4 mr-2",P&&"animate-spin")}),t(P?{id:"codexlens.bootstrapping"}:{id:"codexlens.bootstrap"})]})]})]}),!o&&!E&&e.jsx(C,{className:"p-4 bg-warning/10 border-warning/20",children:e.jsx("p",{className:"text-sm text-warning-foreground",children:t({id:"codexlens.notInstalled"})})}),e.jsx(St,{value:s,onValueChange:a,tabs:[{value:"overview",label:t({id:"codexlens.tabs.overview"})},{value:"settings",label:t({id:"codexlens.tabs.settings"})},{value:"models",label:t({id:"codexlens.tabs.models"})},{value:"search",label:t({id:"codexlens.tabs.search"})},{value:"advanced",label:t({id:"codexlens.tabs.advanced"})}]}),s==="overview"&&e.jsx("div",{className:"mt-4",children:e.jsx(pn,{installed:o,status:x,config:j,isLoading:E,onRefresh:v})}),s==="settings"&&e.jsx("div",{className:"mt-4",children:e.jsx(En,{enabled:o})}),s==="models"&&e.jsx("div",{className:"mt-4",children:e.jsx(Mn,{installed:o})}),s==="search"&&e.jsx("div",{className:"mt-4",children:e.jsx(An,{enabled:o})}),s==="advanced"&&e.jsx("div",{className:"mt-4",children:e.jsx(wn,{enabled:o})}),e.jsx(Pn,{open:i,onOpenChange:l,onSuccess:()=>S()}),e.jsx(Rn,{open:r,onOpenChange:d,onInstall:N,onSuccess:()=>S()})]})}export{Jn as CodexLensManagerPage,Jn as default};
36
+ //# sourceMappingURL=CodexLensManagerPage-DUMzbrr9.js.map