pisper 0.6.3 → 0.6.4
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/README.en.md +0 -6
- package/README.md +0 -6
- package/bin/pisper.mjs +7 -15
- package/lib/install.mjs +9 -49
- package/lib/npm-platform.mjs +0 -12
- package/package.json +8 -9
- package/web/.vite/manifest.json +713 -737
- package/web/assets/AppDialog-BOGrPFbo.js +1 -0
- package/web/assets/{AppOverlays-CR5iJcP5.js → AppOverlays-D1vfPPIC.js} +1 -1
- package/web/assets/AppSelect-BCexz4Ty.js +1 -0
- package/web/assets/{AppShortcuts-BachmLQ3.js → AppShortcuts-Dd4gu7qz.js} +1 -1
- package/web/assets/{AssetsPage-BltehMID.js → AssetsPage-BPhPo5eU.js} +1 -1
- package/web/assets/ChannelsPage-Cu4v-GU2.js +1 -0
- package/web/assets/ChatAppearancePage-BLRQ7aH6.js +2 -0
- package/web/assets/ChatHistoryPage-BYqJFbY5.js +1 -0
- package/web/assets/ChatPage-tqAIj2Go.js +554 -0
- package/web/assets/ConfigPage-Z-BQwP2X.js +1 -0
- package/web/assets/{DecisionsPage-DOhLbIaD.js → DecisionsPage-Db6MIGD2.js} +1 -1
- package/web/assets/{DesktopWindowControls-KmgemDO8.js → DesktopWindowControls-CBYGv94u.js} +1 -1
- package/web/assets/{FloatingWidgets-Bs7ec6lW.js → FloatingWidgets-dzsQIxAO.js} +1 -1
- package/web/assets/{GitDiffViewer-xm2LnN9r.js → GitDiffViewer-m5aLB7Li.js} +1 -1
- package/web/assets/MarkdownMessage-CA9ODRKk.js +2 -0
- package/web/assets/McpPage-rerFxjYZ.js +1 -0
- package/web/assets/MemoryPage-cukfU824.js +1 -0
- package/web/assets/MobileContextScreen-W8V4H3Xv.js +2 -0
- package/web/assets/MobileNavigation-CEVgs1Ke.js +1 -0
- package/web/assets/MobileShellContext-D8qX-BlM.js +1 -0
- package/web/assets/{PageHeader-C_bfu8Ir.js → PageHeader-DIs9bESb.js} +1 -1
- package/web/assets/{PluginsPage-BPx5ERHL.js → PluginsPage-09Um3mY4.js} +1 -1
- package/web/assets/QueryClientProvider-CHJtxoX1.js +1 -0
- package/web/assets/{QuickPromptIdeas-Bs-udcSZ.js → QuickPromptIdeas-DGIL0nN7.js} +1 -1
- package/web/assets/SchedulesPage-C75QUeB5.js +1 -0
- package/web/assets/SessionContextPanel-oaKXyi7k.js +1 -0
- package/web/assets/{SessionFilesPane-BIRQ_hHi.js → SessionFilesPane-DPijesqH.js} +2 -2
- package/web/assets/{SidebarMoreTools-BDqt5VTG.js → SidebarMoreTools-D1nDS3i0.js} +1 -1
- package/web/assets/SidebarRecentSessions-a7z2ZvDv.js +2 -0
- package/web/assets/{SidebarSettingsButton-B4_vEBS5.js → SidebarSettingsButton-CRdV0Vft.js} +1 -1
- package/web/assets/{SidebarUpdateStatus-DD8f4Fxv.js → SidebarUpdateStatus-DgNJBwgT.js} +1 -1
- package/web/assets/SkillsPage-DLirgTyX.js +1 -0
- package/web/assets/TerminalPanel-CJPy4Qhs.js +18 -0
- package/web/assets/{ThemeToggleButton-CXXbLtcY.js → ThemeToggleButton-C5QA5Kf2.js} +1 -1
- package/web/assets/{WebDesktopPet-DWFspeZE.js → WebDesktopPet-DgyHLE9y.js} +1 -1
- package/web/assets/{WorkbenchSidebarToggle-AgjfcT29.js → WorkbenchSidebarToggle-CcO1Al5A.js} +1 -1
- package/web/assets/WorkflowsPage-DrKHzJvb.js +1 -0
- package/web/assets/WorkspacePicker-B3liZkwe.js +1 -0
- package/web/assets/{api-Dzobr-o_.js → api-YI8_cHpR.js} +1 -1
- package/web/assets/{app-primitives-BBXY6U2S.js → app-primitives-SxfoFmHc.js} +1 -1
- package/web/assets/app-update-Bg6w1SOW.js +32 -0
- package/web/assets/arrow-up-DST6-qVQ.js +1 -0
- package/web/assets/catalog-BPCnu3F8.js +1 -0
- package/web/assets/channels-messages-DgWnmzUo.js +1 -0
- package/web/assets/chat-api-CqF-FICX.js +1 -0
- package/web/assets/{client-store-DPMvgPNS.js → client-store-BP_3-plw.js} +1 -1
- package/web/assets/{component-api-Nwo2yGZI.js → component-api-CN9Tcn5p.js} +1 -1
- package/web/assets/config-search-DOIJENN1.js +1 -0
- package/web/assets/dist-B7rNRXig.js +1 -0
- package/web/assets/dist-C3P9WH0T.js +1 -0
- package/web/assets/dist-CXiO_DNx.js +1 -0
- package/web/assets/dist-D8Wfxh48.js +1 -0
- package/web/assets/{dropdown-menu-DmL4pJTo.js → dropdown-menu-pKRdLJUe.js} +1 -1
- package/web/assets/{events-Bwv6HmwM.js → events-KqdUtjsm.js} +1 -1
- package/web/assets/{floating-widgets-store-DIy4GSy4.js → floating-widgets-store-Pjm1AdvO.js} +2 -2
- package/web/assets/folder-DPM8D8cf.js +1 -0
- package/web/assets/house-BNrzTkx9.js +1 -0
- package/web/assets/{http-DphgzWtw.js → http-Be2GB6DH.js} +1 -1
- package/web/assets/i18n-8nTnthu6.js +1 -0
- package/web/assets/{index-iBrSU61i.js → index-AF29hfx9.js} +2 -2
- package/web/assets/index-BAmsg90v.css +2 -0
- package/web/assets/monitor-ORxecA9m.js +1 -0
- package/web/assets/mount-app-WW5hteuX.js +9 -0
- package/web/assets/panels-top-left-BlZftvhg.js +1 -0
- package/web/assets/pick-system-directory-BnIFt85A.js +1 -0
- package/web/assets/{popover-BBuzaBfd.js → popover-CQqAaq-c.js} +1 -1
- package/web/assets/public-c36e4881.js +1 -0
- package/web/assets/public-components-C4ndcOCF.js +1 -0
- package/web/assets/{runtime-capabilities-store-DaWPY5y-.js → runtime-capabilities-store-CiL3ZPEo.js} +1 -1
- package/web/assets/scale-D0LcHVmf.js +1 -0
- package/web/assets/{session-change-summary-api-DFgTzTci.js → session-change-summary-api--7cl4LDn.js} +1 -1
- package/web/assets/session-context-store-DJnHgWwb.js +1 -0
- package/web/assets/session-list-DkNhT87s.js +1 -0
- package/web/assets/settings-navigation-CI7Yt4Or.js +1 -0
- package/web/assets/{shortcuts-BO-h6OmP.js → shortcuts-C_Cph88H.js} +1 -1
- package/web/assets/side-chat-context-Dn8w9ut8.js +3 -0
- package/web/assets/{sidebar-CfWEKOIK.js → sidebar-C3YJQV72.js} +1 -1
- package/web/assets/{speech-session-DKjw0mV_.js → speech-session-CoUr4n9Q.js} +1 -1
- package/web/assets/{startup-queries-CAQZvUIR.js → startup-queries-ByepQfGF.js} +1 -1
- package/web/assets/tabs-B60r4YwO.js +1 -0
- package/web/assets/{ui-store-2wpnH8Kf.js → ui-store-BGs-dEVz.js} +1 -1
- package/web/assets/{use-i18n-BSZKFkMb.js → use-i18n-a84Zp9dV.js} +1 -1
- package/web/assets/{useCustomUiComponents-BH86kuaq.js → useCustomUiComponents-BaQ_fwbr.js} +1 -1
- package/web/assets/useQuery-D3P5wO_Z.js +1 -0
- package/web/assets/web-preview-B7L-G6kp.js +1 -0
- package/web/assets/web-preview-events-C4AW4-It.js +1 -0
- package/web/index.html +2 -2
- package/web/assets/AppSelect-D149YYg1.js +0 -1
- package/web/assets/ChannelsPage-Tuw_qicj.js +0 -1
- package/web/assets/ChatAppearancePage-DME3PgDr.js +0 -2
- package/web/assets/ChatDockView-DoGtrBpY.js +0 -2
- package/web/assets/ChatHistoryPage-DTXS6i3n.js +0 -1
- package/web/assets/ChatPage-ibc_7olm.js +0 -4
- package/web/assets/ConfigPage-CI6one5Y.js +0 -1
- package/web/assets/MarkdownMessage-H1336cMr.js +0 -2
- package/web/assets/McpPage-Ck-7aLuZ.js +0 -1
- package/web/assets/MemoryPage-BEdNJ3ot.js +0 -1
- package/web/assets/MobileContextScreen-Dasny2J9.js +0 -2
- package/web/assets/MobileThreePane-DEKMHPfN.js +0 -1
- package/web/assets/SchedulesPage-W4Mg7frl.js +0 -1
- package/web/assets/SessionContextPanel-lu9F9AJg.js +0 -1
- package/web/assets/SidebarRecentSessions-1G_huYu9.js +0 -1
- package/web/assets/SkillsPage-CpRRosmo.js +0 -1
- package/web/assets/TerminalPanel-DVKC4htc.js +0 -18
- package/web/assets/Threads-B8ij_QtI.js +0 -1
- package/web/assets/WorkflowsPage-bhQlHSzS.js +0 -1
- package/web/assets/app-update-DppJNspd.js +0 -32
- package/web/assets/arrow-right-DqLOhpA2.js +0 -1
- package/web/assets/catalog-D4eaIju4.js +0 -1
- package/web/assets/channels-messages-CeRKS_DE.js +0 -1
- package/web/assets/chat-api-DfnvubiW.js +0 -1
- package/web/assets/chevron-left-BAtyp3_6.js +0 -1
- package/web/assets/config-search-CwVhh2uc.js +0 -1
- package/web/assets/dist-DAs5KRGl.js +0 -1
- package/web/assets/dist-swnK7PHk.js +0 -1
- package/web/assets/i18n-7QvbQzOQ.js +0 -1
- package/web/assets/index-CdASiNlI.css +0 -2
- package/web/assets/local-path-reveal-DWhkyox-.js +0 -1
- package/web/assets/mobile-shell-layout-CMpTmYRX.js +0 -1
- package/web/assets/mount-app-n_05p6iW.js +0 -9
- package/web/assets/panel-left-C_lYsiIA.js +0 -1
- package/web/assets/panel-right-BSUtqUd8.js +0 -1
- package/web/assets/pick-system-directory-R1F5WyaB.js +0 -1
- package/web/assets/pin-Dc2zE4cS.js +0 -1
- package/web/assets/public-BcTP7F3I.js +0 -1
- package/web/assets/public-components-Ck5BYo6M.js +0 -1
- package/web/assets/session-list-CMaoK_ZX.js +0 -1
- package/web/assets/session-streaming-state-llCTupbI.js +0 -3
- package/web/assets/side-chat-context-Dr2QLUJA.js +0 -1
- package/web/assets/tabs-DQYVDdOp.js +0 -1
- package/web/assets/use-animation-visibility-_Xe7jeUy.js +0 -1
- package/web/assets/useQuery-DdcpUQhO.js +0 -1
- package/web/assets/vendor-dockview-Bf3Gg83W.js +0 -1
- package/web/assets/vendor-dockview-D5adAaCg.css +0 -1
- package/web/assets/web-preview-BPNd1LUd.js +0 -1
- package/web/assets/web-preview-CQbpHjt1.js +0 -1
- package/web/assets/web-preview-events-o845ErdA.js +0 -1
- package/web/assets/web-preview-panel-DVQxVfig.js +0 -552
- package/web/assets/workflow-Bg94dy8I.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{i as n,n as r,r as i}from"./vendor-react-DwNgTV1j.js";import{t as a}from"./use-i18n-BSZKFkMb.js";import{t as o}from"./file-diff-GxOMJkLj.js";import{t as s}from"./x-07u4-129.js";import{t as c}from"./button-CQA36izu.js";var l=e(n(),1),u=e(r(),1);function d(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function f(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function p(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var m=(e,t)=>Math.abs(e-t)<1.01,h=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},g,_=()=>{if(g!==void 0)return g;if(typeof navigator>`u`)return g=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return g=!0;let e=navigator.maxTouchPoints;return g=navigator.platform===`MacIntel`&&e!==void 0&&e>0},v=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},y=e=>e,b=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},x=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(v(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(v(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},S={passive:!0},C=typeof window>`u`||`onscrollend`in window,w=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&C,o=0,s=a?null:h(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,S),a&&r.addEventListener(`scrollend`,u,S),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},T=(e,t)=>w(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),E=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},D=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},O=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:y,rangeExtractor:b,onChange:()=>{},measureElement:E,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=Math.max(0,e.start+t);n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=f(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.targetWindow=this.scrollElement&&`ownerDocument`in this.scrollElement?this.scrollElement.ownerDocument.defaultView:this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!_()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,S),e.addEventListener(`touchend`,n,S),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(_()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=f(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.getMeasurements=f(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let l=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._flatMeasurements;if(!a||a.length<i){let e=new Float64Array(i);a&&u>0&&e.set(a.subarray(0,u*2)),a=e,this._flatMeasurements=a}let o;if(u===0)o=t+n;else{let e=u-1;o=a[e*2]+a[e*2+1]+s}for(let t=u;t<e;t++){let e=r(t),n=l.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=o,a[t*2+1]=i,o+=i+s}let c=d(e,a,r);return this.measurementsCache=c,c}let f=this.measurementsCache.slice(0,u),p=Array(a).fill(void 0),m=new Float64Array(a),h=0;for(let e=0;e<u;e++){let t=f[e];t&&(p[t.lane]===void 0&&h++,p[t.lane]=e,m[t.lane]=t.end)}for(let i=u;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),u,d,g=o===`estimate`||l.has(e);if(c!==void 0&&this.options.lanes>1){u=c;let e=p[u],r=e===void 0?void 0:f[e];d=r?r.end+s:t+n}else if(h===a){let e=0,t=m[0],n=p[0];for(let r=1;r<a;r++){let i=m[r];(i<t||i===t&&p[r]<n)&&(e=r,t=i,n=p[r])}u=e,d=t+s,g&&this.laneAssignments.set(i,u)}else u=i%this.options.lanes,d=t+n,g&&this.laneAssignments.set(i,u);let _=l.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=d+v;f[i]={index:i,start:d,size:v,end:y,key:e,lane:u},p[u]===void 0&&h++,p[u]=i,m[u]=y}return this.measurementsCache=f,f},{key:!1,debug:()=>this.options.debug}),this.calculateRange=f(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=j(e,t,n,r,r===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=f(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f)}},this.getVirtualItems=f(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return p(t[k(0,t.length-1,r?e=>n[e*2]:e=>p(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`){if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t]}if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){return e===0?!1:_()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?(this._iosDeferredAdjustment+=e,!1):(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&m(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},k=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function A(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function j(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=A(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=k(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var M=typeof document<`u`?l.useLayoutEffect:l.useEffect;function N({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=l.useReducer(e=>e+1,0)[1],a=l.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}},s=e=>{let t=a.current;if(!t.enabled||!t.container)return;o(e);let n=!!e.options.horizontal,r=t.mode===`transform`,i=n?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let a of c){let o=a.start-s,c=e.elementsCache.get(a.key);c&&t.lastPositions.get(c)!==o&&(t.lastPositions.set(c,o),r?c.style.transform=n?`translate3d(${o}px, 0, 0)`:`translate3d(0, ${o}px, 0)`:c.style[i]=`${o}px`)}},c={...r,onChange:(t,n)=>{var o;let c=a.current,l=!0;if(c.enabled){s(t);let e=t.range,n=c.prevRange;l=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,l&&(c.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}l&&(e&&n?(0,u.flushSync)(i):i()),(o=r.onChange)==null||o.call(r,t,n)}},[d]=l.useState(()=>{let e=new O(c);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return d.setOptions(c),M(()=>d._didMount(),[]),M(()=>(o(d),d._willUpdate())),M(()=>{s(d)}),d}function P(e){return N({observeElementRect:x,observeElementOffset:T,scrollToFn:D,...e})}function F(e){let t=String(e||``).trim().split(` `)[0];if(t.startsWith(`"`)&&t.endsWith(`"`))try{t=JSON.parse(t)}catch{}return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function I(e){let t=e.match(/^diff --git "a\/(.+)" "b\/(.+)"$/);if(t)return F(`b/${t[2]}`);let n=e.match(/^diff --git a\/(.+) b\/(.+)$/);return n?F(`b/${n[2]}`):``}function L(){return{lineNumber:null,text:``,tone:`empty`}}function R(e){let t=e.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);return{oldLine:Number(t?.[1])||0,newLine:Number(t?.[2])||0}}function z(e){let t=String(e||``).replace(/\r\n/g,`
|
|
1
|
+
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{i as n,n as r,r as i}from"./vendor-react-DwNgTV1j.js";import{t as a}from"./use-i18n-a84Zp9dV.js";import{t as o}from"./file-diff-GxOMJkLj.js";import{t as s}from"./x-07u4-129.js";import{t as c}from"./button-CQA36izu.js";var l=e(n(),1),u=e(r(),1);function d(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function f(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function p(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var m=(e,t)=>Math.abs(e-t)<1.01,h=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},g,_=()=>{if(g!==void 0)return g;if(typeof navigator>`u`)return g=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return g=!0;let e=navigator.maxTouchPoints;return g=navigator.platform===`MacIntel`&&e!==void 0&&e>0},v=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},y=e=>e,b=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},x=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(v(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(v(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},S={passive:!0},C=typeof window>`u`||`onscrollend`in window,w=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&C,o=0,s=a?null:h(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,S),a&&r.addEventListener(`scrollend`,u,S),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},T=(e,t)=>w(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),E=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},D=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},O=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:y,rangeExtractor:b,onChange:()=>{},measureElement:E,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=Math.max(0,e.start+t);n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=f(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.targetWindow=this.scrollElement&&`ownerDocument`in this.scrollElement?this.scrollElement.ownerDocument.defaultView:this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!_()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,S),e.addEventListener(`touchend`,n,S),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(_()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=f(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.getMeasurements=f(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let l=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._flatMeasurements;if(!a||a.length<i){let e=new Float64Array(i);a&&u>0&&e.set(a.subarray(0,u*2)),a=e,this._flatMeasurements=a}let o;if(u===0)o=t+n;else{let e=u-1;o=a[e*2]+a[e*2+1]+s}for(let t=u;t<e;t++){let e=r(t),n=l.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=o,a[t*2+1]=i,o+=i+s}let c=d(e,a,r);return this.measurementsCache=c,c}let f=this.measurementsCache.slice(0,u),p=Array(a).fill(void 0),m=new Float64Array(a),h=0;for(let e=0;e<u;e++){let t=f[e];t&&(p[t.lane]===void 0&&h++,p[t.lane]=e,m[t.lane]=t.end)}for(let i=u;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),u,d,g=o===`estimate`||l.has(e);if(c!==void 0&&this.options.lanes>1){u=c;let e=p[u],r=e===void 0?void 0:f[e];d=r?r.end+s:t+n}else if(h===a){let e=0,t=m[0],n=p[0];for(let r=1;r<a;r++){let i=m[r];(i<t||i===t&&p[r]<n)&&(e=r,t=i,n=p[r])}u=e,d=t+s,g&&this.laneAssignments.set(i,u)}else u=i%this.options.lanes,d=t+n,g&&this.laneAssignments.set(i,u);let _=l.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=d+v;f[i]={index:i,start:d,size:v,end:y,key:e,lane:u},p[u]===void 0&&h++,p[u]=i,m[u]=y}return this.measurementsCache=f,f},{key:!1,debug:()=>this.options.debug}),this.calculateRange=f(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=j(e,t,n,r,r===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=f(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f)}},this.getVirtualItems=f(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return p(t[k(0,t.length-1,r?e=>n[e*2]:e=>p(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`){if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t]}if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){return e===0?!1:_()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?(this._iosDeferredAdjustment+=e,!1):(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&m(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},k=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function A(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function j(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=A(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=k(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var M=typeof document<`u`?l.useLayoutEffect:l.useEffect;function N({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=l.useReducer(e=>e+1,0)[1],a=l.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}},s=e=>{let t=a.current;if(!t.enabled||!t.container)return;o(e);let n=!!e.options.horizontal,r=t.mode===`transform`,i=n?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let a of c){let o=a.start-s,c=e.elementsCache.get(a.key);c&&t.lastPositions.get(c)!==o&&(t.lastPositions.set(c,o),r?c.style.transform=n?`translate3d(${o}px, 0, 0)`:`translate3d(0, ${o}px, 0)`:c.style[i]=`${o}px`)}},c={...r,onChange:(t,n)=>{var o;let c=a.current,l=!0;if(c.enabled){s(t);let e=t.range,n=c.prevRange;l=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,l&&(c.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}l&&(e&&n?(0,u.flushSync)(i):i()),(o=r.onChange)==null||o.call(r,t,n)}},[d]=l.useState(()=>{let e=new O(c);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return d.setOptions(c),M(()=>d._didMount(),[]),M(()=>(o(d),d._willUpdate())),M(()=>{s(d)}),d}function P(e){return N({observeElementRect:x,observeElementOffset:T,scrollToFn:D,...e})}function F(e){let t=String(e||``).trim().split(` `)[0];if(t.startsWith(`"`)&&t.endsWith(`"`))try{t=JSON.parse(t)}catch{}return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function I(e){let t=e.match(/^diff --git "a\/(.+)" "b\/(.+)"$/);if(t)return F(`b/${t[2]}`);let n=e.match(/^diff --git a\/(.+) b\/(.+)$/);return n?F(`b/${n[2]}`):``}function L(){return{lineNumber:null,text:``,tone:`empty`}}function R(e){let t=e.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);return{oldLine:Number(t?.[1])||0,newLine:Number(t?.[2])||0}}function z(e){let t=String(e||``).replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),n=[],r=null,i=null,a=0,o=0,s=[],c=[],l=()=>{if(!i||!s.length&&!c.length)return;let e=Math.max(s.length,c.length);for(let t=0;t<e;t+=1){let e=s[t],n=c[t];i.rows.push({kind:`pair`,old:e?{lineNumber:e.lineNumber,text:e.text,tone:`deleted`}:L(),next:n?{lineNumber:n.lineNumber,text:n.text,tone:`added`}:L()})}s=[],c=[]},u=()=>{l(),i=null},d=()=>{u(),r&&=(r.path=r.newPath||r.oldPath||r.path,n.push(r),null)};for(let e of t){if(e.startsWith(`diff --git `)){d(),r={oldPath:``,newPath:``,path:I(e),metadata:[],hunks:[]};continue}if(r){if(e.startsWith(`@@ `)){u();let t=R(e);a=t.oldLine,o=t.newLine,i={header:e,rows:[]},r.hunks.push(i);continue}if(i){if(e.startsWith(`-`))s.push({lineNumber:a,text:e.slice(1)}),a+=1;else if(e.startsWith(`+`))c.push({lineNumber:o,text:e.slice(1)}),o+=1;else if(l(),e.startsWith(` `)){let t=e.slice(1);i.rows.push({kind:`pair`,old:{lineNumber:a,text:t,tone:`context`},next:{lineNumber:o,text:t,tone:`context`}}),a+=1,o+=1}else e.startsWith(`\\ `)&&i.rows.push({kind:`meta`,text:e.slice(2)});continue}e.startsWith(`--- `)?r.oldPath=F(e.slice(4)):e.startsWith(`+++ `)?r.newPath=F(e.slice(4)):e.trim()&&r.metadata.push(e)}}return d(),n}var B=t({GitDiffDialog:()=>K}),V=i();function H({side:e,cell:t}){let n=t.tone===`deleted`?`−`:t.tone===`added`?`+`:` `;return(0,V.jsxs)(`div`,{className:`git-diff-cell grid min-w-0 min-h-[24px] grid-cols-[44px_20px_minmax(0,1fr)] [border-bottom:1px_solid_var(--stroke-soft)] font-[ui-monospace,SFMono-Regular,Consolas,'Liberation_Mono',monospace] text-[11px] leading-[1.55] [&.next]:[border-left:1px_solid_var(--stroke)] [&.deleted]:bg-[var(--danger-soft)] [&.added]:bg-[var(--success-soft)] [&.empty]:bg-[var(--surface-muted)] [&.context]:bg-[var(--solid)] [&_code]:block [&_code]:min-w-0 [&_code]:p-[3px_8px_3px_2px] [&_code]:text-[var(--text)] [&_code]:font-[inherit] [&_code]:whitespace-pre-wrap [&_code]:[overflow-wrap:anywhere] ${e} ${t.tone}`,children:[(0,V.jsx)(`span`,{className:`block [padding:3px_7px_3px_4px] [border-right:1px_solid_var(--stroke-soft)] text-[var(--text-muted)] text-right select-none`,children:t.lineNumber??``}),(0,V.jsx)(`span`,{className:`git-diff-line-marker [.git-diff-cell.deleted_&]:text-[var(--danger)] [.git-diff-cell.added_&]:text-[var(--success)] block [padding:3px_4px] text-[var(--text-muted)] text-center select-none`,"aria-hidden":`true`,children:t.tone===`empty`?``:n}),(0,V.jsx)(`code`,{children:t.text||`\xA0`})]})}function U({file:e,scrollElement:t}){let n=(0,l.useRef)(null),[r,i]=(0,l.useState)(0),a=(0,l.useMemo)(()=>e.hunks.flatMap((e,t)=>[{kind:`header`,hunkIndex:t,header:e.header},...e.rows.map((e,n)=>({kind:`row`,hunkIndex:t,rowIndex:n,row:e}))]),[e.hunks]);(0,l.useLayoutEffect)(()=>{let e=n.current;if(!t||!e)return;let r=()=>{let n=Math.max(0,e.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop);i(e=>Math.abs(e-n)<1?e:n)};r();let a=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return a?.observe(t),a?.observe(e),()=>a?.disconnect()},[t]);let o=P({count:a.length,getScrollElement:()=>t,estimateSize:()=>25,getItemKey:e=>{let t=a[e];return t.kind===`header`?`hunk-${t.hunkIndex}`:`row-${t.hunkIndex}-${t.rowIndex}`},measureElement:e=>Math.ceil(e.getBoundingClientRect().height),overscan:12,scrollMargin:r}),s=o.getVirtualItems();return(0,V.jsx)(`div`,{className:`relative min-w-[880px] w-full`,"data-pisper-diff-row-count":a.length,"data-pisper-rendered-count":s.length,ref:n,style:{height:`${o.getTotalSize()}px`},children:s.map(e=>{let t=a[e.index];return(0,V.jsx)(`div`,{className:`absolute left-0 w-full`,"data-index":e.index,ref:o.measureElement,style:{top:`${e.start-r}px`},children:t.kind===`header`?(0,V.jsx)(`div`,{className:`git-diff-hunk-header [border-bottom:1px_solid_var(--stroke-soft)] bg-[var(--blue-soft)] p-[4px_10px] text-[var(--brand-blue-strong)] font-[ui-monospace,SFMono-Regular,Consolas,'Liberation_Mono',monospace] text-[10px] [white-space:pre]`,children:t.header}):t.row.kind===`meta`?(0,V.jsx)(`div`,{className:`git-diff-row-meta [border-bottom:1px_solid_var(--stroke-soft)] bg-[var(--blue-soft)] p-[4px_10px] text-[var(--brand-blue-strong)] font-[ui-monospace,SFMono-Regular,Consolas,'Liberation_Mono',monospace] text-[10px] [white-space:pre] bg-[var(--surface-muted)] text-[var(--text-muted)]`,children:t.row.text}):(0,V.jsxs)(`div`,{className:`grid min-w-[880px] grid-cols-[minmax(440px,1fr)_minmax(440px,1fr)]`,children:[(0,V.jsx)(H,{side:`old`,cell:t.row.old}),(0,V.jsx)(H,{side:`next`,cell:t.row.next})]})},e.key)})})}function W(e){let t=e.path.replace(/\\/g,`/`),n=t.split(`/`),r=n.pop()||t,i=0,a=0;for(let t of e.hunks)for(let e of t.rows)e.kind===`pair`&&(e.next.tone===`added`&&(i+=1),e.old.tone===`deleted`&&(a+=1));let o=e.metadata.join(`
|
|
4
4
|
`),s=/(?:^|\n)new file mode /.test(o)||!e.oldPath&&e.newPath?`added`:/(?:^|\n)deleted file mode /.test(o)||!e.newPath&&e.oldPath?`deleted`:/(?:^|\n)rename (?:from|to) /.test(o)||e.oldPath&&e.newPath&&e.oldPath!==e.newPath?`renamed`:`modified`;return{file:e,name:r,directory:n.join(`/`),added:i,deleted:a,status:s}}function G(e){return e===`added`?`A`:e===`deleted`?`D`:e===`renamed`?`R`:`M`}function K({diff:e,truncated:t,onClose:n}){let{t:r}=a(),i=(0,l.useMemo)(()=>z(e),[e]),d=(0,l.useMemo)(()=>i.map(W),[i]),[f,p]=(0,l.useState)(0),[m,h]=(0,l.useState)(null),g=Math.min(f,Math.max(d.length-1,0)),_=d[g];(0,l.useEffect)(()=>{let e=document.body.style.overflow,t=e=>{e.key===`Escape`&&n()};return document.body.style.overflow=`hidden`,document.addEventListener(`keydown`,t),()=>{document.body.style.overflow=e,document.removeEventListener(`keydown`,t)}},[n]);let v=e=>{p(e),m?.scrollTo({top:0,left:0})};return(0,u.createPortal)((0,V.jsx)(`div`,{className:`git-diff-dialog-backdrop max-[760px]:p-[10px] fixed z-[120] inset-0 grid place-items-center bg-[rgb(0_0_0/.48)] [padding:24px] [backdrop-filter:blur(3px)]`,role:`presentation`,onMouseDown:e=>e.target===e.currentTarget&&n(),children:(0,V.jsxs)(`section`,{className:`git-diff-dialog max-[760px]:w-[calc(100vw_-_20px)] max-[760px]:h-[calc(100vh_-_20px)] flex w-[min(1180px,calc(100vw_-_48px))] h-[min(820px,calc(100vh_-_48px))] min-w-0 min-h-0 flex-col overflow-hidden [border:1px_solid_var(--stroke)] rounded-[var(--r-lg)] bg-[var(--solid)] shadow-[0_28px_90px_-24px_rgb(0_0_0/.65)]`,role:`dialog`,"aria-modal":`true`,"aria-label":r(`chat:focusSession.gitViewDiff`),children:[(0,V.jsxs)(`header`,{className:`git-diff-dialog-head [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:min-w-0 [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[2px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[11px] grid min-h-[54px] flex-none grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[10px] [border-bottom:1px_solid_var(--stroke)] [padding:8px_12px]`,children:[(0,V.jsx)(`span`,{className:`grid w-[34px] h-[34px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)]`,children:(0,V.jsx)(o,{size:17})}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:r(`chat:focusSession.gitViewDiff`)}),(0,V.jsx)(`small`,{children:r(`chat:focusSession.gitDiffFileCount`,{count:i.length})})]}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,title:r(`chat:focusSession.gitCloseDiff`),"aria-label":r(`chat:focusSession.gitCloseDiff`),onClick:n,children:(0,V.jsx)(s,{size:17})})]}),d.length?(0,V.jsxs)(`div`,{className:`git-diff-layout max-[760px]:grid-rows-[minmax(112px,26vh)_minmax(0,1fr)] max-[760px]:grid-cols-[minmax(0,1fr)] grid min-w-0 min-h-0 flex-1 grid-cols-[252px_minmax(0,1fr)] overflow-hidden`,children:[(0,V.jsxs)(`nav`,{className:`git-diff-file-nav max-[760px]:[border-right:0] max-[760px]:[border-bottom:1px_solid_var(--stroke)] flex min-w-0 min-h-0 flex-col overflow-hidden [border-right:1px_solid_var(--stroke)] bg-[var(--surface-muted)]`,"aria-label":r(`chat:focusSession.gitDiffChangedFiles`),children:[(0,V.jsx)(`strong`,{className:`git-diff-file-nav-title max-[760px]:[padding-block:7px_5px] flex-none [padding:10px_12px_8px] text-[var(--text-muted)] text-[10px] font-[700] tracking-[.055em] [text-transform:uppercase]`,children:r(`chat:focusSession.gitDiffChangedFiles`)}),(0,V.jsx)(`div`,{className:`git-diff-file-nav-list max-[760px]:pb-[6px] min-h-0 flex-1 overflow-x-hidden overflow-y-auto [padding:0_6px_8px]`,children:d.map((e,t)=>{let n=t===g;return(0,V.jsxs)(`button`,{type:`button`,className:`git-diff-file-nav-item hover:bg-[var(--surface-hover)] hover:text-[var(--text)] [&.selected]:bg-[var(--accent-soft)] [&.selected]:text-[var(--text)] [&.selected]:shadow-[inset_2px_0_var(--star-strong)] grid w-full min-h-[42px] grid-cols-[20px_minmax(0,1fr)_auto] items-center gap-[7px] border-0 rounded-[var(--r-sm)] bg-transparent [padding:5px_7px] text-[var(--text-secondary)] text-left cursor-pointer ${e.status} ${n?`selected`:``}`,title:e.file.path,"aria-current":n?`true`:void 0,onClick:()=>v(t),children:[(0,V.jsx)(`span`,{className:`git-diff-file-status font-[ui-monospace,SFMono-Regular,Consolas,'Liberation_Mono',monospace] text-[11px] font-[750] text-center [.git-diff-file-nav-item.added_&]:text-[var(--success)] [.git-diff-file-nav-item.deleted_&]:text-[var(--danger)] [.git-diff-file-nav-item.renamed_&]:text-[var(--warning-strong)] [.git-diff-file-nav-item.modified_&]:text-[var(--star-strong)]`,"aria-hidden":`true`,children:G(e.status)}),(0,V.jsxs)(`span`,{className:`git-diff-file-name [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap [&_strong]:text-[11px] [&_strong]:font-[650] [&_small]:text-[var(--text-muted)] [&_small]:text-[9px] flex min-w-0 flex-col gap-[1px]`,children:[(0,V.jsx)(`strong`,{children:e.name}),e.directory&&(0,V.jsx)(`small`,{children:e.directory})]}),(0,V.jsxs)(`span`,{className:`git-diff-file-stats inline-flex items-center gap-[4px] font-[ui-monospace,SFMono-Regular,Consolas,'Liberation_Mono',monospace] text-[9px] [&_em]:[font-style:normal]`,"aria-hidden":`true`,children:[e.added>0&&(0,V.jsxs)(`em`,{className:`added [.git-diff-file-stats_&]:text-[var(--success)]`,children:[`+`,e.added]}),e.deleted>0&&(0,V.jsxs)(`em`,{className:`deleted [.git-diff-file-stats_&]:text-[var(--danger)]`,children:[`−`,e.deleted]})]})]},`${e.file.path}-${t}`)})})]}),(0,V.jsxs)(`div`,{className:`min-w-0 min-h-0 overflow-auto bg-[var(--surface-subtle)] [padding:12px]`,ref:h,children:[t&&(0,V.jsx)(`div`,{className:`[margin:0_0_12px] [border:1px_solid_var(--warning-border)] rounded-[var(--r-sm)] bg-[var(--warning-soft)] [padding:8px_10px] text-[var(--warning-strong)] text-[11px]`,children:r(`chat:focusSession.gitDiffTruncated`)}),_&&(0,V.jsxs)(`section`,{className:`min-w-[880px] [overflow:clip] [border:1px_solid_var(--stroke)] rounded-[var(--r-md)] bg-[var(--solid)]`,children:[(0,V.jsxs)(`header`,{className:`git-diff-file-head [&_>_svg]:text-[var(--star-strong)] [&_strong]:overflow-hidden [&_strong]:font-[ui-monospace,SFMono-Regular,Consolas,'Liberation_Mono',monospace] [&_strong]:text-[12px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_small]:max-w-[300px] [&_small]:overflow-hidden [&_small]:text-[var(--text-muted)] [&_small]:text-[10px] [&_small]:text-ellipsis [&_small]:whitespace-nowrap sticky z-[3] top-0 grid min-h-[38px] grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[8px] [border-bottom:1px_solid_var(--stroke)] bg-[var(--solid)] [padding:7px_10px]`,children:[(0,V.jsx)(o,{size:14}),(0,V.jsx)(`strong`,{title:_.file.path,children:_.file.path}),_.file.oldPath&&_.file.newPath&&_.file.oldPath!==_.file.newPath&&(0,V.jsx)(`small`,{title:_.file.oldPath,children:_.file.oldPath})]}),_.file.metadata.length>0&&(0,V.jsx)(`div`,{className:`git-diff-file-meta [border-bottom:1px_solid_var(--stroke-soft)] bg-[var(--surface-muted)] p-[5px_10px] text-[var(--text-muted)] font-[ui-monospace,SFMono-Regular,Consolas,'Liberation_Mono',monospace] text-[10px]`,children:_.file.metadata.join(` · `)}),_.file.hunks.length>0?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`git-diff-column-head [&_span]:p-[5px_10px] [&_span_+_span]:[border-left:1px_solid_var(--stroke)] sticky z-[2] [top:38px] grid grid-cols-[1fr_1fr] [border-bottom:1px_solid_var(--stroke)] bg-[var(--surface-muted)] text-[var(--text-muted)] text-[10px] font-[650] [text-transform:uppercase]`,children:[(0,V.jsx)(`span`,{children:r(`chat:focusSession.gitDiffOriginal`)}),(0,V.jsx)(`span`,{children:r(`chat:focusSession.gitDiffModified`)})]}),(0,V.jsx)(U,{file:_.file,scrollElement:m})]}):(0,V.jsx)(`div`,{className:`[padding:28px_16px] text-[var(--text-muted)] text-[12px] text-center`,children:r(`chat:focusSession.gitDiffNoTextChanges`)})]},_.file.path)]})]}):(0,V.jsx)(`div`,{className:`min-w-0 min-h-0 flex-1 bg-[var(--surface-subtle)] overflow-auto [padding:12px]`,children:(0,V.jsx)(`div`,{className:`[border:1px_solid_var(--stroke)] rounded-[var(--r-md)] bg-[var(--solid)] [padding:20px] text-[var(--text-muted)] whitespace-pre-wrap`,children:e||r(`chat:focusSession.gitDiffUnavailable`)})})]})}),document.body)}export{B as n,P as r,K as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-markdown-plugins-DisoihU3.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-shiki-runtime-UFMr0O-Q.js","assets/vendor-router-CZg2bCPV.js","assets/vendor-react-DwNgTV1j.js","assets/vendor-markdown-plugins-DEcVZfaU.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{p as t}from"./vendor-router-CZg2bCPV.js";import{n,t as r}from"./vendor-markdown-plugins-DisoihU3.js";import{i,r as a}from"./vendor-react-DwNgTV1j.js";import{a as o,i as s,n as c,r as l,t as u}from"./vendor-markdown-Ck4Y_w0n.js";import{n as d,r as ee,t as te}from"./vendor-shiki-runtime-UFMr0O-Q.js";import{t as f}from"./use-i18n-a84Zp9dV.js";import{t as p}from"./utils-C8uzG5AZ.js";import{t as m}from"./check-2vYc6QaP.js";import{t as h}from"./copy-DHmIFc52.js";import{t as ne}from"./button-CQA36izu.js";import{t as re}from"./route-context-DvWDul4T.js";var g=e(i(),1),_=[`github-dark`,`github-dark`],v=150,y=new Set([`text`,`txt`,`plain`,`plaintext`]),b=new Map;for(let e of d){b.set(e.id,e.id);for(let t of e.aliases??[])b.set(t,e.id)}function x(e){return typeof e==`string`?e:e.name??`custom`}function S(e){let t=String(e||``).trim().toLowerCase();return b.get(t)??`text`}function C(e,t,n){return`${t}:${x(n[0])}:${x(n[1])}:${e.length}:${e.slice(0,64)}:${e.slice(-64)}`}var w=new Map;function ie(e){let t=w.get(e);return t&&(w.delete(e),w.set(e,t)),t}function ae(e,t){for(w.delete(e),w.set(e,t);w.size>v;){let e=w.keys().next().value;if(e===void 0)break;w.delete(e)}}var T=null,E=new Map;function oe(){return T??=ee({themes:[..._],langs:[],engine:te({forgiving:!0})}),T}function se(e,t){if(y.has(t)||e.getLoadedLanguages().includes(t))return Promise.resolve();let n=d.find(e=>e.id===t);if(!n)return Promise.resolve();let r=E.get(t);return r||(r=e.loadLanguage(()=>n.import().then(e=>e.default)).catch(e=>{throw E.delete(t),e}),E.set(t,r)),r}var D=new Map;function ce(){return{name:`shiki`,type:`code-highlighter`,supportsLanguage(e){return b.has(String(e||``).trim().toLowerCase())},getSupportedLanguages(){return d.map(e=>e.id)},getThemes(){return _},highlight({code:e,language:t,themes:n},r){let i=S(t),a=C(e,i,n),o=ie(a);if(o)return o;let s=D.get(a),c=!!s;return s||(s=new Set,D.set(a,s)),r&&s.add(r),c||(async()=>{try{let t=await oe();await se(t,i);let r=t.getLoadedLanguages().includes(i)?i:`text`,o=t.codeToTokens(e,{lang:r,themes:{light:n[0],dark:n[1]}});ae(a,o);let s=D.get(a);if(D.delete(a),s)for(let e of s)e(o)}catch(e){D.delete(a),console.error(`[streamdown] Failed to highlight code:`,e)}})(),null}}}var le=ce(),ue={cjk:n,code:le,math:r};function O(){let e=``,t=[];return n=>{if(n===e)return t;if(t.length>0&&n.startsWith(e)){let r=t[t.length-1],i=e.length-r.length;if(i<0||e.slice(i)!==r)return e=n,t=l(n),t;let a=l(n.slice(i)),o=[...t.slice(0,-1),...a];return e=n,t=o,o}return e=n,t=l(n),t}}var k=100,A=new Map;function j(e){let t=A.get(e);if(t)return A.delete(e),A.set(e,t),t;let n=l(e);if(A.set(e,n),A.size>k){let e=A.keys().next().value;e!==void 0&&A.delete(e)}return n}var M=null;function N(){return M??=t(()=>import(`./vendor-markdown-plugins-DisoihU3.js`).then(e=>e.O),__vite__mapDeps([0,1,2,3,4,5])),M}function P(e){return/\$\$|\\\(|\\\[|\$[^\n$]+\$|\\begin\{/.test(e)}var F=`https://local-file.pisper.invalid`,I=`/reveal`;function L(e){try{return decodeURIComponent(e)}catch{return e}}function R(e){return[...e].some(e=>{let t=e.codePointAt(0)||0;return t<32||t===127})}function z(e){return/^(?:[A-Za-z]:[\\/]|\/|\\\\)/.test(e)}function B(e){let t=e.match(/:(\d+)(?::(\d+))?$/);if(!t)return{path:e};let n={path:e.slice(0,-t[0].length),line:Number(t[1])};return t[2]&&(n.column=Number(t[2])),n}function V(e){try{let t=new URL(e);if(t.protocol!==`file:`||t.username||t.password||t.port)return null;let n=t.pathname;return t.hostname&&t.hostname!==`localhost`?`//${t.hostname}${n}`:/^\/[A-Za-z]:[\\/]/.test(n)?n.slice(1):n}catch{return null}}function H(e){return!e||/^[\\/]/.test(e)||/^[A-Za-z][A-Za-z0-9+.-]*:/.test(e)?!1:!e.split(/[\\/]/).includes(`..`)}function U(e,t){let n=e.replace(/[\\/]+$/,``);if(!n)return e.startsWith(`/`)?`/`+t.replace(/^(?:\.\/)+/,``):``;let r=e.includes(`\\`)?`\\`:`/`,i=t.replace(/^[\\/]+/,``).replace(/^(?:\.[/])+/g,``);return n+r+i}function de(e,t){let n=e.trim();if(!n||R(n))return null;let r=/^file:/i.test(n);if(!r&&/[?#]/.test(n))return null;let i=r?V(n):n;if(!i)return null;let a=B(i),o=L(a.path);if(!o||R(o))return null;let s=/^\/[A-Za-z]:[\\/]/.test(o)?o.slice(1):o;if(z(s))return{...a,path:s};if(/^[A-Za-z][A-Za-z0-9+.-]*:/.test(i)&&!a.path.includes(`.`)||!t)return null;let c=t.trim();if(!z(c)||R(c)||!H(o))return null;let l=U(c,o);return z(l)?{...a,path:l}:null}function fe(e){let t=new URL(I,F);return t.searchParams.set(`path`,e.path),e.line!==void 0&&t.searchParams.set(`line`,String(e.line)),e.column!==void 0&&t.searchParams.set(`column`,String(e.column)),t.href}function pe(e){try{let t=new URL(e);if(t.origin!==F||t.pathname!==I)return null;let n=t.searchParams.get(`path`)||``;if(!z(n)||R(n))return null;let r=Number(t.searchParams.get(`line`)),i=Number(t.searchParams.get(`column`)),a={path:n};return Number.isSafeInteger(r)&&r>0&&(a.line=r),Number.isSafeInteger(i)&&i>0&&(a.column=i),a}catch{return null}}function me(e){return t=>{let n=t=>{if(t.type===`link`&&typeof t.url==`string`){let n=de(t.url,e);n&&(t.url=fe(n))}for(let e of t.children||[])n(e)};n(t)}}async function W(e){let t=await fetch(`/api/desktop/reveal-path`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}),n={};try{n=await t.json()}catch{}if(!t.ok)throw Error(n.error||`HTTP ${t.status}`);return n.revealed===!0}var G=class extends Error{reason;constructor(e){super(`local-reveal:${e}`),this.reason=e,this.name=`LocalPathRevealError`}};async function K(e,t){if(typeof t!=`function`)throw new G(`unavailable`);let n;try{if(await Promise.race([Promise.resolve().then(()=>t(e)),new Promise((e,t)=>{n=setTimeout(()=>t(new G(`timeout`)),8e3)})])!==!0)throw new G(`failed`)}finally{clearTimeout(n)}}var q=a(),he={a:Z,code:Ce,img:ye,strong:be,table:xe},ge=!1,_e={linkMode:`text-only`};function J(e,t){window.dispatchEvent(new CustomEvent(re,{detail:{message:e,tone:t}}))}function Y(e){return typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Y).join(``):(0,g.isValidElement)(e)?Y(e.props.children):``}function ve(e){return String(e||``).match(/language-([\w-]+)/)?.[1]||`text`}function X(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);let t=document.createElement(`textarea`);return t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.append(t),t.select(),document.execCommand(`copy`),t.remove(),Promise.resolve()}function Z({children:e,node:t,className:n,href:r,...i}){let{t:a}=f(),[o,s]=(0,g.useState)(!1),[c,l]=(0,g.useState)(``),u=Y(e).trim()?e:r;if(!r)return(0,q.jsx)(`span`,{className:p(`markdown-link`,n),children:u});let d=pe(r);if(d){let e=a(`common:markdownMessage.revealLocalPath`,{path:d.path}),t=async()=>{s(!0),l(``);try{await K(d.path,W),J(a(`common:markdownMessage.revealLocalPathOk`,{path:d.path}),`info`)}catch(e){let t=e instanceof G&&e.reason===`unavailable`?a(`common:markdownMessage.revealLocalPathUnavailable`):e instanceof G&&e.reason===`timeout`?a(`common:markdownMessage.revealLocalPathTimeout`):a(`common:markdownMessage.revealLocalPathFailed`,{path:d.path}),n=e instanceof Error?e.message:String(e);console.error(`[markdown] 无法在文件管理器中显示本地路径。`,e),l(`${t} (${n})`),J(t,`error`)}finally{s(!1)}};return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`button`,{type:`button`,className:p(`markdown-link inline cursor-pointer border-0 bg-transparent p-0 [font:inherit]`,n),"data-local-path":d.path,title:e,disabled:o,"aria-busy":o||void 0,onClick:()=>void t(),children:u}),c&&(0,q.jsxs)(`span`,{role:`alert`,className:`ml-2 text-sm text-destructive`,children:[c,` `,(0,q.jsx)(`button`,{type:`button`,className:`cursor-pointer underline underline-offset-2`,onClick:()=>{X(d.path).then(()=>J(a(`common:markdownMessage.copied`),`info`),()=>J(a(`common:markdownMessage.copyPathFailed`),`error`))},children:a(`common:markdownMessage.copyPath`)})]})]})}return(0,q.jsx)(`a`,{...i,className:p(`markdown-link`,n),href:r,target:`_blank`,rel:`noopener noreferrer`,children:u})}function ye({node:e,...t}){return(0,q.jsx)(`img`,{loading:`lazy`,...t})}function be({node:e,...t}){return(0,q.jsx)(`strong`,{...t})}function xe({node:e,...t}){return(0,q.jsx)(`table`,{...t})}function Q({source:e}){let{t}=f(),[n,r]=(0,g.useState)(!1);return(0,q.jsxs)(ne,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 gap-1 px-[7px] text-[11px] font-bold text-[var(--code-toolbar-text)] hover:bg-white/10 hover:text-[var(--code-toolbar-text)]`,"data-streamdown":`code-block-copy-button`,onClick:async()=>{try{await X(e),r(!0),window.setTimeout(()=>r(!1),1800)}catch{r(!1)}},"aria-label":t(`common:markdownMessage.copyCode`),title:t(`common:markdownMessage.copyCode`),children:[n?(0,q.jsx)(m,{size:13}):(0,q.jsx)(h,{size:13}),t(n?`common:markdownMessage.copied`:`common:markdownMessage.copy`)]})}function Se({language:e,source:t}){return(0,q.jsxs)(`div`,{className:`my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2`,"data-incomplete":`true`,"data-language":e,"data-streamdown":`code-block`,style:{contentVisibility:`auto`,containIntrinsicSize:`auto 200px`},children:[(0,q.jsxs)(`div`,{className:`flex h-8 items-center justify-between text-muted-foreground text-xs`,"data-language":e,"data-streamdown":`code-block-header`,children:[(0,q.jsx)(`span`,{className:`ml-1 font-mono lowercase`,children:e}),(0,q.jsx)(Q,{source:t})]}),(0,q.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border bg-background p-4 text-sm`,"data-language":e,"data-streamdown":`code-block-body`,children:(0,q.jsx)(`pre`,{className:`bg-transparent`,children:(0,q.jsx)(`code`,{children:t})})})]})}function Ce({children:e,className:t,node:n,...r}){let i=o();if(!Object.hasOwn(r,`data-block`))return(0,q.jsx)(`code`,{className:t||``,...r,children:e});let a=Y(e).replace(/\n$/,``),c=ve(t);return i?(0,q.jsx)(Se,{language:c,source:a}):(0,q.jsx)(s,{code:a,isIncomplete:i,language:c,lineNumbers:!1,children:(0,q.jsx)(Q,{source:a})})}function we({children:e,className:t,streaming:n=!1,cwd:r}){let i=String(e??``),a=(0,g.useMemo)(()=>[...Object.values(u),[me,r||void 0]],[r]),o=(0,g.useMemo)(()=>P(i),[i]);(0,g.useEffect)(()=>{o&&N()},[o]);let[s]=(0,g.useState)(()=>O()),l=n?s:j;return(0,q.jsx)(`div`,{className:p(`markdown-body`,n&&`markdown-streaming`,t),"aria-busy":n||void 0,children:(0,q.jsx)(c,{className:`markdown-content space-y-0`,components:he,controls:ge,isAnimating:n,lineNumbers:!1,mode:`streaming`,parseMarkdownIntoBlocksFn:l,plugins:ue,remarkPlugins:a,remend:_e,children:i})})}var $=(0,g.memo)(we);$.displayName=`MarkdownMessage`;export{W as i,G as n,K as r,$ as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-a84Zp9dV.js";import{n as i,t as a}from"./switch-Ci_hmu39.js";import{t as o}from"./utils-C8uzG5AZ.js";import{t as s}from"./circle-dot-nVrXgDaG.js";import{t as c}from"./copy-DHmIFc52.js";import{t as l}from"./key-round-C29uZbsf.js";import{t as u}from"./refresh-cw-TbWxTY4K.js";import{t as ee}from"./server-BgNvmqwJ.js";import{t as d}from"./trash-2-CNrPOoPR.js";import{t as f}from"./wrench-6pg6_bqI.js";import{i as p,n as m}from"./http-Be2GB6DH.js";import{t as h}from"./button-CQA36izu.js";import{D as g,S as _,h as v,o as y,u as b,v as x,x as S}from"./query-Bj-DUNYq.js";import{t as C}from"./useQuery-D3P5wO_Z.js";import{n as w}from"./mutation-CEbxdVYy.js";import{n as T}from"./QueryClientProvider-CHJtxoX1.js";import{t as E}from"./queryOptions-Dfvzj6n2.js";import{t as D}from"./alert-QoPGoIY6.js";import{a as O,i as k,o as A,r as j,s as M,t as te}from"./dialog-D-ER2p-D.js";import{r as N}from"./format-BRFKAYMT.js";import{r as P,t as F}from"./card-BdUpL1KB.js";import{t as I}from"./usePagePrimaryAction-CWPC0C_f.js";import{t as ne}from"./textarea-bYCRTyEt.js";var L=class extends g{#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),S(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&b(t.mutationKey)!==b(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??w();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){y.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)})})}},R=e(t(),1);function re(e,t){let n=T(t);return ie({filters:{...e,status:`pending`}},n).length}function z(e,t){return e.findAll(t.filters).map(e=>t.select?t.select(e):e.state)}function ie(e={},t){let n=T(t).getMutationCache(),r=R.useRef(e),i=R.useRef(null);return i.current===null&&(i.current=z(n,e)),R.useEffect(()=>{r.current=e}),R.useSyncExternalStore(R.useCallback(e=>n.subscribe(()=>{let t=x(i.current,z(n,r.current));i.current!==t&&(i.current=t,y.schedule(e))}),[n]),()=>i.current,()=>i.current)}function ae(e,t){let n=T(t),[r]=R.useState(()=>new L(n,e));R.useEffect(()=>{r.setOptions(e)},[r,e]);let i=R.useSyncExternalStore(R.useCallback(e=>r.subscribe(y.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=R.useCallback((e,t)=>{r.mutate(e,t).catch(v)},[r]);if(i.error&&_(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}function B(e){if(!e||typeof e!=`object`||Array.isArray(e))throw p();return Object.fromEntries(Object.entries(e))}function V(e,t=!1){if(e==null&&!t)return``;if(typeof e!=`string`||t&&!e)throw p();return e}function H(e,t=0){if(e==null)return t;if(typeof e!=`number`||!Number.isFinite(e))throw p();return e}function U(e){if(typeof e!=`boolean`)throw p();return e}function oe(e,t){if(e===void 0)return[];if(!Array.isArray(e))throw p();return e.map(t)}function se(e){let t=B(e);return{id:V(t.id,!0),name:V(t.name,!0),status:V(t.status),transport:V(t.transport),endpoint:V(t.endpoint),command:V(t.command),workingDirectory:V(t.workingDirectory),enabled:U(t.enabled),error:V(t.error),latencyMs:t.latencyMs==null?null:H(t.latencyMs),lastPingAt:V(t.lastPingAt),auth:V(t.auth),authCount:H(t.authCount)}}function ce(e){let t=B(e);return{serviceId:V(t.serviceId,!0),serviceName:V(t.serviceName),name:V(t.name,!0),piName:V(t.piName,!0),description:V(t.description),enabled:U(t.enabled),serviceEnabled:U(t.serviceEnabled),risk:V(t.risk)}}function le(e){let t=B(e);return{id:V(t.id,!0),serviceId:V(t.serviceId,!0),toolName:V(t.toolName),timestamp:V(t.timestamp),status:V(t.status),error:V(t.error),durationMs:H(t.durationMs)}}function W(e){let t=B(e);if(!Array.isArray(t.services))throw p();let n=t.metrics===void 0?{}:B(t.metrics);return{services:t.services.map(se),tools:oe(t.tools,ce),calls:oe(t.calls,le),metrics:{totalServices:H(n.totalServices),onlineServices:H(n.onlineServices),availableTools:H(n.availableTools),restrictedTools:H(n.restrictedTools),errorRate:H(n.errorRate)}}}var G=e=>`/api/mcp/${encodeURIComponent(e)}`,K={dashboard:e=>m(`/api/mcp?refresh=0`,{signal:e,parse:W}),add:e=>m(`/api/mcp`,{method:`POST`,body:{spec:e},parse:W}),setServerEnabled:(e,t)=>m(G(e),{method:`PATCH`,body:{enabled:t},parse:W}),setToolEnabled:(e,t,n)=>m(`${G(e)}/tools/${encodeURIComponent(t)}`,{method:`PATCH`,body:{enabled:n},parse:W}),test:e=>m(`${G(e)}/test`,{method:`POST`,body:{},parse:W}),remove:async e=>(await m(G(e),{method:`DELETE`}),K.dashboard())};function ue(e){if(!e||typeof e!=`object`||Array.isArray(e))throw p();return Object.fromEntries(Object.entries(e))}function de(e){let t=ue(e);if(typeof t.enabled!=`boolean`||typeof t.listening!=`boolean`||typeof t.host!=`string`||typeof t.port!=`number`||!Number.isInteger(t.port)||typeof t.url!=`string`||t.error!==null&&typeof t.error!=`string`)throw p();return{enabled:t.enabled,listening:t.listening,host:t.host,port:t.port,url:t.url,error:t.error}}function q(e){let t=ue(e);if(typeof t.url!=`string`||!t.url||typeof t.token!=`string`||!t.token)throw p();return{url:t.url,token:t.token}}var J={status:e=>m(`/api/mcp-host`,{signal:e,parse:de}),setEnabled:e=>m(`/api/mcp-host`,{method:`PATCH`,body:{enabled:e},parse:de}),credentials:e=>m(`/api/mcp-host/credentials`,{method:`POST`,body:{},signal:e,parse:q}),rotateToken:e=>m(`/api/mcp-host/rotate-token`,{method:`POST`,body:{},signal:e,parse:q})},Y=n(),fe=[`mcp-host`,`status`];function pe(e){return JSON.stringify({mcpServers:{pisper:{url:e.url,headers:{Authorization:`Bearer ${e.token}`}}}},null,2)}function me({notify:e,requestConfirm:t}){let{t:n}=r(),o=T(),[s,d]=(0,R.useState)(!1),[f,p]=(0,R.useState)(!1),[m,g]=(0,R.useState)(!1),[_,v]=(0,R.useState)(null),[y,b]=(0,R.useState)(``),x=(0,R.useRef)(null),S=(0,R.useRef)(null),w=typeof window<`u`&&!!window.__PISPER_MOBILE_APP__,E=C({queryKey:fe,queryFn:({signal:e})=>J.status(e),enabled:!w&&!s,refetchInterval:15e3});if((0,R.useEffect)(()=>()=>{x.current?.abort()},[]),w)return null;let N=E.data,P=_?pe(_):``,I=()=>{x.current?.abort(),x.current=null,v(null),b(``),g(!1)},L=async()=>{x.current?.abort();let e=new AbortController;x.current=e,p(!0),v(null),b(``),g(!0);try{let t=await J.credentials(e.signal);e.signal.aborted||v(t)}catch(t){e.signal.aborted||b(t instanceof Error?t.message:n(`mcp:hostLoadFailed`))}finally{x.current===e&&(x.current=null,p(!1))}},re=async t=>{d(!0);try{let r=await J.setEnabled(t);o.setQueryData(fe,r),t||I(),e(r.error||n(t?`mcp:hostEnabledNotice`:`mcp:hostDisabledNotice`),r.error?`error`:`success`)}catch(t){e(t instanceof Error?t.message:n(`mcp:hostUpdateFailed`),`error`)}finally{d(!1)}},z=async()=>{if(t&&!await t({title:n(`mcp:hostRotateTitle`),message:n(`mcp:hostRotateWarning`),confirmLabel:n(`mcp:hostRotate`),tone:`danger`}))return;x.current?.abort();let r=new AbortController;x.current=r,p(!0),b(``),v(null);try{let t=await J.rotateToken(r.signal);r.signal.aborted||(v(t),e(n(`mcp:hostRotatedNotice`),`success`))}catch(e){r.signal.aborted||b(e instanceof Error?e.message:n(`mcp:hostRotateFailed`))}finally{x.current===r&&(x.current=null,p(!1))}},ie=async()=>{try{await navigator.clipboard.writeText(P),e(n(`mcp:hostCopied`),`success`)}catch{S.current?.select(),e(n(`mcp:hostCopyManually`),`error`)}};return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(F,{className:`mb-3 gap-3 p-4 shadow-none`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 rounded-lg bg-muted p-2 text-foreground`,"aria-hidden":`true`,children:(0,Y.jsx)(ee,{className:`size-4`})}),(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-foreground`,children:n(`mcp:hostTitle`)}),N&&(0,Y.jsx)(i,{variant:`outline`,className:`font-normal text-muted-foreground`,children:N.listening?n(`mcp:hostReady`):N.enabled?n(`mcp:hostUnavailable`):n(`mcp:disabled`)})]}),(0,Y.jsx)(`p`,{className:`max-w-2xl text-xs leading-5 text-muted-foreground`,children:n(`mcp:hostDescription`)})]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n(`mcp:hostEnabled`)}),(0,Y.jsx)(a,{checked:!!N?.enabled,disabled:!N||s,"aria-label":n(`mcp:hostEnabled`),onCheckedChange:e=>void re(e)})]})]}),E.isPending&&(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`mcp:loading`)}),E.error&&(0,Y.jsxs)(D,{className:`flex flex-wrap items-center justify-between gap-2 text-xs text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:E.error.message}),(0,Y.jsx)(h,{size:`sm`,variant:`ghost`,onClick:()=>void E.refetch(),children:n(`mcp:retry`)})]}),N?.error&&(0,Y.jsx)(D,{role:`status`,className:`text-xs text-muted-foreground`,children:N.error}),N?.listening&&(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-2 border-t pt-3`,children:[(0,Y.jsx)(`code`,{className:`min-w-0 max-w-full break-all rounded-md bg-muted px-2 py-1 text-xs text-foreground`,children:N.url}),(0,Y.jsxs)(h,{size:`sm`,variant:`outline`,onClick:()=>void L(),children:[(0,Y.jsx)(l,{"data-icon":`inline-start`}),n(`mcp:hostShowConfig`)]})]})]}),(0,Y.jsx)(te,{open:m,onOpenChange:e=>!e&&I(),children:(0,Y.jsxs)(j,{className:`min-w-0 grid-cols-[minmax(0,1fr)] sm:max-w-xl`,children:[(0,Y.jsxs)(A,{className:`min-w-0 pr-8 text-left`,children:[(0,Y.jsx)(M,{children:n(`mcp:hostConfigTitle`)}),(0,Y.jsx)(k,{className:`leading-5`,children:n(`mcp:hostConfigDescription`)})]}),f&&(0,Y.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,Y.jsx)(u,{className:`size-4 animate-spin`}),n(`mcp:hostLoadingConfig`)]}),y&&(0,Y.jsx)(D,{role:`alert`,className:`text-sm text-muted-foreground`,children:y}),_&&(0,Y.jsx)(ne,{ref:S,value:P,readOnly:!0,spellCheck:!1,"aria-label":n(`mcp:hostConfigTitle`),className:`h-52 max-h-[45dvh] resize-y font-mono text-xs [overflow-wrap:anywhere]`,onFocus:e=>e.currentTarget.select()}),(0,Y.jsxs)(O,{className:`min-w-0 flex-wrap`,children:[(0,Y.jsxs)(h,{variant:`outline`,disabled:f,onClick:()=>void z(),children:[(0,Y.jsx)(u,{"data-icon":`inline-start`}),n(`mcp:hostRotate`)]}),(0,Y.jsxs)(h,{disabled:!_||f,onClick:()=>void ie(),children:[(0,Y.jsx)(c,{"data-icon":`inline-start`}),n(`mcp:hostCopyConfig`)]})]})]})})]})}var X=[`mcp`,`dashboard`],he=[`mcp`,`change`];function ge(){return E({queryKey:X,queryFn:({signal:e})=>K.dashboard(e),staleTime:0,retry:!1})}function _e(e){return{mutationKey:he,scope:{id:`mcp-dashboard`},retry:!1,mutationFn:async t=>(await e.cancelQueries({queryKey:X}),t()),onSuccess:t=>e.setQueryData(X,t),onSettled:()=>e.invalidateQueries({queryKey:X})}}function ve(){let e=T(),t=re({mutationKey:he})>0,n=C({...ge(),enabled:!t,refetchInterval:!t&&1e4}),r=ae(_e(e));return{data:n.data,loading:n.isPending,error:r.error||n.error,busy:t,change:r.mutateAsync,reload:()=>(r.reset(),n.refetch())}}var ye={green:`border-[var(--success-border)] bg-[var(--success-soft)] text-[var(--success-strong)]`,amber:`border-[var(--warning-border)] bg-[var(--warning-soft)] text-[var(--warning-strong)]`,gray:`border-[var(--stroke)] bg-[var(--surface-muted)] text-[var(--text-muted)]`,red:`border-[var(--danger-border)] bg-[var(--danger-soft)] text-[var(--danger)]`};function Z({className:e,children:t}){return(0,Y.jsx)(F,{size:`sm`,className:o(`workflow-card [&_h2]:text-[16px] [&_h2]:tracking-[-.02em] [.detail-stack_>_&]:[flex:0_0_auto] [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--panel)] text-[var(--text)] shadow-[0_1px_2px_var(--sh-edge),0_14px_32px_-24px_var(--shadow)] gap-0 p-3.5 py-3.5`,e),children:t})}function Q({children:e}){return(0,Y.jsx)(P,{className:`workflow-section-title [.selection-list_&]:mb-[8px] [.node-library_&]:mb-[8px] text-[var(--text-soft)] text-[13px] font-[700] leading-[1.4]`,children:e})}function $({value:e,label:t,note:n,tone:r}){return(0,Y.jsxs)(F,{size:`sm`,className:o(`workflow-card [&_h2]:text-[16px] [&_h2]:tracking-[-.02em] [.detail-stack_>_&]:[flex:0_0_auto] [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--panel)] text-[var(--text)] shadow-[0_1px_2px_var(--sh-edge),0_14px_32px_-24px_var(--shadow)] metric [transition:transform_var(--d2)_var(--ease-out),_box-shadow_var(--d2)_var(--ease-out),_border-color_var(--d2)_var(--ease-out)] hover:[transform:translateY(-2px)] hover:shadow-[var(--sh-2)] hover:border-[var(--star-border)] [&_small]:[grid-column:1/-1] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_strong]:mt-[5px] [&_strong]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] [&_strong]:text-[23px] [&_span]:[align-self:end] [&_span]:text-[var(--text-muted)] [&_span]:text-[13px] [&.blue_strong]:text-[var(--star-strong)] [&.green_strong]:text-[var(--success)] [&.amber_strong]:text-[var(--amber)] grid grid-cols-[1fr_auto] [padding:12px] gap-0 p-3 py-3`,r),children:[(0,Y.jsx)(`small`,{children:t}),(0,Y.jsx)(`strong`,{children:e}),(0,Y.jsx)(`span`,{children:n})]})}function be({children:e,tone:t}){return(0,Y.jsx)(i,{variant:`outline`,className:ye[t],children:e})}function xe(e,t){return e===`online`?[t(`mcp:online`),`green`]:e===`connecting`?[t(`mcp:connecting`),`amber`]:e===`unauthorized`?[t(`mcp:unauthorized`),`gray`]:e===`disabled`?[t(`mcp:disabled`),`gray`]:[t(`mcp:offline`),`red`]}function Se(e,t){return e===`high`||e===`高风险`?t(`mcp:highRisk`):e===`medium`||e===`中风险`?t(`mcp:mediumRisk`):e===`low`||e===`低风险`?t(`mcp:lowRisk`):String(e||``)}function Ce(e,t){return e?e.auth===`headers`?t(`mcp:countRequestHeaders`,{count:e.authCount}):e.auth===`environment`?t(`mcp:configuredEnvironmentVariables`):e.auth===`local`?t(`mcp:localProcess`):t(`mcp:none`):`—`}function we({notify:e,query:t=``,registerPrimaryAction:n,requestText:i,requestConfirm:o}){let{t:c,language:l}=r(),{data:p,busy:m,loading:g,error:_,change:v,reload:y}=ve(),[b,x]=(0,R.useState)(``),S=(0,R.useCallback)(async()=>{let t=await i?.({title:c(`mcp:addMCPService`),message:c(`mcp:enterAStreamableHTTPURLAStdioCommandOrJSONContainingHeadersEnv`),inputLabel:c(`mcp:serverConfiguration`),placeholder:`https://server.example.com/mcp`,maxLength:12e3,confirmLabel:c(`mcp:continue`)});if(t?.trim()&&await o?.({title:c(`mcp:connectMCPServer`),message:c(`mcp:mcpServersCanExposeToolsThatPerformExternalActionsConnectOnlyToServersYouTrust`),confirmLabel:c(`mcp:connect`),tone:`danger`})!==!1)try{let n=await v(()=>K.add(t));x(n.services.at(-1)?.id||n.services[0]?.id||``),e(c(`mcp:mcpServerAdded`),`success`)}catch(t){e(t instanceof Error?t.message:String(t),`error`)}},[v,e,o,i,c]);I(n,S);let C=p?.services||[],w=C.filter(e=>`${e.name} ${e.endpoint}`.toLowerCase().includes(t.toLowerCase())),T=C.find(e=>e.id===b)||w[0]||C[0]||null,E=(p?.tools||[]).filter(e=>`${e.name} ${e.serviceName} ${e.description}`.toLowerCase().includes(t.toLowerCase())),O=(p?.calls||[]).filter(e=>!T||e.serviceId===T.id),k=p?.metrics||{totalServices:0,onlineServices:0,availableTools:0,restrictedTools:0,errorRate:0},A=async(t,n)=>{try{await v(()=>K.setToolEnabled(t.serviceId,t.name,n))}catch(t){e(t instanceof Error?t.message:String(t),`error`)}},j=async t=>{if(T)try{await v(()=>K.setServerEnabled(T.id,t)),e(c(t?`mcp:mcpServerEnabled`:`mcp:mcpServerDisabled`),`success`)}catch(t){e(t instanceof Error?t.message:String(t),`error`)}},M=async()=>{if(T)try{await v(()=>K.test(T.id)),e(c(`mcp:mcpConnectionTestPassed`),`success`)}catch(t){e(t instanceof Error?t.message:String(t),`error`)}},te=async()=>{if(T&&await o?.({title:c(`mcp:deleteMCPServer`),message:c(`mcp:afterDeletionToolsFromThisServerWillBeRemovedFromSubsequentAgentRuns`),confirmLabel:c(`mcp:delete`),tone:`danger`})!==!1)try{let t=await v(()=>K.remove(T.id));x(t?.services[0]?.id||``),e(c(`mcp:mcpServerDeleted`),`success`)}catch(t){e(t instanceof Error?t.message:String(t),`error`)}};return(0,Y.jsxs)(`div`,{className:`preview-page flex min-h-[100%] flex-col`,children:[(0,Y.jsx)(me,{notify:e,requestConfirm:o}),g&&!_&&(0,Y.jsx)(`p`,{role:`status`,children:c(`mcp:loading`)}),_&&(0,Y.jsxs)(D,{role:`status`,className:`mb-3 flex min-w-0 items-center justify-between gap-3 text-muted-foreground [overflow-wrap:anywhere]`,children:[(0,Y.jsx)(`span`,{children:_.message}),(0,Y.jsx)(h,{variant:`ghost`,disabled:m,onClick:()=>void y(),children:c(`mcp:retry`)})]}),p&&(0,Y.jsxs)(`div`,{className:`mcp-layout [.preview-page_>_&]:min-h-0 [.preview-page_>_&]:flex-1 max-[1150px]:grid-cols-[220px_minmax(340px,1fr)] max-[650px]:grid-cols-[1fr] grid min-h-[100%] grid-cols-[230px_minmax(320px,1fr)_300px] gap-[12px]`,children:[(0,Y.jsxs)(Z,{className:`selection-list [.config-layout_>_&]:max-h-[calc(100dvh_-_280px)] [.config-layout_>_&]:overflow-y-auto max-[900px]:max-h-[300px] min-h-0 overflow-auto`,children:[(0,Y.jsx)(Q,{children:c(`mcp:services`)}),w.length?w.map(e=>{let[t,n]=xe(e.status,c),r=e.transport===`stdio`?e.workingDirectory||e.command:e.endpoint;return(0,Y.jsxs)(`button`,{className:`service-row grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[9px] border-0 [border-top:1px_solid_var(--stroke-soft)] bg-transparent p-[10px_8px] text-left hover:rounded-[var(--r-sm)] hover:bg-[var(--accent-soft)] [&.active]:rounded-[var(--r-sm)] [&.active]:bg-[var(--accent-soft)] [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap ${T?.id===e.id?`active`:``}`,onClick:()=>x(e.id),children:[(0,Y.jsx)(`span`,{className:`list-icon [.chat-resource-list_&]:grid [.chat-resource-list_&]:w-[28px] [.chat-resource-list_&]:h-[28px] [.chat-resource-list_&]:place-items-center [.chat-resource-list_&]:rounded-[var(--r-sm)] [.chat-resource-list_&]:bg-[var(--surface-subtle)] [.chat-resource-list_&]:text-[var(--star-strong)] [.session-workflow-summary_&]:grid [.session-workflow-summary_&]:w-[28px] [.session-workflow-summary_&]:h-[28px] [.session-workflow-summary_&]:place-items-center [.session-workflow-summary_&]:rounded-[var(--r-sm)] [.session-workflow-summary_&]:bg-[var(--surface-subtle)] [.session-workflow-summary_&]:text-[var(--star-strong)] grid w-[27px] h-[27px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)] [.workflow-template-gallery_&]:grid [.workflow-template-gallery_&]:w-[32px] [.workflow-template-gallery_&]:h-[32px] [.workflow-template-gallery_&]:place-items-center [.workflow-template-gallery_&]:rounded-[var(--r-sm)] [.workflow-template-gallery_&]:bg-[var(--surface-subtle)] [.workflow-template-gallery_&]:text-[var(--star-strong)]`,children:(0,Y.jsx)(ee,{size:15})}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:e.name}),(0,Y.jsx)(`small`,{title:r,children:r})]}),(0,Y.jsx)(be,{tone:n,children:t})]},e.id)}):(0,Y.jsx)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center compact`,children:c(`mcp:noServerConfigured`)})]}),(0,Y.jsxs)(`div`,{className:`mcp-center max-[650px]:min-w-0 flex min-w-0 flex-col gap-[12px]`,children:[(0,Y.jsxs)(`div`,{className:`metric-grid max-[650px]:grid-cols-[1fr] grid grid-cols-[repeat(3,minmax(0,1fr))] gap-[9px]`,children:[(0,Y.jsx)($,{value:String(k.onlineServices),label:c(`mcp:onlineServices`),note:c(`mcp:countServicesTotal`,{count:k.totalServices}),tone:`blue`}),(0,Y.jsx)($,{value:String(k.availableTools),label:c(`mcp:availableTools`),note:c(`mcp:countRestrictedTools`,{count:k.restrictedTools}),tone:`green`}),(0,Y.jsx)($,{value:`${k.errorRate}%`,label:c(`mcp:errorRate`),note:`24h`,tone:`amber`})]}),(0,Y.jsxs)(Z,{className:`mcp-tools-panel min-h-0 flex-1 overflow-y-auto`,children:[(0,Y.jsxs)(Q,{children:[c(`mcp:toolCapabilities`),` · `,E.length]}),E.length?E.map(e=>(0,Y.jsxs)(`div`,{className:`tool-row [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap grid min-h-[48px] grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center gap-[8px] [border-top:1px_solid_var(--stroke-soft)] [padding:6px_2px]`,children:[(0,Y.jsx)(`span`,{className:`list-icon [.chat-resource-list_&]:grid [.chat-resource-list_&]:w-[28px] [.chat-resource-list_&]:h-[28px] [.chat-resource-list_&]:place-items-center [.chat-resource-list_&]:rounded-[var(--r-sm)] [.chat-resource-list_&]:bg-[var(--surface-subtle)] [.chat-resource-list_&]:text-[var(--star-strong)] [.session-workflow-summary_&]:grid [.session-workflow-summary_&]:w-[28px] [.session-workflow-summary_&]:h-[28px] [.session-workflow-summary_&]:place-items-center [.session-workflow-summary_&]:rounded-[var(--r-sm)] [.session-workflow-summary_&]:bg-[var(--surface-subtle)] [.session-workflow-summary_&]:text-[var(--star-strong)] grid w-[27px] h-[27px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)] [.workflow-template-gallery_&]:grid [.workflow-template-gallery_&]:w-[32px] [.workflow-template-gallery_&]:h-[32px] [.workflow-template-gallery_&]:place-items-center [.workflow-template-gallery_&]:rounded-[var(--r-sm)] [.workflow-template-gallery_&]:bg-[var(--surface-subtle)] [.workflow-template-gallery_&]:text-[var(--star-strong)]`,children:(0,Y.jsx)(f,{size:15})}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:e.name}),(0,Y.jsxs)(`small`,{children:[e.serviceName,` · `,e.description]})]}),(0,Y.jsx)(be,{tone:e.risk===`high`||e.risk===`高风险`?`red`:e.risk===`medium`||e.risk===`中风险`?`amber`:`green`,children:Se(e.risk,c)}),(0,Y.jsx)(a,{checked:!!e.enabled,disabled:m||!e.serviceEnabled,"aria-label":c(`mcp:toggleToolName`,{name:e.name}),onCheckedChange:t=>void A(e,t)})]},e.piName)):(0,Y.jsx)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center compact`,children:c(`mcp:noToolsAvailable`)})]})]}),(0,Y.jsxs)(`div`,{className:`detail-stack flex min-w-0 flex-col gap-[12px] [.mcp-layout_>_&]:min-h-0 max-[1150px]:[.memory-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.memory-layout_>_&]:grid max-[1150px]:[.memory-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.mcp-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.mcp-layout_>_&]:grid max-[1150px]:[.mcp-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.skills-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.skills-layout_>_&]:grid max-[1150px]:[.skills-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:[.memory-layout_>_&]:[grid-column:auto] max-[650px]:[.memory-layout_>_&]:grid-cols-[1fr] max-[650px]:[.mcp-layout_>_&]:[grid-column:auto] max-[650px]:[.mcp-layout_>_&]:grid-cols-[1fr] max-[650px]:[.skills-layout_>_&]:[grid-column:auto] max-[650px]:[.skills-layout_>_&]:grid-cols-[1fr]`,children:[(0,Y.jsxs)(Z,{children:[(0,Y.jsx)(Q,{children:c(`mcp:currentService`)}),(0,Y.jsx)(`h2`,{children:T?.name||c(`mcp:noServerConfigured`)}),(0,Y.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-muted)] text-[12px] leading-[1.55]`,children:T?.error||c(T?`mcp:thisServerExposesToolsThroughAStandardMCPTransportEnabledToolsAreRegisteredInNewAgentRuntimes`:`mcp:useTheButtonInTheUpperRightToAddAStreamableHTTPOrStdioMCPServer`)}),[[c(`mcp:transport`),T?.transport===`stdio`?`stdio`:T?.transport===`sse`?`HTTP + SSE`:`Streamable HTTP`],...T?.transport===`stdio`?[[c(`mcp:executable`),T.command||`—`],[c(`mcp:workingDirectory`),T.workingDirectory||`—`]]:[[c(`mcp:serverAddress`),T?.endpoint||`—`]],[c(`mcp:latency`),T?.latencyMs==null?`—`:`${T.latencyMs} ms`],[c(`mcp:lastPing`),T?.lastPingAt?N(T.lastPingAt,l):`—`],[c(`mcp:authentication`),Ce(T,c)]].map(e=>(0,Y.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,Y.jsx)(`span`,{children:e[0]}),(0,Y.jsx)(`strong`,{title:e[1],children:e[1]})]},e[0])),(0,Y.jsxs)(`div`,{className:`toggle-line [&_>_span]:flex [&_>_span]:items-center [&_>_span]:gap-[7px] [&_>_span]:text-[12px] flex min-h-[34px] items-center justify-between [border-top:1px_solid_var(--stroke-soft)]`,children:[(0,Y.jsx)(`span`,{children:c(`mcp:serverEnabled`)}),(0,Y.jsx)(a,{checked:!!T?.enabled,disabled:!T||m,"aria-label":c(`mcp:toggleMCPServer`),onCheckedChange:e=>void j(e)})]}),(0,Y.jsxs)(`div`,{className:`mt-[15px] flex gap-2 max-[650px]:flex-wrap`,children:[(0,Y.jsxs)(h,{size:`sm`,variant:`secondary`,disabled:!T?.enabled||m,onClick:M,children:[(0,Y.jsx)(u,{className:m?`animate-spin`:``,"data-icon":`inline-start`}),c(`mcp:testConnection`)]}),(0,Y.jsxs)(h,{size:`sm`,variant:`destructive`,disabled:!T||m,onClick:te,children:[(0,Y.jsx)(d,{"data-icon":`inline-start`}),c(`mcp:delete`)]})]})]}),(0,Y.jsxs)(Z,{className:`mcp-calls-panel min-h-0 flex-1 overflow-y-auto`,children:[(0,Y.jsx)(Q,{children:c(`mcp:recentCalls`)}),O.length?O.slice(0,8).map(e=>(0,Y.jsxs)(`div`,{className:`activity-row [&_span]:flex [&_span]:min-w-0 [&_span]:flex-col [&_span]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_span]:text-[var(--text)] [&.failed]:text-[var(--danger)] [&.running]:text-[var(--star-strong)] grid grid-cols-[auto_minmax(0,1fr)] items-center gap-[9px] [border-top:1px_solid_var(--stroke-soft)] [padding:9px_2px] text-[var(--success)]`,children:[(0,Y.jsx)(s,{size:14}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:e.toolName}),(0,Y.jsxs)(`small`,{children:[N(e.timestamp,l),` ·`,` `,e.status===`ok`?c(`mcp:callSucceeded`):e.error||c(`mcp:callFailed`),` `,`· `,e.durationMs,` ms`]})]})]},e.id)):(0,Y.jsx)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center compact`,children:c(`mcp:noRecentCalls`)})]})]})]})]})}export{we as McpPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-a84Zp9dV.js";import{t as i}from"./AppSelect-BCexz4Ty.js";import{i as a,n as o,t as s}from"./tooltip-Bxq7c2mZ.js";import{t as c}from"./createLucideIcon-Cd-3GVxJ.js";import{t as l}from"./check-2vYc6QaP.js";import{t as u}from"./chevron-right-C3t2Rckj.js";import{t as d}from"./file-code-corner-BnE1ljT0.js";import{t as ee}from"./info-DATxy0fb.js";import{t as f}from"./loader-circle-BOwQzHB-.js";import{t as p}from"./pencil-U08v_vV9.js";import{t as te}from"./plus-fQbSqB1n.js";import{t as ne}from"./refresh-cw-TbWxTY4K.js";import{t as re}from"./trash-2-CNrPOoPR.js";import{t as m}from"./x-07u4-129.js";import{t as h}from"./api-YI8_cHpR.js";import{t as g}from"./button-CQA36izu.js";import{t as _}from"./field-3bN8nouy.js";import{i as v,n as y,o as b,t as x}from"./app-primitives-SxfoFmHc.js";import{t as ie}from"./StarOrbit-BAAjh-hY.js";import{t as ae}from"./usePagePrimaryAction-CWPC0C_f.js";var oe=c(`zoom-out`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),se=c(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),S=e(t(),1);function ce(e={}){let{rootMargin:t=`96px 0px`,threshold:n=0}=e,[r,i]=(0,S.useState)(null),[a,o]=(0,S.useState)(()=>!document.hidden),[s,c]=(0,S.useState)(!0),l=(0,S.useCallback)(e=>{i(e)},[]);return(0,S.useEffect)(()=>{let e=()=>o(!document.hidden);return e(),document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),(0,S.useEffect)(()=>{if(!r||typeof IntersectionObserver>`u`)return;let e=new IntersectionObserver(([e])=>{e&&c(e.isIntersecting)},{rootMargin:t,threshold:n});return e.observe(r),()=>e.disconnect()},[r,t,n]),{ref:l,playing:a&&s}}var C=n(),w={width:600,height:420,cx:300,cy:206},T=24,le=Math.PI*(3-Math.sqrt(5)),ue=[`concept`,`file`,`risk`,`preference`,`decision`,`fact`,`task`];function de(e,t){return t(e===`file`?`memory:memoryPage.fileType`:e===`risk`?`memory:memoryPage.riskType`:e===`preference`?`memory:memoryPage.preferenceType`:e===`decision`?`memory:memoryPage.decisionType`:e===`fact`?`memory:memoryPage.factType`:e===`task`?`memory:memoryPage.taskType`:`memory:memoryPage.conceptType`)}var fe={concept:`var(--g-concept)`,file:`var(--g-file)`,risk:`var(--g-risk)`,preference:`var(--g-preference)`,decision:`var(--g-decision)`,fact:`var(--g-fact)`,task:`var(--g-task)`},pe={concept:`var(--g-concept-glow)`,file:`var(--g-file-glow)`,risk:`var(--g-risk-glow)`,preference:`var(--g-preference-glow)`,decision:`var(--g-decision-glow)`,fact:`var(--g-fact-glow)`,task:`var(--g-task-glow)`};function E(e){let t=0;for(let n=0;n<e.length;n+=1)t=t*31+e.charCodeAt(n)>>>0;return t}function me(e,t){let n=e.slice(0,T);if(!n.length)return[];if(n.length===1)return[{node:n[0],x:w.cx,y:w.cy,twinkle:0}];let r=E(t||`galaxy`)%628/100,i=172/Math.sqrt(n.length);return n.map((e,t)=>{let n=E(e.id),a=t*le+r,o=i*Math.sqrt(t+.55)+n%11-5;return{node:e,x:w.cx+Math.cos(a)*o*1.38,y:w.cy+Math.sin(a)*o*.74,twinkle:n%50/10}})}function D(e,t=`zh-CN`){if(!e)return`—`;let n=new Date(e);return Number.isNaN(n.getTime())?e:new Intl.DateTimeFormat(t,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(n)}function O(e,t=e=>e){return e?.kind===`global`?t(`memory:memoryPage.globalMemorySpace`):e?.name||``}function he(e,t,n){let r=t.x-e.x,i=t.y-e.y,a=Math.hypot(r,i)||1,o=Math.min(24,a*.16)*(n%2==0?1:-1),s=(e.x+t.x)/2-i/a*o,c=(e.y+t.y)/2+r/a*o;return`M ${e.x.toFixed(1)} ${e.y.toFixed(1)} Q ${s.toFixed(1)} ${c.toFixed(1)} ${t.x.toFixed(1)} ${t.y.toFixed(1)}`}function k(e){return e instanceof Error?e.message:String(e)}function A({notify:e,query:t=``,registerPrimaryAction:n,requestConfirm:i}){let{t:c,language:_}=r(),[T,le]=(0,S.useState)({spaces:[],nodes:[],links:[],candidates:[],selectedSpaceId:``}),[A,j]=(0,S.useState)(``),[M,N]=(0,S.useState)(``),P=(0,S.useRef)(0),[ve,ye]=(0,S.useState)(!0),[be,F]=(0,S.useState)(``),[xe,Se]=(0,S.useState)(1),[I,L]=(0,S.useState)(null),[R,z]=(0,S.useState)(null),[Ce,we]=(0,S.useState)(``),[B,V]=(0,S.useState)(``),[H,U]=(0,S.useState)(null),[W,Te]=(0,S.useState)(!1),G=(0,S.useRef)(null),K=(0,S.useRef)(0),{ref:Ee,playing:q}=ce(),De=(0,S.useCallback)(e=>{G.current=e,Ee(e)},[Ee]),Oe=q?``:`[&:before]:[animation-play-state:paused]! [&:after]:[animation-play-state:paused]! [&_*]:[animation-play-state:paused]! [&_*:before]:[animation-play-state:paused]! [&_*:after]:[animation-play-state:paused]!`;ae(n,()=>L({spaceId:A||T.selectedSpaceId}));let ke=e=>{if(!q)return;let t=G.current;if(!t)return;let n=t.getBoundingClientRect(),r=((e.clientX-n.left)/n.width-.5)*2,i=((e.clientY-n.top)/n.height-.5)*2;cancelAnimationFrame(K.current),K.current=requestAnimationFrame(()=>{t.style.setProperty(`--px`,r.toFixed(3)),t.style.setProperty(`--py`,i.toFixed(3))})},Ae=()=>{cancelAnimationFrame(K.current),G.current?.style.setProperty(`--px`,`0`),G.current?.style.setProperty(`--py`,`0`)};(0,S.useEffect)(()=>{q||(cancelAnimationFrame(K.current),K.current=0)},[q]),(0,S.useEffect)(()=>{let e=G.current?.querySelector(`svg`);e&&(q?e.unpauseAnimations():e.pauseAnimations())},[q]);let J=(0,S.useCallback)(async(e=``)=>{let n=++P.current;ye(!0),F(``);try{let r=new URLSearchParams;e&&r.set(`spaceId`,e),t.trim()&&r.set(`query`,t.trim());let i=await h(`/api/memory?${r}`);if(n!==P.current)return;le(i),j(i.selectedSpaceId||``),N(e=>i.nodes.some(t=>t.id===e)?e:i.nodes[0]?.id||``)}catch(e){n===P.current&&F(k(e))}finally{n===P.current&&ye(!1)}},[t]);(0,S.useEffect)(()=>(J(A),()=>{P.current+=1}),[J,A]),(0,S.useEffect)(()=>{let e=!0;return h(`/api/settings/memory`).then(t=>e&&U(t.autoApproveConfidence)).catch(()=>e&&U(60)),()=>{e=!1}},[]);let je=async()=>{let t=H;if(t===null||W)return;let n=Math.min(100,Math.max(0,Math.round(t)));n!==t&&U(n),Te(!0);try{await h(`/api/settings/memory`,{method:`PATCH`,body:{autoApproveConfidence:n}}),e(c(`memory:memoryPage.autoApproveSaved`))}catch(e){F(k(e))}finally{Te(!1)}},Y=T.nodes.find(e=>e.id===M)||null,X=(0,S.useMemo)(()=>me(T.nodes,A),[T.nodes,A]),Z=(0,S.useMemo)(()=>new Map(X.map(e=>[e.node.id,e])),[X]),Me=(0,S.useMemo)(()=>{let e=new Set(X.map(e=>e.node.id));return T.links.filter(t=>e.has(t.sourceId)&&e.has(t.targetId))},[X,T.links]),Ne=new Set(T.links.flatMap(e=>e.sourceId===M?[e.targetId]:e.targetId===M?[e.sourceId]:[])),Q=Ce||M,Pe=new Set(T.links.flatMap(e=>e.sourceId===Q?[e.targetId]:e.targetId===Q?[e.sourceId]:[])),Fe=T.nodes.filter(e=>e.type===`file`&&(Ne.has(e.id)||e.id===M)),$=T.spaces.find(e=>e.id===A),Ie=async t=>{if(await i({title:c(`memory:memoryPage.deleteMemory`),message:c(`memory:memoryPage.deleteMemoryName`,{name:t.title}),confirmLabel:c(`memory:memoryPage.delete`)}))try{await h(`/api/memory/nodes/${encodeURIComponent(t.id)}`,{method:`DELETE`}),e(c(`memory:memoryPage.memoryDeleted`)),await J(A)}catch(e){F(k(e))}},Le=async(t,n)=>{if(!B){V(t.id),F(``);try{await h(`/api/memory/candidates/${encodeURIComponent(t.id)}/${n}`,{method:`POST`,body:`{}`}),e(c(n===`accept`?`memory:memoryPage.memoryCandidateConfirmed`:`memory:memoryPage.memoryCandidateIgnored`)),await J(A)}catch(e){F(k(e))}finally{V(``)}}};return(0,C.jsxs)(`div`,{className:`memory-layout max-[1150px]:grid-cols-[220px_minmax(340px,1fr)] max-[650px]:grid-cols-[1fr] grid min-h-[100%] grid-cols-[230px_minmax(360px,1fr)_290px] gap-[12px]`,children:[(0,C.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-[12px]`,children:[(0,C.jsxs)(x,{className:`wiki-panel [&_>_button]:grid [&_>_button]:w-full [&_>_button]:grid-cols-[minmax(0,1fr)_auto_auto] [&_>_button]:items-center [&_>_button]:gap-[6px] [&_>_button]:border-0 [&_>_button]:[border-top:1px_solid_var(--stroke-soft)] [&_>_button]:bg-transparent [&_>_button]:p-[9px_5px] [&_>_button]:text-left [&_>_button]:text-[12px] [&_>_button.active]:rounded-[var(--r-xs)] [&_>_button.active]:bg-[var(--accent-soft)] [&_>_button_small]:text-[var(--text-muted)] [&_>_button_small]:text-[13px]`,children:[(0,C.jsxs)(y,{children:[(0,C.jsx)(b,{title:c(`memory:memoryPage.memorySpaces`)}),(0,C.jsx)(g,{variant:`ghost`,size:`icon`,title:c(`memory:memoryPage.newMemorySpace`),onClick:()=>z({}),children:(0,C.jsx)(te,{size:13})})]}),T.spaces.map(e=>(0,C.jsxs)(`button`,{className:e.id===A?`active`:``,onClick:()=>{j(e.id),N(``)},children:[(0,C.jsx)(`span`,{children:O(e,c)}),(0,C.jsx)(`small`,{children:c(`memory:memoryPage.countMemories`,{count:e.nodeCount})}),(0,C.jsx)(u,{size:13})]},e.id)),$&&(0,C.jsxs)(`div`,{className:`memory-space-actions [&_button]:inline-flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[13px] [&_button.danger]:text-[var(--danger)] flex gap-[6px] [margin-top:10px] [border-top:1px_solid_var(--stroke-soft)] [padding-top:9px]`,children:[(0,C.jsxs)(`button`,{onClick:()=>z($),children:[(0,C.jsx)(p,{size:12}),c(`memory:memoryPage.rename`)]}),$.kind!==`global`&&(0,C.jsxs)(`button`,{className:`danger`,onClick:async()=>{if($&&await i({title:c(`memory:memoryPage.deleteMemorySpace`),message:c(`memory:memoryPage.deleteMemorySpaceNameAndAllMemoriesInIt`,{name:O($,c)}),confirmLabel:c(`memory:memoryPage.delete`)}))try{await h(`/api/memory/spaces/${encodeURIComponent($.id)}`,{method:`DELETE`}),j(``),N(``),e(c(`memory:memoryPage.memorySpaceDeleted`))}catch(e){F(k(e))}},children:[(0,C.jsx)(re,{size:12}),c(`memory:memoryPage.delete`)]})]})]}),(0,C.jsxs)(x,{className:`memory-legend-panel`,children:[(0,C.jsx)(b,{title:c(`memory:memoryPage.memoryMapTypes`)}),(0,C.jsx)(`div`,{className:`galaxy-legend [&_span]:flex [&_span]:items-center [&_span]:gap-[7px] [&_span]:text-[var(--text-soft)] [&_span]:text-[12px] grid grid-cols-[repeat(2,minmax(0,1fr))] gap-[8px_10px] [margin-top:11px]`,children:ue.map(e=>(0,C.jsxs)(`span`,{children:[(0,C.jsx)(`i`,{className:`g-dot [&.g-concept]:bg-[var(--g-concept)] [&.g-concept]:shadow-[0_0_5px_var(--g-concept-glow)] [&.g-file]:bg-[var(--g-file)] [&.g-file]:shadow-[0_0_5px_var(--g-file-glow)] [&.g-risk]:bg-[var(--g-risk)] [&.g-risk]:shadow-[0_0_5px_var(--g-risk-glow)] [&.g-preference]:bg-[var(--g-preference)] [&.g-preference]:shadow-[0_0_5px_var(--g-preference-glow)] [&.g-decision]:bg-[var(--g-decision)] [&.g-decision]:shadow-[0_0_5px_var(--g-decision-glow)] [&.g-fact]:bg-[var(--g-fact)] [&.g-fact]:shadow-[0_0_5px_var(--g-fact-glow)] [&.g-task]:bg-[var(--g-task)] [&.g-task]:shadow-[0_0_5px_var(--g-task-glow)] inline-block w-[7px] h-[7px] flex-none rounded-[50%] g-${e}`}),de(e,c)]},e))})]}),(0,C.jsxs)(x,{className:`min-h-0`,children:[(0,C.jsxs)(y,{children:[(0,C.jsx)(b,{title:`${c(`memory:memoryPage.memoryDrafts`)} · ${T.candidates?.length||0}`}),!!T.candidates?.length&&(0,C.jsxs)(g,{variant:`outline`,className:`bg-surface-subtle`,disabled:!!B,onClick:async()=>{if(!(B||!T.candidates?.length)){V(`__all__`),F(``);try{let t=await h(`/api/memory/candidates/reject-all`,{method:`POST`,body:`{}`});e(c(`memory:memoryPage.ignoredCountMemoryDrafts`,{count:t.rejected||0})),await J(A)}catch(e){F(k(e))}finally{V(``)}}},children:[(0,C.jsx)(m,{size:12}),c(`memory:memoryPage.ignoreAll`)]})]}),H!==null&&(0,C.jsxs)(`div`,{className:`memory-auto-approve-row [&_label]:flex [&_label]:min-w-0 [&_label]:flex-col [&_label]:gap-[2px] [&_label_span]:text-[12px] [&_label_span]:font-[600] [&_label_small]:text-[var(--text-muted)] [&_label_small]:text-[10px] [&_label_small]:leading-[1.4] flex items-center justify-between gap-[10px] [border-bottom:1px_solid_var(--stroke-soft)] [padding:8px_0_10px]`,children:[(0,C.jsxs)(`div`,{className:`flex items-center justify-center gap-1`,children:[(0,C.jsx)(`span`,{children:c(`memory:memoryPage.autoApproveThreshold`)}),(0,C.jsxs)(s,{children:[(0,C.jsx)(a,{asChild:!0,children:(0,C.jsx)(ee,{size:16})}),(0,C.jsx)(o,{align:`center`,side:`top`,children:c(`memory:memoryPage.autoApproveThresholdHint`)})]})]}),(0,C.jsxs)(`span`,{className:`memory-auto-approve-input [&_input]:w-[64px] [&_input]:[border:1px_solid_var(--stroke-soft)] [&_input]:rounded-[6px] [&_input]:bg-[var(--surface-muted)] [&_input]:p-[4px_6px] [&_input]:text-[var(--text)] [&_input]:text-[12px] [&_input]:text-right [&_em]:text-[var(--text-muted)] [&_em]:text-[11px] [&_em]:[font-style:normal] flex flex-none items-center gap-[5px]`,children:[(0,C.jsx)(`input`,{type:`number`,min:0,max:100,step:5,value:H,disabled:W,"aria-label":c(`memory:memoryPage.autoApproveThreshold`),onChange:e=>U(e.target.value?Number(e.target.value):0),onBlur:()=>void je(),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),je())}}),(0,C.jsx)(`em`,{children:`%`}),W&&(0,C.jsx)(f,{className:`animate-spin`,size:12})]})]}),(0,C.jsxs)(`div`,{className:`flex max-h-[300px] flex-col gap-[8px] overflow-auto mt-2`,children:[(T.candidates||[]).map(e=>(0,C.jsxs)(`div`,{className:`memory-candidate [&_>_strong]:text-[12px] [&_>_span]:text-[var(--text-muted)] [&_>_span]:text-[11px] [&_>_span]:leading-[1.45] [&_>_small]:text-[var(--text-muted)] [&_>_small]:text-[11px] [&_>_small]:leading-[1.45] [&_>_div]:flex [&_>_div]:gap-[6px] [&_button]:inline-flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:[border:1px_solid_var(--stroke-soft)] [&_button]:rounded-[6px] [&_button]:bg-transparent [&_button]:p-[4px_7px] [&_button]:text-[var(--text)] [&_button]:text-[11px] [&_button.danger]:text-[var(--danger)] flex flex-col gap-[5px] [border:1px_solid_var(--stroke-soft)] rounded-[8px] bg-[var(--surface-muted)] [padding:8px]`,children:[(0,C.jsx)(`strong`,{children:e.title}),(0,C.jsxs)(`small`,{children:[O(T.spaces.find(t=>t.id===e.spaceId),c),` · `,e.sourceType===`agent`?c(`memory:memoryPage.agentProposed`):c(`memory:memoryPage.conversationExtracted`),` · `,c(`memory:memoryPage.confidencePercent`,{value:Math.round((e.confidence||0)*100)})]}),(0,C.jsx)(`span`,{children:e.content}),e.topicKey&&(0,C.jsxs)(`small`,{children:[c(`memory:memoryPage.topic`),`:`,e.topicKey]}),e.evidence&&(0,C.jsxs)(`small`,{children:[c(`memory:memoryPage.evidence`),`:`,e.evidence]}),(0,C.jsxs)(`small`,{children:[c(`memory:memoryPage.created`),`:`,D(e.createdAt,_),e.expiresAt?` · ${c(`memory:memoryPage.expires`)}:${D(e.expiresAt,_)}`:``]}),(0,C.jsxs)(`div`,{children:[(0,C.jsxs)(`button`,{disabled:!!B,title:c(`memory:memoryPage.confirm`),onClick:()=>Le(e,`accept`),children:[(0,C.jsx)(l,{size:12}),c(`memory:memoryPage.confirm`)]}),(0,C.jsxs)(`button`,{disabled:!!B,className:`danger`,title:c(`memory:memoryPage.ignore`),onClick:()=>Le(e,`reject`),children:[(0,C.jsx)(m,{size:12}),c(`memory:memoryPage.ignore`)]})]})]},e.id)),!T.candidates?.length&&(0,C.jsx)(`small`,{children:c(`memory:memoryPage.thereAreNoPendingMemoryCandidates`)})]})]})]}),(0,C.jsxs)(x,{className:`graph-panel before:[content:''] before:absolute before:z-[0] before:inset-0 before:pointer-events-none before:bg-[url('/memory-galaxy-background.webp')] before:[background-position:center_48%] before:[background-size:cover] before:bg-no-repeat before:[filter:saturate(.62)_contrast(1.08)] before:[mix-blend-mode:screen] before:opacity-[.42] after:[content:''] after:absolute after:z-[0] after:inset-0 after:pointer-events-none after:[background-image:radial-gradient(var(--galaxy-dot)_.9px,transparent_1.2px),_radial-gradient(var(--galaxy-dot-dim)_.8px,transparent_1.2px),_radial-gradient(var(--galaxy-dot)_1.2px,transparent_1.6px)] after:[background-position:0_0,_37px_53px,_71px_19px] after:[background-size:96px_96px,_152px_152px,_236px_236px] after:[animation:galaxy-field-twinkle_6.4s_ease-in-out_infinite] after:opacity-[.7] before:inset-[-8%] before:[animation:galaxy-background-drift_34s_ease-in-out_infinite_alternate] before:[will-change:transform] after:[animation:galaxy-field-drift_15s_ease-in-out_infinite_alternate] after:[will-change:background-position,opacity] max-[650px]:min-h-[430px] relative min-h-[500px] overflow-hidden [border-color:var(--galaxy-border)] bg-[var(--galaxy-bg)]! [background-image:radial-gradient(ellipse_46%_40%_at_50%_48%,_var(--galaxy-core),_transparent_72%),_radial-gradient(ellipse_62%_48%_at_16%_6%,_var(--galaxy-nebula-a),_transparent_70%),_radial-gradient(ellipse_56%_52%_at_88%_98%,_var(--galaxy-nebula-b),_transparent_72%)] p-0 backdrop-blur-none! galaxy-panel ${Oe}`,onPointerMove:ke,onPointerLeave:Ae,children:[(0,C.jsxs)(`div`,{className:`graph-toolbar [&_button]:grid [&_button]:w-[32px] [&_button]:h-[32px] [&_button]:place-items-center [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[12px] [.galaxy-panel_&]:border-[var(--galaxy-toolbar-border)] [.galaxy-panel_&]:bg-[var(--galaxy-toolbar-bg)] [.galaxy-panel_&]:text-[var(--galaxy-toolbar-text)] [.galaxy-panel_&]:[backdrop-filter:blur(9px)] [.galaxy-panel_&_button:hover]:bg-[var(--galaxy-toolbar-hover)] dark:bg-[var(--solid)] dark:text-[var(--text)] absolute z-[4] [top:10px] [left:10px] flex gap-[3px] [padding:3px] [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--solid)]`,children:[(0,C.jsx)(`button`,{title:c(`memory:memoryPage.addMemory`),onClick:()=>L({spaceId:A}),children:(0,C.jsx)(te,{size:14})}),(0,C.jsx)(`button`,{title:c(`memory:memoryPage.zoomIn`),onClick:()=>Se(e=>Math.min(1.6,Number((e+.15).toFixed(2)))),children:(0,C.jsx)(se,{size:13})}),(0,C.jsx)(`button`,{title:c(`memory:memoryPage.zoomOut`),onClick:()=>Se(e=>Math.max(.7,Number((e-.15).toFixed(2)))),children:(0,C.jsx)(oe,{size:13})}),(0,C.jsx)(`button`,{title:c(`memory:memoryPage.refresh`),onClick:()=>J(A),children:(0,C.jsx)(ne,{className:ve?`animate-spin`:``,size:13})})]}),(0,C.jsxs)(`div`,{className:`galaxy-stage [&_>_svg]:absolute [&_>_svg]:inset-0 [&_>_svg]:w-full [&_>_svg]:h-full [&_>_svg]:overflow-visible [&_>_svg]:z-[1] [&_>_svg]:[transform:translate3d(calc(var(--px,0)_*_9px),calc(var(--py,0)_*_6px),0)] [&_>_svg]:[transition:transform_.9s_var(--ease-out)] absolute z-[1] inset-0 [transform-origin:50%_50%] [transition:transform_var(--d2)_var(--ease-out)] ${Q?`has-focus`:``}`,ref:De,style:{transform:`scale(${xe})`},children:[(0,C.jsx)(`i`,{className:`galaxy-spiral absolute z-[0] block pointer-events-none [left:9%] [top:13%] w-[82%] h-[74%] rounded-[50%] bg-[conic-gradient(from_-18deg,transparent_0deg,var(--galaxy-nebula-a)_28deg,transparent_68deg,var(--galaxy-nebula-b)_118deg,transparent_170deg,var(--galaxy-nebula-a)_224deg,transparent_278deg,var(--galaxy-nebula-b)_322deg,transparent_360deg)] [filter:blur(13px)] [mask-image:radial-gradient(ellipse,transparent_0%,transparent_15%,var(--g-star-core)_38%,transparent_74%)] [-webkit-mask-image:radial-gradient(ellipse,transparent_0%,transparent_15%,var(--g-star-core)_38%,transparent_74%)] [mix-blend-mode:screen] opacity-[.38] [animation:galaxy-spiral-turn_42s_linear_infinite] [will-change:transform]`,"aria-hidden":`true`}),(0,C.jsx)(`i`,{className:`galaxy-core absolute z-[0] block pointer-events-none before:[content:''] before:absolute before:left-[50%] before:top-[50%] before:w-[46px] before:h-[46px] before:rounded-[50%] before:bg-[radial-gradient(circle,rgba(255,255,255,.82),rgba(191,219,254,.3)_55%,transparent_76%)] before:[filter:blur(6px)] before:[transform:translate(-50%,-50%)] [left:50%] [top:49%] w-[34%] h-[40%] rounded-[50%] bg-[radial-gradient(ellipse,rgba(219,232,255,.3)_0%,rgba(126,156,255,.15)_36%,transparent_70%)] [filter:blur(9px)] [mix-blend-mode:screen] [transform:translate(-50%,-50%)] [animation:galaxy-core-breathe_7.5s_ease-in-out_infinite] [will-change:transform,opacity]`,"aria-hidden":`true`}),(0,C.jsx)(`i`,{className:`galaxy-aurora absolute z-[0] block pointer-events-none w-[46%] h-[31%] rounded-[50%] [filter:blur(21px)] [mix-blend-mode:screen] opacity-[.42] [will-change:transform,opacity] [left:8%] [top:20%] bg-[radial-gradient(ellipse,var(--galaxy-nebula-a),transparent_70%)] [animation:galaxy-aurora-drift_18s_ease-in-out_infinite_alternate]`,"aria-hidden":`true`}),(0,C.jsx)(`i`,{className:`galaxy-aurora absolute z-[0] block pointer-events-none w-[46%] h-[31%] rounded-[50%] [filter:blur(21px)] [mix-blend-mode:screen] opacity-[.42] [will-change:transform,opacity] [right:5%] [bottom:14%] bg-[radial-gradient(ellipse,var(--galaxy-nebula-b),transparent_70%)] [animation:galaxy-aurora-drift_23s_ease-in-out_-9s_infinite_alternate-reverse]`,"aria-hidden":`true`}),(0,C.jsx)(`i`,{className:`galaxy-aurora absolute z-[0] block pointer-events-none w-[46%] h-[31%] rounded-[50%] [filter:blur(21px)] [mix-blend-mode:screen] opacity-[.42] [will-change:transform,opacity] galaxy-aurora-three left-[30%] top-[60%] !w-[40%] !h-[27%] bg-[radial-gradient(ellipse,var(--galaxy-nebula-c),transparent_70%)] [animation:galaxy-aurora-drift_27s_ease-in-out_-14s_infinite_alternate]`,"aria-hidden":`true`}),(0,C.jsxs)(`svg`,{viewBox:`0 0 600 420`,preserveAspectRatio:`none`,"aria-hidden":`true`,children:[(0,C.jsxs)(`g`,{className:`galaxy-orbits [&_ellipse]:[fill:none] [&_ellipse]:[stroke:var(--galaxy-line)] [&_ellipse]:[stroke-width:.72] [&_ellipse]:[stroke-dasharray:3_7] [&_ellipse]:opacity-[.52] [transform-box:fill-box] [transform-origin:center] [animation:galaxy-orbit-drift_90s_linear_infinite]`,children:[(0,C.jsx)(`ellipse`,{cx:`300`,cy:`206`,rx:`205`,ry:`122`,transform:`rotate(-8 300 206)`}),(0,C.jsx)(`ellipse`,{cx:`300`,cy:`206`,rx:`154`,ry:`88`,transform:`rotate(18 300 206)`}),(0,C.jsx)(`ellipse`,{cx:`300`,cy:`206`,rx:`95`,ry:`54`,transform:`rotate(-24 300 206)`})]}),(0,C.jsx)(`defs`,{children:Me.map((e,t)=>{let n=Z.get(e.sourceId),r=Z.get(e.targetId);return!n||!r?null:(0,C.jsxs)(`linearGradient`,{id:`lg-${t}`,gradientUnits:`userSpaceOnUse`,x1:n.x,y1:n.y,x2:r.x,y2:r.y,children:[(0,C.jsx)(`stop`,{offset:`0`,stopColor:fe[n.node.type]||`var(--galaxy-line-active)`}),(0,C.jsx)(`stop`,{offset:`1`,stopColor:fe[r.node.type]||`var(--galaxy-line-active)`})]},e.id)})}),Me.map((e,t)=>{let n=Z.get(e.sourceId),r=Z.get(e.targetId);if(!n||!r)return null;let i=e.sourceId===Q||e.targetId===Q,a=he(n,r,E(e.id));return(0,C.jsxs)(`g`,{children:[(0,C.jsx)(`path`,{className:`link-path [.galaxy-stage_>_svg_&]:[fill:none] [.galaxy-stage_>_svg_&]:[stroke-width:1.05] [.galaxy-stage_>_svg_&]:[stroke-dasharray:3_5] [.galaxy-stage_>_svg_&]:opacity-[.5] [.galaxy-stage_>_svg_&]:[animation:galaxy-link-flow_30s_linear_infinite] [.galaxy-stage_>_svg_&]:[transition:opacity_var(--d2)_var(--ease-out)] [.galaxy-stage_>_svg_&.active]:[stroke-width:1.55] [.galaxy-stage_>_svg_&.active]:[stroke-dasharray:none] [.galaxy-stage_>_svg_&.active]:opacity-100 [.galaxy-stage_>_svg_&.active]:[filter:drop-shadow(0_0_3.5px_var(--galaxy-line-active))] [.galaxy-stage.has-focus_&]:opacity-[.14] [.galaxy-stage.has-focus_&.active]:opacity-100 ${i?`active`:``}`,d:a,stroke:`url(#lg-${t})`}),i&&(0,C.jsx)(`circle`,{className:`link-pulse [.galaxy-stage_>_svg_&]:[fill:var(--g-star-core)] [.galaxy-stage_>_svg_&]:[filter:drop-shadow(0_0_4px_var(--galaxy-line-active))] [.galaxy-stage_>_svg_&]:pointer-events-none`,r:`2.1`,children:(0,C.jsx)(`animateMotion`,{dur:`2.8s`,repeatCount:`indefinite`,path:a})})]},e.id)})]}),(0,C.jsx)(`i`,{className:`galaxy-meteor before:[content:''] before:absolute before:top-[50%] before:left-[1px] before:w-[72px] before:h-[1px] before:bg-[linear-gradient(90deg,transparent,var(--galaxy-dot))] before:[transform:translateY(-50%)] absolute [top:14%] [left:80%] w-[2.4px] h-[2.4px] rounded-[50%] bg-[var(--galaxy-label-active)] shadow-[0_0_7px_1px_var(--galaxy-dot)] opacity-0 pointer-events-none [animation:galaxy-meteor_12s_linear_infinite] z-[3]`,"aria-hidden":`true`}),(0,C.jsx)(`i`,{className:`galaxy-meteor before:[content:''] before:absolute before:top-[50%] before:left-[1px] before:w-[72px] before:h-[1px] before:bg-[linear-gradient(90deg,transparent,var(--galaxy-dot))] before:[transform:translateY(-50%)] absolute [top:14%] [left:80%] w-[2.4px] h-[2.4px] rounded-[50%] bg-[var(--galaxy-label-active)] shadow-[0_0_7px_1px_var(--galaxy-dot)] opacity-0 pointer-events-none [animation:galaxy-meteor_12s_linear_infinite] z-[3] meteor-two [.galaxy-meteor&]:top-[63%] [.galaxy-meteor&]:left-[89%] [.galaxy-meteor&]:[animation:galaxy-meteor-b_17s_linear_4.5s_infinite]`,"aria-hidden":`true`}),(0,C.jsx)(`i`,{className:`galaxy-meteor before:[content:''] before:absolute before:top-[50%] before:left-[1px] before:w-[72px] before:h-[1px] before:bg-[linear-gradient(90deg,transparent,var(--galaxy-dot))] before:[transform:translateY(-50%)] absolute [top:14%] [left:80%] w-[2.4px] h-[2.4px] rounded-[50%] bg-[var(--galaxy-label-active)] shadow-[0_0_7px_1px_var(--galaxy-dot)] opacity-0 pointer-events-none [animation:galaxy-meteor_12s_linear_infinite] z-[3] meteor-three [.galaxy-meteor&]:top-[7%] [.galaxy-meteor&]:left-[36%] [.galaxy-meteor&]:[animation:galaxy-meteor-c_23s_linear_11s_infinite]`,"aria-hidden":`true`}),X.map(({node:e,x:t,y:n,twinkle:r},i)=>(0,C.jsxs)(`button`,{className:`galaxy-star focus-visible:rounded-[50%] focus-visible:[outline-color:var(--galaxy-line-active)] before:[content:''] before:absolute before:w-[calc(var(--star-size)_+_26px)] before:h-[calc(var(--star-size)_+_26px)] before:rounded-[50%] before:bg-[radial-gradient(circle,var(--g-star-glow),transparent_68%)] before:[filter:blur(3px)] before:opacity-[.76] before:pointer-events-none [&.active::after]:[content:''] [&.active::after]:absolute [&.active::after]:w-[calc(var(--star-size)_+_31px)] [&.active::after]:h-[calc(var(--star-size)_+_31px)] [&.active::after]:[border:1px_solid_var(--g-star-glow)] [&.active::after]:rounded-[50%] [&.active::after]:pointer-events-none [&.active::after]:[animation:galaxy-star-selection-pulse_2.3s_var(--ease-out)_infinite] [&:hover::before]:opacity-100 [&.active::before]:opacity-100 absolute z-[2] grid w-[52px] h-[52px] min-w-0 min-h-[52px] place-items-center [transform:translate(-50%,-50%)_translate3d(calc(var(--px,0)_*_(9px_+_var(--depth,0)_*_7px)),calc(var(--py,0)_*_(6px_+_var(--depth,0)_*_5px)),0)] border-0 rounded-[50%] bg-transparent p-0 cursor-pointer [transition:transform_.9s_var(--ease-out),opacity_.45s_var(--ease-out),filter_.45s_var(--ease-out)] [animation:galaxy-star-enter_.72s_var(--ease-out)_var(--enter-delay,0ms)_backwards] ${M===e.id?`active`:``} ${Q&&e.id!==Q&&!Pe.has(e.id)?`dimmed [.galaxy-stage.has-focus_.galaxy-star&]:opacity-[.32] [.galaxy-stage.has-focus_.galaxy-star&]:[filter:saturate(.4)_brightness(.82)]`:``}`,onClick:()=>N(e.id),onMouseEnter:()=>we(e.id),onMouseLeave:()=>we(``),style:{left:`${t/w.width*100}%`,top:`${n/w.height*100}%`,"--star-size":`${12+Math.round((e.importance||.5)*9)}px`,"--twinkle-delay":`${r}s`,"--enter-delay":`${i*55}ms`,"--depth":E(e.id)%100/100,"--g-star-color":fe[e.type],"--g-star-glow":pe[e.type]},title:e.content,children:[M===e.id&&(0,C.jsx)(`i`,{className:`orbit-ring [.galaxy-star_&]:absolute [.galaxy-star_&]:left-[50%] [.galaxy-star_&]:top-[50%] [.galaxy-star_&]:w-[calc(var(--star-size)_+_36px)] [.galaxy-star_&]:h-[calc(var(--star-size)_+_36px)] [.galaxy-star_&]:[border:1px_solid_var(--galaxy-line-active)] [.galaxy-star_&]:rounded-[50%] [.galaxy-star_&]:pointer-events-none [.galaxy-star_&]:[transform:translate(-50%,-50%)_rotate(-22deg)_scaleY(.44)] [.galaxy-star_&]:[animation:galaxy-selected-orbit_6s_linear_infinite] [.galaxy-star_&]:opacity-[.8] [.galaxy-star_&::before]:[content:''] [.galaxy-star_&::before]:absolute [.galaxy-star_&::before]:top-[-2.2px] [.galaxy-star_&::before]:left-[50%] [.galaxy-star_&::before]:w-[4.4px] [.galaxy-star_&::before]:h-[4.4px] [.galaxy-star_&::before]:ml-[-2.2px] [.galaxy-star_&::before]:rounded-[50%] [.galaxy-star_&::before]:bg-[var(--g-star-color)] [.galaxy-star_&::before]:shadow-[0_0_6px_1px_var(--g-star-glow)]`,"aria-hidden":`true`}),M===e.id&&(0,C.jsx)(`i`,{className:`dash-ring [.galaxy-star_&]:absolute [.galaxy-star_&]:left-[50%] [.galaxy-star_&]:top-[50%] [.galaxy-star_&]:w-[calc(var(--star-size)_+_23px)] [.galaxy-star_&]:h-[calc(var(--star-size)_+_23px)] [.galaxy-star_&]:[border:1px_dashed_var(--g-star-glow)] [.galaxy-star_&]:rounded-[50%] [.galaxy-star_&]:opacity-[.9] [.galaxy-star_&]:pointer-events-none [.galaxy-star_&]:[transform:translate(-50%,-50%)] [.galaxy-star_&]:[animation:galaxy-dash-spin_16s_linear_infinite]`,"aria-hidden":`true`}),(0,C.jsxs)(`svg`,{className:`star-core [.galaxy-star_&]:relative [.galaxy-star_&]:block [.galaxy-star_&]:w-[var(--star-size)] [.galaxy-star_&]:h-[var(--star-size)] [.galaxy-star_&]:[transition:transform_var(--d2)_var(--ease-spring)] [.galaxy-star_&]:[animation:galaxy-star-twinkle_3.8s_ease-in-out_var(--twinkle-delay)_infinite] [.galaxy-star_&]:overflow-visible [.galaxy-star_&]:rounded-[0] [.galaxy-star_&]:bg-transparent [.galaxy-star_&]:shadow-[none] [.galaxy-star_&]:[filter:drop-shadow(0_0_3px_var(--g-star-glow))_drop-shadow(0_0_8px_var(--g-star-glow))] [.galaxy-star_&]:origin-[center] [.galaxy-star:hover_&]:[transform:scale(1.28)] [.galaxy-star.active_&]:[transform:scale(1.32)] [.galaxy-star.active_&]:[animation:galaxy-star-twinkle_2.1s_ease-in-out_var(--twinkle-delay)_infinite]`,viewBox:`0 0 32 32`,"aria-hidden":`true`,children:[(0,C.jsx)(`path`,{className:`star-ray [.galaxy-star_.star-core_&]:[fill:var(--g-star-glow)] [.galaxy-star_.star-core_&]:opacity-[.58] [.galaxy-star_.star-core_&]:[transform-box:fill-box] [.galaxy-star_.star-core_&]:origin-[center] [.galaxy-star_.star-core_&]:[transform:scale(1.45)] [.galaxy-star.active_.star-core_&]:opacity-[.88] [.galaxy-star.active_.star-core_&]:[transform:scale(1.82)]`,d:`M16 0 L19.7 12.3 L32 16 L19.7 19.7 L16 32 L12.3 19.7 L0 16 L12.3 12.3 Z`}),(0,C.jsx)(`path`,{className:`star-shape [.galaxy-star_.star-core_&]:[fill:var(--g-star-color)]`,d:`M16 2 L18.8 13.2 L30 16 L18.8 18.8 L16 30 L13.2 18.8 L2 16 L13.2 13.2 Z`}),(0,C.jsx)(`circle`,{className:`star-heart [.galaxy-star_.star-core_&]:[fill:var(--g-star-core)]`,cx:`16`,cy:`16`,r:`3.2`})]}),(0,C.jsx)(`span`,{className:`star-label [.galaxy-stage.has-focus_.galaxy-star.dimmed_&]:opacity-[.3] [.galaxy-stage.has-focus_.galaxy-star.dimmed_&]:[transition:opacity_.45s_var(--ease-out)] [.galaxy-star_&]:absolute [.galaxy-star_&]:top-[calc(50%_+_17px)] [.galaxy-star_&]:left-[50%] [.galaxy-star_&]:max-w-[120px] [.galaxy-star_&]:overflow-hidden [.galaxy-star_&]:text-[var(--galaxy-label)] [.galaxy-star_&]:text-[11px] [.galaxy-star_&]:leading-[1.35] [.galaxy-star_&]:pointer-events-none [.galaxy-star_&]:text-ellipsis [.galaxy-star_&]:[text-shadow:0_1px_7px_var(--galaxy-bg)] [.galaxy-star_&]:[transform:translateX(-50%)] [.galaxy-star_&]:[transition:color_var(--d1)_var(--ease-out)] [.galaxy-star_&]:whitespace-nowrap [.galaxy-star:hover_&]:text-[var(--galaxy-label-active)] [.galaxy-star.active_&]:text-[var(--galaxy-label-active)] [.galaxy-star.active_&]:font-[700]`,children:e.title})]},e.id))]}),!!X.length&&(0,C.jsxs)(`span`,{className:`absolute z-[3] [right:12px] [bottom:9px] [border:1px_solid_var(--galaxy-toolbar-border)] rounded-[var(--r-pill)] bg-[rgba(12,11,20,.52)] [padding:3px_10px] text-[var(--galaxy-label)] text-[11px] tracking-[.5px] pointer-events-none [backdrop-filter:blur(6px)]`,children:[`✦`,` `,c(`memory:memoryPage.visibleTotalMemories`,{visible:X.length,total:T.nodes.length})]}),!ve&&!X.length&&(0,C.jsxs)(`div`,{className:`memory-empty [.galaxy-panel_&]:text-[var(--galaxy-label)] [.galaxy-panel_&]:[--stroke:var(--galaxy-toolbar-border)] [.galaxy-panel_&]:[--control-muted:var(--galaxy-label)] [.galaxy-panel_&]:[--star:var(--g-decision)] [.galaxy-panel_&]:[--text-muted:var(--galaxy-label)] absolute z-[3] inset-0 grid [align-content:center] justify-items-center gap-[8px] text-[var(--text-muted)] text-[12px] pointer-events-none`,children:[(0,C.jsx)(ie,{size:44}),(0,C.jsx)(`span`,{children:c(`memory:memoryPage.thisMemorySpaceIsStillUnlitClickInTheTopLeftToPlantTheFirstStar`)})]})]}),(0,C.jsxs)(`div`,{className:`detail-stack flex min-w-0 flex-col gap-[12px] [.mcp-layout_>_&]:min-h-0 max-[1150px]:[.memory-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.memory-layout_>_&]:grid max-[1150px]:[.memory-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.mcp-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.mcp-layout_>_&]:grid max-[1150px]:[.mcp-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.skills-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.skills-layout_>_&]:grid max-[1150px]:[.skills-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:[.memory-layout_>_&]:[grid-column:auto] max-[650px]:[.memory-layout_>_&]:grid-cols-[1fr] max-[650px]:[.mcp-layout_>_&]:[grid-column:auto] max-[650px]:[.mcp-layout_>_&]:grid-cols-[1fr] max-[650px]:[.skills-layout_>_&]:[grid-column:auto] max-[650px]:[.skills-layout_>_&]:grid-cols-[1fr]`,children:[(0,C.jsxs)(x,{children:[(0,C.jsx)(b,{title:c(`memory:memoryPage.selectedMemory`)}),Y?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`h2`,{children:Y.title}),(0,C.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-muted)] text-[12px] leading-[1.55]`,children:Y.content}),(0,C.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,C.jsx)(`span`,{children:c(`memory:memoryPage.memoryType`)}),(0,C.jsxs)(`strong`,{className:`inline-flex items-center gap-[6px]`,children:[(0,C.jsx)(`i`,{className:`g-dot [&.g-concept]:bg-[var(--g-concept)] [&.g-concept]:shadow-[0_0_5px_var(--g-concept-glow)] [&.g-file]:bg-[var(--g-file)] [&.g-file]:shadow-[0_0_5px_var(--g-file-glow)] [&.g-risk]:bg-[var(--g-risk)] [&.g-risk]:shadow-[0_0_5px_var(--g-risk-glow)] [&.g-preference]:bg-[var(--g-preference)] [&.g-preference]:shadow-[0_0_5px_var(--g-preference-glow)] [&.g-decision]:bg-[var(--g-decision)] [&.g-decision]:shadow-[0_0_5px_var(--g-decision-glow)] [&.g-fact]:bg-[var(--g-fact)] [&.g-fact]:shadow-[0_0_5px_var(--g-fact-glow)] [&.g-task]:bg-[var(--g-task)] [&.g-task]:shadow-[0_0_5px_var(--g-task-glow)] inline-block w-[7px] h-[7px] flex-none rounded-[50%] g-${Y.type}`}),de(Y.type,c)]})]}),(0,C.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,C.jsx)(`span`,{children:c(`memory:memoryPage.source`)}),(0,C.jsx)(`strong`,{children:Y.sourceType===`conversation_confirmed`?c(`memory:memoryPage.userConfirmedConversationCandidate`):Y.sourceType===`user_confirmed`?c(`memory:memoryPage.explicitUserRequest`):Y.sourceType===`agent`?c(`memory:memoryPage.createdByAgent`):c(`memory:memoryPage.addedManually`)})]}),(0,C.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,C.jsx)(`span`,{children:c(`memory:memoryPage.authority`)}),(0,C.jsxs)(`strong`,{children:[Y.authority??0,`/100`]})]}),Y.evidence&&(0,C.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,C.jsx)(`span`,{children:c(`memory:memoryPage.evidence`)}),(0,C.jsx)(`strong`,{children:Y.evidence})]}),(0,C.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,C.jsx)(`span`,{children:c(`memory:memoryPage.created`)}),(0,C.jsx)(`strong`,{children:D(Y.createdAt,_)})]}),(0,C.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,C.jsx)(`span`,{children:c(`memory:memoryPage.relatedMemories`)}),(0,C.jsx)(`strong`,{children:c(`memory:memoryPage.count`,{count:Ne.size})})]}),(0,C.jsxs)(`div`,{className:`mt-[15px] flex gap-2 max-[650px]:flex-wrap`,children:[(0,C.jsxs)(g,{size:`lg`,onClick:()=>L(Y),children:[(0,C.jsx)(p,{size:14}),c(`memory:memoryPage.edit`)]}),(0,C.jsxs)(g,{variant:`destructive`,size:`lg`,onClick:()=>Ie(Y),children:[(0,C.jsx)(re,{size:14}),c(`memory:memoryPage.delete`)]})]})]}):(0,C.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-muted)] text-[12px] leading-[1.55]`,children:c(`memory:memoryPage.selectAMemoryInTheMapToViewItsDetails`)}),be&&(0,C.jsx)(v,{children:be})]}),(0,C.jsxs)(x,{children:[(0,C.jsx)(b,{title:c(`memory:memoryPage.relatedFiles`)}),Fe.map(e=>(0,C.jsxs)(`div`,{className:`file-row [&_span]:flex [&_span]:min-w-0 [&_span]:flex-col [&_span]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[13px] grid grid-cols-[auto_minmax(0,1fr)_auto_auto_auto] items-center gap-[6px] [border-top:1px_solid_var(--stroke-soft)] [padding:8px_0]`,children:[(0,C.jsx)(d,{size:15}),(0,C.jsxs)(`span`,{children:[(0,C.jsx)(`strong`,{children:e.title}),(0,C.jsx)(`small`,{children:e.sourcePath||e.cwd||c(`memory:memoryPage.localMemory`)})]}),(0,C.jsx)(`button`,{onClick:()=>N(e.id),children:c(`memory:memoryPage.view`)}),(0,C.jsx)(`button`,{onClick:()=>L(e),children:(0,C.jsx)(p,{size:13})}),(0,C.jsx)(`button`,{className:`danger`,onClick:()=>Ie(e),children:(0,C.jsx)(re,{size:13})})]},e.id)),!Fe.length&&(0,C.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-muted)] text-[12px] leading-[1.55]`,children:c(`memory:memoryPage.thisMemoryHasNoRelatedFiles`)})]})]}),I&&(0,C.jsx)(ge,{spaces:T.spaces,node:I.id?I:null,initialSpaceId:I.spaceId||A,onClose:()=>L(null),onSaved:async t=>{L(null),e(t),await J(A)}}),R&&(0,C.jsx)(_e,{space:R.id?R:null,onClose:()=>z(null),onSaved:async(t,n)=>{z(null),j(t.id),e(n)}})]})}function ge({spaces:e,node:t,initialSpaceId:n,onClose:a,onSaved:o}){let{t:s}=r(),[c,l]=(0,S.useState)({spaceId:t?.spaceId||n||e[0]?.id||``,title:t?.title||``,content:t?.content||``,type:t?.type||`concept`,sourcePath:t?.sourcePath||``,importance:t?.importance??.5}),[u,d]=(0,S.useState)(!1),[ee,f]=(0,S.useState)(``);return(0,C.jsx)(`div`,{className:`modal-backdrop max-[650px]:p-[8px] fixed z-[70] inset-0 grid place-items-center overflow-y-auto bg-[var(--modal-overlay)] [backdrop-filter:blur(3px)] [padding:20px] [overscroll-behavior:contain] [animation:fade-in_var(--d1)_var(--ease-out)]`,onMouseDown:e=>!u&&e.target===e.currentTarget&&a(),children:(0,C.jsxs)(`form`,{role:`dialog`,"aria-modal":`true`,"aria-label":s(t?`memory:memoryPage.editMemory`:`memory:memoryPage.addMemory`),className:`modal !w-[min(430px,100%)] max-h-[calc(100dvh_-_40px)] overflow-y-auto [overscroll-behavior:contain] [border:1px_solid_var(--surface-highlight)] rounded-[var(--r-md)] bg-[var(--solid)] p-[18px] shadow-[0_26px_70px_-25px_var(--shadow-strong)] [animation:modal-in_var(--d2)_var(--ease-out)] max-[650px]:max-h-[calc(100dvh_-_16px)]`,onSubmit:async e=>{if(e.preventDefault(),!u){d(!0),f(``);try{await h(t?`/api/memory/nodes/${encodeURIComponent(t.id)}`:`/api/memory/nodes`,{method:t?`PATCH`:`POST`,body:JSON.stringify(c)}),await o(s(t?`memory:memoryPage.memoryUpdated`:`memory:memoryPage.memoryCreated`))}catch(e){f(k(e))}finally{d(!1)}}},children:[(0,C.jsxs)(y,{children:[(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`h2`,{children:s(t?`memory:memoryPage.editMemory`:`memory:memoryPage.addMemory`)}),(0,C.jsx)(`p`,{children:s(`memory:memoryPage.lightUpIdeasWorthKeepingAsMemoriesYouCanReturnToLater`)})]}),(0,C.jsx)(g,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":s(`memory:memoryPage.closeDialog`),disabled:u,onClick:a,children:(0,C.jsx)(m,{size:17})})]}),(0,C.jsxs)(_,{variant:`control`,children:[s(`memory:memoryPage.memorySpace`),(0,C.jsx)(i,{value:c.spaceId,onChange:e=>l({...c,spaceId:e.target.value}),children:e.map(e=>(0,C.jsx)(`option`,{value:e.id,children:O(e,s)},e.id))})]}),(0,C.jsxs)(_,{variant:`control`,children:[s(`memory:memoryPage.memoryTitle`),(0,C.jsx)(`input`,{value:c.title,onChange:e=>l({...c,title:e.target.value}),placeholder:s(`memory:memoryPage.forExampleProjectUIConstraints`)})]}),(0,C.jsxs)(_,{variant:`control`,children:[s(`memory:memoryPage.memoryContent`),(0,C.jsx)(`textarea`,{value:c.content,onChange:e=>l({...c,content:e.target.value}),placeholder:s(`memory:memoryPage.recordStandaloneReusableMemoryForFutureChats`)})]}),(0,C.jsxs)(`div`,{className:`form-grid grid gap-[9px]`,children:[(0,C.jsxs)(_,{variant:`control`,children:[s(`memory:memoryPage.memoryType`),(0,C.jsx)(i,{value:c.type,onChange:e=>l({...c,type:e.target.value}),children:ue.map(e=>(0,C.jsx)(`option`,{value:e,children:de(e,s)},e))})]}),(0,C.jsxs)(_,{variant:`control`,children:[s(`memory:memoryPage.importance`),(0,C.jsxs)(i,{value:c.importance,onChange:e=>l({...c,importance:Number(e.target.value)}),children:[(0,C.jsx)(`option`,{value:`0.3`,children:s(`memory:memoryPage.normal`)}),(0,C.jsx)(`option`,{value:`0.5`,children:s(`memory:memoryPage.common`)}),(0,C.jsx)(`option`,{value:`0.8`,children:s(`memory:memoryPage.important`)}),(0,C.jsx)(`option`,{value:`1`,children:s(`memory:memoryPage.strict`)})]})]})]}),(0,C.jsxs)(_,{variant:`control`,children:[s(`memory:memoryPage.relatedFilePath`),(0,C.jsx)(`input`,{value:c.sourcePath,onChange:e=>l({...c,sourcePath:e.target.value}),placeholder:s(`memory:memoryPage.optionalForExampleECodeProjectREADMEMd`)})]}),ee&&(0,C.jsx)(v,{children:ee}),(0,C.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[(0,C.jsx)(g,{type:`button`,variant:`outline`,size:`lg`,className:`bg-surface-subtle`,onClick:a,children:s(`memory:memoryPage.cancel`)}),(0,C.jsxs)(g,{size:`lg`,disabled:u||!c.spaceId||!c.title.trim()||!c.content.trim(),children:[u?(0,C.jsx)(ne,{className:`animate-spin`,size:14}):(0,C.jsx)(p,{size:14}),s(u?`memory:memoryPage.saving`:`memory:memoryPage.save`)]})]})]})})}function _e({space:e,onClose:t,onSaved:n}){let{t:i}=r(),[a,o]=(0,S.useState)(e?.name||``),[s,c]=(0,S.useState)(!1),[l,u]=(0,S.useState)(``);return(0,C.jsx)(`div`,{className:`modal-backdrop max-[650px]:p-[8px] fixed z-[70] inset-0 grid place-items-center overflow-y-auto bg-[var(--modal-overlay)] [backdrop-filter:blur(3px)] [padding:20px] [overscroll-behavior:contain] [animation:fade-in_var(--d1)_var(--ease-out)]`,onMouseDown:e=>!s&&e.target===e.currentTarget&&t(),children:(0,C.jsxs)(`form`,{role:`dialog`,"aria-modal":`true`,"aria-label":i(e?`memory:memoryPage.renameMemorySpace`:`memory:memoryPage.newMemorySpace`),className:`modal !w-[min(430px,100%)] max-h-[calc(100dvh_-_40px)] overflow-y-auto [overscroll-behavior:contain] [border:1px_solid_var(--surface-highlight)] rounded-[var(--r-md)] bg-[var(--solid)] p-[18px] shadow-[0_26px_70px_-25px_var(--shadow-strong)] [animation:modal-in_var(--d2)_var(--ease-out)] max-[650px]:max-h-[calc(100dvh_-_16px)]`,onSubmit:async t=>{if(t.preventDefault(),!s){c(!0),u(``);try{await n(await h(e?`/api/memory/spaces/${encodeURIComponent(e.id)}`:`/api/memory/spaces`,{method:e?`PATCH`:`POST`,body:JSON.stringify({name:a,kind:`custom`})}),i(e?`memory:memoryPage.memorySpaceRenamed`:`memory:memoryPage.memorySpaceCreated`))}catch(e){u(k(e))}finally{c(!1)}}},children:[(0,C.jsxs)(y,{children:[(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`h2`,{children:i(e?`memory:memoryPage.renameMemorySpace`:`memory:memoryPage.newMemorySpace`)}),(0,C.jsx)(`p`,{children:i(`memory:memoryPage.giveEachThemeOrProjectItsOwnMemorySpaceSoDurableMemoriesHaveSomewhereToBelong`)})]}),(0,C.jsx)(g,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":i(`memory:memoryPage.closeDialog`),disabled:s,onClick:t,children:(0,C.jsx)(m,{size:17})})]}),(0,C.jsxs)(_,{variant:`control`,children:[i(`memory:memoryPage.memorySpaceName`),(0,C.jsx)(`input`,{value:a,onChange:e=>o(e.target.value),placeholder:i(`memory:memoryPage.forExampleProductDesignGuidelines`),autoFocus:!0})]}),l&&(0,C.jsx)(v,{children:l}),(0,C.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[(0,C.jsx)(g,{type:`button`,variant:`outline`,size:`lg`,className:`bg-surface-subtle`,onClick:t,children:i(`memory:memoryPage.cancel`)}),(0,C.jsxs)(g,{size:`lg`,disabled:s||!a.trim(),children:[s?(0,C.jsx)(ne,{className:`animate-spin`,size:14}):(0,C.jsx)(te,{size:14}),i(s?`memory:memoryPage.saving`:`memory:memoryPage.save`)]})]})]})})}export{A as MemoryPage};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AssetsPage-BPhPo5eU.js","assets/rolldown-runtime-B0Z9INg1.js","assets/index-AF29hfx9.js","assets/vendor-router-CZg2bCPV.js","assets/vendor-react-DwNgTV1j.js","assets/index-BAmsg90v.css","assets/use-i18n-a84Zp9dV.js","assets/i18n-8nTnthu6.js","assets/storage-BpAqa-YY.js","assets/vendor-state-GkUciC5H.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/download-BCfIiuaL.js","assets/external-link-CEQqPcqc.js","assets/file-Bllajneu.js","assets/link-2-mgasYn21.js","assets/paperclip-BCXrwYpb.js","assets/plus-fQbSqB1n.js","assets/refresh-cw-TbWxTY4K.js","assets/trash-2-CNrPOoPR.js","assets/triangle-alert-CE1q54ci.js","assets/x-07u4-129.js","assets/api-YI8_cHpR.js","assets/http-Be2GB6DH.js","assets/abort-signal-f4JsiYKX.js","assets/button-CQA36izu.js","assets/vendor-ui-DvrYggeS.js","assets/dist-Cfh4kzCK.js","assets/utils-C8uzG5AZ.js","assets/field-3bN8nouy.js","assets/label-BzlNatZM.js","assets/dist-B_a0oV4U.js","assets/separator-BDICnhEL.js","assets/format-BRFKAYMT.js","assets/app-primitives-SxfoFmHc.js","assets/switch-Ci_hmu39.js","assets/dist-TksYpDID.js","assets/tabs-B60r4YwO.js","assets/dist-B7rNRXig.js","assets/dist-C3P9WH0T.js","assets/card-BdUpL1KB.js","assets/StarOrbit-BAAjh-hY.js","assets/usePagePrimaryAction-CWPC0C_f.js","assets/MarkdownMessage-CA9ODRKk.js","assets/vendor-markdown-plugins-DisoihU3.js","assets/vendor-shiki-runtime-UFMr0O-Q.js","assets/vendor-markdown-plugins-DEcVZfaU.css","assets/vendor-markdown-Ck4Y_w0n.js","assets/check-2vYc6QaP.js","assets/copy-DHmIFc52.js","assets/route-context-DvWDul4T.js","assets/mobile-runtime-recovery-tbTyacip.js","assets/PluginsPage-09Um3mY4.js","assets/dist-BdkTa5R3.js","assets/es2015-0QT3KgdC.js","assets/AppSelect-BCexz4Ty.js","assets/dist-BlIIpW6W.js","assets/dist-alOyD2Bh.js","assets/dist-D8Wfxh48.js","assets/chevron-down-CxtxIjiP.js","assets/use-mobile-YXncArOq.js","assets/circle-check-iEdCm3Pw.js","assets/earth-Ddy13fHh.js","assets/shield-alert-CvFOTe9h.js","assets/file-code-corner-BnE1ljT0.js","assets/folder-open-FIShC5Qk.js","assets/image-BY_c3FYU.js","assets/loader-circle-BOwQzHB-.js","assets/plug-BsIeHRwC.js","assets/search-D0mqDaf_.js","assets/server-BgNvmqwJ.js","assets/dialog-D-ER2p-D.js","assets/runtime-capabilities-store-CiL3ZPEo.js","assets/tool-labels-DJzY62Yr.js","assets/pick-system-directory-BnIFt85A.js","assets/TerminalPanel-CJPy4Qhs.js","assets/minus-BuutOHSj.js","assets/square-terminal-BVG6cUT1.js","assets/events-KqdUtjsm.js","assets/TerminalPanel-BrP-ENHg.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{p as t}from"./vendor-router-CZg2bCPV.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-a84Zp9dV.js";import{t as a}from"./utils-C8uzG5AZ.js";import{t as o}from"./blocks-Olsdp5Lp.js";import{t as s}from"./file-diff-GxOMJkLj.js";import{t as c}from"./file-Bllajneu.js";import{t as l}from"./folder-open-FIShC5Qk.js";import{n as u,t as d}from"./panels-top-left-BlZftvhg.js";import{t as f}from"./folder-DPM8D8cf.js";import{t as p}from"./square-terminal-BVG6cUT1.js";import{i as m}from"./http-Be2GB6DH.js";import{t as h}from"./api-YI8_cHpR.js";import{t as g}from"./button-CQA36izu.js";import{t as _}from"./SessionFilesPane-DPijesqH.js";import{n as v}from"./MobileShellContext-D8qX-BlM.js";var y=e(n(),1);function b(e){let t=typeof e==`string`?e:e&&typeof e==`object`&&typeof e.name==`string`?e.name:``;return!t||t===`.`||t===`..`||t.includes(`/`)||t.includes(`\\`)?``:t}function x(e){if(!e||typeof e!=`object`||Array.isArray(e))throw m();let t=e,n=[],r=Array.isArray(t.directories)?t.directories:null,i=Array.isArray(t.files)?t.files:null;if(r||i){for(let e of r??[]){let t=b(e);t&&n.push({name:t,kind:`directory`})}for(let e of i??[]){let t=b(e);t&&n.push({name:t,kind:`file`})}return n}if(!Array.isArray(t.entries))throw m();for(let e of t.entries){if(!e||typeof e!=`object`)throw m();let t=e,r=b(t.name);if(!r||![`directory`,`file`].includes(String(t.type??t.kind)))throw m();n.push({name:r,kind:t.type===`directory`||t.kind===`directory`?`directory`:`file`})}return n.sort((e,t)=>e.kind===t.kind?e.name.localeCompare(t.name):e.kind===`directory`?-1:1)}function S(e,t){if(!t||t===`.`||t===`..`||t.includes(`/`)||t.includes(`\\`))return e;let n=e.replace(/[\\/]+$/,``);return n?`${n}/${t}`:t}function C(e){let t=e.replace(/[\\/]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return n<0?``:t.slice(0,n)}async function w(e,t){let n=await h(`/api/workspace-entries?path=${encodeURIComponent(e)}`,{signal:t}),r=x(n),i=n,a=i.path??i.root,o=i.parent;if(typeof a!=`string`||!a||o!=null&&typeof o!=`string`)throw m();return{path:a,parent:o===null?``:o??C(a),entries:r}}var T=r(),E=(0,y.lazy)(()=>t(()=>import(`./AssetsPage-BPhPo5eU.js`).then(e=>({default:e.AssetsPage})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]))),D=(0,y.lazy)(()=>t(()=>import(`./PluginsPage-09Um3mY4.js`).then(e=>({default:e.PluginsPage})),__vite__mapDeps([51,1,4,6,7,3,2,5,8,9,26,30,52,53,54,55,37,38,56,35,57,27,25,10,47,58,59,60,61,12,62,63,64,65,66,67,17,68,69,18,19,21,22,23,24,70,20,33,34,36,39,71,41,72,73]))),O=(0,y.lazy)(()=>t(()=>import(`./TerminalPanel-CJPy4Qhs.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([74,1,4,10,58,75,16,76,20,21,22,3,7,2,5,8,23,24,25,26,27,77,78]))),k=[{id:`assets`,icon:l},{id:`changes`,icon:s},{id:`session-tools`,icon:d},{id:`extensions`,icon:o},{id:`files`,icon:c},{id:`terminal`,icon:p}];function A(){let[e,t]=(0,y.useState)(null);return{action:e,register:(0,y.useCallback)(e=>(t(()=>e),()=>t(t=>t===e?null:t)),[])}}function j({sessionId:e,resolveSessionCwd:t}){let{t:n}=i(),[r,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(null),[l,d]=(0,y.useState)(``),[p,m]=(0,y.useState)([]),[h,g]=(0,y.useState)(!0),[_,v]=(0,y.useState)(``);return(0,y.useEffect)(()=>{let n=!1;return t(e).then(e=>{n||s(e)}).catch(e=>{n||(v(e instanceof Error?e.message:String(e)),g(!1))}),()=>{n=!0}},[t,e]),(0,y.useEffect)(()=>{if(o===null)return;let e=new AbortController;return g(!0),v(``),w(o,e.signal).then(t=>{e.signal.aborted||(m(t.entries),a(t.path),d(t.parent))}).catch(t=>{e.signal.aborted||(m([]),v(t instanceof Error?t.message:String(t)))}).finally(()=>{e.signal.aborted||g(!1)}),()=>e.abort()},[o]),(0,T.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,"data-swipe-ignore":!0,children:[(0,T.jsxs)(`div`,{className:`flex flex-none items-center gap-2 border-b border-[var(--stroke-soft)] px-3 py-2`,children:[(0,T.jsx)(`button`,{type:`button`,className:`grid size-8 place-items-center rounded-md text-muted-foreground enabled:hover:bg-muted disabled:opacity-40`,disabled:!l||h,"aria-label":n(`navigation:mobileShell.filesUp`),onClick:()=>s(l),children:(0,T.jsx)(u,{size:16})}),(0,T.jsx)(`p`,{className:`min-w-0 flex-1 truncate text-xs text-muted-foreground`,children:r||n(`navigation:mobileShell.workspaceRoot`)})]}),(0,T.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-2`,children:h?(0,T.jsx)(`p`,{className:`px-2 py-3 text-sm text-muted-foreground`,children:n(`navigation:mobileShell.filesLoading`)}):_?(0,T.jsx)(`p`,{className:`px-2 py-3 text-sm text-[var(--danger)]`,role:`alert`,children:_}):p.length===0?(0,T.jsx)(`p`,{className:`px-2 py-3 text-sm text-muted-foreground`,children:n(`navigation:mobileShell.filesEmpty`)}):(0,T.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:p.map(e=>(0,T.jsx)(`li`,{children:e.kind===`directory`?(0,T.jsxs)(`button`,{type:`button`,className:`flex h-10 w-full items-center gap-2 rounded-md px-2 text-left text-sm hover:bg-muted`,onClick:()=>s(S(r,e.name)),children:[(0,T.jsx)(f,{size:16,"aria-hidden":`true`}),(0,T.jsx)(`span`,{className:`truncate`,children:e.name})]}):(0,T.jsxs)(`div`,{className:`flex h-10 items-center gap-2 px-2 text-sm text-muted-foreground`,children:[(0,T.jsx)(c,{size:16,"aria-hidden":`true`}),(0,T.jsx)(`span`,{className:`truncate`,children:e.name})]})},`${e.kind}:${e.name}`))})})]})}function M({visible:e,sessionStreaming:t,onCloseTerminal:n,onOpenChat:r,tab:o,onTabChange:s,activeSessionId:c,query:l,notify:u,requestConfirm:d,requestText:f,onUseAsset:m,terminalSupported:h,terminalLabels:b,resolveSessionCwd:x}){let{t:S}=i(),{setSessionToolsHost:C}=v(),w={assets:S(`navigation:navigation.assets`),changes:S(`navigation:mobileShell.changes`),"session-tools":S(`navigation:mobileShell.sessionTools`),extensions:S(`navigation:mobileShell.extensions`),files:S(`navigation:mobileShell.files`),terminal:S(`navigation:mobileShell.terminal`)},M=A(),N=A(),[P,F]=(0,y.useState)(()=>new Set([o]));(0,y.useEffect)(()=>{F(e=>e.has(o)?e:new Set([...e,o]))},[o]);let I=e=>P.has(e)||o===e;return(0,T.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-background`,"data-mobile-context-screen":!0,children:[(0,T.jsx)(`div`,{className:`flex flex-none gap-1 overflow-x-auto border-b border-[var(--stroke-soft)] px-2 py-1.5 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,role:`tablist`,"aria-label":S(`navigation:mobileShell.context`),"data-swipe-ignore":!0,children:k.map(({id:e,icon:t})=>{let n=o===e;return(0,T.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":n,className:a(`flex h-8 flex-none items-center gap-1.5 rounded-full px-2.5 text-[12px] font-medium`,n?`bg-[var(--star-soft)] text-[var(--star-strong)]`:`text-[var(--text-muted)]`),onClick:()=>s(e),children:[(0,T.jsx)(t,{size:14,"aria-hidden":`true`}),w[e]]},e)})}),(0,T.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:[(0,T.jsx)(`div`,{ref:C,hidden:o!==`session-tools`||t===null,className:`h-full min-h-0`,"data-mobile-session-tools-host":!0}),o===`session-tools`&&t===null&&(0,T.jsx)(g,{className:`m-3`,variant:`outline`,onClick:r,children:S(`navigation:mobileShell.toolsOpenChat`)}),I(`assets`)&&(0,T.jsxs)(`div`,{hidden:o!==`assets`,className:`h-full overflow-auto px-3 py-3 [&_.asset-grid]:!grid-cols-1`,children:[(0,T.jsx)(g,{className:`mb-3`,disabled:!M.action,onClick:()=>M.action?.(),children:S(`assets:assetsPage.addLink`)}),(0,T.jsx)(y.Suspense,{fallback:null,children:(0,T.jsx)(E,{query:l,notify:u,registerPrimaryAction:M.register,requestConfirm:d,onUse:m},c)})]}),o===`changes`&&(c?t===null?(0,T.jsx)(g,{className:`m-3`,variant:`outline`,onClick:r,children:S(`navigation:mobileShell.changesOpenChat`)}):(0,T.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,children:(0,T.jsx)(_,{sessionId:c,streaming:t,requestConfirm:d},c)}):(0,T.jsx)(`p`,{className:`px-4 py-6 text-sm text-muted-foreground`,children:S(`navigation:mobileShell.noSessionChanges`)})),I(`extensions`)&&(0,T.jsxs)(`div`,{hidden:o!==`extensions`,className:`h-full overflow-auto px-3 py-3`,children:[(0,T.jsx)(g,{className:`mb-3`,disabled:!N.action,onClick:()=>N.action?.(),children:S(`plugins:pluginsPage.savePolicy`)}),(0,T.jsx)(y.Suspense,{fallback:null,children:(0,T.jsx)(D,{query:l,notify:u,registerPrimaryAction:N.register,requestText:f,requestConfirm:d})})]}),o===`files`&&(0,T.jsx)(j,{sessionId:c,resolveSessionCwd:x},c||`workspace`),I(`terminal`)&&(0,T.jsx)(`div`,{hidden:o!==`terminal`,className:`h-full min-h-0`,children:h?(0,T.jsx)(y.Suspense,{fallback:null,children:(0,T.jsx)(O,{layout:`fill`,open:e&&o===`terminal`,height:480,labels:b,activeSessionId:c,resolveSessionCwd:x,onOpenChange:e=>{e||n()},onHeightChange:()=>{}})}):(0,T.jsxs)(`div`,{className:`grid h-full place-content-center gap-2 px-6 text-center text-sm text-muted-foreground`,children:[(0,T.jsx)(p,{className:`mx-auto`,size:22,"aria-hidden":`true`}),(0,T.jsx)(`p`,{children:S(`navigation:mobileShell.terminalUnavailable`)})]})})]})]})}export{M as MobileContextScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-a84Zp9dV.js";import{t as i}from"./utils-C8uzG5AZ.js";import{i as a,r as o}from"./settings-navigation-CI7Yt4Or.js";import{t as s}from"./runtime-capabilities-store-CiL3ZPEo.js";var c=e(t(),1),l=n();function u({page:e,configSection:t,mobileApp:n,onNavigate:u}){let{t:d}=r(),f=a(e,t),p=(0,c.useRef)(null),m=s(e=>e.capabilities),h=(0,c.useMemo)(()=>o(d,{mobileApp:n,capabilities:m}).flatMap(e=>e.items).filter(e=>e.destination.type!==`config`||e.destination.id!==`desktop-pet`),[m,n,d]);return(0,c.useEffect)(()=>{p.current?.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})},[f]),(0,l.jsx)(`nav`,{"aria-label":d(`config:settingsShell.settingsNavigation`),className:`flex flex-none gap-2 overflow-x-auto px-4 pb-3 pt-1 [-ms-overflow-style:none] [scrollbar-width:none] max-[650px]:px-2 [&::-webkit-scrollbar]:hidden`,"data-mobile-navigation":`settings`,children:h.map(e=>{let t=f===e.key,n=e.icon;return(0,l.jsxs)(`button`,{"aria-current":t?`page`:void 0,className:i(`flex flex-none items-center gap-1.5 rounded-full border px-3 py-1.5 text-[12px] font-medium transition-colors`,t?`border-[var(--star-strong)] bg-[var(--star-soft)] text-[var(--star-strong)]`:`border-[var(--border)] text-[var(--text-muted)] hover:text-[var(--text)]`),onClick:()=>u(e.destination),ref:t?p:void 0,children:[(0,l.jsx)(n,{"aria-hidden":`true`,size:14}),(0,l.jsx)(`span`,{children:e.label})]},e.key)})})}export{u as MobileSettingsNavigation};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";var n=e(t(),1),r=[`sessions`,`chat`,`context`],i=960,a=640,o=48;function s(e,t){return e>=i&&t>=a?`pad`:`phone`}function c(e){let t=r.indexOf(e);return t<0?1:t}function l(e,t){let n=c(e)+t;return r[Math.min(r.length-1,Math.max(0,n))]}function u(e,t){return Math.abs(e)<o||Math.abs(e)<Math.abs(t)*1.2?0:e<0?1:-1}function d(e){return e instanceof Element&&!!e.closest(`input, textarea, select, [contenteditable="true"], [data-swipe-ignore], [role="dialog"], [role="slider"]`)}var f=(0,n.createContext)({active:!1,mode:`off`,pane:`chat`,tab:`assets`,setPane:()=>{},openContext:()=>{},sessionToolsHost:null,setSessionToolsHost:()=>{}}),p=f.Provider;function m(){return(0,n.useContext)(f)}function h(e){let[t,r]=(0,n.useState)(()=>({width:window.innerWidth,height:window.innerHeight}));return(0,n.useEffect)(()=>{let e=()=>r({width:window.innerWidth,height:window.innerHeight});return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),e?s(t.width,t.height):`off`}export{l as a,c as i,m as n,d as o,h as r,u as s,p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-
|
|
1
|
+
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-a84Zp9dV.js";import{t as n}from"./utils-C8uzG5AZ.js";import{t as r}from"./ThemeToggleButton-C5QA5Kf2.js";import{t as i}from"./link-2-mgasYn21.js";import{t as a}from"./WorkbenchSidebarToggle-CcO1Al5A.js";import{t as o}from"./play-DNDjDNGn.js";import{t as s}from"./plus-fQbSqB1n.js";import{t as c}from"./rocket-BgLSjoHY.js";import{t as l}from"./save-CHBB52P8.js";import{t as u}from"./search-D0mqDaf_.js";import{t as d}from"./square-terminal-BVG6cUT1.js";import{t as f}from"./square-bHHVTT3G.js";import{t as p}from"./button-CQA36izu.js";import{o as m}from"./shortcuts-C_Cph88H.js";var h=e();function g({elementRef:e,meta:g,page:_,query:v,setQuery:y,configSection:b,onPrimary:x,searchSlot:S,actionsSlot:C,theme:w,onCycleTheme:T,searchInputRef:E,workflowActions:D,desktopPlatform:O,mobileApp:k=!1,terminalOpen:A,onToggleTerminal:j}){let{t:M}=t(),N=m(`primaryAction`),P=m(`toggleTerminal`),F={chatHistory:[M(`navigation:pageHeader.newChat`),s],assets:[M(`navigation:pageHeader.addLink`),i],channels:[M(`navigation:pageHeader.connectChannel`),s],schedules:[M(`navigation:pageHeader.newTask`),s],config:[M(`navigation:pageHeader.quickSetup`),s],plugins:[M(`navigation:pageHeader.savePolicy`),l],memory:[M(`navigation:pageHeader.addMemory`),s],mcp:[M(`navigation:pageHeader.addService`),s],skills:[M(`navigation:pageHeader.installSkill`),s],workflows:[M(`navigation:pageHeader.newWorkflow`),s],workflowCreate:[M(`navigation:pageHeader.publish`),c]},I=_===`config`&&b!==`models`?null:_===`chat`?k?[M(`navigation:pageHeader.newChat`),s]:null:F[_],L=!!O;return(0,h.jsxs)(`header`,{ref:e,"data-window-drag-region":!0,className:n(`relative z-[2] flex min-h-14 flex-none items-center gap-3.5 px-6 pt-[9px] pb-[7px] in-data-[density=compact]:min-h-[50px] in-data-[density=compact]:pt-1.5 in-data-[density=compact]:pb-[5px] max-[650px]:min-h-[126px] max-[650px]:flex-wrap max-[650px]:content-center max-[650px]:gap-2.5 max-[650px]:px-4 max-[650px]:py-2.5`,_===`chat`&&`!min-h-12 px-4 !py-1.5 max-[650px]:!flex-nowrap`,L&&`[-webkit-app-region:drag]`,window.pisperDesktop?.customTitlebar&&`pr-[148px]`,O===`darwin`&&`pl-[74px]`),children:[(0,h.jsx)(a,{}),(0,h.jsxs)(`div`,{className:`mr-auto flex min-w-[170px] items-baseline gap-2.5 max-[650px]:block max-[650px]:min-w-0 max-[650px]:flex-1`,children:[(0,h.jsx)(`h1`,{className:`shrink-0 whitespace-nowrap text-base leading-[1.15] font-semibold tracking-normal max-[650px]:text-[21px]`,children:g[0]}),(0,h.jsx)(`p`,{className:n(`mt-0 min-w-0 overflow-hidden text-[12px] text-ellipsis whitespace-nowrap text-[var(--text-muted)] max-[650px]:mt-[3px] max-[650px]:whitespace-normal`,_===`chat`&&`hidden`),children:g[1]})]}),(0,h.jsxs)(`div`,{className:n(`flex min-w-0 items-center justify-end gap-2 max-[650px]:grid max-[650px]:w-full max-[650px]:grid-cols-[minmax(0,1fr)_auto] max-[650px]:justify-stretch`,_===`workflowCreate`&&`max-[650px]:grid-cols-[repeat(3,auto)] max-[650px]:justify-end`,_===`chat`&&`max-[650px]:!flex max-[650px]:!w-auto max-[650px]:shrink-0`,L&&`[-webkit-app-region:no-drag]`,O&&O!==`darwin`&&`pr-[138px]`),children:[_===`workflowCreate`?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(p,{variant:`outline`,size:`lg`,className:`bg-surface-subtle max-[650px]:col-auto max-[650px]:row-start-1`,disabled:!D||D.busy||D.running,onClick:()=>D?.save(),children:[(0,h.jsx)(l,{size:15}),M(`navigation:pageHeader.saveDraft`)]}),(0,h.jsxs)(p,{size:`lg`,className:`max-[650px]:col-auto max-[650px]:row-start-1`,disabled:!D||D.busy,onClick:()=>D?.run(),children:[D?.running?(0,h.jsx)(f,{size:15}):(0,h.jsx)(o,{size:15}),D?.running?M(`navigation:pageHeader.stop`):M(`navigation:pageHeader.testRun`)]})]}):_===`chat`||_===`gameAssetWorkbench`||_===`customComponentTool`?null:_===`config`?S:(0,h.jsxs)(`label`,{className:`flex h-[34px] w-[min(250px,24vw)] items-center gap-[7px] rounded-[var(--r-sm)] border border-[var(--stroke)] bg-[var(--search-bg)] px-2.5 text-[var(--text-muted)] focus-within:border-[var(--focus)] focus-within:shadow-[0_0_0_3px_var(--focus-ring)] in-data-[density=compact]:h-[30px] max-[900px]:w-[190px] max-[650px]:col-start-1 max-[650px]:row-start-1 max-[650px]:w-full max-[650px]:min-w-0`,title:M(`navigation:pageHeader.search`),children:[(0,h.jsx)(u,{size:15}),(0,h.jsx)(`input`,{className:`w-full min-w-0 border-0 bg-transparent text-[length:var(--app-font-size)] font-normal text-[var(--text)] outline-none`,ref:E,value:v,onChange:e=>y(e.target.value),placeholder:_===`mcp`?M(`navigation:pageHeader.searchServicesOrTools`):_===`memory`?M(`navigation:pageHeader.searchMemoriesOrFiles`):M(`navigation:pageHeader.searchPage`,{page:g[0]})})]}),C,I&&(0,h.jsxs)(p,{size:`lg`,variant:_===`workflowCreate`?`outline`:`default`,className:n(`max-[650px]:col-start-2 max-[650px]:row-start-1`,_===`chat`&&k&&`hidden`),title:N?M(`navigation:pageHeader.primaryActionShortcut`,{action:I[0],shortcut:N}):I[0],onClick:x,disabled:_===`workflowCreate`&&(!D||D.busy),children:[(()=>{let e=I[1];return(0,h.jsx)(e,{size:15})})(),I[0]]}),L&&(0,h.jsx)(p,{variant:`ghost`,size:`icon`,className:A?`bg-surface-hover text-brand`:void 0,title:P?`${M(`navigation:pageHeader.toggleTerminal`)} (${P})`:M(`navigation:pageHeader.toggleTerminal`),"aria-label":M(`navigation:pageHeader.toggleTerminal`),"aria-pressed":A,onClick:j,children:(0,h.jsx)(d,{size:16})}),(0,h.jsx)(r,{theme:w,onCycle:T,className:n(`bg-[var(--solid)]`,_!==`chat`&&`max-[650px]:absolute max-[650px]:top-3.5 max-[650px]:right-4`)})]})]})}export{g as PageHeader};
|