@xopcai/xopc 0.0.75 → 0.0.77
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.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agents-Bq-2L2z0.js → agents-DN3vr8pb.js} +2 -2
- package/dist/gateway/static/root/assets/{agents-Bq-2L2z0.js.map → agents-DN3vr8pb.js.map} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-DitlAmYZ.js → apps-page-BUn41aPi.js} +2 -2
- package/dist/gateway/static/root/assets/{apps-page-DitlAmYZ.js.map → apps-page-BUn41aPi.js.map} +1 -1
- package/dist/gateway/static/root/assets/{channels-settings-BzJYkjyh.js → channels-settings-CYMmWDtP.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-settings-BzJYkjyh.js.map → channels-settings-CYMmWDtP.js.map} +1 -1
- package/dist/gateway/static/root/assets/{channels-status-swr-CiY7i2IN.js → channels-status-swr-sJj4ueTp.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-status-swr-CiY7i2IN.js.map → channels-status-swr-sJj4ueTp.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-api-S4gy4e5e.js → cron-api-CLxnaHdq.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-api-S4gy4e5e.js.map → cron-api-CLxnaHdq.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-7uMZvuju.js → cron-page-BAQ8xSnJ.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-page-7uMZvuju.js.map → cron-page-BAQ8xSnJ.js.map} +1 -1
- package/dist/gateway/static/root/assets/{dist-DXGDHevt.js → dist-BfJYxiK5.js} +2 -2
- package/dist/gateway/static/root/assets/{dist-DXGDHevt.js.map → dist-BfJYxiK5.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DYLqqlXt.js → extension-debug-page-bgvVs-Sy.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-debug-page-DYLqqlXt.js.map → extension-debug-page-bgvVs-Sy.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-H9Odxw56.js → extension-page-SG4TVv-u.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-page-H9Odxw56.js.map → extension-page-SG4TVv-u.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-Ch6vY8Uy.js → extension-settings-page-CJZRTsjF.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-settings-page-Ch6vY8Uy.js.map → extension-settings-page-CJZRTsjF.js.map} +1 -1
- package/dist/gateway/static/root/assets/{field-primitives-CrexIsCD.js → field-primitives-Z76hyBYS.js} +2 -2
- package/dist/gateway/static/root/assets/{field-primitives-CrexIsCD.js.map → field-primitives-Z76hyBYS.js.map} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-CVGIOMMM.js → heartbeat-config-api-BqfDabSI.js} +2 -2
- package/dist/gateway/static/root/assets/{heartbeat-config-api-CVGIOMMM.js.map → heartbeat-config-api-BqfDabSI.js.map} +1 -1
- package/dist/gateway/static/root/assets/{index-S3bgG2JF.js → index-ChiUhJAs.js} +44 -41
- package/dist/gateway/static/root/assets/{index-S3bgG2JF.js.map → index-ChiUhJAs.js.map} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-BKpRWihz.js → logs-page-DrIMhDE2.js} +2 -2
- package/dist/gateway/static/root/assets/{logs-page-BKpRWihz.js.map → logs-page-DrIMhDE2.js.map} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-BRFJ-djK.js → sessions-page-B-RGO3N0.js} +2 -2
- package/dist/gateway/static/root/assets/{sessions-page-BRFJ-djK.js.map → sessions-page-B-RGO3N0.js.map} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-cS13ImiU.js → settings-form-section-Csvl1iL6.js} +2 -2
- package/dist/gateway/static/root/assets/{settings-form-section-cS13ImiU.js.map → settings-form-section-Csvl1iL6.js.map} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-D99K6Jjx.js → settings-page-nxAc0ta1.js} +2 -2
- package/dist/gateway/static/root/assets/{settings-page-D99K6Jjx.js.map → settings-page-nxAc0ta1.js.map} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-CjBO9BH2.js → skills-page-dHwx2vh0.js} +2 -2
- package/dist/gateway/static/root/assets/{skills-page-CjBO9BH2.js.map → skills-page-dHwx2vh0.js.map} +1 -1
- package/dist/gateway/static/root/assets/{utils-DVw8OvAC.js → utils-COYrNFF7.js} +2 -2
- package/dist/gateway/static/root/assets/{utils-DVw8OvAC.js.map → utils-COYrNFF7.js.map} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-BIh7mDN6.js → voice-api-key-field-5WZZaxH3.js} +2 -2
- package/dist/gateway/static/root/assets/{voice-api-key-field-BIh7mDN6.js.map → voice-api-key-field-5WZZaxH3.js.map} +1 -1
- package/dist/gateway/static/root/index.html +1 -1
- package/dist/package.js +1 -1
- package/dist/src/agent/embedded/session-manager-init.js +5 -1
- package/dist/src/agent/embedded/session-manager-init.js.map +1 -1
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/manager.js +1 -1
- package/dist/src/cli/commands/channels.js +1 -1
- package/dist/src/gateway/heartbeat/service.js +1 -1
- package/dist/src/gateway/service.js +1 -1
- package/dist/src/heartbeat/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./button-KafIU8dx.js";import{Hn as t,Vn as n,zn as r}from"./index-
|
|
2
|
-
//# sourceMappingURL=utils-
|
|
1
|
+
import{n as e}from"./button-KafIU8dx.js";import{Hn as t,Vn as n,zn as r}from"./index-ChiUhJAs.js";function i(){return e(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,t,`dark:border-edge`)}function a(){return e(n,r)}function o(e){return e.split(/[,\n]/).flatMap(e=>{let t=e.trim();return t?[/^-?\d+$/.test(t)?Number(t):t]:[]})}function s(e){return e.map(String).join(`, `)}function c(e){let t=e.accounts?.default?.botToken;return typeof t==`string`?t:``}function l(e){return Object.values(e.accounts??{}).some(e=>typeof e.botToken==`string`&&e.botToken.trim().length>0)}function u(e){return Object.keys(e.accounts??{}).length>0||e.allowFrom.length>0}function d(e){return!!(e.appId?.trim()&&e.appSecret?.trim())||Object.keys(e.accounts??{}).length>0}export{u as a,c,l as i,a as n,s as o,d as r,o as s,i as t};
|
|
2
|
+
//# sourceMappingURL=utils-COYrNFF7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-COYrNFF7.js","names":["ChannelsSettingsState","cn","nativeSelectMaxWidthClass","selectControlBaseClass","settingsInputFocusClass","channelsInputClassName","channelsSelectClassName","parseIdList","raw","split","flatMap","s","v","trim","test","Number","joinAllowFrom","ids","map","String","join","telegramDefaultBotToken","tg","t","accounts","default","botToken","isTelegramConfigured","Object","values","some","a","length","isWeixinConfigured","wx","keys","allowFrom","isFeishuConfigured","fs","Boolean","appId","appSecret"],"sources":["../../../../../web/src/features/settings/channels/utils.ts"],"sourcesContent":["import type { ChannelsSettingsState } from '@/features/settings/channels-config-api';\nimport { cn } from '@/lib/cn';\nimport { nativeSelectMaxWidthClass, selectControlBaseClass, settingsInputFocusClass } from '@/lib/form-field-width';\n\nexport function channelsInputClassName(): string {\n return cn(\n 'w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg',\n 'placeholder:text-fg-subtle',\n settingsInputFocusClass,\n 'dark:border-edge',\n );\n}\n\nexport function channelsSelectClassName(): string {\n return cn(selectControlBaseClass, nativeSelectMaxWidthClass);\n}\n\nexport function parseIdList(raw: string): (string | number)[] {\n return raw.split(/[,\\n]/).flatMap((s) => {\n const v = s.trim();\n if (!v) return [];\n return [/^-?\\d+$/.test(v) ? Number(v) : v];\n });\n}\n\nexport function joinAllowFrom(ids: (string | number)[]): string {\n return ids.map(String).join(', ');\n}\n\nexport function telegramDefaultBotToken(tg: ChannelsSettingsState['telegram']): string {\n const t = tg.accounts?.default?.botToken;\n return typeof t === 'string' ? t : '';\n}\n\nexport function isTelegramConfigured(tg: ChannelsSettingsState['telegram']): boolean {\n return Object.values(tg.accounts ?? {}).some(\n (a) => typeof a.botToken === 'string' && a.botToken.trim().length > 0,\n );\n}\n\nexport function isWeixinConfigured(wx: ChannelsSettingsState['weixin']): boolean {\n return Object.keys(wx.accounts ?? {}).length > 0 || wx.allowFrom.length > 0;\n}\n\nexport function isFeishuConfigured(fs: ChannelsSettingsState['feishu']): boolean {\n return Boolean(fs.appId?.trim() && fs.appSecret?.trim()) || Object.keys(fs.accounts ?? {}).length > 0;\n}\n"],"mappings":"kGAIA,SAAgBK,GAAiC,CAC/C,OAAOJ,EACL,kFACA,6BACAG,EACA,kBACF,CACF,CAEA,SAAgBE,GAAkC,CAChD,OAAOL,EAAGE,EAAwBD,CAAyB,CAC7D,CAEA,SAAgBK,EAAYC,EAAkC,CAC5D,OAAOA,EAAIC,MAAM,OAAO,EAAEC,QAASC,GAAM,CACvC,IAAMC,EAAID,EAAEE,KAAK,EAEjB,OADKD,EACE,CAAC,UAAUE,KAAKF,CAAC,EAAIG,OAAOH,CAAC,EAAIA,CAAC,EAD1B,CAAA,CAEjB,CAAC,CACH,CAEA,SAAgBI,EAAcC,EAAkC,CAC9D,OAAOA,EAAIC,IAAIC,MAAM,EAAEC,KAAK,IAAI,CAClC,CAEA,SAAgBC,EAAwBC,EAA+C,CACrF,IAAMC,EAAID,EAAGE,UAAUC,SAASC,SAChC,OAAO,OAAOH,GAAM,SAAWA,EAAI,EACrC,CAEA,SAAgBI,EAAqBL,EAAgD,CACnF,OAAOM,OAAOC,OAAOP,EAAGE,UAAY,CAAC,CAAC,EAAEM,KACrCC,GAAM,OAAOA,EAAEL,UAAa,UAAYK,EAAEL,SAASb,KAAK,EAAEmB,OAAS,CACtE,CACF,CAEA,SAAgBC,EAAmBC,EAA8C,CAC/E,OAAON,OAAOO,KAAKD,EAAGV,UAAY,CAAC,CAAC,EAAEQ,OAAS,GAAKE,EAAGE,UAAUJ,OAAS,CAC5E,CAEA,SAAgBK,EAAmBC,EAA8C,CAC/E,MAAOC,GAAQD,EAAGE,OAAO3B,KAAK,GAAKyB,EAAGG,WAAW5B,KAAK,IAAMe,OAAOO,KAAKG,EAAGd,UAAY,CAAC,CAAC,EAAEQ,OAAS,CACtG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{c as i,i as a,n as o}from"./fetch-K_0JRCXU.js";import{o as s}from"./vendor-swr-BIWyz7Rc.js";import{D as c}from"./dist-C57OMHW8.js";import{n as l,t as u}from"./button-KafIU8dx.js";import{Cr as d,D as f,Fi as p,Gr as ee,Hn as m,Lt as h,Nt as g,O as _,Oi as v,Pi as y,_i as te,cn as b,di as ne,fi as x,sn as S,ui as re,x as C}from"./index-S3bgG2JF.js";var w=`/api/image/providers`;async function T(){return(await o(a(`/api/image/providers`)))?.payload?.providers??[]}var E=e(t(),1),ie=n();function D(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function O(e){return e?.apiKey?`••••••••••••`:``}function k(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:O(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function A(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function j(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(C(n)&&C(r)))return n||(r?null:void 0)}function M(e,t,n){let r={};for(let i of e){let e=t[i]??D(),a=n[i]??D();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=j(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=A(e,a,`region`);c!==void 0&&(o.region=c);let l=A(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=A(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function N(e){let t=await o(a(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function P(e){Object.keys(e).length!==0&&(await o(a(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await S())}var F={showKey:!1,revealed:void 0,revealLoading:!1,revealErr:null,copied:!1};function I(e,t){switch(t.type){case`reset-reveal`:return{...e,showKey:!1,revealed:void 0,revealErr:null};case`toggle-show`:return{...e,showKey:!e.showKey};case`reveal-start`:return{...e,revealLoading:!0,revealErr:null};case`reveal-success`:return{...e,revealed:t.value,revealLoading:!1,showKey:!0,revealErr:null};case`reveal-error`:return{...e,revealed:null,revealLoading:!1,revealErr:t.message};case`copied`:return{...e,copied:!0};case`clear-copied`:return{...e,copied:!1};case`invalidate-reveal`:return{...e,revealed:void 0,showKey:!1}}}function ae(e){let{value:t,reveal:n,loadFailedLabel:r}=e,[i,a]=(0,E.useReducer)(I,F),o=C(t),s=(0,E.useRef)(n);s.current=n;let c=(0,E.useRef)({masked:o,value:t});!o&&(c.current.masked||c.current.value!==t)&&a({type:`reset-reveal`}),c.current={masked:o,value:t};let l=o&&i.showKey&&typeof i.revealed==`string`?i.revealed:t,u=!o||o&&i.showKey&&typeof i.revealed==`string`?`text`:`password`,d=!o&&t.trim().length>0&&!C(t)||!!i.showKey&&typeof i.revealed==`string`&&i.revealed.length>0,f=(0,E.useCallback)(async()=>{let e=!o&&t.trim()&&!C(t)?t.trim():typeof i.revealed==`string`&&i.revealed.length>0?i.revealed:``;e&&await h(e)&&(a({type:`copied`}),window.setTimeout(()=>a({type:`clear-copied`}),2e3))},[o,i.revealed,t]),p=(0,E.useCallback)(async()=>{if(!o){a({type:`toggle-show`});return}if(i.revealed!==void 0){a({type:`toggle-show`});return}a({type:`reveal-start`});try{a({type:`reveal-success`,value:await s.current()})}catch(e){a({type:`reveal-error`,message:e instanceof Error?e.message:r})}},[r,o,i.revealed]),ee=(0,E.useCallback)((e,t)=>{o&&typeof i.revealed==`string`&&i.showKey&&e!==i.revealed&&a({type:`invalidate-reveal`}),t(e)},[o,i.revealed,i.showKey]);return{masked:o,showKey:i.showKey,revealed:i.revealed,revealLoading:i.revealLoading,revealErr:i.revealErr,copied:i.copied,inputValue:l,inputType:u,copyEnabled:d,copyKey:f,toggleEye:p,onInputChange:ee}}var L=r();function R(e){let t=(0,ie.c)(64),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>N(n).then(z),t[0]=n,t[1]=c);let u=c,d;t[2]!==a.loadFailed||t[3]!==u||t[4]!==r?(d={value:r,reveal:u,loadFailedLabel:a.loadFailed},t[2]=a.loadFailed,t[3]=u,t[4]=r,t[5]=d):d=t[5];let{masked:f,showKey:p,revealed:h,revealLoading:y,revealErr:b,copied:S,inputValue:C,inputType:w,copyEnabled:T,copyKey:E,toggleEye:D,onInputChange:O}=ae(d),k=`img-cred-key-${n}`,A;t[6]!==a.apiKeyLabel||t[7]!==k?(A=(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:k,children:a.apiKeyLabel}),t[6]=a.apiKeyLabel,t[7]=k,t[8]=A):A=t[8];let j;t[9]!==s||t[10]!==o?(j=o.length>0?(0,L.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,L.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[_(e.kind,s),(0,L.jsx)(x,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[9]=s,t[10]=o,t[11]=j):j=t[11];let M;t[12]!==a.maskedHelp||t[13]!==f?(M=f?(0,L.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:a.maskedHelp}):null,t[12]=a.maskedHelp,t[13]=f,t[14]=M):M=t[14];let P=`img-cred-key-${n}`,F;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(F=l(`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-3 pr-24 font-mono text-sm text-fg`,`placeholder:text-fg-subtle`,m),t[15]=F):F=t[15];let I=f?`••••••••`:a.optionalPlaceholder,R;t[16]!==i||t[17]!==O?(R=e=>O(e.target.value,i),t[16]=i,t[17]=O,t[18]=R):R=t[18];let B;t[19]!==w||t[20]!==C||t[21]!==R||t[22]!==P||t[23]!==I?(B=(0,L.jsx)(`input`,{id:P,type:w,autoComplete:`off`,spellCheck:!1,className:F,value:C,placeholder:I,onChange:R}),t[19]=w,t[20]=C,t[21]=R,t[22]=P,t[23]=I,t[24]=B):B=t[24];let V;t[25]!==S||t[26]!==T||t[27]!==E||t[28]!==a.copied||t[29]!==a.copy?(V=T?(0,L.jsx)(`button`,{type:`button`,className:l(`rounded p-1.5 text-fg-subtle hover:bg-surface-hover hover:text-fg`,g.transition,g.press,g.focusRingPanel),title:S?a.copied:a.copy,"aria-label":S?a.copied:a.copy,onClick:()=>void E(),children:S?(0,L.jsx)(v,{className:`size-4`}):(0,L.jsx)(te,{className:`size-4`})}):null,t[25]=S,t[26]=T,t[27]=E,t[28]=a.copied,t[29]=a.copy,t[30]=V):V=t[30];let H;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(H=l(`rounded p-1.5 text-fg-subtle hover:bg-surface-hover hover:text-fg disabled:opacity-40`,g.transition,g.press,g.focusRingPanel),t[31]=H):H=t[31];let U=p?a.hide:a.show,W=p?a.hide:a.show,G;t[32]===D?G=t[33]:(G=()=>void D(),t[32]=D,t[33]=G);let K;t[34]!==y||t[35]!==p?(K=y?(0,L.jsx)(ee,{className:`size-4 animate-spin`,"aria-hidden":!0}):p?(0,L.jsx)(ne,{className:`size-4`,"aria-hidden":!0}):(0,L.jsx)(re,{className:`size-4`,"aria-hidden":!0}),t[34]=y,t[35]=p,t[36]=K):K=t[36];let q;t[37]!==y||t[38]!==U||t[39]!==W||t[40]!==G||t[41]!==K?(q=(0,L.jsx)(`button`,{type:`button`,className:H,title:U,"aria-label":W,disabled:y,onClick:G,children:K}),t[37]=y,t[38]=U,t[39]=W,t[40]=G,t[41]=K,t[42]=q):q=t[42];let J;t[43]!==V||t[44]!==q?(J=(0,L.jsxs)(`div`,{className:`absolute right-1 top-1/2 flex -translate-y-1/2 gap-0.5`,children:[V,q]}),t[43]=V,t[44]=q,t[45]=J):J=t[45];let Y;t[46]!==B||t[47]!==J?(Y=(0,L.jsxs)(`div`,{className:`relative min-w-0`,children:[B,J]}),t[46]=B,t[47]=J,t[48]=Y):Y=t[48];let X;t[49]!==a.notInConfigFile||t[50]!==f||t[51]!==b||t[52]!==h||t[53]!==p?(X=f&&p&&h===null&&!b?(0,L.jsx)(`p`,{className:`text-xs text-amber-700 dark:text-amber-400/90`,children:a.notInConfigFile}):null,t[49]=a.notInConfigFile,t[50]=f,t[51]=b,t[52]=h,t[53]=p,t[54]=X):X=t[54];let oe;t[55]===b?oe=t[56]:(oe=b?(0,L.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:b}):null,t[55]=b,t[56]=oe);let se;return t[57]!==Y||t[58]!==X||t[59]!==oe||t[60]!==A||t[61]!==j||t[62]!==M?(se=(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[A,j,M,Y,X,oe]}),t[57]=Y,t[58]=X,t[59]=oe,t[60]=A,t[61]=j,t[62]=M,t[63]=se):se=t[63],se}function z(e){return e.apiKey??null}function B(){return l(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,m)}function V(){return l(B(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var H=`__custom__`;function U(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:H}function W(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:H}function G(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function K(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function q(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function J(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function Y(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function X(e){let t=(0,ie.c)(76),{summaries:n,credDraft:r,credBaseline:i,credDirty:a,credSaving:o,credError:s,credSavedFlash:p,credNoopFlash:m,updateCredRow:h,onDiscardCredentials:g,onSaveCredentials:_,extensionIds:v,showExtensionLinks:te,showImageModelsLink:b,hideActions:ne,language:S,apiKeyLinkLabels:re,messages:C}=e,w=ne===void 0?!1:ne,T;t[0]===n?T=t[1]:(T=n.some(ue),t[0]=n,t[1]=T);let O=T,k;t[2]===n?k=t[3]:(k=n.some(le),t[2]=n,t[3]=k);let A=k,[j,M]=(0,E.useState)(ce),[N,P]=(0,E.useState)(se),F;if(t[4]!==i||t[5]!==r||t[6]!==n){F=new Set;for(let e of n)J(r[e.id]??D(),i[e.id]??D())&&F.add(e.id);t[4]=i,t[5]=r,t[6]=n,t[7]=F}else F=t[7];let I=F,ae;t[8]!==I||t[9]!==N||t[10]!==j?(ae=e=>N.has(e)?!1:j.has(e)?!0:I.has(e),t[8]=I,t[9]=N,t[10]=j,t[11]=ae):ae=t[11];let z=ae,X;t[12]===z?X=t[13]:(X=e=>{if(z(e)){P(t=>new Set(t).add(e)),M(t=>{let n=new Set(t);return n.delete(e),n});return}P(t=>{let n=new Set(t);return n.delete(e),n}),M(t=>new Set(t).add(e))},t[12]=z,t[13]=X);let de=X;if(n.length===0)return null;let fe;t[14]===C.credentialsIntro?fe=t[15]:(fe=(0,L.jsx)(`p`,{children:C.credentialsIntro}),t[14]=C.credentialsIntro,t[15]=fe);let pe;t[16]!==O||t[17]!==C.regionHint?(pe=O?(0,L.jsx)(`p`,{className:`text-fg-subtle`,children:C.regionHint}):null,t[16]=O,t[17]=C.regionHint,t[18]=pe):pe=t[18];let Z;t[19]!==A||t[20]!==C.endpointPresetsHint?(Z=A?(0,L.jsx)(`p`,{className:`text-fg-subtle`,children:C.endpointPresetsHint}):null,t[19]=A,t[20]=C.endpointPresetsHint,t[21]=Z):Z=t[21];let me;t[22]!==b||t[23]!==C.imageModelsLinkTitle||t[24]!==C.openImageModelsPage?(me=b?(0,L.jsx)(`p`,{children:(0,L.jsx)(c,{to:`/settings/image-models`,className:`font-medium text-accent hover:underline`,title:C.imageModelsLinkTitle,children:C.openImageModelsPage})}):null,t[22]=b,t[23]=C.imageModelsLinkTitle,t[24]=C.openImageModelsPage,t[25]=me):me=t[25];let he;t[26]!==fe||t[27]!==pe||t[28]!==Z||t[29]!==me?(he=(0,L.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[fe,pe,Z,me]}),t[26]=fe,t[27]=pe,t[28]=Z,t[29]=me,t[30]=he):he=t[30];let Q;t[31]===s?Q=t[32]:(Q=s?(0,L.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:s}):null,t[31]=s,t[32]=Q);let ge;t[33]!==a||t[34]!==m||t[35]!==p||t[36]!==o||t[37]!==w||t[38]!==g||t[39]!==_||t[40]!==C.credentialsNothingToSave||t[41]!==C.credentialsSaved||t[42]!==C.discardCredentials||t[43]!==C.saveCredentials||t[44]!==C.savingCredentials?(ge=w?null:(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[p?(0,L.jsx)(`span`,{className:`text-sm text-fg-muted`,children:C.credentialsSaved}):null,m?(0,L.jsx)(`span`,{className:`text-sm text-fg-muted`,children:C.credentialsNothingToSave}):null,(0,L.jsx)(u,{type:`button`,variant:`secondary`,onClick:g,disabled:!a||o,children:C.discardCredentials}),(0,L.jsx)(u,{type:`button`,variant:`primary`,onClick:_,disabled:!a||o,children:o?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(ee,{className:`size-3.5 animate-spin`}),(0,L.jsx)(`span`,{className:`ml-1.5`,children:C.savingCredentials})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(d,{className:`size-3.5`}),(0,L.jsx)(`span`,{className:`ml-1.5`,children:C.saveCredentials})]})})]}),t[33]=a,t[34]=m,t[35]=p,t[36]=o,t[37]=w,t[38]=g,t[39]=_,t[40]=C.credentialsNothingToSave,t[41]=C.credentialsSaved,t[42]=C.discardCredentials,t[43]=C.saveCredentials,t[44]=C.savingCredentials,t[45]=ge):ge=t[45];let $;if(t[46]!==re||t[47]!==i||t[48]!==r||t[49]!==v||t[50]!==z||t[51]!==S||t[52]!==te||t[53]!==n||t[54]!==C||t[55]!==de||t[56]!==h){let e;t[58]!==re||t[59]!==i||t[60]!==r||t[61]!==v||t[62]!==z||t[63]!==S||t[64]!==te||t[65]!==C||t[66]!==de||t[67]!==h?(e=e=>{let t=r[e.id]??D(),n=e.ui,a=te&&v.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,o=J(t,i[e.id]??D()),s=z(e.id),u=e.label??e.id,d=Y(C,e.models.length);return(0,L.jsxs)(`section`,{className:l(`overflow-hidden rounded-xl border bg-surface-panel shadow-sm transition-colors dark:shadow-none`,o?`border-accent/50`:`border-edge`),children:[(0,L.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":s,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>de(e.id),children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,L.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:u}),(0,L.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),o?(0,L.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:C.unsavedChanges}):null,e.configured?(0,L.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:C.configured}):(0,L.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:C.missingKey})]}),(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,L.jsx)(`span`,{children:d}),e.defaultModel?(0,L.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,L.jsxs)(`span`,{className:`text-fg-muted`,children:[C.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,L.jsx)(y,{className:l(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,s?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,L.jsx)(`span`,{className:`sr-only`,children:s?C.collapseProvider:C.expandProvider})]}),s?(0,L.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`border-t border-edge px-4 py-4`,children:[a?(0,L.jsxs)(c,{to:a,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:C.extensionSettingsLinkTitle,children:[(0,L.jsx)(x,{className:`size-3`}),C.openExtensionSettings]}):null,e.models.length>0?(0,L.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,L.jsxs)(`span`,{className:`text-fg-muted`,children:[C.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,L.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,L.jsx)(R,{providerId:e.id,value:t.apiKey,onChange:t=>h(e.id,{apiKey:t}),apiKeyLinks:f(e.id,S),apiKeyLinkLabels:re,labels:{apiKeyLabel:C.apiKeyLabel,optionalPlaceholder:C.optionalPlaceholder,maskedHelp:C.apiKeyMaskedHelp,copy:C.apiKeyCopy,copied:C.apiKeyCopied,show:C.apiKeyShow,hide:C.apiKeyHide,notInConfigFile:C.apiKeyNotInConfigFile,loadFailed:C.apiKeyRevealFailed}}),n?.regions?.length?(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:C.regionLabel}),(0,L.jsxs)(`select`,{id:`img-cred-region-preset-${e.id}`,className:V(),value:U(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){h(e.id,{region:``,imageBaseUrl:``});return}if(r===H){h(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&h(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,L.jsx)(`option`,{value:``,children:C.regionPresetDefault}),n.regions.map(e=>(0,L.jsx)(`option`,{value:e.value,children:G(C,e.value,e.label)},e.value)),(0,L.jsx)(`option`,{value:H,children:C.regionPresetCustom})]}),U(t,n.regions)===H?(0,L.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,L.jsx)(`input`,{type:`text`,className:B(),value:t.region,placeholder:`region`,onChange:t=>h(e.id,{region:t.target.value})}),(0,L.jsx)(`input`,{type:`url`,className:B(),value:t.imageBaseUrl,placeholder:C.imageBaseUrlLabel,onChange:t=>h(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:K(C,n.baseUrlPresetKind)}),q(C,n.baseUrlPresetKind)?(0,L.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:q(C,n.baseUrlPresetKind)}):null,(0,L.jsxs)(`select`,{id:`img-cred-base-preset-${e.id}`,className:V(),value:W(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){h(e.id,{baseUrl:``});return}if(n===H){h(e.id,{baseUrl:``});return}h(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,L.jsx)(`option`,{value:``,children:C.baseUrlPresetDefault}),n.baseUrlPresets.map(oe),(0,L.jsx)(`option`,{value:H,children:C.baseUrlPresetCustom})]}),W(t,n.baseUrlPresets)===H?(0,L.jsx)(`input`,{type:`url`,className:l(B(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>h(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&U(t,n.regions)!==H?(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:C.imageBaseUrlLabel}),(0,L.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:l(B(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:C.imageBaseUrlPresetHint}),(0,L.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:C.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=re,t[59]=i,t[60]=r,t[61]=v,t[62]=z,t[63]=S,t[64]=te,t[65]=C,t[66]=de,t[67]=h,t[68]=e):e=t[68],$=n.map(e),t[46]=re,t[47]=i,t[48]=r,t[49]=v,t[50]=z,t[51]=S,t[52]=te,t[53]=n,t[54]=C,t[55]=de,t[56]=h,t[57]=$}else $=t[57];let _e;t[69]===$?_e=t[70]:(_e=(0,L.jsx)(`div`,{className:`flex flex-col gap-4`,children:$}),t[69]=$,t[70]=_e);let ve;return t[71]!==he||t[72]!==Q||t[73]!==ge||t[74]!==_e?(ve=(0,L.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[he,Q,ge,_e]}),t[71]=he,t[72]=Q,t[73]=ge,t[74]=_e,t[75]=ve):ve=t[75],ve}function oe(e){return(0,L.jsx)(`option`,{value:e.value,children:e.label},e.value)}function se(){return new Set}function ce(){return new Set}function le(e){return(e.ui?.baseUrlPresets?.length??0)>0}function ue(e){return(e.ui?.regions?.length??0)>0}function de(e){let t=b(i(e=>!!e.token)),n=t.data,r=(0,E.useMemo)(()=>e.map(e=>e.id),[e]),o=(0,E.useRef)(!1),[c,l]=(0,E.useState)(null),[u,d]=(0,E.useState)(!1),[f,p]=(0,E.useState)(null),[ee,m]=(0,E.useState)(!1),[h,g]=(0,E.useState)(!1),_=(0,E.useMemo)(()=>k(n?.payload?.config,r),[n?.payload?.config,r]),v=c??_,y=_;return{gwSwr:t,credDraft:v,credBaseline:y,credDirty:(0,E.useMemo)(()=>JSON.stringify(v)!==JSON.stringify(y),[v,y]),credSaving:u,credError:f,credSavedFlash:ee,credNoopFlash:h,updateCredRow:(0,E.useCallback)((e,t)=>{o.current=!0,l(n=>{let r=n??_,i=r[e]??D();return{...r,[e]:{...i,...t}}})},[_]),onDiscardCredentials:(0,E.useCallback)(()=>{o.current=!1,l(null),p(null),m(!1),g(!1)},[]),saveCredentials:(0,E.useCallback)(async e=>{let n=M(r,v,y);if(Object.keys(n).length===0){g(!0),window.setTimeout(()=>g(!1),2200);return}d(!0),p(null),m(!1);try{await P(n),await t.mutate?.(),s(a(w)),o.current=!1,l(null),m(!0),window.setTimeout(()=>m(!1),2e3)}catch(t){p(t instanceof Error?t.message:e)}finally{d(!1)}},[r,v,y,t])}}function fe(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function pe(){return{enabled:!1,provider:`openai`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function Z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function me(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function he(e){let t=fe();if(!Z(e))return t;let n=me(e.provider),r=Z(e.alibaba)?{...t.alibaba,...e.alibaba}:t.alibaba,i=Z(e.openai)?{...t.openai,...e.openai}:t.openai,a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(Z(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=Z(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,Z(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function Q(e){return typeof e==`string`&&e.trim().length>0?e.trim():`openai`}function ge(e){let t=pe();if(!Z(e))return t;let n=Q(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=e[`tts-local-cli`];return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,alibaba:Z(e.alibaba)?{...t.alibaba,...e.alibaba}:t.alibaba,openai:Z(e.openai)?{...t.openai,...e.openai}:t.openai,edge:Z(e.edge)?{...t.edge,...e.edge}:t.edge,minimax:Z(e.minimax)?{...t.minimax,...e.minimax}:t.minimax,"tts-local-cli":Z(i)?{...t[`tts-local-cli`],...i}:t[`tts-local-cli`]}}function $(e){let t=Z(e)?e:{};return{stt:he(t.stt),tts:ge(t.tts)}}async function _e(){return $((await o(a(`/api/config`))).payload?.config??{})}async function ve(e){await o(a(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:e.stt,tts:e.tts})}),S()}async function ye(){let e=await o(a(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function be(){let e=await o(a(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function xe(){let e=await o(a(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Se(e){let t=await o(a(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function Ce(e){let t=(0,ie.c)(56),{kind:n,providerId:r,fieldId:i,value:a,onChange:o,labels:s,placeholder:c,className:d}=e,f=c===void 0?`sk-...`:c,h;t[0]!==n||t[1]!==r?(h=()=>Se({kind:n,provider:r}).then(we),t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,_;t[3]!==s.loadFailed||t[4]!==g||t[5]!==a?(_={value:a,reveal:g,loadFailedLabel:s.loadFailed},t[3]=s.loadFailed,t[4]=g,t[5]=a,t[6]=_):_=t[6];let{masked:v,showKey:y,revealed:b,revealLoading:x,revealErr:S,copied:C,inputValue:w,inputType:T,copyEnabled:E,copyKey:D,toggleEye:O,onInputChange:k}=ae(_),A;t[7]===d?A=t[8]:(A=l(`flex min-w-0 flex-col gap-1.5`,d),t[7]=d,t[8]=A);let j;t[9]!==s.maskedHelp||t[10]!==v?(j=v?(0,L.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:s.maskedHelp}):null,t[9]=s.maskedHelp,t[10]=v,t[11]=j):j=t[11];let M;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(M=l(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-fg`,`placeholder:text-fg-subtle`,m,`dark:border-edge`,`min-w-0 flex-1 font-mono text-xs`),t[12]=M):M=t[12];let N=v?`••••••••`:f,P;t[13]!==o||t[14]!==k?(P=e=>k(e.target.value,o),t[13]=o,t[14]=k,t[15]=P):P=t[15];let F;t[16]!==i||t[17]!==T||t[18]!==w||t[19]!==N||t[20]!==P?(F=(0,L.jsx)(`input`,{id:i,type:T,autoComplete:`off`,spellCheck:!1,className:M,value:w,placeholder:N,onChange:P}),t[16]=i,t[17]=T,t[18]=w,t[19]=N,t[20]=P,t[21]=F):F=t[21];let I;t[22]!==C||t[23]!==E||t[24]!==D||t[25]!==s.copied||t[26]!==s.copy?(I=E?(0,L.jsxs)(u,{type:`button`,variant:`secondary`,className:`px-2 py-1 text-xs`,onClick:()=>void D(),children:[C?(0,L.jsx)(p,{className:`size-3.5`}):(0,L.jsx)(te,{className:`size-3.5`}),C?s.copied:s.copy]}):null,t[22]=C,t[23]=E,t[24]=D,t[25]=s.copied,t[26]=s.copy,t[27]=I):I=t[27];let R;t[28]===O?R=t[29]:(R=()=>void O(),t[28]=O,t[29]=R);let z;t[30]!==x||t[31]!==y?(z=x?(0,L.jsx)(ee,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):y?(0,L.jsx)(ne,{className:`size-3.5`}):(0,L.jsx)(re,{className:`size-3.5`}),t[30]=x,t[31]=y,t[32]=z):z=t[32];let B=y?s.hide:s.show,V;t[33]!==x||t[34]!==R||t[35]!==z||t[36]!==B?(V=(0,L.jsxs)(u,{type:`button`,variant:`secondary`,className:`px-2 py-1 text-xs`,disabled:x,onClick:R,children:[z,B]}),t[33]=x,t[34]=R,t[35]=z,t[36]=B,t[37]=V):V=t[37];let H;t[38]!==I||t[39]!==V||t[40]!==F?(H=(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[F,I,V]}),t[38]=I,t[39]=V,t[40]=F,t[41]=H):H=t[41];let U;t[42]!==s.notInConfigFile||t[43]!==v||t[44]!==S||t[45]!==b||t[46]!==y?(U=v&&y&&b===null&&!S?(0,L.jsx)(`p`,{className:`text-xs text-amber-700 dark:text-amber-400/90`,children:s.notInConfigFile}):null,t[42]=s.notInConfigFile,t[43]=v,t[44]=S,t[45]=b,t[46]=y,t[47]=U):U=t[47];let W;t[48]===S?W=t[49]:(W=S?(0,L.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:S}):null,t[48]=S,t[49]=W);let G;return t[50]!==H||t[51]!==U||t[52]!==W||t[53]!==A||t[54]!==j?(G=(0,L.jsxs)(`div`,{className:A,children:[j,H,U,W]}),t[50]=H,t[51]=U,t[52]=W,t[53]=A,t[54]=j,t[55]=G):G=t[55],G}function we(e){return e.apiKey??null}export{xe as a,de as c,w as d,_e as i,X as l,ye as n,$ as o,be as r,ve as s,Ce as t,T as u};
|
|
2
|
-
//# sourceMappingURL=voice-api-key-field-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{c as i,i as a,n as o}from"./fetch-K_0JRCXU.js";import{o as s}from"./vendor-swr-BIWyz7Rc.js";import{D as c}from"./dist-C57OMHW8.js";import{n as l,t as u}from"./button-KafIU8dx.js";import{Cr as d,D as f,Fi as p,Gr as ee,Hn as m,Lt as h,Nt as g,O as _,Oi as v,Pi as y,_i as te,cn as b,di as ne,fi as x,sn as S,ui as re,x as C}from"./index-ChiUhJAs.js";var w=`/api/image/providers`;async function T(){return(await o(a(`/api/image/providers`)))?.payload?.providers??[]}var E=e(t(),1),ie=n();function D(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function O(e){return e?.apiKey?`••••••••••••`:``}function k(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:O(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function A(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function j(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(C(n)&&C(r)))return n||(r?null:void 0)}function M(e,t,n){let r={};for(let i of e){let e=t[i]??D(),a=n[i]??D();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=j(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=A(e,a,`region`);c!==void 0&&(o.region=c);let l=A(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=A(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function N(e){let t=await o(a(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function P(e){Object.keys(e).length!==0&&(await o(a(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await S())}var F={showKey:!1,revealed:void 0,revealLoading:!1,revealErr:null,copied:!1};function I(e,t){switch(t.type){case`reset-reveal`:return{...e,showKey:!1,revealed:void 0,revealErr:null};case`toggle-show`:return{...e,showKey:!e.showKey};case`reveal-start`:return{...e,revealLoading:!0,revealErr:null};case`reveal-success`:return{...e,revealed:t.value,revealLoading:!1,showKey:!0,revealErr:null};case`reveal-error`:return{...e,revealed:null,revealLoading:!1,revealErr:t.message};case`copied`:return{...e,copied:!0};case`clear-copied`:return{...e,copied:!1};case`invalidate-reveal`:return{...e,revealed:void 0,showKey:!1}}}function ae(e){let{value:t,reveal:n,loadFailedLabel:r}=e,[i,a]=(0,E.useReducer)(I,F),o=C(t),s=(0,E.useRef)(n);s.current=n;let c=(0,E.useRef)({masked:o,value:t});!o&&(c.current.masked||c.current.value!==t)&&a({type:`reset-reveal`}),c.current={masked:o,value:t};let l=o&&i.showKey&&typeof i.revealed==`string`?i.revealed:t,u=!o||o&&i.showKey&&typeof i.revealed==`string`?`text`:`password`,d=!o&&t.trim().length>0&&!C(t)||!!i.showKey&&typeof i.revealed==`string`&&i.revealed.length>0,f=(0,E.useCallback)(async()=>{let e=!o&&t.trim()&&!C(t)?t.trim():typeof i.revealed==`string`&&i.revealed.length>0?i.revealed:``;e&&await h(e)&&(a({type:`copied`}),window.setTimeout(()=>a({type:`clear-copied`}),2e3))},[o,i.revealed,t]),p=(0,E.useCallback)(async()=>{if(!o){a({type:`toggle-show`});return}if(i.revealed!==void 0){a({type:`toggle-show`});return}a({type:`reveal-start`});try{a({type:`reveal-success`,value:await s.current()})}catch(e){a({type:`reveal-error`,message:e instanceof Error?e.message:r})}},[r,o,i.revealed]),ee=(0,E.useCallback)((e,t)=>{o&&typeof i.revealed==`string`&&i.showKey&&e!==i.revealed&&a({type:`invalidate-reveal`}),t(e)},[o,i.revealed,i.showKey]);return{masked:o,showKey:i.showKey,revealed:i.revealed,revealLoading:i.revealLoading,revealErr:i.revealErr,copied:i.copied,inputValue:l,inputType:u,copyEnabled:d,copyKey:f,toggleEye:p,onInputChange:ee}}var L=r();function R(e){let t=(0,ie.c)(64),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>N(n).then(z),t[0]=n,t[1]=c);let u=c,d;t[2]!==a.loadFailed||t[3]!==u||t[4]!==r?(d={value:r,reveal:u,loadFailedLabel:a.loadFailed},t[2]=a.loadFailed,t[3]=u,t[4]=r,t[5]=d):d=t[5];let{masked:f,showKey:p,revealed:h,revealLoading:y,revealErr:b,copied:S,inputValue:C,inputType:w,copyEnabled:T,copyKey:E,toggleEye:D,onInputChange:O}=ae(d),k=`img-cred-key-${n}`,A;t[6]!==a.apiKeyLabel||t[7]!==k?(A=(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:k,children:a.apiKeyLabel}),t[6]=a.apiKeyLabel,t[7]=k,t[8]=A):A=t[8];let j;t[9]!==s||t[10]!==o?(j=o.length>0?(0,L.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,L.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[_(e.kind,s),(0,L.jsx)(x,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[9]=s,t[10]=o,t[11]=j):j=t[11];let M;t[12]!==a.maskedHelp||t[13]!==f?(M=f?(0,L.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:a.maskedHelp}):null,t[12]=a.maskedHelp,t[13]=f,t[14]=M):M=t[14];let P=`img-cred-key-${n}`,F;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(F=l(`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-3 pr-24 font-mono text-sm text-fg`,`placeholder:text-fg-subtle`,m),t[15]=F):F=t[15];let I=f?`••••••••`:a.optionalPlaceholder,R;t[16]!==i||t[17]!==O?(R=e=>O(e.target.value,i),t[16]=i,t[17]=O,t[18]=R):R=t[18];let B;t[19]!==w||t[20]!==C||t[21]!==R||t[22]!==P||t[23]!==I?(B=(0,L.jsx)(`input`,{id:P,type:w,autoComplete:`off`,spellCheck:!1,className:F,value:C,placeholder:I,onChange:R}),t[19]=w,t[20]=C,t[21]=R,t[22]=P,t[23]=I,t[24]=B):B=t[24];let V;t[25]!==S||t[26]!==T||t[27]!==E||t[28]!==a.copied||t[29]!==a.copy?(V=T?(0,L.jsx)(`button`,{type:`button`,className:l(`rounded p-1.5 text-fg-subtle hover:bg-surface-hover hover:text-fg`,g.transition,g.press,g.focusRingPanel),title:S?a.copied:a.copy,"aria-label":S?a.copied:a.copy,onClick:()=>void E(),children:S?(0,L.jsx)(v,{className:`size-4`}):(0,L.jsx)(te,{className:`size-4`})}):null,t[25]=S,t[26]=T,t[27]=E,t[28]=a.copied,t[29]=a.copy,t[30]=V):V=t[30];let H;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(H=l(`rounded p-1.5 text-fg-subtle hover:bg-surface-hover hover:text-fg disabled:opacity-40`,g.transition,g.press,g.focusRingPanel),t[31]=H):H=t[31];let U=p?a.hide:a.show,W=p?a.hide:a.show,G;t[32]===D?G=t[33]:(G=()=>void D(),t[32]=D,t[33]=G);let K;t[34]!==y||t[35]!==p?(K=y?(0,L.jsx)(ee,{className:`size-4 animate-spin`,"aria-hidden":!0}):p?(0,L.jsx)(ne,{className:`size-4`,"aria-hidden":!0}):(0,L.jsx)(re,{className:`size-4`,"aria-hidden":!0}),t[34]=y,t[35]=p,t[36]=K):K=t[36];let q;t[37]!==y||t[38]!==U||t[39]!==W||t[40]!==G||t[41]!==K?(q=(0,L.jsx)(`button`,{type:`button`,className:H,title:U,"aria-label":W,disabled:y,onClick:G,children:K}),t[37]=y,t[38]=U,t[39]=W,t[40]=G,t[41]=K,t[42]=q):q=t[42];let J;t[43]!==V||t[44]!==q?(J=(0,L.jsxs)(`div`,{className:`absolute right-1 top-1/2 flex -translate-y-1/2 gap-0.5`,children:[V,q]}),t[43]=V,t[44]=q,t[45]=J):J=t[45];let Y;t[46]!==B||t[47]!==J?(Y=(0,L.jsxs)(`div`,{className:`relative min-w-0`,children:[B,J]}),t[46]=B,t[47]=J,t[48]=Y):Y=t[48];let X;t[49]!==a.notInConfigFile||t[50]!==f||t[51]!==b||t[52]!==h||t[53]!==p?(X=f&&p&&h===null&&!b?(0,L.jsx)(`p`,{className:`text-xs text-amber-700 dark:text-amber-400/90`,children:a.notInConfigFile}):null,t[49]=a.notInConfigFile,t[50]=f,t[51]=b,t[52]=h,t[53]=p,t[54]=X):X=t[54];let oe;t[55]===b?oe=t[56]:(oe=b?(0,L.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:b}):null,t[55]=b,t[56]=oe);let se;return t[57]!==Y||t[58]!==X||t[59]!==oe||t[60]!==A||t[61]!==j||t[62]!==M?(se=(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[A,j,M,Y,X,oe]}),t[57]=Y,t[58]=X,t[59]=oe,t[60]=A,t[61]=j,t[62]=M,t[63]=se):se=t[63],se}function z(e){return e.apiKey??null}function B(){return l(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,m)}function V(){return l(B(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var H=`__custom__`;function U(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:H}function W(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:H}function G(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function K(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function q(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function J(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function Y(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function X(e){let t=(0,ie.c)(76),{summaries:n,credDraft:r,credBaseline:i,credDirty:a,credSaving:o,credError:s,credSavedFlash:p,credNoopFlash:m,updateCredRow:h,onDiscardCredentials:g,onSaveCredentials:_,extensionIds:v,showExtensionLinks:te,showImageModelsLink:b,hideActions:ne,language:S,apiKeyLinkLabels:re,messages:C}=e,w=ne===void 0?!1:ne,T;t[0]===n?T=t[1]:(T=n.some(ue),t[0]=n,t[1]=T);let O=T,k;t[2]===n?k=t[3]:(k=n.some(le),t[2]=n,t[3]=k);let A=k,[j,M]=(0,E.useState)(ce),[N,P]=(0,E.useState)(se),F;if(t[4]!==i||t[5]!==r||t[6]!==n){F=new Set;for(let e of n)J(r[e.id]??D(),i[e.id]??D())&&F.add(e.id);t[4]=i,t[5]=r,t[6]=n,t[7]=F}else F=t[7];let I=F,ae;t[8]!==I||t[9]!==N||t[10]!==j?(ae=e=>N.has(e)?!1:j.has(e)?!0:I.has(e),t[8]=I,t[9]=N,t[10]=j,t[11]=ae):ae=t[11];let z=ae,X;t[12]===z?X=t[13]:(X=e=>{if(z(e)){P(t=>new Set(t).add(e)),M(t=>{let n=new Set(t);return n.delete(e),n});return}P(t=>{let n=new Set(t);return n.delete(e),n}),M(t=>new Set(t).add(e))},t[12]=z,t[13]=X);let de=X;if(n.length===0)return null;let fe;t[14]===C.credentialsIntro?fe=t[15]:(fe=(0,L.jsx)(`p`,{children:C.credentialsIntro}),t[14]=C.credentialsIntro,t[15]=fe);let pe;t[16]!==O||t[17]!==C.regionHint?(pe=O?(0,L.jsx)(`p`,{className:`text-fg-subtle`,children:C.regionHint}):null,t[16]=O,t[17]=C.regionHint,t[18]=pe):pe=t[18];let Z;t[19]!==A||t[20]!==C.endpointPresetsHint?(Z=A?(0,L.jsx)(`p`,{className:`text-fg-subtle`,children:C.endpointPresetsHint}):null,t[19]=A,t[20]=C.endpointPresetsHint,t[21]=Z):Z=t[21];let me;t[22]!==b||t[23]!==C.imageModelsLinkTitle||t[24]!==C.openImageModelsPage?(me=b?(0,L.jsx)(`p`,{children:(0,L.jsx)(c,{to:`/settings/image-models`,className:`font-medium text-accent hover:underline`,title:C.imageModelsLinkTitle,children:C.openImageModelsPage})}):null,t[22]=b,t[23]=C.imageModelsLinkTitle,t[24]=C.openImageModelsPage,t[25]=me):me=t[25];let he;t[26]!==fe||t[27]!==pe||t[28]!==Z||t[29]!==me?(he=(0,L.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[fe,pe,Z,me]}),t[26]=fe,t[27]=pe,t[28]=Z,t[29]=me,t[30]=he):he=t[30];let Q;t[31]===s?Q=t[32]:(Q=s?(0,L.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:s}):null,t[31]=s,t[32]=Q);let ge;t[33]!==a||t[34]!==m||t[35]!==p||t[36]!==o||t[37]!==w||t[38]!==g||t[39]!==_||t[40]!==C.credentialsNothingToSave||t[41]!==C.credentialsSaved||t[42]!==C.discardCredentials||t[43]!==C.saveCredentials||t[44]!==C.savingCredentials?(ge=w?null:(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[p?(0,L.jsx)(`span`,{className:`text-sm text-fg-muted`,children:C.credentialsSaved}):null,m?(0,L.jsx)(`span`,{className:`text-sm text-fg-muted`,children:C.credentialsNothingToSave}):null,(0,L.jsx)(u,{type:`button`,variant:`secondary`,onClick:g,disabled:!a||o,children:C.discardCredentials}),(0,L.jsx)(u,{type:`button`,variant:`primary`,onClick:_,disabled:!a||o,children:o?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(ee,{className:`size-3.5 animate-spin`}),(0,L.jsx)(`span`,{className:`ml-1.5`,children:C.savingCredentials})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(d,{className:`size-3.5`}),(0,L.jsx)(`span`,{className:`ml-1.5`,children:C.saveCredentials})]})})]}),t[33]=a,t[34]=m,t[35]=p,t[36]=o,t[37]=w,t[38]=g,t[39]=_,t[40]=C.credentialsNothingToSave,t[41]=C.credentialsSaved,t[42]=C.discardCredentials,t[43]=C.saveCredentials,t[44]=C.savingCredentials,t[45]=ge):ge=t[45];let $;if(t[46]!==re||t[47]!==i||t[48]!==r||t[49]!==v||t[50]!==z||t[51]!==S||t[52]!==te||t[53]!==n||t[54]!==C||t[55]!==de||t[56]!==h){let e;t[58]!==re||t[59]!==i||t[60]!==r||t[61]!==v||t[62]!==z||t[63]!==S||t[64]!==te||t[65]!==C||t[66]!==de||t[67]!==h?(e=e=>{let t=r[e.id]??D(),n=e.ui,a=te&&v.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,o=J(t,i[e.id]??D()),s=z(e.id),u=e.label??e.id,d=Y(C,e.models.length);return(0,L.jsxs)(`section`,{className:l(`overflow-hidden rounded-xl border bg-surface-panel shadow-sm transition-colors dark:shadow-none`,o?`border-accent/50`:`border-edge`),children:[(0,L.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":s,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>de(e.id),children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,L.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:u}),(0,L.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),o?(0,L.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:C.unsavedChanges}):null,e.configured?(0,L.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:C.configured}):(0,L.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:C.missingKey})]}),(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,L.jsx)(`span`,{children:d}),e.defaultModel?(0,L.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,L.jsxs)(`span`,{className:`text-fg-muted`,children:[C.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,L.jsx)(y,{className:l(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,s?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,L.jsx)(`span`,{className:`sr-only`,children:s?C.collapseProvider:C.expandProvider})]}),s?(0,L.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`border-t border-edge px-4 py-4`,children:[a?(0,L.jsxs)(c,{to:a,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:C.extensionSettingsLinkTitle,children:[(0,L.jsx)(x,{className:`size-3`}),C.openExtensionSettings]}):null,e.models.length>0?(0,L.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,L.jsxs)(`span`,{className:`text-fg-muted`,children:[C.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,L.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,L.jsx)(R,{providerId:e.id,value:t.apiKey,onChange:t=>h(e.id,{apiKey:t}),apiKeyLinks:f(e.id,S),apiKeyLinkLabels:re,labels:{apiKeyLabel:C.apiKeyLabel,optionalPlaceholder:C.optionalPlaceholder,maskedHelp:C.apiKeyMaskedHelp,copy:C.apiKeyCopy,copied:C.apiKeyCopied,show:C.apiKeyShow,hide:C.apiKeyHide,notInConfigFile:C.apiKeyNotInConfigFile,loadFailed:C.apiKeyRevealFailed}}),n?.regions?.length?(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:C.regionLabel}),(0,L.jsxs)(`select`,{id:`img-cred-region-preset-${e.id}`,className:V(),value:U(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){h(e.id,{region:``,imageBaseUrl:``});return}if(r===H){h(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&h(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,L.jsx)(`option`,{value:``,children:C.regionPresetDefault}),n.regions.map(e=>(0,L.jsx)(`option`,{value:e.value,children:G(C,e.value,e.label)},e.value)),(0,L.jsx)(`option`,{value:H,children:C.regionPresetCustom})]}),U(t,n.regions)===H?(0,L.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,L.jsx)(`input`,{type:`text`,className:B(),value:t.region,placeholder:`region`,onChange:t=>h(e.id,{region:t.target.value})}),(0,L.jsx)(`input`,{type:`url`,className:B(),value:t.imageBaseUrl,placeholder:C.imageBaseUrlLabel,onChange:t=>h(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:K(C,n.baseUrlPresetKind)}),q(C,n.baseUrlPresetKind)?(0,L.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:q(C,n.baseUrlPresetKind)}):null,(0,L.jsxs)(`select`,{id:`img-cred-base-preset-${e.id}`,className:V(),value:W(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){h(e.id,{baseUrl:``});return}if(n===H){h(e.id,{baseUrl:``});return}h(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,L.jsx)(`option`,{value:``,children:C.baseUrlPresetDefault}),n.baseUrlPresets.map(oe),(0,L.jsx)(`option`,{value:H,children:C.baseUrlPresetCustom})]}),W(t,n.baseUrlPresets)===H?(0,L.jsx)(`input`,{type:`url`,className:l(B(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>h(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&U(t,n.regions)!==H?(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:C.imageBaseUrlLabel}),(0,L.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:l(B(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:C.imageBaseUrlPresetHint}),(0,L.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:C.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=re,t[59]=i,t[60]=r,t[61]=v,t[62]=z,t[63]=S,t[64]=te,t[65]=C,t[66]=de,t[67]=h,t[68]=e):e=t[68],$=n.map(e),t[46]=re,t[47]=i,t[48]=r,t[49]=v,t[50]=z,t[51]=S,t[52]=te,t[53]=n,t[54]=C,t[55]=de,t[56]=h,t[57]=$}else $=t[57];let _e;t[69]===$?_e=t[70]:(_e=(0,L.jsx)(`div`,{className:`flex flex-col gap-4`,children:$}),t[69]=$,t[70]=_e);let ve;return t[71]!==he||t[72]!==Q||t[73]!==ge||t[74]!==_e?(ve=(0,L.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[he,Q,ge,_e]}),t[71]=he,t[72]=Q,t[73]=ge,t[74]=_e,t[75]=ve):ve=t[75],ve}function oe(e){return(0,L.jsx)(`option`,{value:e.value,children:e.label},e.value)}function se(){return new Set}function ce(){return new Set}function le(e){return(e.ui?.baseUrlPresets?.length??0)>0}function ue(e){return(e.ui?.regions?.length??0)>0}function de(e){let t=b(i(e=>!!e.token)),n=t.data,r=(0,E.useMemo)(()=>e.map(e=>e.id),[e]),o=(0,E.useRef)(!1),[c,l]=(0,E.useState)(null),[u,d]=(0,E.useState)(!1),[f,p]=(0,E.useState)(null),[ee,m]=(0,E.useState)(!1),[h,g]=(0,E.useState)(!1),_=(0,E.useMemo)(()=>k(n?.payload?.config,r),[n?.payload?.config,r]),v=c??_,y=_;return{gwSwr:t,credDraft:v,credBaseline:y,credDirty:(0,E.useMemo)(()=>JSON.stringify(v)!==JSON.stringify(y),[v,y]),credSaving:u,credError:f,credSavedFlash:ee,credNoopFlash:h,updateCredRow:(0,E.useCallback)((e,t)=>{o.current=!0,l(n=>{let r=n??_,i=r[e]??D();return{...r,[e]:{...i,...t}}})},[_]),onDiscardCredentials:(0,E.useCallback)(()=>{o.current=!1,l(null),p(null),m(!1),g(!1)},[]),saveCredentials:(0,E.useCallback)(async e=>{let n=M(r,v,y);if(Object.keys(n).length===0){g(!0),window.setTimeout(()=>g(!1),2200);return}d(!0),p(null),m(!1);try{await P(n),await t.mutate?.(),s(a(w)),o.current=!1,l(null),m(!0),window.setTimeout(()=>m(!1),2e3)}catch(t){p(t instanceof Error?t.message:e)}finally{d(!1)}},[r,v,y,t])}}function fe(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function pe(){return{enabled:!1,provider:`openai`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function Z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function me(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function he(e){let t=fe();if(!Z(e))return t;let n=me(e.provider),r=Z(e.alibaba)?{...t.alibaba,...e.alibaba}:t.alibaba,i=Z(e.openai)?{...t.openai,...e.openai}:t.openai,a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(Z(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=Z(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,Z(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function Q(e){return typeof e==`string`&&e.trim().length>0?e.trim():`openai`}function ge(e){let t=pe();if(!Z(e))return t;let n=Q(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=e[`tts-local-cli`];return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,alibaba:Z(e.alibaba)?{...t.alibaba,...e.alibaba}:t.alibaba,openai:Z(e.openai)?{...t.openai,...e.openai}:t.openai,edge:Z(e.edge)?{...t.edge,...e.edge}:t.edge,minimax:Z(e.minimax)?{...t.minimax,...e.minimax}:t.minimax,"tts-local-cli":Z(i)?{...t[`tts-local-cli`],...i}:t[`tts-local-cli`]}}function $(e){let t=Z(e)?e:{};return{stt:he(t.stt),tts:ge(t.tts)}}async function _e(){return $((await o(a(`/api/config`))).payload?.config??{})}async function ve(e){await o(a(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:e.stt,tts:e.tts})}),S()}async function ye(){let e=await o(a(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function be(){let e=await o(a(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function xe(){let e=await o(a(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Se(e){let t=await o(a(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function Ce(e){let t=(0,ie.c)(56),{kind:n,providerId:r,fieldId:i,value:a,onChange:o,labels:s,placeholder:c,className:d}=e,f=c===void 0?`sk-...`:c,h;t[0]!==n||t[1]!==r?(h=()=>Se({kind:n,provider:r}).then(we),t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,_;t[3]!==s.loadFailed||t[4]!==g||t[5]!==a?(_={value:a,reveal:g,loadFailedLabel:s.loadFailed},t[3]=s.loadFailed,t[4]=g,t[5]=a,t[6]=_):_=t[6];let{masked:v,showKey:y,revealed:b,revealLoading:x,revealErr:S,copied:C,inputValue:w,inputType:T,copyEnabled:E,copyKey:D,toggleEye:O,onInputChange:k}=ae(_),A;t[7]===d?A=t[8]:(A=l(`flex min-w-0 flex-col gap-1.5`,d),t[7]=d,t[8]=A);let j;t[9]!==s.maskedHelp||t[10]!==v?(j=v?(0,L.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:s.maskedHelp}):null,t[9]=s.maskedHelp,t[10]=v,t[11]=j):j=t[11];let M;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(M=l(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-fg`,`placeholder:text-fg-subtle`,m,`dark:border-edge`,`min-w-0 flex-1 font-mono text-xs`),t[12]=M):M=t[12];let N=v?`••••••••`:f,P;t[13]!==o||t[14]!==k?(P=e=>k(e.target.value,o),t[13]=o,t[14]=k,t[15]=P):P=t[15];let F;t[16]!==i||t[17]!==T||t[18]!==w||t[19]!==N||t[20]!==P?(F=(0,L.jsx)(`input`,{id:i,type:T,autoComplete:`off`,spellCheck:!1,className:M,value:w,placeholder:N,onChange:P}),t[16]=i,t[17]=T,t[18]=w,t[19]=N,t[20]=P,t[21]=F):F=t[21];let I;t[22]!==C||t[23]!==E||t[24]!==D||t[25]!==s.copied||t[26]!==s.copy?(I=E?(0,L.jsxs)(u,{type:`button`,variant:`secondary`,className:`px-2 py-1 text-xs`,onClick:()=>void D(),children:[C?(0,L.jsx)(p,{className:`size-3.5`}):(0,L.jsx)(te,{className:`size-3.5`}),C?s.copied:s.copy]}):null,t[22]=C,t[23]=E,t[24]=D,t[25]=s.copied,t[26]=s.copy,t[27]=I):I=t[27];let R;t[28]===O?R=t[29]:(R=()=>void O(),t[28]=O,t[29]=R);let z;t[30]!==x||t[31]!==y?(z=x?(0,L.jsx)(ee,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):y?(0,L.jsx)(ne,{className:`size-3.5`}):(0,L.jsx)(re,{className:`size-3.5`}),t[30]=x,t[31]=y,t[32]=z):z=t[32];let B=y?s.hide:s.show,V;t[33]!==x||t[34]!==R||t[35]!==z||t[36]!==B?(V=(0,L.jsxs)(u,{type:`button`,variant:`secondary`,className:`px-2 py-1 text-xs`,disabled:x,onClick:R,children:[z,B]}),t[33]=x,t[34]=R,t[35]=z,t[36]=B,t[37]=V):V=t[37];let H;t[38]!==I||t[39]!==V||t[40]!==F?(H=(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[F,I,V]}),t[38]=I,t[39]=V,t[40]=F,t[41]=H):H=t[41];let U;t[42]!==s.notInConfigFile||t[43]!==v||t[44]!==S||t[45]!==b||t[46]!==y?(U=v&&y&&b===null&&!S?(0,L.jsx)(`p`,{className:`text-xs text-amber-700 dark:text-amber-400/90`,children:s.notInConfigFile}):null,t[42]=s.notInConfigFile,t[43]=v,t[44]=S,t[45]=b,t[46]=y,t[47]=U):U=t[47];let W;t[48]===S?W=t[49]:(W=S?(0,L.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:S}):null,t[48]=S,t[49]=W);let G;return t[50]!==H||t[51]!==U||t[52]!==W||t[53]!==A||t[54]!==j?(G=(0,L.jsxs)(`div`,{className:A,children:[j,H,U,W]}),t[50]=H,t[51]=U,t[52]=W,t[53]=A,t[54]=j,t[55]=G):G=t[55],G}function we(e){return e.apiKey??null}export{xe as a,de as c,w as d,_e as i,X as l,ye as n,$ as o,be as r,ve as s,Ce as t,T as u};
|
|
2
|
+
//# sourceMappingURL=voice-api-key-field-5WZZaxH3.js.map
|