@nextclaw/ui 0.20.1 → 0.20.2
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/CHANGELOG.md +18 -0
- package/dist/assets/{api-BBFMpRGl.js → api-DvpQWjTS.js} +3 -3
- package/dist/assets/{appearance-settings-page-C1Erayzl.js → appearance-settings-page-U0m0ktu3.js} +1 -1
- package/dist/assets/{book-open-BhTIpBKg.js → book-open-DRofSTWr.js} +1 -1
- package/dist/assets/channels-list-page-BURQarD0.js +8 -0
- package/dist/assets/{config-split-page-By7p-4X-.js → config-split-page-BrAQYTIl.js} +1 -1
- package/dist/assets/{confirm-dialog-xpl1Yl7r.js → confirm-dialog-DDJomLnO.js} +1 -1
- package/dist/assets/{createLucideIcon-B_8khHn8.js → createLucideIcon-DzkNHr5Z.js} +1 -1
- package/dist/assets/{desktop-update-config-CGFfa7-Z.js → desktop-update-config-BzZFhMv9.js} +1 -1
- package/dist/assets/{dist-CXN62DSs.js → dist-DXbLo2b1.js} +1 -1
- package/dist/assets/{dist-DdE-kCbi.js → dist-NskPB_yW.js} +1 -1
- package/dist/assets/doc-browser-DB22tQKU.js +1 -0
- package/dist/assets/{doc-browser-context-B8NCuMv5.js → doc-browser-context-CnKV4gJy.js} +1 -1
- package/dist/assets/doc-browser-sJjw9fl5.js +1 -0
- package/dist/assets/{extensions-CMctxyTf.js → extensions-DvlFMpAs.js} +1 -1
- package/dist/assets/{form-actions-BFgTdxqI.js → form-actions-UnPEZBkx.js} +1 -1
- package/dist/assets/index-Dc_ZMkmo.css +1 -0
- package/dist/assets/index-N1HnesBp.js +109 -0
- package/dist/assets/loader-circle-BlPXxgDB.js +1 -0
- package/dist/assets/mcp-marketplace-page-BIgFTbMq.js +9 -0
- package/dist/assets/mcp-marketplace-page-CZN4ovdK.js +1 -0
- package/dist/assets/model-config-page-CnSm7kfa.js +1 -0
- package/dist/assets/{navigation-link-BwWrm4k1.js → navigation-link-NjUdG6Vp.js} +1 -1
- package/dist/assets/plus-DVXol9Q5.js +1 -0
- package/dist/assets/privacy-settings-page-DVn2HU7W.js +1 -0
- package/dist/assets/providers-config-page-CzHJS3eg.js +1 -0
- package/dist/assets/react-DCVbGroo.js +8 -0
- package/dist/assets/{refresh-cw-B7NmPJ_Z.js → refresh-cw-CkeninE0.js} +1 -1
- package/dist/assets/remote-B2lsJF1c.js +1 -0
- package/dist/assets/{rotate-cw-B0ajMaHu.js → rotate-cw-DP33PuXU.js} +1 -1
- package/dist/assets/runtime-config-page-D69buyGp.js +1 -0
- package/dist/assets/{save-DWnYYpgQ.js → save-Cw2Xz-pB.js} +1 -1
- package/dist/assets/{search-D6pX7FC-.js → search-C2CFAVvd.js} +1 -1
- package/dist/assets/{search-config-page-Cx3o_675.js → search-config-page-dqNT0Swf.js} +1 -1
- package/dist/assets/{secrets-config-page-tyFl7Rvt.js → secrets-config-page-De6J3wVx.js} +2 -2
- package/dist/assets/security-config-Dcu9C4OL.js +1 -0
- package/dist/assets/{select-qEtFTWB5.js → select-DSuMhwVP.js} +1 -1
- package/dist/assets/skeleton-QoWydNLp.js +1 -0
- package/dist/assets/{tag-chip-vcjAYdV_.js → tag-chip-DFBLgsGf.js} +1 -1
- package/dist/assets/x-BXvAzpjb.js +1 -0
- package/dist/index.html +21 -21
- package/package.json +7 -7
- package/src/features/chat/components/layout/__tests__/chat-sidebar-read-state.test.tsx +4 -3
- package/src/features/chat/components/layout/__tests__/chat-sidebar-session-area.test.tsx +11 -4
- package/src/features/chat/components/layout/__tests__/chat-sidebar.test.tsx +17 -17
- package/src/features/chat/components/layout/chat-sidebar-desktop-layout.tsx +17 -5
- package/src/features/chat/components/layout/chat-sidebar.tsx +28 -21
- package/src/features/chat/features/conversation/hooks/__tests__/use-session-conversation-controller.test.tsx +41 -1
- package/src/features/chat/features/conversation/hooks/use-session-pending-input-actions.ts +22 -4
- package/src/features/chat/features/message/utils/__tests__/chat-message-trigger-details.utils.test.ts +35 -0
- package/src/features/chat/features/ncp/hooks/__tests__/use-ncp-agent-runtime-queue.test.tsx +50 -0
- package/src/features/chat/features/ncp/hooks/__tests__/use-ncp-session-list-view.test.tsx +24 -3
- package/src/features/chat/features/ncp/hooks/use-ncp-session-list-view.ts +35 -19
- package/src/features/chat/features/session/components/__tests__/chat-sidebar-project-groups.test.tsx +26 -2
- package/src/features/chat/features/session/components/__tests__/chat-sidebar-session-item.test.tsx +55 -27
- package/src/features/chat/features/session/components/chat-sidebar-context-card.tsx +60 -0
- package/src/features/chat/features/session/components/chat-sidebar-project-groups.tsx +95 -54
- package/src/features/chat/features/session/components/chat-sidebar-session-entry.tsx +9 -8
- package/src/features/chat/features/session/components/chat-sidebar-session-item.tsx +141 -95
- package/src/features/chat/features/session/components/chat-sidebar-session-list.tsx +11 -2
- package/src/features/chat/features/session/hooks/use-chat-sidebar-context-counts.ts +40 -0
- package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-file-preview.test.tsx +16 -9
- package/src/features/chat/features/workspace/components/__tests__/workspace-markdown-outline.test.tsx +128 -0
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-breadcrumbs.tsx +3 -0
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-preview.tsx +20 -2
- package/src/features/chat/features/workspace/components/workspace-markdown-outline.tsx +156 -0
- package/src/features/settings/pages/__tests__/privacy-settings-page.test.tsx +14 -5
- package/src/features/settings/pages/privacy-settings-page.tsx +38 -2
- package/src/shared/components/ui/actions/icon-action-button.tsx +1 -8
- package/src/shared/components/ui/tooltip.tsx +16 -1
- package/src/shared/hooks/use-config.ts +11 -0
- package/src/shared/lib/api/types.ts +8 -0
- package/src/shared/lib/api/utils/config.utils.ts +5 -0
- package/src/shared/lib/i18n/locales/en-US/chat.json +7 -0
- package/src/shared/lib/i18n/locales/en-US/core.json +17 -9
- package/src/shared/lib/i18n/locales/zh-CN/chat.json +7 -0
- package/src/shared/lib/i18n/locales/zh-CN/core.json +17 -9
- package/dist/assets/channels-list-page-OTCkjMOW.js +0 -8
- package/dist/assets/doc-browser-5xrHcQ2z.js +0 -1
- package/dist/assets/doc-browser-c2yO477-.js +0 -1
- package/dist/assets/index-DUCA8m2w.js +0 -109
- package/dist/assets/index-QrdUWHfm.css +0 -1
- package/dist/assets/loader-circle-CbdTrSp3.js +0 -1
- package/dist/assets/mcp-marketplace-page-DGve0muV.js +0 -9
- package/dist/assets/mcp-marketplace-page-_37VzG2q.js +0 -1
- package/dist/assets/model-config-page-DyC5H0bu.js +0 -1
- package/dist/assets/plus-DbeE4r-Q.js +0 -1
- package/dist/assets/privacy-settings-page--MOnhAZ6.js +0 -1
- package/dist/assets/providers-config-page-ChL3FUvK.js +0 -1
- package/dist/assets/react-DVMmnPWz.js +0 -8
- package/dist/assets/remote-DFoxj4ls.js +0 -1
- package/dist/assets/runtime-config-page-BQdT3nmd.js +0 -1
- package/dist/assets/security-config-CUTUm6JT.js +0 -1
- package/dist/assets/skeleton-7MYPzn8w.js +0 -1
- package/dist/assets/x-DThaS5ZL.js +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DseTPa7n.js";import{B as t,H as n,I as r,L as i,V as a,a as o,s,t as c,z as l}from"./react-DVMmnPWz.js";var u=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},d={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},f=new class{#e=d;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function p(e){setTimeout(e,0)}var m=typeof window>`u`||`Deno`in globalThis;function h(){}function g(e,t){return typeof e==`function`?e(t):e}function _(e){return typeof e==`number`&&e>=0&&e!==1/0}function v(e,t){return Math.max(e+(t||0)-Date.now(),0)}function y(e,t){return typeof e==`function`?e(t):e}function b(e,t){return typeof e==`function`?e(t):e}function ee(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==S(o,t.options))return!1}else if(!w(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function x(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(C(t.options.mutationKey)!==C(a))return!1}else if(!w(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function S(e,t){return(t?.queryKeyHashFn||C)(e)}function C(e){return JSON.stringify(e,(e,t)=>ne(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function w(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>w(e[n],t[n])):!1}var te=Object.prototype.hasOwnProperty;function T(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=D(e)&&D(t);if(!r&&!(ne(e)&&ne(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:te.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=T(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function E(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function D(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function ne(e){if(!re(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!re(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function re(e){return Object.prototype.toString.call(e)===`[object Object]`}function O(e){return new Promise(t=>{f.setTimeout(t,e)})}function k(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:T(e,t)}function ie(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function A(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var j=Symbol();function ae(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===j?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function oe(e,t){return typeof e==`function`?e(...t):!!e}function se(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ce=new class extends u{#e;#t;#n;constructor(){super(),this.#n=e=>{if(!m&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}};function le(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var ue=p;function de(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=ue,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var M=de(),fe=new class extends u{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(!m&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function pe(e){return Math.min(1e3*2**e,3e4)}function me(e){return(e??`online`)===`online`?fe.isOnline():!0}var N=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function he(e){let t=!1,n=0,r,i=le(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new N(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>ce.isFocused()&&(e.networkMode===`always`||fe.isOnline())&&e.canRun(),u=()=>me(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),h=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(m?0:3),o=e.retryDelay??pe,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),O(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):h()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?h():p().then(h),i)}}var ge=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),_(this.gcTime)&&(this.#e=f.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(m?1/0:300*1e3))}clearGcTimeout(){this.#e&&=(f.clearTimeout(this.#e),void 0)}},P=class extends ge{#e;#t;#n;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=ve(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=ve(this.options);e.data!==void 0&&(this.setState(_e(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#n.remove(this)}setData(e,t){let n=k(this.state.data,e,this.options);return this.#s({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#s({type:`setState`,state:e,setStateOptions:t})}cancel(e){let t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(h).catch(h):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>b(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===j||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>y(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!v(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#s({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#i?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{let e=ae(this.options,t),n=(()=>{let e={client:this.#r,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#o=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:i};return r(e),e})();this.options.behavior?.onFetch(a,this),this.#t=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#s({type:`fetch`,meta:a.fetchOptions?.meta}),this.#i=he({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof N&&e.revert&&this.setState({...this.#t,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#s({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#s({type:`pause`})},onContinue:()=>{this.#s({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#i.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#n.config.onSuccess?.(e,this),this.#n.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof N){if(e.silent)return this.#i.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#s({type:`error`,error:e}),this.#n.config.onError?.(e,this),this.#n.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#s(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...F(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,..._e(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}})(this.state),M.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#n.notify({query:this,type:`updated`,action:e})})}};function F(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:me(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function _e(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function ve(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var ye=class extends u{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=le(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),xe(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Se(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Se(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof b(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!E(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&I(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||b(this.options.enabled,this.#t)!==b(t.enabled,this.#t)||y(this.options.staleTime,this.#t)!==y(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||b(this.options.enabled,this.#t)!==b(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return L(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(h)),t}#g(){this.#b();let e=y(this.options.staleTime,this.#t);if(m||this.#r.isStale||!_(e))return;let t=v(this.#r.dataUpdatedAt,e)+1;this.#d=f.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(m||b(this.options.enabled,this.#t)===!1||!_(this.#p)||this.#p===0)&&(this.#f=f.setInterval(()=>{(this.options.refetchIntervalInBackground||ce.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d&&=(f.clearTimeout(this.#d),void 0)}#x(){this.#f&&=(f.clearInterval(this.#f),void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&xe(e,t),o=i&&I(e,n,t,r);(a||o)&&(l={...l,...F(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=k(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=k(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,ee=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:l.dataUpdateCount>0||l.errorUpdateCount>0,isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!ee,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&ee,isStale:Ce(e,t),refetch:this.refetch,promise:this.#o,isEnabled:b(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{i(this.#o=x.promise=le())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a();break}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!E(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){M.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function be(e,t){return b(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function xe(e,t){return be(e,t)||e.state.data!==void 0&&Se(e,t,t.refetchOnMount)}function Se(e,t,n){if(b(t.enabled,e)!==!1&&y(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&Ce(e,t)}return!1}function I(e,t,n,r){return(e!==t||b(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Ce(e,n)}function Ce(e,t){return b(t.enabled,e)!==!1&&e.isStaleByTime(y(t.staleTime,e))}function L(e,t){return!E(e.getCurrentResult(),t)}function we(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{se(e,()=>t.signal,()=>n=!0)},u=ae(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?A:ie;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?Ee:Te,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Te(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function Te(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ee(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function De(e,t){return t?Te(e,t)!=null:!1}function Oe(e,t){return!t||!e.getPreviousPageParam?!1:Ee(e,t)!=null}var ke=class extends ge{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||R(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=he({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),M.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function R(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Ae=class extends u{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new ke({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=je(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=je(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=je(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=je(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){M.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>x(t,e))}findAll(e={}){return this.getAll().filter(t=>x(e,t))}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return M.batch(()=>Promise.all(e.map(e=>e.continue().catch(h))))}};function je(e){return e.options.scope?.id}var Me=class extends u{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),E(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&C(t.mutationKey)!==C(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??R();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){M.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},Ne=class extends u{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??S(r,t),a=this.get(i);return a||(a=new P({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){M.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ee(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ee(e,t)):t}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){M.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){M.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Pe=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Ne,this.#t=e.mutationCache||new Ae,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=ce.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=fe.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(y(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=g(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return M.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;M.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return M.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=M.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(h).catch(h)}invalidateQueries(e,t={}){return M.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=M.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(h)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(h)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(y(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(h).catch(h)}fetchInfiniteQuery(e){return e.behavior=we(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(h).catch(h)}ensureInfiniteQueryData(e){return e.behavior=we(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return fe.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(C(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{w(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(C(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{w(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=S(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===j&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},z=e(n(),1),B=t(),Fe=z.createContext(void 0),V=e=>{let t=z.useContext(Fe);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},Ie=({client:e,children:t})=>(z.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,B.jsx)(Fe.Provider,{value:e,children:t})),Le=z.createContext(!1),Re=()=>z.useContext(Le);Le.Provider;function ze(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Be=z.createContext(ze()),Ve=()=>z.useContext(Be),He=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?oe(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},Ue=e=>{z.useEffect(()=>{e.clearReset()},[e])},We=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||oe(n,[e.error,r])),Ge=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Ke=(e,t)=>e.isLoading&&e.isFetching&&!t,qe=(e,t)=>e?.suspense&&t.isPending,Je=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Ye(e,t,n){let r=Re(),i=Ve(),a=V(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?`isRestoring`:`optimistic`,Ge(o),He(o,i,s),Ue(i);let c=!a.getQueryCache().get(o.queryHash),[l]=z.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&e.subscribed!==!1;if(z.useSyncExternalStore(z.useCallback(e=>{let t=d?l.subscribe(M.batchCalls(e)):h;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),z.useEffect(()=>{l.setOptions(o)},[o,l]),qe(o,u))throw Je(o,l,i);if(We({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,u),o.experimental_prefetchInRender&&!m&&Ke(u,r)&&(c?Je(o,l,i):s?.promise)?.catch(h).finally(()=>{l.updateResult()}),o.notifyOnChangeProps?u:l.trackResult(u)}function Xe(e,t){return Ye(e,ye,t)}function Ze(e,t){let n=V(t),[r]=z.useState(()=>new Me(n,e));z.useEffect(()=>{r.setOptions(e)},[r,e]);let i=z.useSyncExternalStore(z.useCallback(e=>r.subscribe(M.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=z.useCallback((e,t)=>{r.mutate(e,t).catch(h)},[r]);if(i.error&&oe(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var Qe=e(a(),1),$e=e=>{switch(e){case`success`:return nt;case`info`:return it;case`warning`:return rt;case`error`:return at;default:return null}},et=Array(12).fill(0),tt=({visible:e,className:t})=>z.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},z.createElement(`div`,{className:`sonner-spinner`},et.map((e,t)=>z.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),nt=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),rt=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),it=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),at=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),ot=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},z.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),z.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),st=()=>{let[e,t]=z.useState(document.hidden);return z.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},ct=1,H=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:ct++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=e instanceof Promise?e:e(),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],z.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(ut(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description;this.create({id:n,type:`error`,message:r,description:a})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description;this.create({id:n,type:`success`,message:r,description:a})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description;this.create({id:n,type:`error`,message:r,description:a})}}).finally(()=>{var e;i&&(this.dismiss(n),n=void 0),(e=t.finally)==null||e.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||ct++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},lt=(e,t)=>{let n=t?.id||ct++;return H.addToast({title:e,...t,id:n}),n},ut=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,U=Object.assign(lt,{success:H.success,info:H.info,warning:H.warning,error:H.error,custom:H.custom,message:H.message,promise:H.promise,dismiss:H.dismiss,loading:H.loading},{getHistory:()=>H.toasts,getToasts:()=>H.getActiveToasts()});function dt(e,{insertAt:t}={}){if(!e||typeof document>`u`)return;let n=document.head||document.getElementsByTagName(`head`)[0],r=document.createElement(`style`);r.type=`text/css`,t===`top`&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}dt(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
|
|
1
|
+
import{i as e}from"./chunk-DseTPa7n.js";import{B as t,H as n,I as r,L as i,V as a,a as o,s,t as c,z as l}from"./react-DCVbGroo.js";var u=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},d={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},f=new class{#e=d;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function p(e){setTimeout(e,0)}var m=typeof window>`u`||`Deno`in globalThis;function h(){}function g(e,t){return typeof e==`function`?e(t):e}function _(e){return typeof e==`number`&&e>=0&&e!==1/0}function v(e,t){return Math.max(e+(t||0)-Date.now(),0)}function y(e,t){return typeof e==`function`?e(t):e}function b(e,t){return typeof e==`function`?e(t):e}function ee(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==S(o,t.options))return!1}else if(!w(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function x(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(C(t.options.mutationKey)!==C(a))return!1}else if(!w(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function S(e,t){return(t?.queryKeyHashFn||C)(e)}function C(e){return JSON.stringify(e,(e,t)=>ne(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function w(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>w(e[n],t[n])):!1}var te=Object.prototype.hasOwnProperty;function T(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=D(e)&&D(t);if(!r&&!(ne(e)&&ne(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:te.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=T(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function E(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function D(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function ne(e){if(!re(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!re(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function re(e){return Object.prototype.toString.call(e)===`[object Object]`}function O(e){return new Promise(t=>{f.setTimeout(t,e)})}function k(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:T(e,t)}function ie(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function A(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var j=Symbol();function ae(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===j?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function oe(e,t){return typeof e==`function`?e(...t):!!e}function se(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ce=new class extends u{#e;#t;#n;constructor(){super(),this.#n=e=>{if(!m&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}};function le(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var ue=p;function de(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=ue,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var M=de(),fe=new class extends u{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(!m&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function pe(e){return Math.min(1e3*2**e,3e4)}function me(e){return(e??`online`)===`online`?fe.isOnline():!0}var N=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function he(e){let t=!1,n=0,r,i=le(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new N(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>ce.isFocused()&&(e.networkMode===`always`||fe.isOnline())&&e.canRun(),u=()=>me(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),h=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(m?0:3),o=e.retryDelay??pe,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),O(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):h()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?h():p().then(h),i)}}var ge=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),_(this.gcTime)&&(this.#e=f.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(m?1/0:300*1e3))}clearGcTimeout(){this.#e&&=(f.clearTimeout(this.#e),void 0)}},P=class extends ge{#e;#t;#n;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=ve(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=ve(this.options);e.data!==void 0&&(this.setState(_e(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#n.remove(this)}setData(e,t){let n=k(this.state.data,e,this.options);return this.#s({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#s({type:`setState`,state:e,setStateOptions:t})}cancel(e){let t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(h).catch(h):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>b(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===j||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>y(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!v(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#s({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#i?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{let e=ae(this.options,t),n=(()=>{let e={client:this.#r,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#o=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:i};return r(e),e})();this.options.behavior?.onFetch(a,this),this.#t=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#s({type:`fetch`,meta:a.fetchOptions?.meta}),this.#i=he({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof N&&e.revert&&this.setState({...this.#t,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#s({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#s({type:`pause`})},onContinue:()=>{this.#s({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#i.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#n.config.onSuccess?.(e,this),this.#n.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof N){if(e.silent)return this.#i.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#s({type:`error`,error:e}),this.#n.config.onError?.(e,this),this.#n.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#s(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...F(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,..._e(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}})(this.state),M.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#n.notify({query:this,type:`updated`,action:e})})}};function F(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:me(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function _e(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function ve(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var ye=class extends u{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=le(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),xe(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Se(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Se(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof b(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!E(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&I(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||b(this.options.enabled,this.#t)!==b(t.enabled,this.#t)||y(this.options.staleTime,this.#t)!==y(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||b(this.options.enabled,this.#t)!==b(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return L(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(h)),t}#g(){this.#b();let e=y(this.options.staleTime,this.#t);if(m||this.#r.isStale||!_(e))return;let t=v(this.#r.dataUpdatedAt,e)+1;this.#d=f.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(m||b(this.options.enabled,this.#t)===!1||!_(this.#p)||this.#p===0)&&(this.#f=f.setInterval(()=>{(this.options.refetchIntervalInBackground||ce.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d&&=(f.clearTimeout(this.#d),void 0)}#x(){this.#f&&=(f.clearInterval(this.#f),void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&xe(e,t),o=i&&I(e,n,t,r);(a||o)&&(l={...l,...F(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=k(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=k(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,ee=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:l.dataUpdateCount>0||l.errorUpdateCount>0,isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!ee,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&ee,isStale:Ce(e,t),refetch:this.refetch,promise:this.#o,isEnabled:b(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{i(this.#o=x.promise=le())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a();break}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!E(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){M.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function be(e,t){return b(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function xe(e,t){return be(e,t)||e.state.data!==void 0&&Se(e,t,t.refetchOnMount)}function Se(e,t,n){if(b(t.enabled,e)!==!1&&y(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&Ce(e,t)}return!1}function I(e,t,n,r){return(e!==t||b(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Ce(e,n)}function Ce(e,t){return b(t.enabled,e)!==!1&&e.isStaleByTime(y(t.staleTime,e))}function L(e,t){return!E(e.getCurrentResult(),t)}function we(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{se(e,()=>t.signal,()=>n=!0)},u=ae(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?A:ie;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?Ee:Te,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Te(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function Te(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ee(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function De(e,t){return t?Te(e,t)!=null:!1}function Oe(e,t){return!t||!e.getPreviousPageParam?!1:Ee(e,t)!=null}var ke=class extends ge{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||R(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=he({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),M.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function R(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Ae=class extends u{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new ke({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=je(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=je(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=je(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=je(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){M.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>x(t,e))}findAll(e={}){return this.getAll().filter(t=>x(e,t))}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return M.batch(()=>Promise.all(e.map(e=>e.continue().catch(h))))}};function je(e){return e.options.scope?.id}var Me=class extends u{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),E(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&C(t.mutationKey)!==C(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??R();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){M.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},Ne=class extends u{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??S(r,t),a=this.get(i);return a||(a=new P({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){M.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ee(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ee(e,t)):t}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){M.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){M.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Pe=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Ne,this.#t=e.mutationCache||new Ae,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=ce.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=fe.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(y(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=g(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return M.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;M.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return M.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=M.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(h).catch(h)}invalidateQueries(e,t={}){return M.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=M.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(h)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(h)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(y(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(h).catch(h)}fetchInfiniteQuery(e){return e.behavior=we(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(h).catch(h)}ensureInfiniteQueryData(e){return e.behavior=we(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return fe.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(C(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{w(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(C(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{w(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=S(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===j&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},z=e(n(),1),B=t(),Fe=z.createContext(void 0),V=e=>{let t=z.useContext(Fe);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},Ie=({client:e,children:t})=>(z.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,B.jsx)(Fe.Provider,{value:e,children:t})),Le=z.createContext(!1),Re=()=>z.useContext(Le);Le.Provider;function ze(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Be=z.createContext(ze()),Ve=()=>z.useContext(Be),He=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?oe(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},Ue=e=>{z.useEffect(()=>{e.clearReset()},[e])},We=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||oe(n,[e.error,r])),Ge=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Ke=(e,t)=>e.isLoading&&e.isFetching&&!t,qe=(e,t)=>e?.suspense&&t.isPending,Je=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Ye(e,t,n){let r=Re(),i=Ve(),a=V(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?`isRestoring`:`optimistic`,Ge(o),He(o,i,s),Ue(i);let c=!a.getQueryCache().get(o.queryHash),[l]=z.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&e.subscribed!==!1;if(z.useSyncExternalStore(z.useCallback(e=>{let t=d?l.subscribe(M.batchCalls(e)):h;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),z.useEffect(()=>{l.setOptions(o)},[o,l]),qe(o,u))throw Je(o,l,i);if(We({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,u),o.experimental_prefetchInRender&&!m&&Ke(u,r)&&(c?Je(o,l,i):s?.promise)?.catch(h).finally(()=>{l.updateResult()}),o.notifyOnChangeProps?u:l.trackResult(u)}function Xe(e,t){return Ye(e,ye,t)}function Ze(e,t){let n=V(t),[r]=z.useState(()=>new Me(n,e));z.useEffect(()=>{r.setOptions(e)},[r,e]);let i=z.useSyncExternalStore(z.useCallback(e=>r.subscribe(M.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=z.useCallback((e,t)=>{r.mutate(e,t).catch(h)},[r]);if(i.error&&oe(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var Qe=e(a(),1),$e=e=>{switch(e){case`success`:return nt;case`info`:return it;case`warning`:return rt;case`error`:return at;default:return null}},et=Array(12).fill(0),tt=({visible:e,className:t})=>z.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},z.createElement(`div`,{className:`sonner-spinner`},et.map((e,t)=>z.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),nt=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),rt=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),it=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),at=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},z.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),ot=z.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},z.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),z.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),st=()=>{let[e,t]=z.useState(document.hidden);return z.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},ct=1,H=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:ct++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=e instanceof Promise?e:e(),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],z.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(ut(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description;this.create({id:n,type:`error`,message:r,description:a})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description;this.create({id:n,type:`success`,message:r,description:a})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description;this.create({id:n,type:`error`,message:r,description:a})}}).finally(()=>{var e;i&&(this.dismiss(n),n=void 0),(e=t.finally)==null||e.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||ct++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},lt=(e,t)=>{let n=t?.id||ct++;return H.addToast({title:e,...t,id:n}),n},ut=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,U=Object.assign(lt,{success:H.success,info:H.info,warning:H.warning,error:H.error,custom:H.custom,message:H.message,promise:H.promise,dismiss:H.dismiss,loading:H.loading},{getHistory:()=>H.toasts,getToasts:()=>H.getActiveToasts()});function dt(e,{insertAt:t}={}){if(!e||typeof document>`u`)return;let n=document.head||document.getElementsByTagName(`head`)[0],r=document.createElement(`style`);r.type=`text/css`,t===`top`&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}dt(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
|
|
2
2
|
`);function ft(e){return e.label!==void 0}var pt=3,mt=`32px`,ht=`16px`,gt=4e3,_t=356,vt=14,yt=20,bt=200;function W(...e){return e.filter(Boolean).join(` `)}function xt(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var St=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:v=``,duration:y,position:b,gap:ee,loadingIcon:x,expandByDefault:S,classNames:C,icons:w,closeButtonAriaLabel:te=`Close toast`,pauseWhenPageIsHidden:T}=e,[E,D]=z.useState(null),[ne,re]=z.useState(null),[O,k]=z.useState(!1),[ie,A]=z.useState(!1),[j,ae]=z.useState(!1),[oe,se]=z.useState(!1),[ce,le]=z.useState(!1),[ue,de]=z.useState(0),[M,fe]=z.useState(0),pe=z.useRef(n.duration||y||gt),me=z.useRef(null),N=z.useRef(null),he=c===0,ge=c+1<=o,P=n.type,F=n.dismissible!==!1,_e=n.className||``,ve=n.descriptionClassName||``,ye=z.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),be=z.useMemo(()=>n.closeButton??p,[n.closeButton,p]),xe=z.useMemo(()=>n.duration||y||gt,[n.duration,y]),Se=z.useRef(0),I=z.useRef(0),Ce=z.useRef(0),L=z.useRef(null),[we,Te]=b.split(`-`),Ee=z.useMemo(()=>s.reduce((e,t,n)=>n>=ye?e:e+t.height,0),[s,ye]),De=st(),Oe=n.invert||t,ke=P===`loading`;I.current=z.useMemo(()=>ye*ee+Ee,[ye,Ee]),z.useEffect(()=>{pe.current=xe},[xe]),z.useEffect(()=>{k(!0)},[]),z.useEffect(()=>{let e=N.current;if(e){let t=e.getBoundingClientRect().height;return fe(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),z.useLayoutEffect(()=>{if(!O)return;let e=N.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,fe(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[O,n.title,n.description,a,n.id]);let R=z.useCallback(()=>{A(!0),de(I.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},bt)},[n,d,a,I]);z.useEffect(()=>{if(n.promise&&P===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||T&&De?(()=>{if(Ce.current<Se.current){let e=new Date().getTime()-Se.current;pe.current-=e}Ce.current=new Date().getTime()})():pe.current!==1/0&&(Se.current=new Date().getTime(),e=setTimeout(()=>{var e;(e=n.onAutoClose)==null||e.call(n,n),R()},pe.current)),()=>clearTimeout(e)},[u,i,n,P,T,De,R]),z.useEffect(()=>{n.delete&&R()},[R,n.delete]);function Ae(){return w!=null&&w.loading?z.createElement(`div`,{className:W(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":P===`loading`},w.loading):x?z.createElement(`div`,{className:W(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":P===`loading`},x):z.createElement(tt,{className:W(C?.loader,n?.classNames?.loader),visible:P===`loading`})}return z.createElement(`li`,{tabIndex:0,ref:N,className:W(_,_e,C?.toast,n?.classNames?.toast,C?.default,C?.[P],n?.classNames?.[P]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":O,"data-promise":!!n.promise,"data-swiped":ce,"data-removed":ie,"data-visible":ge,"data-y-position":we,"data-x-position":Te,"data-index":c,"data-front":he,"data-swiping":j,"data-dismissible":F,"data-type":P,"data-invert":Oe,"data-swipe-out":oe,"data-swipe-direction":ne,"data-expanded":!!(u||S&&O),style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${ie?ue:I.current}px`,"--initial-height":S?`auto`:`${M}px`,...m,...n.style},onDragEnd:()=>{ae(!1),D(null),L.current=null},onPointerDown:e=>{ke||!F||(me.current=new Date,de(I.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(ae(!0),L.current={x:e.clientX,y:e.clientY}))},onPointerUp:()=>{var e;if(oe||!F)return;L.current=null;let t=Number(N.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),r=Number(N.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),i=new Date().getTime()-me.current?.getTime(),a=E===`x`?t:r,o=Math.abs(a)/i;if(Math.abs(a)>=yt||o>.11){de(I.current),(e=n.onDismiss)==null||e.call(n,n),re(E===`x`?t>0?`right`:`left`:r>0?`down`:`up`),R(),se(!0),le(!1);return}ae(!1),D(null)},onPointerMove:t=>{var n,r;if(!L.current||!F||window.getSelection()?.toString().length>0)return;let i=t.clientY-L.current.y,a=t.clientX-L.current.x,o=e.swipeDirections??xt(b);!E&&(Math.abs(a)>1||Math.abs(i)>1)&&D(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0};E===`y`?(o.includes(`top`)||o.includes(`bottom`))&&(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)&&(s.y=i):E===`x`&&(o.includes(`left`)||o.includes(`right`))&&(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)&&(s.x=a),(Math.abs(s.x)>0||Math.abs(s.y)>0)&&le(!0),(n=N.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=N.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},be&&!n.jsx?z.createElement(`button`,{"aria-label":te,"data-disabled":ke,"data-close-button":!0,onClick:ke||!F?()=>{}:()=>{var e;R(),(e=n.onDismiss)==null||e.call(n,n)},className:W(C?.closeButton,n?.classNames?.closeButton)},w?.close??ot):null,n.jsx||(0,z.isValidElement)(n.title)?n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title:z.createElement(z.Fragment,null,P||n.icon||n.promise?z.createElement(`div`,{"data-icon":``,className:W(C?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||Ae():null,n.type===`loading`?null:n.icon||w?.[P]||$e(P)):null,z.createElement(`div`,{"data-content":``,className:W(C?.content,n?.classNames?.content)},z.createElement(`div`,{"data-title":``,className:W(C?.title,n?.classNames?.title)},typeof n.title==`function`?n.title():n.title),n.description?z.createElement(`div`,{"data-description":``,className:W(v,ve,C?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),(0,z.isValidElement)(n.cancel)?n.cancel:n.cancel&&ft(n.cancel)?z.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{var t,r;ft(n.cancel)&&F&&((r=(t=n.cancel).onClick)==null||r.call(t,e),R())},className:W(C?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,(0,z.isValidElement)(n.action)?n.action:n.action&&ft(n.action)?z.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{var t,r;ft(n.action)&&((r=(t=n.action).onClick)==null||r.call(t,e),!e.defaultPrevented&&R())},className:W(C?.actionButton,n?.classNames?.actionButton)},n.action.label):null))};function Ct(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function wt(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?ht:mt;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var Tt=(0,z.forwardRef)(function(e,t){let{invert:n,position:r=`bottom-right`,hotkey:i=[`altKey`,`KeyT`],expand:a,closeButton:o,className:s,offset:c,mobileOffset:l,theme:u=`light`,richColors:d,duration:f,style:p,visibleToasts:m=pt,toastOptions:h,dir:g=Ct(),gap:_=vt,loadingIcon:v,icons:y,containerAriaLabel:b=`Notifications`,pauseWhenPageIsHidden:ee}=e,[x,S]=z.useState([]),C=z.useMemo(()=>Array.from(new Set([r].concat(x.filter(e=>e.position).map(e=>e.position)))),[x,r]),[w,te]=z.useState([]),[T,E]=z.useState(!1),[D,ne]=z.useState(!1),[re,O]=z.useState(u===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:u),k=z.useRef(null),ie=i.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),A=z.useRef(null),j=z.useRef(!1),ae=z.useCallback(e=>{S(t=>{var n;return(n=t.find(t=>t.id===e.id))!=null&&n.delete||H.dismiss(e.id),t.filter(({id:t})=>t!==e.id)})},[]);return z.useEffect(()=>H.subscribe(e=>{if(e.dismiss){S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t));return}setTimeout(()=>{Qe.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[]),z.useEffect(()=>{if(u!==`system`){O(u);return}if(u===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?O(`dark`):O(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{O(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{O(e?`dark`:`light`)}catch(e){console.error(e)}})}},[u]),z.useEffect(()=>{x.length<=1&&E(!1)},[x]),z.useEffect(()=>{let e=e=>{var t,n;i.every(t=>e[t]||e.code===t)&&(E(!0),(t=k.current)==null||t.focus()),e.code===`Escape`&&(document.activeElement===k.current||(n=k.current)!=null&&n.contains(document.activeElement))&&E(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[i]),z.useEffect(()=>{if(k.current)return()=>{A.current&&(A.current.focus({preventScroll:!0}),A.current=null,j.current=!1)}},[k.current]),z.createElement(`section`,{ref:t,"aria-label":`${b} ${ie}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},C.map((t,r)=>{let[i,u]=t.split(`-`);return x.length?z.createElement(`ol`,{key:t,dir:g===`auto`?Ct():g,tabIndex:-1,ref:k,className:s,"data-sonner-toaster":!0,"data-theme":re,"data-y-position":i,"data-lifted":T&&x.length>1&&!a,"data-x-position":u,style:{"--front-toast-height":`${w[0]?.height||0}px`,"--width":`${_t}px`,"--gap":`${_}px`,...p,...wt(c,l)},onBlur:e=>{j.current&&!e.currentTarget.contains(e.relatedTarget)&&(j.current=!1,A.current&&=(A.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||j.current||(j.current=!0,A.current=e.relatedTarget)},onMouseEnter:()=>E(!0),onMouseMove:()=>E(!0),onMouseLeave:()=>{D||E(!1)},onDragEnd:()=>E(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||ne(!0)},onPointerUp:()=>ne(!1)},x.filter(e=>!e.position&&r===0||e.position===t).map((r,i)=>z.createElement(St,{key:r.id,icons:y,index:i,toast:r,defaultRichColors:d,duration:h?.duration??f,className:h?.className,descriptionClassName:h?.descriptionClassName,invert:n,visibleToasts:m,closeButton:h?.closeButton??o,interacting:D,position:t,style:h?.style,unstyled:h?.unstyled,classNames:h?.classNames,cancelButtonStyle:h?.cancelButtonStyle,actionButtonStyle:h?.actionButtonStyle,removeToast:ae,toasts:x.filter(e=>e.position==r.position),heights:w.filter(e=>e.position==r.position),setHeights:te,expandByDefault:a,gap:_,loadingIcon:v,expanded:T,pauseWhenPageIsHidden:ee,swipeDirections:e.swipeDirections}))):null}))}),Et=new Pe({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!0}}}),Dt=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Ot=l,kt=(e,t)=>n=>{if(t?.variants==null)return Ot(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Dt(t)||Dt(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return Ot(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},At=kt(`inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-colors duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:pointer-events-none disabled:opacity-50`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-border bg-card text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,secondary:`bg-muted text-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,ghost:`text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`,primary:`bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm`,subtle:`bg-muted text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground`,"primary-outline":`border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground`},size:{default:`h-9 px-4 py-2`,sm:`h-8 px-3 text-xs`,lg:`h-11 px-5 text-[14px]`,xl:`h-12 px-6 text-[15px]`,icon:`h-9 w-9`}},defaultVariants:{variant:`default`,size:`default`}}),jt=z.forwardRef(({className:e,variant:t,size:n,...r},a)=>(0,B.jsx)(`button`,{className:i(At({variant:t,size:n,className:e})),ref:a,...r}));jt.displayName=`Button`;var G=z.forwardRef(({className:e,type:t,...n},r)=>(0,B.jsx)(`input`,{type:t,className:i(`flex h-9 w-full rounded-xl border border-border/75 bg-card px-3.5 py-2 text-sm text-foreground file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/55 placeholder:font-normal transition-colors focus:outline-none focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50`,e),ref:r,...n}));G.displayName=`Input`;var K=z.forwardRef(({className:e,...t},n)=>(0,B.jsx)(`label`,{ref:n,className:i(`text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,e),...t}));K.displayName=`Label`;function Mt({children:e,fullHeight:t=!1,className:n}){return(0,B.jsx)(`div`,{className:i(`animate-fade-in`,t?`h-[calc(100vh-80px)] w-full flex flex-col`:`pb-16`,n),children:e})}function Nt({title:e,description:t,actions:n,headingLevel:r=2,className:a}){let o=r===1?`h1`:`h2`;return(0,B.jsxs)(`header`,{className:i(`flex shrink-0 flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,a),children:[(0,B.jsxs)(`div`,{className:`min-w-0`,children:[(0,B.jsx)(o,{className:`text-xl font-semibold tracking-tight text-foreground`,children:e}),t&&(0,B.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm leading-6 text-muted-foreground`,children:t})]}),n&&(0,B.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:n})]})}function Pt({actions:e,children:t,className:n,description:r,layout:a=`standard`,title:o}){return(0,B.jsxs)(Mt,{className:i(`w-full space-y-6`,a===`split`&&`pb-0 md:flex md:h-full md:min-h-0 md:flex-col`,n),children:[(0,B.jsx)(Nt,{title:o,description:r,actions:e}),t]})}var Ft=kt(`grid min-h-16 grid-cols-1 gap-3 px-4 py-3.5 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center sm:gap-6`,{variants:{tone:{default:``,muted:`bg-muted/55`},layout:{responsive:``,stacked:`sm:grid-cols-1 sm:items-start sm:gap-3`}},defaultVariants:{tone:`default`,layout:`responsive`}}),It=z.forwardRef(({actions:e,children:t,className:n,description:r,title:a,...o},s)=>(0,B.jsxs)(`section`,{ref:s,className:i(`space-y-2.5`,n),...o,children:[a||r||e?(0,B.jsxs)(`div`,{className:`flex items-end justify-between gap-4 px-1`,children:[(0,B.jsxs)(`div`,{className:`min-w-0`,children:[a?(0,B.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:a}):null,r?(0,B.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-muted-foreground`,children:r}):null]}),e?(0,B.jsx)(`div`,{className:`shrink-0`,children:e}):null]}):null,t]}));It.displayName=`SettingsSection`;var Lt=z.forwardRef(({className:e,...t},n)=>(0,B.jsx)(`div`,{ref:n,className:i(`divide-y divide-border/55 overflow-hidden rounded-2xl bg-muted/45 text-foreground`,e),...t}));Lt.displayName=`SettingsGroup`;var Rt=z.forwardRef(({className:e,layout:t,tone:n,title:r,description:a,control:o,children:s,...c},l)=>(0,B.jsxs)(`div`,{ref:l,className:i(Ft({layout:t,tone:n}),e),...c,children:[(0,B.jsxs)(`div`,{className:`min-w-0`,children:[(0,B.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:r}),a?(0,B.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-muted-foreground`,children:a}):null,s?(0,B.jsx)(`div`,{className:`mt-3`,children:s}):null]}),o?(0,B.jsx)(`div`,{className:`min-w-0 sm:shrink-0`,children:o}):null]}));Rt.displayName=`SettingRow`;function zt(e){let t=e.trim().replace(/\/+$/,``);if(!t)throw Error(`NextClaw client baseUrl is required.`);return t}function Bt(e,t){return`${zt(e)}${t.startsWith(`/`)?t:`/${t}`}`}function Vt(e,t){if(!t)return e;let n=typeof t==`string`?t:t.toString();return n?`${e}${e.includes(`?`)?`&`:`?`}${n}`:e}function Ht(e,t){let n=new URL(Bt(e,t));return n.protocol===`https:`?n.protocol=`wss:`:n.protocol===`http:`&&(n.protocol=`ws:`),n.toString()}function Ut(e){let t=e??globalThis.fetch;if(typeof t!=`function`)throw Error(`NextClaw fetch transport is not available in this environment.`);return((e,n)=>t.call(globalThis,e,n))}function Wt(e){let t=e.split(/\r?\n/),n=`message`,r=[];for(let e of t){if(e.startsWith(`event:`)){n=e.slice(6).trim();continue}e.startsWith(`data:`)&&r.push(e.slice(5).trimStart())}return r.length===0?null:{event:n,data:r.join(`
|
|
3
3
|
`)}}function Gt(e){try{let t=JSON.parse(e);return t&&typeof t==`object`&&`type`in t?t:null}catch{return null}}var Kt=class{baseUrl;defaultHeaders;fetchImpl;transport;constructor(e,t){this.requestService=e;let{baseUrl:n,fetchImpl:r,headers:i,token:a,transport:o}=t;this.baseUrl=n,this.fetchImpl=Ut(r),this.transport=o,this.defaultHeaders={Accept:`application/json`,...i??{},...a?{Authorization:`Bearer ${a}`}:{}}}send=async e=>await this.requestService.post(`/api/agent-runs/send`,e);editMessage=async e=>await this.requestService.post(`/api/agent-runs/edit-message`,e);continue=async e=>await this.requestService.post(`/api/agent-runs/continue`,e);abort=async e=>await this.requestService.post(`/api/agent-runs/abort`,e);stream=(e,t,n={})=>{if(this.transport)throw Error(`Agent run streaming requires the HTTP fetch transport.`);let r=new AbortController,i=()=>r.abort(n.signal?.reason);return n.signal?.addEventListener(`abort`,i,{once:!0}),this.consumeStream(e,t,r.signal,n.onError).finally(()=>{n.signal?.removeEventListener(`abort`,i)}),{close:()=>{r.abort(),n.signal?.removeEventListener(`abort`,i)}}};consumeStream=async(e,t,n,r)=>{try{let r=new URL(Bt(this.baseUrl,`/api/agent-runs/stream`));r.searchParams.set(`sessionId`,e.sessionId);let i=await this.fetchImpl(r.toString(),{method:`GET`,headers:{...this.defaultHeaders,Accept:`text/event-stream`},signal:n});if(!i.ok)throw Error(`Agent run stream failed with HTTP ${i.status}.`);if(!i.body)throw Error(`Agent run stream response has no body.`);await this.readEventStream(i.body,t,n)}catch(e){if(n.aborted)return;r?.(e)}};readEventStream=async(e,t,n)=>{let r=e.getReader(),i=new TextDecoder,a=``;try{for(;!n.aborted;){let{done:e,value:n}=await r.read();if(e)break;a+=i.decode(n,{stream:!0}),a=this.drainFrames(a,t)}a+=i.decode(),this.drainFrames(`${a}\n\n`,t)}finally{r.releaseLock()}};drainFrames=(e,t)=>{let n=e.replaceAll(`\r
|
|
4
4
|
`,`
|
|
5
5
|
`).split(`
|
|
6
6
|
|
|
7
|
-
`),r=n.pop()??``;for(let e of n){let n=Wt(e);if(n?.event!==`ncp-event`)continue;let r=Gt(n.data);r&&t(r)}return r}},qt=class{constructor(e,t){this.requestService=e,this.baseUrl=t}list=async()=>(await this.requestService.get(`/api/agents`)).agents;create=async e=>await this.requestService.post(`/api/agents`,e);update=async(e,t)=>await this.requestService.put(`/api/agents/${encodeURIComponent(e)}`,t);delete=async e=>await this.requestService.delete(`/api/agents/${encodeURIComponent(e)}`);resolveAvatarUrl=e=>Bt(this.baseUrl,`/api/agents/${encodeURIComponent(e)}/avatar`)},Jt=class{constructor(e){this.requestService=e}fetchMeta=async()=>await this.requestService.get(`/api/app/meta`);fetchBootstrapStatus=async(e={})=>await this.requestService.get(`/api/runtime/bootstrap-status`,e)},Yt=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(e.includeStorageUsage===!1?`/api/app-packages?includeStorageUsage=false`:`/api/app-packages`);get=async e=>await this.requestService.get(`/api/app-packages/${encodeURIComponent(e)}`);listOperations=async()=>await this.requestService.get(`/api/app-package-operations`);startInstall=async e=>await this.requestService.post(`/api/app-package-operations/install`,e);startUpdate=async(e,t={})=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/update`,t);startRollback=async(e,t)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/rollback`,{version:t});startUninstall=async(e,t=!1)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/uninstall`,{purgeData:t});install=async e=>await this.requestService.post(`/api/app-packages/install`,e);enable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/enable`);disable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/disable`);update=async(e,t={})=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/update`,t);rollback=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/rollback`,{version:t});uninstall=async(e,t=!1)=>await this.requestService.request(`/api/app-packages/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}})},Xt=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/app-data`);deleteRetained=async(e,t)=>await this.requestService.request(`/api/app-data/${encodeURIComponent(e)}`,{method:`DELETE`,body:{confirmAppId:t}})},Zt=class{constructor(e){this.requestService=e}fetchStatus=async(e={})=>await this.requestService.get(`/api/auth/status`,{...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}});setup=async e=>await this.requestService.post(`/api/auth/setup`,e);login=async e=>await this.requestService.post(`/api/auth/login`,e);logout=async()=>await this.requestService.post(`/api/auth/logout`,{});updatePassword=async e=>await this.requestService.put(`/api/auth/password`,e);updateEnabled=async e=>await this.requestService.put(`/api/auth/enabled`,e)},Qt=class{constructor(e){this.requestService=e}start=async(e,t={})=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/start`,t);poll=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/poll`,t);connect=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/connect`,t)},$t=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/config`);fetchMeta=async()=>await this.requestService.get(`/api/config/meta`);fetchSchema=async()=>await this.requestService.get(`/api/config/schema`);updateModel=async e=>await this.requestService.put(`/api/config/model`,e);updateSearch=async e=>await this.requestService.put(`/api/config/search`,e);updateChannel=async(e,t)=>await this.requestService.put(`/api/config/channels/${encodeURIComponent(e)}`,t);updateRuntime=async e=>await this.requestService.put(`/api/config/runtime`,e);updateSecrets=async e=>await this.requestService.put(`/api/config/secrets`,e);updateProductAnalytics=async e=>await this.requestService.put(`/api/config/product-analytics`,e);executeAction=async(e,t={})=>await this.requestService.post(`/api/config/actions/${encodeURIComponent(e)}/execute`,t);fetchChatSessionTypes=async()=>await this.requestService.get(`/api/ncp/session-types`);fetchCronJobs=async(e={})=>await this.requestService.get(`/api/cron`,{query:{all:e.all?`1`:void 0,limit:e.limit,offset:e.offset,query:e.query,status:e.status}});deleteCronJob=async e=>await this.requestService.delete(`/api/cron/${encodeURIComponent(e)}`);setCronJobEnabled=async(e,t)=>await this.requestService.put(`/api/cron/${encodeURIComponent(e)}/enable`,t);runCronJob=async(e,t={})=>await this.requestService.post(`/api/cron/${encodeURIComponent(e)}/run`,t)},en=class{constructor(e){this.requestService=e}fetchItems=async e=>await this.requestService.get(`${tn(e.type)}/items`,{query:nn(e)});fetchItem=async(e,t)=>await this.requestService.get(`${tn(t)}/items/${encodeURIComponent(e)}`);fetchSkillContent=async e=>await this.requestService.get(`/api/marketplace/skills/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e,t={})=>await this.requestService.get(`${tn(e)}/recommendations`,{query:{...t.scene?.trim()?{scene:t.scene.trim()}:{},...typeof t.limit==`number`&&Number.isFinite(t.limit)?{limit:Math.max(1,Math.trunc(t.limit))}:{}}});fetchSkillScenes=async()=>await this.requestService.get(`/api/marketplace/skills/scenes`);install=async e=>await this.requestService.post(`${tn(rn(e.type))}/install`,e);fetchInstalled=async e=>await this.requestService.get(`${tn(e)}/installed`);manage=async e=>await this.requestService.post(`${tn(rn(e.type))}/manage`,e)};function tn(e){return e===`skill`?`/api/marketplace/skills`:`/api/marketplace/mcp`}function nn(e){let{page:t,pageSize:n,q:r,scene:i,sort:a,tag:o}=e,s={};return r?.trim()&&(s.q=r.trim()),o?.trim()&&(s.tag=o.trim()),i?.trim()&&(s.scene=i.trim()),a&&(s.sort=a),typeof t==`number`&&Number.isFinite(t)&&(s.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(s.pageSize=Math.max(1,Math.trunc(n))),Object.keys(s).length>0?s:void 0}function rn(e){if(!e)throw Error(`Marketplace request type is required.`);return e}var an=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/inbox/deliveries`);get=async e=>await this.requestService.get(this.deliveryPath(e));updateState=async(e,t)=>await this.requestService.request(this.deliveryPath(e),{method:`PATCH`,body:{action:t}});delete=async e=>(await this.requestService.delete(this.deliveryPath(e))).deleted;deliveryPath=e=>`/api/inbox/deliveries/${encodeURIComponent(e)}`},on=class{constructor(e){this.requestService=e}fetchItems=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/items`,{query:sn(e)});fetchInstalled=async()=>await this.requestService.get(`/api/marketplace/mcp/installed`);fetchItem=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}`);fetchContent=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/recommendations`,{query:{...e.scene?.trim()?{scene:e.scene.trim()}:{},...typeof e.limit==`number`&&Number.isFinite(e.limit)?{limit:Math.max(1,Math.trunc(e.limit))}:{}}});install=async e=>await this.requestService.post(`/api/marketplace/mcp/install`,e);manage=async e=>await this.requestService.post(`/api/marketplace/mcp/manage`,e);doctor=async e=>await this.requestService.post(`/api/marketplace/mcp/doctor`,{name:e})};function sn(e){let{page:t,pageSize:n,q:r,sort:i,tag:a}=e,o={};return r?.trim()&&(o.q=r.trim()),a?.trim()&&(o.tag=a.trim()),i&&(o.sort=i),typeof t==`number`&&Number.isFinite(t)&&(o.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(o.pageSize=Math.max(1,Math.trunc(n))),Object.keys(o).length>0?o:void 0}var cn=`x-nextclaw-panel-bridge-session`;function ln(e){return e?{[cn]:e}:void 0}var un=class{constructor(e){this.requestService=e}listPanelApps=async()=>await this.requestService.get(`/api/panel-apps`);updatePanelAppPreferences=async(e,t)=>await this.requestService.request(`/api/panel-apps/${encodeURIComponent(e)}/preferences`,{method:`PATCH`,body:t});recordPanelAppOpened=async e=>await this.requestService.post(`/api/panel-apps/${encodeURIComponent(e)}/open`);deletePanelApp=async e=>await this.requestService.delete(`/api/panel-apps/${encodeURIComponent(e)}`);createBridgeSession=async e=>await this.requestService.post(`/api/panel-app-bridge-sessions`,e);deleteBridgeSession=async e=>await this.requestService.delete(`/api/panel-app-bridge-sessions/${encodeURIComponent(e)}`);grantClient=async e=>await this.requestService.post(`/api/panel-app-client-grants/${encodeURIComponent(e)}`,{});revokeClient=async e=>await this.requestService.delete(`/api/panel-app-client-grants/${encodeURIComponent(e)}`);sendAgentMessage=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/send`,e,{headers:ln(t.bridgeSessionToken)});generateAgentObject=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/generate-object`,e,{headers:ln(t.bridgeSessionToken)});grantAgentCapability=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent-capabilities/${encodeURIComponent(e)}/grant`,{},{headers:ln(t.bridgeSessionToken)})},dn=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/providers`);listTemplates=async()=>await this.requestService.get(`/api/provider-templates`);listModelCatalog=async()=>await this.requestService.get(`/api/provider-model-catalog`);update=async(e,t)=>await this.requestService.put(`/api/providers/${encodeURIComponent(e)}`,t);create=async(e={})=>await this.requestService.post(`/api/providers`,e);delete=async e=>await this.requestService.delete(`/api/providers/${encodeURIComponent(e)}`);testConnection=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/test`,t);discoverModels=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/models/discover`,t);startAuth=async(e,t={})=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/start`,t);pollAuth=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/poll`,t);importAuthFromCli=async e=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/import-cli`,{})},fn=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/projects`);create=async e=>await this.requestService.post(`/api/projects`,e);addExisting=async e=>await this.requestService.post(`/api/projects/existing`,e)},pn=class{baseUrl;transport;webSocketFactory;constructor(e){this.options=e,this.baseUrl=e.baseUrl,this.transport=e.transport,this.webSocketFactory=e.webSocketFactory}subscribe=(e,t={})=>{if(this.transport?.subscribe){let t=this.transport.subscribe(e);return{close:()=>{t()}}}let n=null,r=null,i=!1,a=Math.max(200,t.reconnectDelayMs??1e3),o=()=>{r!==null&&(clearTimeout(r),r=null)},s=t=>{e(t)},c=()=>{try{n=this.createSocket(Ht(this.baseUrl,`/ws`))}catch(e){t.onError?.(e),i||(r=setTimeout(c,a));return}n.onopen=()=>{s({type:`connection.open`})},n.onmessage=e=>{let t=this.parseEvent(e.data);t&&s(t)},n.onerror=e=>{t.onError?.(e),s({type:`connection.error`,payload:{message:`WebSocket error`}})},n.onclose=()=>{s({type:`connection.close`}),n=null,i||(o(),r=setTimeout(c,a))}};return c(),{close:()=>{i=!0,o(),n?.close(),n=null}}};createSocket=e=>{if(this.webSocketFactory)return this.webSocketFactory(e);if(typeof globalThis.WebSocket!=`function`)throw Error(`WebSocket is unavailable. Provide webSocketFactory when creating the client.`);return new globalThis.WebSocket(e)};parseEvent=e=>{if(typeof e!=`string`)return null;try{let t=JSON.parse(e);return t&&typeof t==`object`&&`type`in t?t:null}catch{return null}}},mn=class{constructor(e){this.requestService=e}fetchStatus=async()=>await this.requestService.get(`/api/remote/status`);fetchDoctor=async()=>await this.requestService.get(`/api/remote/doctor`);login=async e=>await this.requestService.post(`/api/remote/login`,e);startBrowserAuth=async(e={})=>await this.requestService.post(`/api/remote/auth/start`,e);pollBrowserAuth=async e=>await this.requestService.post(`/api/remote/auth/poll`,e);logout=async()=>await this.requestService.post(`/api/remote/logout`,{});updateAccountProfile=async e=>await this.requestService.put(`/api/remote/account/profile`,e);updateSettings=async e=>await this.requestService.put(`/api/remote/settings`,e);controlService=async e=>await this.requestService.post(`/api/remote/service/${e}`,{})},q=class extends Error{status;code;details;constructor(e){let{code:t,details:n,message:r,status:i}=e;super(r),this.name=`NextClawClientError`,this.status=i,this.code=t,this.details=n}};function hn(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function gn(e,t){return hn(e)?e[t]:void 0}var _n=class{baseUrl;fetchImpl;requestTimeoutMs;defaultHeaders;transport;constructor(e){this.options=e;let{baseUrl:t,fetchImpl:n,headers:r,requestTimeoutMs:i,token:a}=e;this.baseUrl=t,this.fetchImpl=Ut(n),this.requestTimeoutMs=Math.max(1e3,i??15e3),this.transport=e.transport,this.defaultHeaders={Accept:`application/json`,...r??{},...a?{Authorization:`Bearer ${a}`}:{}}}request=async(e,t={})=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t;if(this.transport)return await this.requestWithTransport(e,t);let c=new AbortController,l=Math.max(1e3,s??this.requestTimeoutMs),u=this.bindAbortSignal(c,o),d=setTimeout(()=>c.abort(),l),f={...this.defaultHeaders,...r??{}},p=this.normalizeRequestBody(n,f);try{let t=await this.fetchImpl(Bt(this.baseUrl,Vt(e,this.serializeQuery(a))),{method:i??`GET`,headers:f,body:p,signal:c.signal}),n=await t.json();if(!t.ok){let e=this.extractApiError(n);throw new q({message:e.message,status:t.status,code:e.code,details:e.details})}if(!this.isApiResponse(n))throw new q({message:`Unexpected NextClaw API response shape.`,status:t.status});if(!n.ok)throw new q({message:n.error.message,status:t.status,code:n.error.code,details:n.error.details});return n.data}catch(e){throw e instanceof q?e:e instanceof Error&&e.name===`AbortError`?new q({message:`NextClaw API request timed out after ${l}ms.`}):new q({message:e instanceof Error?e.message:`NextClaw API request failed.`})}finally{o?.removeEventListener(`abort`,u),clearTimeout(d)}};bindAbortSignal=(e,t)=>{let n=()=>e.abort(t?.reason);return t?t.aborted?(e.abort(t.reason),n):(t.addEventListener(`abort`,n,{once:!0}),n):n};requestWithTransport=async(e,t)=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t,{transport:c}=this;if(!c)throw new q({message:`NextClaw transport is not configured.`});try{return await c.request({method:i??`GET`,path:e,...n===void 0?{}:{body:n},...a?{query:a}:{},...r?{headers:r}:{},...o?{signal:o}:{},...s===void 0?{}:{timeoutMs:s}})}catch(e){if(e instanceof q)throw e;let t=gn(e,`code`),n=gn(e,`details`),r=gn(e,`status`);throw new q({message:e instanceof Error?e.message:`NextClaw API request failed.`,code:typeof t==`string`?t:void 0,details:hn(n)?n:void 0,status:typeof r==`number`?r:void 0})}};get=async(e,t={})=>await this.request(e,{...t,method:`GET`});post=async(e,t,n={})=>await this.request(e,{...n,method:`POST`,...t===void 0?{}:{body:t}});put=async(e,t,n={})=>await this.request(e,{...n,method:`PUT`,...t===void 0?{}:{body:t}});delete=async(e,t={})=>await this.request(e,{...t,method:`DELETE`});upload=async(e,t,n={})=>{let{headers:r,signal:i,timeoutMs:a}=n;if(this.transport?.upload)return await this.transport.upload({path:e,formData:t,...r?{headers:r}:{},...i?{signal:i}:{},...a===void 0?{}:{timeoutMs:a}});let o=new AbortController,s=Math.max(1e3,a??this.requestTimeoutMs),c=()=>o.abort(i?.reason);i&&(i.aborted?o.abort(i.reason):i.addEventListener(`abort`,c,{once:!0}));let l=setTimeout(()=>o.abort(),s);try{let n=await this.fetchImpl(Bt(this.baseUrl,e),{method:`POST`,headers:{Accept:`application/json`,...vn(this.options.token)??{},...this.options.headers??{},...r??{}},body:t,signal:o.signal}),i=await n.json();if(!n.ok){let e=this.extractApiError(i);throw new q({message:e.message,status:n.status,code:e.code,details:e.details})}if(!this.isApiResponse(i)||!i.ok)throw new q({message:`Unexpected NextClaw upload response shape.`,status:n.status});return i.data}catch(e){throw e instanceof q?e:e instanceof Error&&e.name===`AbortError`?new q({message:`NextClaw API upload timed out after ${s}ms.`}):new q({message:e instanceof Error?e.message:`NextClaw API upload failed.`})}finally{i?.removeEventListener(`abort`,c),clearTimeout(l)}};isApiResponse=e=>typeof e==`object`&&!!e&&`ok`in e;extractApiError=e=>{if(this.isApiResponse(e)&&!e.ok)return e.error;if(typeof e==`object`&&e&&`message`in e){let t=e;return{code:typeof t.code==`string`?t.code:`HTTP_ERROR`,message:typeof t.message==`string`?t.message:`NextClaw API request failed.`,details:t.details!==null&&typeof t.details==`object`?t.details:void 0}}return{code:`HTTP_ERROR`,message:`NextClaw API request failed.`}};normalizeRequestBody=(e,t)=>{if(e!==void 0)return e instanceof FormData||e instanceof URLSearchParams||e instanceof Blob||e instanceof ArrayBuffer?e:typeof e==`string`?(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),e):(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),JSON.stringify(e))};serializeQuery=e=>{if(!e)return;if(e instanceof URLSearchParams)return e;let t=new URLSearchParams;for(let[n,r]of Object.entries(e)){let e=Array.isArray(r)?r:[r];for(let r of e)r!=null&&t.append(n,String(r))}return t}};function vn(e){return e?{Authorization:`Bearer ${e}`}:null}var yn=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/control`);startService=async()=>await this.requestService.post(`/api/runtime/control/start-service`,{});restartService=async()=>await this.requestService.post(`/api/runtime/control/restart-service`,{});stopService=async()=>await this.requestService.post(`/api/runtime/control/stop-service`,{})},bn=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/update`);check=async()=>await this.requestService.post(`/api/runtime/update/check`,{});download=async()=>await this.requestService.post(`/api/runtime/update/download`,{});apply=async()=>await this.requestService.post(`/api/runtime/update/apply`,{});updateChannel=async e=>await this.requestService.put(`/api/runtime/update/channel`,{channel:e})},xn=class{constructor(e){this.requestService=e}browse=async e=>{let{basePath:t,includeFiles:n,path:r}=e??{},i=typeof r==`string`?r.trim():``,a=typeof t==`string`?t.trim():``;return await this.requestService.get(`/api/server-paths/browse`,{query:{...i?{path:i}:{},...a?{basePath:a}:{},...n?{includeFiles:`1`}:{}}})};watch=async e=>await this.requestService.post(`/api/server-paths/watch`,e);unwatch=async e=>{await this.requestService.delete(`/api/server-paths/watch`,{query:{subscriptionId:e.trim()}})};createDirectory=async e=>await this.requestService.post(`/api/server-paths/directory`,e);createFile=async e=>await this.requestService.post(`/api/server-paths/file`,e);renameEntry=async e=>await this.requestService.request(`/api/server-paths/entry`,{method:`PATCH`,body:e});deleteEntry=async e=>await this.requestService.delete(`/api/server-paths/entry`,{query:{basePath:e.basePath.trim(),path:e.path.trim()}});uploadFiles=async e=>{let{basePath:t,files:n,overwrite:r,targetPath:i}=e,a=new FormData;return a.append(`basePath`,t.trim()),a.append(`targetPath`,i.trim()),a.append(`overwrite`,r?`true`:`false`),n.forEach(e=>a.append(`files`,e)),await this.requestService.upload(`/api/server-paths/files`,a,{timeoutMs:12e4})};read=async e=>{let{basePath:t,line:n,path:r}=e,i=r.trim(),a=typeof t==`string`?t.trim():``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/read`,{query:{path:i,...a?{basePath:a}:{},...o?{line:String(o)}:{}}})};search=async e=>{let{basePath:t,limit:n,query:r}=e,i=t.trim(),a=r?.trim()??``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/search`,{query:{basePath:i,...a?{query:a}:{},...o?{limit:String(o)}:{}}})}},Sn=`x-nextclaw-panel-bridge-session`;function Cn(e){return e?{[Sn]:e}:void 0}var wn=class{constructor(e){this.requestService=e}listServiceApps=async()=>await this.requestService.get(`/api/service-apps`);getServiceApp=async e=>await this.requestService.get(`/api/service-apps/${encodeURIComponent(e)}`);restartServiceApp=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/restart`);deleteServiceApp=async(e,t=!1)=>await this.requestService.request(`/api/service-apps/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}});listServiceActions=async(e={})=>{let t=e.appId?`?${new URLSearchParams({appId:e.appId}).toString()}`:``;return await this.requestService.get(`/api/service-actions${t}`,{headers:Cn(e.bridgeSessionToken)})};discoverServiceAppActions=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/actions/discover`,{});invokeServiceAction=async(e,t,n={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/invoke`,{input:t??{}},{headers:Cn(n.bridgeSessionToken)});grantServiceAction=async(e,t={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/grant`,{},{headers:Cn(t.bridgeSessionToken)});grantServiceActions=async(e,t={})=>await this.requestService.post(`/api/service-action-grants`,{actionIds:e},{headers:Cn(t.bridgeSessionToken)});listServiceActionGrants=async()=>await this.requestService.get(`/api/service-action-grants`);revokeServiceAction=async(e,t={})=>await this.requestService.delete(`/api/service-actions/${encodeURIComponent(e)}/grant`,{headers:Cn(t.bridgeSessionToken)});revokeServiceActionGrant=async e=>{let t=new URLSearchParams({surface:e.caller.surface,appId:e.caller.appId});return await this.requestService.delete(`/api/service-action-grants/${encodeURIComponent(e.actionId)}?${t.toString()}`)}},Tn=class{constructor(e,t){this.requestService=e,this.eventBus=t}list=async e=>{let{limit:t,peerId:n}=e??{},r=new URLSearchParams;typeof t==`number`&&Number.isFinite(t)&&r.set(`limit`,String(Math.max(1,Math.trunc(t))));let i=n?.trim();return i&&r.set(`peerId`,i),await this.requestService.get(`/api/ncp/sessions`,{...r.size>0?{query:r}:{}})};get=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}`);listMessages=async(e,t={})=>{let n=typeof t==`number`?{limit:t}:t,r=new URLSearchParams;return typeof n.limit==`number`&&Number.isFinite(n.limit)&&r.set(`limit`,String(Math.max(1,Math.trunc(n.limit)))),n.cursor?.trim()&&r.set(`cursor`,n.cursor.trim()),n.toolPayload===`summary`&&r.set(`toolPayload`,`summary`),n.initialPayload===`compact`&&r.set(`initialPayload`,`compact`),await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/messages`,{...r.size>0?{query:r}:{},...n.signal?{signal:n.signal}:{}})};getUsage=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/usage`);listSkills=async(e,t)=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/skills`,{query:t?.projectRoot?.trim()?{projectRoot:t.projectRoot.trim()}:void 0});listQueuedInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs`);deleteQueuedInput=async(e,t)=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}`);listPendingInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/pending-inputs`);steerQueuedInput=async(e,t)=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}/steer`);update=async(e,t)=>await this.requestService.put(`/api/ncp/sessions/${encodeURIComponent(e)}`,t);compactContext=async e=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/context/compact`);delete=async e=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}`);uploadAssets=async e=>{let t=new FormData;for(let n of e)t.append(`files`,n);return await this.requestService.upload(`/api/ncp/assets`,t)};subscribe=(e,t={})=>({close:this.eventBus.subscribeAll(t=>{e(t)})})},En=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(`/api/system-object-references`,{query:e});resolve=async e=>await this.requestService.post(`/api/system-object-references/resolve`,{uri:e})},Dn=class{baseUrl;agentRuns;app;appPackages;appData;agents;auth;channelAuth;config;eventBus;marketplace;inboxDeliveries;mcpMarketplace;panelApps;providers;projects;realtime;remote;runtimeControl;runtimeUpdate;serverPaths;serviceApps;sessions;systemObjectReferences;constructor(e){this.baseUrl=zt(e.baseUrl);let t={...e,baseUrl:this.baseUrl},n=new _n(t);this.realtime=new pn(t);let i=null;this.eventBus=new r({onFirstSubscriber:()=>{i??=this.realtime.subscribe(e=>{this.eventBus.emitEnvelope({type:e.type,payload:`payload`in e?e.payload:void 0,emittedAt:`emittedAt`in e?e.emittedAt:new Date().toISOString(),source:`source`in e?e.source:`realtime`})})},onNoSubscribers:()=>{i?.close(),i=null}}),this.agentRuns=new Kt(n,t),this.app=new Jt(n),this.appPackages=new Yt(n),this.appData=new Xt(n),this.agents=new qt(n,this.baseUrl),this.auth=new Zt(n),this.channelAuth=new Qt(n),this.config=new $t(n),this.marketplace=new en(n),this.inboxDeliveries=new an(n),this.mcpMarketplace=new on(n),this.panelApps=new un(n),this.providers=new dn(n),this.projects=new fn(n),this.remote=new mn(n),this.runtimeControl=new yn(n),this.runtimeUpdate=new bn(n),this.serverPaths=new xn(n),this.serviceApps=new wn(n),this.sessions=new Tn(n,this.eventBus),this.systemObjectReferences=new En(n)}},On=`http://127.0.0.1:55667`,kn=(()=>{let e=(void 0)?.trim();return e?e.replace(/\/$/,``):typeof window<`u`&&window.location?.origin?window.location.origin:On})(),An={"Use this page to manage the local NextClaw service. Closing the browser does not stop the service.":`runtimeControlManagedLocalMessage`,"This page is served by the running local service. Closing the browser does not stop it.":`runtimeControlManagedLocalHint`,"This page is served by the running local service.":`runtimeControlManagedLocalHintShort`,"This page is already hosted by the running local service.":`runtimeControlStartUnavailableHosted`,"App restart is only available in the desktop shell.":`runtimeControlRestartAppDesktopOnly`,"The local service is not running.":`runtimeControlServiceNotRunning`,"The local service is already stopped.":`runtimeControlServiceAlreadyStopped`,"Managed service started.":`runtimeControlManagedServiceStarted`,"Managed service start scheduled.":`runtimeControlManagedServiceStartScheduled`,"Restart scheduled. This page may disconnect for a few seconds.":`runtimeControlRestartScheduled`,"Stop scheduled. This page will disconnect shortly.":`runtimeControlStopScheduled`,"runtime healthy":`runtimeControlHealthy`};function jn(e){return e.activeSystemAction?`service-transitioning`:e.lifecyclePhase}function Mn(e){return e===`ready`?`connected`:e===`startup-failed`||e===`stalled`?`disconnected`:`connecting`}function Nn(e){let t=jn(e);return{...e,phase:t,connectionStatus:Mn(t)}}function Pn(e){return e===`start-service`?`starting-service`:e===`stop-service`?`stopping-service`:e===`restart-service`?`restarting-service`:`restarting-app`}function Fn(e){return e===`start-service`?`starting`:e===`stop-service`?`stopping`:e===`restart-service`?`restarting`:null}function J(e){if(!e)return null;let t=An[e.trim()];return t?o(t):e}function In(e){let{action:t,message:n}=e;return{action:t,lifecycle:Pn(t),serviceState:Fn(t),message:n}}function Ln(e){if(e.runtimeControlError)return{tone:`inactive`,title:o(`runtimeControlLoadFailed`),description:e.runtimeControlError,reasonLines:[],actionLabel:null,isBusy:!1};if(!e.runtimeControlView)return{tone:`inactive`,title:o(`runtimeStatusLoadingTitle`),description:o(`runtimeStatusLoadingDescription`),reasonLines:[],actionLabel:null,isBusy:!!e.activeSystemAction};if(e.activeSystemAction)return{tone:`attention`,title:o(`runtimeControlTitle`),description:J(e.activeSystemAction.message)||J(e.runtimeControlView.message)||o(`runtimeControlDescription`),reasonLines:[],actionLabel:null,isBusy:!0};let t=e.runtimeControlView;return t.pendingRestart?{tone:`attention`,title:o(`runtimeStatusPendingRestartTitle`),description:o(`runtimeStatusPendingRestartDescription`),reasonLines:t.pendingRestart.changedPaths.length>0?t.pendingRestart.changedPaths.map(e=>o(`runtimeStatusPendingRestartReasonItem`).replace(`{path}`,e)):[t.pendingRestart.message],actionLabel:t.canRestartService.available?o(`runtimeStatusRestartAction`):null,isBusy:!1}:{tone:t.lifecycle===`healthy`?`healthy`:`inactive`,title:o(`runtimeStatusHealthyTitle`),description:o(`runtimeStatusHealthyDescription`),reasonLines:[],actionLabel:null,isBusy:!1}}function Rn(e){let t=e.activeSystemAction,n=e.runtimeControlView;return{controlView:n,visibleLifecycle:t?.lifecycle??n?.lifecycle??`healthy`,visibleServiceState:t?.serviceState??n?.serviceState??`unknown`,visibleMessage:J(t?.message)||J(e.lastSystemActionError)||J(n?.message)||o(`runtimeControlDescription`),busyAction:t?.action??null,busy:!!t,pendingRestart:n?.pendingRestart??null,errorMessage:J(e.lastSystemActionError)||J(e.runtimeControlError)||null}}var zn={lifecyclePhase:`cold-starting`,hasReachedReady:!1,lastReadyAt:null,recoveryStartedAt:null,bootstrapStatus:null,lastError:null,lastTransportError:null,runtimeControlView:null,runtimeControlError:null,activeSystemAction:null,lastSystemActionError:null},Y=c(e=>({state:zn,patchState:t=>e(e=>({state:{...e.state,...t}}))}));function Bn(e){if(e.length===0)throw Error(`AdaptiveCadence requires at least one stage.`);for(let t of e)if(t.delaysMs.length===0)throw Error(`AdaptiveCadence stage requires at least one delay.`)}var Vn=class{constructor(e){this.options=e,this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1,this.recordFailure=()=>{let e=this.clock();this.completed=!1,this.manualTriggerPending=!1,this.startedAt=this.startedAt??e,this.lastFailureAt=e,this.attempt+=1},this.recordSuccess=()=>{this.lastSuccessAt=this.clock(),this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.manualTriggerPending=!1,this.completed=!0},this.reset=()=>{this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1},this.requestManualTrigger=()=>{this.completed=!1,this.manualTriggerPending=!0},this.hasManualTrigger=()=>this.manualTriggerPending,this.getNextDelay=(e={})=>{if(this.manualTriggerPending)return e.consumeManualTrigger&&(this.manualTriggerPending=!1),this.options.manualTriggerDelayMs;if(this.completed)return this.options.successDelayMs;if(this.startedAt===null)return this.options.idleDelayMs;let t=this.resolveStage(this.clock()-this.startedAt);return t.delaysMs[Math.min(this.attempt-1,t.delaysMs.length-1)]},this.getSnapshot=()=>({attempt:this.attempt,startedAt:this.startedAt,lastFailureAt:this.lastFailureAt,lastSuccessAt:this.lastSuccessAt,manualTriggerPending:this.manualTriggerPending,completed:this.completed}),this.resolveStage=e=>this.options.stages.find(t=>t.untilElapsedMs===void 0||e<t.untilElapsedMs)??this.options.stages[this.options.stages.length-1],Bn(e.stages),this.clock=e.clock??(()=>Date.now())}},Hn=3e4,Un={idleDelayMs:1e3,manualTriggerDelayMs:0,successDelayMs:!1,stages:[{untilElapsedMs:3e4,delaysMs:[500,1e3,2e3,4e3,5e3]},{untilElapsedMs:5*6e4,delaysMs:[1e4,15e3,3e4]},{delaysMs:[6e4]}]};function Wn(e){return e instanceof Error?e.message:String(e??``)}function Gn(e){return e&&(e.ncpAgent.error?.trim()||e.lastError?.trim())||null}function Kn(e){return o(e===`start-service`?`runtimeControlStartingServiceHelp`:e===`restart-service`?`runtimeControlRestartingServiceHelp`:e===`stop-service`?`runtimeControlStoppingServiceHelp`:`runtimeControlRestartingAppHelp`)}var X=new class{constructor(){this.recoveryTimeoutId=null,this.runtimeBootstrapProbeCadence=new Vn(Un),this.getRuntimeBootstrapPollInterval=e=>{let{lifecyclePhase:t,activeSystemAction:n}=this.getState(),r=t===`recovering`||t===`stalled`||n?.lifecycle===`recovering`;return this.runtimeBootstrapProbeCadence.hasManualTrigger()?this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0}):!r&&e?.ncpAgent.state===`ready`?!1:this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0})},this.getRuntimeControl=async()=>this.decorateForCurrentEnvironment(await Ja()),this.reportBootstrapStatus=e=>{let t=this.getState(),n=Gn(e);if(e.ncpAgent.state===`ready`){this.transitionToReady(e);return}if(!t.hasReachedReady){if(e.ncpAgent.state===`error`||e.phase===`error`){this.transitionToStartupFailed(n,e);return}this.transitionToColdStarting(e);return}this.transitionToRecovering(n,e)},this.reportBootstrapQueryError=e=>{let t=Wn(e).trim();if(t&&!this.reportTransportFailure(t)){if(this.getState().hasReachedReady){this.transitionToRecovering(t);return}this.transitionToStartupFailed(t)}},this.reportTransportFailure=e=>{let t=Wn(e).trim();return ai(t)?this.getState().hasReachedReady?(this.transitionToRecovering(t),!0):(this.runtimeBootstrapProbeCadence.recordFailure(),this.patchState({lastTransportError:t}),!0):!1},this.handleConnectionInterrupted=e=>{let t=this.getState(),n=e?.trim()||null;if(!t.hasReachedReady){this.runtimeBootstrapProbeCadence.recordFailure(),n&&this.patchState({lastTransportError:n});return}this.transitionToRecovering(n)},this.handleConnectionRestored=()=>{let e=this.getState();e.bootstrapStatus?.ncpAgent.state===`ready`&&this.transitionToReady(e.bootstrapStatus)},this.reportRuntimeControlView=e=>{this.patchState({runtimeControlView:e,runtimeControlError:null})},this.reportRuntimeControlError=e=>{let t=Wn(e).trim();t&&this.patchState({runtimeControlError:t})},this.runRuntimeControlAction=async e=>{this.patchState({activeSystemAction:In({action:e,message:Kn(e)}),lastSystemActionError:null});try{let t=await this.executeRuntimeControlAction(e);if(e===`restart-app`)return t;if(e===`stop-service`)return await this.refreshRuntimeControlView(),this.clearActiveSystemAction(),t;this.patchState({activeSystemAction:{action:e,lifecycle:`recovering`,serviceState:null,message:o(`runtimeControlRecoveringHelp`)}}),this.runtimeBootstrapProbeCadence.requestManualTrigger();let n=await this.waitForRecovery();return this.syncRuntimeControlQueryCache(n),this.reportRuntimeControlView(n),this.clearActiveSystemAction(),t}catch(t){let n=t instanceof Error?t.message:o(`runtimeControlActionFailed`);throw this.patchState({activeSystemAction:{action:e,lifecycle:`failed`,serviceState:e===`stop-service`?`running`:e===`restart-app`?null:`unknown`,message:n},lastSystemActionError:n}),t}},this.getStatusView=()=>Nn(this.getState()),this.requestRuntimeBootstrapProbeNow=()=>{this.runtimeBootstrapProbeCadence.requestManualTrigger(),Et.refetchQueries({queryKey:[`runtime-bootstrap-status`]})},this.resetForTests=()=>{this.clearRecoveryTimeout(),this.runtimeBootstrapProbeCadence.reset(),Y.setState({state:zn})},this.getState=()=>Y.getState().state,this.patchState=e=>{Y.getState().patchState(e)},this.transitionToColdStarting=e=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`cold-starting`,recoveryStartedAt:null,bootstrapStatus:e,lastError:null})},this.transitionToStartupFailed=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`startup-failed`,recoveryStartedAt:null,bootstrapStatus:t??this.getState().bootstrapStatus,lastError:e})},this.transitionToRecovering=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure();let n=this.getState();if(!n.hasReachedReady){this.patchState({lastTransportError:e?.trim()||n.lastTransportError});return}n.lifecyclePhase!==`recovering`&&n.lifecyclePhase!==`stalled`&&(this.clearRecoveryTimeout(),this.recoveryTimeoutId=window.setTimeout(()=>{this.recoveryTimeoutId=null,this.getState().lifecyclePhase===`recovering`&&this.patchState({lifecyclePhase:`stalled`})},Hn)),this.patchState({lifecyclePhase:n.lifecyclePhase===`stalled`?`stalled`:`recovering`,recoveryStartedAt:n.recoveryStartedAt??Date.now(),bootstrapStatus:t??n.bootstrapStatus,lastError:e?.trim()||n.lastError,lastTransportError:e?.trim()||n.lastTransportError})},this.transitionToReady=e=>{this.runtimeBootstrapProbeCadence.recordSuccess();let t=this.getState(),n=t.lifecyclePhase===`recovering`||t.lifecyclePhase===`stalled`;this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`ready`,hasReachedReady:!0,lastReadyAt:Date.now(),recoveryStartedAt:null,bootstrapStatus:e,lastError:null,lastTransportError:null}),n&&Et.refetchQueries({type:`active`})},this.executeRuntimeControlAction=async e=>{let t=this.getDesktopBridge();if(e===`restart-service`&&t&&typeof t.restartService==`function`){let e=await t.restartService();return{accepted:e.accepted,action:`restart-service`,lifecycle:e.lifecycle,message:e.message}}if(e===`start-service`)return await Ya();if(e===`stop-service`)return await Za();if(e===`restart-app`){if(!t||typeof t.restartApp!=`function`)throw Error(o(`runtimeRestartAppUnavailable`));let e=await t.restartApp();return{accepted:e.accepted,action:`restart-app`,lifecycle:e.lifecycle,message:e.message}}return await Xa()},this.waitForRecovery=async()=>{let e=Date.now()+25e3,t=null;for(;Date.now()<e;)try{return await this.getRuntimeControl()}catch(e){t=e,await new Promise(e=>{window.setTimeout(e,1500)})}throw t instanceof Error?t:Error(o(`runtimeRecoveryTimedOut`))},this.refreshRuntimeControlView=async()=>{try{let e=await this.getRuntimeControl();this.syncRuntimeControlQueryCache(e),this.reportRuntimeControlView(e)}catch(e){this.reportRuntimeControlError(e)}},this.syncRuntimeControlQueryCache=e=>{Et.setQueryData([`runtime-control`],e)},this.clearActiveSystemAction=()=>{this.patchState({activeSystemAction:null,lastSystemActionError:null})},this.clearRecoveryTimeout=()=>{this.recoveryTimeoutId!==null&&(window.clearTimeout(this.recoveryTimeoutId),this.recoveryTimeoutId=null)},this.decorateForCurrentEnvironment=e=>{let t=this.getDesktopBridge();return!t||typeof t.restartApp!=`function`?e:{...e,environment:`desktop-embedded`,serviceState:`running`,canStartService:{available:!1,requiresConfirmation:!1,impact:`none`},canStopService:{available:!1,requiresConfirmation:!0,impact:`brief-ui-disconnect`},canRestartApp:{available:!0,requiresConfirmation:!0,impact:`full-app-relaunch`},ownerLabel:o(`runtimeControlEnvironmentDesktop`),managementHint:o(`runtimeControlDesktopServiceHint`)}},this.getDesktopBridge=()=>typeof window>`u`?null:window.nextclawDesktop??null}};function qn(){let e=Xe({queryKey:[`runtime-bootstrap-status`],queryFn:()=>wi({timeoutMs:5e3}),refetchInterval:e=>X.getRuntimeBootstrapPollInterval(e.state.data),retry:!1}),t=Xe({queryKey:[`runtime-control`],queryFn:async()=>await X.getRuntimeControl(),staleTime:5e3});(0,z.useEffect)(()=>{e.data&&X.reportBootstrapStatus(e.data)},[e.data]),(0,z.useEffect)(()=>{e.error&&X.reportBootstrapQueryError(e.error)},[e.error]),(0,z.useEffect)(()=>{t.data&&X.reportRuntimeControlView(t.data)},[t.data]),(0,z.useEffect)(()=>{t.error&&X.reportRuntimeControlError(t.error)},[t.error])}function Jn(){return Nn(Y(e=>e.state))}function Yn(){return Ln(Y(e=>e.state))}function Xn(){return Rn(Y(e=>e.state))}var Z=c(()=>({supported:!1,initialized:!1,busyAction:null,snapshot:null})),Zn=class{constructor(e){this.desktopApi=e,this.kind=`desktop-bridge`,this.subscribe=e=>this.desktopApi.onUpdateStateChanged(e),this.getState=async()=>await this.desktopApi.getUpdateState(),this.checkForUpdates=async()=>await this.desktopApi.checkForUpdates(),this.downloadUpdate=async()=>await this.desktopApi.downloadUpdate(),this.applyDownloadedUpdate=async()=>await this.desktopApi.applyDownloadedUpdate(),this.updateChannel=async e=>await this.desktopApi.updateChannel(e)}},Qn=class{constructor(){this.kind=`runtime-host`,this.getState=async()=>await $a(),this.checkForUpdates=async()=>await eo(),this.downloadUpdate=async()=>await to(),this.applyDownloadedUpdate=async()=>await no(),this.updateChannel=async e=>await ro(e)}},$n=new class{constructor(){this.unsubscribe=null,this.subscriptionCount=0,this.source=null,this.start=async()=>{this.subscriptionCount+=1;let e=this.resolveSource();if(this.source=e,!e){Z.setState({supported:!1,initialized:!0,snapshot:null});return}e.kind===`desktop-bridge`&&!this.unsubscribe&&(this.unsubscribe=e.subscribe(e=>{Z.setState({supported:!0,initialized:!0,snapshot:e})})),Z.setState({supported:!0,initialized:!1});try{let t=await e.getState();Z.setState({supported:!0,initialized:!0,snapshot:t})}catch(t){if(e.kind===`runtime-host`&&this.isUnsupportedError(t)){Z.setState({supported:!1,initialized:!0,snapshot:null});return}Z.setState({supported:!0,initialized:!0}),U.error(`${o(`runtimeUpdatesLoadFailed`)}: ${this.getErrorMessage(t)}`)}},this.stop=()=>{this.subscriptionCount=Math.max(0,this.subscriptionCount-1),!(this.subscriptionCount>0)&&(this.unsubscribe?.(),this.unsubscribe=null,this.source=null)},this.reportSnapshot=e=>{this.source?.kind!==`desktop-bridge`&&Z.setState({supported:!0,initialized:!0,snapshot:e})},this.refreshAfterRealtimeReconnect=async()=>{this.source?.kind===`runtime-host`&&await this.refreshSnapshot()},this.checkForUpdates=async()=>{let e;try{e=await this.runSnapshotCommand(`checking`,o(`runtimeUpdatesCheckFailed`),async e=>await e.checkForUpdates())}catch{return}if(e.status===`up-to-date`){U.success(o(`runtimeUpdatesAlreadyLatest`));return}if(e.status===`update-available`){U.success(o(`runtimeUpdatesAvailable`).replace(`{version}`,e.availableVersion??o(`runtimeUpdatesUnknownVersion`)));return}e.status===`downloaded`&&U.success(o(`runtimeUpdatesReadyToApply`))},this.downloadUpdate=async()=>{try{await this.runSnapshotCommand(`downloading`,o(`runtimeUpdatesDownloadFailed`),async e=>await e.downloadUpdate())}catch{return}},this.applyDownloadedUpdate=async()=>{try{await this.runSnapshotCommand(`applying`,o(`runtimeUpdatesApplyFailed`),async e=>await e.applyDownloadedUpdate())}catch{return}},this.updateNow=async()=>{let e=Z.getState().snapshot;if(!(e?.status!==`update-available`&&e?.status!==`downloaded`))try{await this.runSnapshotCommand(`updating`,o(`runtimeUpdatesUpdateFailed`),async t=>{let n=e.status===`downloaded`?e:await t.downloadUpdate();return Z.setState({snapshot:n}),n.status===`downloaded`?await t.applyDownloadedUpdate():n})}catch{return}},this.updateChannel=async e=>{if(Z.getState().snapshot?.channel===e)return;let t;try{t=await this.runSnapshotCommand(`switching-channel`,o(`runtimeUpdatesChannelChangeFailed`),async t=>await t.updateChannel(e))}catch{return}if(t.status===`update-available`&&t.availableVersion){U.success(o(`runtimeUpdatesChannelChangedWithUpdate`).replace(`{channel}`,this.getChannelLabel(e)).replace(`{version}`,t.availableVersion));return}U.success(o(`runtimeUpdatesChannelChanged`).replace(`{channel}`,this.getChannelLabel(e)))},this.refreshSnapshot=async()=>{if(!(!this.source||this.source.kind!==`runtime-host`))try{let e=await this.source.getState();Z.setState({supported:!0,initialized:!0,snapshot:e})}catch{}},this.runSnapshotCommand=async(e,t,n)=>{let r=this.source??this.resolveSource();if(!r)throw Error(o(`runtimeUpdatesUnavailableDescription`));this.source=r,Z.setState({busyAction:e});try{let e=await n(r);return Z.setState({snapshot:e}),e}catch(e){throw U.error(`${t}: ${this.getErrorMessage(e)}`),e}finally{Z.setState({busyAction:null})}},this.resolveSource=()=>{let e=this.getDesktopApi();return e?new Zn(e):new Qn},this.getDesktopApi=()=>typeof window>`u`?null:window.nextclawDesktop??null,this.isUnsupportedError=e=>{let t=this.getErrorMessage(e).toLowerCase();return t.includes(`404`)||t.includes(`not found`)||t.includes(`endpoint not found`)},this.getErrorMessage=e=>e instanceof Error?e.message:o(`error`),this.getChannelLabel=e=>o(e===`beta`?`desktopUpdatesChannelBeta`:`desktopUpdatesChannelStable`)}},er=`https://docs.nextclaw.io/`;function tr(e,t){let n=t===`zh-CN`?`en-US`:`zh-CN`;return e?.[t]?.trim()||e?.[n]?.trim()||null}function nr(e){let t=e.releaseNotesUrl?.trim(),n=(e.availableVersion??e.downloadedVersion)?.trim();return t?rr(n,t):null}function rr(e,t=er){let n=e?.trim();if(!n||!/^[0-9A-Za-z.-]+$/.test(n))return null;try{return new URL(`/release-notes/nextclaw-v${n}.json`,t).toString()}catch{return null}}function ir(e,t){return tr(e?.links?.html,t)}function ar(e){let t=e.releaseNotesUrl?.trim(),n=(e.downloadedVersion??e.availableVersion)?.trim();return!t||!n?null:{url:t,versionLabel:`v${n}`}}function or(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function sr(e){return or(e)?typeof e[`zh-CN`]==`string`||typeof e[`en-US`]==`string`:!1}function cr(e){return!or(e)||!sr(e.title)?!1:e.body===void 0||sr(e.body)}function lr(e){return or(e)&&typeof e.kind==`string`&&Array.isArray(e.items)&&e.items.every(cr)&&(e.title===void 0||sr(e.title))}function ur(e){return or(e)&&(e.html===void 0||sr(e.html))}function dr(e){return or(e)&&Array.isArray(e.sections)&&e.sections.every(lr)&&(e.title===void 0||sr(e.title))&&(e.summary===void 0||sr(e.summary))&&(e.links===void 0||ur(e.links))}async function fr(e){let t=await fetch(e,{cache:`no-store`,headers:{accept:`application/json`}});if(!t.ok)throw Error(`Release notes request failed with HTTP ${t.status}.`);let n=await t.json();if(!dr(n))throw Error(`Release notes payload has an unsupported shape.`);return n}function pr(){return s()===`zh`?`zh-CN`:`en-US`}function mr(e){let t=rr(e),n=pr(),r=ir(Xe({queryKey:[`current-release-notes`,t],queryFn:async()=>await fr(t??``),enabled:!!t,retry:!1,staleTime:300*1e3}).data,n),i=e?.trim();return r&&i?{url:r,versionLabel:`v${i}`}:null}var hr=z.forwardRef(({className:e,checked:t=!1,onCheckedChange:n,thumbClassName:r,...a},o)=>(0,B.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,"data-state":t?`checked`:`unchecked`,ref:o,className:i(`switch-track peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:cursor-not-allowed disabled:opacity-50`,t?`border-primary/70 bg-primary`:`border-border/60 bg-muted hover:bg-[var(--interaction-hover)]`,e),onClick:()=>n?.(!t),...a,children:(0,B.jsx)(`span`,{"data-state":t?`checked`:`unchecked`,className:i(`switch-thumb pointer-events-none block h-5 w-5 rounded-full bg-card shadow-md ring-1 ring-border/50 transition-transform duration-fast`,t?`translate-x-5`:`translate-x-0`,r)})}));hr.displayName=`Switch`;var gr={maxRetries:8,startupTimeoutMs:2e3,settledTimeoutMs:5e3,retryBaseDelayMs:500,retryMaxDelayMs:3e3};function _r(e){return e instanceof Error?ai(e.message):!1}function vr(e,t){return e>=gr.maxRetries?!1:_r(t)}function yr(e){return Math.min(gr.retryMaxDelayMs,gr.retryBaseDelayMs*2**Math.max(0,e-1))}function br(){let[e,t]=(0,z.useState)(!1),n=Xe({queryKey:[`auth-status`],queryFn:()=>_i({timeoutMs:e?gr.settledTimeoutMs:gr.startupTimeoutMs}),staleTime:5e3,retry:vr,retryDelay:yr});return(0,z.useEffect)(()=>{n.isSuccess&&!e&&t(!0)},[e,n.isSuccess]),n}function xr(e){return Promise.all([e.invalidateQueries({queryKey:[`auth-status`]}),e.invalidateQueries({queryKey:[`app-meta`]}),e.invalidateQueries({queryKey:[`config`]}),e.invalidateQueries({queryKey:[`config-meta`]}),e.invalidateQueries({queryKey:[`config-schema`]}),e.invalidateQueries({queryKey:[`sessions`]}),e.invalidateQueries({queryKey:[`session-history`]}),e.invalidateQueries({queryKey:[`chat-runs`]}),e.invalidateQueries({queryKey:[`cron-jobs`]})])}function Sr(){let e=V();return Ze({mutationFn:vi,onSuccess:async()=>{await xr(e),U.success(o(`authSetupSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function Cr(){let e=V();return Ze({mutationFn:yi,onSuccess:async()=>{await xr(e),U.success(o(`authLoginSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function wr(){let e=V();return Ze({mutationFn:bi,onSuccess:async()=>{await xr(e),U.success(o(`authLogoutSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function Tr(){let e=V();return Ze({mutationFn:xi,onSuccess:async()=>{await xr(e),U.success(o(`authPasswordUpdated`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function Er(){let e=V();return Ze({mutationFn:Si,onSuccess:async(t,n)=>{await xr(e),U.success(n.enabled?o(`authEnabledSuccess`):o(`authDisabledSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}var Dr=8;function Or(e){return e.trim().length>=Dr}function kr(e,t){return e===t?!0:(U.error(o(`authPasswordMismatch`)),!1)}function Ar({children:e,contentClassName:t=`space-y-6`}){return(0,B.jsx)(Lt,{children:(0,B.jsx)(`div`,{className:`${t} p-4`,children:e})})}function jr({canSubmitSetup:e,isPending:t,onSubmit:n,setSetupConfirmPassword:r,setSetupPassword:i,setSetupUsername:a,setupConfirmPassword:s,setupPassword:c,setupUsername:l}){return(0,B.jsxs)(Ar,{contentClassName:`space-y-5`,children:[(0,B.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authSetupTitle`)}),(0,B.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:o(`authSetupDescription`)})]}),(0,B.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-setup-username`,children:o(`authUsername`)}),(0,B.jsx)(G,{id:`auth-setup-username`,value:l,onChange:e=>a(e.target.value),placeholder:o(`authUsernamePlaceholder`)})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-setup-password`,children:o(`authPassword`)}),(0,B.jsx)(G,{id:`auth-setup-password`,type:`password`,value:c,onChange:e=>i(e.target.value),placeholder:o(`authPasswordPlaceholder`)})]})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-setup-confirm`,children:o(`authConfirmPassword`)}),(0,B.jsx)(G,{id:`auth-setup-confirm`,type:`password`,value:s,onChange:e=>r(e.target.value),placeholder:o(`authConfirmPasswordPlaceholder`)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authPasswordMinLengthHint`)})]}),(0,B.jsx)(jt,{type:`button`,disabled:!e,onClick:()=>void n(),children:o(t?`authSettingUp`:`authSetupAction`)})]})}function Mr({authenticated:e,canUpdatePassword:t,enabled:n,isLoggingOut:r,isUpdatingEnabled:i,isUpdatingPassword:a,nextConfirmPassword:s,nextPassword:c,onEnabledChange:l,onLogout:u,onPasswordUpdate:d,setNextConfirmPassword:f,setNextPassword:p,username:m}){return(0,B.jsxs)(Ar,{children:[(0,B.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,B.jsxs)(`div`,{className:`flex flex-col gap-4 md:flex-row md:items-start md:justify-between`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authStatusLabel`)}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`authStatusConfiguredUser`).replace(`{username}`,m??``)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authUsernameFixedHelp`)})]}),(0,B.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-muted px-3 py-1 text-xs font-medium text-foreground`,children:o(n?`enabled`:`disabled`)})]}),(0,B.jsxs)(`div`,{className:`mt-4 flex flex-col gap-4 border-t border-border/55 pt-4 md:flex-row md:items-center md:justify-between`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authEnableLabel`)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n?`authEnableOnHelp`:`authEnableOffHelp`)})]}),(0,B.jsx)(hr,{checked:n,disabled:i,onCheckedChange:e=>{l(e)}})]})]}),(0,B.jsxs)(`div`,{className:`space-y-4 rounded-xl bg-background/65 p-4`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authPasswordSectionTitle`)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authPasswordSectionDescription`)})]}),(0,B.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-password-next`,children:o(`authPassword`)}),(0,B.jsx)(G,{id:`auth-password-next`,type:`password`,value:c,onChange:e=>p(e.target.value),placeholder:o(`authPasswordPlaceholder`)})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-password-confirm`,children:o(`authConfirmPassword`)}),(0,B.jsx)(G,{id:`auth-password-confirm`,type:`password`,value:s,onChange:e=>f(e.target.value),placeholder:o(`authConfirmPasswordPlaceholder`)})]})]}),(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,B.jsx)(jt,{type:`button`,disabled:!t,onClick:()=>void d(),children:o(a?`authPasswordUpdating`:`authPasswordAction`)}),n&&e?(0,B.jsx)(jt,{type:`button`,variant:`outline`,disabled:r,onClick:()=>void u(),children:o(r?`authLoggingOut`:`authLogoutAction`)}):null]}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authSessionMemoryNotice`)})]})]})}function Nr(){let e=br(),t=Sr(),n=Er(),r=Tr(),i=wr(),[a,s]=(0,z.useState)(``),[c,l]=(0,z.useState)(``),[u,d]=(0,z.useState)(``),[f,p]=(0,z.useState)(``),[m,h]=(0,z.useState)(``),g=e.data,_=a.trim().length>0&&Or(c)&&c===u&&!t.isPending,v=Or(f)&&f===m&&!r.isPending;return e.isLoading&&!g?(0,B.jsx)(Ar,{contentClassName:`text-sm text-gray-500`,children:o(`loading`)}):e.isError||!g?(0,B.jsxs)(Ar,{contentClassName:`space-y-4`,children:[(0,B.jsx)(`p`,{className:`text-sm text-gray-500`,children:o(`authStatusLoadFailed`)}),(0,B.jsx)(jt,{variant:`outline`,onClick:()=>void e.refetch(),children:o(`authRetryStatus`)})]}):g.configured?(0,B.jsx)(Mr,{authenticated:g.authenticated,enabled:g.enabled,username:g.username,nextPassword:f,setNextPassword:p,nextConfirmPassword:m,setNextConfirmPassword:h,canUpdatePassword:v,isUpdatingEnabled:n.isPending,isUpdatingPassword:r.isPending,isLoggingOut:i.isPending,onEnabledChange:async e=>{try{await n.mutateAsync({enabled:e})}catch{}},onPasswordUpdate:async()=>{if(kr(f,m))try{await r.mutateAsync({password:f}),p(``),h(``)}catch{}},onLogout:async()=>{try{await i.mutateAsync()}catch{}}}):(0,B.jsx)(jr,{setupUsername:a,setSetupUsername:s,setupPassword:c,setSetupPassword:l,setupConfirmPassword:u,setSetupConfirmPassword:d,canSubmitSetup:_,isPending:t.isPending,onSubmit:async()=>{if(kr(c,u))try{await t.mutateAsync({username:a.trim(),password:c}),l(``),d(``)}catch{}}})}function Pr(){return(0,B.jsx)(Pt,{title:o(`authSecurityTitle`),description:o(`authSecurityDescription`),children:(0,B.jsx)(Nr,{})})}function Fr(e){return e.replace(/\s+/g,` `).trim().slice(0,200)}function Ir(e,t){if(t===404&&e.startsWith(`/api/providers/`)&&e.endsWith(`/test`))return`Provider test endpoint is missing. This usually means nextclaw runtime version is outdated.`;if(t===401||t===403)return`Authentication failed. Check apiKey and custom headers.`;if(t===429)return`Rate limited by upstream provider. Retry later or switch model/provider.`;if(t>=500)return`Upstream service error. Retry later and inspect server logs if it persists.`}function Lr(e){if(e instanceof Error){let t=e.name?.trim()||`Error`,n=e.message?.trim()||`Unknown error`;return{summary:`${t}: ${n}`,details:{errorName:t,errorMessage:n,...e.stack?.trim()?{errorStack:e.stack.trim()}:{}}}}return{summary:String(e??`Unknown error`),details:{errorName:`NonError`,errorMessage:String(e??`Unknown error`)}}}async function Rr(e,t,n={}){let r=`${e}${t}`,i=(n.method||`GET`).toUpperCase(),a;try{let e=new Headers(n.headers);!(n.body instanceof FormData)&&!e.has(`Content-Type`)&&e.set(`Content-Type`,`application/json`),a=await fetch(r,{credentials:`include`,headers:e,...n})}catch(e){let n=Lr(e);return X.reportTransportFailure(n.summary),{ok:!1,error:{code:`NETWORK_ERROR`,message:`Fetch failed on ${i} ${t} | ${n.summary}`,details:{method:i,endpoint:t,url:r,...n.details}}}}let o=await a.text(),s=null;if(o)try{s=JSON.parse(o)}catch{}if(!s){let e=o?Fr(o):``,n=Ir(t,a.status),s=[`Non-JSON response (${a.status} ${a.statusText}) on ${i} ${t}`];return e&&s.push(`body=${e}`),n&&s.push(`hint=${n}`),{ok:!1,error:{code:`INVALID_RESPONSE`,message:s.join(` | `),details:{status:a.status,statusText:a.statusText,method:i,endpoint:t,url:r,bodySnippet:e||void 0,hint:n}}}}return a.ok,s}function zr(e){let t=e.split(`
|
|
7
|
+
`),r=n.pop()??``;for(let e of n){let n=Wt(e);if(n?.event!==`ncp-event`)continue;let r=Gt(n.data);r&&t(r)}return r}},qt=class{constructor(e,t){this.requestService=e,this.baseUrl=t}list=async()=>(await this.requestService.get(`/api/agents`)).agents;create=async e=>await this.requestService.post(`/api/agents`,e);update=async(e,t)=>await this.requestService.put(`/api/agents/${encodeURIComponent(e)}`,t);delete=async e=>await this.requestService.delete(`/api/agents/${encodeURIComponent(e)}`);resolveAvatarUrl=e=>Bt(this.baseUrl,`/api/agents/${encodeURIComponent(e)}/avatar`)},Jt=class{constructor(e){this.requestService=e}fetchMeta=async()=>await this.requestService.get(`/api/app/meta`);fetchBootstrapStatus=async(e={})=>await this.requestService.get(`/api/runtime/bootstrap-status`,e)},Yt=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(e.includeStorageUsage===!1?`/api/app-packages?includeStorageUsage=false`:`/api/app-packages`);get=async e=>await this.requestService.get(`/api/app-packages/${encodeURIComponent(e)}`);listOperations=async()=>await this.requestService.get(`/api/app-package-operations`);startInstall=async e=>await this.requestService.post(`/api/app-package-operations/install`,e);startUpdate=async(e,t={})=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/update`,t);startRollback=async(e,t)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/rollback`,{version:t});startUninstall=async(e,t=!1)=>await this.requestService.post(`/api/app-package-operations/${encodeURIComponent(e)}/uninstall`,{purgeData:t});install=async e=>await this.requestService.post(`/api/app-packages/install`,e);enable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/enable`);disable=async e=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/disable`);update=async(e,t={})=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/update`,t);rollback=async(e,t)=>await this.requestService.post(`/api/app-packages/${encodeURIComponent(e)}/rollback`,{version:t});uninstall=async(e,t=!1)=>await this.requestService.request(`/api/app-packages/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}})},Xt=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/app-data`);deleteRetained=async(e,t)=>await this.requestService.request(`/api/app-data/${encodeURIComponent(e)}`,{method:`DELETE`,body:{confirmAppId:t}})},Zt=class{constructor(e){this.requestService=e}fetchStatus=async(e={})=>await this.requestService.get(`/api/auth/status`,{...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}});setup=async e=>await this.requestService.post(`/api/auth/setup`,e);login=async e=>await this.requestService.post(`/api/auth/login`,e);logout=async()=>await this.requestService.post(`/api/auth/logout`,{});updatePassword=async e=>await this.requestService.put(`/api/auth/password`,e);updateEnabled=async e=>await this.requestService.put(`/api/auth/enabled`,e)},Qt=class{constructor(e){this.requestService=e}start=async(e,t={})=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/start`,t);poll=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/poll`,t);connect=async(e,t)=>await this.requestService.post(`/api/config/channels/${encodeURIComponent(e)}/auth/connect`,t)},$t=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/config`);fetchMeta=async()=>await this.requestService.get(`/api/config/meta`);fetchSchema=async()=>await this.requestService.get(`/api/config/schema`);updateModel=async e=>await this.requestService.put(`/api/config/model`,e);updateSearch=async e=>await this.requestService.put(`/api/config/search`,e);updateChannel=async(e,t)=>await this.requestService.put(`/api/config/channels/${encodeURIComponent(e)}`,t);updateRuntime=async e=>await this.requestService.put(`/api/config/runtime`,e);updateSecrets=async e=>await this.requestService.put(`/api/config/secrets`,e);updateProductAnalytics=async e=>await this.requestService.put(`/api/config/product-analytics`,e);fetchProductAnalyticsStatus=async()=>await this.requestService.get(`/api/config/product-analytics/status`);executeAction=async(e,t={})=>await this.requestService.post(`/api/config/actions/${encodeURIComponent(e)}/execute`,t);fetchChatSessionTypes=async()=>await this.requestService.get(`/api/ncp/session-types`);fetchCronJobs=async(e={})=>await this.requestService.get(`/api/cron`,{query:{all:e.all?`1`:void 0,limit:e.limit,offset:e.offset,query:e.query,status:e.status}});deleteCronJob=async e=>await this.requestService.delete(`/api/cron/${encodeURIComponent(e)}`);setCronJobEnabled=async(e,t)=>await this.requestService.put(`/api/cron/${encodeURIComponent(e)}/enable`,t);runCronJob=async(e,t={})=>await this.requestService.post(`/api/cron/${encodeURIComponent(e)}/run`,t)},en=class{constructor(e){this.requestService=e}fetchItems=async e=>await this.requestService.get(`${tn(e.type)}/items`,{query:nn(e)});fetchItem=async(e,t)=>await this.requestService.get(`${tn(t)}/items/${encodeURIComponent(e)}`);fetchSkillContent=async e=>await this.requestService.get(`/api/marketplace/skills/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e,t={})=>await this.requestService.get(`${tn(e)}/recommendations`,{query:{...t.scene?.trim()?{scene:t.scene.trim()}:{},...typeof t.limit==`number`&&Number.isFinite(t.limit)?{limit:Math.max(1,Math.trunc(t.limit))}:{}}});fetchSkillScenes=async()=>await this.requestService.get(`/api/marketplace/skills/scenes`);install=async e=>await this.requestService.post(`${tn(rn(e.type))}/install`,e);fetchInstalled=async e=>await this.requestService.get(`${tn(e)}/installed`);manage=async e=>await this.requestService.post(`${tn(rn(e.type))}/manage`,e)};function tn(e){return e===`skill`?`/api/marketplace/skills`:`/api/marketplace/mcp`}function nn(e){let{page:t,pageSize:n,q:r,scene:i,sort:a,tag:o}=e,s={};return r?.trim()&&(s.q=r.trim()),o?.trim()&&(s.tag=o.trim()),i?.trim()&&(s.scene=i.trim()),a&&(s.sort=a),typeof t==`number`&&Number.isFinite(t)&&(s.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(s.pageSize=Math.max(1,Math.trunc(n))),Object.keys(s).length>0?s:void 0}function rn(e){if(!e)throw Error(`Marketplace request type is required.`);return e}var an=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/inbox/deliveries`);get=async e=>await this.requestService.get(this.deliveryPath(e));updateState=async(e,t)=>await this.requestService.request(this.deliveryPath(e),{method:`PATCH`,body:{action:t}});delete=async e=>(await this.requestService.delete(this.deliveryPath(e))).deleted;deliveryPath=e=>`/api/inbox/deliveries/${encodeURIComponent(e)}`},on=class{constructor(e){this.requestService=e}fetchItems=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/items`,{query:sn(e)});fetchInstalled=async()=>await this.requestService.get(`/api/marketplace/mcp/installed`);fetchItem=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}`);fetchContent=async e=>await this.requestService.get(`/api/marketplace/mcp/items/${encodeURIComponent(e)}/content`);fetchRecommendations=async(e={})=>await this.requestService.get(`/api/marketplace/mcp/recommendations`,{query:{...e.scene?.trim()?{scene:e.scene.trim()}:{},...typeof e.limit==`number`&&Number.isFinite(e.limit)?{limit:Math.max(1,Math.trunc(e.limit))}:{}}});install=async e=>await this.requestService.post(`/api/marketplace/mcp/install`,e);manage=async e=>await this.requestService.post(`/api/marketplace/mcp/manage`,e);doctor=async e=>await this.requestService.post(`/api/marketplace/mcp/doctor`,{name:e})};function sn(e){let{page:t,pageSize:n,q:r,sort:i,tag:a}=e,o={};return r?.trim()&&(o.q=r.trim()),a?.trim()&&(o.tag=a.trim()),i&&(o.sort=i),typeof t==`number`&&Number.isFinite(t)&&(o.page=Math.max(1,Math.trunc(t))),typeof n==`number`&&Number.isFinite(n)&&(o.pageSize=Math.max(1,Math.trunc(n))),Object.keys(o).length>0?o:void 0}var cn=`x-nextclaw-panel-bridge-session`;function ln(e){return e?{[cn]:e}:void 0}var un=class{constructor(e){this.requestService=e}listPanelApps=async()=>await this.requestService.get(`/api/panel-apps`);updatePanelAppPreferences=async(e,t)=>await this.requestService.request(`/api/panel-apps/${encodeURIComponent(e)}/preferences`,{method:`PATCH`,body:t});recordPanelAppOpened=async e=>await this.requestService.post(`/api/panel-apps/${encodeURIComponent(e)}/open`);deletePanelApp=async e=>await this.requestService.delete(`/api/panel-apps/${encodeURIComponent(e)}`);createBridgeSession=async e=>await this.requestService.post(`/api/panel-app-bridge-sessions`,e);deleteBridgeSession=async e=>await this.requestService.delete(`/api/panel-app-bridge-sessions/${encodeURIComponent(e)}`);grantClient=async e=>await this.requestService.post(`/api/panel-app-client-grants/${encodeURIComponent(e)}`,{});revokeClient=async e=>await this.requestService.delete(`/api/panel-app-client-grants/${encodeURIComponent(e)}`);sendAgentMessage=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/send`,e,{headers:ln(t.bridgeSessionToken)});generateAgentObject=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent/generate-object`,e,{headers:ln(t.bridgeSessionToken)});grantAgentCapability=async(e,t={})=>await this.requestService.post(`/api/panel-app-agent-capabilities/${encodeURIComponent(e)}/grant`,{},{headers:ln(t.bridgeSessionToken)})},dn=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/providers`);listTemplates=async()=>await this.requestService.get(`/api/provider-templates`);listModelCatalog=async()=>await this.requestService.get(`/api/provider-model-catalog`);update=async(e,t)=>await this.requestService.put(`/api/providers/${encodeURIComponent(e)}`,t);create=async(e={})=>await this.requestService.post(`/api/providers`,e);delete=async e=>await this.requestService.delete(`/api/providers/${encodeURIComponent(e)}`);testConnection=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/test`,t);discoverModels=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/models/discover`,t);startAuth=async(e,t={})=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/start`,t);pollAuth=async(e,t)=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/poll`,t);importAuthFromCli=async e=>await this.requestService.post(`/api/providers/${encodeURIComponent(e)}/auth/import-cli`,{})},fn=class{constructor(e){this.requestService=e}list=async()=>await this.requestService.get(`/api/projects`);create=async e=>await this.requestService.post(`/api/projects`,e);addExisting=async e=>await this.requestService.post(`/api/projects/existing`,e)},pn=class{baseUrl;transport;webSocketFactory;constructor(e){this.options=e,this.baseUrl=e.baseUrl,this.transport=e.transport,this.webSocketFactory=e.webSocketFactory}subscribe=(e,t={})=>{if(this.transport?.subscribe){let t=this.transport.subscribe(e);return{close:()=>{t()}}}let n=null,r=null,i=!1,a=Math.max(200,t.reconnectDelayMs??1e3),o=()=>{r!==null&&(clearTimeout(r),r=null)},s=t=>{e(t)},c=()=>{try{n=this.createSocket(Ht(this.baseUrl,`/ws`))}catch(e){t.onError?.(e),i||(r=setTimeout(c,a));return}n.onopen=()=>{s({type:`connection.open`})},n.onmessage=e=>{let t=this.parseEvent(e.data);t&&s(t)},n.onerror=e=>{t.onError?.(e),s({type:`connection.error`,payload:{message:`WebSocket error`}})},n.onclose=()=>{s({type:`connection.close`}),n=null,i||(o(),r=setTimeout(c,a))}};return c(),{close:()=>{i=!0,o(),n?.close(),n=null}}};createSocket=e=>{if(this.webSocketFactory)return this.webSocketFactory(e);if(typeof globalThis.WebSocket!=`function`)throw Error(`WebSocket is unavailable. Provide webSocketFactory when creating the client.`);return new globalThis.WebSocket(e)};parseEvent=e=>{if(typeof e!=`string`)return null;try{let t=JSON.parse(e);return t&&typeof t==`object`&&`type`in t?t:null}catch{return null}}},mn=class{constructor(e){this.requestService=e}fetchStatus=async()=>await this.requestService.get(`/api/remote/status`);fetchDoctor=async()=>await this.requestService.get(`/api/remote/doctor`);login=async e=>await this.requestService.post(`/api/remote/login`,e);startBrowserAuth=async(e={})=>await this.requestService.post(`/api/remote/auth/start`,e);pollBrowserAuth=async e=>await this.requestService.post(`/api/remote/auth/poll`,e);logout=async()=>await this.requestService.post(`/api/remote/logout`,{});updateAccountProfile=async e=>await this.requestService.put(`/api/remote/account/profile`,e);updateSettings=async e=>await this.requestService.put(`/api/remote/settings`,e);controlService=async e=>await this.requestService.post(`/api/remote/service/${e}`,{})},q=class extends Error{status;code;details;constructor(e){let{code:t,details:n,message:r,status:i}=e;super(r),this.name=`NextClawClientError`,this.status=i,this.code=t,this.details=n}};function hn(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function gn(e,t){return hn(e)?e[t]:void 0}var _n=class{baseUrl;fetchImpl;requestTimeoutMs;defaultHeaders;transport;constructor(e){this.options=e;let{baseUrl:t,fetchImpl:n,headers:r,requestTimeoutMs:i,token:a}=e;this.baseUrl=t,this.fetchImpl=Ut(n),this.requestTimeoutMs=Math.max(1e3,i??15e3),this.transport=e.transport,this.defaultHeaders={Accept:`application/json`,...r??{},...a?{Authorization:`Bearer ${a}`}:{}}}request=async(e,t={})=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t;if(this.transport)return await this.requestWithTransport(e,t);let c=new AbortController,l=Math.max(1e3,s??this.requestTimeoutMs),u=this.bindAbortSignal(c,o),d=setTimeout(()=>c.abort(),l),f={...this.defaultHeaders,...r??{}},p=this.normalizeRequestBody(n,f);try{let t=await this.fetchImpl(Bt(this.baseUrl,Vt(e,this.serializeQuery(a))),{method:i??`GET`,headers:f,body:p,signal:c.signal}),n=await t.json();if(!t.ok){let e=this.extractApiError(n);throw new q({message:e.message,status:t.status,code:e.code,details:e.details})}if(!this.isApiResponse(n))throw new q({message:`Unexpected NextClaw API response shape.`,status:t.status});if(!n.ok)throw new q({message:n.error.message,status:t.status,code:n.error.code,details:n.error.details});return n.data}catch(e){throw e instanceof q?e:e instanceof Error&&e.name===`AbortError`?new q({message:`NextClaw API request timed out after ${l}ms.`}):new q({message:e instanceof Error?e.message:`NextClaw API request failed.`})}finally{o?.removeEventListener(`abort`,u),clearTimeout(d)}};bindAbortSignal=(e,t)=>{let n=()=>e.abort(t?.reason);return t?t.aborted?(e.abort(t.reason),n):(t.addEventListener(`abort`,n,{once:!0}),n):n};requestWithTransport=async(e,t)=>{let{body:n,headers:r,method:i,query:a,signal:o,timeoutMs:s}=t,{transport:c}=this;if(!c)throw new q({message:`NextClaw transport is not configured.`});try{return await c.request({method:i??`GET`,path:e,...n===void 0?{}:{body:n},...a?{query:a}:{},...r?{headers:r}:{},...o?{signal:o}:{},...s===void 0?{}:{timeoutMs:s}})}catch(e){if(e instanceof q)throw e;let t=gn(e,`code`),n=gn(e,`details`),r=gn(e,`status`);throw new q({message:e instanceof Error?e.message:`NextClaw API request failed.`,code:typeof t==`string`?t:void 0,details:hn(n)?n:void 0,status:typeof r==`number`?r:void 0})}};get=async(e,t={})=>await this.request(e,{...t,method:`GET`});post=async(e,t,n={})=>await this.request(e,{...n,method:`POST`,...t===void 0?{}:{body:t}});put=async(e,t,n={})=>await this.request(e,{...n,method:`PUT`,...t===void 0?{}:{body:t}});delete=async(e,t={})=>await this.request(e,{...t,method:`DELETE`});upload=async(e,t,n={})=>{let{headers:r,signal:i,timeoutMs:a}=n;if(this.transport?.upload)return await this.transport.upload({path:e,formData:t,...r?{headers:r}:{},...i?{signal:i}:{},...a===void 0?{}:{timeoutMs:a}});let o=new AbortController,s=Math.max(1e3,a??this.requestTimeoutMs),c=()=>o.abort(i?.reason);i&&(i.aborted?o.abort(i.reason):i.addEventListener(`abort`,c,{once:!0}));let l=setTimeout(()=>o.abort(),s);try{let n=await this.fetchImpl(Bt(this.baseUrl,e),{method:`POST`,headers:{Accept:`application/json`,...vn(this.options.token)??{},...this.options.headers??{},...r??{}},body:t,signal:o.signal}),i=await n.json();if(!n.ok){let e=this.extractApiError(i);throw new q({message:e.message,status:n.status,code:e.code,details:e.details})}if(!this.isApiResponse(i)||!i.ok)throw new q({message:`Unexpected NextClaw upload response shape.`,status:n.status});return i.data}catch(e){throw e instanceof q?e:e instanceof Error&&e.name===`AbortError`?new q({message:`NextClaw API upload timed out after ${s}ms.`}):new q({message:e instanceof Error?e.message:`NextClaw API upload failed.`})}finally{i?.removeEventListener(`abort`,c),clearTimeout(l)}};isApiResponse=e=>typeof e==`object`&&!!e&&`ok`in e;extractApiError=e=>{if(this.isApiResponse(e)&&!e.ok)return e.error;if(typeof e==`object`&&e&&`message`in e){let t=e;return{code:typeof t.code==`string`?t.code:`HTTP_ERROR`,message:typeof t.message==`string`?t.message:`NextClaw API request failed.`,details:t.details!==null&&typeof t.details==`object`?t.details:void 0}}return{code:`HTTP_ERROR`,message:`NextClaw API request failed.`}};normalizeRequestBody=(e,t)=>{if(e!==void 0)return e instanceof FormData||e instanceof URLSearchParams||e instanceof Blob||e instanceof ArrayBuffer?e:typeof e==`string`?(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),e):(!(`Content-Type`in t)&&!(`content-type`in t)&&(t[`Content-Type`]=`application/json`),JSON.stringify(e))};serializeQuery=e=>{if(!e)return;if(e instanceof URLSearchParams)return e;let t=new URLSearchParams;for(let[n,r]of Object.entries(e)){let e=Array.isArray(r)?r:[r];for(let r of e)r!=null&&t.append(n,String(r))}return t}};function vn(e){return e?{Authorization:`Bearer ${e}`}:null}var yn=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/control`);startService=async()=>await this.requestService.post(`/api/runtime/control/start-service`,{});restartService=async()=>await this.requestService.post(`/api/runtime/control/restart-service`,{});stopService=async()=>await this.requestService.post(`/api/runtime/control/stop-service`,{})},bn=class{constructor(e){this.requestService=e}fetch=async()=>await this.requestService.get(`/api/runtime/update`);check=async()=>await this.requestService.post(`/api/runtime/update/check`,{});download=async()=>await this.requestService.post(`/api/runtime/update/download`,{});apply=async()=>await this.requestService.post(`/api/runtime/update/apply`,{});updateChannel=async e=>await this.requestService.put(`/api/runtime/update/channel`,{channel:e})},xn=class{constructor(e){this.requestService=e}browse=async e=>{let{basePath:t,includeFiles:n,path:r}=e??{},i=typeof r==`string`?r.trim():``,a=typeof t==`string`?t.trim():``;return await this.requestService.get(`/api/server-paths/browse`,{query:{...i?{path:i}:{},...a?{basePath:a}:{},...n?{includeFiles:`1`}:{}}})};watch=async e=>await this.requestService.post(`/api/server-paths/watch`,e);unwatch=async e=>{await this.requestService.delete(`/api/server-paths/watch`,{query:{subscriptionId:e.trim()}})};createDirectory=async e=>await this.requestService.post(`/api/server-paths/directory`,e);createFile=async e=>await this.requestService.post(`/api/server-paths/file`,e);renameEntry=async e=>await this.requestService.request(`/api/server-paths/entry`,{method:`PATCH`,body:e});deleteEntry=async e=>await this.requestService.delete(`/api/server-paths/entry`,{query:{basePath:e.basePath.trim(),path:e.path.trim()}});uploadFiles=async e=>{let{basePath:t,files:n,overwrite:r,targetPath:i}=e,a=new FormData;return a.append(`basePath`,t.trim()),a.append(`targetPath`,i.trim()),a.append(`overwrite`,r?`true`:`false`),n.forEach(e=>a.append(`files`,e)),await this.requestService.upload(`/api/server-paths/files`,a,{timeoutMs:12e4})};read=async e=>{let{basePath:t,line:n,path:r}=e,i=r.trim(),a=typeof t==`string`?t.trim():``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/read`,{query:{path:i,...a?{basePath:a}:{},...o?{line:String(o)}:{}}})};search=async e=>{let{basePath:t,limit:n,query:r}=e,i=t.trim(),a=r?.trim()??``,o=Number.isSafeInteger(n)&&(n??0)>0?n:null;return await this.requestService.get(`/api/server-paths/search`,{query:{basePath:i,...a?{query:a}:{},...o?{limit:String(o)}:{}}})}},Sn=`x-nextclaw-panel-bridge-session`;function Cn(e){return e?{[Sn]:e}:void 0}var wn=class{constructor(e){this.requestService=e}listServiceApps=async()=>await this.requestService.get(`/api/service-apps`);getServiceApp=async e=>await this.requestService.get(`/api/service-apps/${encodeURIComponent(e)}`);restartServiceApp=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/restart`);deleteServiceApp=async(e,t=!1)=>await this.requestService.request(`/api/service-apps/${encodeURIComponent(e)}`,{method:`DELETE`,body:{purgeData:t}});listServiceActions=async(e={})=>{let t=e.appId?`?${new URLSearchParams({appId:e.appId}).toString()}`:``;return await this.requestService.get(`/api/service-actions${t}`,{headers:Cn(e.bridgeSessionToken)})};discoverServiceAppActions=async e=>await this.requestService.post(`/api/service-apps/${encodeURIComponent(e)}/actions/discover`,{});invokeServiceAction=async(e,t,n={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/invoke`,{input:t??{}},{headers:Cn(n.bridgeSessionToken)});grantServiceAction=async(e,t={})=>await this.requestService.post(`/api/service-actions/${encodeURIComponent(e)}/grant`,{},{headers:Cn(t.bridgeSessionToken)});grantServiceActions=async(e,t={})=>await this.requestService.post(`/api/service-action-grants`,{actionIds:e},{headers:Cn(t.bridgeSessionToken)});listServiceActionGrants=async()=>await this.requestService.get(`/api/service-action-grants`);revokeServiceAction=async(e,t={})=>await this.requestService.delete(`/api/service-actions/${encodeURIComponent(e)}/grant`,{headers:Cn(t.bridgeSessionToken)});revokeServiceActionGrant=async e=>{let t=new URLSearchParams({surface:e.caller.surface,appId:e.caller.appId});return await this.requestService.delete(`/api/service-action-grants/${encodeURIComponent(e.actionId)}?${t.toString()}`)}},Tn=class{constructor(e,t){this.requestService=e,this.eventBus=t}list=async e=>{let{limit:t,peerId:n}=e??{},r=new URLSearchParams;typeof t==`number`&&Number.isFinite(t)&&r.set(`limit`,String(Math.max(1,Math.trunc(t))));let i=n?.trim();return i&&r.set(`peerId`,i),await this.requestService.get(`/api/ncp/sessions`,{...r.size>0?{query:r}:{}})};get=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}`);listMessages=async(e,t={})=>{let n=typeof t==`number`?{limit:t}:t,r=new URLSearchParams;return typeof n.limit==`number`&&Number.isFinite(n.limit)&&r.set(`limit`,String(Math.max(1,Math.trunc(n.limit)))),n.cursor?.trim()&&r.set(`cursor`,n.cursor.trim()),n.toolPayload===`summary`&&r.set(`toolPayload`,`summary`),n.initialPayload===`compact`&&r.set(`initialPayload`,`compact`),await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/messages`,{...r.size>0?{query:r}:{},...n.signal?{signal:n.signal}:{}})};getUsage=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/usage`);listSkills=async(e,t)=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/skills`,{query:t?.projectRoot?.trim()?{projectRoot:t.projectRoot.trim()}:void 0});listQueuedInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs`);deleteQueuedInput=async(e,t)=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}`);listPendingInputs=async e=>await this.requestService.get(`/api/ncp/sessions/${encodeURIComponent(e)}/pending-inputs`);steerQueuedInput=async(e,t)=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/queued-inputs/${encodeURIComponent(t)}/steer`);update=async(e,t)=>await this.requestService.put(`/api/ncp/sessions/${encodeURIComponent(e)}`,t);compactContext=async e=>await this.requestService.post(`/api/ncp/sessions/${encodeURIComponent(e)}/context/compact`);delete=async e=>await this.requestService.delete(`/api/ncp/sessions/${encodeURIComponent(e)}`);uploadAssets=async e=>{let t=new FormData;for(let n of e)t.append(`files`,n);return await this.requestService.upload(`/api/ncp/assets`,t)};subscribe=(e,t={})=>({close:this.eventBus.subscribeAll(t=>{e(t)})})},En=class{constructor(e){this.requestService=e}list=async(e={})=>await this.requestService.get(`/api/system-object-references`,{query:e});resolve=async e=>await this.requestService.post(`/api/system-object-references/resolve`,{uri:e})},Dn=class{baseUrl;agentRuns;app;appPackages;appData;agents;auth;channelAuth;config;eventBus;marketplace;inboxDeliveries;mcpMarketplace;panelApps;providers;projects;realtime;remote;runtimeControl;runtimeUpdate;serverPaths;serviceApps;sessions;systemObjectReferences;constructor(e){this.baseUrl=zt(e.baseUrl);let t={...e,baseUrl:this.baseUrl},n=new _n(t);this.realtime=new pn(t);let i=null;this.eventBus=new r({onFirstSubscriber:()=>{i??=this.realtime.subscribe(e=>{this.eventBus.emitEnvelope({type:e.type,payload:`payload`in e?e.payload:void 0,emittedAt:`emittedAt`in e?e.emittedAt:new Date().toISOString(),source:`source`in e?e.source:`realtime`})})},onNoSubscribers:()=>{i?.close(),i=null}}),this.agentRuns=new Kt(n,t),this.app=new Jt(n),this.appPackages=new Yt(n),this.appData=new Xt(n),this.agents=new qt(n,this.baseUrl),this.auth=new Zt(n),this.channelAuth=new Qt(n),this.config=new $t(n),this.marketplace=new en(n),this.inboxDeliveries=new an(n),this.mcpMarketplace=new on(n),this.panelApps=new un(n),this.providers=new dn(n),this.projects=new fn(n),this.remote=new mn(n),this.runtimeControl=new yn(n),this.runtimeUpdate=new bn(n),this.serverPaths=new xn(n),this.serviceApps=new wn(n),this.sessions=new Tn(n,this.eventBus),this.systemObjectReferences=new En(n)}},On=`http://127.0.0.1:55667`,kn=(()=>{let e=(void 0)?.trim();return e?e.replace(/\/$/,``):typeof window<`u`&&window.location?.origin?window.location.origin:On})(),An={"Use this page to manage the local NextClaw service. Closing the browser does not stop the service.":`runtimeControlManagedLocalMessage`,"This page is served by the running local service. Closing the browser does not stop it.":`runtimeControlManagedLocalHint`,"This page is served by the running local service.":`runtimeControlManagedLocalHintShort`,"This page is already hosted by the running local service.":`runtimeControlStartUnavailableHosted`,"App restart is only available in the desktop shell.":`runtimeControlRestartAppDesktopOnly`,"The local service is not running.":`runtimeControlServiceNotRunning`,"The local service is already stopped.":`runtimeControlServiceAlreadyStopped`,"Managed service started.":`runtimeControlManagedServiceStarted`,"Managed service start scheduled.":`runtimeControlManagedServiceStartScheduled`,"Restart scheduled. This page may disconnect for a few seconds.":`runtimeControlRestartScheduled`,"Stop scheduled. This page will disconnect shortly.":`runtimeControlStopScheduled`,"runtime healthy":`runtimeControlHealthy`};function jn(e){return e.activeSystemAction?`service-transitioning`:e.lifecyclePhase}function Mn(e){return e===`ready`?`connected`:e===`startup-failed`||e===`stalled`?`disconnected`:`connecting`}function Nn(e){let t=jn(e);return{...e,phase:t,connectionStatus:Mn(t)}}function Pn(e){return e===`start-service`?`starting-service`:e===`stop-service`?`stopping-service`:e===`restart-service`?`restarting-service`:`restarting-app`}function Fn(e){return e===`start-service`?`starting`:e===`stop-service`?`stopping`:e===`restart-service`?`restarting`:null}function J(e){if(!e)return null;let t=An[e.trim()];return t?o(t):e}function In(e){let{action:t,message:n}=e;return{action:t,lifecycle:Pn(t),serviceState:Fn(t),message:n}}function Ln(e){if(e.runtimeControlError)return{tone:`inactive`,title:o(`runtimeControlLoadFailed`),description:e.runtimeControlError,reasonLines:[],actionLabel:null,isBusy:!1};if(!e.runtimeControlView)return{tone:`inactive`,title:o(`runtimeStatusLoadingTitle`),description:o(`runtimeStatusLoadingDescription`),reasonLines:[],actionLabel:null,isBusy:!!e.activeSystemAction};if(e.activeSystemAction)return{tone:`attention`,title:o(`runtimeControlTitle`),description:J(e.activeSystemAction.message)||J(e.runtimeControlView.message)||o(`runtimeControlDescription`),reasonLines:[],actionLabel:null,isBusy:!0};let t=e.runtimeControlView;return t.pendingRestart?{tone:`attention`,title:o(`runtimeStatusPendingRestartTitle`),description:o(`runtimeStatusPendingRestartDescription`),reasonLines:t.pendingRestart.changedPaths.length>0?t.pendingRestart.changedPaths.map(e=>o(`runtimeStatusPendingRestartReasonItem`).replace(`{path}`,e)):[t.pendingRestart.message],actionLabel:t.canRestartService.available?o(`runtimeStatusRestartAction`):null,isBusy:!1}:{tone:t.lifecycle===`healthy`?`healthy`:`inactive`,title:o(`runtimeStatusHealthyTitle`),description:o(`runtimeStatusHealthyDescription`),reasonLines:[],actionLabel:null,isBusy:!1}}function Rn(e){let t=e.activeSystemAction,n=e.runtimeControlView;return{controlView:n,visibleLifecycle:t?.lifecycle??n?.lifecycle??`healthy`,visibleServiceState:t?.serviceState??n?.serviceState??`unknown`,visibleMessage:J(t?.message)||J(e.lastSystemActionError)||J(n?.message)||o(`runtimeControlDescription`),busyAction:t?.action??null,busy:!!t,pendingRestart:n?.pendingRestart??null,errorMessage:J(e.lastSystemActionError)||J(e.runtimeControlError)||null}}var zn={lifecyclePhase:`cold-starting`,hasReachedReady:!1,lastReadyAt:null,recoveryStartedAt:null,bootstrapStatus:null,lastError:null,lastTransportError:null,runtimeControlView:null,runtimeControlError:null,activeSystemAction:null,lastSystemActionError:null},Y=c(e=>({state:zn,patchState:t=>e(e=>({state:{...e.state,...t}}))}));function Bn(e){if(e.length===0)throw Error(`AdaptiveCadence requires at least one stage.`);for(let t of e)if(t.delaysMs.length===0)throw Error(`AdaptiveCadence stage requires at least one delay.`)}var Vn=class{constructor(e){this.options=e,this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1,this.recordFailure=()=>{let e=this.clock();this.completed=!1,this.manualTriggerPending=!1,this.startedAt=this.startedAt??e,this.lastFailureAt=e,this.attempt+=1},this.recordSuccess=()=>{this.lastSuccessAt=this.clock(),this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.manualTriggerPending=!1,this.completed=!0},this.reset=()=>{this.attempt=0,this.startedAt=null,this.lastFailureAt=null,this.lastSuccessAt=null,this.manualTriggerPending=!1,this.completed=!1},this.requestManualTrigger=()=>{this.completed=!1,this.manualTriggerPending=!0},this.hasManualTrigger=()=>this.manualTriggerPending,this.getNextDelay=(e={})=>{if(this.manualTriggerPending)return e.consumeManualTrigger&&(this.manualTriggerPending=!1),this.options.manualTriggerDelayMs;if(this.completed)return this.options.successDelayMs;if(this.startedAt===null)return this.options.idleDelayMs;let t=this.resolveStage(this.clock()-this.startedAt);return t.delaysMs[Math.min(this.attempt-1,t.delaysMs.length-1)]},this.getSnapshot=()=>({attempt:this.attempt,startedAt:this.startedAt,lastFailureAt:this.lastFailureAt,lastSuccessAt:this.lastSuccessAt,manualTriggerPending:this.manualTriggerPending,completed:this.completed}),this.resolveStage=e=>this.options.stages.find(t=>t.untilElapsedMs===void 0||e<t.untilElapsedMs)??this.options.stages[this.options.stages.length-1],Bn(e.stages),this.clock=e.clock??(()=>Date.now())}},Hn=3e4,Un={idleDelayMs:1e3,manualTriggerDelayMs:0,successDelayMs:!1,stages:[{untilElapsedMs:3e4,delaysMs:[500,1e3,2e3,4e3,5e3]},{untilElapsedMs:5*6e4,delaysMs:[1e4,15e3,3e4]},{delaysMs:[6e4]}]};function Wn(e){return e instanceof Error?e.message:String(e??``)}function Gn(e){return e&&(e.ncpAgent.error?.trim()||e.lastError?.trim())||null}function Kn(e){return o(e===`start-service`?`runtimeControlStartingServiceHelp`:e===`restart-service`?`runtimeControlRestartingServiceHelp`:e===`stop-service`?`runtimeControlStoppingServiceHelp`:`runtimeControlRestartingAppHelp`)}var X=new class{constructor(){this.recoveryTimeoutId=null,this.runtimeBootstrapProbeCadence=new Vn(Un),this.getRuntimeBootstrapPollInterval=e=>{let{lifecyclePhase:t,activeSystemAction:n}=this.getState(),r=t===`recovering`||t===`stalled`||n?.lifecycle===`recovering`;return this.runtimeBootstrapProbeCadence.hasManualTrigger()?this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0}):!r&&e?.ncpAgent.state===`ready`?!1:this.runtimeBootstrapProbeCadence.getNextDelay({consumeManualTrigger:!0})},this.getRuntimeControl=async()=>this.decorateForCurrentEnvironment(await Ya()),this.reportBootstrapStatus=e=>{let t=this.getState(),n=Gn(e);if(e.ncpAgent.state===`ready`){this.transitionToReady(e);return}if(!t.hasReachedReady){if(e.ncpAgent.state===`error`||e.phase===`error`){this.transitionToStartupFailed(n,e);return}this.transitionToColdStarting(e);return}this.transitionToRecovering(n,e)},this.reportBootstrapQueryError=e=>{let t=Wn(e).trim();if(t&&!this.reportTransportFailure(t)){if(this.getState().hasReachedReady){this.transitionToRecovering(t);return}this.transitionToStartupFailed(t)}},this.reportTransportFailure=e=>{let t=Wn(e).trim();return ai(t)?this.getState().hasReachedReady?(this.transitionToRecovering(t),!0):(this.runtimeBootstrapProbeCadence.recordFailure(),this.patchState({lastTransportError:t}),!0):!1},this.handleConnectionInterrupted=e=>{let t=this.getState(),n=e?.trim()||null;if(!t.hasReachedReady){this.runtimeBootstrapProbeCadence.recordFailure(),n&&this.patchState({lastTransportError:n});return}this.transitionToRecovering(n)},this.handleConnectionRestored=()=>{let e=this.getState();e.bootstrapStatus?.ncpAgent.state===`ready`&&this.transitionToReady(e.bootstrapStatus)},this.reportRuntimeControlView=e=>{this.patchState({runtimeControlView:e,runtimeControlError:null})},this.reportRuntimeControlError=e=>{let t=Wn(e).trim();t&&this.patchState({runtimeControlError:t})},this.runRuntimeControlAction=async e=>{this.patchState({activeSystemAction:In({action:e,message:Kn(e)}),lastSystemActionError:null});try{let t=await this.executeRuntimeControlAction(e);if(e===`restart-app`)return t;if(e===`stop-service`)return await this.refreshRuntimeControlView(),this.clearActiveSystemAction(),t;this.patchState({activeSystemAction:{action:e,lifecycle:`recovering`,serviceState:null,message:o(`runtimeControlRecoveringHelp`)}}),this.runtimeBootstrapProbeCadence.requestManualTrigger();let n=await this.waitForRecovery();return this.syncRuntimeControlQueryCache(n),this.reportRuntimeControlView(n),this.clearActiveSystemAction(),t}catch(t){let n=t instanceof Error?t.message:o(`runtimeControlActionFailed`);throw this.patchState({activeSystemAction:{action:e,lifecycle:`failed`,serviceState:e===`stop-service`?`running`:e===`restart-app`?null:`unknown`,message:n},lastSystemActionError:n}),t}},this.getStatusView=()=>Nn(this.getState()),this.requestRuntimeBootstrapProbeNow=()=>{this.runtimeBootstrapProbeCadence.requestManualTrigger(),Et.refetchQueries({queryKey:[`runtime-bootstrap-status`]})},this.resetForTests=()=>{this.clearRecoveryTimeout(),this.runtimeBootstrapProbeCadence.reset(),Y.setState({state:zn})},this.getState=()=>Y.getState().state,this.patchState=e=>{Y.getState().patchState(e)},this.transitionToColdStarting=e=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`cold-starting`,recoveryStartedAt:null,bootstrapStatus:e,lastError:null})},this.transitionToStartupFailed=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure(),this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`startup-failed`,recoveryStartedAt:null,bootstrapStatus:t??this.getState().bootstrapStatus,lastError:e})},this.transitionToRecovering=(e,t)=>{this.runtimeBootstrapProbeCadence.recordFailure();let n=this.getState();if(!n.hasReachedReady){this.patchState({lastTransportError:e?.trim()||n.lastTransportError});return}n.lifecyclePhase!==`recovering`&&n.lifecyclePhase!==`stalled`&&(this.clearRecoveryTimeout(),this.recoveryTimeoutId=window.setTimeout(()=>{this.recoveryTimeoutId=null,this.getState().lifecyclePhase===`recovering`&&this.patchState({lifecyclePhase:`stalled`})},Hn)),this.patchState({lifecyclePhase:n.lifecyclePhase===`stalled`?`stalled`:`recovering`,recoveryStartedAt:n.recoveryStartedAt??Date.now(),bootstrapStatus:t??n.bootstrapStatus,lastError:e?.trim()||n.lastError,lastTransportError:e?.trim()||n.lastTransportError})},this.transitionToReady=e=>{this.runtimeBootstrapProbeCadence.recordSuccess();let t=this.getState(),n=t.lifecyclePhase===`recovering`||t.lifecyclePhase===`stalled`;this.clearRecoveryTimeout(),this.patchState({lifecyclePhase:`ready`,hasReachedReady:!0,lastReadyAt:Date.now(),recoveryStartedAt:null,bootstrapStatus:e,lastError:null,lastTransportError:null}),n&&Et.refetchQueries({type:`active`})},this.executeRuntimeControlAction=async e=>{let t=this.getDesktopBridge();if(e===`restart-service`&&t&&typeof t.restartService==`function`){let e=await t.restartService();return{accepted:e.accepted,action:`restart-service`,lifecycle:e.lifecycle,message:e.message}}if(e===`start-service`)return await Xa();if(e===`stop-service`)return await Qa();if(e===`restart-app`){if(!t||typeof t.restartApp!=`function`)throw Error(o(`runtimeRestartAppUnavailable`));let e=await t.restartApp();return{accepted:e.accepted,action:`restart-app`,lifecycle:e.lifecycle,message:e.message}}return await Za()},this.waitForRecovery=async()=>{let e=Date.now()+25e3,t=null;for(;Date.now()<e;)try{return await this.getRuntimeControl()}catch(e){t=e,await new Promise(e=>{window.setTimeout(e,1500)})}throw t instanceof Error?t:Error(o(`runtimeRecoveryTimedOut`))},this.refreshRuntimeControlView=async()=>{try{let e=await this.getRuntimeControl();this.syncRuntimeControlQueryCache(e),this.reportRuntimeControlView(e)}catch(e){this.reportRuntimeControlError(e)}},this.syncRuntimeControlQueryCache=e=>{Et.setQueryData([`runtime-control`],e)},this.clearActiveSystemAction=()=>{this.patchState({activeSystemAction:null,lastSystemActionError:null})},this.clearRecoveryTimeout=()=>{this.recoveryTimeoutId!==null&&(window.clearTimeout(this.recoveryTimeoutId),this.recoveryTimeoutId=null)},this.decorateForCurrentEnvironment=e=>{let t=this.getDesktopBridge();return!t||typeof t.restartApp!=`function`?e:{...e,environment:`desktop-embedded`,serviceState:`running`,canStartService:{available:!1,requiresConfirmation:!1,impact:`none`},canStopService:{available:!1,requiresConfirmation:!0,impact:`brief-ui-disconnect`},canRestartApp:{available:!0,requiresConfirmation:!0,impact:`full-app-relaunch`},ownerLabel:o(`runtimeControlEnvironmentDesktop`),managementHint:o(`runtimeControlDesktopServiceHint`)}},this.getDesktopBridge=()=>typeof window>`u`?null:window.nextclawDesktop??null}};function qn(){let e=Xe({queryKey:[`runtime-bootstrap-status`],queryFn:()=>wi({timeoutMs:5e3}),refetchInterval:e=>X.getRuntimeBootstrapPollInterval(e.state.data),retry:!1}),t=Xe({queryKey:[`runtime-control`],queryFn:async()=>await X.getRuntimeControl(),staleTime:5e3});(0,z.useEffect)(()=>{e.data&&X.reportBootstrapStatus(e.data)},[e.data]),(0,z.useEffect)(()=>{e.error&&X.reportBootstrapQueryError(e.error)},[e.error]),(0,z.useEffect)(()=>{t.data&&X.reportRuntimeControlView(t.data)},[t.data]),(0,z.useEffect)(()=>{t.error&&X.reportRuntimeControlError(t.error)},[t.error])}function Jn(){return Nn(Y(e=>e.state))}function Yn(){return Ln(Y(e=>e.state))}function Xn(){return Rn(Y(e=>e.state))}var Z=c(()=>({supported:!1,initialized:!1,busyAction:null,snapshot:null})),Zn=class{constructor(e){this.desktopApi=e,this.kind=`desktop-bridge`,this.subscribe=e=>this.desktopApi.onUpdateStateChanged(e),this.getState=async()=>await this.desktopApi.getUpdateState(),this.checkForUpdates=async()=>await this.desktopApi.checkForUpdates(),this.downloadUpdate=async()=>await this.desktopApi.downloadUpdate(),this.applyDownloadedUpdate=async()=>await this.desktopApi.applyDownloadedUpdate(),this.updateChannel=async e=>await this.desktopApi.updateChannel(e)}},Qn=class{constructor(){this.kind=`runtime-host`,this.getState=async()=>await eo(),this.checkForUpdates=async()=>await to(),this.downloadUpdate=async()=>await no(),this.applyDownloadedUpdate=async()=>await ro(),this.updateChannel=async e=>await io(e)}},$n=new class{constructor(){this.unsubscribe=null,this.subscriptionCount=0,this.source=null,this.start=async()=>{this.subscriptionCount+=1;let e=this.resolveSource();if(this.source=e,!e){Z.setState({supported:!1,initialized:!0,snapshot:null});return}e.kind===`desktop-bridge`&&!this.unsubscribe&&(this.unsubscribe=e.subscribe(e=>{Z.setState({supported:!0,initialized:!0,snapshot:e})})),Z.setState({supported:!0,initialized:!1});try{let t=await e.getState();Z.setState({supported:!0,initialized:!0,snapshot:t})}catch(t){if(e.kind===`runtime-host`&&this.isUnsupportedError(t)){Z.setState({supported:!1,initialized:!0,snapshot:null});return}Z.setState({supported:!0,initialized:!0}),U.error(`${o(`runtimeUpdatesLoadFailed`)}: ${this.getErrorMessage(t)}`)}},this.stop=()=>{this.subscriptionCount=Math.max(0,this.subscriptionCount-1),!(this.subscriptionCount>0)&&(this.unsubscribe?.(),this.unsubscribe=null,this.source=null)},this.reportSnapshot=e=>{this.source?.kind!==`desktop-bridge`&&Z.setState({supported:!0,initialized:!0,snapshot:e})},this.refreshAfterRealtimeReconnect=async()=>{this.source?.kind===`runtime-host`&&await this.refreshSnapshot()},this.checkForUpdates=async()=>{let e;try{e=await this.runSnapshotCommand(`checking`,o(`runtimeUpdatesCheckFailed`),async e=>await e.checkForUpdates())}catch{return}if(e.status===`up-to-date`){U.success(o(`runtimeUpdatesAlreadyLatest`));return}if(e.status===`update-available`){U.success(o(`runtimeUpdatesAvailable`).replace(`{version}`,e.availableVersion??o(`runtimeUpdatesUnknownVersion`)));return}e.status===`downloaded`&&U.success(o(`runtimeUpdatesReadyToApply`))},this.downloadUpdate=async()=>{try{await this.runSnapshotCommand(`downloading`,o(`runtimeUpdatesDownloadFailed`),async e=>await e.downloadUpdate())}catch{return}},this.applyDownloadedUpdate=async()=>{try{await this.runSnapshotCommand(`applying`,o(`runtimeUpdatesApplyFailed`),async e=>await e.applyDownloadedUpdate())}catch{return}},this.updateNow=async()=>{let e=Z.getState().snapshot;if(!(e?.status!==`update-available`&&e?.status!==`downloaded`))try{await this.runSnapshotCommand(`updating`,o(`runtimeUpdatesUpdateFailed`),async t=>{let n=e.status===`downloaded`?e:await t.downloadUpdate();return Z.setState({snapshot:n}),n.status===`downloaded`?await t.applyDownloadedUpdate():n})}catch{return}},this.updateChannel=async e=>{if(Z.getState().snapshot?.channel===e)return;let t;try{t=await this.runSnapshotCommand(`switching-channel`,o(`runtimeUpdatesChannelChangeFailed`),async t=>await t.updateChannel(e))}catch{return}if(t.status===`update-available`&&t.availableVersion){U.success(o(`runtimeUpdatesChannelChangedWithUpdate`).replace(`{channel}`,this.getChannelLabel(e)).replace(`{version}`,t.availableVersion));return}U.success(o(`runtimeUpdatesChannelChanged`).replace(`{channel}`,this.getChannelLabel(e)))},this.refreshSnapshot=async()=>{if(!(!this.source||this.source.kind!==`runtime-host`))try{let e=await this.source.getState();Z.setState({supported:!0,initialized:!0,snapshot:e})}catch{}},this.runSnapshotCommand=async(e,t,n)=>{let r=this.source??this.resolveSource();if(!r)throw Error(o(`runtimeUpdatesUnavailableDescription`));this.source=r,Z.setState({busyAction:e});try{let e=await n(r);return Z.setState({snapshot:e}),e}catch(e){throw U.error(`${t}: ${this.getErrorMessage(e)}`),e}finally{Z.setState({busyAction:null})}},this.resolveSource=()=>{let e=this.getDesktopApi();return e?new Zn(e):new Qn},this.getDesktopApi=()=>typeof window>`u`?null:window.nextclawDesktop??null,this.isUnsupportedError=e=>{let t=this.getErrorMessage(e).toLowerCase();return t.includes(`404`)||t.includes(`not found`)||t.includes(`endpoint not found`)},this.getErrorMessage=e=>e instanceof Error?e.message:o(`error`),this.getChannelLabel=e=>o(e===`beta`?`desktopUpdatesChannelBeta`:`desktopUpdatesChannelStable`)}},er=`https://docs.nextclaw.io/`;function tr(e,t){let n=t===`zh-CN`?`en-US`:`zh-CN`;return e?.[t]?.trim()||e?.[n]?.trim()||null}function nr(e){let t=e.releaseNotesUrl?.trim(),n=(e.availableVersion??e.downloadedVersion)?.trim();return t?rr(n,t):null}function rr(e,t=er){let n=e?.trim();if(!n||!/^[0-9A-Za-z.-]+$/.test(n))return null;try{return new URL(`/release-notes/nextclaw-v${n}.json`,t).toString()}catch{return null}}function ir(e,t){return tr(e?.links?.html,t)}function ar(e){let t=e.releaseNotesUrl?.trim(),n=(e.downloadedVersion??e.availableVersion)?.trim();return!t||!n?null:{url:t,versionLabel:`v${n}`}}function or(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function sr(e){return or(e)?typeof e[`zh-CN`]==`string`||typeof e[`en-US`]==`string`:!1}function cr(e){return!or(e)||!sr(e.title)?!1:e.body===void 0||sr(e.body)}function lr(e){return or(e)&&typeof e.kind==`string`&&Array.isArray(e.items)&&e.items.every(cr)&&(e.title===void 0||sr(e.title))}function ur(e){return or(e)&&(e.html===void 0||sr(e.html))}function dr(e){return or(e)&&Array.isArray(e.sections)&&e.sections.every(lr)&&(e.title===void 0||sr(e.title))&&(e.summary===void 0||sr(e.summary))&&(e.links===void 0||ur(e.links))}async function fr(e){let t=await fetch(e,{cache:`no-store`,headers:{accept:`application/json`}});if(!t.ok)throw Error(`Release notes request failed with HTTP ${t.status}.`);let n=await t.json();if(!dr(n))throw Error(`Release notes payload has an unsupported shape.`);return n}function pr(){return s()===`zh`?`zh-CN`:`en-US`}function mr(e){let t=rr(e),n=pr(),r=ir(Xe({queryKey:[`current-release-notes`,t],queryFn:async()=>await fr(t??``),enabled:!!t,retry:!1,staleTime:300*1e3}).data,n),i=e?.trim();return r&&i?{url:r,versionLabel:`v${i}`}:null}var hr=z.forwardRef(({className:e,checked:t=!1,onCheckedChange:n,thumbClassName:r,...a},o)=>(0,B.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,"data-state":t?`checked`:`unchecked`,ref:o,className:i(`switch-track peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:cursor-not-allowed disabled:opacity-50`,t?`border-primary/70 bg-primary`:`border-border/60 bg-muted hover:bg-[var(--interaction-hover)]`,e),onClick:()=>n?.(!t),...a,children:(0,B.jsx)(`span`,{"data-state":t?`checked`:`unchecked`,className:i(`switch-thumb pointer-events-none block h-5 w-5 rounded-full bg-card shadow-md ring-1 ring-border/50 transition-transform duration-fast`,t?`translate-x-5`:`translate-x-0`,r)})}));hr.displayName=`Switch`;var gr={maxRetries:8,startupTimeoutMs:2e3,settledTimeoutMs:5e3,retryBaseDelayMs:500,retryMaxDelayMs:3e3};function _r(e){return e instanceof Error?ai(e.message):!1}function vr(e,t){return e>=gr.maxRetries?!1:_r(t)}function yr(e){return Math.min(gr.retryMaxDelayMs,gr.retryBaseDelayMs*2**Math.max(0,e-1))}function br(){let[e,t]=(0,z.useState)(!1),n=Xe({queryKey:[`auth-status`],queryFn:()=>_i({timeoutMs:e?gr.settledTimeoutMs:gr.startupTimeoutMs}),staleTime:5e3,retry:vr,retryDelay:yr});return(0,z.useEffect)(()=>{n.isSuccess&&!e&&t(!0)},[e,n.isSuccess]),n}function xr(e){return Promise.all([e.invalidateQueries({queryKey:[`auth-status`]}),e.invalidateQueries({queryKey:[`app-meta`]}),e.invalidateQueries({queryKey:[`config`]}),e.invalidateQueries({queryKey:[`config-meta`]}),e.invalidateQueries({queryKey:[`config-schema`]}),e.invalidateQueries({queryKey:[`sessions`]}),e.invalidateQueries({queryKey:[`session-history`]}),e.invalidateQueries({queryKey:[`chat-runs`]}),e.invalidateQueries({queryKey:[`cron-jobs`]})])}function Sr(){let e=V();return Ze({mutationFn:vi,onSuccess:async()=>{await xr(e),U.success(o(`authSetupSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function Cr(){let e=V();return Ze({mutationFn:yi,onSuccess:async()=>{await xr(e),U.success(o(`authLoginSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function wr(){let e=V();return Ze({mutationFn:bi,onSuccess:async()=>{await xr(e),U.success(o(`authLogoutSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function Tr(){let e=V();return Ze({mutationFn:xi,onSuccess:async()=>{await xr(e),U.success(o(`authPasswordUpdated`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}function Er(){let e=V();return Ze({mutationFn:Si,onSuccess:async(t,n)=>{await xr(e),U.success(n.enabled?o(`authEnabledSuccess`):o(`authDisabledSuccess`))},onError:e=>{U.error(`${o(`authActionFailed`)}: ${e.message}`)}})}var Dr=8;function Or(e){return e.trim().length>=Dr}function kr(e,t){return e===t?!0:(U.error(o(`authPasswordMismatch`)),!1)}function Ar({children:e,contentClassName:t=`space-y-6`}){return(0,B.jsx)(Lt,{children:(0,B.jsx)(`div`,{className:`${t} p-4`,children:e})})}function jr({canSubmitSetup:e,isPending:t,onSubmit:n,setSetupConfirmPassword:r,setSetupPassword:i,setSetupUsername:a,setupConfirmPassword:s,setupPassword:c,setupUsername:l}){return(0,B.jsxs)(Ar,{contentClassName:`space-y-5`,children:[(0,B.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authSetupTitle`)}),(0,B.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:o(`authSetupDescription`)})]}),(0,B.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-setup-username`,children:o(`authUsername`)}),(0,B.jsx)(G,{id:`auth-setup-username`,value:l,onChange:e=>a(e.target.value),placeholder:o(`authUsernamePlaceholder`)})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-setup-password`,children:o(`authPassword`)}),(0,B.jsx)(G,{id:`auth-setup-password`,type:`password`,value:c,onChange:e=>i(e.target.value),placeholder:o(`authPasswordPlaceholder`)})]})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-setup-confirm`,children:o(`authConfirmPassword`)}),(0,B.jsx)(G,{id:`auth-setup-confirm`,type:`password`,value:s,onChange:e=>r(e.target.value),placeholder:o(`authConfirmPasswordPlaceholder`)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authPasswordMinLengthHint`)})]}),(0,B.jsx)(jt,{type:`button`,disabled:!e,onClick:()=>void n(),children:o(t?`authSettingUp`:`authSetupAction`)})]})}function Mr({authenticated:e,canUpdatePassword:t,enabled:n,isLoggingOut:r,isUpdatingEnabled:i,isUpdatingPassword:a,nextConfirmPassword:s,nextPassword:c,onEnabledChange:l,onLogout:u,onPasswordUpdate:d,setNextConfirmPassword:f,setNextPassword:p,username:m}){return(0,B.jsxs)(Ar,{children:[(0,B.jsxs)(`div`,{className:`rounded-xl bg-background/65 p-4`,children:[(0,B.jsxs)(`div`,{className:`flex flex-col gap-4 md:flex-row md:items-start md:justify-between`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authStatusLabel`)}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`authStatusConfiguredUser`).replace(`{username}`,m??``)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authUsernameFixedHelp`)})]}),(0,B.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-muted px-3 py-1 text-xs font-medium text-foreground`,children:o(n?`enabled`:`disabled`)})]}),(0,B.jsxs)(`div`,{className:`mt-4 flex flex-col gap-4 border-t border-border/55 pt-4 md:flex-row md:items-center md:justify-between`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authEnableLabel`)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(n?`authEnableOnHelp`:`authEnableOffHelp`)})]}),(0,B.jsx)(hr,{checked:n,disabled:i,onCheckedChange:e=>{l(e)}})]})]}),(0,B.jsxs)(`div`,{className:`space-y-4 rounded-xl bg-background/65 p-4`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:o(`authPasswordSectionTitle`)}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authPasswordSectionDescription`)})]}),(0,B.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-password-next`,children:o(`authPassword`)}),(0,B.jsx)(G,{id:`auth-password-next`,type:`password`,value:c,onChange:e=>p(e.target.value),placeholder:o(`authPasswordPlaceholder`)})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(K,{htmlFor:`auth-password-confirm`,children:o(`authConfirmPassword`)}),(0,B.jsx)(G,{id:`auth-password-confirm`,type:`password`,value:s,onChange:e=>f(e.target.value),placeholder:o(`authConfirmPasswordPlaceholder`)})]})]}),(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,B.jsx)(jt,{type:`button`,disabled:!t,onClick:()=>void d(),children:o(a?`authPasswordUpdating`:`authPasswordAction`)}),n&&e?(0,B.jsx)(jt,{type:`button`,variant:`outline`,disabled:r,onClick:()=>void u(),children:o(r?`authLoggingOut`:`authLogoutAction`)}):null]}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`authSessionMemoryNotice`)})]})]})}function Nr(){let e=br(),t=Sr(),n=Er(),r=Tr(),i=wr(),[a,s]=(0,z.useState)(``),[c,l]=(0,z.useState)(``),[u,d]=(0,z.useState)(``),[f,p]=(0,z.useState)(``),[m,h]=(0,z.useState)(``),g=e.data,_=a.trim().length>0&&Or(c)&&c===u&&!t.isPending,v=Or(f)&&f===m&&!r.isPending;return e.isLoading&&!g?(0,B.jsx)(Ar,{contentClassName:`text-sm text-gray-500`,children:o(`loading`)}):e.isError||!g?(0,B.jsxs)(Ar,{contentClassName:`space-y-4`,children:[(0,B.jsx)(`p`,{className:`text-sm text-gray-500`,children:o(`authStatusLoadFailed`)}),(0,B.jsx)(jt,{variant:`outline`,onClick:()=>void e.refetch(),children:o(`authRetryStatus`)})]}):g.configured?(0,B.jsx)(Mr,{authenticated:g.authenticated,enabled:g.enabled,username:g.username,nextPassword:f,setNextPassword:p,nextConfirmPassword:m,setNextConfirmPassword:h,canUpdatePassword:v,isUpdatingEnabled:n.isPending,isUpdatingPassword:r.isPending,isLoggingOut:i.isPending,onEnabledChange:async e=>{try{await n.mutateAsync({enabled:e})}catch{}},onPasswordUpdate:async()=>{if(kr(f,m))try{await r.mutateAsync({password:f}),p(``),h(``)}catch{}},onLogout:async()=>{try{await i.mutateAsync()}catch{}}}):(0,B.jsx)(jr,{setupUsername:a,setSetupUsername:s,setupPassword:c,setSetupPassword:l,setupConfirmPassword:u,setSetupConfirmPassword:d,canSubmitSetup:_,isPending:t.isPending,onSubmit:async()=>{if(kr(c,u))try{await t.mutateAsync({username:a.trim(),password:c}),l(``),d(``)}catch{}}})}function Pr(){return(0,B.jsx)(Pt,{title:o(`authSecurityTitle`),description:o(`authSecurityDescription`),children:(0,B.jsx)(Nr,{})})}function Fr(e){return e.replace(/\s+/g,` `).trim().slice(0,200)}function Ir(e,t){if(t===404&&e.startsWith(`/api/providers/`)&&e.endsWith(`/test`))return`Provider test endpoint is missing. This usually means nextclaw runtime version is outdated.`;if(t===401||t===403)return`Authentication failed. Check apiKey and custom headers.`;if(t===429)return`Rate limited by upstream provider. Retry later or switch model/provider.`;if(t>=500)return`Upstream service error. Retry later and inspect server logs if it persists.`}function Lr(e){if(e instanceof Error){let t=e.name?.trim()||`Error`,n=e.message?.trim()||`Unknown error`;return{summary:`${t}: ${n}`,details:{errorName:t,errorMessage:n,...e.stack?.trim()?{errorStack:e.stack.trim()}:{}}}}return{summary:String(e??`Unknown error`),details:{errorName:`NonError`,errorMessage:String(e??`Unknown error`)}}}async function Rr(e,t,n={}){let r=`${e}${t}`,i=(n.method||`GET`).toUpperCase(),a;try{let e=new Headers(n.headers);!(n.body instanceof FormData)&&!e.has(`Content-Type`)&&e.set(`Content-Type`,`application/json`),a=await fetch(r,{credentials:`include`,headers:e,...n})}catch(e){let n=Lr(e);return X.reportTransportFailure(n.summary),{ok:!1,error:{code:`NETWORK_ERROR`,message:`Fetch failed on ${i} ${t} | ${n.summary}`,details:{method:i,endpoint:t,url:r,...n.details}}}}let o=await a.text(),s=null;if(o)try{s=JSON.parse(o)}catch{}if(!s){let e=o?Fr(o):``,n=Ir(t,a.status),s=[`Non-JSON response (${a.status} ${a.statusText}) on ${i} ${t}`];return e&&s.push(`body=${e}`),n&&s.push(`hint=${n}`),{ok:!1,error:{code:`INVALID_RESPONSE`,message:s.join(` | `),details:{status:a.status,statusText:a.statusText,method:i,endpoint:t,url:r,bodySnippet:e||void 0,hint:n}}}}return a.ok,s}function zr(e){let t=e.split(`
|
|
8
8
|
`),n=``,r=[];for(let e of t){let t=e.trimEnd();if(!(!t||t.startsWith(`:`))){if(t.startsWith(`event:`)){n=t.slice(6).trim();continue}t.startsWith(`data:`)&&r.push(t.slice(5).trimStart())}}if(!n)return null;let i,a=r.join(`
|
|
9
9
|
`);if(a)try{i=JSON.parse(a)}catch{i=a}return{name:n,payload:i}}function Br(e,t,n){let r=zr(e);r&&(r.name===`final`&&n(r.payload),t(r))}function Vr(e,t,n){let r=e,i=r.indexOf(`
|
|
10
10
|
|
|
11
11
|
`);for(;i!==-1;)Br(r.slice(0,i),t,n),r=r.slice(i+2),i=r.indexOf(`
|
|
12
12
|
|
|
13
|
-
`);return r}async function Hr(e,t){let n=e.body?.getReader();if(!n)throw Error(`SSE response body unavailable`);let r=new TextDecoder,i=``,a;try{for(;;){let{value:e,done:o}=await n.read();if(o)break;i+=r.decode(e,{stream:!0}),i=Vr(i,t,e=>{a=e})}i.trim()&&Br(i,t,e=>{a=e})}finally{n.releaseLock()}return a}function Ur(e,t){let n=e.replace(/\/$/,``);try{let e=new URL(n,window.location.origin);return`${e.protocol===`https:`?`wss:`:e.protocol===`http:`?`ws:`:e.protocol}//${e.host}${t}`}catch{return n.startsWith(`wss://`)||n.startsWith(`ws://`)?`${n}${t}`:n.startsWith(`https://`)?`${n.replace(/^https:/,`wss:`)}${t}`:n.startsWith(`http://`)?`${n.replace(/^http:/,`ws:`)}${t}`:`${n}${t}`}}function Wr(e,t){if(!e.ok){let n=Error(e.error?.message||t);return n.code=e.error?.code,n.details=e.error?.details,n}return Error(t)}function Gr(e){if(e instanceof Error){let t=e.name?.trim(),n=e.message?.trim();return t&&n?`${t}: ${n}`:n||t||`Unknown error`}return String(e??`Unknown error`)}function Kr(e,t){let n=Error(e);return t!==void 0&&(n.cause=t),n}var qr=class{constructor(e){this.wsUrl=e,this.socket=null,this.reconnectTimer=null,this.manualClose=!1,this.subscribers=new Set,this.subscribe=e=>(this.subscribers.add(e),this.subscribers.size===1?this.connect():this.socket?.readyState===WebSocket.OPEN&&e({type:`connection.open`,payload:{}}),()=>{this.subscribers.delete(e),this.subscribers.size===0&&this.disconnect()}),this.emit=e=>{for(let t of this.subscribers)t(e)},this.connect=()=>{if(this.socket&&(this.socket.readyState===WebSocket.CONNECTING||this.socket.readyState===WebSocket.OPEN))return;this.manualClose=!1;let e=new WebSocket(this.wsUrl);this.socket=e,e.onopen=()=>{this.emit({type:`connection.open`,payload:{}})},e.onmessage=e=>{try{let t=JSON.parse(String(e.data??``));this.emit(t)}catch(e){console.error(`Failed to parse websocket message:`,e)}},e.onerror=()=>{this.emit({type:`connection.error`,payload:{message:`websocket error`}})},e.onclose=()=>{this.emit({type:`connection.close`,payload:{}}),this.socket=null,!this.manualClose&&this.subscribers.size>0&&this.scheduleReconnect()}},this.scheduleReconnect=()=>{this.reconnectTimer===null&&(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},3e3))},this.disconnect=()=>{this.manualClose=!0,this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.socket?.close(),this.socket=null}}},Jr=class{constructor(e={}){this.options=e,this.request=async e=>{let t=Number.isFinite(e.timeoutMs)&&(e.timeoutMs??0)>0?Math.trunc(e.timeoutMs):null,n=t?new AbortController:null,r=t?window.setTimeout(()=>n?.abort(`Request timed out after ${t}ms: ${e.method} ${e.path}`),t):null,i=Yr(e.body);try{let t=await Rr(this.apiBase,e.path,{method:e.method,...i===void 0?{}:{body:i},...e.headers?{headers:e.headers}:{},signal:n?.signal??e.signal});if(!t.ok)throw Wr(t,`Request failed for ${e.method} ${e.path}`);return t.data}catch(t){if(n?.signal.aborted){let{reason:t}=n.signal;throw Error(typeof t==`string`&&t.trim()?t:`Request timed out: ${e.method} ${e.path}`)}throw t instanceof Error?t:Kr(`Request failed for ${e.method} ${e.path} | ${Gr(t)}`,t)}finally{r!==null&&window.clearTimeout(r)}},this.openStream=e=>{let t=new AbortController,n=()=>t.abort();return e.signal&&(e.signal.aborted?n():e.signal.addEventListener(`abort`,n,{once:!0})),{finished:(async()=>{let r;try{r=await fetch(`${this.apiBase}${e.path}`,{method:e.method,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`text/event-stream`},...e.body===void 0?{}:{body:JSON.stringify(e.body)},signal:t.signal})}catch(t){throw X.reportTransportFailure(Gr(t)),Kr(`Stream request failed for ${e.method} ${e.path} | ${Gr(t)}`,t)}if(!r.ok){let t=(await r.text()).trim();throw Error(t?`Stream request failed for ${e.method} ${e.path} | HTTP ${r.status} | ${t}`:`Stream request failed for ${e.method} ${e.path} | HTTP ${r.status}`)}try{return await Hr(r,e.onEvent)}finally{e.signal?.removeEventListener(`abort`,n)}})(),cancel:()=>t.abort()}},this.subscribe=e=>this.realtimeGateway.subscribe(e),this.apiBase=e.apiBase??((void 0)?.trim().replace(/\/$/,``)||(typeof window<`u`?window.location.origin:`http://127.0.0.1:55667`)),this.realtimeGateway=new qr(Ur(this.apiBase,e.wsPath??`/ws`))}};function Yr(e){if(e!==void 0)return e instanceof FormData||e instanceof URLSearchParams||e instanceof Blob||e instanceof ArrayBuffer||typeof e==`string`?e:JSON.stringify(e)}function Xr(e,t,n){if(typeof e==`object`&&e&&`ok`in e){let r=e;if(r.ok===!1&&r.error?.message){let e=Error(r.error.message);return e.code=r.error.code,e.details=r.error.details,e.status=t,e}if(r.ok===!0)return Error(n)}return typeof e==`string`&&e.trim()?Error(e.trim()):Error(`${n} (${t})`)}function Zr(e){if(typeof e==`object`&&e&&`ok`in e){let t=e;if(t.ok===!1){let e=Error(t.error?.message??`Remote request failed.`);throw e.code=t.error?.code,e.details=t.error?.details,e}if(t.ok===!0)return t.data}return e}function Qr(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}var $r=15e3,ei=class{constructor(e,t=(void 0)?.trim().replace(/\/$/,``)||(typeof window<`u`?window.location.origin:`http://127.0.0.1:55667`)){this.runtime=e,this.apiBase=t,this.socket=null,this.connectPromise=null,this.connectTimeoutId=null,this.reconnectTimer=null,this.manualClose=!1,this.subscribers=new Set,this.pendingRequests=new Map,this.pendingStreams=new Map,this.request=async e=>{await this.ensureSocket();let t=Qr(`req`),n=Number.isFinite(e.timeoutMs)&&(e.timeoutMs??0)>0?Math.trunc(e.timeoutMs):$r;return await new Promise((r,i)=>{let a=window.setTimeout(()=>{this.pendingRequests.delete(t),i(Error(`Timed out waiting for remote request response after ${n}ms: ${e.method} ${e.path}`))},n);this.pendingRequests.set(t,{resolve:e=>r(e),reject:i,timeoutId:a}),this.send({type:`request`,id:t,target:{method:e.method,path:e.path,...e.headers?{headers:e.headers}:{},...e.body===void 0?{}:{body:e.body}}})})},this.openStream=e=>{let t=Qr(`stream`),n=!1,r=e=>{n||(n=!0,a(e))},i,a,o=new Promise((e,t)=>{i=e,a=t}),s=()=>{this.pendingStreams.delete(t),!n&&(n=!0,this.send({type:`stream.cancel`,streamId:t}),a(Error(`stream cancelled`)))};this.pendingStreams.set(t,{onEvent:e.onEvent,finalResult:void 0,resolve:e=>{n||(n=!0,i(e))},reject:e=>{n||(n=!0,a(e))}});let c=()=>s();return e.signal&&(e.signal.aborted?s():e.signal.addEventListener(`abort`,c,{once:!0})),this.ensureSocket().then(()=>{n||this.send({type:`stream.open`,streamId:t,target:{method:e.method,path:e.path,...e.body===void 0?{}:{body:e.body}}})}).catch(e=>{this.pendingStreams.delete(t),r(e instanceof Error?e:Error(String(e)))}),{finished:o.finally(()=>{e.signal?.removeEventListener(`abort`,c),this.pendingStreams.delete(t)}),cancel:s}},this.subscribe=e=>(this.subscribers.add(e),this.ensureSocket().catch(t=>{e({type:`connection.error`,payload:{message:t instanceof Error?t.message:String(t)}})}),()=>{this.subscribers.delete(e)}),this.emit=e=>{for(let t of this.subscribers)t(e)},this.send=e=>{if(!this.socket||this.socket.readyState!==WebSocket.OPEN)throw Error(`Remote transport websocket is not connected.`);this.socket.send(JSON.stringify(e))},this.ensureSocket=async()=>{if(this.socket?.readyState===WebSocket.OPEN&&this.connectPromise===null)return;if(this.connectPromise)return await this.connectPromise;let e=Ur(this.apiBase,this.runtime.wsPath);this.manualClose=!1,this.connectPromise=new Promise((t,n)=>{let r=new WebSocket(e);this.socket=r;let i=!1,a=()=>{this.connectTimeoutId!==null&&(window.clearTimeout(this.connectTimeoutId),this.connectTimeoutId=null)};this.connectTimeoutId=window.setTimeout(()=>{this.connectTimeoutId=null,n(Error(`Timed out waiting for remote transport websocket.`)),r.close()},8e3),r.onopen=()=>{i=!0,a(),this.connectPromise=null,t(),this.emit({type:`connection.open`,payload:{}})},r.onmessage=e=>{try{let t=JSON.parse(String(e.data??``));if(t.type===`connection.ready`)return;this.handleFrame(t)}catch(e){console.error(`Failed to parse remote websocket frame:`,e)}},r.onerror=()=>{this.emit({type:`connection.error`,payload:{message:`remote websocket error`}})},r.onclose=()=>{a();let e=this.connectPromise!==null;this.socket=null,this.connectPromise=null,this.failPendingWork(Error(`Remote transport connection closed.`)),this.emit({type:`connection.close`,payload:{}}),e&&!i&&n(Error(`Remote transport connection closed before ready.`)),!this.manualClose&&this.subscribers.size>0&&this.scheduleReconnect()}});let{connectPromise:t}=this;return await t},this.scheduleReconnect=()=>{this.reconnectTimer===null&&(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.ensureSocket().catch(()=>void 0)},3e3))},this.failPendingWork=e=>{for(let t of this.pendingRequests.values())window.clearTimeout(t.timeoutId),t.reject(e);this.pendingRequests.clear();for(let t of this.pendingStreams.values())t.reject(e);this.pendingStreams.clear()},this.handleFrame=e=>{if(e.type===`response`||e.type===`request.error`){this.handleRequestFrame(e);return}if(e.type===`stream.event`||e.type===`stream.end`||e.type===`stream.error`){this.handleStreamFrame(e);return}if(e.type===`event`){this.emit(e.event);return}e.type===`connection.error`&&this.emit({type:`connection.error`,payload:{message:e.message}})},this.handleRequestFrame=e=>{let t=this.pendingRequests.get(e.id);if(t){if(this.pendingRequests.delete(e.id),window.clearTimeout(t.timeoutId),e.type===`request.error`){t.reject(Error(e.message));return}if(e.status>=400){t.reject(Xr(e.body,e.status,`Remote request failed.`));return}try{t.resolve(Zr(e.body))}catch(e){t.reject(e instanceof Error?e:Error(String(e)))}}},this.handleStreamFrame=e=>{let t=this.pendingStreams.get(e.streamId);if(t){if(e.type===`stream.event`){try{e.event===`final`&&(t.finalResult=e.payload),t.onEvent({name:e.event,payload:e.payload})}catch(n){this.pendingStreams.delete(e.streamId),t.reject(n instanceof Error?n:Error(String(n)))}return}if(this.pendingStreams.delete(e.streamId),e.type===`stream.end`){t.resolve(t.finalResult);return}t.reject(Error(e.message))}}}},ti=`/_remote/runtime`,ni={mode:`remote`,protocolVersion:1,wsPath:`/_remote/ws`};async function ri(e){let t=`${e.replace(/\/$/,``)}${ti}`,n;try{n=await fetch(t,{method:`GET`,credentials:`include`,cache:`no-store`})}catch{return new Jr({apiBase:e})}if(n.status===404)return new Jr({apiBase:e});if(!(n.headers.get(`content-type`)?.toLowerCase()??``).includes(`application/json`))return n.status>=400?new ei(ni,e):new Jr({apiBase:e});let r=null;try{r=await n.json()}catch{return n.status>=400?new ei(ni,e):new Jr({apiBase:e})}return n.ok&&r.ok&&r.data?.mode===`remote`?new ei(r.data,e):n.status>=400?new ei(ni,e):new Jr({apiBase:e})}var ii=new class{constructor(e=(void 0)?.trim().replace(/\/$/,``)||(typeof window<`u`?window.location.origin:`http://127.0.0.1:55667`)){this.apiBase=e,this.transportPromise=null,this.getTransport=async()=>(this.transportPromise||=ri(this.apiBase),await this.transportPromise),this.request=async e=>await(await this.getTransport()).request(e),this.openStream=e=>{let t=null,n,r,i=new Promise((e,t)=>{n=e,r=t});return this.getTransport().then(i=>{t=i.openStream(e),t.finished.then(n).catch(e=>{r(e instanceof Error?e:Error(String(e)))})}).catch(e=>{r(e instanceof Error?e:Error(String(e)))}),{finished:i,cancel:()=>t?.cancel()}},this.subscribe=e=>{let t=()=>{},n=!0;return this.getTransport().then(r=>{n&&(t=r.subscribe(e))}).catch(t=>{e({type:`connection.error`,payload:{message:t instanceof Error?t.message:String(t)}})}),()=>{n=!1,t()}}}};function ai(e){let t=e.trim().toLowerCase();return t?[`failed to fetch`,`networkerror`,`network request failed`,`load failed`,`request timed out`,`timed out waiting for remote request response`,`remote transport connection closed`,`websocket error`,`fetch failed on `,`stream request failed for `,`ncp fetch failed for `].some(e=>t.includes(e)):!1}var Q=new Dn({baseUrl:kn,transport:{request:async({body:e,headers:t,method:n,path:r,query:i,signal:a,timeoutMs:o})=>await ii.request({method:n,path:li(r,ci(i)),...e===void 0?{}:{body:e},...t?{headers:t}:{},...a?{signal:a}:{},...o===void 0?{}:{timeoutMs:o}}),upload:async({formData:e,headers:t,path:n,signal:r})=>{let i=await fetch(`${kn}${n}`,{method:`POST`,body:e,credentials:`include`,...t?{headers:t}:{},...r?{signal:r}:{}}),a=await i.json();if(!i.ok||!a.ok)throw new q({message:ui(a,`Upload failed for ${n}`),status:i.status,code:a.ok?void 0:a.error.code,details:a.ok?void 0:a.error.details});return a.data},subscribe:e=>ii.subscribe(e)}});async function $(e,t={}){let n=(t.method||`GET`).toUpperCase();try{return{ok:!0,data:await ii.request({method:n,path:e,...t.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t.body===void 0?{}:{body:si(t.body)}})}}catch(t){return{ok:!1,error:{code:`REQUEST_FAILED`,message:t instanceof Error?t.message:String(t),details:{method:n,endpoint:e}}}}}var oi={get:(e,t={})=>$(e,{...t,method:`GET`}),put:(e,t)=>$(e,{method:`PUT`,body:JSON.stringify(t)}),post:(e,t)=>$(e,{method:`POST`,body:JSON.stringify(t)}),delete:e=>$(e,{method:`DELETE`})};function si(e){if(e!=null){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}}function ci(e){if(!e)return;if(e instanceof URLSearchParams)return e;let t=new URLSearchParams;for(let[n,r]of Object.entries(e)){let e=Array.isArray(r)?r:[r];for(let r of e)r!=null&&t.append(n,String(r))}return t}function li(e,t){let n=t?.toString();return n?`${e}${e.includes(`?`)?`&`:`?`}${n}`:e}function ui(e,t){return e.ok?t:e.error.message}async function di(){return{agents:await Q.agents.list()}}async function fi(e,t){return await Q.agents.update(e,t)}async function pi(e){return await Q.agents.delete(e)}async function mi(e,t={}){return await Q.channelAuth.start(e,t)}async function hi(e,t){return await Q.channelAuth.poll(e,t)}async function gi(e,t){return await Q.channelAuth.connect(e,t)}async function _i(e={}){return await Q.auth.fetchStatus({timeoutMs:e.timeoutMs??5e3})}async function vi(e){return await Q.auth.setup(e)}async function yi(e){return await Q.auth.login(e)}async function bi(){return await Q.auth.logout()}async function xi(e){return await Q.auth.updatePassword(e)}async function Si(e){return await Q.auth.updateEnabled(e)}async function Ci(){return await Q.app.fetchMeta()}async function wi(e={}){return await Q.app.fetchBootstrapStatus(e)}async function Ti(){return await Q.config.fetch()}async function Ei(){return await Q.config.fetchMeta()}async function Di(){return await Q.providers.list()}async function Oi(){return await Q.providers.listTemplates()}async function ki(){return await Q.providers.listModelCatalog()}async function Ai(){return await Q.config.fetchSchema()}async function ji(e){return await Q.config.updateModel(e)}async function Mi(e){return await Q.config.updateSearch(e)}async function Ni(e,t){return await Q.providers.update(e,t)}async function Pi(e={}){return await Q.providers.create(e)}async function Fi(e){return await Q.providers.delete(e)}async function Ii(e,t){return await Q.providers.testConnection(e,t)}async function Li(e,t){return await Q.providers.discoverModels(e,t)}async function Ri(e,t={}){return await Q.providers.startAuth(e,t)}async function zi(e,t){return await Q.providers.pollAuth(e,t)}async function Bi(e){return await Q.providers.importAuthFromCli(e)}async function Vi(e,t){return await Q.config.updateChannel(e,t)}async function Hi(e){return await Q.config.updateRuntime(e)}async function Ui(e){return await Q.config.updateSecrets(e)}async function Wi(e){return await Q.config.updateProductAnalytics(e)}async function Gi(e,t){return await Q.config.executeAction(e,t)}async function Ki(){return await Q.config.fetchChatSessionTypes()}async function qi(e){return await Q.config.fetchCronJobs(e)}async function Ji(e){return await Q.config.deleteCronJob(e)}async function Yi(e,t){return await Q.config.setCronJobEnabled(e,t)}async function Xi(e,t){return await Q.config.runCronJob(e,t)}async function Zi(e){return await Q.marketplace.fetchItems(e)}async function Qi(e){return await Q.marketplace.fetchSkillContent(e)}async function $i(){return await Q.marketplace.fetchSkillScenes()}async function ea(e){return await Q.marketplace.install(e)}async function ta(e){return await Q.marketplace.fetchInstalled(e)}async function na(e){return await Q.marketplace.manage(e)}async function ra(e){return await Q.mcpMarketplace.fetchItems(e)}async function ia(){return await Q.mcpMarketplace.fetchInstalled()}async function aa(e){return await Q.mcpMarketplace.fetchContent(e)}async function oa(e){return await Q.mcpMarketplace.install({type:`mcp`,...e})}async function sa(e){return await Q.mcpMarketplace.manage({type:`mcp`,...e})}async function ca(e){return await Q.mcpMarketplace.doctor(e)}function la(e){return`${kn}/api/ncp/assets/content?${new URLSearchParams({uri:e}).toString()}`}async function ua(e){return(await Q.sessions.uploadAssets(e)).assets.map(e=>({id:e.id,name:e.name,mimeType:e.mimeType,sizeBytes:e.sizeBytes,assetUri:e.assetUri,url:e.url}))}async function da(e){return await Q.sessions.list(e)}async function fa(e,t={}){return await Q.sessions.listMessages(e,t)}async function pa(e,t,n,r){let i=(await fa(e,{cursor:n,limit:1,...r?{signal:r}:{}})).messages[0];if(!i||i.id!==t)throw Error(`Session message detail no longer matches ${t}.`);return i}async function ma(e){return await Q.sessions.getUsage(e)}async function ha(e){let t=await $(`/api/ncp/sessions/${encodeURIComponent(e)}/observations`);if(!t.ok)throw Error(t.error.message);return t.data}async function ga(e,t){let n=await $(`/api/ncp/sessions/${encodeURIComponent(e)}/observations/${t.kind}/${encodeURIComponent(t.id)}`,{method:`PATCH`,body:JSON.stringify({action:t.action})});if(!n.ok)throw Error(n.error.message);return n.data}async function _a(e,t){return await Q.sessions.listSkills(e,t)}async function va(e,t){return await Q.sessions.update(e,t)}async function ya(e){return await Q.sessions.compactContext(e)}async function ba(e){return await Q.sessions.delete(e)}async function xa(){return await Q.projects.list()}async function Sa(e){return await Q.projects.create(e)}async function Ca(e){return await Q.projects.addExisting(e)}function wa(e){return encodeURIComponent(e)}async function Ta(e){let t=await oi.get(`/api/preferences/${wa(e)}`);if(!t.ok)throw Error(t.error.message);return t.data}async function Ea(e,t){let n=await oi.put(`/api/preferences/${wa(e)}`,{value:t});if(!n.ok)throw Error(n.error.message);return n.data}var Da={chat:{modelFavorites:`chat.modelFavorites`,newSessionType:`chat.newSession.sessionType`}};function Oa(e){return e.lastMessageAt??e.createdAt??e.updatedAt}function ka(e){return e.metadata?.last_activity_preview?.state===`running`}function Aa(e){return[...e].sort((e,t)=>Oa(t).localeCompare(Oa(e)))}function ja(e,t){let n=t.updatedAt.localeCompare(e.updatedAt);return n===0?e.status===t.status||t.status===`idle`:n>0}function Ma(e,t){if(e[0]!==`ncp-sessions`)return!1;let n=typeof e[2]==`string`?e[2].trim():``;return!n||t.peerId===n}function Na(e,t){if(!e)return e;let n=e.sessions.findIndex(e=>e.sessionId===t.sessionId),r=Aa(n>=0?e.sessions.map((e,r)=>r===n&&ja(e,t)?{...t,status:t.status===`idle`&&ka(t)?e.status:t.status}:e):[...e.sessions,t]);return{...e,sessions:r,total:r.length}}function Pa(e,t){if(!e)return e;let n=t.trim();if(!n)return e;let r=e.sessions.filter(e=>e.sessionId!==n);return r.length===e.sessions.length?e:{...e,sessions:r,total:r.length}}function Fa(e,t){e?.setQueriesData({predicate:e=>Ma(e.queryKey,t)},e=>Na(e,t))}function Ia(e,t){if(!e)return e;let n=t.sessionKey.trim();if(!n)return e;let r=!1,i=e.sessions.map(e=>e.sessionId!==n||e.status===t.status?e:(r=!0,{...e,status:t.status}));return r?{...e,sessions:i}:e}function La(e,t){e?.setQueriesData({queryKey:[`ncp-sessions`]},e=>Ia(e,t))}function Ra(e,t){e?.setQueriesData({queryKey:[`ncp-sessions`]},e=>Pa(e,t))}function za(e,t){if(t.type===`session.run-status`){La(e,t.payload);return}if(t.type===`session.summary.upsert`){Fa(e,t.payload.summary),e?.invalidateQueries({queryKey:[`ncp-session-token-usage`,t.payload.summary.sessionId],exact:!0});return}Ra(e,t.payload.sessionKey)}async function Ba(){return await Q.remote.fetchStatus()}async function Va(){return await Q.remote.fetchDoctor()}async function Ha(e){return await Q.remote.startBrowserAuth(e)}async function Ua(e){return await Q.remote.pollBrowserAuth(e)}async function Wa(){return await Q.remote.logout()}async function Ga(e){return await Q.remote.updateAccountProfile(e)}async function Ka(e){return await Q.remote.updateSettings(e)}async function qa(e){return await Q.remote.controlService(e)}async function Ja(){return await Q.runtimeControl.fetch()}async function Ya(){return await Q.runtimeControl.startService()}async function Xa(){return await Q.runtimeControl.restartService()}async function Za(){return await Q.runtimeControl.stopService()}async function Qa(){let e=await $(`/api/runtime/extensions/catalog`);if(!e.ok)throw Error(e.error.message);return e.data}async function $a(){return await Q.runtimeUpdate.fetch()}async function eo(){return await Q.runtimeUpdate.check()}async function to(){return await Q.runtimeUpdate.download()}async function no(){return await Q.runtimeUpdate.apply()}async function ro(e){return await Q.runtimeUpdate.updateChannel(e)}var io=`/api/server-paths/content`;async function ao(e){return await Q.serverPaths.browse(e)}async function oo(e){return await Q.serverPaths.watch(e)}async function so(e){await Q.serverPaths.unwatch(e)}async function co(e){return await Q.serverPaths.createDirectory(e)}async function lo(e){return await Q.serverPaths.createFile(e)}async function uo(e){return await Q.serverPaths.renameEntry(e)}async function fo(e){return await Q.serverPaths.deleteEntry(e)}async function po(e){return await Q.serverPaths.uploadFiles(e)}async function mo(e){return await Q.serverPaths.read(e)}async function ho(e){return await Q.serverPaths.search(e)}function go(e,t){let n=e.trim(),r=n.startsWith(`/`)||/^[a-z]:[\\/]/i.test(n),i=t?.trim()??``;if(!r&&!i)return null;let a=new URLSearchParams({path:n});return i&&a.set(`basePath`,i),`${kn}${io}?${a.toString()}`}export{na as $,kn as $t,ya as A,we as An,pi as At,la as B,mr as Bt,Fa as C,Ue as Cn,Ni as Ct,Ca as D,V as Dn,gi as Dt,Ea as E,Ie as En,Ui as Et,_a as F,E as Fn,Pr as Ft,ra as G,$n as Gt,ca as H,tr as Ht,ma as I,u as In,_r as It,ta as J,Yn as Jt,oa as K,Z as Kt,da as L,br as Lt,pa as M,M as Mn,fi as Mt,fa as N,h as Nn,Q as Nt,Sa as O,De as On,hi as Ot,ha as P,T as Pn,ai as Pt,ea as Q,J as Qt,va as R,Cr as Rt,Ra as S,We as Sn,Wi as St,Ta as T,Re as Tn,Mi as Tt,aa as U,nr as Ut,ua as V,fr as Vt,ia as W,ar as Wt,Qi as X,qn as Xt,Zi as Y,Jn as Yt,$i as Z,X as Zt,Ua as _,Ye as _n,Yi as _t,ao as a,Nt as an,Ci as at,Ka as b,qe as bn,Vi as bt,uo as c,G as cn,Ai as ct,oo as d,kt as dn,ki as dt,q as en,Pi as et,Qa as f,Et as fn,Oi as ft,Wa as g,Xe as gn,Xi as gt,Ba as h,Ze as hn,zi as ht,fo as i,Pt as in,Gi as it,ba as j,ye as jn,di as jt,xa as k,Oe as kn,mi as kt,so as l,jt as ln,qi as lt,Va as m,U as mn,Bi as mt,co as n,Lt as nn,Fi as nt,mo as o,Mt as on,Ti as ot,qa as p,Tt as pn,Di as pt,sa as q,Xn as qt,lo as r,It as rn,Li as rt,ho as s,K as sn,Ei as st,go as t,Rt as tn,Ji as tt,po as u,At as un,Ki as ut,Ha as v,Ge as vn,Ri as vt,Da as w,Ve as wn,Hi as wt,za as x,He as xn,ji as xt,Ga as y,Je as yn,Ii as yt,ga as z,hr as zt};
|
|
13
|
+
`);return r}async function Hr(e,t){let n=e.body?.getReader();if(!n)throw Error(`SSE response body unavailable`);let r=new TextDecoder,i=``,a;try{for(;;){let{value:e,done:o}=await n.read();if(o)break;i+=r.decode(e,{stream:!0}),i=Vr(i,t,e=>{a=e})}i.trim()&&Br(i,t,e=>{a=e})}finally{n.releaseLock()}return a}function Ur(e,t){let n=e.replace(/\/$/,``);try{let e=new URL(n,window.location.origin);return`${e.protocol===`https:`?`wss:`:e.protocol===`http:`?`ws:`:e.protocol}//${e.host}${t}`}catch{return n.startsWith(`wss://`)||n.startsWith(`ws://`)?`${n}${t}`:n.startsWith(`https://`)?`${n.replace(/^https:/,`wss:`)}${t}`:n.startsWith(`http://`)?`${n.replace(/^http:/,`ws:`)}${t}`:`${n}${t}`}}function Wr(e,t){if(!e.ok){let n=Error(e.error?.message||t);return n.code=e.error?.code,n.details=e.error?.details,n}return Error(t)}function Gr(e){if(e instanceof Error){let t=e.name?.trim(),n=e.message?.trim();return t&&n?`${t}: ${n}`:n||t||`Unknown error`}return String(e??`Unknown error`)}function Kr(e,t){let n=Error(e);return t!==void 0&&(n.cause=t),n}var qr=class{constructor(e){this.wsUrl=e,this.socket=null,this.reconnectTimer=null,this.manualClose=!1,this.subscribers=new Set,this.subscribe=e=>(this.subscribers.add(e),this.subscribers.size===1?this.connect():this.socket?.readyState===WebSocket.OPEN&&e({type:`connection.open`,payload:{}}),()=>{this.subscribers.delete(e),this.subscribers.size===0&&this.disconnect()}),this.emit=e=>{for(let t of this.subscribers)t(e)},this.connect=()=>{if(this.socket&&(this.socket.readyState===WebSocket.CONNECTING||this.socket.readyState===WebSocket.OPEN))return;this.manualClose=!1;let e=new WebSocket(this.wsUrl);this.socket=e,e.onopen=()=>{this.emit({type:`connection.open`,payload:{}})},e.onmessage=e=>{try{let t=JSON.parse(String(e.data??``));this.emit(t)}catch(e){console.error(`Failed to parse websocket message:`,e)}},e.onerror=()=>{this.emit({type:`connection.error`,payload:{message:`websocket error`}})},e.onclose=()=>{this.emit({type:`connection.close`,payload:{}}),this.socket=null,!this.manualClose&&this.subscribers.size>0&&this.scheduleReconnect()}},this.scheduleReconnect=()=>{this.reconnectTimer===null&&(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},3e3))},this.disconnect=()=>{this.manualClose=!0,this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.socket?.close(),this.socket=null}}},Jr=class{constructor(e={}){this.options=e,this.request=async e=>{let t=Number.isFinite(e.timeoutMs)&&(e.timeoutMs??0)>0?Math.trunc(e.timeoutMs):null,n=t?new AbortController:null,r=t?window.setTimeout(()=>n?.abort(`Request timed out after ${t}ms: ${e.method} ${e.path}`),t):null,i=Yr(e.body);try{let t=await Rr(this.apiBase,e.path,{method:e.method,...i===void 0?{}:{body:i},...e.headers?{headers:e.headers}:{},signal:n?.signal??e.signal});if(!t.ok)throw Wr(t,`Request failed for ${e.method} ${e.path}`);return t.data}catch(t){if(n?.signal.aborted){let{reason:t}=n.signal;throw Error(typeof t==`string`&&t.trim()?t:`Request timed out: ${e.method} ${e.path}`)}throw t instanceof Error?t:Kr(`Request failed for ${e.method} ${e.path} | ${Gr(t)}`,t)}finally{r!==null&&window.clearTimeout(r)}},this.openStream=e=>{let t=new AbortController,n=()=>t.abort();return e.signal&&(e.signal.aborted?n():e.signal.addEventListener(`abort`,n,{once:!0})),{finished:(async()=>{let r;try{r=await fetch(`${this.apiBase}${e.path}`,{method:e.method,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`text/event-stream`},...e.body===void 0?{}:{body:JSON.stringify(e.body)},signal:t.signal})}catch(t){throw X.reportTransportFailure(Gr(t)),Kr(`Stream request failed for ${e.method} ${e.path} | ${Gr(t)}`,t)}if(!r.ok){let t=(await r.text()).trim();throw Error(t?`Stream request failed for ${e.method} ${e.path} | HTTP ${r.status} | ${t}`:`Stream request failed for ${e.method} ${e.path} | HTTP ${r.status}`)}try{return await Hr(r,e.onEvent)}finally{e.signal?.removeEventListener(`abort`,n)}})(),cancel:()=>t.abort()}},this.subscribe=e=>this.realtimeGateway.subscribe(e),this.apiBase=e.apiBase??((void 0)?.trim().replace(/\/$/,``)||(typeof window<`u`?window.location.origin:`http://127.0.0.1:55667`)),this.realtimeGateway=new qr(Ur(this.apiBase,e.wsPath??`/ws`))}};function Yr(e){if(e!==void 0)return e instanceof FormData||e instanceof URLSearchParams||e instanceof Blob||e instanceof ArrayBuffer||typeof e==`string`?e:JSON.stringify(e)}function Xr(e,t,n){if(typeof e==`object`&&e&&`ok`in e){let r=e;if(r.ok===!1&&r.error?.message){let e=Error(r.error.message);return e.code=r.error.code,e.details=r.error.details,e.status=t,e}if(r.ok===!0)return Error(n)}return typeof e==`string`&&e.trim()?Error(e.trim()):Error(`${n} (${t})`)}function Zr(e){if(typeof e==`object`&&e&&`ok`in e){let t=e;if(t.ok===!1){let e=Error(t.error?.message??`Remote request failed.`);throw e.code=t.error?.code,e.details=t.error?.details,e}if(t.ok===!0)return t.data}return e}function Qr(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}var $r=15e3,ei=class{constructor(e,t=(void 0)?.trim().replace(/\/$/,``)||(typeof window<`u`?window.location.origin:`http://127.0.0.1:55667`)){this.runtime=e,this.apiBase=t,this.socket=null,this.connectPromise=null,this.connectTimeoutId=null,this.reconnectTimer=null,this.manualClose=!1,this.subscribers=new Set,this.pendingRequests=new Map,this.pendingStreams=new Map,this.request=async e=>{await this.ensureSocket();let t=Qr(`req`),n=Number.isFinite(e.timeoutMs)&&(e.timeoutMs??0)>0?Math.trunc(e.timeoutMs):$r;return await new Promise((r,i)=>{let a=window.setTimeout(()=>{this.pendingRequests.delete(t),i(Error(`Timed out waiting for remote request response after ${n}ms: ${e.method} ${e.path}`))},n);this.pendingRequests.set(t,{resolve:e=>r(e),reject:i,timeoutId:a}),this.send({type:`request`,id:t,target:{method:e.method,path:e.path,...e.headers?{headers:e.headers}:{},...e.body===void 0?{}:{body:e.body}}})})},this.openStream=e=>{let t=Qr(`stream`),n=!1,r=e=>{n||(n=!0,a(e))},i,a,o=new Promise((e,t)=>{i=e,a=t}),s=()=>{this.pendingStreams.delete(t),!n&&(n=!0,this.send({type:`stream.cancel`,streamId:t}),a(Error(`stream cancelled`)))};this.pendingStreams.set(t,{onEvent:e.onEvent,finalResult:void 0,resolve:e=>{n||(n=!0,i(e))},reject:e=>{n||(n=!0,a(e))}});let c=()=>s();return e.signal&&(e.signal.aborted?s():e.signal.addEventListener(`abort`,c,{once:!0})),this.ensureSocket().then(()=>{n||this.send({type:`stream.open`,streamId:t,target:{method:e.method,path:e.path,...e.body===void 0?{}:{body:e.body}}})}).catch(e=>{this.pendingStreams.delete(t),r(e instanceof Error?e:Error(String(e)))}),{finished:o.finally(()=>{e.signal?.removeEventListener(`abort`,c),this.pendingStreams.delete(t)}),cancel:s}},this.subscribe=e=>(this.subscribers.add(e),this.ensureSocket().catch(t=>{e({type:`connection.error`,payload:{message:t instanceof Error?t.message:String(t)}})}),()=>{this.subscribers.delete(e)}),this.emit=e=>{for(let t of this.subscribers)t(e)},this.send=e=>{if(!this.socket||this.socket.readyState!==WebSocket.OPEN)throw Error(`Remote transport websocket is not connected.`);this.socket.send(JSON.stringify(e))},this.ensureSocket=async()=>{if(this.socket?.readyState===WebSocket.OPEN&&this.connectPromise===null)return;if(this.connectPromise)return await this.connectPromise;let e=Ur(this.apiBase,this.runtime.wsPath);this.manualClose=!1,this.connectPromise=new Promise((t,n)=>{let r=new WebSocket(e);this.socket=r;let i=!1,a=()=>{this.connectTimeoutId!==null&&(window.clearTimeout(this.connectTimeoutId),this.connectTimeoutId=null)};this.connectTimeoutId=window.setTimeout(()=>{this.connectTimeoutId=null,n(Error(`Timed out waiting for remote transport websocket.`)),r.close()},8e3),r.onopen=()=>{i=!0,a(),this.connectPromise=null,t(),this.emit({type:`connection.open`,payload:{}})},r.onmessage=e=>{try{let t=JSON.parse(String(e.data??``));if(t.type===`connection.ready`)return;this.handleFrame(t)}catch(e){console.error(`Failed to parse remote websocket frame:`,e)}},r.onerror=()=>{this.emit({type:`connection.error`,payload:{message:`remote websocket error`}})},r.onclose=()=>{a();let e=this.connectPromise!==null;this.socket=null,this.connectPromise=null,this.failPendingWork(Error(`Remote transport connection closed.`)),this.emit({type:`connection.close`,payload:{}}),e&&!i&&n(Error(`Remote transport connection closed before ready.`)),!this.manualClose&&this.subscribers.size>0&&this.scheduleReconnect()}});let{connectPromise:t}=this;return await t},this.scheduleReconnect=()=>{this.reconnectTimer===null&&(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.ensureSocket().catch(()=>void 0)},3e3))},this.failPendingWork=e=>{for(let t of this.pendingRequests.values())window.clearTimeout(t.timeoutId),t.reject(e);this.pendingRequests.clear();for(let t of this.pendingStreams.values())t.reject(e);this.pendingStreams.clear()},this.handleFrame=e=>{if(e.type===`response`||e.type===`request.error`){this.handleRequestFrame(e);return}if(e.type===`stream.event`||e.type===`stream.end`||e.type===`stream.error`){this.handleStreamFrame(e);return}if(e.type===`event`){this.emit(e.event);return}e.type===`connection.error`&&this.emit({type:`connection.error`,payload:{message:e.message}})},this.handleRequestFrame=e=>{let t=this.pendingRequests.get(e.id);if(t){if(this.pendingRequests.delete(e.id),window.clearTimeout(t.timeoutId),e.type===`request.error`){t.reject(Error(e.message));return}if(e.status>=400){t.reject(Xr(e.body,e.status,`Remote request failed.`));return}try{t.resolve(Zr(e.body))}catch(e){t.reject(e instanceof Error?e:Error(String(e)))}}},this.handleStreamFrame=e=>{let t=this.pendingStreams.get(e.streamId);if(t){if(e.type===`stream.event`){try{e.event===`final`&&(t.finalResult=e.payload),t.onEvent({name:e.event,payload:e.payload})}catch(n){this.pendingStreams.delete(e.streamId),t.reject(n instanceof Error?n:Error(String(n)))}return}if(this.pendingStreams.delete(e.streamId),e.type===`stream.end`){t.resolve(t.finalResult);return}t.reject(Error(e.message))}}}},ti=`/_remote/runtime`,ni={mode:`remote`,protocolVersion:1,wsPath:`/_remote/ws`};async function ri(e){let t=`${e.replace(/\/$/,``)}${ti}`,n;try{n=await fetch(t,{method:`GET`,credentials:`include`,cache:`no-store`})}catch{return new Jr({apiBase:e})}if(n.status===404)return new Jr({apiBase:e});if(!(n.headers.get(`content-type`)?.toLowerCase()??``).includes(`application/json`))return n.status>=400?new ei(ni,e):new Jr({apiBase:e});let r=null;try{r=await n.json()}catch{return n.status>=400?new ei(ni,e):new Jr({apiBase:e})}return n.ok&&r.ok&&r.data?.mode===`remote`?new ei(r.data,e):n.status>=400?new ei(ni,e):new Jr({apiBase:e})}var ii=new class{constructor(e=(void 0)?.trim().replace(/\/$/,``)||(typeof window<`u`?window.location.origin:`http://127.0.0.1:55667`)){this.apiBase=e,this.transportPromise=null,this.getTransport=async()=>(this.transportPromise||=ri(this.apiBase),await this.transportPromise),this.request=async e=>await(await this.getTransport()).request(e),this.openStream=e=>{let t=null,n,r,i=new Promise((e,t)=>{n=e,r=t});return this.getTransport().then(i=>{t=i.openStream(e),t.finished.then(n).catch(e=>{r(e instanceof Error?e:Error(String(e)))})}).catch(e=>{r(e instanceof Error?e:Error(String(e)))}),{finished:i,cancel:()=>t?.cancel()}},this.subscribe=e=>{let t=()=>{},n=!0;return this.getTransport().then(r=>{n&&(t=r.subscribe(e))}).catch(t=>{e({type:`connection.error`,payload:{message:t instanceof Error?t.message:String(t)}})}),()=>{n=!1,t()}}}};function ai(e){let t=e.trim().toLowerCase();return t?[`failed to fetch`,`networkerror`,`network request failed`,`load failed`,`request timed out`,`timed out waiting for remote request response`,`remote transport connection closed`,`websocket error`,`fetch failed on `,`stream request failed for `,`ncp fetch failed for `].some(e=>t.includes(e)):!1}var Q=new Dn({baseUrl:kn,transport:{request:async({body:e,headers:t,method:n,path:r,query:i,signal:a,timeoutMs:o})=>await ii.request({method:n,path:li(r,ci(i)),...e===void 0?{}:{body:e},...t?{headers:t}:{},...a?{signal:a}:{},...o===void 0?{}:{timeoutMs:o}}),upload:async({formData:e,headers:t,path:n,signal:r})=>{let i=await fetch(`${kn}${n}`,{method:`POST`,body:e,credentials:`include`,...t?{headers:t}:{},...r?{signal:r}:{}}),a=await i.json();if(!i.ok||!a.ok)throw new q({message:ui(a,`Upload failed for ${n}`),status:i.status,code:a.ok?void 0:a.error.code,details:a.ok?void 0:a.error.details});return a.data},subscribe:e=>ii.subscribe(e)}});async function $(e,t={}){let n=(t.method||`GET`).toUpperCase();try{return{ok:!0,data:await ii.request({method:n,path:e,...t.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t.body===void 0?{}:{body:si(t.body)}})}}catch(t){return{ok:!1,error:{code:`REQUEST_FAILED`,message:t instanceof Error?t.message:String(t),details:{method:n,endpoint:e}}}}}var oi={get:(e,t={})=>$(e,{...t,method:`GET`}),put:(e,t)=>$(e,{method:`PUT`,body:JSON.stringify(t)}),post:(e,t)=>$(e,{method:`POST`,body:JSON.stringify(t)}),delete:e=>$(e,{method:`DELETE`})};function si(e){if(e!=null){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}}function ci(e){if(!e)return;if(e instanceof URLSearchParams)return e;let t=new URLSearchParams;for(let[n,r]of Object.entries(e)){let e=Array.isArray(r)?r:[r];for(let r of e)r!=null&&t.append(n,String(r))}return t}function li(e,t){let n=t?.toString();return n?`${e}${e.includes(`?`)?`&`:`?`}${n}`:e}function ui(e,t){return e.ok?t:e.error.message}async function di(){return{agents:await Q.agents.list()}}async function fi(e,t){return await Q.agents.update(e,t)}async function pi(e){return await Q.agents.delete(e)}async function mi(e,t={}){return await Q.channelAuth.start(e,t)}async function hi(e,t){return await Q.channelAuth.poll(e,t)}async function gi(e,t){return await Q.channelAuth.connect(e,t)}async function _i(e={}){return await Q.auth.fetchStatus({timeoutMs:e.timeoutMs??5e3})}async function vi(e){return await Q.auth.setup(e)}async function yi(e){return await Q.auth.login(e)}async function bi(){return await Q.auth.logout()}async function xi(e){return await Q.auth.updatePassword(e)}async function Si(e){return await Q.auth.updateEnabled(e)}async function Ci(){return await Q.app.fetchMeta()}async function wi(e={}){return await Q.app.fetchBootstrapStatus(e)}async function Ti(){return await Q.config.fetch()}async function Ei(){return await Q.config.fetchMeta()}async function Di(){return await Q.providers.list()}async function Oi(){return await Q.providers.listTemplates()}async function ki(){return await Q.providers.listModelCatalog()}async function Ai(){return await Q.config.fetchSchema()}async function ji(e){return await Q.config.updateModel(e)}async function Mi(e){return await Q.config.updateSearch(e)}async function Ni(e,t){return await Q.providers.update(e,t)}async function Pi(e={}){return await Q.providers.create(e)}async function Fi(e){return await Q.providers.delete(e)}async function Ii(e,t){return await Q.providers.testConnection(e,t)}async function Li(e,t){return await Q.providers.discoverModels(e,t)}async function Ri(e,t={}){return await Q.providers.startAuth(e,t)}async function zi(e,t){return await Q.providers.pollAuth(e,t)}async function Bi(e){return await Q.providers.importAuthFromCli(e)}async function Vi(e,t){return await Q.config.updateChannel(e,t)}async function Hi(e){return await Q.config.updateRuntime(e)}async function Ui(e){return await Q.config.updateSecrets(e)}async function Wi(e){return await Q.config.updateProductAnalytics(e)}async function Gi(){return await Q.config.fetchProductAnalyticsStatus()}async function Ki(e,t){return await Q.config.executeAction(e,t)}async function qi(){return await Q.config.fetchChatSessionTypes()}async function Ji(e){return await Q.config.fetchCronJobs(e)}async function Yi(e){return await Q.config.deleteCronJob(e)}async function Xi(e,t){return await Q.config.setCronJobEnabled(e,t)}async function Zi(e,t){return await Q.config.runCronJob(e,t)}async function Qi(e){return await Q.marketplace.fetchItems(e)}async function $i(e){return await Q.marketplace.fetchSkillContent(e)}async function ea(){return await Q.marketplace.fetchSkillScenes()}async function ta(e){return await Q.marketplace.install(e)}async function na(e){return await Q.marketplace.fetchInstalled(e)}async function ra(e){return await Q.marketplace.manage(e)}async function ia(e){return await Q.mcpMarketplace.fetchItems(e)}async function aa(){return await Q.mcpMarketplace.fetchInstalled()}async function oa(e){return await Q.mcpMarketplace.fetchContent(e)}async function sa(e){return await Q.mcpMarketplace.install({type:`mcp`,...e})}async function ca(e){return await Q.mcpMarketplace.manage({type:`mcp`,...e})}async function la(e){return await Q.mcpMarketplace.doctor(e)}function ua(e){return`${kn}/api/ncp/assets/content?${new URLSearchParams({uri:e}).toString()}`}async function da(e){return(await Q.sessions.uploadAssets(e)).assets.map(e=>({id:e.id,name:e.name,mimeType:e.mimeType,sizeBytes:e.sizeBytes,assetUri:e.assetUri,url:e.url}))}async function fa(e){return await Q.sessions.list(e)}async function pa(e,t={}){return await Q.sessions.listMessages(e,t)}async function ma(e,t,n,r){let i=(await pa(e,{cursor:n,limit:1,...r?{signal:r}:{}})).messages[0];if(!i||i.id!==t)throw Error(`Session message detail no longer matches ${t}.`);return i}async function ha(e){return await Q.sessions.getUsage(e)}async function ga(e){let t=await $(`/api/ncp/sessions/${encodeURIComponent(e)}/observations`);if(!t.ok)throw Error(t.error.message);return t.data}async function _a(e,t){let n=await $(`/api/ncp/sessions/${encodeURIComponent(e)}/observations/${t.kind}/${encodeURIComponent(t.id)}`,{method:`PATCH`,body:JSON.stringify({action:t.action})});if(!n.ok)throw Error(n.error.message);return n.data}async function va(e,t){return await Q.sessions.listSkills(e,t)}async function ya(e,t){return await Q.sessions.update(e,t)}async function ba(e){return await Q.sessions.compactContext(e)}async function xa(e){return await Q.sessions.delete(e)}async function Sa(){return await Q.projects.list()}async function Ca(e){return await Q.projects.create(e)}async function wa(e){return await Q.projects.addExisting(e)}function Ta(e){return encodeURIComponent(e)}async function Ea(e){let t=await oi.get(`/api/preferences/${Ta(e)}`);if(!t.ok)throw Error(t.error.message);return t.data}async function Da(e,t){let n=await oi.put(`/api/preferences/${Ta(e)}`,{value:t});if(!n.ok)throw Error(n.error.message);return n.data}var Oa={chat:{modelFavorites:`chat.modelFavorites`,newSessionType:`chat.newSession.sessionType`}};function ka(e){return e.lastMessageAt??e.createdAt??e.updatedAt}function Aa(e){return e.metadata?.last_activity_preview?.state===`running`}function ja(e){return[...e].sort((e,t)=>ka(t).localeCompare(ka(e)))}function Ma(e,t){let n=t.updatedAt.localeCompare(e.updatedAt);return n===0?e.status===t.status||t.status===`idle`:n>0}function Na(e,t){if(e[0]!==`ncp-sessions`)return!1;let n=typeof e[2]==`string`?e[2].trim():``;return!n||t.peerId===n}function Pa(e,t){if(!e)return e;let n=e.sessions.findIndex(e=>e.sessionId===t.sessionId),r=ja(n>=0?e.sessions.map((e,r)=>r===n&&Ma(e,t)?{...t,status:t.status===`idle`&&Aa(t)?e.status:t.status}:e):[...e.sessions,t]);return{...e,sessions:r,total:r.length}}function Fa(e,t){if(!e)return e;let n=t.trim();if(!n)return e;let r=e.sessions.filter(e=>e.sessionId!==n);return r.length===e.sessions.length?e:{...e,sessions:r,total:r.length}}function Ia(e,t){e?.setQueriesData({predicate:e=>Na(e.queryKey,t)},e=>Pa(e,t))}function La(e,t){if(!e)return e;let n=t.sessionKey.trim();if(!n)return e;let r=!1,i=e.sessions.map(e=>e.sessionId!==n||e.status===t.status?e:(r=!0,{...e,status:t.status}));return r?{...e,sessions:i}:e}function Ra(e,t){e?.setQueriesData({queryKey:[`ncp-sessions`]},e=>La(e,t))}function za(e,t){e?.setQueriesData({queryKey:[`ncp-sessions`]},e=>Fa(e,t))}function Ba(e,t){if(t.type===`session.run-status`){Ra(e,t.payload);return}if(t.type===`session.summary.upsert`){Ia(e,t.payload.summary),e?.invalidateQueries({queryKey:[`ncp-session-token-usage`,t.payload.summary.sessionId],exact:!0});return}za(e,t.payload.sessionKey)}async function Va(){return await Q.remote.fetchStatus()}async function Ha(){return await Q.remote.fetchDoctor()}async function Ua(e){return await Q.remote.startBrowserAuth(e)}async function Wa(e){return await Q.remote.pollBrowserAuth(e)}async function Ga(){return await Q.remote.logout()}async function Ka(e){return await Q.remote.updateAccountProfile(e)}async function qa(e){return await Q.remote.updateSettings(e)}async function Ja(e){return await Q.remote.controlService(e)}async function Ya(){return await Q.runtimeControl.fetch()}async function Xa(){return await Q.runtimeControl.startService()}async function Za(){return await Q.runtimeControl.restartService()}async function Qa(){return await Q.runtimeControl.stopService()}async function $a(){let e=await $(`/api/runtime/extensions/catalog`);if(!e.ok)throw Error(e.error.message);return e.data}async function eo(){return await Q.runtimeUpdate.fetch()}async function to(){return await Q.runtimeUpdate.check()}async function no(){return await Q.runtimeUpdate.download()}async function ro(){return await Q.runtimeUpdate.apply()}async function io(e){return await Q.runtimeUpdate.updateChannel(e)}var ao=`/api/server-paths/content`;async function oo(e){return await Q.serverPaths.browse(e)}async function so(e){return await Q.serverPaths.watch(e)}async function co(e){await Q.serverPaths.unwatch(e)}async function lo(e){return await Q.serverPaths.createDirectory(e)}async function uo(e){return await Q.serverPaths.createFile(e)}async function fo(e){return await Q.serverPaths.renameEntry(e)}async function po(e){return await Q.serverPaths.deleteEntry(e)}async function mo(e){return await Q.serverPaths.uploadFiles(e)}async function ho(e){return await Q.serverPaths.read(e)}async function go(e){return await Q.serverPaths.search(e)}function _o(e,t){let n=e.trim(),r=n.startsWith(`/`)||/^[a-z]:[\\/]/i.test(n),i=t?.trim()??``;if(!r&&!i)return null;let a=new URLSearchParams({path:n});return i&&a.set(`basePath`,i),`${kn}${ao}?${a.toString()}`}export{ra as $,J as $t,ba as A,Oe as An,mi as At,ua as B,hr as Bt,Ia as C,We as Cn,Wi as Ct,wa as D,Ie as Dn,Ui as Dt,Da as E,Re as En,Mi as Et,va as F,T as Fn,ai as Ft,ia as G,ar as Gt,la as H,fr as Ht,ha as I,E as In,Pr as It,na as J,Xn as Jt,sa as K,$n as Kt,fa as L,u as Ln,_r as Lt,ma as M,ye as Mn,di as Mt,pa as N,M as Nn,fi as Nt,Ca as O,V as On,gi as Ot,ga as P,h as Pn,Q as Pt,ta as Q,X as Qt,ya as R,br as Rt,za as S,He as Sn,ji as St,Ea as T,Ve as Tn,Hi as Tt,oa as U,tr as Ut,da as V,mr as Vt,aa as W,nr as Wt,$i as X,Jn as Xt,Qi as Y,Yn as Yt,ea as Z,qn as Zt,Wa as _,Xe as _n,Zi as _t,oo as a,Pt as an,Ci as at,qa as b,Je as bn,Ii as bt,fo as c,K as cn,Ai as ct,so as d,At as dn,Gi as dt,kn as en,Pi as et,$a as f,kt as fn,ki as ft,Ga as g,Ze as gn,zi as gt,Va as h,U as hn,Bi as ht,po as i,It as in,Ki as it,xa as j,we as jn,pi as jt,Sa as k,De as kn,hi as kt,co as l,G as ln,Ji as lt,Ha as m,Tt as mn,Di as mt,lo as n,Rt as nn,Fi as nt,ho as o,Nt as on,Ti as ot,Ja as p,Et as pn,Oi as pt,ca as q,Z as qt,uo as r,Lt as rn,Li as rt,go as s,Mt as sn,Ei as st,_o as t,q as tn,Yi as tt,mo as u,jt as un,qi as ut,Ua as v,Ye as vn,Xi as vt,Oa as w,Ue as wn,Ni as wt,Ba as x,qe as xn,Vi as xt,Ka as y,Ge as yn,Ri as yt,_a as z,Cr as zt};
|