@kaitranntt/ccs 7.51.0 → 7.52.0-dev.1

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 (201) hide show
  1. package/README.md +23 -1
  2. package/dist/api/services/profile-writer.d.ts.map +1 -1
  3. package/dist/api/services/profile-writer.js +33 -0
  4. package/dist/api/services/profile-writer.js.map +1 -1
  5. package/dist/auth/profile-continuity-inheritance.d.ts +20 -0
  6. package/dist/auth/profile-continuity-inheritance.d.ts.map +1 -0
  7. package/dist/auth/profile-continuity-inheritance.js +137 -0
  8. package/dist/auth/profile-continuity-inheritance.js.map +1 -0
  9. package/dist/ccs.js +41 -3
  10. package/dist/ccs.js.map +1 -1
  11. package/dist/cliproxy/auth/oauth-process.d.ts +1 -0
  12. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  13. package/dist/cliproxy/auth/oauth-process.js +63 -4
  14. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  15. package/dist/cliproxy/catalog-cache.d.ts.map +1 -1
  16. package/dist/cliproxy/catalog-cache.js +10 -3
  17. package/dist/cliproxy/catalog-cache.js.map +1 -1
  18. package/dist/cliproxy/composite-validator.d.ts.map +1 -1
  19. package/dist/cliproxy/composite-validator.js +9 -0
  20. package/dist/cliproxy/composite-validator.js.map +1 -1
  21. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  22. package/dist/cliproxy/config/env-builder.js +74 -16
  23. package/dist/cliproxy/config/env-builder.js.map +1 -1
  24. package/dist/cliproxy/config/generator.d.ts +3 -1
  25. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  26. package/dist/cliproxy/config/generator.js +17 -6
  27. package/dist/cliproxy/config/generator.js.map +1 -1
  28. package/dist/cliproxy/executor/env-resolver.d.ts +2 -0
  29. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
  30. package/dist/cliproxy/executor/env-resolver.js +2 -1
  31. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  32. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  33. package/dist/cliproxy/executor/index.js +15 -0
  34. package/dist/cliproxy/executor/index.js.map +1 -1
  35. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  36. package/dist/cliproxy/model-catalog.js +11 -39
  37. package/dist/cliproxy/model-catalog.js.map +1 -1
  38. package/dist/cliproxy/model-config.d.ts.map +1 -1
  39. package/dist/cliproxy/model-config.js +12 -11
  40. package/dist/cliproxy/model-config.js.map +1 -1
  41. package/dist/cliproxy/model-id-normalizer.d.ts +37 -2
  42. package/dist/cliproxy/model-id-normalizer.d.ts.map +1 -1
  43. package/dist/cliproxy/model-id-normalizer.js +132 -7
  44. package/dist/cliproxy/model-id-normalizer.js.map +1 -1
  45. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  46. package/dist/cliproxy/services/variant-service.js +22 -6
  47. package/dist/cliproxy/services/variant-service.js.map +1 -1
  48. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  49. package/dist/cliproxy/services/variant-settings.js +5 -3
  50. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  51. package/dist/cliproxy/stats-fetcher.d.ts +41 -0
  52. package/dist/cliproxy/stats-fetcher.d.ts.map +1 -1
  53. package/dist/cliproxy/stats-fetcher.js +32 -1
  54. package/dist/cliproxy/stats-fetcher.js.map +1 -1
  55. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -1
  56. package/dist/cliproxy/tool-sanitization-proxy.js +6 -0
  57. package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -1
  58. package/dist/cliproxy/types.d.ts +2 -0
  59. package/dist/cliproxy/types.d.ts.map +1 -1
  60. package/dist/commands/api-command.d.ts.map +1 -1
  61. package/dist/commands/api-command.js +2 -0
  62. package/dist/commands/api-command.js.map +1 -1
  63. package/dist/commands/config-command.js +2 -2
  64. package/dist/commands/config-command.js.map +1 -1
  65. package/dist/commands/help-command.d.ts.map +1 -1
  66. package/dist/commands/help-command.js +9 -1
  67. package/dist/commands/help-command.js.map +1 -1
  68. package/dist/config/unified-config-loader.d.ts +5 -0
  69. package/dist/config/unified-config-loader.d.ts.map +1 -1
  70. package/dist/config/unified-config-loader.js +62 -1
  71. package/dist/config/unified-config-loader.js.map +1 -1
  72. package/dist/config/unified-config-types.d.ts +10 -0
  73. package/dist/config/unified-config-types.d.ts.map +1 -1
  74. package/dist/config/unified-config-types.js.map +1 -1
  75. package/dist/copilot/copilot-executor.d.ts +2 -2
  76. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  77. package/dist/copilot/copilot-executor.js +4 -3
  78. package/dist/copilot/copilot-executor.js.map +1 -1
  79. package/dist/delegation/headless-executor.d.ts.map +1 -1
  80. package/dist/delegation/headless-executor.js +4 -1
  81. package/dist/delegation/headless-executor.js.map +1 -1
  82. package/dist/errors/error-types.d.ts +8 -0
  83. package/dist/errors/error-types.d.ts.map +1 -1
  84. package/dist/errors/error-types.js +13 -1
  85. package/dist/errors/error-types.js.map +1 -1
  86. package/dist/shared/provider-preset-catalog.d.ts +1 -1
  87. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  88. package/dist/shared/provider-preset-catalog.js +19 -1
  89. package/dist/shared/provider-preset-catalog.js.map +1 -1
  90. package/dist/types/config.d.ts +2 -0
  91. package/dist/types/config.d.ts.map +1 -1
  92. package/dist/types/config.js.map +1 -1
  93. package/dist/ui/assets/accounts-szAllF_0.js +1 -0
  94. package/dist/ui/assets/{alert-dialog-CetY4Iww.js → alert-dialog-DPdKlUG9.js} +1 -1
  95. package/dist/ui/assets/api-Bq7TnM0v.js +1 -0
  96. package/dist/ui/assets/auth-section-DYPWbNRj.js +1 -0
  97. package/dist/ui/assets/backups-section-gIWfCGmR.js +1 -0
  98. package/dist/ui/assets/{checkbox-Dhm5Fzkb.js → checkbox-CcX8-GfD.js} +1 -1
  99. package/dist/ui/assets/cliproxy-SS8eRAX0.js +3 -0
  100. package/dist/ui/assets/cliproxy-control-panel-Bu0TtDft.js +1 -0
  101. package/dist/ui/assets/{confirm-dialog-Dn3SrwNV.js → confirm-dialog-BZj0PYFs.js} +1 -1
  102. package/dist/ui/assets/copilot-DnJj3frU.js +3 -0
  103. package/dist/ui/assets/cursor-rS1S0i_y.js +1 -0
  104. package/dist/ui/assets/droid-Dfc2QwbE.js +2 -0
  105. package/dist/ui/assets/globalenv-section-BrHb5lRq.js +1 -0
  106. package/dist/ui/assets/health-B0WQPDXb.js +1 -0
  107. package/dist/ui/assets/icons-BYZM_9Gm.js +1 -0
  108. package/dist/ui/assets/index-BFTIN2qO.js +1 -0
  109. package/dist/ui/assets/index-BVBXszJi.js +1 -0
  110. package/dist/ui/assets/index-DCQkhmoo.js +47 -0
  111. package/dist/ui/assets/index-DxKsP0Ke.js +1 -0
  112. package/dist/ui/assets/index-LHbr_5SB.js +1 -0
  113. package/dist/ui/assets/index-WBo504Wu.css +1 -0
  114. package/dist/ui/assets/providers/alibabacloud-color.svg +1 -0
  115. package/dist/ui/assets/proxy-status-widget-DPXgRGkB.js +1 -0
  116. package/dist/ui/assets/{radix-ui-C1Gpgz6I.js → radix-ui-BR1vy4kf.js} +3 -3
  117. package/dist/ui/assets/{separator-BLVyAGAm.js → separator-DtcqgZIS.js} +1 -1
  118. package/dist/ui/assets/shared-DPJ_z23p.js +8 -0
  119. package/dist/ui/assets/{switch-CwLyB4JK.js → switch-BL5xZtnr.js} +1 -1
  120. package/dist/ui/assets/{tanstack-DDJIhNJd.js → tanstack-e99Cjjy2.js} +1 -1
  121. package/dist/ui/assets/updates-B3HKUp7y.js +1 -0
  122. package/dist/ui/index.html +5 -5
  123. package/dist/utils/shell-executor.d.ts +5 -0
  124. package/dist/utils/shell-executor.d.ts.map +1 -1
  125. package/dist/utils/shell-executor.js +22 -3
  126. package/dist/utils/shell-executor.js.map +1 -1
  127. package/dist/web-server/index.d.ts.map +1 -1
  128. package/dist/web-server/index.js +2 -0
  129. package/dist/web-server/index.js.map +1 -1
  130. package/dist/web-server/model-pricing.d.ts.map +1 -1
  131. package/dist/web-server/model-pricing.js +50 -1
  132. package/dist/web-server/model-pricing.js.map +1 -1
  133. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +1 -0
  134. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  135. package/dist/web-server/routes/cliproxy-auth-routes.js +13 -13
  136. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  137. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  138. package/dist/web-server/routes/cliproxy-stats-routes.js +107 -101
  139. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  140. package/dist/web-server/routes/misc-routes.d.ts.map +1 -1
  141. package/dist/web-server/routes/misc-routes.js +17 -17
  142. package/dist/web-server/routes/misc-routes.js.map +1 -1
  143. package/dist/web-server/routes/profile-routes.d.ts +0 -2
  144. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  145. package/dist/web-server/routes/profile-routes.js +8 -18
  146. package/dist/web-server/routes/profile-routes.js.map +1 -1
  147. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  148. package/dist/web-server/routes/proxy-routes.js +40 -38
  149. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  150. package/dist/web-server/routes/route-helpers.d.ts +15 -0
  151. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  152. package/dist/web-server/routes/route-helpers.js +145 -15
  153. package/dist/web-server/routes/route-helpers.js.map +1 -1
  154. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  155. package/dist/web-server/routes/settings-routes.js +143 -42
  156. package/dist/web-server/routes/settings-routes.js.map +1 -1
  157. package/dist/web-server/routes/variant-routes.d.ts +0 -2
  158. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  159. package/dist/web-server/routes/variant-routes.js +3 -17
  160. package/dist/web-server/routes/variant-routes.js.map +1 -1
  161. package/dist/web-server/usage/aggregator.d.ts +9 -0
  162. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  163. package/dist/web-server/usage/aggregator.js +71 -7
  164. package/dist/web-server/usage/aggregator.js.map +1 -1
  165. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +34 -0
  166. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -0
  167. package/dist/web-server/usage/cliproxy-usage-syncer.js +158 -0
  168. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -0
  169. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +26 -0
  170. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -0
  171. package/dist/web-server/usage/cliproxy-usage-transformer.js +141 -0
  172. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -0
  173. package/dist/web-server/usage/disk-cache.d.ts.map +1 -1
  174. package/dist/web-server/usage/disk-cache.js +4 -1
  175. package/dist/web-server/usage/disk-cache.js.map +1 -1
  176. package/dist/web-server/usage/handlers.d.ts +1 -1
  177. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  178. package/dist/web-server/usage/handlers.js +8 -3
  179. package/dist/web-server/usage/handlers.js.map +1 -1
  180. package/package.json +1 -1
  181. package/dist/ui/assets/accounts-y2u0CVK8.js +0 -1
  182. package/dist/ui/assets/api-5q1FT1uL.js +0 -1
  183. package/dist/ui/assets/auth-section-CaQeee-F.js +0 -1
  184. package/dist/ui/assets/backups-section-hF88BjYJ.js +0 -1
  185. package/dist/ui/assets/cliproxy-BeYNWmY_.js +0 -3
  186. package/dist/ui/assets/cliproxy-control-panel-CJELeI80.js +0 -1
  187. package/dist/ui/assets/copilot-vwT-4_V4.js +0 -3
  188. package/dist/ui/assets/cursor-CN3lIX63.js +0 -1
  189. package/dist/ui/assets/droid-DBP2yCY7.js +0 -2
  190. package/dist/ui/assets/globalenv-section-DNKAJasL.js +0 -1
  191. package/dist/ui/assets/health-C7tNiLzc.js +0 -1
  192. package/dist/ui/assets/icons-DrewC9c3.js +0 -1
  193. package/dist/ui/assets/index-C8-ef-r7.js +0 -1
  194. package/dist/ui/assets/index-MGh88HoC.js +0 -1
  195. package/dist/ui/assets/index-QBUSDLTx.js +0 -1
  196. package/dist/ui/assets/index-k-HuyjpO.js +0 -47
  197. package/dist/ui/assets/index-s-oTl3hW.css +0 -1
  198. package/dist/ui/assets/index-uYnNU6Ut.js +0 -1
  199. package/dist/ui/assets/proxy-status-widget-CIm5vKY7.js +0 -1
  200. package/dist/ui/assets/shared-CHH09ZNi.js +0 -8
  201. package/dist/ui/assets/updates-VlxL3aum.js +0 -1
@@ -0,0 +1 @@
1
+ import{j as s}from"./radix-ui-BR1vy4kf.js";import{g as pe,r as N}from"./react-vendor-CNOkPC89.js";import{bj as re,bk as ae,bl as ie,bm as me,bn as q,bo as Z,bp as D,bq as xe,br as fe,a as ge,bi as he,aO as ye,bs as be,bt as je,bu as Ne,bv as Se,bw as ve,c as L,B as ee,aA as Ce,M as Ae,O as we,r as Ee,s as ke,t as Te,v as Ve,w as Pe,d as J,T as Ie,p as $e,q as We,Y as Oe}from"./index-DCQkhmoo.js";import{A as De,a as Re,b as Ue,c as _e,d as Fe,e as Le,f as Me,g as qe}from"./alert-dialog-DPdKlUG9.js";import{u as oe,a as Be,b as He,e as Ke}from"./tanstack-e99Cjjy2.js";import{t as G}from"./notifications-B2HqRBj7.js";import{s as ze,A as Ye,R as B,aW as Ze,aX as Ge,aY as Qe,X as Xe,c as Je,aZ as et,a_ as tt,U as st,t as nt,k as rt,a3 as at,ar as it,T as te,ay as ot}from"./icons-BYZM_9Gm.js";var Q,se;function lt(){return se||(se=1,Q={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Q}var ct=lt();const ut=pe(ct);var dt=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function ne(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(ut[n[1]]||e.charAt(e.length-2)==="/")&&(t.voidElement=!0),t.name.startsWith("!--"))){var r=e.indexOf("-->");return{type:"comment",comment:r!==-1?e.slice(4,r):""}}for(var a=new RegExp(dt),i=null;(i=a.exec(e))!==null;)if(i[0].trim())if(i[1]){var l=i[1].trim(),c=[l,""];l.indexOf("=")>-1&&(c=l.split("=")),t.attrs[c[0]]=c[1],a.lastIndex--}else i[2]&&(t.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1));return t}var pt=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,mt=/^\s*$/,xt=Object.create(null);function le(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?(function(n){var r=[];for(var a in n)r.push(a+'="'+n[a]+'"');return r.length?" "+r.join(" "):""})(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(le,"")+"</"+t.name+">";case"comment":return e+"<!--"+t.comment+"-->"}}var ft={parse:function(e,t){t||(t={}),t.components||(t.components=xt);var n,r=[],a=[],i=-1,l=!1;if(e.indexOf("<")!==0){var c=e.indexOf("<");r.push({type:"text",content:c===-1?e:e.substring(0,c)})}return e.replace(pt,function(p,u){if(l){if(p!=="</"+n.name+">")return;l=!1}var g,S=p.charAt(1)!=="/",k=p.startsWith("<!--"),x=u+p.length,m=e.charAt(x);if(k){var C=ne(p);return i<0?(r.push(C),r):((g=a[i]).children.push(C),r)}if(S&&(i++,(n=ne(p)).type==="tag"&&t.components[n.name]&&(n.type="component",l=!0),n.voidElement||l||!m||m==="<"||n.children.push({type:"text",content:e.slice(x,e.indexOf("<",x))}),i===0&&r.push(n),(g=a[i-1])&&g.children.push(n),a[i]=n),(!S||n.voidElement)&&(i>-1&&(n.voidElement||n.name===p.slice(2,-1))&&(i--,n=i===-1?r:a[i]),!l&&m!=="<"&&m)){g=i===-1?r:a[i].children;var y=e.indexOf("<",x),V=e.slice(x,y===-1?void 0:y);mt.test(V)&&(V=" "),(y>-1&&i+g.length>=0||V!==" ")&&g.push({type:"text",content:V})}}),r},stringify:function(e){return e.reduce(function(t,n){return t+le("",n)},"")}};const K=(e,t)=>{if(!e)return!1;const n=e.props?.children??e.children;return t?n.length>0:!!n},z=e=>{if(!e)return[];const t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?M(t):t},gt=e=>Array.isArray(e)&&e.every(N.isValidElement),M=e=>Array.isArray(e)?e:[e],ht=(e,t)=>{const n={...t};return n.props={...t.props,...e.props},n},yt=e=>{const t={};if(!e)return t;const n=r=>{M(r).forEach(i=>{q(i)||(K(i)?n(z(i)):D(i)&&!N.isValidElement(i)&&Object.assign(t,i))})};return n(e),t},ce=(e,t,n,r)=>{if(!e)return"";let a="";const i=M(e),l=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return i.forEach((c,p)=>{if(q(c)){a+=`${c}`;return}if(N.isValidElement(c)){const{props:u,type:g}=c,S=Object.keys(u).length,k=l.indexOf(g)>-1,x=u.children;if(!x&&k&&!S){a+=`<${g}/>`;return}if(!x&&(!k||S)||u.i18nIsDynamicList){a+=`<${p}></${p}>`;return}if(k&&S===1&&q(x)){a+=`<${g}>${x}</${g}>`;return}const m=ce(x,t,n,r);a+=`<${p}>${m}</${p}>`;return}if(c===null){Z(n,"TRANS_NULL_VALUE","Passed in a null value as child",{i18nKey:r});return}if(D(c)){const{format:u,...g}=c,S=Object.keys(g);if(S.length===1){const k=u?`${S[0]}, ${u}`:S[0];a+=`{{${k}}}`;return}Z(n,"TRANS_INVALID_OBJ","Invalid child - Object should only have keys {{ value, format }} (format is optional).",{i18nKey:r,child:c});return}Z(n,"TRANS_INVALID_VAR","Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.",{i18nKey:r,child:c})}),a},bt=(e,t=[],n={})=>{if(!e)return e;const r=Object.keys(n),a=[...t,...r];let i="",l=0;for(;l<e.length;)if(e[l]==="<"){let c=!1;const p=e.slice(l).match(/^<\/(\d+|[a-zA-Z][a-zA-Z0-9_-]*)>/);if(p){const u=p[1];(/^\d+$/.test(u)||a.includes(u))&&(c=!0,i+=p[0],l+=p[0].length)}if(!c){const u=e.slice(l).match(/^<(\d+|[a-zA-Z][a-zA-Z0-9_-]*)(\s+[\w-]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*(\/)?>/);if(u){const g=u[1];(/^\d+$/.test(g)||a.includes(g))&&(c=!0,i+=u[0],l+=u[0].length)}}c||(i+="&lt;",l+=1)}else i+=e[l],l+=1;return i},jt=(e,t,n,r,a,i,l)=>{if(n==="")return[];const c=a.transKeepBasicHtmlNodesFor||[],p=n&&new RegExp(c.map(f=>`<${f}`).join("|")).test(n);if(!e&&!t&&!p&&!l)return[n];const u=t??{},g=f=>{M(f).forEach(h=>{q(h)||(K(h)?g(z(h)):D(h)&&!N.isValidElement(h)&&Object.assign(u,h))})};g(e);const S=bt(n,c,u),k=ft.parse(`<0>${S}</0>`),x={...u,...i},m=(f,A,h)=>{const w=z(f),W=y(w,A.children,h);return gt(w)&&W.length===0||f.props?.i18nIsDynamicList?w:W},C=(f,A,h,w,W)=>{f.dummy?(f.children=A,h.push(N.cloneElement(f,{key:w},W?void 0:A))):h.push(...N.Children.map([f],d=>{const o="data-i18n-is-dynamic-list",v={key:w,[o]:void 0};return d&&d.props&&Object.keys(d.props).forEach(E=>{E==="ref"||E==="children"||E==="i18nIsDynamicList"||E===o||(v[E]=d.props[E])}),N.cloneElement(d,v,W?null:A)}))},y=(f,A,h)=>{const w=M(f);return M(A).reduce((d,o,v)=>{const E=o.children?.[0]?.content&&r.services.interpolator.interpolate(o.children[0].content,x,r.language);if(o.type==="tag"){let T=w[parseInt(o.name,10)];!T&&t&&(T=t[o.name]),h.length===1&&!T&&(T=h[0][o.name]),T||(T={});const P={...o.attrs};l&&Object.keys(P).forEach(j=>{const _=P[j];q(_)&&(P[j]=xe(_))});const b=Object.keys(P).length!==0?ht({props:P},T):T,$=N.isValidElement(b),R=$&&K(o,!0)&&!o.voidElement,O=p&&D(b)&&b.dummy&&!$,U=D(t)&&Object.hasOwnProperty.call(t,o.name);if(q(b)){const j=r.services.interpolator.interpolate(b,x,r.language);d.push(j)}else if(K(b)||R){const j=m(b,o,h);C(b,j,d,v)}else if(O){const j=y(w,o.children,h);C(b,j,d,v)}else if(Number.isNaN(parseFloat(o.name)))if(U){const j=m(b,o,h);C(b,j,d,v,o.voidElement)}else if(a.transSupportBasicHtmlNodes&&c.indexOf(o.name)>-1)if(o.voidElement)d.push(N.createElement(o.name,{key:`${o.name}-${v}`}));else{const j=y(w,o.children,h);d.push(N.createElement(o.name,{key:`${o.name}-${v}`},j))}else if(o.voidElement)d.push(`<${o.name} />`);else{const j=y(w,o.children,h);d.push(`<${o.name}>${j}</${o.name}>`)}else if(D(b)&&!$){const j=o.children[0]?E:null;j&&d.push(j)}else C(b,E,d,v,o.children.length!==1||!E)}else if(o.type==="text"){const T=a.transWrapTextNodes,P=typeof a.unescape=="function"?a.unescape:ie().unescape,b=l?P(r.services.interpolator.interpolate(o.content,x,r.language)):r.services.interpolator.interpolate(o.content,x,r.language);T?d.push(N.createElement(T,{key:`${o.name}-${v}`},b)):d.push(b)}return d},[])},V=y([{dummy:!0,children:e||[]}],k,M(e||[]));return z(V[0])},ue=(e,t,n)=>{const r=e.key||t,a=N.cloneElement(e,{key:r});if(!a.props||!a.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return a;function i(){return N.createElement(N.Fragment,null,a)}return N.createElement(i,{key:r})},Nt=(e,t)=>e.map((n,r)=>ue(n,r,t)),St=(e,t)=>{const n={};return Object.keys(e).forEach(r=>{Object.assign(n,{[r]:ue(e[r],r,t)})}),n},vt=(e,t,n,r)=>e?Array.isArray(e)?Nt(e,t):D(e)?St(e,t):(re(n,"TRANS_INVALID_COMPONENTS",'<Trans /> "components" prop expects an object or array',{i18nKey:r}),null):null,Ct=e=>!D(e)||Array.isArray(e)?!1:Object.keys(e).reduce((t,n)=>t&&Number.isNaN(Number.parseFloat(n)),!0);function At({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:i={},values:l,defaults:c,components:p,ns:u,i18n:g,t:S,shouldUnescape:k,...x}){const m=g||ae();if(!m)return re(m,"NO_I18NEXT_INSTANCE","Trans: You need to pass in an i18next instance using i18nextReactModule",{i18nKey:r}),e;const C=S||m.t.bind(m)||(Y=>Y),y={...ie(),...m.options?.react};let V=u||C.ns||m.options?.defaultNS;V=q(V)?[V]:V||["translation"];const{transDefaultProps:f}=y,A=f?.tOptions?{...f.tOptions,...i}:i,h=k??f?.shouldUnescape,w=f?.values?{...f.values,...l}:l,W=f?.components?{...f.components,...p}:p,d=ce(e,y,m,r),o=c||A?.defaultValue||d||y.transEmptyNodeValue||(typeof r=="function"?me(r):r),{hashTransKey:v}=y,E=r||(v?v(d||o):d||o);m.options?.interpolation?.defaultVariables?l=w&&Object.keys(w).length>0?{...w,...m.options.interpolation.defaultVariables}:{...m.options.interpolation.defaultVariables}:l=w;const T=yt(e);T&&typeof T.count=="number"&&t===void 0&&(t=T.count);const P=l||t!==void 0&&!m.options?.interpolation?.alwaysFormat||!e?A.interpolation:{interpolation:{...A.interpolation,prefix:"#$?",suffix:"?$#"}},b={...A,context:a||A.context,count:t,...l,...P,defaultValue:o,ns:V};let $=E?C(E,b):o;$===E&&o&&($=o);const R=vt(W,$,m,r);let O=R||e,U=null;Ct(R)&&(U=R,O=e);const j=jt(O,U,$,m,y,b,h),_=n??y.defaultTransParent;return _?N.createElement(_,x,j):j}function wt({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:i={},values:l,defaults:c,components:p,ns:u,i18n:g,t:S,shouldUnescape:k,...x}){const{i18n:m,defaultNS:C}=N.useContext(fe)||{},y=g||m||ae(),V=S||y?.t.bind(y);return At({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:i,values:l,defaults:c,components:p,ns:u||V?.ns||C||y?.options?.defaultNS,i18n:y,t:S,shouldUnescape:k,...x})}const Mt="2026-02-24-antigravity-oauth-v2",Et="I ACCEPT RISK",kt=Et,qt={reviewedIssue509:!1,understandsBanRisk:!1,acceptsFullResponsibility:!1,typedPhrase:""};function Bt(e){return e.reviewedIssue509&&e.understandsBanRisk&&e.acceptsFullResponsibility&&e.typedPhrase.trim().replace(/\s+/g," ").toUpperCase()===kt}async function Tt(){const e=await fetch("/api/cliproxy/sync/status");if(!e.ok){let t="Failed to fetch sync status";try{const n=await e.json();t=n.error||n.message||t}catch{}throw new Error(t)}return e.json()}async function Vt(){const e=new AbortController,t=setTimeout(()=>e.abort(),3e4);try{const n=await fetch("/api/cliproxy/sync",{method:"POST",headers:{"Content-Type":"application/json"},signal:e.signal});if(!n.ok){let r="Sync failed";try{const a=await n.json();r=a.error||a.message||r}catch{}throw new Error(r)}return n.json()}catch(n){throw n instanceof Error&&n.name==="AbortError"?new Error("Sync request timed out after 30 seconds"):n}finally{clearTimeout(t)}}function Pt(){return oe({queryKey:["cliproxy-sync-status"],queryFn:Tt,refetchInterval:3e4,retry:1,staleTime:1e4})}function It(){const e=Be();return He({mutationFn:Vt,onSuccess:t=>{e.invalidateQueries({queryKey:["cliproxy-sync-status"]}),e.invalidateQueries({queryKey:["cliproxy-sync-preview"]}),t.syncedCount===0?G.info("No profiles to sync"):G.success(`Synced ${t.syncedCount} profile${t.syncedCount===1?"":"s"} to CLIProxy`)},onError:t=>{G.error(`Sync failed: ${t.message}`)}})}function X(e,t){const n=e.replace(/-\d+$/,"").split(".").map(Number),r=t.replace(/-\d+$/,"").split(".").map(Number);for(let a=0;a<3;a++){if((n[a]||0)>(r[a]||0))return!0;if((n[a]||0)<(r[a]||0))return!1}return!1}function $t(e){if(!e)return"";const t=new Date(e).getTime(),r=Date.now()-t,a=Math.floor(r/(1e3*60*60)),i=Math.floor(r%(1e3*60*60)/(1e3*60));return a>0?`${a}h ${i}m`:`${i}m`}function Wt(e,t){if(!e)return"";const n=Date.now()-e,r=Math.floor(n/(1e3*60)),a=Math.floor(n/(1e3*60*60));return r<1?t("proxyStatusWidget.justNow"):r<60?t("proxyStatusWidget.minutesAgo",{count:r}):t("proxyStatusWidget.hoursAgo",{count:a})}function H({icon:e,tooltip:t,onClick:n,disabled:r,isPending:a,className:i,variant:l="ghost"}){return s.jsxs(Ie,{children:[s.jsx($e,{asChild:!0,children:s.jsx(J,{variant:l==="destructive-ghost"?"ghost":l,size:"sm",className:L("h-7 w-7 p-0",l==="destructive-ghost"&&"hover:bg-destructive/10 hover:text-destructive hover:border-destructive/30",i),onClick:n,disabled:r,children:a?s.jsx(B,{className:"w-3.5 h-3.5 animate-spin"}):s.jsx(e,{className:"w-3.5 h-3.5"})})}),s.jsx(We,{side:"bottom",className:"text-xs",children:t})]})}function Ht(){const{t:e}=ge(),{data:t,isLoading:n}=he(),{data:r}=ye(),{data:a,isLoading:i}=be(),l=je(),c=Ne(),p=Se(),u=ve(),{data:g}=Pt(),{mutate:S,isPending:k}=It(),[x,m]=N.useState(!1),[C,y]=N.useState(""),[V,f]=N.useState(!1),[A,h]=N.useState(null),{data:w}=oe({queryKey:["cliproxy-server-config"],queryFn:()=>Oe.cliproxyServer.get(),staleTime:3e4}),W=Ke({mutationKey:["update-backend"]})>0,d=w?.remote,o=d?.enabled&&d?.host,v=t?.running??!1,E=l.isPending||c.isPending||p.isPending||u.isPending||W||k,T=r?.hasUpdate??!1,P=r?.isStable===!1,b=r?.currentVersion,$=g?.configured??!1,R=e($?"proxyStatusWidget.syncReady":"proxyStatusWidget.noConfig"),O=P?r?.maxStableVersion||a?.latestStable:r?.latestVersion,U=I=>{if(!I)return;const F=a?.maxStableVersion||"6.6.80";if(X(I,F)){h(I),f(!0);return}u.mutate({version:I})},j=()=>{A&&u.mutate({version:A,force:!0}),f(!1),h(null)},_=()=>{f(!1),h(null)},Y=o?(()=>{const I=d.protocol||"http",F=d.port||(I==="https"?443:80);return I==="https"&&F===443||I==="http"&&F===80?d.host:`${d.host}:${F}`})():null;return o?s.jsxs("div",{className:L("rounded-lg border p-3 transition-colors","border-blue-500/30 bg-blue-500/5"),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(ze,{className:"w-4 h-4 text-blue-500"}),s.jsx("span",{className:"text-sm font-medium",children:e("proxyStatusWidget.remoteProxy")}),s.jsx(ee,{variant:"secondary",className:"text-[10px] h-4 px-1.5 bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",children:e("proxyStatusWidget.active")})]}),s.jsx(Ye,{className:"w-3 h-3 text-blue-600"})]}),s.jsxs("div",{className:"mt-2 text-xs text-muted-foreground",children:[s.jsx("div",{className:"flex items-center gap-1 mb-1",children:s.jsx("span",{className:"font-mono",children:Y})}),s.jsx("p",{className:"text-[10px] text-muted-foreground/70 leading-tight",children:e("proxyStatusWidget.trafficAutoRouted")})]})]}):s.jsx(Ce,{delayDuration:300,children:s.jsxs("div",{className:L("rounded-lg border p-3 transition-colors",v?"border-green-500/30 bg-green-500/5":"border-muted bg-muted/30"),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("div",{className:L("w-2 h-2 rounded-full",v?"bg-green-500 animate-pulse":"bg-muted-foreground/30")}),s.jsx("span",{className:"text-sm font-medium",children:r?.backendLabel??"CLIProxy"})]}),s.jsxs("div",{className:"flex items-center gap-1",children:[n?s.jsx(B,{className:"w-3 h-3 animate-spin text-muted-foreground"}):v?s.jsxs(s.Fragment,{children:[s.jsx(H,{icon:k?B:Ze,tooltip:e("proxyStatusWidget.tooltipSync"),onClick:()=>S(),disabled:!$||E,isPending:k}),s.jsx(H,{icon:Ge,tooltip:e("proxyStatusWidget.tooltipRestart"),onClick:()=>p.mutate(),disabled:E,isPending:p.isPending}),s.jsx(H,{icon:Qe,tooltip:e("proxyStatusWidget.tooltipStop"),onClick:()=>c.mutate(),disabled:E,isPending:c.isPending,variant:"destructive-ghost"})]}):null,s.jsx(H,{icon:x?Xe:Je,tooltip:e(x?"proxyStatusWidget.tooltipClose":"proxyStatusWidget.tooltipVersionSettings"),onClick:()=>m(!x),className:x?"bg-muted":void 0})]})]}),b&&s.jsxs("div",{className:"mt-1.5 flex items-center gap-2",children:[s.jsxs("span",{className:L("text-xs font-mono text-muted-foreground",P&&"text-amber-600 dark:text-amber-400"),children:["v",b]}),(T||P)&&O&&s.jsxs(ee,{variant:"secondary",className:L("text-[10px] h-4 px-1.5 gap-0.5 cursor-pointer transition-colors",P?"bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-900/30 dark:text-amber-400 dark:hover:bg-amber-900/50":"bg-green-100 text-green-700 hover:bg-green-200 dark:bg-green-900/30 dark:text-green-400 dark:hover:bg-green-900/50"),onClick:()=>U(O),title:e(P?"proxyStatusWidget.clickToDowngrade":"proxyStatusWidget.clickToUpdate"),children:[P?s.jsx(et,{className:"w-2.5 h-2.5"}):s.jsx(tt,{className:"w-2.5 h-2.5"}),O]})]}),v&&t&&s.jsxs("div",{className:"mt-2 flex items-center gap-4 text-xs text-muted-foreground",children:[s.jsx("span",{className:"flex items-center gap-1",children:e("proxyStatusWidget.port",{port:t.port})}),t.sessionCount!==void 0&&t.sessionCount>0&&s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(st,{className:"w-3 h-3"}),e("proxyStatusWidget.sessionCount",{count:t.sessionCount})]}),t.startedAt&&s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(nt,{className:"w-3 h-3"}),$t(t.startedAt)]})]}),s.jsxs("div",{className:"mt-2 flex items-center gap-1.5 text-xs",children:[$?s.jsx(rt,{className:"w-3 h-3 text-green-600 dark:text-green-400"}):s.jsx(at,{className:"w-3 h-3 text-muted-foreground"}),s.jsx("span",{className:L("text-xs",$?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:R})]}),s.jsx(Ae,{open:x,onOpenChange:m,children:s.jsxs(we,{className:"mt-3 pt-3 border-t border-muted",children:[s.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-3",children:e("proxyStatusWidget.versionManagement")}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs(Ee,{value:C,onValueChange:y,disabled:i,children:[s.jsx(ke,{className:"h-8 text-xs flex-1",children:s.jsx(Te,{placeholder:e("proxyStatusWidget.selectVersionPlaceholder")})}),s.jsx(Ve,{children:a?.versions.slice(0,20).map(I=>{const F=a?.maxStableVersion&&X(I,a.maxStableVersion);return s.jsx(Pe,{value:I,className:"text-xs",children:s.jsxs("span",{className:"flex items-center gap-2",children:["v",I,I===a.latestStable&&s.jsx("span",{className:"text-green-600 dark:text-green-400",children:e("proxyStatusWidget.stable")}),F&&s.jsx("span",{className:"text-amber-600 dark:text-amber-400",children:"⚠"})]})},I)})})]}),s.jsxs(J,{variant:"outline",size:"sm",className:"h-8 text-xs gap-1.5 px-3",onClick:()=>U(C),disabled:u.isPending||!C,children:[u.isPending?s.jsx(B,{className:"w-3.5 h-3.5 animate-spin"}):s.jsx(it,{className:"w-3.5 h-3.5"}),e("proxyStatusWidget.install")]})]}),C&&a?.maxStableVersion&&X(C,a.maxStableVersion)&&s.jsxs("div",{className:"mt-2 flex items-center gap-1.5 text-[11px] text-amber-600 dark:text-amber-400",children:[s.jsx(te,{className:"w-3.5 h-3.5 flex-shrink-0"}),s.jsx("span",{children:e("proxyStatusWidget.versionsAboveUnstable",{version:a.maxStableVersion})})]}),r?.checkedAt&&s.jsx("div",{className:"mt-2 text-[10px] text-muted-foreground/60",children:e("proxyStatusWidget.lastChecked",{time:Wt(r.checkedAt,e)})})]})}),!v&&s.jsxs("div",{className:"mt-2 flex items-center justify-between",children:[s.jsx("span",{className:"text-xs text-muted-foreground",children:e("proxyStatusWidget.notRunning")}),s.jsxs(J,{variant:"outline",size:"sm",className:"h-7 text-xs gap-1",onClick:()=>l.mutate(),disabled:l.isPending,children:[l.isPending?s.jsx(B,{className:"w-3 h-3 animate-spin"}):s.jsx(ot,{className:"w-3 h-3"}),e("proxyStatusWidget.start")]})]}),s.jsx(De,{open:V,onOpenChange:f,children:s.jsxs(Re,{children:[s.jsxs(Ue,{children:[s.jsxs(_e,{className:"flex items-center gap-2",children:[s.jsx(te,{className:"w-5 h-5 text-amber-500"}),e("proxyStatusWidget.installUnstableTitle")]}),s.jsxs(Fe,{className:"space-y-2",children:[s.jsx("p",{children:s.jsx(wt,{i18nKey:"proxyStatusWidget.installUnstableDesc",values:{version:A??"",maxStable:a?.maxStableVersion||"6.6.80"},components:{strong:s.jsx("strong",{})}})}),s.jsx("p",{className:"text-amber-600 dark:text-amber-400",children:e("proxyStatusWidget.installUnstableWarning")}),s.jsx("p",{children:e("proxyStatusWidget.installUnstableConfirm")})]})]}),s.jsxs(Le,{children:[s.jsx(Me,{onClick:_,children:e("proxyStatusWidget.cancel")}),s.jsx(qe,{onClick:j,className:"bg-amber-500 hover:bg-amber-600 text-white",children:e("proxyStatusWidget.installAnyway")})]})]})})]})})}export{kt as A,qt as D,Ht as P,Et as R,Mt as a,Bt as i};