@xopcai/xopc 0.0.106 → 0.0.108

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 (183) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/dashscope/xopc.extension.json +7 -2
  3. package/dist/extensions/fal/xopc.extension.json +7 -2
  4. package/dist/extensions/feishu/src/adapters/gateway-setup.js +22 -26
  5. package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +1 -1
  6. package/dist/extensions/feishu/xopc.extension.json +458 -26
  7. package/dist/extensions/google/xopc.extension.json +7 -2
  8. package/dist/extensions/minimax/xopc.extension.json +8 -2
  9. package/dist/extensions/openai/xopc.extension.json +7 -2
  10. package/dist/extensions/telegram/xopc.extension.json +10 -2
  11. package/dist/extensions/weixin/xopc.extension.json +57 -14
  12. package/dist/gateway/static/root/apple-touch-icon.png +0 -0
  13. package/dist/gateway/static/root/assets/agents-56kCGHdV.js +78 -0
  14. package/dist/gateway/static/root/assets/apps-page-Dd88J47r.js +1 -0
  15. package/dist/gateway/static/root/assets/channels-settings-Ckyvnvml.js +1 -0
  16. package/dist/gateway/static/root/assets/cron-page-DKo2ZdRA.js +1 -0
  17. package/dist/gateway/static/root/assets/{dist-OM9qGfm5.js → dist-dmxWdtPG.js} +1 -1
  18. package/dist/gateway/static/root/assets/{extension-debug-page-D-WHrr_w.js → extension-debug-page-iGpG-vpp.js} +1 -1
  19. package/dist/gateway/static/root/assets/{extension-page-CCgjSoKn.js → extension-page-I7-3uHiD.js} +1 -1
  20. package/dist/gateway/static/root/assets/{extension-settings-page-BJH5a-Gn.js → extension-settings-page-BisnHG7r.js} +1 -1
  21. package/dist/gateway/static/root/assets/{fetch-CkvRO30i.js → fetch-CFdKBnE6.js} +1 -1
  22. package/dist/gateway/static/root/assets/{gateway-startup-retry-BkKyRDrF.js → gateway-startup-retry-DdngdObI.js} +1 -1
  23. package/dist/gateway/static/root/assets/{heartbeat-config-api-CVyP6pFj.js → heartbeat-config-api-tbWAFPN8.js} +1 -1
  24. package/dist/gateway/static/root/assets/index-DI5_GsZt.css +1 -0
  25. package/dist/gateway/static/root/assets/index-slwUkhxH.js +4845 -0
  26. package/dist/gateway/static/root/assets/{logs-page-R6Vv_Ja6.js → logs-page-CCZiXrWu.js} +2 -2
  27. package/dist/gateway/static/root/assets/{note-detail-page-BUDarLhh.js → note-detail-page-BYbw2GLl.js} +4 -4
  28. package/dist/gateway/static/root/assets/{note-time-Cc2-T21g.js → note-time-Cya72Lte.js} +1 -1
  29. package/dist/gateway/static/root/assets/notes-page-DrAO7VRK.js +1 -0
  30. package/dist/gateway/static/root/assets/{schema-form-CrlOmEZt.js → schema-form-a6UJCK55.js} +1 -1
  31. package/dist/gateway/static/root/assets/sessions-page-DNU3Ymvz.js +1 -0
  32. package/dist/gateway/static/root/assets/{settings-advanced-gate-BBAQxxew.js → settings-advanced-gate-CyEJYTbw.js} +1 -1
  33. package/dist/gateway/static/root/assets/{settings-form-section-DjPD-ErC.js → settings-form-section-DpHo2ecA.js} +1 -1
  34. package/dist/gateway/static/root/assets/settings-page-YRwe4q56.js +3 -0
  35. package/dist/gateway/static/root/assets/{share-preview-page-BjvPht3V.js → share-preview-page-B7rf4QB4.js} +1 -1
  36. package/dist/gateway/static/root/assets/skills-page-we1NAt7u.js +2 -0
  37. package/dist/gateway/static/root/assets/{theme-store-DYgVdRB4.js → theme-store-BZozwAeK.js} +1 -1
  38. package/dist/gateway/static/root/assets/url-DQRqHuL-.js +3 -0
  39. package/dist/gateway/static/root/assets/voice-api-key-field-Btagks_B.js +1 -0
  40. package/dist/gateway/static/root/assets/{workflow-page.utils-D4sqR0yX.js → workflow-page.utils-DvzJKs6W.js} +1 -1
  41. package/dist/gateway/static/root/assets/workflows-page-BgOAgCOG.js +18 -0
  42. package/dist/gateway/static/root/favicon-16.png +0 -0
  43. package/dist/gateway/static/root/favicon-32.png +0 -0
  44. package/dist/gateway/static/root/favicon.ico +0 -0
  45. package/dist/gateway/static/root/favicon.svg +18 -0
  46. package/dist/gateway/static/root/index.html +11 -10
  47. package/dist/package.js +1 -1
  48. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +4 -0
  49. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +4 -2
  50. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +1 -1
  51. package/dist/src/agent/starter-agents.d.ts +19 -0
  52. package/dist/src/agent/starter-agents.js +190 -0
  53. package/dist/src/agent/starter-agents.js.map +1 -0
  54. package/dist/src/agent/workflow/runtime.js +49 -15
  55. package/dist/src/agent/workflow/runtime.js.map +1 -1
  56. package/dist/src/agent/workflow/types.d.ts +11 -0
  57. package/dist/src/channels/catalog/channel-catalog-service.js +13 -0
  58. package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -1
  59. package/dist/src/channels/plugins/types.adapters.d.ts +2 -0
  60. package/dist/src/cli/commands/extension-create.d.ts +2 -0
  61. package/dist/src/cli/commands/extension-create.js +165 -0
  62. package/dist/src/cli/commands/extension-create.js.map +1 -0
  63. package/dist/src/cli/commands/extension-dev.js +0 -2
  64. package/dist/src/cli/commands/extension-dev.js.map +1 -1
  65. package/dist/src/cli/commands/extension-marketplace.js +104 -80
  66. package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
  67. package/dist/src/cli/commands/extension-pack.d.ts +13 -0
  68. package/dist/src/cli/commands/extension-pack.js +159 -91
  69. package/dist/src/cli/commands/extension-pack.js.map +1 -1
  70. package/dist/src/cli/commands/extension.d.ts +2 -0
  71. package/dist/src/cli/commands/extension.js +375 -3
  72. package/dist/src/cli/commands/extension.js.map +1 -1
  73. package/dist/src/cli/commands/gateway/run-foreground.js +1 -2
  74. package/dist/src/cli/commands/gateway/run-foreground.js.map +1 -1
  75. package/dist/src/cli/commands/onboard.js +0 -2
  76. package/dist/src/cli/commands/onboard.js.map +1 -1
  77. package/dist/src/cli/commands/setup.js +0 -2
  78. package/dist/src/cli/commands/setup.js.map +1 -1
  79. package/dist/src/cli/utils/init-workspace-core.js +9 -6
  80. package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
  81. package/dist/src/config/paths.d.ts +2 -2
  82. package/dist/src/config/paths.js +10 -6
  83. package/dist/src/config/paths.js.map +1 -1
  84. package/dist/src/config/schema.d.ts +2 -0
  85. package/dist/src/config/schema.js +3 -1
  86. package/dist/src/config/schema.js.map +1 -1
  87. package/dist/src/extensions/api.d.ts +4 -2
  88. package/dist/src/extensions/api.js +31 -12
  89. package/dist/src/extensions/api.js.map +1 -1
  90. package/dist/src/extensions/discover-extensions.js +1 -0
  91. package/dist/src/extensions/discover-extensions.js.map +1 -1
  92. package/dist/src/extensions/install.d.ts +1 -0
  93. package/dist/src/extensions/install.js +51 -8
  94. package/dist/src/extensions/install.js.map +1 -1
  95. package/dist/src/extensions/loader.d.ts +0 -4
  96. package/dist/src/extensions/loader.js +54 -87
  97. package/dist/src/extensions/loader.js.map +1 -1
  98. package/dist/src/extensions/lockfile.d.ts +9 -1
  99. package/dist/src/extensions/lockfile.js.map +1 -1
  100. package/dist/src/extensions/normalize-manifest.js +20 -4
  101. package/dist/src/extensions/normalize-manifest.js.map +1 -1
  102. package/dist/src/extensions/package-contract.d.ts +12 -0
  103. package/dist/src/extensions/package-contract.js +59 -0
  104. package/dist/src/extensions/package-contract.js.map +1 -0
  105. package/dist/src/extensions/sdk/core.d.ts +1 -1
  106. package/dist/src/extensions/sdk/index.d.ts +1 -1
  107. package/dist/src/extensions/sdk/index.js.map +1 -1
  108. package/dist/src/extensions/types/manifest.d.ts +15 -0
  109. package/dist/src/gateway/agents-admin.d.ts +0 -8
  110. package/dist/src/gateway/agents-admin.js +1 -26
  111. package/dist/src/gateway/agents-admin.js.map +1 -1
  112. package/dist/src/gateway/hono/routes/agents.js +1 -55
  113. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  114. package/dist/src/gateway/hono/routes/channels.js +10 -1
  115. package/dist/src/gateway/hono/routes/channels.js.map +1 -1
  116. package/dist/src/gateway/hono/routes/workflows.js +130 -0
  117. package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
  118. package/dist/src/gateway/service.d.ts +2 -0
  119. package/dist/src/gateway/service.js +44 -0
  120. package/dist/src/gateway/service.js.map +1 -1
  121. package/dist/src/notes/agent-context.d.ts +12 -4
  122. package/dist/src/notes/agent-context.js.map +1 -1
  123. package/dist/src/tui/backends/embedded-backend.js +0 -7
  124. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  125. package/dist/src/tui/backends/gateway-sse-backend.js +0 -7
  126. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  127. package/dist/src/tui/tui-backend.d.ts +0 -1
  128. package/dist/src/tui/tui-commands.js +1 -1
  129. package/dist/src/tui/tui-commands.js.map +1 -1
  130. package/dist/src/tui/tui-picker-overlay.js +1 -1
  131. package/dist/src/tui/tui-picker-overlay.js.map +1 -1
  132. package/dist/src/workflows/domain/definition-utils.d.ts +1 -0
  133. package/dist/src/workflows/domain/definition-utils.js +32 -2
  134. package/dist/src/workflows/domain/definition-utils.js.map +1 -1
  135. package/dist/src/workflows/domain/definition.d.ts +2 -0
  136. package/dist/src/workflows/domain/event.d.ts +2 -1
  137. package/dist/src/workflows/domain/index.d.ts +1 -0
  138. package/dist/src/workflows/domain/index.js +3 -2
  139. package/dist/src/workflows/domain/run.d.ts +27 -1
  140. package/dist/src/workflows/domain/run.js.map +1 -1
  141. package/dist/src/workflows/domain/schema-validation.d.ts +8 -0
  142. package/dist/src/workflows/domain/schema-validation.js +28 -0
  143. package/dist/src/workflows/domain/schema-validation.js.map +1 -0
  144. package/dist/src/workflows/draft/index.d.ts +3 -0
  145. package/dist/src/workflows/draft/index.js +3 -0
  146. package/dist/src/workflows/draft/workflow-draft-prompt.d.ts +23 -0
  147. package/dist/src/workflows/draft/workflow-draft-prompt.js +98 -0
  148. package/dist/src/workflows/draft/workflow-draft-prompt.js.map +1 -0
  149. package/dist/src/workflows/draft/workflow-draft-service.d.ts +12 -0
  150. package/dist/src/workflows/draft/workflow-draft-service.js +131 -0
  151. package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -0
  152. package/dist/src/workflows/draft/workflow-draft-validator.d.ts +4 -0
  153. package/dist/src/workflows/draft/workflow-draft-validator.js +133 -0
  154. package/dist/src/workflows/draft/workflow-draft-validator.js.map +1 -0
  155. package/dist/src/workflows/draft/workflow-draft.types.d.ts +44 -0
  156. package/dist/src/workflows/draft/workflow-draft.types.js +1 -0
  157. package/dist/src/workflows/engine/projector.js +1 -0
  158. package/dist/src/workflows/engine/projector.js.map +1 -1
  159. package/dist/src/workflows/engine/workflow-engine.d.ts +18 -0
  160. package/dist/src/workflows/engine/workflow-engine.js +320 -11
  161. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  162. package/dist/src/workflows/index.js +4 -3
  163. package/dist/src/workflows/service/workflow-run-service.d.ts +14 -3
  164. package/dist/src/workflows/service/workflow-run-service.js +227 -6
  165. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  166. package/dist/src/workflows/service/workflow-run-service.types.d.ts +7 -2
  167. package/package.json +4 -2
  168. package/dist/gateway/static/root/assets/agents-3eP0vqFO.js +0 -396
  169. package/dist/gateway/static/root/assets/apps-page-CZ2ZKrko.js +0 -1
  170. package/dist/gateway/static/root/assets/channels-settings-BbETa93K.js +0 -1
  171. package/dist/gateway/static/root/assets/cron-page-DCtUkHMu.js +0 -1
  172. package/dist/gateway/static/root/assets/index-BPYKW7FB.css +0 -1
  173. package/dist/gateway/static/root/assets/index-CEZxETzw.js +0 -4845
  174. package/dist/gateway/static/root/assets/notes-page-EAHl16bq.js +0 -1
  175. package/dist/gateway/static/root/assets/sessions-page-Ce_xuuSB.js +0 -1
  176. package/dist/gateway/static/root/assets/settings-page-KhQ9QgH0.js +0 -3
  177. package/dist/gateway/static/root/assets/skills-page-C0laq7l1.js +0 -2
  178. package/dist/gateway/static/root/assets/url-DPEStU4M.js +0 -3
  179. package/dist/gateway/static/root/assets/voice-api-key-field-DeGckWkl.js +0 -1
  180. package/dist/gateway/static/root/assets/workflows-page-DFjM95g5.js +0 -27
  181. package/dist/src/agent/builtin-agent-ids.d.ts +0 -2
  182. package/dist/src/agent/builtin-agent-ids.js +0 -17
  183. package/dist/src/agent/builtin-agent-ids.js.map +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,o as a,t as o}from"./url-DPEStU4M.js";import{i as s}from"./vendor-swr-BIWyz7Rc.js";import{a as c,n as l,t as u}from"./fetch-CkvRO30i.js";import{$o as d,Yo as f,_r as p,ai as m,ci as h,k as g,ka as _,li as v,si as y,ui as b}from"./index-CEZxETzw.js";import{a as x,c as S,d as C,i as w,l as T,s as E,t as D,u as O}from"./voice-api-key-field-DeGckWkl.js";import{t as k}from"./schema-form-CrlOmEZt.js";var A=n(),j=e(t(),1),M=r(),N=()=>o(C);function P(e){return{credentialsIntro:e.credentialsIntro,regionHint:e.regionHint,endpointPresetsHint:e.endpointPresetsHint,apiKeyLabel:e.apiKeyLabel,optionalPlaceholder:e.optionalPlaceholder,regionLabel:e.regionLabel,baseUrlLabel:e.baseUrlLabel,imageBaseUrlLabel:e.imageBaseUrlLabel,saveCredentials:e.saveCredentials,savingCredentials:e.savingCredentials,credentialsSaved:e.credentialsSaved,discardCredentials:e.discardCredentials,credentialsNothingToSave:e.credentialsNothingToSave,credentialsSaveError:e.credentialsSaveError,regionPresetDefault:e.regionPresetDefault,regionPresetCustom:e.regionPresetCustom,baseUrlPresetDefault:e.baseUrlPresetDefault,baseUrlPresetCustom:e.baseUrlPresetCustom,openExtensionSettings:e.openExtensionSettings,openImageModelsPage:e.openImageModelsPage,extensionSettingsLinkTitle:e.extensionSettingsLinkTitle,imageModelsLinkTitle:e.imageModelsLinkTitle,configured:e.configured,missingKey:e.missingKey,unsavedChanges:e.unsavedChanges,expandProvider:e.expandProvider,collapseProvider:e.collapseProvider,defaultModel:e.defaultModel,modelsLabel:e.modelsLabel,modelCountOne:e.modelCountOne,modelCountMany:e.modelCountMany,imageBaseUrlPresetHint:e.imageBaseUrlPresetHint,dashscopeRegion_beijing:e.dashscopeRegion_beijing,dashscopeRegion_singapore:e.dashscopeRegion_singapore,dashscopeRegion_us:e.dashscopeRegion_us,apiKeyMaskedHelp:e.apiKeyMaskedHelp,apiKeyCopy:e.apiKeyCopy,apiKeyCopied:e.apiKeyCopied,apiKeyShow:e.apiKeyShow,apiKeyHide:e.apiKeyHide,apiKeyNotInConfigFile:e.apiKeyNotInConfigFile,apiKeyRevealFailed:e.apiKeyRevealFailed,minimaxClusterLabel:e.minimaxClusterLabel,minimaxClusterHint:e.minimaxClusterHint,falQueueBaseLabel:e.falQueueBaseLabel,falQueueBaseHint:e.falQueueBaseHint}}function F(e){let t=(0,A.c)(40),{extensionId:n}=e,r=i(L),o;t[0]===r?o=t[1]:(o=a(r),t[0]=r,t[1]=o);let l=o,u=l.imageModelsSettings,d=c(I),f;t[2]===d?f=t[3]:(f=d?N():null,t[2]=d,t[3]=f);let p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p={revalidateOnFocus:!1},t[4]=p):p=t[4];let{data:m,isLoading:h}=s(f,O,p),g;t[5]===m?g=t[6]:(g=m===void 0?[]:m,t[5]=m,t[6]=g);let v=g,y;if(t[7]!==v||t[8]!==n){let e;t[10]===n?e=t[11]:(e=e=>e.id===n,t[10]=n,t[11]=e),y=v.filter(e),t[7]=v,t[8]=n,t[9]=y}else y=t[9];let b=y,x=S(b),C;t[12]===u?C=t[13]:(C=P(u),t[12]=u,t[13]=C);let w=C,E;t[14]!==l.providersSettings.getApiKey||t[15]!==l.providersSettings.getApiKeyCn||t[16]!==l.providersSettings.getApiKeyIntl?(E={getApiKey:l.providersSettings.getApiKey,getApiKeyIntl:l.providersSettings.getApiKeyIntl,getApiKeyCn:l.providersSettings.getApiKeyCn},t[14]=l.providersSettings.getApiKey,t[15]=l.providersSettings.getApiKeyCn,t[16]=l.providersSettings.getApiKeyIntl,t[17]=E):E=t[17];let D=E;if(!d)return null;if(h){let e;return t[18]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,M.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,M.jsx)(_,{className:`size-4 animate-spin`}),`…`]}),t[18]=e):e=t[18],e}if(b.length===0){let e=r===`zh`?`网关未注册该图像 Provider,或扩展已被禁用。`:`This image provider is not registered on the gateway, or the extension is disabled.`,n;return t[19]===e?n=t[20]:(n=(0,M.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e}),t[19]=e,t[20]=n),n}let k;t[21]!==x||t[22]!==u.credentialsSaveError?(k=()=>void x.saveCredentials(u.credentialsSaveError),t[21]=x,t[22]=u.credentialsSaveError,t[23]=k):k=t[23];let j;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(j=new Set,t[24]=j):j=t[24];let F;return t[25]!==D||t[26]!==x.credBaseline||t[27]!==x.credDirty||t[28]!==x.credDraft||t[29]!==x.credError||t[30]!==x.credNoopFlash||t[31]!==x.credSavedFlash||t[32]!==x.credSaving||t[33]!==x.onDiscardCredentials||t[34]!==x.updateCredRow||t[35]!==r||t[36]!==w||t[37]!==b||t[38]!==k?(F=(0,M.jsx)(T,{summaries:b,credDraft:x.credDraft,credBaseline:x.credBaseline,credDirty:x.credDirty,credSaving:x.credSaving,credError:x.credError,credSavedFlash:x.credSavedFlash,credNoopFlash:x.credNoopFlash,updateCredRow:x.updateCredRow,onDiscardCredentials:x.onDiscardCredentials,onSaveCredentials:k,extensionIds:j,showExtensionLinks:!1,showImageModelsLink:!1,language:r,apiKeyLinkLabels:D,messages:w}),t[25]=D,t[26]=x.credBaseline,t[27]=x.credDirty,t[28]=x.credDraft,t[29]=x.credError,t[30]=x.credNoopFlash,t[31]=x.credSavedFlash,t[32]=x.credSaving,t[33]=x.onDiscardCredentials,t[34]=x.updateCredRow,t[35]=r,t[36]=w,t[37]=b,t[38]=k,t[39]=F):F=t[39],F}function I(e){return!!e.token}function L(e){return e.language}function R(e){let t=(0,A.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,M.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:n}),t[0]=n,t[1]=r),r}var z=[{id:`whisper-large-v3-turbo`,name:`Whisper Large v3 Turbo`},{id:`whisper-large-v3`,name:`Whisper Large v3`}];function B(e){let t=e?.manifest?.mediaUnderstandingProviders?.[0];if(typeof t==`string`&&t.trim())return t.trim();let n=e?.manifest?.contracts?.mediaUnderstandingProviders?.[0];if(typeof n==`string`&&n.trim())return n.trim()}function V(){return b(y,m)}function H(){return b(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,h,`dark:border-edge`)}function U(e,t){if(!e||!t)return{apiKey:``,model:z[0].id};if(t===`alibaba`)return{apiKey:e.stt.alibaba?.apiKey??``,model:e.stt.alibaba?.model??`paraformer-v2`};if(t===`openai`)return{apiKey:e.stt.openai?.apiKey??``,model:e.stt.openai?.model??`whisper-1`};let n=e.stt.providers?.[t];return{apiKey:typeof n?.apiKey==`string`?n.apiKey:``,model:typeof n?.model==`string`?n.model:z[0].id}}function W({providerId:e,voiceSettings:t,mutateVoice:n}){let r=a(i(e=>e.language)),c=r.voiceSettings,l=r.extensionSttMedia,u={maskedHelp:c.apiKeyMaskedHelp,copy:c.apiKeyCopy,copied:c.apiKeyCopied,show:c.apiKeyShow,hide:c.apiKeyHide,notInConfigFile:c.apiKeyNotInConfigFile,loadFailed:c.apiKeyRevealFailed},{data:d}=s(o(`/api/voice/stt-providers`),x,{revalidateOnFocus:!1}),f=(0,j.useMemo)(()=>d?.providers.some(t=>t.id===e&&t.configured)??!1,[e,d]),p=(0,j.useMemo)(()=>U(t,e),[e,t]),h=(0,j.useRef)(!1),[g,_]=(0,j.useState)(null),[y,S]=(0,j.useState)(!1),[C,w]=(0,j.useState)(null),[T,O]=(0,j.useState)(!1),k=g??p,A=p,N=k.apiKey!==A.apiKey||k.model!==A.model,P=(0,j.useCallback)(async()=>{S(!0),w(null);try{let r=structuredClone(t);r.stt.enabled=!0,e===`alibaba`?(r.stt.provider=`alibaba`,r.stt.alibaba={...r.stt.alibaba,apiKey:k.apiKey,model:k.model}):e===`openai`?(r.stt.provider=`openai`,r.stt.openai={...r.stt.openai,apiKey:k.apiKey,model:k.model}):(r.stt.providers={...r.stt.providers??{},[e]:{...r.stt.providers?.[e]??{},apiKey:k.apiKey,model:k.model}},(!r.stt.provider||r.stt.provider===`alibaba`||r.stt.provider===`openai`)&&(r.stt.provider=e)),await E(r),await n(r,!1),h.current=!1,_(null),O(!0),window.setTimeout(()=>O(!1),2500)}catch(e){w(e instanceof Error?e.message:String(e))}finally{S(!1)}},[k.apiKey,k.model,n,e,t]),F=e===`groq`?z:[{id:k.model,name:k.model}];return(0,M.jsxs)(`div`,{className:`flex flex-col gap-4 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:l.credentialsTitle}),(0,M.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:l.credentialsHint.replace(`{providerId}`,e)})]}),(0,M.jsx)(`span`,{className:b(`rounded-full px-2 py-0.5 text-xs font-medium`,f?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:`bg-amber-500/10 text-amber-800 dark:text-amber-200`),children:f?l.configured:l.notConfigured})]}),(0,M.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,M.jsxs)(`div`,{className:b(`flex flex-col gap-1.5`,m),children:[(0,M.jsx)(R,{children:c.stt.apiKey}),(0,M.jsx)(D,{kind:`stt`,providerId:e,fieldId:`ext-stt-${e}-api-key`,value:k.apiKey,onChange:e=>{h.current=!0,_(t=>({...t??p,apiKey:e})),w(null)},labels:u,placeholder:e===`groq`?`gsk_...`:`sk-...`}),(0,M.jsxs)(`p`,{className:`text-xs text-fg-subtle`,children:[c.stt.apiKeyDesc,e===`groq`?` (GROQ_API_KEY)`:``]})]}),(0,M.jsxs)(`div`,{className:b(`flex flex-col gap-1.5`,m),children:[(0,M.jsx)(R,{children:c.stt.model}),e===`groq`?(0,M.jsx)(`select`,{className:V(),value:k.model,onChange:e=>{h.current=!0,_(t=>({...t??p,model:e.target.value})),w(null)},children:F.map(e=>(0,M.jsx)(`option`,{value:e.id,children:e.name},e.id))}):(0,M.jsx)(`input`,{className:H(),value:k.model,onChange:e=>{h.current=!0,_(t=>({...t??p,model:e.target.value})),w(null)}})]})]}),(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[T?(0,M.jsx)(`span`,{className:`text-xs text-emerald-600 dark:text-emerald-400`,children:c.saved}):null,C?(0,M.jsx)(`span`,{className:`text-xs text-red-600 dark:text-red-400`,children:C}):null,(0,M.jsx)(v,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,disabled:!N||y,onClick:()=>{h.current=!1,_(null),w(null)},children:c.discard}),(0,M.jsx)(v,{type:`button`,variant:`primary`,className:`h-8 text-xs`,disabled:!N||y,onClick:()=>void P(),children:y?c.saving:c.save})]})]})}function G(e){let t=(0,A.c)(13),{extensionId:n}=e,r=i(q),a=c(K),u;t[0]===n?u=t[1]:(u=()=>l(o(`/api/extensions/${encodeURIComponent(n)}`)),t[0]=n,t[1]=u);let{data:d,isLoading:f}=s(a&&n?`ext-stt-detail-${n}`:null,u),p;t[2]===d?p=t[3]:(p=B(d),t[2]=d,t[3]=p);let m=p,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h={revalidateOnFocus:!1},t[4]=h):h=t[4];let{data:g,mutate:v,isLoading:y}=s(a?`voice-settings-ext-stt`:null,w,h);if(!a)return null;if(f||y){let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,M.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,M.jsx)(_,{className:`size-4 animate-spin`}),`…`]}),t[5]=e):e=t[5],e}if(!m){let e=r===`zh`?`该扩展未声明 mediaUnderstandingProviders。`:`This extension does not declare mediaUnderstandingProviders.`,n;return t[6]===e?n=t[7]:(n=(0,M.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e}),t[6]=e,t[7]=n),n}if(!g)return null;let b=`${n}:${m}`,x;return t[8]!==v||t[9]!==m||t[10]!==b||t[11]!==g?(x=(0,M.jsx)(W,{providerId:m,voiceSettings:g,mutateVoice:v},b),t[8]=v,t[9]=m,t[10]=b,t[11]=g,t[12]=x):x=t[12],x}function K(e){return!!e.token}function q(e){return e.language}function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Y(e){let t={};if(e.type!==`object`||!J(e.properties))return t;for(let[n,r]of Object.entries(e.properties))J(r)&&Object.prototype.hasOwnProperty.call(r,`default`)&&(t[n]=r.default);return t}function X(e,t){switch(t.type){case`sync`:return{...e,localValues:t.value,isDirty:!1,saveError:null};case`change`:return{...e,localValues:t.value,isDirty:!0,saveError:null,saveSuccess:!1};case`discard`:return{...e,localValues:t.value,isDirty:!1,saveError:null};case`reset-defaults`:return{...e,localValues:t.value,isDirty:!0,saveError:null,saveSuccess:!1};case`save-start`:return{...e,saving:!0,saveError:null};case`save-success`:return{...e,localValues:t.value,isDirty:!1,saving:!1,saveSuccess:!0,saveError:null};case`save-error`:return{...e,saving:!1,saveError:t.message}}}function Z({extensionId:e}){let t=a(i(e=>e.language)).agentSettings,n=c(e=>!!e.token),{data:r,error:d}=s(n&&e?`ext-detail-${e}`:null,()=>l(o(`/api/extensions/${encodeURIComponent(e)}`))),{data:f,mutate:p,error:m}=s(n&&e?`ext-cfg-${e}`:null,()=>l(o(`/api/extensions/${encodeURIComponent(e)}/config`))),h=r?.manifest?.configSchema,g=(0,j.useMemo)(()=>h&&h.type===`object`?Y(h):{},[h]),_=(0,j.useMemo)(()=>({...g,...f??{}}),[g,f]),[y,b]=(0,j.useReducer)(X,{localValues:{},isDirty:!1,saving:!1,saveError:null,saveSuccess:!1}),[x,S]=(0,j.useState)(!1),C=(0,j.useRef)(!1),w=(0,j.useRef)(_);!C.current&&w.current!==_&&(w.current=_,b({type:`sync`,value:_}));let T=(0,j.useCallback)(e=>{C.current=!0,b({type:`change`,value:e})},[]),E=(0,j.useCallback)(()=>{C.current=!1,b({type:`discard`,value:_})},[_]),D=(0,j.useCallback)(()=>{!h||h.type!==`object`||(C.current=!0,b({type:`reset-defaults`,value:{...Y(h)}}))},[h]),O=(0,j.useCallback)(async()=>{if(e){b({type:`save-start`});try{let t=await u(o(`/api/extensions/${encodeURIComponent(e)}/config`),{method:`PATCH`,body:JSON.stringify(y.localValues)});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error?.message??t.statusText)}await p(y.localValues,!1),C.current=!1,b({type:`save-success`,value:y.localValues}),S(!0),window.setTimeout(()=>S(!1),3e3)}catch(e){b({type:`save-error`,message:e instanceof Error?e.message:String(e)})}}},[y.localValues,e,p]);if(!n)return null;if(d||m){let e=d??m;return(0,M.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[`Could not load extension settings: `,e instanceof Error?e.message:String(e)]})}return!h||h.type!==`object`?null:(0,M.jsxs)(`div`,{className:`mb-6 flex flex-col gap-3 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:`Configuration`}),(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[x?(0,M.jsx)(`span`,{className:`text-xs text-emerald-600 dark:text-emerald-400`,children:t.saved}):null,y.saveError?(0,M.jsx)(`span`,{className:`text-xs text-red-600 dark:text-red-400`,children:y.saveError}):null,(0,M.jsx)(v,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,disabled:!y.isDirty,onClick:E,children:t.discard}),(0,M.jsx)(v,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,onClick:D,children:`Reset to defaults`}),(0,M.jsx)(v,{type:`button`,variant:`primary`,className:`h-8 text-xs`,disabled:!y.isDirty||y.saving,onClick:()=>void O(),children:y.saving?t.saving:t.save})]})]}),(0,M.jsx)(k,{schema:h,values:y.localValues,onChange:T,disabled:y.saving})]})}function Q(){let e=(0,A.c)(47),t=i(ee),n;e[0]===t?n=e[1]:(n=a(t),e[0]=t,e[1]=n);let r=n,o=r.extensionImageGen,s=r.extensionSttMedia,{extensionId:c,panelId:l}=d(),u=p();if(!c){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)($,{message:`No extension ID provided.`}),e[2]=t):t=e[2],t}let m,h,_;if(e[3]!==c||e[4]!==u||e[5]!==l){_=Symbol.for(`react.early_return_sentinel`);bb0:{let t;if(e[9]===c?t=e[10]:(t=e=>e.id===c,e[9]=c,e[10]=t),m=u.find(t),!m){let t=`Extension "${c}" not found or is not available in this workspace.`,n;e[11]===t?n=e[12]:(n=(0,M.jsx)($,{message:t}),e[11]=t,e[12]=n),_=n;break bb0}let n=m.ui?.contributions?.settingsPanels;h=l?n?.find(e=>e.id===l||e.id===`${c}.${l}`):n?.[0]}e[3]=c,e[4]=u,e[5]=l,e[6]=m,e[7]=h,e[8]=_}else m=e[6],h=e[7],_=e[8];if(_!==Symbol.for(`react.early_return_sentinel`))return _;let v=h,y=!!(v&&m.ui),b=!!m.hasConfigSchema,x=m.kind===`image-generation`,S=m.kind===`media-provider`;if(!b&&!y&&!(x||S)){let t=`Extension "${c}" has no settings panels or config schema.`,n;return e[13]===t?n=e[14]:(n=(0,M.jsx)($,{message:t}),e[13]=t,e[14]=n),n}let C=v?.title??`${m.name} Settings`,w;e[15]===C?w=e[16]:(w=(0,M.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:C}),e[15]=C,e[16]=w);let T;e[17]!==x||e[18]!==r.imageModelsSettings||e[19]!==o?(T=x?(0,M.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-edge-subtle bg-surface-base px-4 py-3 text-sm`,children:[(0,M.jsx)(`p`,{className:`leading-relaxed text-fg-muted`,children:o.banner}),(0,M.jsx)(f,{to:`/settings/credentials?tab=image-models`,className:`w-fit font-medium text-accent hover:underline`,title:r.imageModelsSettings.imageModelsLinkTitle,children:o.openImageModels})]}):null,e[17]=x,e[18]=r.imageModelsSettings,e[19]=o,e[20]=T):T=e[20];let E;e[21]!==c||e[22]!==x?(E=x?(0,M.jsx)(F,{extensionId:c}):null,e[21]=c,e[22]=x,e[23]=E):E=e[23];let D;e[24]!==S||e[25]!==s?(D=S?(0,M.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-edge-subtle bg-surface-base px-4 py-3 text-sm`,children:[(0,M.jsx)(`p`,{className:`leading-relaxed text-fg-muted`,children:s.banner}),(0,M.jsx)(f,{to:`/settings/credentials?tab=voice`,className:`w-fit font-medium text-accent hover:underline`,children:s.openVoice})]}):null,e[24]=S,e[25]=s,e[26]=D):D=e[26];let O;e[27]!==c||e[28]!==S?(O=S?(0,M.jsx)(G,{extensionId:c}):null,e[27]=c,e[28]=S,e[29]=O):O=e[29];let k;e[30]!==c||e[31]!==b?(k=b?(0,M.jsx)(Z,{extensionId:c}):null,e[30]=c,e[31]=b,e[32]=k):k=e[32];let j;e[33]!==m.name||e[34]!==m.ui||e[35]!==c||e[36]!==y||e[37]!==v?(j=y&&v&&m.ui?(0,M.jsx)(`div`,{className:`overflow-hidden rounded-xl border border-edge bg-surface-base`,children:(0,M.jsx)(g,{extensionId:c,extensionName:m.name,entrypoint:v.entrypoint,permissions:m.ui?.permissions,title:v.title,className:`w-full`,minHeight:120,maxHeight:2e3})}):null,e[33]=m.name,e[34]=m.ui,e[35]=c,e[36]=y,e[37]=v,e[38]=j):j=e[38];let N;return e[39]!==w||e[40]!==T||e[41]!==E||e[42]!==D||e[43]!==O||e[44]!==k||e[45]!==j?(N=(0,M.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-3 px-4 py-8`,children:[w,T,E,D,O,k,j]}),e[39]=w,e[40]=T,e[41]=E,e[42]=D,e[43]=O,e[44]=k,e[45]=j,e[46]=N):N=e[46],N}function ee(e){return e.language}function $(e){let t=(0,A.c)(2),{message:n}=e,r;return t[0]===n?r=t[1]:(r=(0,M.jsx)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-3 px-4 py-8`,children:(0,M.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n})}),t[0]=n,t[1]=r),r}export{Q as ExtensionSettingsPage};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,o as a,t as o}from"./url-DQRqHuL-.js";import{i as s}from"./vendor-swr-BIWyz7Rc.js";import{a as c,n as l,t as u}from"./fetch-CFdKBnE6.js";import{N as d,Zo as f,br as p,ci as m,di as h,fi as g,ja as _,pi as v,ts as y,ui as b}from"./index-slwUkhxH.js";import{a as x,c as S,d as C,i as w,l as T,s as E,t as D,u as O}from"./voice-api-key-field-Btagks_B.js";import{t as k}from"./schema-form-a6UJCK55.js";var A=n(),j=e(t(),1),M=r(),N=()=>o(C);function P(e){return{credentialsIntro:e.credentialsIntro,regionHint:e.regionHint,endpointPresetsHint:e.endpointPresetsHint,apiKeyLabel:e.apiKeyLabel,optionalPlaceholder:e.optionalPlaceholder,regionLabel:e.regionLabel,baseUrlLabel:e.baseUrlLabel,imageBaseUrlLabel:e.imageBaseUrlLabel,saveCredentials:e.saveCredentials,savingCredentials:e.savingCredentials,credentialsSaved:e.credentialsSaved,discardCredentials:e.discardCredentials,credentialsNothingToSave:e.credentialsNothingToSave,credentialsSaveError:e.credentialsSaveError,regionPresetDefault:e.regionPresetDefault,regionPresetCustom:e.regionPresetCustom,baseUrlPresetDefault:e.baseUrlPresetDefault,baseUrlPresetCustom:e.baseUrlPresetCustom,openExtensionSettings:e.openExtensionSettings,openImageModelsPage:e.openImageModelsPage,extensionSettingsLinkTitle:e.extensionSettingsLinkTitle,imageModelsLinkTitle:e.imageModelsLinkTitle,configured:e.configured,missingKey:e.missingKey,unsavedChanges:e.unsavedChanges,expandProvider:e.expandProvider,collapseProvider:e.collapseProvider,defaultModel:e.defaultModel,modelsLabel:e.modelsLabel,modelCountOne:e.modelCountOne,modelCountMany:e.modelCountMany,imageBaseUrlPresetHint:e.imageBaseUrlPresetHint,dashscopeRegion_beijing:e.dashscopeRegion_beijing,dashscopeRegion_singapore:e.dashscopeRegion_singapore,dashscopeRegion_us:e.dashscopeRegion_us,apiKeyMaskedHelp:e.apiKeyMaskedHelp,apiKeyCopy:e.apiKeyCopy,apiKeyCopied:e.apiKeyCopied,apiKeyShow:e.apiKeyShow,apiKeyHide:e.apiKeyHide,apiKeyNotInConfigFile:e.apiKeyNotInConfigFile,apiKeyRevealFailed:e.apiKeyRevealFailed,minimaxClusterLabel:e.minimaxClusterLabel,minimaxClusterHint:e.minimaxClusterHint,falQueueBaseLabel:e.falQueueBaseLabel,falQueueBaseHint:e.falQueueBaseHint}}function F(e){let t=(0,A.c)(40),{extensionId:n}=e,r=i(L),o;t[0]===r?o=t[1]:(o=a(r),t[0]=r,t[1]=o);let l=o,u=l.imageModelsSettings,d=c(I),f;t[2]===d?f=t[3]:(f=d?N():null,t[2]=d,t[3]=f);let p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p={revalidateOnFocus:!1},t[4]=p):p=t[4];let{data:m,isLoading:h}=s(f,O,p),g;t[5]===m?g=t[6]:(g=m===void 0?[]:m,t[5]=m,t[6]=g);let v=g,y;if(t[7]!==v||t[8]!==n){let e;t[10]===n?e=t[11]:(e=e=>e.id===n,t[10]=n,t[11]=e),y=v.filter(e),t[7]=v,t[8]=n,t[9]=y}else y=t[9];let b=y,x=S(b),C;t[12]===u?C=t[13]:(C=P(u),t[12]=u,t[13]=C);let w=C,E;t[14]!==l.providersSettings.getApiKey||t[15]!==l.providersSettings.getApiKeyCn||t[16]!==l.providersSettings.getApiKeyIntl?(E={getApiKey:l.providersSettings.getApiKey,getApiKeyIntl:l.providersSettings.getApiKeyIntl,getApiKeyCn:l.providersSettings.getApiKeyCn},t[14]=l.providersSettings.getApiKey,t[15]=l.providersSettings.getApiKeyCn,t[16]=l.providersSettings.getApiKeyIntl,t[17]=E):E=t[17];let D=E;if(!d)return null;if(h){let e;return t[18]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,M.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,M.jsx)(_,{className:`size-4 animate-spin`}),`…`]}),t[18]=e):e=t[18],e}if(b.length===0){let e=r===`zh`?`网关未注册该图像 Provider,或扩展已被禁用。`:`This image provider is not registered on the gateway, or the extension is disabled.`,n;return t[19]===e?n=t[20]:(n=(0,M.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e}),t[19]=e,t[20]=n),n}let k;t[21]!==x||t[22]!==u.credentialsSaveError?(k=()=>void x.saveCredentials(u.credentialsSaveError),t[21]=x,t[22]=u.credentialsSaveError,t[23]=k):k=t[23];let j;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(j=new Set,t[24]=j):j=t[24];let F;return t[25]!==D||t[26]!==x.credBaseline||t[27]!==x.credDirty||t[28]!==x.credDraft||t[29]!==x.credError||t[30]!==x.credNoopFlash||t[31]!==x.credSavedFlash||t[32]!==x.credSaving||t[33]!==x.onDiscardCredentials||t[34]!==x.updateCredRow||t[35]!==r||t[36]!==w||t[37]!==b||t[38]!==k?(F=(0,M.jsx)(T,{summaries:b,credDraft:x.credDraft,credBaseline:x.credBaseline,credDirty:x.credDirty,credSaving:x.credSaving,credError:x.credError,credSavedFlash:x.credSavedFlash,credNoopFlash:x.credNoopFlash,updateCredRow:x.updateCredRow,onDiscardCredentials:x.onDiscardCredentials,onSaveCredentials:k,extensionIds:j,showExtensionLinks:!1,showImageModelsLink:!1,language:r,apiKeyLinkLabels:D,messages:w}),t[25]=D,t[26]=x.credBaseline,t[27]=x.credDirty,t[28]=x.credDraft,t[29]=x.credError,t[30]=x.credNoopFlash,t[31]=x.credSavedFlash,t[32]=x.credSaving,t[33]=x.onDiscardCredentials,t[34]=x.updateCredRow,t[35]=r,t[36]=w,t[37]=b,t[38]=k,t[39]=F):F=t[39],F}function I(e){return!!e.token}function L(e){return e.language}function R(e){let t=(0,A.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,M.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:n}),t[0]=n,t[1]=r),r}var z=[{id:`whisper-large-v3-turbo`,name:`Whisper Large v3 Turbo`},{id:`whisper-large-v3`,name:`Whisper Large v3`}];function B(e){let t=e?.manifest?.mediaUnderstandingProviders?.[0];if(typeof t==`string`&&t.trim())return t.trim();let n=e?.manifest?.contracts?.mediaUnderstandingProviders?.[0];if(typeof n==`string`&&n.trim())return n.trim()}function V(){return v(b,m)}function H(){return v(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,h,`dark:border-edge`)}function U(e,t){if(!e||!t)return{apiKey:``,model:z[0].id};if(t===`alibaba`)return{apiKey:e.stt.alibaba?.apiKey??``,model:e.stt.alibaba?.model??`paraformer-v2`};if(t===`openai`)return{apiKey:e.stt.openai?.apiKey??``,model:e.stt.openai?.model??`whisper-1`};let n=e.stt.providers?.[t];return{apiKey:typeof n?.apiKey==`string`?n.apiKey:``,model:typeof n?.model==`string`?n.model:z[0].id}}function W({providerId:e,voiceSettings:t,mutateVoice:n}){let r=a(i(e=>e.language)),c=r.voiceSettings,l=r.extensionSttMedia,u={maskedHelp:c.apiKeyMaskedHelp,copy:c.apiKeyCopy,copied:c.apiKeyCopied,show:c.apiKeyShow,hide:c.apiKeyHide,notInConfigFile:c.apiKeyNotInConfigFile,loadFailed:c.apiKeyRevealFailed},{data:d}=s(o(`/api/voice/stt-providers`),x,{revalidateOnFocus:!1}),f=(0,j.useMemo)(()=>d?.providers.some(t=>t.id===e&&t.configured)??!1,[e,d]),p=(0,j.useMemo)(()=>U(t,e),[e,t]),h=(0,j.useRef)(!1),[_,y]=(0,j.useState)(null),[b,S]=(0,j.useState)(!1),[C,w]=(0,j.useState)(null),[T,O]=(0,j.useState)(!1),k=_??p,A=p,N=k.apiKey!==A.apiKey||k.model!==A.model,P=(0,j.useCallback)(async()=>{S(!0),w(null);try{let r=structuredClone(t);r.stt.enabled=!0,e===`alibaba`?(r.stt.provider=`alibaba`,r.stt.alibaba={...r.stt.alibaba,apiKey:k.apiKey,model:k.model}):e===`openai`?(r.stt.provider=`openai`,r.stt.openai={...r.stt.openai,apiKey:k.apiKey,model:k.model}):(r.stt.providers={...r.stt.providers??{},[e]:{...r.stt.providers?.[e]??{},apiKey:k.apiKey,model:k.model}},(!r.stt.provider||r.stt.provider===`alibaba`||r.stt.provider===`openai`)&&(r.stt.provider=e)),await E(r),await n(r,!1),h.current=!1,y(null),O(!0),window.setTimeout(()=>O(!1),2500)}catch(e){w(e instanceof Error?e.message:String(e))}finally{S(!1)}},[k.apiKey,k.model,n,e,t]),F=e===`groq`?z:[{id:k.model,name:k.model}];return(0,M.jsxs)(`div`,{className:`flex flex-col gap-4 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:l.credentialsTitle}),(0,M.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:l.credentialsHint.replace(`{providerId}`,e)})]}),(0,M.jsx)(`span`,{className:v(`rounded-full px-2 py-0.5 text-xs font-medium`,f?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:`bg-amber-500/10 text-amber-800 dark:text-amber-200`),children:f?l.configured:l.notConfigured})]}),(0,M.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,M.jsxs)(`div`,{className:v(`flex flex-col gap-1.5`,m),children:[(0,M.jsx)(R,{children:c.stt.apiKey}),(0,M.jsx)(D,{kind:`stt`,providerId:e,fieldId:`ext-stt-${e}-api-key`,value:k.apiKey,onChange:e=>{h.current=!0,y(t=>({...t??p,apiKey:e})),w(null)},labels:u,placeholder:e===`groq`?`gsk_...`:`sk-...`}),(0,M.jsxs)(`p`,{className:`text-xs text-fg-subtle`,children:[c.stt.apiKeyDesc,e===`groq`?` (GROQ_API_KEY)`:``]})]}),(0,M.jsxs)(`div`,{className:v(`flex flex-col gap-1.5`,m),children:[(0,M.jsx)(R,{children:c.stt.model}),e===`groq`?(0,M.jsx)(`select`,{className:V(),value:k.model,onChange:e=>{h.current=!0,y(t=>({...t??p,model:e.target.value})),w(null)},children:F.map(e=>(0,M.jsx)(`option`,{value:e.id,children:e.name},e.id))}):(0,M.jsx)(`input`,{className:H(),value:k.model,onChange:e=>{h.current=!0,y(t=>({...t??p,model:e.target.value})),w(null)}})]})]}),(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[T?(0,M.jsx)(`span`,{className:`text-xs text-emerald-600 dark:text-emerald-400`,children:c.saved}):null,C?(0,M.jsx)(`span`,{className:`text-xs text-red-600 dark:text-red-400`,children:C}):null,(0,M.jsx)(g,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,disabled:!N||b,onClick:()=>{h.current=!1,y(null),w(null)},children:c.discard}),(0,M.jsx)(g,{type:`button`,variant:`primary`,className:`h-8 text-xs`,disabled:!N||b,onClick:()=>void P(),children:b?c.saving:c.save})]})]})}function G(e){let t=(0,A.c)(13),{extensionId:n}=e,r=i(q),a=c(K),u;t[0]===n?u=t[1]:(u=()=>l(o(`/api/extensions/${encodeURIComponent(n)}`)),t[0]=n,t[1]=u);let{data:d,isLoading:f}=s(a&&n?`ext-stt-detail-${n}`:null,u),p;t[2]===d?p=t[3]:(p=B(d),t[2]=d,t[3]=p);let m=p,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h={revalidateOnFocus:!1},t[4]=h):h=t[4];let{data:g,mutate:v,isLoading:y}=s(a?`voice-settings-ext-stt`:null,w,h);if(!a)return null;if(f||y){let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,M.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,M.jsx)(_,{className:`size-4 animate-spin`}),`…`]}),t[5]=e):e=t[5],e}if(!m){let e=r===`zh`?`该扩展未声明 mediaUnderstandingProviders。`:`This extension does not declare mediaUnderstandingProviders.`,n;return t[6]===e?n=t[7]:(n=(0,M.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e}),t[6]=e,t[7]=n),n}if(!g)return null;let b=`${n}:${m}`,x;return t[8]!==v||t[9]!==m||t[10]!==b||t[11]!==g?(x=(0,M.jsx)(W,{providerId:m,voiceSettings:g,mutateVoice:v},b),t[8]=v,t[9]=m,t[10]=b,t[11]=g,t[12]=x):x=t[12],x}function K(e){return!!e.token}function q(e){return e.language}function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Y(e){let t={};if(e.type!==`object`||!J(e.properties))return t;for(let[n,r]of Object.entries(e.properties))J(r)&&Object.prototype.hasOwnProperty.call(r,`default`)&&(t[n]=r.default);return t}function X(e,t){switch(t.type){case`sync`:return{...e,localValues:t.value,isDirty:!1,saveError:null};case`change`:return{...e,localValues:t.value,isDirty:!0,saveError:null,saveSuccess:!1};case`discard`:return{...e,localValues:t.value,isDirty:!1,saveError:null};case`reset-defaults`:return{...e,localValues:t.value,isDirty:!0,saveError:null,saveSuccess:!1};case`save-start`:return{...e,saving:!0,saveError:null};case`save-success`:return{...e,localValues:t.value,isDirty:!1,saving:!1,saveSuccess:!0,saveError:null};case`save-error`:return{...e,saving:!1,saveError:t.message}}}function Z({extensionId:e}){let t=a(i(e=>e.language)).agentSettings,n=c(e=>!!e.token),{data:r,error:d}=s(n&&e?`ext-detail-${e}`:null,()=>l(o(`/api/extensions/${encodeURIComponent(e)}`))),{data:f,mutate:p,error:m}=s(n&&e?`ext-cfg-${e}`:null,()=>l(o(`/api/extensions/${encodeURIComponent(e)}/config`))),h=r?.manifest?.configSchema,_=(0,j.useMemo)(()=>h&&h.type===`object`?Y(h):{},[h]),v=(0,j.useMemo)(()=>({..._,...f??{}}),[_,f]),[y,b]=(0,j.useReducer)(X,{localValues:{},isDirty:!1,saving:!1,saveError:null,saveSuccess:!1}),[x,S]=(0,j.useState)(!1),C=(0,j.useRef)(!1),w=(0,j.useRef)(v);!C.current&&w.current!==v&&(w.current=v,b({type:`sync`,value:v}));let T=(0,j.useCallback)(e=>{C.current=!0,b({type:`change`,value:e})},[]),E=(0,j.useCallback)(()=>{C.current=!1,b({type:`discard`,value:v})},[v]),D=(0,j.useCallback)(()=>{!h||h.type!==`object`||(C.current=!0,b({type:`reset-defaults`,value:{...Y(h)}}))},[h]),O=(0,j.useCallback)(async()=>{if(e){b({type:`save-start`});try{let t=await u(o(`/api/extensions/${encodeURIComponent(e)}/config`),{method:`PATCH`,body:JSON.stringify(y.localValues)});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error?.message??t.statusText)}await p(y.localValues,!1),C.current=!1,b({type:`save-success`,value:y.localValues}),S(!0),window.setTimeout(()=>S(!1),3e3)}catch(e){b({type:`save-error`,message:e instanceof Error?e.message:String(e)})}}},[y.localValues,e,p]);if(!n)return null;if(d||m){let e=d??m;return(0,M.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[`Could not load extension settings: `,e instanceof Error?e.message:String(e)]})}return!h||h.type!==`object`?null:(0,M.jsxs)(`div`,{className:`mb-6 flex flex-col gap-3 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,M.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:`Configuration`}),(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[x?(0,M.jsx)(`span`,{className:`text-xs text-emerald-600 dark:text-emerald-400`,children:t.saved}):null,y.saveError?(0,M.jsx)(`span`,{className:`text-xs text-red-600 dark:text-red-400`,children:y.saveError}):null,(0,M.jsx)(g,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,disabled:!y.isDirty,onClick:E,children:t.discard}),(0,M.jsx)(g,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,onClick:D,children:`Reset to defaults`}),(0,M.jsx)(g,{type:`button`,variant:`primary`,className:`h-8 text-xs`,disabled:!y.isDirty||y.saving,onClick:()=>void O(),children:y.saving?t.saving:t.save})]})]}),(0,M.jsx)(k,{schema:h,values:y.localValues,onChange:T,disabled:y.saving})]})}function Q(){let e=(0,A.c)(47),t=i(ee),n;e[0]===t?n=e[1]:(n=a(t),e[0]=t,e[1]=n);let r=n,o=r.extensionImageGen,s=r.extensionSttMedia,{extensionId:c,panelId:l}=y(),u=p();if(!c){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)($,{message:`No extension ID provided.`}),e[2]=t):t=e[2],t}let m,h,g;if(e[3]!==c||e[4]!==u||e[5]!==l){g=Symbol.for(`react.early_return_sentinel`);bb0:{let t;if(e[9]===c?t=e[10]:(t=e=>e.id===c,e[9]=c,e[10]=t),m=u.find(t),!m){let t=`Extension "${c}" not found or is not available in this workspace.`,n;e[11]===t?n=e[12]:(n=(0,M.jsx)($,{message:t}),e[11]=t,e[12]=n),g=n;break bb0}let n=m.ui?.contributions?.settingsPanels;h=l?n?.find(e=>e.id===l||e.id===`${c}.${l}`):n?.[0]}e[3]=c,e[4]=u,e[5]=l,e[6]=m,e[7]=h,e[8]=g}else m=e[6],h=e[7],g=e[8];if(g!==Symbol.for(`react.early_return_sentinel`))return g;let _=h,v=!!(_&&m.ui),b=!!m.hasConfigSchema,x=m.kind===`image-generation`,S=m.kind===`media-provider`;if(!b&&!v&&!(x||S)){let t=`Extension "${c}" has no settings panels or config schema.`,n;return e[13]===t?n=e[14]:(n=(0,M.jsx)($,{message:t}),e[13]=t,e[14]=n),n}let C=_?.title??`${m.name} Settings`,w;e[15]===C?w=e[16]:(w=(0,M.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:C}),e[15]=C,e[16]=w);let T;e[17]!==x||e[18]!==r.imageModelsSettings||e[19]!==o?(T=x?(0,M.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-edge-subtle bg-surface-base px-4 py-3 text-sm`,children:[(0,M.jsx)(`p`,{className:`leading-relaxed text-fg-muted`,children:o.banner}),(0,M.jsx)(f,{to:`/settings/credentials?tab=image-models`,className:`w-fit font-medium text-accent hover:underline`,title:r.imageModelsSettings.imageModelsLinkTitle,children:o.openImageModels})]}):null,e[17]=x,e[18]=r.imageModelsSettings,e[19]=o,e[20]=T):T=e[20];let E;e[21]!==c||e[22]!==x?(E=x?(0,M.jsx)(F,{extensionId:c}):null,e[21]=c,e[22]=x,e[23]=E):E=e[23];let D;e[24]!==S||e[25]!==s?(D=S?(0,M.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-edge-subtle bg-surface-base px-4 py-3 text-sm`,children:[(0,M.jsx)(`p`,{className:`leading-relaxed text-fg-muted`,children:s.banner}),(0,M.jsx)(f,{to:`/settings/credentials?tab=voice`,className:`w-fit font-medium text-accent hover:underline`,children:s.openVoice})]}):null,e[24]=S,e[25]=s,e[26]=D):D=e[26];let O;e[27]!==c||e[28]!==S?(O=S?(0,M.jsx)(G,{extensionId:c}):null,e[27]=c,e[28]=S,e[29]=O):O=e[29];let k;e[30]!==c||e[31]!==b?(k=b?(0,M.jsx)(Z,{extensionId:c}):null,e[30]=c,e[31]=b,e[32]=k):k=e[32];let j;e[33]!==m.name||e[34]!==m.ui||e[35]!==c||e[36]!==v||e[37]!==_?(j=v&&_&&m.ui?(0,M.jsx)(`div`,{className:`overflow-hidden rounded-xl border border-edge bg-surface-base`,children:(0,M.jsx)(d,{extensionId:c,extensionName:m.name,entrypoint:_.entrypoint,permissions:m.ui?.permissions,title:_.title,className:`w-full`,minHeight:120,maxHeight:2e3})}):null,e[33]=m.name,e[34]=m.ui,e[35]=c,e[36]=v,e[37]=_,e[38]=j):j=e[38];let N;return e[39]!==w||e[40]!==T||e[41]!==E||e[42]!==D||e[43]!==O||e[44]!==k||e[45]!==j?(N=(0,M.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-3 px-4 py-8`,children:[w,T,E,D,O,k,j]}),e[39]=w,e[40]=T,e[41]=E,e[42]=D,e[43]=O,e[44]=k,e[45]=j,e[46]=N):N=e[46],N}function ee(e){return e.language}function $(e){let t=(0,A.c)(2),{message:n}=e,r;return t[0]===n?r=t[1]:(r=(0,M.jsx)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-3 px-4 py-8`,children:(0,M.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n})}),t[0]=n,t[1]=r),r}export{Q as ExtensionSettingsPage};
@@ -1 +1 @@
1
- import{a as e,c as t,d as n,i as r,o as i,u as a}from"./url-DPEStU4M.js";var o=e((e,r)=>({baseUrl:typeof window<`u`?window.location.origin:``,token:void 0,tokenDialogOpen:!1,tokenExpired:!1,setGatewayToken:t=>{n(t),e({token:t,tokenDialogOpen:!1,tokenExpired:!1}),window.dispatchEvent(new CustomEvent(`token-saved`,{detail:{token:t}}))},clearGatewayToken:()=>{t(),e({token:void 0})},openTokenDialog:()=>e({tokenDialogOpen:!0}),closeTokenDialog:()=>e({tokenDialogOpen:!1}),onUnauthorized:()=>{r().clearGatewayToken(),e({tokenDialogOpen:!1,tokenExpired:!0}),window.dispatchEvent(new CustomEvent(`token-expired`))}}));function s(){let e=new URLSearchParams(window.location.search).get(`token`);if(e){o.getState().setGatewayToken(e);let t=window.location.pathname+window.location.hash,n=window.history.state,r=n&&typeof n==`object`&&!Array.isArray(n)?{...n}:n;window.history.replaceState(r,``,t);return}let t=a();o.setState({token:t||void 0,tokenDialogOpen:!1})}function c(){return r.getState().language}function l(e,t,n){let r=e.trim().toLowerCase();return!!(!r||r===`http ${t}`||n&&r===n.trim().toLowerCase()||t===500&&r===`internal server error`)}function u(e,t,n){let r=n?.trim()??``;if(r&&!l(r,e,t))return r;let a=i(c()).api;return e>=500?e===502?a.errorBadGateway:e===503?a.errorServiceUnavailable:e===504?a.errorGatewayTimeout:e===500?a.errorInternal:a.errorServer.replace(`{{status}}`,String(e)):e===404?a.errorNotFound:e===403?a.errorForbidden:a.errorRequest.replace(`{{status}}`,String(e))}var d=null,f=null;function p(){d||=new Promise(e=>{f=e})}function m(){d&&(f?.(),d=null,f=null)}typeof window<`u`&&window.addEventListener(`token-saved`,m);async function h(e,t){d&&await d;let n=o.getState().token,r=new Headers(t?.headers),i=t?.body,a=typeof FormData<`u`&&i instanceof FormData;!r.has(`Content-Type`)&&!a&&r.set(`Content-Type`,`application/json`),n&&r.set(`Authorization`,`Bearer ${n}`);let s=await fetch(e,{...t,headers:r});return s.status===401&&(p(),o.getState().onUnauthorized()),s}async function g(e,t){let n=await h(e,t);if(!n.ok){let e=await n.json().catch(()=>({})),t=typeof e.error==`string`?e.error:e.error?.message,r=u(n.status,n.statusText,t);throw Error(r)}return n.json()}export{o as a,s as i,g as n,u as r,h as t};
1
+ import{a as e,c as t,d as n,i as r,o as i,u as a}from"./url-DQRqHuL-.js";var o=e((e,r)=>({baseUrl:typeof window<`u`?window.location.origin:``,token:void 0,tokenDialogOpen:!1,tokenExpired:!1,setGatewayToken:t=>{n(t),e({token:t,tokenDialogOpen:!1,tokenExpired:!1}),window.dispatchEvent(new CustomEvent(`token-saved`,{detail:{token:t}}))},clearGatewayToken:()=>{t(),e({token:void 0})},openTokenDialog:()=>e({tokenDialogOpen:!0}),closeTokenDialog:()=>e({tokenDialogOpen:!1}),onUnauthorized:()=>{r().clearGatewayToken(),e({tokenDialogOpen:!1,tokenExpired:!0}),window.dispatchEvent(new CustomEvent(`token-expired`))}}));function s(){let e=new URLSearchParams(window.location.search).get(`token`);if(e){o.getState().setGatewayToken(e);let t=window.location.pathname+window.location.hash,n=window.history.state,r=n&&typeof n==`object`&&!Array.isArray(n)?{...n}:n;window.history.replaceState(r,``,t);return}let t=a();o.setState({token:t||void 0,tokenDialogOpen:!1})}function c(){return r.getState().language}function l(e,t,n){let r=e.trim().toLowerCase();return!!(!r||r===`http ${t}`||n&&r===n.trim().toLowerCase()||t===500&&r===`internal server error`)}function u(e,t,n){let r=n?.trim()??``;if(r&&!l(r,e,t))return r;let a=i(c()).api;return e>=500?e===502?a.errorBadGateway:e===503?a.errorServiceUnavailable:e===504?a.errorGatewayTimeout:e===500?a.errorInternal:a.errorServer.replace(`{{status}}`,String(e)):e===404?a.errorNotFound:e===403?a.errorForbidden:a.errorRequest.replace(`{{status}}`,String(e))}var d=null,f=null;function p(){d||=new Promise(e=>{f=e})}function m(){d&&(f?.(),d=null,f=null)}typeof window<`u`&&window.addEventListener(`token-saved`,m);async function h(e,t){d&&await d;let n=o.getState().token,r=new Headers(t?.headers),i=t?.body,a=typeof FormData<`u`&&i instanceof FormData;!r.has(`Content-Type`)&&!a&&r.set(`Content-Type`,`application/json`),n&&r.set(`Authorization`,`Bearer ${n}`);let s=await fetch(e,{...t,headers:r});return s.status===401&&(p(),o.getState().onUnauthorized()),s}async function g(e,t){let n=await h(e,t);if(!n.ok){let e=await n.json().catch(()=>({})),t=typeof e.error==`string`?e.error:e.error?.message,r=u(n.status,n.statusText,t);throw Error(r)}return n.json()}export{o as a,s as i,g as n,u as r,h as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n}from"./vendor-react-BOUWij0V.js";import{t as r}from"./url-DPEStU4M.js";import{i,o as a}from"./vendor-swr-BIWyz7Rc.js";import{n as o,t as s}from"./fetch-CkvRO30i.js";var c=n(),l=e(t(),1);function u(){return r(`/api/config`)}var d=null;async function f(){return d||(d=o(u()).finally(()=>{d=null}),d)}function p(e){let t=(0,c.c)(6),n;t[0]===e?n=t[1]:(n=e?u():null,t[0]=e,t[1]=n);let r=n,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o={revalidateOnFocus:!1},t[2]=o):o=t[2];let s=i(r,f,o),d,p;return t[3]===e?(d=t[4],p=t[5]):(d=()=>{if(!e)return;let t=u(),n=()=>{a(t)};return window.addEventListener(`config-reload`,n),()=>window.removeEventListener(`config-reload`,n)},p=[e],t[3]=e,t[4]=d,t[5]=p),(0,l.useEffect)(d,p),s}function m(){return a(u())}var h=6e4,g=500,_=5e3;function v(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`STARTUP_UNAVAILABLE`&&t.retryable===!0&&typeof t.retryAfterMs==`number`}function y(e){return new Promise(t=>setTimeout(t,e))}function b(e){let t=typeof e.retryAfterMs==`number`?e.retryAfterMs:g;return Math.min(Math.max(t,100),_)}async function x(e,t,n){let r=Date.now(),i=n?.timeoutMs??h;for(;;){let n=await s(e,t);if(n.status!==503)return n;let a=await n.clone().json().catch(()=>null);if(!v(a)||Date.now()-r>=i)return n;await y(b(a))}}export{p as i,f as n,m as r,x as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n}from"./vendor-react-BOUWij0V.js";import{t as r}from"./url-DQRqHuL-.js";import{i,o as a}from"./vendor-swr-BIWyz7Rc.js";import{n as o,t as s}from"./fetch-CFdKBnE6.js";var c=n(),l=e(t(),1);function u(){return r(`/api/config`)}var d=null;async function f(){return d||(d=o(u()).finally(()=>{d=null}),d)}function p(e){let t=(0,c.c)(6),n;t[0]===e?n=t[1]:(n=e?u():null,t[0]=e,t[1]=n);let r=n,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o={revalidateOnFocus:!1},t[2]=o):o=t[2];let s=i(r,f,o),d,p;return t[3]===e?(d=t[4],p=t[5]):(d=()=>{if(!e)return;let t=u(),n=()=>{a(t)};return window.addEventListener(`config-reload`,n),()=>window.removeEventListener(`config-reload`,n)},p=[e],t[3]=e,t[4]=d,t[5]=p),(0,l.useEffect)(d,p),s}function m(){return a(u())}var h=6e4,g=500,_=5e3;function v(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`STARTUP_UNAVAILABLE`&&t.retryable===!0&&typeof t.retryAfterMs==`number`}function y(e){return new Promise(t=>setTimeout(t,e))}function b(e){let t=typeof e.retryAfterMs==`number`?e.retryAfterMs:g;return Math.min(Math.max(t,100),_)}async function x(e,t,n){let r=Date.now(),i=n?.timeoutMs??h;for(;;){let n=await s(e,t);if(n.status!==503)return n;let a=await n.clone().json().catch(()=>null);if(!v(a)||Date.now()-r>=i)return n;await y(b(a))}}export{p as i,f as n,m as r,x as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{t as r}from"./url-DPEStU4M.js";import{o as i}from"./vendor-swr-BIWyz7Rc.js";import{n as a}from"./fetch-CkvRO30i.js";import{r as o}from"./gateway-startup-retry-BkKyRDrF.js";import{ii as s,si as c,ui as l}from"./index-CEZxETzw.js";import{O as u,k as d}from"./settings-advanced-gate-BBAQxxew.js";var f=e(t(),1),p=n(),m=Array.from({length:60},(e,t)=>t),h=l(c,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),g=l(`h-9 min-w-[6.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,s,`dark:bg-surface-panel`),_=l(`h-9 min-w-[9.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,s),v=l(`h-9 w-14 shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-center text-sm tabular-nums text-fg`,s),y=l(`min-h-[2.5rem] w-full rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 font-mono text-xs text-fg`,s);function b(e){return{...e,intervalMinutesDraft:null,intervalHoursDraft:null}}function x(e){let{intervalMinutesDraft:t,intervalHoursDraft:n,...r}=e;return r}function S(e,t){switch(t.type){case`reset`:return b(t.state);case`replace`:return t.state}}function C({value:e,onChange:t,labels:n,disabled:r,showHeading:i=!0}){let a=(0,f.useMemo)(()=>d(e),[e]),[o,s]=(0,f.useReducer)(S,a,b),c=(0,f.useRef)(e);c.current!==e&&(c.current=e,s({type:`reset`,state:a}));let C=(0,f.useCallback)(e=>{let n={...o,...e};s({type:`replace`,state:n});let r=x(n),i=x(o);Object.keys(r).some(e=>r[e]!==i[e])&&t(u(r))},[t,o]),{mode:w,intervalKind:T,onceDate:E,intervalMinutes:D,intervalHours:O,minute:k,hour:A,weekDays:j,dayOfMonth:M,rawCron:N,intervalMinutesDraft:P,intervalHoursDraft:F}=o,I=`${String(A).padStart(2,`0`)}:${String(k).padStart(2,`0`)}`,L=e=>{let t=e.target.value;if(!t)return;let[n,r]=t.split(`:`).map(e=>parseInt(e,10));Number.isNaN(n)||Number.isNaN(r)||C({minute:r,hour:n})},R=(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,p.jsxs)(`select`,{className:h,disabled:r,value:w,onChange:e=>{let t=e.target.value;C({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,p.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,p.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,p.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,p.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,p.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,p.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,p.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),w===`no_repeat`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`input`,{type:`date`,disabled:r,className:_,value:E,onChange:e=>{C({onceDate:e.target.value})},"aria-label":n.modeNoRepeat}),(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel})]}),w===`interval`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`select`,{className:l(h,`w-auto min-w-[5rem]`),disabled:r,value:T,onChange:e=>{let t=e.target.value;C({intervalKind:t,intervalMinutesDraft:null,intervalHoursDraft:null})},"aria-label":n.modeInterval,children:[(0,p.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,p.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),T===`minutes`?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`input`,{type:`number`,min:1,max:59,disabled:r,className:v,value:P??String(D),onChange:e=>{let t=e.target.value,n=parseInt(t,10),r={intervalMinutesDraft:t};Number.isFinite(n)&&n>=1&&n<=59&&(r.intervalMinutes=n),C(r)},onBlur:()=>{if(P===null)return;let e=parseInt(P,10);C({intervalMinutes:!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e))),intervalMinutesDraft:null})},"aria-label":n.intervalMinutes}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`input`,{type:`number`,min:1,max:23,disabled:r,className:v,value:F??String(O),onChange:e=>{let t=e.target.value,n=parseInt(t,10),r={intervalHoursDraft:t};Number.isFinite(n)&&n>=1&&n<=23&&(r.intervalHours=n),C(r)},onBlur:()=>{if(F===null)return;let e=parseInt(F,10);C({intervalHours:!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e))),intervalHoursDraft:null})},"aria-label":n.intervalHours}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,p.jsx)(`select`,{className:l(h,`w-auto min-w-[4rem]`),disabled:r,value:k,onChange:e=>{C({minute:parseInt(e.target.value,10)})},"aria-label":n.minuteAtHour,children:m.map(e=>(0,p.jsx)(`option`,{value:e,children:String(e).padStart(2,`0`)},e))}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),w===`daily`&&(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel}),w===`weekly`&&(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel}),w===`monthly`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`select`,{className:l(h,`w-auto min-w-[4.5rem]`),disabled:r,value:M,onChange:e=>{C({dayOfMonth:parseInt(e.target.value,10)})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,p.jsx)(`option`,{value:e,children:e},e))}),(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel})]}),w===`hourly`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`select`,{className:l(h,`w-auto min-w-[4rem]`),disabled:r,value:k,onChange:e=>{C({minute:parseInt(e.target.value,10)})},"aria-label":n.minuteAtHour,children:m.map(e=>(0,p.jsx)(`option`,{value:e,children:String(e).padStart(2,`0`)},e))}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),z=w===`weekly`?(0,p.jsx)(`div`,{className:`flex flex-wrap gap-1.5 pt-1`,role:`group`,"aria-label":n.modeWeekly,children:n.weekdays.map((e,t)=>{let n=j[t];return(0,p.jsx)(`button`,{type:`button`,disabled:r,className:l(`flex size-9 select-none items-center justify-center rounded-full border text-xs font-medium transition-colors`,n?`border-fg bg-fg text-surface-panel`:`border-edge-subtle bg-surface-panel text-fg hover:border-edge`),"aria-pressed":n,onClick:()=>{let e=[...j];e[t]=!e[t],C({weekDays:e})},children:e},e)})}):null,B=w===`custom`?(0,p.jsxs)(`div`,{className:`pt-1`,children:[(0,p.jsx)(`textarea`,{disabled:r,className:y,rows:2,spellCheck:!1,value:N,placeholder:`*/5 * * * *`,onChange:e=>{C({rawCron:e.target.value})},"aria-label":n.modeCustom}),(0,p.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[i?(0,p.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}):null,R,z,B]})}function w(){return r(`/api/workspace/heartbeat-md`)}async function T(){let e=await a(w());return typeof e.payload?.content==`string`?e.payload.content:``}function E(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function D(e){let t=E(e)?e:{},n=E(t.gateway)?t.gateway:{},r=E(n.heartbeat)?n.heartbeat:{},i=r.activeHours,a=E(i)?i:null,o=a&&typeof a.start==`string`&&typeof a.end==`string`&&a.start&&a.end?{start:a.start,end:a.end,timezone:typeof a.timezone==`string`?a.timezone:``}:null;return{enabled:!!(r.enabled??!0),intervalMs:typeof r.intervalMs==`number`&&Number.isFinite(r.intervalMs)?r.intervalMs:18e5,includeSystemPromptSection:r.includeSystemPromptSection===!0,target:typeof r.target==`string`?r.target:``,targetChatId:typeof r.targetChatId==`string`?r.targetChatId:``,prompt:typeof r.prompt==`string`?r.prompt:``,ackMaxChars:typeof r.ackMaxChars==`number`&&Number.isFinite(r.ackMaxChars)?r.ackMaxChars:``,isolatedSession:!!r.isolatedSession,activeHours:o}}function O(e){let t={enabled:e.enabled,intervalMs:e.intervalMs,includeSystemPromptSection:e.includeSystemPromptSection};return e.target.trim()?t.target=e.target.trim():t.target=null,e.targetChatId.trim()?t.targetChatId=e.targetChatId.trim():t.targetChatId=null,e.prompt.trim()?t.prompt=e.prompt.trim():t.prompt=null,e.ackMaxChars===``||e.ackMaxChars===void 0?t.ackMaxChars=null:t.ackMaxChars=e.ackMaxChars,e.isolatedSession?t.isolatedSession=!0:t.isolatedSession=null,e.activeHours?.start?.trim()&&e.activeHours?.end?.trim()?t.activeHours={start:e.activeHours.start.trim(),end:e.activeHours.end.trim(),...e.activeHours.timezone.trim()?{timezone:e.activeHours.timezone.trim()}:{}}:t.activeHours=null,t}async function k(e){await a(r(`/api/config`),{method:`PATCH`,body:JSON.stringify({gateway:{heartbeat:O(e)}})}),o()}async function A(e){await a(r(`/api/workspace/heartbeat-md`),{method:`PUT`,body:JSON.stringify({content:e})}),i(w())}async function j(e){await a(r(`/api/heartbeat/trigger`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e?{reason:e}:{})})}export{T as a,j as i,k as n,w as o,A as r,C as s,D as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{t as r}from"./url-DQRqHuL-.js";import{o as i}from"./vendor-swr-BIWyz7Rc.js";import{n as a}from"./fetch-CFdKBnE6.js";import{r as o}from"./gateway-startup-retry-DdngdObI.js";import{pi as s,si as c,ui as l}from"./index-slwUkhxH.js";import{O as u,k as d}from"./settings-advanced-gate-CyEJYTbw.js";var f=e(t(),1),p=n(),m=Array.from({length:60},(e,t)=>t),h=s(l,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),g=s(`h-9 min-w-[6.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,c,`dark:bg-surface-panel`),_=s(`h-9 min-w-[9.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,c),v=s(`h-9 w-14 shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-center text-sm tabular-nums text-fg`,c),y=s(`min-h-[2.5rem] w-full rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 font-mono text-xs text-fg`,c);function b(e){return{...e,intervalMinutesDraft:null,intervalHoursDraft:null}}function x(e){let{intervalMinutesDraft:t,intervalHoursDraft:n,...r}=e;return r}function S(e,t){switch(t.type){case`reset`:return b(t.state);case`replace`:return t.state}}function C({value:e,onChange:t,labels:n,disabled:r,showHeading:i=!0}){let a=(0,f.useMemo)(()=>d(e),[e]),[o,c]=(0,f.useReducer)(S,a,b),l=(0,f.useRef)(e);l.current!==e&&(l.current=e,c({type:`reset`,state:a}));let C=(0,f.useCallback)(e=>{let n={...o,...e};c({type:`replace`,state:n});let r=x(n),i=x(o);Object.keys(r).some(e=>r[e]!==i[e])&&t(u(r))},[t,o]),{mode:w,intervalKind:T,onceDate:E,intervalMinutes:D,intervalHours:O,minute:k,hour:A,weekDays:j,dayOfMonth:M,rawCron:N,intervalMinutesDraft:P,intervalHoursDraft:F}=o,I=`${String(A).padStart(2,`0`)}:${String(k).padStart(2,`0`)}`,L=e=>{let t=e.target.value;if(!t)return;let[n,r]=t.split(`:`).map(e=>parseInt(e,10));Number.isNaN(n)||Number.isNaN(r)||C({minute:r,hour:n})},R=(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,p.jsxs)(`select`,{className:h,disabled:r,value:w,onChange:e=>{let t=e.target.value;C({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,p.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,p.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,p.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,p.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,p.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,p.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,p.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),w===`no_repeat`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`input`,{type:`date`,disabled:r,className:_,value:E,onChange:e=>{C({onceDate:e.target.value})},"aria-label":n.modeNoRepeat}),(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel})]}),w===`interval`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`select`,{className:s(h,`w-auto min-w-[5rem]`),disabled:r,value:T,onChange:e=>{let t=e.target.value;C({intervalKind:t,intervalMinutesDraft:null,intervalHoursDraft:null})},"aria-label":n.modeInterval,children:[(0,p.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,p.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),T===`minutes`?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`input`,{type:`number`,min:1,max:59,disabled:r,className:v,value:P??String(D),onChange:e=>{let t=e.target.value,n=parseInt(t,10),r={intervalMinutesDraft:t};Number.isFinite(n)&&n>=1&&n<=59&&(r.intervalMinutes=n),C(r)},onBlur:()=>{if(P===null)return;let e=parseInt(P,10);C({intervalMinutes:!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e))),intervalMinutesDraft:null})},"aria-label":n.intervalMinutes}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`input`,{type:`number`,min:1,max:23,disabled:r,className:v,value:F??String(O),onChange:e=>{let t=e.target.value,n=parseInt(t,10),r={intervalHoursDraft:t};Number.isFinite(n)&&n>=1&&n<=23&&(r.intervalHours=n),C(r)},onBlur:()=>{if(F===null)return;let e=parseInt(F,10);C({intervalHours:!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e))),intervalHoursDraft:null})},"aria-label":n.intervalHours}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,p.jsx)(`select`,{className:s(h,`w-auto min-w-[4rem]`),disabled:r,value:k,onChange:e=>{C({minute:parseInt(e.target.value,10)})},"aria-label":n.minuteAtHour,children:m.map(e=>(0,p.jsx)(`option`,{value:e,children:String(e).padStart(2,`0`)},e))}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),w===`daily`&&(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel}),w===`weekly`&&(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel}),w===`monthly`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`select`,{className:s(h,`w-auto min-w-[4.5rem]`),disabled:r,value:M,onChange:e=>{C({dayOfMonth:parseInt(e.target.value,10)})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,p.jsx)(`option`,{value:e,children:e},e))}),(0,p.jsx)(`input`,{type:`time`,step:60,disabled:r,className:g,value:I,onChange:L,"aria-label":n.scheduleTimeLabel})]}),w===`hourly`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`select`,{className:s(h,`w-auto min-w-[4rem]`),disabled:r,value:k,onChange:e=>{C({minute:parseInt(e.target.value,10)})},"aria-label":n.minuteAtHour,children:m.map(e=>(0,p.jsx)(`option`,{value:e,children:String(e).padStart(2,`0`)},e))}),(0,p.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),z=w===`weekly`?(0,p.jsx)(`div`,{className:`flex flex-wrap gap-1.5 pt-1`,role:`group`,"aria-label":n.modeWeekly,children:n.weekdays.map((e,t)=>{let n=j[t];return(0,p.jsx)(`button`,{type:`button`,disabled:r,className:s(`flex size-9 select-none items-center justify-center rounded-full border text-xs font-medium transition-colors`,n?`border-fg bg-fg text-surface-panel`:`border-edge-subtle bg-surface-panel text-fg hover:border-edge`),"aria-pressed":n,onClick:()=>{let e=[...j];e[t]=!e[t],C({weekDays:e})},children:e},e)})}):null,B=w===`custom`?(0,p.jsxs)(`div`,{className:`pt-1`,children:[(0,p.jsx)(`textarea`,{disabled:r,className:y,rows:2,spellCheck:!1,value:N,placeholder:`*/5 * * * *`,onChange:e=>{C({rawCron:e.target.value})},"aria-label":n.modeCustom}),(0,p.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[i?(0,p.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}):null,R,z,B]})}function w(){return r(`/api/workspace/heartbeat-md`)}async function T(){let e=await a(w());return typeof e.payload?.content==`string`?e.payload.content:``}function E(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function D(e){let t=E(e)?e:{},n=E(t.gateway)?t.gateway:{},r=E(n.heartbeat)?n.heartbeat:{},i=r.activeHours,a=E(i)?i:null,o=a&&typeof a.start==`string`&&typeof a.end==`string`&&a.start&&a.end?{start:a.start,end:a.end,timezone:typeof a.timezone==`string`?a.timezone:``}:null;return{enabled:!!(r.enabled??!0),intervalMs:typeof r.intervalMs==`number`&&Number.isFinite(r.intervalMs)?r.intervalMs:18e5,includeSystemPromptSection:r.includeSystemPromptSection===!0,target:typeof r.target==`string`?r.target:``,targetChatId:typeof r.targetChatId==`string`?r.targetChatId:``,prompt:typeof r.prompt==`string`?r.prompt:``,ackMaxChars:typeof r.ackMaxChars==`number`&&Number.isFinite(r.ackMaxChars)?r.ackMaxChars:``,isolatedSession:!!r.isolatedSession,activeHours:o}}function O(e){let t={enabled:e.enabled,intervalMs:e.intervalMs,includeSystemPromptSection:e.includeSystemPromptSection};return e.target.trim()?t.target=e.target.trim():t.target=null,e.targetChatId.trim()?t.targetChatId=e.targetChatId.trim():t.targetChatId=null,e.prompt.trim()?t.prompt=e.prompt.trim():t.prompt=null,e.ackMaxChars===``||e.ackMaxChars===void 0?t.ackMaxChars=null:t.ackMaxChars=e.ackMaxChars,e.isolatedSession?t.isolatedSession=!0:t.isolatedSession=null,e.activeHours?.start?.trim()&&e.activeHours?.end?.trim()?t.activeHours={start:e.activeHours.start.trim(),end:e.activeHours.end.trim(),...e.activeHours.timezone.trim()?{timezone:e.activeHours.timezone.trim()}:{}}:t.activeHours=null,t}async function k(e){await a(r(`/api/config`),{method:`PATCH`,body:JSON.stringify({gateway:{heartbeat:O(e)}})}),o()}async function A(e){await a(r(`/api/workspace/heartbeat-md`),{method:`PUT`,body:JSON.stringify({content:e})}),i(w())}async function j(e){await a(r(`/api/heartbeat/trigger`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e?{reason:e}:{})})}export{T as a,j as i,k as n,w as o,A as r,C as s,D as t};