@kaitranntt/ccs 7.66.1 → 7.67.0-dev.10

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 (365) hide show
  1. package/README.md +3 -1
  2. package/dist/api/services/index.d.ts +1 -0
  3. package/dist/api/services/index.d.ts.map +1 -1
  4. package/dist/api/services/index.js +3 -1
  5. package/dist/api/services/index.js.map +1 -1
  6. package/dist/api/services/local-runtime-readiness.d.ts +14 -0
  7. package/dist/api/services/local-runtime-readiness.d.ts.map +1 -0
  8. package/dist/api/services/local-runtime-readiness.js +89 -0
  9. package/dist/api/services/local-runtime-readiness.js.map +1 -0
  10. package/dist/ccs.js +68 -35
  11. package/dist/ccs.js.map +1 -1
  12. package/dist/cliproxy/accounts/types.d.ts +1 -1
  13. package/dist/cliproxy/accounts/types.d.ts.map +1 -1
  14. package/dist/cliproxy/auth/auth-types.d.ts +29 -6
  15. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  16. package/dist/cliproxy/auth/auth-types.js +58 -10
  17. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  18. package/dist/cliproxy/auth/oauth-handler.d.ts +6 -1
  19. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  20. package/dist/cliproxy/auth/oauth-handler.js +165 -45
  21. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  22. package/dist/cliproxy/auth/oauth-process.d.ts +26 -1
  23. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  24. package/dist/cliproxy/auth/oauth-process.js +314 -49
  25. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  26. package/dist/cliproxy/auth/token-manager.d.ts +9 -0
  27. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  28. package/dist/cliproxy/auth/token-manager.js +104 -58
  29. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  30. package/dist/cliproxy/auth-utils.d.ts +2 -1
  31. package/dist/cliproxy/auth-utils.d.ts.map +1 -1
  32. package/dist/cliproxy/auth-utils.js +32 -7
  33. package/dist/cliproxy/auth-utils.js.map +1 -1
  34. package/dist/cliproxy/catalog-cache.d.ts +9 -1
  35. package/dist/cliproxy/catalog-cache.d.ts.map +1 -1
  36. package/dist/cliproxy/catalog-cache.js +115 -29
  37. package/dist/cliproxy/catalog-cache.js.map +1 -1
  38. package/dist/cliproxy/catalog-routing.d.ts +12 -0
  39. package/dist/cliproxy/catalog-routing.d.ts.map +1 -0
  40. package/dist/cliproxy/catalog-routing.js +19 -0
  41. package/dist/cliproxy/catalog-routing.js.map +1 -0
  42. package/dist/cliproxy/codex-plan-compatibility.d.ts +0 -1
  43. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +1 -1
  44. package/dist/cliproxy/codex-plan-compatibility.js +3 -7
  45. package/dist/cliproxy/codex-plan-compatibility.js.map +1 -1
  46. package/dist/cliproxy/config/generator.d.ts +2 -1
  47. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  48. package/dist/cliproxy/config/generator.js +11 -1
  49. package/dist/cliproxy/config/generator.js.map +1 -1
  50. package/dist/cliproxy/executor/index.d.ts +5 -0
  51. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  52. package/dist/cliproxy/executor/index.js +119 -16
  53. package/dist/cliproxy/executor/index.js.map +1 -1
  54. package/dist/cliproxy/gemini-cli-quota-normalizer.js +1 -1
  55. package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +1 -1
  56. package/dist/cliproxy/index.d.ts +1 -1
  57. package/dist/cliproxy/index.d.ts.map +1 -1
  58. package/dist/cliproxy/index.js.map +1 -1
  59. package/dist/cliproxy/managed-model-prefixes.d.ts +7 -0
  60. package/dist/cliproxy/managed-model-prefixes.d.ts.map +1 -0
  61. package/dist/cliproxy/managed-model-prefixes.js +116 -0
  62. package/dist/cliproxy/managed-model-prefixes.js.map +1 -0
  63. package/dist/cliproxy/management-api-client.d.ts +9 -0
  64. package/dist/cliproxy/management-api-client.d.ts.map +1 -1
  65. package/dist/cliproxy/management-api-client.js +14 -0
  66. package/dist/cliproxy/management-api-client.js.map +1 -1
  67. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  68. package/dist/cliproxy/model-catalog.js +19 -4
  69. package/dist/cliproxy/model-catalog.js.map +1 -1
  70. package/dist/cliproxy/provider-entitlement-evidence.d.ts +17 -0
  71. package/dist/cliproxy/provider-entitlement-evidence.d.ts.map +1 -0
  72. package/dist/cliproxy/provider-entitlement-evidence.js +55 -0
  73. package/dist/cliproxy/provider-entitlement-evidence.js.map +1 -0
  74. package/dist/cliproxy/provider-entitlement-types.d.ts +16 -0
  75. package/dist/cliproxy/provider-entitlement-types.d.ts.map +1 -0
  76. package/dist/cliproxy/provider-entitlement-types.js +3 -0
  77. package/dist/cliproxy/provider-entitlement-types.js.map +1 -0
  78. package/dist/cliproxy/proxy-detector.d.ts.map +1 -1
  79. package/dist/cliproxy/proxy-detector.js +6 -2
  80. package/dist/cliproxy/proxy-detector.js.map +1 -1
  81. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +1 -1
  82. package/dist/cliproxy/quota-fetcher-gemini-cli.js +64 -19
  83. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +1 -1
  84. package/dist/cliproxy/quota-fetcher.d.ts +10 -0
  85. package/dist/cliproxy/quota-fetcher.d.ts.map +1 -1
  86. package/dist/cliproxy/quota-fetcher.js +116 -21
  87. package/dist/cliproxy/quota-fetcher.js.map +1 -1
  88. package/dist/cliproxy/quota-types.d.ts +3 -0
  89. package/dist/cliproxy/quota-types.d.ts.map +1 -1
  90. package/dist/cliproxy/routing-strategy-http.d.ts +6 -0
  91. package/dist/cliproxy/routing-strategy-http.d.ts.map +1 -0
  92. package/dist/cliproxy/routing-strategy-http.js +115 -0
  93. package/dist/cliproxy/routing-strategy-http.js.map +1 -0
  94. package/dist/cliproxy/routing-strategy.d.ts +18 -0
  95. package/dist/cliproxy/routing-strategy.d.ts.map +1 -0
  96. package/dist/cliproxy/routing-strategy.js +123 -0
  97. package/dist/cliproxy/routing-strategy.js.map +1 -0
  98. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  99. package/dist/cliproxy/services/variant-settings.js +43 -30
  100. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  101. package/dist/cliproxy/startup-lock.d.ts.map +1 -1
  102. package/dist/cliproxy/startup-lock.js +5 -1
  103. package/dist/cliproxy/startup-lock.js.map +1 -1
  104. package/dist/cliproxy/tool-sanitization-proxy.d.ts +1 -0
  105. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -1
  106. package/dist/cliproxy/tool-sanitization-proxy.js +6 -0
  107. package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -1
  108. package/dist/cliproxy/types.d.ts +7 -0
  109. package/dist/cliproxy/types.d.ts.map +1 -1
  110. package/dist/cliproxy/types.js.map +1 -1
  111. package/dist/commands/api-command/create-command.d.ts +3 -0
  112. package/dist/commands/api-command/create-command.d.ts.map +1 -1
  113. package/dist/commands/api-command/create-command.js +20 -6
  114. package/dist/commands/api-command/create-command.js.map +1 -1
  115. package/dist/commands/api-command/help.d.ts.map +1 -1
  116. package/dist/commands/api-command/help.js +1 -0
  117. package/dist/commands/api-command/help.js.map +1 -1
  118. package/dist/commands/cleanup-command.d.ts +1 -1
  119. package/dist/commands/cleanup-command.d.ts.map +1 -1
  120. package/dist/commands/cleanup-command.js +57 -34
  121. package/dist/commands/cleanup-command.js.map +1 -1
  122. package/dist/commands/cliproxy/catalog-subcommand.d.ts.map +1 -1
  123. package/dist/commands/cliproxy/catalog-subcommand.js +72 -44
  124. package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
  125. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  126. package/dist/commands/cliproxy/help-subcommand.js +6 -2
  127. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  128. package/dist/commands/cliproxy/index.d.ts.map +1 -1
  129. package/dist/commands/cliproxy/index.js +14 -0
  130. package/dist/commands/cliproxy/index.js.map +1 -1
  131. package/dist/commands/cliproxy/quota-subcommand.d.ts +2 -0
  132. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  133. package/dist/commands/cliproxy/quota-subcommand.js +8 -1
  134. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  135. package/dist/commands/cliproxy/routing-subcommand.d.ts +4 -0
  136. package/dist/commands/cliproxy/routing-subcommand.d.ts.map +1 -0
  137. package/dist/commands/cliproxy/routing-subcommand.js +68 -0
  138. package/dist/commands/cliproxy/routing-subcommand.js.map +1 -0
  139. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  140. package/dist/commands/cliproxy/variant-subcommand.js +44 -3
  141. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  142. package/dist/commands/command-catalog.d.ts +2 -2
  143. package/dist/commands/command-catalog.d.ts.map +1 -1
  144. package/dist/commands/command-catalog.js +3 -1
  145. package/dist/commands/command-catalog.js.map +1 -1
  146. package/dist/commands/completion-backend.d.ts.map +1 -1
  147. package/dist/commands/completion-backend.js +15 -1
  148. package/dist/commands/completion-backend.js.map +1 -1
  149. package/dist/commands/config-command.d.ts.map +1 -1
  150. package/dist/commands/config-command.js +23 -0
  151. package/dist/commands/config-command.js.map +1 -1
  152. package/dist/commands/docker/up-subcommand.js +1 -1
  153. package/dist/commands/docker/up-subcommand.js.map +1 -1
  154. package/dist/commands/help-command.d.ts.map +1 -1
  155. package/dist/commands/help-command.js +62 -1
  156. package/dist/commands/help-command.js.map +1 -1
  157. package/dist/commands/update-command.d.ts +20 -5
  158. package/dist/commands/update-command.d.ts.map +1 -1
  159. package/dist/commands/update-command.js +169 -119
  160. package/dist/commands/update-command.js.map +1 -1
  161. package/dist/config/unified-config-loader.d.ts +2 -1
  162. package/dist/config/unified-config-loader.d.ts.map +1 -1
  163. package/dist/config/unified-config-loader.js +37 -1
  164. package/dist/config/unified-config-loader.js.map +1 -1
  165. package/dist/config/unified-config-types.d.ts +29 -1
  166. package/dist/config/unified-config-types.d.ts.map +1 -1
  167. package/dist/config/unified-config-types.js +13 -1
  168. package/dist/config/unified-config-types.js.map +1 -1
  169. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  170. package/dist/copilot/copilot-executor.js +5 -8
  171. package/dist/copilot/copilot-executor.js.map +1 -1
  172. package/dist/delegation/headless-executor.d.ts.map +1 -1
  173. package/dist/delegation/headless-executor.js +19 -16
  174. package/dist/delegation/headless-executor.js.map +1 -1
  175. package/dist/errors/error-handler.d.ts.map +1 -1
  176. package/dist/errors/error-handler.js +13 -0
  177. package/dist/errors/error-handler.js.map +1 -1
  178. package/dist/glmt/glmt-transformer.d.ts +1 -0
  179. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  180. package/dist/glmt/glmt-transformer.js +9 -0
  181. package/dist/glmt/glmt-transformer.js.map +1 -1
  182. package/dist/management/checks/image-analysis-check.d.ts.map +1 -1
  183. package/dist/management/checks/image-analysis-check.js +19 -1
  184. package/dist/management/checks/image-analysis-check.js.map +1 -1
  185. package/dist/management/recovery-manager.d.ts +6 -0
  186. package/dist/management/recovery-manager.d.ts.map +1 -1
  187. package/dist/management/recovery-manager.js +72 -2
  188. package/dist/management/recovery-manager.js.map +1 -1
  189. package/dist/services/logging/index.d.ts +7 -0
  190. package/dist/services/logging/index.d.ts.map +1 -0
  191. package/dist/services/logging/index.js +22 -0
  192. package/dist/services/logging/index.js.map +1 -0
  193. package/dist/services/logging/log-buffer.d.ts +5 -0
  194. package/dist/services/logging/log-buffer.d.ts.map +1 -0
  195. package/dist/services/logging/log-buffer.js +20 -0
  196. package/dist/services/logging/log-buffer.js.map +1 -0
  197. package/dist/services/logging/log-config.d.ts +4 -0
  198. package/dist/services/logging/log-config.d.ts.map +1 -0
  199. package/dist/services/logging/log-config.js +68 -0
  200. package/dist/services/logging/log-config.js.map +1 -0
  201. package/dist/services/logging/log-paths.d.ts +8 -0
  202. package/dist/services/logging/log-paths.d.ts.map +1 -0
  203. package/dist/services/logging/log-paths.js +66 -0
  204. package/dist/services/logging/log-paths.js.map +1 -0
  205. package/dist/services/logging/log-reader.d.ts +5 -0
  206. package/dist/services/logging/log-reader.d.ts.map +1 -0
  207. package/dist/services/logging/log-reader.js +124 -0
  208. package/dist/services/logging/log-reader.js.map +1 -0
  209. package/dist/services/logging/log-redaction.d.ts +2 -0
  210. package/dist/services/logging/log-redaction.d.ts.map +1 -0
  211. package/dist/services/logging/log-redaction.js +53 -0
  212. package/dist/services/logging/log-redaction.js.map +1 -0
  213. package/dist/services/logging/log-storage.d.ts +4 -0
  214. package/dist/services/logging/log-storage.d.ts.map +1 -0
  215. package/dist/services/logging/log-storage.js +109 -0
  216. package/dist/services/logging/log-storage.js.map +1 -0
  217. package/dist/services/logging/log-types.d.ts +30 -0
  218. package/dist/services/logging/log-types.d.ts.map +1 -0
  219. package/dist/services/logging/log-types.js +19 -0
  220. package/dist/services/logging/log-types.js.map +1 -0
  221. package/dist/services/logging/logger.d.ts +9 -0
  222. package/dist/services/logging/logger.d.ts.map +1 -0
  223. package/dist/services/logging/logger.js +46 -0
  224. package/dist/services/logging/logger.js.map +1 -0
  225. package/dist/shared/agy-gemini-pro-compatibility.d.ts +15 -0
  226. package/dist/shared/agy-gemini-pro-compatibility.d.ts.map +1 -0
  227. package/dist/shared/agy-gemini-pro-compatibility.js +18 -0
  228. package/dist/shared/agy-gemini-pro-compatibility.js.map +1 -0
  229. package/dist/shared/cliproxy-model-routing.d.ts +45 -0
  230. package/dist/shared/cliproxy-model-routing.d.ts.map +1 -0
  231. package/dist/shared/cliproxy-model-routing.js +144 -0
  232. package/dist/shared/cliproxy-model-routing.js.map +1 -0
  233. package/dist/shared/provider-preset-catalog.d.ts +3 -1
  234. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  235. package/dist/shared/provider-preset-catalog.js +16 -0
  236. package/dist/shared/provider-preset-catalog.js.map +1 -1
  237. package/dist/ui/assets/{accounts-BjfPKR8m.js → accounts-DjL3iVZW.js} +1 -1
  238. package/dist/ui/assets/{alert-dialog-Dh2NUFdm.js → alert-dialog-Tc_D1a_B.js} +1 -1
  239. package/dist/ui/assets/api-CUtkvXmX.js +4 -0
  240. package/dist/ui/assets/{auth-section-Dp10_YyD.js → auth-section-CuKWQHC7.js} +1 -1
  241. package/dist/ui/assets/{backups-section-C0jF8MP1.js → backups-section-BKW2pbb9.js} +1 -1
  242. package/dist/ui/assets/{channels-CkXuK5i7.js → channels-DvWJMdaq.js} +1 -1
  243. package/dist/ui/assets/{checkbox-tA5FH8Ol.js → checkbox-B0hZxMK5.js} +1 -1
  244. package/dist/ui/assets/{claude-extension-Bg2ZkzMz.js → claude-extension-Dfqu-rev.js} +1 -1
  245. package/dist/ui/assets/cliproxy-C9RxW-I8.js +3 -0
  246. package/dist/ui/assets/cliproxy-ai-providers-BXLuuxNf.js +15 -0
  247. package/dist/ui/assets/{cliproxy-control-panel-Da-sGGyI.js → cliproxy-control-panel-aQ7cCc2U.js} +1 -1
  248. package/dist/ui/assets/{codex-ooWKOPa2.js → codex-aq4RI6_n.js} +9 -9
  249. package/dist/ui/assets/{confirm-dialog-CKjwhn9j.js → confirm-dialog-CpDk6eu4.js} +1 -1
  250. package/dist/ui/assets/{copilot-GA7EPiK1.js → copilot-CQRpGXvY.js} +2 -2
  251. package/dist/ui/assets/{cursor-B6c8CyHG.js → cursor-BpXPf6qi.js} +1 -1
  252. package/dist/ui/assets/{droid-CPRHOIX2.js → droid-Cgx-yLjy.js} +2 -2
  253. package/dist/ui/assets/{globalenv-section-Czgnw_GV.js → globalenv-section-DsNqG1yB.js} +1 -1
  254. package/dist/ui/assets/{health-CXLOMk8n.js → health-BY-O-JcA.js} +1 -1
  255. package/dist/ui/assets/icons-KVCk4_U8.js +1 -0
  256. package/dist/ui/assets/index-BmSzf0T9.js +72 -0
  257. package/dist/ui/assets/index-CLGiPB3A.js +1 -0
  258. package/dist/ui/assets/{index-CvfzKRSH.js → index-Cet36v1V.js} +1 -1
  259. package/dist/ui/assets/{index-Boa5e-GY.js → index-DH6L6ybH.js} +1 -1
  260. package/dist/ui/assets/{index-BceMcbCR.js → index-DsCjnpco.js} +1 -1
  261. package/dist/ui/assets/{index-D2v_-6AW.js → index-TQFuDZdB.js} +1 -1
  262. package/dist/ui/assets/index-teLjoh2T.css +1 -0
  263. package/dist/ui/assets/logs-D5ro-pc7.js +1 -0
  264. package/dist/ui/assets/{masked-input-B1_asiUI.js → masked-input-h0XkMSwB.js} +1 -1
  265. package/dist/ui/assets/proxy-status-widget-yBdrFeb7.js +1 -0
  266. package/dist/ui/assets/{raw-json-settings-editor-panel-DMbTkxWw.js → raw-json-settings-editor-panel-Cb7ZInQV.js} +1 -1
  267. package/dist/ui/assets/searchable-select-D4xr5xKS.js +1 -0
  268. package/dist/ui/assets/{separator-CdaalG0K.js → separator-gw5BjIpP.js} +1 -1
  269. package/dist/ui/assets/{shared-BiFB-et0.js → shared-C-VeA1Z9.js} +1 -1
  270. package/dist/ui/assets/{table-BPwgFXLQ.js → table-Bd4isC18.js} +1 -1
  271. package/dist/ui/assets/{tanstack-DWm6aJ-G.js → tanstack-CrmUhA7Z.js} +2 -2
  272. package/dist/ui/assets/updates-DiK8I67C.js +1 -0
  273. package/dist/ui/index.html +4 -4
  274. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  275. package/dist/utils/hooks/image-analysis-runtime-status.js +5 -1
  276. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  277. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts +21 -0
  278. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts.map +1 -0
  279. package/dist/utils/hooks/image-analyzer-hook-utils.js +81 -0
  280. package/dist/utils/hooks/image-analyzer-hook-utils.js.map +1 -0
  281. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts +1 -0
  282. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -1
  283. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +33 -12
  284. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -1
  285. package/dist/utils/hooks/index.d.ts +1 -0
  286. package/dist/utils/hooks/index.d.ts.map +1 -1
  287. package/dist/utils/hooks/index.js +3 -1
  288. package/dist/utils/hooks/index.js.map +1 -1
  289. package/dist/utils/image-analysis/index.d.ts +1 -0
  290. package/dist/utils/image-analysis/index.d.ts.map +1 -1
  291. package/dist/utils/image-analysis/index.js +6 -1
  292. package/dist/utils/image-analysis/index.js.map +1 -1
  293. package/dist/utils/image-analysis/repair.d.ts +12 -0
  294. package/dist/utils/image-analysis/repair.d.ts.map +1 -0
  295. package/dist/utils/image-analysis/repair.js +105 -0
  296. package/dist/utils/image-analysis/repair.js.map +1 -0
  297. package/dist/utils/package-manager-detector.d.ts +30 -4
  298. package/dist/utils/package-manager-detector.d.ts.map +1 -1
  299. package/dist/utils/package-manager-detector.js +247 -60
  300. package/dist/utils/package-manager-detector.js.map +1 -1
  301. package/dist/utils/update-checker.d.ts +1 -1
  302. package/dist/utils/update-checker.d.ts.map +1 -1
  303. package/dist/utils/websearch/trace.d.ts.map +1 -1
  304. package/dist/utils/websearch/trace.js +7 -0
  305. package/dist/utils/websearch/trace.js.map +1 -1
  306. package/dist/web-server/index.d.ts.map +1 -1
  307. package/dist/web-server/index.js +24 -0
  308. package/dist/web-server/index.js.map +1 -1
  309. package/dist/web-server/middleware/request-logging-middleware.d.ts +3 -0
  310. package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -0
  311. package/dist/web-server/middleware/request-logging-middleware.js +30 -0
  312. package/dist/web-server/middleware/request-logging-middleware.js.map +1 -0
  313. package/dist/web-server/routes/auth-routes.d.ts +10 -0
  314. package/dist/web-server/routes/auth-routes.d.ts.map +1 -1
  315. package/dist/web-server/routes/auth-routes.js +33 -6
  316. package/dist/web-server/routes/auth-routes.js.map +1 -1
  317. package/dist/web-server/routes/catalog-routes.d.ts.map +1 -1
  318. package/dist/web-server/routes/catalog-routes.js +9 -8
  319. package/dist/web-server/routes/catalog-routes.js.map +1 -1
  320. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +8 -0
  321. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  322. package/dist/web-server/routes/cliproxy-auth-routes.js +86 -76
  323. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  324. package/dist/web-server/routes/cliproxy-routing-routes.d.ts +3 -0
  325. package/dist/web-server/routes/cliproxy-routing-routes.d.ts.map +1 -0
  326. package/dist/web-server/routes/cliproxy-routing-routes.js +34 -0
  327. package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -0
  328. package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
  329. package/dist/web-server/routes/image-analysis-routes.js +1 -10
  330. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  331. package/dist/web-server/routes/index.d.ts.map +1 -1
  332. package/dist/web-server/routes/index.js +22 -0
  333. package/dist/web-server/routes/index.js.map +1 -1
  334. package/dist/web-server/routes/logs-routes.d.ts +3 -0
  335. package/dist/web-server/routes/logs-routes.d.ts.map +1 -0
  336. package/dist/web-server/routes/logs-routes.js +75 -0
  337. package/dist/web-server/routes/logs-routes.js.map +1 -0
  338. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  339. package/dist/web-server/routes/profile-routes.js +8 -0
  340. package/dist/web-server/routes/profile-routes.js.map +1 -1
  341. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  342. package/dist/web-server/routes/settings-routes.js +2 -0
  343. package/dist/web-server/routes/settings-routes.js.map +1 -1
  344. package/dist/web-server/services/logs-dashboard-service.d.ts +7 -0
  345. package/dist/web-server/services/logs-dashboard-service.d.ts.map +1 -0
  346. package/dist/web-server/services/logs-dashboard-service.js +33 -0
  347. package/dist/web-server/services/logs-dashboard-service.js.map +1 -0
  348. package/dist/web-server/usage/routes.d.ts.map +1 -1
  349. package/dist/web-server/usage/routes.js +11 -0
  350. package/dist/web-server/usage/routes.js.map +1 -1
  351. package/dist/web-server/websocket.d.ts.map +1 -1
  352. package/dist/web-server/websocket.js +23 -14
  353. package/dist/web-server/websocket.js.map +1 -1
  354. package/lib/hooks/image-analyzer-transformer.cjs +5 -0
  355. package/package.json +1 -1
  356. package/dist/ui/assets/api-C-3mQCFf.js +0 -4
  357. package/dist/ui/assets/cliproxy-1qRVSbVC.js +0 -3
  358. package/dist/ui/assets/cliproxy-ai-providers-DBSXTTyw.js +0 -21
  359. package/dist/ui/assets/icons-B9oTjo-t.js +0 -1
  360. package/dist/ui/assets/index-BMHPMj0j.js +0 -69
  361. package/dist/ui/assets/index-CknHGRYp.css +0 -1
  362. package/dist/ui/assets/index-v-DY6Zby.js +0 -1
  363. package/dist/ui/assets/proxy-status-widget-Ci1JpStj.js +0 -1
  364. package/dist/ui/assets/searchable-select-HbP2PXl3.js +0 -1
  365. package/dist/ui/assets/updates-l8Co9uve.js +0 -1
@@ -1,21 +0,0 @@
1
- import{j as e}from"./radix-ui-Zb8sVEtn.js";import{r as m,u as qe,h as $e}from"./react-vendor-CNOkPC89.js";import{c as H,ay as me,a$ as ue,B as h,af as He,ag as Ke,ah as Be,ai as De,aj as Fe,L as A,I as k,M as Ge,N as Ve,O as ze,ax as Je,d as f,Y as ae,S as fe,n as ee,Q as ve,R as ye,U as W,V as X,b0 as be,b1 as _e}from"./index-BMHPMj0j.js";import{P as Qe}from"./proxy-status-widget-Ci1JpStj.js";import{C as We}from"./confirm-dialog-CKjwhn9j.js";import{k as Xe,v as Pe,l as Ae,m as pe,ar as se,r as Ye,R as le,Z as Ze,a6 as Se,o as Ie,aD as es,N as ss,am as ts,an as rs,V as je,aE as Ue,aF as Le,aG as Me,aq as as,aH as ns}from"./icons-B9oTjo-t.js";import{u as is,a as xe,b as he}from"./tanstack-DWm6aJ-G.js";import{t as G}from"./notifications-B2HqRBj7.js";import"./utils-CzKF5WmX.js";import"./form-utils-Bcoyqxpq.js";import"./code-highlight-BRUf_pqB.js";import"./alert-dialog-Dh2NUFdm.js";function ls(t){switch(t){case"ready":return{icon:Ae,text:"Ready",className:"text-green-600"};case"partial":return{icon:Pe,text:"Needs attention",className:"text-amber-600"};default:return{icon:Xe,text:"Not configured",className:"text-muted-foreground"}}}function os({families:t,selectedFamily:s,onSelect:r}){return e.jsx("div",{className:"space-y-1",children:t.map(a=>{const i=a.id===s,o=ls(a.status),d=o.icon;return e.jsx("button",{type:"button",onClick:()=>r(a.id),className:H("w-full cursor-pointer rounded-lg border px-3 py-2.5 text-left transition-colors",i?"border-primary/20 bg-primary/10":"border-transparent hover:bg-muted/70"),children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(me,{provider:ue(a.id),size:"md"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate text-sm font-medium",children:a.displayName}),a.entries.length>0&&e.jsx(h,{variant:"secondary",className:"h-4 px-1 text-[10px]",children:a.entries.length})]}),e.jsxs("div",{className:H("mt-0.5 flex items-center gap-1.5 text-xs",o.className),children:[e.jsx(d,{className:"h-3 w-3"}),e.jsx("span",{children:o.text})]})]}),e.jsx(h,{variant:"outline",className:"h-5 px-1.5 text-[9px] uppercase tracking-wide",children:a.authMode})]})},a.id)})})}function ds(t){switch(t){case"gemini-api-key":return{familyName:"Gemini",description:"Store the Gemini key here so CLIProxy can route Gemini requests without creating a separate CCS API Profile.",requiredNow:["Paste the Gemini API key.","Leave Base URL empty unless you use a custom Gemini host."],optionalLater:["Model mappings only when requested names and Gemini names differ.","Headers only when your provider setup requires them."],keyLabel:"Gemini API Key",keyPlaceholder:"AIza...",keyHelper:"This is the only field most Gemini setups need.",baseUrlPlaceholder:"https://generativelanguage.googleapis.com",baseUrlHelper:"Optional. Leave blank to keep the default Gemini endpoint.",aliasesPlaceholder:"claude-sonnet-4-5=gemini-2.5-pro",aliasesHelper:"Format: requested=upstream. Leave this blank unless the upstream Gemini model name differs.",headersPlaceholder:"X-Goog-User-Project: your-project"};case"codex-api-key":return{familyName:"Codex",description:"Store the Codex or OpenAI key here so CLIProxy can route Codex requests without duplicating the setup in API Profiles.",requiredNow:["Paste the Codex or OpenAI API key.","Leave Base URL empty unless this route should target another OpenAI-style endpoint."],optionalLater:["Model mappings only when the upstream model ID differs.","Headers only when org or project routing needs them."],keyLabel:"Codex API Key",keyPlaceholder:"sk-...",keyHelper:"This is the only field most Codex setups need.",baseUrlPlaceholder:"https://api.openai.com/v1",baseUrlHelper:"Optional. Leave blank to keep the default Codex endpoint.",aliasesPlaceholder:"claude-sonnet-4-5=gpt-5",aliasesHelper:"Format: requested=upstream. Add a mapping only when the upstream model name differs.",headersPlaceholder:"OpenAI-Organization: org_..."};case"claude-api-key":return{familyName:"Claude",description:"Store the Anthropic or compatible key here for CLIProxy-managed Claude routing. Save the key first, then add rewrites only if this route needs them.",requiredNow:["Paste the Claude or Anthropic-compatible API key.","Leave Base URL empty unless this route should target another compatible endpoint."],optionalLater:["Model mappings only when the requested and upstream Claude model IDs differ.","Proxy, prefix, exclusions, and headers only for advanced routing cases."],keyLabel:"Claude API Key",keyPlaceholder:"sk-ant-...",keyHelper:"Most Claude routes can start with the key only.",baseUrlPlaceholder:"https://api.anthropic.com",baseUrlHelper:"Optional. Leave blank to keep the default Claude-compatible endpoint.",aliasesPlaceholder:"claude-sonnet-4-5=claude-3-7-sonnet-latest",aliasesHelper:"Format: requested=upstream. Add a mapping only when the upstream model ID should differ.",headersPlaceholder:"X-Project: internal-routing"};case"vertex-api-key":return{familyName:"Vertex",description:"Store the Vertex key here so CLIProxy can route Vertex traffic without creating a separate CCS API Profile.",requiredNow:["Paste the Vertex API key.","Leave Base URL empty unless a regional or gateway endpoint is required."],optionalLater:["Model mappings only when the upstream name differs.","Headers only when the provider expects extra routing context."],keyLabel:"Vertex API Key",keyPlaceholder:"AIza...",keyHelper:"Most Vertex routes only need the key.",baseUrlPlaceholder:"https://vertex.googleapis.com",baseUrlHelper:"Optional. Leave blank to keep the default Vertex endpoint.",aliasesPlaceholder:"claude-sonnet-4-5=gemini-2.5-pro",aliasesHelper:"Format: requested=upstream. Leave blank unless the upstream model name differs.",headersPlaceholder:"X-Goog-User-Project: your-project"};case"openai-compatibility":return{familyName:"OpenAI-Compatible Connector",description:"Create a named connector for OpenRouter, Together, or any OpenAI-style endpoint. This page owns the connector setup directly inside CLIProxy.",requiredNow:["Pick a connector name such as openrouter or together.","Set the connector Base URL.","Add at least one API key before saving."],optionalLater:["Model mappings only when requested and upstream model names differ.","Headers only when the connector requires provider-specific auth or routing."],keyLabel:"API Keys",keyPlaceholder:"sk-...",keyHelper:"Add one key per line. Most connectors start with a single key.",connectorPlaceholder:"openrouter",connectorHelper:"This becomes the connector label in the saved entries list.",baseUrlPlaceholder:"https://openrouter.ai/api/v1",baseUrlHelper:"Required for connectors. This is the upstream OpenAI-style endpoint.",aliasesPlaceholder:"claude-sonnet-4-5=gpt-4.1",aliasesHelper:"Format: requested=upstream. Leave blank unless the connector expects a different model ID.",headersPlaceholder:"HTTP-Referer: https://your-app.example"}}}function Ne(t){return t.split(`
2
- `).map(s=>s.trim()).filter(s=>s.length>0)}function cs(t){return t.split(`
3
- `).map(s=>s.trim()).filter(s=>s.length>0).map(s=>{const r=s.includes(":")?":":"=",[a,...i]=s.split(r);return{key:a.trim(),value:i.join(r).trim()}}).filter(s=>s.key.length>0)}function ms(t){return t.split(`
4
- `).map(s=>s.trim()).filter(s=>s.length>0).map(s=>{const r=s.indexOf("=");return r===-1?{name:s.trim(),alias:""}:{name:s.slice(0,r).trim(),alias:s.slice(r+1).trim()}}).filter(s=>s.name.length>0||s.alias.length>0)}function Y({value:t,onChange:s,placeholder:r,rows:a=4}){return e.jsx("textarea",{rows:a,value:t,onChange:i=>s(i.target.value),placeholder:r,className:"flex min-h-24 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50"})}function us(t){return(t?.headers||[]).map(s=>`${s.key}: ${s.value}`).join(`
5
- `)}function ps(t){return(t?.excludedModels||[]).join(`
6
- `)}function xs(t){return(t?.models||[]).map(s=>s.alias.trim()?`${s.name}=${s.alias}`:s.name).join(`
7
- `)}function we({title:t,items:s,icon:r}){return e.jsxs("div",{className:"rounded-xl border bg-background/80 p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[r,t]}),e.jsx("div",{className:"mt-3 space-y-3",children:s.map((a,i)=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border bg-muted/40 text-[11px] font-semibold text-muted-foreground",children:i+1}),e.jsx("div",{className:"text-sm leading-6 text-muted-foreground",children:a})]},`${t}:${a}`))})]})}function hs({family:t,entry:s,open:r,onOpenChange:a,onSubmit:i,isSaving:o}){const d=m.useMemo(()=>ds(t),[t]),l=!!s,c=t==="openai-compatibility",v=t==="claude-api-key",[S,E]=m.useState(()=>s?.name||""),[b,T]=m.useState(()=>s?.baseUrl||""),[j,O]=m.useState(()=>s?.proxyUrl||""),[I,J]=m.useState(()=>s?.prefix||""),[N,U]=m.useState(""),[y,p]=m.useState(""),[L,w]=m.useState(()=>us(s)),[q,K]=m.useState(()=>ps(s)),[B,g]=m.useState(()=>xs(s)),[R,P]=m.useState(()=>!!(s?.headers.length||s?.excludedModels.length||s?.proxyUrl||s?.prefix)),D=m.useMemo(()=>!l||!s?.secretConfigured?null:c?"Leave API keys blank to keep the stored connector secrets.":"Leave the API key blank to keep the stored secret.",[s?.secretConfigured,l,c]),F=async()=>{const n=N.trim(),$=Ne(y),C=l&&s?.secretConfigured&&!n.length&&$.length===0,ie={name:c?S:void 0,baseUrl:b,proxyUrl:v?j:void 0,prefix:v?I:void 0,headers:cs(L),excludedModels:v?Ne(q):void 0,models:ms(B),preserveSecrets:C,...c?$.length>0?{apiKeys:$}:{}:n.length>0?{apiKey:n}:{}};await i(ie)};return e.jsx(He,{open:r,onOpenChange:a,children:e.jsx(Ke,{className:"overflow-hidden p-0 sm:max-w-3xl",children:e.jsxs("div",{className:"max-h-[85vh] overflow-y-auto",children:[e.jsx("div",{className:"border-b bg-muted/20 px-6 py-5",children:e.jsxs(Be,{className:"gap-4 text-left",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl border bg-background",children:e.jsx(me,{provider:ue(t),size:"md"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(De,{children:l?`Edit ${d.familyName}`:`Set up ${d.familyName}`}),e.jsx(h,{variant:"outline",className:"uppercase text-[11px]",children:c?"connector":"api-key"})]}),e.jsx(Fe,{className:"mt-1 max-w-2xl leading-6",children:d.description})]})]}),e.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[e.jsx(we,{title:"Required now",items:d.requiredNow,icon:e.jsx(pe,{className:"h-4 w-4 text-primary"})}),e.jsx(we,{title:"Optional later",items:d.optionalLater,icon:e.jsx(se,{className:"h-4 w-4 text-primary"})})]}),D?e.jsx("div",{className:"rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs leading-5 text-amber-800",children:D}):null]})}),e.jsxs("div",{className:"space-y-6 px-6 py-6",children:[e.jsxs("section",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-semibold",children:"Required setup"}),e.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:"Save the smallest working configuration first."})]}),c?e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{htmlFor:"connector-name",children:"Connector Name"}),e.jsx(k,{id:"connector-name",value:S,onChange:n=>E(n.target.value),placeholder:d.connectorPlaceholder}),e.jsx("p",{className:"text-xs text-muted-foreground",children:d.connectorHelper})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{htmlFor:"base-url",children:"Base URL"}),e.jsx(k,{id:"base-url",value:b,onChange:n=>T(n.target.value),placeholder:d.baseUrlPlaceholder}),e.jsx("p",{className:"text-xs text-muted-foreground",children:d.baseUrlHelper})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{children:"API Keys"}),e.jsx(Y,{value:y,onChange:p,rows:4,placeholder:`${d.keyPlaceholder}
8
- ${d.keyPlaceholder}`}),e.jsx("p",{className:"text-xs text-muted-foreground",children:d.keyHelper})]})]}):e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{htmlFor:"api-key",children:d.keyLabel}),e.jsx(k,{id:"api-key",type:"password",value:N,onChange:n=>U(n.target.value),placeholder:d.keyPlaceholder}),e.jsx("p",{className:"text-xs text-muted-foreground",children:d.keyHelper})]})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-semibold",children:"Optional routing"}),e.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:"Only fill these when the route needs more than the default behavior."})]}),c?null:e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{htmlFor:"base-url",children:"Base URL"}),e.jsx(k,{id:"base-url",value:b,onChange:n=>T(n.target.value),placeholder:d.baseUrlPlaceholder}),e.jsx("p",{className:"text-xs text-muted-foreground",children:d.baseUrlHelper})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{children:"Model Mappings"}),e.jsx(Y,{value:B,onChange:g,rows:4,placeholder:d.aliasesPlaceholder}),e.jsx("p",{className:"text-xs text-muted-foreground",children:d.aliasesHelper})]})]}),e.jsx(Ge,{open:R,onOpenChange:P,children:e.jsxs("div",{className:"rounded-xl border",children:[e.jsx(Ve,{asChild:!0,children:e.jsxs("button",{type:"button",className:"flex w-full items-center justify-between gap-4 px-4 py-4 text-left",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(se,{className:"h-4 w-4 text-primary"}),"Advanced routing"]}),e.jsxs("div",{className:"mt-1 text-sm text-muted-foreground",children:["Headers",v?", proxy, prefix, and exclusions.":" and provider-specific overrides."]})]}),e.jsx(Ye,{className:H("h-4 w-4 text-muted-foreground transition-transform",R&&"rotate-180")})]})}),e.jsx(ze,{className:"border-t px-4 py-4",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{children:"Headers"}),e.jsx(Y,{value:L,onChange:w,rows:3,placeholder:d.headersPlaceholder}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Use headers only when the provider requires extra routing or auth context."})]}),v?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{htmlFor:"prefix",children:"Prefix"}),e.jsx(k,{id:"prefix",value:I,onChange:n=>J(n.target.value),placeholder:"glm-"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Optional. Prepends model names before routing."})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{htmlFor:"proxy-url",children:"Proxy URL"}),e.jsx(k,{id:"proxy-url",value:j,onChange:n=>O(n.target.value),placeholder:"http://127.0.0.1:8080"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Optional. Sends requests through an intermediate proxy."})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(A,{children:"Excluded Models"}),e.jsx(Y,{value:q,onChange:K,rows:3,placeholder:"claude-opus-4-1\\nclaude-sonnet-4-5"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Optional. One model ID per line when this route should reject specific upstream models."})]})]}):null]})})]})})]}),e.jsxs(Je,{className:"border-t bg-muted/10 px-6 py-4",children:[e.jsx(f,{type:"button",variant:"outline",onClick:()=>a(!1),children:"Cancel"}),e.jsx(f,{type:"button",onClick:()=>void F(),disabled:o,children:o?"Saving...":c?l?"Save Connector":"Create Connector":"Save Entry"})]})]})})})}const ne=["cliproxy-ai-providers"];function gs(){return is({queryKey:ne,queryFn:()=>ae.cliproxy.aiProviders.list()})}function fs(){const t=xe();return he({mutationFn:({family:s,data:r})=>ae.cliproxy.aiProviders.create(s,r),onSuccess:()=>{t.invalidateQueries({queryKey:ne}),G.success("Provider entry created")},onError:s=>{G.error(s.message)}})}function vs(){const t=xe();return he({mutationFn:({family:s,entryId:r,data:a})=>ae.cliproxy.aiProviders.update(s,r,a),onSuccess:()=>{t.invalidateQueries({queryKey:ne}),G.success("Provider entry updated")},onError:s=>{G.error(s.message)}})}function ys(){const t=xe();return he({mutationFn:({family:s,entryId:r})=>ae.cliproxy.aiProviders.delete(s,r),onSuccess:()=>{t.invalidateQueries({queryKey:ne}),G.success("Provider entry removed")},onError:s=>{G.error(s.message)}})}function _({label:t,value:s,hint:r}){return e.jsxs("div",{className:"rounded-lg border bg-background p-3",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:t}),e.jsx("div",{className:"mt-1 break-all text-sm font-medium leading-5",children:s}),r?e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:r}):null]})}function bs(t){switch(t){case"ready":return{label:"Ready",className:"bg-emerald-50 text-emerald-700 hover:bg-emerald-50"};case"partial":return{label:"Needs attention",className:"bg-amber-50 text-amber-700 hover:bg-amber-50"};default:return{label:"Empty",className:"bg-muted text-muted-foreground hover:bg-muted"}}}function de(t){return t.proxyUrl?"Proxy override":t.prefix?"Prefixed route":t.baseUrl?"Direct upstream":"Default runtime"}function Te(t){return t.filter(s=>s.alias.trim().length>0).length}function Re(t){return t.filter(s=>s.name.trim().length>0&&s.alias.trim().length===0).length}function te(t){const s=Te(t),r=Re(t),a=[];return s>0&&a.push(`${s} mapped`),r>0&&a.push(`${r} direct`),a.length>0?a.join(" + "):"No model rules"}function ce({configured:t}){return e.jsx(h,{variant:"secondary",className:H("border-transparent text-[10px]",t?"bg-emerald-50 text-emerald-700 hover:bg-emerald-50":"bg-muted text-muted-foreground hover:bg-muted"),children:t?"Configured":"Missing secret"})}const V="<stored in CLIProxy>";function Ee(t){switch(t.id){case"gemini-api-key":return{requiredNow:["Save the Gemini API key.","Leave Base URL blank unless you use a custom Gemini gateway.","Add model mappings only when Gemini model names differ from the requested ones."],optionalLater:["Headers for provider-specific project routing.","Base URL override for a proxy or regional endpoint.","Mappings such as claude-sonnet-4-5 -> gemini-2.5-pro."],emptyStateSummary:[`Requests to ${t.routePath} use CLIProxy-managed Gemini credentials.`,"The default upstream is enough for most Gemini setups.","Model mappings and headers are optional, not step one."],profileBoundary:"Use API Profiles when you want a CCS-native Anthropic-compatible profile instead of this CLIProxy-managed Gemini route.",editPrompts:[{label:"Base URL",hint:"Change it only for a custom Gemini gateway or regional endpoint."},{label:"Model mappings",hint:"Add them only when requested names and Gemini names differ."},{label:"Headers",hint:"Keep them empty unless the provider requires project or org routing."}]};case"codex-api-key":return{requiredNow:["Save the Codex or OpenAI API key.","Leave Base URL blank unless this route should hit a different OpenAI-style host.","Add mappings only when the upstream model name differs from what CCS requests."],optionalLater:["Base URL override for a gateway, proxy, or self-hosted endpoint.","Headers for org or project routing.","Mappings such as claude-sonnet-4-5 -> gpt-5."],emptyStateSummary:[`Requests to ${t.routePath} use CLIProxy-managed Codex credentials.`,"Most setups can keep the default upstream and skip extra routing.","Mappings are only needed when the upstream model naming does not match the requested one."],profileBoundary:"Use API Profiles when you want a CCS-native Anthropic-compatible profile rather than this CLIProxy-managed Codex route.",editPrompts:[{label:"Base URL",hint:"Change it only when Codex should resolve through another OpenAI-style endpoint."},{label:"Model mappings",hint:"Map requested model names to the exact upstream model ID only when needed."},{label:"Headers",hint:"Use headers sparingly for project routing or extra auth."}]};case"claude-api-key":return{requiredNow:["Save the Anthropic or compatible API key.","Leave Base URL blank unless this route should point at a custom Claude-compatible endpoint.","Add mappings only when the upstream model ID differs from the requested Claude model name."],optionalLater:["Prefix or proxy overrides for advanced route rewriting.","Excluded models when a route should block specific model IDs.","Headers for project-scoped routing."],emptyStateSummary:[`Requests to ${t.routePath} use a CLIProxy-managed Claude-compatible key.`,"Base URL, proxy, and prefix rewrites are advanced options, not the minimum setup.","Most users can start with a key only, then add mappings or filters if routing needs it."],profileBoundary:"Use API Profiles when you want a CCS-native Anthropic-compatible profile or preset instead of this CLIProxy-managed Claude route.",editPrompts:[{label:"Base URL",hint:"Change it only when Claude traffic should target another compatible endpoint."},{label:"Mappings",hint:"Add them only when the requested Claude model name should route to a different upstream ID."},{label:"Advanced routing",hint:"Proxy, prefix, headers, and exclusions are for edge cases. Leave them blank when unsure."}]};case"vertex-api-key":return{requiredNow:["Save the Vertex API key.","Leave Base URL blank unless a regional or gateway endpoint is required.","Add mappings only when the upstream model name differs from the requested name."],optionalLater:["Base URL override for a regional gateway.","Headers for provider-specific routing.","Mappings for translating requested names to Vertex model IDs."],emptyStateSummary:[`Requests to ${t.routePath} use CLIProxy-managed Vertex credentials.`,"Most setups start with the key only and keep the default endpoint.","Mappings and headers are optional follow-up steps."],profileBoundary:"Use API Profiles when you need a CCS-native Anthropic-compatible profile rather than this CLIProxy-managed Vertex route.",editPrompts:[{label:"Base URL",hint:"Use it only for a regional gateway or managed Vertex endpoint."},{label:"Model mappings",hint:"Add them only when the requested names need translating upstream."},{label:"Headers",hint:"Keep them empty unless the provider requires extra routing context."}]};case"openai-compatibility":return{requiredNow:["Name the connector, for example openrouter or together.","Set the connector Base URL.","Add at least one API key before saving."],optionalLater:["Headers for provider-specific auth or project routing.","Model mappings such as claude-sonnet-4-5 -> gpt-4.1.","Additional API keys for the same connector."],emptyStateSummary:[`Requests to ${t.routePath} resolve through a named OpenAI-compatible connector.`,"This flow needs a connector name, a Base URL, and one or more API keys.","Headers and mappings come after the connector is already working."],profileBoundary:"Use API Profiles when you want a CCS-native Anthropic-compatible profile, preset, or provider outside the CLIProxy connector flow.",editPrompts:[{label:"Connector identity",hint:"Keep the connector name and Base URL stable once clients depend on it."},{label:"Model mappings",hint:"Only add them when the connector expects a different upstream model ID."},{label:"Headers",hint:"Use them for provider-specific auth or project routing, not as a default."}]}}}function z(t){return t.split(`
9
- `).map(s=>s.trim()).filter(s=>s.length>0)}function re(t){return t.split(`
10
- `).map(s=>s.trim()).filter(s=>s.length>0).map(s=>{const r=s.includes(":")?":":"=",[a,...i]=s.split(r);return{key:a.trim(),value:i.join(r).trim()}}).filter(s=>s.key.length>0)}function Q(t){return t.split(`
11
- `).map(s=>s.trim()).filter(s=>s.length>0).map(s=>{const r=s.indexOf("=");return r===-1?{name:s.trim(),alias:""}:{name:s.slice(0,r).trim(),alias:s.slice(r+1).trim()}}).filter(s=>s.name.length>0||s.alias.length>0)}function js(t){return(t?.headers||[]).map(s=>`${s.key}: ${s.value}`).join(`
12
- `)}function Ns(t){return(t?.excludedModels||[]).join(`
13
- `)}function ws(t){return(t?.models||[]).map(s=>s.alias.trim()?`${s.name}=${s.alias}`:s.name).join(`
14
- `)}function oe(t){return{name:t.name||"",baseUrl:t.baseUrl||"",proxyUrl:t.proxyUrl||"",prefix:t.prefix||"",headersText:js(t),excludedModelsText:Ns(t),modelAliasesText:ws(t),apiKey:"",apiKeysText:""}}function Cs(t){const s=re(t);if(s.length!==0)return Object.fromEntries(s.map(r=>[r.key,r.value]))}function ks(t){const s=Q(t).map(r=>r.alias.trim()?{name:r.name,alias:r.alias}:{name:r.name});return s.length>0?s:void 0}function Ps(t){const s=z(t);return s.length>0?s:void 0}function Ce(t,s,r){const a=Cs(r.headersText),i=ks(r.modelAliasesText),o=Ps(r.excludedModelsText),d=r.apiKey.trim()||(s.secretConfigured?V:"");if(t.id==="openai-compatibility"){const l=z(r.apiKeysText),c=s.apiKeysMasked?.length||1;return{name:r.name.trim()||s.name||"connector","base-url":r.baseUrl.trim(),...a?{headers:a}:{},"api-key-entries":l.length>0?l.map(v=>({"api-key":v})):s.secretConfigured?Array.from({length:c},()=>({"api-key":V})):[],...i?{models:i}:{}}}return{"api-key":d,...r.baseUrl.trim()?{"base-url":r.baseUrl.trim()}:{},...r.proxyUrl.trim()?{"proxy-url":r.proxyUrl.trim()}:{},...r.prefix.trim()?{prefix:r.prefix.trim()}:{},...a?{headers:a}:{},...o?{"excluded-models":o}:{},...i?{models:i}:{}}}function As(t,s,r){const a=JSON.parse(r);if(!a||typeof a!="object"||Array.isArray(a))throw new Error("Raw config must be a JSON object.");if(t.id==="openai-compatibility"){const o=a,l=(Array.isArray(o["api-key-entries"])?o["api-key-entries"]:[]).map(c=>typeof c=="string"?c:c&&typeof c=="object"&&typeof c["api-key"]=="string"?c["api-key"]:"").filter(c=>c&&c!==V);return{name:typeof o.name=="string"?o.name:s.name||"",baseUrl:typeof o["base-url"]=="string"?o["base-url"]:"",proxyUrl:"",prefix:"",headersText:o.headers&&typeof o.headers=="object"&&!Array.isArray(o.headers)?Object.entries(o.headers).map(([c,v])=>`${c}: ${v}`).join(`
15
- `):"",excludedModelsText:"",modelAliasesText:Array.isArray(o.models)?o.models.map(c=>c.alias?.trim()?`${c.name?.trim()||""}=${c.alias.trim()}`:c.name?.trim()||"").filter(Boolean).join(`
16
- `):"",apiKey:"",apiKeysText:l.join(`
17
- `)}}const i=a;return{name:"",baseUrl:typeof i["base-url"]=="string"?i["base-url"]:"",proxyUrl:typeof i["proxy-url"]=="string"?i["proxy-url"]:"",prefix:typeof i.prefix=="string"?i.prefix:"",headersText:i.headers&&typeof i.headers=="object"&&!Array.isArray(i.headers)?Object.entries(i.headers).map(([o,d])=>`${o}: ${d}`).join(`
18
- `):"",excludedModelsText:Array.isArray(i["excluded-models"])?i["excluded-models"].join(`
19
- `):"",modelAliasesText:Array.isArray(i.models)?i.models.map(o=>o.alias?.trim()?`${o.name?.trim()||""}=${o.alias.trim()}`:o.name?.trim()||"").filter(Boolean).join(`
20
- `):"",apiKey:typeof i["api-key"]=="string"&&i["api-key"]!==V?i["api-key"]:"",apiKeysText:""}}function Ss(t,s,r){if(t.id==="openai-compatibility"){const o=z(r.apiKeysText),d=s.secretConfigured&&o.length===0;return{name:r.name.trim(),baseUrl:r.baseUrl.trim(),headers:re(r.headersText),models:Q(r.modelAliasesText),preserveSecrets:d,...o.length>0?{apiKeys:o}:{}}}const a=r.apiKey.trim(),i=s.secretConfigured&&a.length===0;return{baseUrl:r.baseUrl.trim(),proxyUrl:r.proxyUrl.trim(),prefix:r.prefix.trim(),headers:re(r.headersText),excludedModels:z(r.excludedModelsText),models:Q(r.modelAliasesText),preserveSecrets:i,...a.length>0?{apiKey:a}:{}}}function Is(t,s,r){const a={ANTHROPIC_BASE_URL:`${r.target}${t.routePath}`,ANTHROPIC_AUTH_TOKEN:"ccs-internal-managed"},i=Q(s.modelAliasesText).find(o=>o.name.trim());return i?.name&&(a.ANTHROPIC_MODEL=i.name),{env:a}}function ke({badge:t,title:s,items:r}){return e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(h,{variant:"secondary",className:"text-[11px]",children:t}),e.jsx("div",{className:"text-sm font-medium",children:s})]}),e.jsx("div",{className:"mt-4 space-y-3",children:r.map((a,i)=>e.jsxs("div",{className:"flex items-start gap-3 rounded-lg border bg-muted/10 px-3 py-3",children:[e.jsx("div",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border bg-background text-[11px] font-semibold text-muted-foreground",children:i+1}),e.jsx("div",{className:"text-sm leading-6 text-muted-foreground",children:a})]},`${s}:${a}`))})]})}function M({label:t,helper:s,children:r}){return e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:t}),r,s?e.jsx("div",{className:"text-xs leading-5 text-muted-foreground",children:s}):null]})}function Z({value:t,onChange:s,placeholder:r,rows:a=4}){return e.jsx("textarea",{rows:a,value:t,onChange:i=>s(i.target.value),placeholder:r,className:"flex min-h-24 w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50"})}function Us({family:t,entry:s,source:r,isSaving:a,onSave:i,onDelete:o}){const d=Ee(t),[l,c]=m.useState(()=>oe(s)),[v,S]=m.useState(null),[E,b]=m.useState(!0),[T,j]=m.useState(null),[O,I]=m.useState("config"),[J,N]=m.useState("raw"),U=m.useMemo(()=>JSON.stringify(Ce(t,s,oe(s)),null,2),[s,t]),y=m.useMemo(()=>JSON.stringify(Ce(t,s,l),null,2),[l,s,t]),p=v??y,L=m.useMemo(()=>Is(t,l,r),[l,t,r]),w=m.useMemo(()=>Q(l.modelAliasesText),[l.modelAliasesText]),q=m.useMemo(()=>re(l.headersText),[l.headersText]),K=m.useMemo(()=>z(l.excludedModelsText),[l.excludedModelsText]),B=m.useMemo(()=>JSON.stringify(L,null,2),[L]),g=Te(w),R=Re(w),P=q.length+K.length+(l.proxyUrl.trim()?1:0)+(l.prefix.trim()?1:0),D=t.id==="openai-compatibility"?l.headersText.trim().length>0:!!(l.proxyUrl.trim()||l.prefix.trim()||l.headersText.trim()||l.excludedModelsText.trim()),F=v!==null?v!==U:y!==U,n=m.useMemo(()=>{if(t.id==="openai-compatibility"){const u=[];return l.name.trim()||u.push("name"),l.baseUrl.trim()||u.push("base-url"),!s.secretConfigured&&z(l.apiKeysText).length===0&&u.push("api-key-entries"),u}return!s.secretConfigured&&!l.apiKey.trim()?["api-key"]:[]},[l.apiKey,l.apiKeysText,l.baseUrl,l.name,s.secretConfigured,t.id]),$=E&&n.length===0&&F,C=u=>{c(x=>u(x)),S(null),b(!0),j(null)},ie=u=>{S(u);try{const x=As(t,s,u);c(x),b(!0),j(null)}catch(x){b(!1),j(x instanceof Error?x.message:"Invalid JSON")}},Oe=()=>{c(oe(s)),S(null),b(!0),j(null)},ge=u=>{C(x=>u==="minimal"?t.id==="openai-compatibility"?{...x,headersText:"",modelAliasesText:""}:{...x,baseUrl:"",proxyUrl:"",prefix:"",headersText:"",excludedModelsText:"",modelAliasesText:""}:{...x,proxyUrl:"",prefix:"",headersText:"",excludedModelsText:t.id==="openai-compatibility"?x.excludedModelsText:""})};return e.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-[minmax(360px,0.44fr)_minmax(0,0.56fr)] divide-x overflow-hidden rounded-b-xl border-x border-b bg-card",children:[e.jsx("div",{className:"min-h-0 overflow-hidden bg-muted/5",children:e.jsxs(ve,{value:O,onValueChange:I,className:"flex h-full flex-col",children:[e.jsxs("div",{className:"border-b bg-background px-4 pt-4",children:[e.jsxs("div",{className:"mb-3 flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h3",{className:"truncate text-lg font-semibold",children:s.label}),e.jsx(ce,{configured:s.secretConfigured}),e.jsx(h,{variant:"outline",className:"uppercase",children:t.authMode})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(h,{variant:"outline",className:"font-mono text-[11px]",children:t.routePath}),e.jsx(h,{variant:"outline",className:"text-[11px]",children:de(s)}),e.jsx(h,{variant:"outline",className:"text-[11px]",children:r.label})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(f,{type:"button",size:"sm",variant:"outline",onClick:Oe,disabled:!F,children:[e.jsx(ss,{className:"mr-1 h-3.5 w-3.5"}),"Reset"]}),e.jsxs(f,{type:"button",size:"sm",variant:"outline",onClick:o,children:[e.jsx(ts,{className:"mr-1 h-3.5 w-3.5"}),"Remove"]}),e.jsxs(f,{type:"button",size:"sm",onClick:()=>void i(Ss(t,s,l)),disabled:!$||a,children:[e.jsx(rs,{className:"mr-1 h-3.5 w-3.5"}),a?"Saving...":"Save"]})]})]}),e.jsxs(ye,{className:"grid w-full grid-cols-2",children:[e.jsxs(W,{value:"config",className:"gap-2 text-xs",children:[e.jsx(se,{className:"h-3.5 w-3.5"}),"Config"]}),e.jsxs(W,{value:"usage",className:"gap-2 text-xs",children:[e.jsx(je,{className:"h-3.5 w-3.5"}),"Info & Usage"]})]})]}),e.jsx(X,{value:"config",className:"mt-0 min-h-0 flex-1 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(ee,{className:"h-full",children:e.jsxs("div",{className:"space-y-6 p-5",children:[e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm font-medium",children:"Workspace presets"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Keep the route lean by default, then layer routing only when this entry actually needs it."})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(f,{type:"button",size:"sm",variant:"outline",onClick:()=>ge("minimal"),children:"Minimal setup"}),e.jsx(f,{type:"button",size:"sm",variant:"outline",onClick:()=>ge("clean-routing"),children:"Clear routing noise"})]})]}),e.jsxs("div",{className:"mt-4 grid gap-3 2xl:grid-cols-3",children:[e.jsx(_,{label:"Secret",value:s.secretConfigured?"Stored in CLIProxy":"Missing",hint:s.secretConfigured?"Rotate only when needed":"Required to save"}),e.jsx(_,{label:"Model Rules",value:w.length>0?te(w):"No model rules",hint:"Requested model names stay direct unless remapped"}),e.jsx(_,{label:"Advanced",value:P>0?`${P} active`:"Optional",hint:"Proxy, prefix, headers, and exclusions"})]})]}),n.length>0?e.jsxs("div",{className:"rounded-xl border border-amber-200 bg-amber-50/80 p-4 text-sm text-amber-900",children:["Missing required fields:"," ",e.jsx("span",{className:"font-mono",children:n.join(", ")})]}):null,e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2 text-sm font-medium",children:[e.jsx(pe,{className:"h-4 w-4 text-primary"}),"Connection"]}),e.jsxs("div",{className:"grid gap-4 2xl:grid-cols-2",children:[t.id==="openai-compatibility"?e.jsx(M,{label:"Connector Name",helper:"This is the saved connector label shown in the entry switcher.",children:e.jsx(k,{value:l.name,onChange:u=>C(x=>({...x,name:u.target.value})),placeholder:"openrouter"})}):e.jsx(M,{label:`${t.displayName} API Key`,helper:s.secretConfigured?"Leave blank to keep the stored secret. Enter a new value only to rotate it.":"Required before this route can authenticate.",children:e.jsx(k,{type:"password",value:l.apiKey,onChange:u=>C(x=>({...x,apiKey:u.target.value})),placeholder:s.secretConfigured?s.apiKeyMasked||V:"Paste provider API key"})}),t.id==="openai-compatibility"?e.jsx(M,{label:"API Keys",helper:s.secretConfigured?"One key per line. Leave empty to preserve the stored connector keys.":"Add one key per line. A connector needs at least one key.",children:e.jsx(Z,{value:l.apiKeysText,onChange:u=>C(x=>({...x,apiKeysText:u})),placeholder:"sk-...",rows:4})}):null,e.jsx(M,{label:"Base URL",helper:t.id==="openai-compatibility"?"Required for connectors. This is the upstream OpenAI-style endpoint.":"Leave blank unless this route should target another upstream host.",children:e.jsx(k,{value:l.baseUrl,onChange:u=>C(x=>({...x,baseUrl:u.target.value})),placeholder:t.id==="codex-api-key"?"https://api.openai.com/v1":t.id==="claude-api-key"?"https://api.anthropic.com":t.id==="openai-compatibility"?"https://openrouter.ai/api/v1":"https://provider.example.com"})}),t.id!=="openai-compatibility"?e.jsx(M,{label:"Proxy URL",helper:"Optional intermediary endpoint. Leave blank for direct routing.",children:e.jsx(k,{value:l.proxyUrl,onChange:u=>C(x=>({...x,proxyUrl:u.target.value})),placeholder:"https://proxy.example.com/v1"})}):null,t.id!=="openai-compatibility"?e.jsx(M,{label:"Prefix",helper:"Optional model prefix rewrite for advanced routing only.",children:e.jsx(k,{value:l.prefix,onChange:u=>C(x=>({...x,prefix:u.target.value})),placeholder:"provider/"})}):null]})]}),e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Ue,{className:"h-4 w-4 text-primary"}),"Model rules"]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[g>0?e.jsxs(h,{variant:"outline",children:[g," mapped"]}):null,R>0?e.jsxs(h,{variant:"outline",children:[R," direct"]}):null,w.length===0?e.jsx(h,{variant:"outline",children:"Optional"}):null]})]}),e.jsx(M,{label:"Requested [= Upstream]",helper:"Use requested=upstream for remaps. Use a plain model name when you want the route to expose that model directly.",children:e.jsx(Z,{value:l.modelAliasesText,onChange:u=>C(x=>({...x,modelAliasesText:u})),placeholder:`claude-sonnet-4-5=gpt-5
21
- glm-5`,rows:6})})]}),e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(se,{className:"h-4 w-4 text-primary"}),"Advanced routing"]}),e.jsx(h,{variant:"outline",children:D?`${P} active`:"Optional"})]}),e.jsxs("div",{className:"grid gap-4 2xl:grid-cols-2",children:[e.jsx(M,{label:"Headers",helper:"One header per line. Use only when the upstream expects org, project, or secondary auth headers.",children:e.jsx(Z,{value:l.headersText,onChange:u=>C(x=>({...x,headersText:u})),placeholder:"OpenAI-Organization: org_...",rows:5})}),t.id!=="openai-compatibility"?e.jsx(M,{label:"Excluded Models",helper:"One model ID per line. These models will be blocked for this entry.",children:e.jsx(Z,{value:l.excludedModelsText,onChange:u=>C(x=>({...x,excludedModelsText:u})),placeholder:"claude-opus-4-1",rows:5})}):e.jsx("div",{className:"rounded-xl border border-dashed bg-muted/10 p-4 text-sm text-muted-foreground",children:"OpenAI-compatible connectors keep advanced routing lean. Add headers or model mappings first before introducing extra route layers elsewhere."})]})]})]})})}),e.jsx(X,{value:"usage",className:"mt-0 min-h-0 flex-1 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(ee,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 p-5",children:[e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Le,{className:"h-4 w-4 text-primary"}),"How this route behaves"]}),e.jsxs("div",{className:"mt-3 space-y-3 text-sm leading-6 text-muted-foreground",children:[e.jsxs("div",{className:"rounded-lg border bg-muted/10 p-4",children:["Calls to ",e.jsx("span",{className:"font-mono",children:t.routePath})," use this saved entry inside CLIProxy."]}),e.jsx("div",{className:"rounded-lg border bg-muted/10 p-4",children:l.baseUrl.trim()?`Traffic resolves to ${l.baseUrl.trim()} unless you layer another proxy in front.`:"Traffic keeps the family default upstream unless you add a custom base URL."}),e.jsx("div",{className:"rounded-lg border bg-muted/10 p-4",children:w.length>0?`${te(w)} rule${w.length===1?"":"s"} active for this entry.`:"Requested model names pass through unchanged until you add explicit model rules."})]})]}),e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(je,{className:"h-4 w-4 text-primary"}),"When API Profiles fits better"]}),e.jsx("div",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:d.profileBoundary})]}),e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Me,{className:"h-4 w-4 text-primary"}),"Editing rule of thumb"]}),e.jsx("div",{className:"mt-3 space-y-3",children:d.editPrompts.map(u=>e.jsxs("div",{className:"rounded-lg border bg-muted/10 p-4",children:[e.jsx("div",{className:"text-sm font-medium",children:u.label}),e.jsx("div",{className:"mt-1 text-sm leading-6 text-muted-foreground",children:u.hint})]},u.label))})]})]})})})]})}),e.jsx("div",{className:"min-h-0 overflow-hidden",children:e.jsxs(ve,{value:J,onValueChange:N,className:"flex h-full flex-col",children:[e.jsxs("div",{className:"border-b bg-background px-4 pt-4",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm font-medium",children:"Raw configuration"}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:["Target ",e.jsx("span",{className:"font-mono",children:r.target})]})]}),e.jsxs(ye,{className:"grid w-full grid-cols-2",children:[e.jsxs(W,{value:"raw",className:"gap-2 text-xs",children:[e.jsx(as,{className:"h-3.5 w-3.5"}),"Raw Entry Config"]}),e.jsxs(W,{value:"preview",className:"gap-2 text-xs",children:[e.jsx(ns,{className:"h-3.5 w-3.5"}),"settings.json Preview"]})]})]}),e.jsx(X,{value:"raw",className:"mt-0 min-h-0 flex-1 overflow-hidden data-[state=inactive]:hidden",children:e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsx("div",{className:"border-b bg-muted/10 px-6 py-3 text-sm text-muted-foreground",children:s.secretConfigured?`Stored secrets are shown as ${V}. Replace the placeholder only when you want to rotate the secret.`:"Add secrets directly in the JSON or use the form on the left."}),T?e.jsx("div",{className:"mx-6 mt-4 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:T}):null,e.jsx("div",{className:"min-h-0 flex-1 px-6 pb-4 pt-4",children:e.jsx("div",{className:"h-full overflow-hidden rounded-md border bg-background",children:e.jsx(be,{value:p,onChange:ie,language:"json",minHeight:"100%",heightMode:"fill-parent"})})})]})}),e.jsx(X,{value:"preview",className:"mt-0 min-h-0 flex-1 overflow-hidden data-[state=inactive]:hidden",children:e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsx("div",{className:"border-b bg-muted/10 px-6 py-3 text-sm text-muted-foreground",children:"Derived preview for a CCS profile that points to this CLIProxy route. The route stays local; the upstream key remains managed here."}),e.jsx("div",{className:"min-h-0 flex-1 px-6 pb-4 pt-4",children:e.jsx("div",{className:"h-full overflow-hidden rounded-md border bg-background",children:e.jsx(be,{value:B,onChange:()=>{},language:"json",readonly:!0,minHeight:"100%",heightMode:"fill-parent"})})}),e.jsx("div",{className:"mx-6 mb-4 overflow-hidden rounded-md border",children:e.jsx(_e,{profileEnv:L.env})})]})})]})})]})}function Ls({family:t,onAddEntry:s,onOpenControlPanel:r,onOpenProfiles:a}){const i=Ee(t),o=t.supportsNamedEntries?"Create connector":`Add ${t.displayName} entry`;return e.jsx("div",{className:"space-y-5",children:e.jsxs("div",{className:"grid gap-5 2xl:grid-cols-[minmax(0,1fr)_320px]",children:[e.jsxs("div",{className:"rounded-xl border bg-card",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b px-5 py-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-lg bg-muted",children:e.jsx(pe,{className:"h-5 w-5 text-muted-foreground"})}),e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold",children:["Set up ",t.displayName]}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Start with the smallest working setup. Add routing rules only after the route is already working."})]})]}),e.jsxs(f,{type:"button",onClick:s,children:[e.jsx(Se,{className:"mr-1 h-4 w-4"}),o]})]}),e.jsxs("div",{className:"space-y-4 p-5",children:[e.jsxs("div",{className:"rounded-xl border bg-muted/10 p-4",children:[e.jsx("div",{className:"text-sm font-medium",children:"Recommended setup flow"}),e.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:"Finish the left section first. Treat the right section as optional follow-up."}),e.jsxs("div",{className:"mt-4 space-y-4",children:[e.jsx(ke,{badge:"Do this first",title:"Minimum working setup",items:i.requiredNow}),e.jsx(ke,{badge:"Only if needed",title:"Optional later",items:i.optionalLater})]})]}),e.jsxs("div",{className:"rounded-xl border bg-muted/15 p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Me,{className:"h-4 w-4 text-emerald-600"}),"Need the other pages?"]}),e.jsx("div",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:"Use Overview or Control Panel for OAuth sign-ins. Use API Profiles only for CCS-native Anthropic-compatible profiles and presets."}),e.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[e.jsx(f,{type:"button",size:"sm",variant:"outline",onClick:r,children:"Control Panel"}),e.jsxs(f,{type:"button",size:"sm",variant:"outline",onClick:a,children:["API Profiles",e.jsx(Ie,{className:"ml-1 h-3.5 w-3.5"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-xl border bg-card p-5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Le,{className:"h-4 w-4 text-primary"}),"What this route does"]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.jsx(h,{variant:"outline",className:"font-mono text-[11px]",children:t.routePath}),e.jsx(h,{variant:"outline",className:"uppercase text-[11px]",children:t.authMode})]}),e.jsx("div",{className:"mt-4 space-y-3",children:i.emptyStateSummary.map(d=>e.jsx("div",{className:"rounded-lg border bg-muted/10 p-4 text-sm leading-6 text-muted-foreground",children:d},d))})]}),e.jsxs("div",{className:"rounded-xl border bg-card p-5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Ue,{className:"h-4 w-4 text-primary"}),"When API Profiles is the better fit"]}),e.jsx("div",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:i.profileBoundary})]})]})]})})}function Gs(){const t=qe(),s=$e(),{data:r,error:a,isLoading:i,isFetching:o,refetch:d}=gs(),l=fs(),c=vs(),v=ys(),[S,E]=m.useState(!1),[b,T]=m.useState(null),[j,O]=m.useState(null),[I,J]=m.useState(null),N=m.useMemo(()=>r?.families??[],[r?.families]),U=m.useMemo(()=>new URLSearchParams(t.search).get("family")||null,[t.search]),y=m.useMemo(()=>U&&N.some(n=>n.id===U)?U:N[0]?.id??"gemini-api-key",[N,U]),p=m.useMemo(()=>N.find(n=>n.id===y)||null,[N,y]),L=m.useMemo(()=>{const n=p?.entries??[];return n.length===0?null:I&&n.some($=>$.id===I)?I:n[0]?.id??null},[I,p?.entries]),w=n=>{s({pathname:t.pathname,search:`?family=${n}`},{replace:!0})},q=()=>{T(null),E(!0)};if(i)return e.jsxs("div",{className:"flex h-full min-h-0 overflow-hidden",children:[e.jsx(fe,{className:"h-full w-80 rounded-none"}),e.jsx(fe,{className:"h-full flex-1 rounded-none"})]});if(a||!r||!p){const n=a instanceof Error?a.message:"Failed to load CLIProxy AI providers. Check the local server and try again.";return e.jsx("div",{className:"flex h-full min-h-0 items-center justify-center bg-muted/10 p-6",children:e.jsx("div",{className:"w-full max-w-2xl rounded-xl border bg-card p-6 shadow-sm",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex h-11 w-11 items-center justify-center rounded-lg bg-destructive/10",children:e.jsx(Pe,{className:"h-5 w-5 text-destructive"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-lg font-semibold",children:"Unable to load AI Providers"}),e.jsx("div",{className:"mt-2 text-sm text-muted-foreground",children:n}),e.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[e.jsxs(f,{type:"button",onClick:()=>void d(),children:[e.jsx(le,{className:"mr-2 h-4 w-4"}),"Retry"]}),e.jsx(f,{type:"button",variant:"outline",onClick:()=>s("/cliproxy/control-panel"),children:"Control Panel"}),e.jsx(f,{type:"button",variant:"outline",onClick:()=>s("/providers"),children:"API Profiles"})]})]})]})})})}const K=p.entries.filter(n=>n.secretConfigured),B=N.filter(n=>n.status==="ready").length,g=p.entries.find(n=>n.id===L)??null,R=p.entries.length>1,P=bs(p.status),D=p.entries.length>0,F=e.jsxs("div",{className:"rounded-xl border bg-background p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Setup status"}),e.jsx("div",{className:"mt-1 text-sm font-medium",children:p.routePath})]}),e.jsx(h,{variant:"secondary",className:P.className,children:P.label})]}),e.jsxs("div",{className:"mt-3 grid gap-2 sm:grid-cols-2",children:[e.jsx(_,{label:"Entries",value:`${p.entries.length}`,hint:"configured rows"}),e.jsx(_,{label:"Secrets",value:`${K.length}/${p.entries.length||0}`,hint:"stored in CLIProxy"})]}),e.jsx("div",{className:"mt-3 rounded-lg border bg-muted/15 p-3 text-xs leading-5 text-muted-foreground",children:"Overview handles OAuth sign-ins. This page stores CLIProxy-managed keys and connectors. API Profiles remains for CCS-native Anthropic-compatible profiles."})]});return e.jsxs("div",{className:"flex h-full min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"flex w-80 flex-col border-r bg-muted/30",children:[e.jsxs("div",{className:"border-b bg-background p-4",children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ze,{className:"h-5 w-5 text-primary"}),e.jsx("h1",{className:"font-semibold",children:"CLIProxy Plus"})]}),e.jsx(f,{variant:"ghost",size:"icon",className:"h-8 w-8",type:"button",onClick:()=>void d(),disabled:o,children:e.jsx(le,{className:H("h-4 w-4",o&&"animate-spin")})})]}),e.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:"AI Providers"}),e.jsxs(f,{variant:"default",size:"sm",className:"w-full gap-2",type:"button",onClick:q,children:[e.jsx(Se,{className:"h-4 w-4"}),p.supportsNamedEntries?"Create Connector":`Add ${p.displayName} Entry`]})]}),e.jsx(ee,{className:"flex-1",children:e.jsxs("div",{className:"p-2",children:[e.jsx("div",{className:"px-3 py-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Provider Families"}),e.jsx(os,{families:N,selectedFamily:y,onSelect:w})]})}),e.jsx("div",{className:"border-t p-3",children:e.jsx(Qe,{})}),e.jsx("div",{className:"border-t bg-background p-3 text-xs text-muted-foreground",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{children:[N.length," families"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Ae,{className:"h-3 w-3 text-emerald-600"}),B," ready"]})]})})]}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col bg-background",children:[e.jsx("div",{className:"shrink-0 border-b bg-background px-6 py-4",children:e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(me,{provider:ue(p.id),size:"lg"}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h2",{className:"text-lg font-semibold",children:p.displayName}),e.jsx(h,{variant:"secondary",className:P.className,children:P.label}),e.jsx(h,{variant:"outline",className:"uppercase",children:p.authMode}),e.jsx(h,{variant:"outline",className:"font-mono text-[11px]",children:p.routePath})]}),e.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:p.description})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(f,{type:"button",variant:"ghost",size:"sm",onClick:()=>void d(),disabled:o,children:e.jsx(le,{className:H("h-4 w-4",o&&"animate-spin")})}),e.jsx(f,{type:"button",variant:"outline",onClick:()=>s("/cliproxy/control-panel"),children:"Control Panel"}),e.jsxs(f,{type:"button",variant:"outline",onClick:()=>s("/providers"),children:["API Profiles",e.jsx(Ie,{className:"ml-1 h-3.5 w-3.5"})]})]})]})}),D?e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[e.jsxs("div",{className:"shrink-0 border-b bg-muted/5 px-6 py-4",children:[e.jsxs("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:[e.jsx(es,{className:"h-3 w-3"}),R?"Saved entries":"Saved entry"]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(h,{variant:"outline",className:"text-[11px]",children:[p.entries.length," entries"]}),e.jsxs(h,{variant:"outline",className:"text-[11px]",children:[K.length,"/",p.entries.length," secrets stored"]})]})]}),R?e.jsx("div",{className:"flex flex-wrap gap-3",children:p.entries.map(n=>e.jsxs("button",{type:"button",onClick:()=>J(n.id),className:H("min-w-[220px] max-w-[280px] flex-1 rounded-xl border bg-background px-4 py-3 text-left transition-colors",n.id===L?"border-primary/30 bg-primary/5 shadow-sm":"border-border/60 hover:bg-muted/50"),children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("div",{className:"truncate text-sm font-medium",children:n.label}),e.jsx(ce,{configured:n.secretConfigured})]}),e.jsx("div",{className:"mt-2 truncate text-xs text-muted-foreground",children:n.baseUrl||p.routePath}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-1.5",children:[e.jsx(h,{variant:"outline",className:"text-[10px]",children:de(n)}),n.models.length>0?e.jsx(h,{variant:"outline",className:"text-[10px]",children:te(n.models)}):null,e.jsxs(h,{variant:"outline",className:"text-[10px]",children:[n.headers.length," hdr"]})]})]},n.id))}):g?e.jsx("div",{className:"rounded-xl border bg-background px-4 py-3",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("div",{className:"truncate text-sm font-medium",children:g.label}),e.jsx(ce,{configured:g.secretConfigured})]}),e.jsx("div",{className:"mt-1 truncate text-xs text-muted-foreground",children:g.baseUrl||p.routePath})]}),e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[e.jsx(h,{variant:"outline",className:"text-[10px]",children:de(g)}),g.models.length>0?e.jsx(h,{variant:"outline",className:"text-[10px]",children:te(g.models)}):null,e.jsxs(h,{variant:"outline",className:"text-[10px]",children:[g.headers.length," hdr"]})]})]})}):null]}),g?e.jsx(Us,{family:p,entry:g,source:r.source,isSaving:c.isPending,onSave:async n=>{await c.mutateAsync({family:y,entryId:g.id,data:n}),d()},onDelete:()=>O(g)},g.id):null]}):e.jsx(ee,{className:"flex-1",children:e.jsxs("div",{className:"space-y-6 p-6",children:[F,e.jsx(Ls,{family:p,onAddEntry:q,onOpenControlPanel:()=>s("/cliproxy/control-panel"),onOpenProfiles:()=>s("/providers")})]})})]}),e.jsx(hs,{family:y,entry:b,open:S,onOpenChange:E,onSubmit:async n=>{b?await c.mutateAsync({family:y,entryId:b.id,data:n}):await l.mutateAsync({family:y,data:n}),E(!1),T(null),d()},isSaving:l.isPending||c.isPending},`${y}:${b?.id??"new"}:${S?"open":"closed"}`),e.jsx(We,{open:j!==null,title:"Remove provider entry?",description:j?`This removes ${j.label} from ${p.displayName}.`:"",confirmText:"Remove",variant:"destructive",onConfirm:async()=>{j&&(await v.mutateAsync({family:y,entryId:j.id}),O(null))},onCancel:()=>O(null)})]})}export{Gs as CliproxyAiProvidersPage};
@@ -1 +0,0 @@
1
- import{r as d}from"./react-vendor-CNOkPC89.js";const M=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),_=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,c,o)=>o?o.toUpperCase():c.toLowerCase()),s=t=>{const e=_(t);return e.charAt(0).toUpperCase()+e.slice(1)},k=(...t)=>t.filter((e,c,o)=>!!e&&e.trim()!==""&&o.indexOf(e)===c).join(" ").trim(),v=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var x={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const m=d.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:c=2,absoluteStrokeWidth:o,className:n="",children:h,iconNode:p,...y},r)=>d.createElement("svg",{ref:r,...x,width:e,height:e,stroke:t,strokeWidth:o?Number(c)*24/Number(e):c,className:k("lucide",n),...!h&&!v(y)&&{"aria-hidden":"true"},...y},[...p.map(([i,l])=>d.createElement(i,l)),...Array.isArray(h)?h:[h]]));const a=(t,e)=>{const c=d.forwardRef(({className:o,...n},h)=>d.createElement(m,{ref:h,iconNode:e,className:k(`lucide-${M(s(t))}`,`lucide-${t}`,o),...n}));return c.displayName=s(t),c};const g=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],Z2=a("activity",g);const f=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],D2=a("archive",f);const w=[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]],E2=a("arrow-down-left",w);const $=[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]],W2=a("arrow-down-right",$);const N=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],O2=a("arrow-down",N);const u=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],G2=a("arrow-left",u);const z=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],T2=a("arrow-right",z);const b=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],I2=a("arrow-up-right",b);const q=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],K2=a("arrow-up",q);const C=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],X2=a("book-open",C);const A=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Q2=a("bot",A);const j=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],J2=a("box",j);const H=[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]],Y2=a("brain-circuit",H);const L=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],a0=a("brain",L);const V=[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]],e0=a("bug",V);const S=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],t0=a("calendar-clock",S);const P=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],c0=a("calendar",P);const B=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],o0=a("chart-column",B);const F=[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]],h0=a("chart-pie",F);const R=[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]],d0=a("check-check",R);const U=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],n0=a("check",U);const Z=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],y0=a("chevron-down",Z);const D=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],s0=a("chevron-left",D);const E=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],k0=a("chevron-right",E);const W=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],p0=a("chevron-up",W);const O=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],r0=a("chevrons-up-down",O);const G=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],i0=a("circle-alert",G);const T=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],l0=a("circle-check-big",T);const I=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],M0=a("circle-check",I);const K=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],_0=a("circle-question-mark",K);const X=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],v0=a("circle-x",X);const Q=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],x0=a("circle",Q);const J=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],m0=a("clock",J);const Y=[["path",{d:"m10.852 19.772-.383.924",key:"r7sl7d"}],["path",{d:"m13.148 14.228.383-.923",key:"1d5zpm"}],["path",{d:"M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923",key:"1ydik7"}],["path",{d:"m13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544",key:"1m1vsf"}],["path",{d:"m14.772 15.852.923-.383",key:"660p6e"}],["path",{d:"m14.772 18.148.923.383",key:"hrcpis"}],["path",{d:"M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2",key:"j2q98n"}],["path",{d:"m9.228 15.852-.923-.383",key:"1p9ong"}],["path",{d:"m9.228 18.148-.923.383",key:"6558rz"}]],g0=a("cloud-cog",Y);const a1=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],f0=a("cloud",a1);const e1=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],w0=a("code-xml",e1);const t1=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],$0=a("code",t1);const c1=[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]],N0=a("coins",c1);const o1=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],u0=a("copy",o1);const h1=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],z0=a("cpu",h1);const d1=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],b0=a("database",d1);const n1=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],q0=a("dollar-sign",n1);const y1=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],C0=a("download",y1);const s1=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],A0=a("ellipsis",s1);const k1=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],j0=a("external-link",k1);const p1=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],H0=a("eye-off",p1);const r1=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],L0=a("eye",r1);const i1=[["path",{d:"M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6",key:"14cnrg"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1",key:"sr0ebq"}],["path",{d:"M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1",key:"w793db"}]],V0=a("file-braces-corner",i1);const l1=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]],S0=a("file-braces",l1);const M1=[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],P0=a("file-code-corner",M1);const _1=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]],B0=a("file-code",_1);const v1=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]],F0=a("file-down",v1);const x1=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],R0=a("file-exclamation-point",x1);const m1=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],U0=a("file-text",m1);const g1=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"m9 13 2 2 4-4",key:"6343dt"}]],Z0=a("folder-check",g1);const f1=[["path",{d:"M10 10.5 8 13l2 2.5",key:"m4t9c1"}],["path",{d:"m14 10.5 2 2.5-2 2.5",key:"14w2eb"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z",key:"1u1bxd"}]],D0=a("folder-code",f1);const w1=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],E0=a("folder-open",w1);const $1=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],W0=a("folder",$1);const N1=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],O0=a("gauge",N1);const u1=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],G0=a("git-branch",u1);const z1=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],T0=a("github",z1);const b1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],I0=a("globe",b1);const q1=[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]],K0=a("grip-horizontal",q1);const C1=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],X0=a("grip-vertical",C1);const A1=[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}]],Q0=a("heart",A1);const j1=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],J0=a("history",j1);const H1=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Y0=a("house",H1);const L1=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],aa=a("image",L1);const V1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],ea=a("info",V1);const S1=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],ta=a("key-round",S1);const P1=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],ca=a("key",P1);const B1=[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]],oa=a("laptop",B1);const F1=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],ha=a("layers",F1);const R1=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],da=a("link-2",R1);const U1=[["path",{d:"M2 5h20",key:"1fs1ex"}],["path",{d:"M6 12h12",key:"8npq4p"}],["path",{d:"M9 19h6",key:"456am0"}]],na=a("list-filter",U1);const Z1=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],ya=a("loader-circle",Z1);const D1=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],sa=a("lock",D1);const E1=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],ka=a("log-out",E1);const W1=[["path",{d:"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"q8bfy3"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 6v8",key:"15ugcq"}]],pa=a("megaphone",W1);const O1=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],ra=a("message-square",O1);const G1=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],ia=a("monitor",G1);const T1=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],la=a("moon",T1);const I1=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],Ma=a("network",I1);const K1=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],_a=a("panel-left",K1);const X1=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],va=a("pause",X1);const Q1=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],xa=a("pen-line",Q1);const J1=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],ma=a("pencil",J1);const Y1=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],ga=a("play",Y1);const a2=[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]],fa=a("plug-zap",a2);const e2=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],wa=a("plus",e2);const t2=[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],$a=a("power-off",t2);const c2=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],Na=a("power",c2);const o2=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],ua=a("puzzle",o2);const h2=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],za=a("radio",h2);const d2=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],ba=a("refresh-cw",d2);const n2=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],qa=a("rotate-ccw",n2);const y2=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Ca=a("rotate-cw",y2);const s2=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],Aa=a("route",s2);const k2=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],ja=a("save",k2);const p2=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Ha=a("search",p2);const r2=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],La=a("server",r2);const i2=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Va=a("settings-2",i2);const l2=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Sa=a("settings",l2);const M2=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],Pa=a("shield-alert",M2);const _2=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ba=a("shield-check",_2);const v2=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Fa=a("shield",v2);const x2=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],Ra=a("sliders-horizontal",x2);const m2=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Ua=a("sparkles",m2);const g2=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],Za=a("square-terminal",g2);const f2=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],Da=a("square",f2);const w2=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Ea=a("star",w2);const $2=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Wa=a("sun",$2);const N2=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Oa=a("terminal",N2);const u2=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Ga=a("trash-2",u2);const z2=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Ta=a("trending-up",z2);const b2=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Ia=a("triangle-alert",b2);const q2=[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]],Ka=a("unlink",q2);const C2=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Xa=a("upload",C2);const A2=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],Qa=a("user",A2);const j2=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Ja=a("users",j2);const H2=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]],Ya=a("wand-sparkles",H2);const L2=[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]],ae=a("waves",L2);const V2=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],ee=a("wifi-off",V2);const S2=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],te=a("wifi",S2);const P2=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],ce=a("workflow",P2);const B2=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],oe=a("wrench",B2);const F2=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],he=a("x",F2);const R2=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],de=a("zap",R2);export{I2 as $,Z2 as A,X2 as B,k0 as C,v0 as D,H0 as E,E0 as F,O0 as G,Y0 as H,ga as I,X0 as J,ca as K,ya as L,la as M,qa as N,za as O,_a as P,z0 as Q,ba as R,Za as S,Ia as T,Ja as U,ea as V,ee as W,he as X,Oa as Y,de as Z,$0 as _,o0 as a,t0 as a$,E2 as a0,U0 as a1,R0 as a2,K0 as a3,Va as a4,aa as a5,wa as a6,Ua as a7,ra as a8,a0 as a9,A0 as aA,D0 as aB,G0 as aC,na as aD,ce as aE,Aa as aF,Ba as aG,V0 as aH,Na as aI,$a as aJ,r0 as aK,fa as aL,ha as aM,Z0 as aN,xa as aO,J0 as aP,P0 as aQ,W0 as aR,Y2 as aS,Ka as aT,da as aU,ae as aV,ma as aW,d0 as aX,oe as aY,ia as aZ,Q2 as a_,La as aa,D2 as ab,B0 as ac,s0 as ad,sa as ae,q0 as af,b0 as ag,W2 as ah,c0 as ai,N0 as aj,Ta as ak,h0 as al,Ga as am,ja as an,Ha as ao,Ya as ap,w0 as aq,Ra as ar,g0 as as,T2 as at,Xa as au,S0 as av,C0 as aw,G2 as ax,Pa as ay,Ma as az,T0 as b,pa as b0,f0 as b1,oa as b2,J2 as b3,e0 as b4,F0 as b5,Ca as b6,Da as b7,O2 as b8,K2 as b9,ua as c,Sa as d,Wa as e,L0 as f,te as g,Fa as h,Q0 as i,l0 as j,x0 as k,n0 as l,ta as m,u0 as n,j0 as o,Qa as p,ka as q,y0 as r,p0 as s,I0 as t,m0 as u,i0 as v,M0 as w,_0 as x,Ea as y,va as z};