ryco-cli 0.1.15 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.cjs +2 -2
- package/dist/bin.mjs +2 -2
- package/dist/client/assets/{AccountSettings-Cey-16wq.js → AccountSettings-CkFq28pN.js} +1 -1
- package/dist/client/assets/AiFocusSettings-BI9AgQUi.js +1 -0
- package/dist/client/assets/BranchToolbar.logic-6LRTxcuo.js +1 -0
- package/dist/client/assets/ChatRightPanel-BSNsAFtv.js +27 -0
- package/dist/client/assets/{ChatThreadRouteView-tEo-zoCf.js → ChatThreadRouteView-Daox0F74.js} +1 -1
- package/dist/client/assets/CommandPaletteDialog-CIZnwgK9.js +1 -0
- package/dist/client/assets/{ConnectionsSettings-B0-Hkwof.js → ConnectionsSettings-DFBNmvfL.js} +2 -2
- package/dist/client/assets/DiagnosticsSettings-DhuLK993.js +2 -0
- package/dist/client/assets/{DraftChatThreadRouteView-BU2IGTR6.js → DraftChatThreadRouteView-BmVyawpM.js} +1 -1
- package/dist/client/assets/{HostedConnectionControls-Cux_sRCM.js → HostedConnectionControls-BvHq5iCa.js} +1 -1
- package/dist/client/assets/{HostedHubRoot-CyySCdJV.js → HostedHubRoot-CB5TRXg5.js} +1 -1
- package/dist/client/assets/{HostedNativeAuthorizationRoute-490iDXmk.js → HostedNativeAuthorizationRoute-Cb5WJuEG.js} +1 -1
- package/dist/client/assets/{HostedRelayTrustNotice-CcDOAwgS.js → HostedRelayTrustNotice-DFcgMZlL.js} +1 -1
- package/dist/client/assets/{IntegrationsSettingsPanel-BFTAvxtn.js → IntegrationsSettingsPanel-BIy-rKDv.js} +1 -1
- package/dist/client/assets/{KeybindingsSettings-VYgbhiZF.js → KeybindingsSettings-u3yB7Cob.js} +1 -1
- package/dist/client/assets/{McpServersSettings-DSDCjoTn.js → McpServersSettings-V32mLD4v.js} +2 -2
- package/dist/client/assets/{NewWorktreeDialog-C65Aifeb.js → NewWorktreeDialog-B64WGjQj.js} +2 -2
- package/dist/client/assets/{NoActiveThreadState-DehHNgAp.js → NoActiveThreadState-C0MwHtMx.js} +1 -1
- package/dist/client/assets/{NodeSecuritySettings-DW9GJ-kU.js → NodeSecuritySettings-CWlThhfV.js} +1 -1
- package/dist/client/assets/OpinionatedPluginsSettings-CVzfv5nP.js +1 -0
- package/dist/client/assets/{PhoneGetAppInterstitial-CbyVrtDn.js → PhoneGetAppInterstitial-CylfsDBD.js} +1 -1
- package/dist/client/assets/{PhoneHome-c0j_TBEC.js → PhoneHome-DBwwEeaI.js} +1 -1
- package/dist/client/assets/{PhoneSettingsSurface-5LFRIx_5.js → PhoneSettingsSurface-sDCNEVkR.js} +1 -1
- package/dist/client/assets/{ProjectFavicon-CeVJCQCy.js → ProjectFavicon-BjXJxNbQ.js} +1 -1
- package/dist/client/assets/{ProviderModelPicker-MFRYAv_3.js → ProviderModelPicker-BTFj53Qv.js} +1 -1
- package/dist/client/assets/{ProvidersSettingsPanel-FYBEqSr_.js → ProvidersSettingsPanel-IhzMeM1F.js} +1 -1
- package/dist/client/assets/RootAppShell-CG06ruyc.js +6 -0
- package/dist/client/assets/{SettingsDialog-CpwoqGS8.js → SettingsDialog-ByR9PwEc.js} +1 -1
- package/dist/client/assets/{SettingsPanels-COWRB29-.js → SettingsPanels-CwsCgdds.js} +3 -3
- package/dist/client/assets/{SourceControlSettings-DvBNelcO.js → SourceControlSettings-5w4N9XII.js} +1 -1
- package/dist/client/assets/{StatisticsPage-DxAKqvVX.js → StatisticsPage-jRyjIh52.js} +1 -1
- package/dist/client/assets/{StatisticsPanel-C0xGLlMA.js → StatisticsPanel-CV5eFeO_.js} +1 -1
- package/dist/client/assets/{ThreadStatusIndicators-CIOM98q2.js → ThreadStatusIndicators-C40TYVEC.js} +0 -0
- package/dist/client/assets/{ThreadTerminalDrawer-DRelLlEP.js → ThreadTerminalDrawer-flv5ZDel.js} +3 -3
- package/dist/client/assets/{ThreadWorkspacePanel-CktVSliZ.js → ThreadWorkspacePanel-B-cBAWFz.js} +6 -6
- package/dist/client/assets/{WorkItemsTab-CahU_t_S.js → WorkItemsTab-0DE4S4n0.js} +5 -5
- package/dist/client/assets/{branding-B7DcCXjn.js → branding-Ck4g7yv3.js} +1 -1
- package/dist/client/assets/{capabilities-B1FHGoov.js → capabilities-xa5Ll0KT.js} +1 -1
- package/dist/client/assets/{desktopUpdateAtoms-CPlZiFRm.js → desktopUpdateAtoms-hP0oc_If.js} +1 -1
- package/dist/client/assets/desktopWorkspace-hOxsGVFz.js +1 -0
- package/dist/client/assets/{device-CHdXzvhB.js → device-DIfzlguu.js} +1 -1
- package/dist/client/assets/{editorPreferences-B4GvqMiF.js → editorPreferences-B54y5_sx.js} +1 -1
- package/dist/client/assets/{index-Gre6bNC8.js → index-Dp3JRlOK.js} +1 -1
- package/dist/client/assets/main-B6n7O_N3.js +9 -0
- package/dist/client/assets/{projectPaths-D6fHIU1b.js → projectPaths-D8b4yLOe.js} +1 -1
- package/dist/client/assets/{providerIconUtils-DiDJeNtT.js → providerIconUtils-Cq0fezxt.js} +1 -1
- package/dist/client/assets/{runtime-CPM0EUhb.js → runtime-QZPKtH2P.js} +1 -1
- package/dist/client/assets/{session-logic-BalPN1Sc.js → session-logic-BuGYhZKZ.js} +1 -1
- package/dist/client/assets/{sidebarProjectFolders-bhNsO9Z_.js → sidebarProjectFolders-Dlo6McCj.js} +2 -2
- package/dist/client/assets/storeSelectors-_h41wnN2.js +1 -0
- package/dist/client/assets/{threadPinning-BLqwZebi.js → threadPinning-D2e9MEDr.js} +1 -1
- package/dist/client/assets/{threadPriorityRefreshRuntime-BoNAlBXK.js → threadPriorityRefreshRuntime-DbEFchoL.js} +1 -1
- package/dist/client/assets/types-_h41wnN2.js +1 -0
- package/dist/client/assets/{useAtlassian-CoHKzu-e.js → useAtlassian-Zb2Kkt0_.js} +0 -0
- package/dist/client/assets/useHandleNewThread-ByVfL71G.js +1 -0
- package/dist/client/assets/{usePhoneThreadActions-BIDUSWSI.js → usePhoneThreadActions-BhTVcLtf.js} +1 -1
- package/dist/client/assets/{useStatistics-B91973jb.js → useStatistics-Dbp94K5j.js} +1 -1
- package/dist/client/assets/{useThreadActions-BCH01d6u.js → useThreadActions-CPL4dO-X.js} +1 -1
- package/dist/client/index.html +1 -1
- package/package.json +1 -1
- package/dist/client/assets/AiFocusSettings-CaHQXDaQ.js +0 -1
- package/dist/client/assets/BranchToolbar.logic-DILAA3Cz.js +0 -1
- package/dist/client/assets/ChatRightPanel-D-AL07IU.js +0 -27
- package/dist/client/assets/CommandPaletteDialog-s7yf5Y2S.js +0 -1
- package/dist/client/assets/DiagnosticsSettings-DX5LH9Bt.js +0 -2
- package/dist/client/assets/OpinionatedPluginsSettings-DbxPOokL.js +0 -1
- package/dist/client/assets/RootAppShell-5HrP6N8H.js +0 -6
- package/dist/client/assets/desktopWorkspace-DEZ30LlY.js +0 -1
- package/dist/client/assets/main-Dz0zookE.js +0 -9
- package/dist/client/assets/storeSelectors-Cf2WDMfx.js +0 -1
- package/dist/client/assets/types-Cf2WDMfx.js +0 -1
- package/dist/client/assets/useHandleNewThread-Bw460iXT.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{_ as r,g as i,y as a}from"./env-Bcq9YR3B.js";import{Jc as o,V as s,nt as c,st as l,t as u}from"./src-DmPIm3ie.js";import{D as d,Ft as ee,Jt as te,L as ne,Lt as re,Mn as ie,Nn as ae,Rn as oe,Sn as se,Un as ce,Vn as le,b as ue,bn as de,hn as fe,jt as f,kt as pe,lt as me,sn as he,yn as ge}from"./runtime-CPM0EUhb.js";import{a as _e,r as ve}from"./primary-CiDY2oUi.js";import{t as ye}from"./useDebouncedValue-s0BC8Yyp.js";import{It as be}from"./composerDraftStore-TYv9j3vY.js";import{c as xe}from"./useSwipeDismiss-D22_vuiH.js";import{t as Se}from"./useHandleNewThread-Bw460iXT.js";import{t as Ce}from"./useNavigate-2tVq4iZ2.js";import{L as we,h as Te,m as Ee,n as De,t as Oe}from"./ThreadStatusIndicators-CIOM98q2.js";import{t as ke}from"./presentationTier-xlIjcFab.js";import{t as Ae}from"./settingsDialogStore-LxRFC5hh.js";import{i as p}from"./uiStateStore-DzUrk2GS.js";import{c as je,o as Me}from"./BranchToolbar.logic-DILAA3Cz.js";import{f as Ne}from"./useRenderElement-DchFnsR8.js";import{n as Pe,t as Fe}from"./arrow-up-CTcWIlqV.js";import{t as Ie}from"./arrow-left-Dtj9PfsA.js";import{t as Le}from"./chart-column-Dw6ACmXM.js";import{t as Re}from"./chevron-right-BWYGybX9.js";import{n as m,t as h}from"./kbd-DbvN3zTb.js";import{t as ze}from"./circle-alert-BWvs6IOn.js";import{i as g}from"./toast-C-0Ft2jD.js";import{i as _,n as Be,r as Ve,t as He}from"./square-pen-Bj3p_Q8E.js";import{t as Ue}from"./folder-DtsQoI9_.js";import{i as v,n as We,r as Ge}from"./chatThreadActions-BZvyhfKr.js";import{a as Ke,c as qe,d as Je,f as Ye,g as Xe,h as Ze,i as Qe,l as $e,m as et,n as tt,o as nt,r as rt,s as it,t as at,u as ot}from"./projectPaths-D6fHIU1b.js";import{t as st}from"./shallow-DWZCFNun.js";import{i as ct,n as lt,r as y,s as ut,t as b}from"./utils-CV2fJJxC.js";import{i as x}from"./timestampFormat-8uPXS812.js";import{_ as dt}from"./keybindings-BPE3eEAM.js";import{i as ft,n as pt,t as mt}from"./tooltip-C_-9XEfA.js";import{c as S,d as C,f as ht,i as gt,l as _t,m as w,n as vt,o as yt,s as bt,t as xt,u as T}from"./command-Cyn6yIEa.js";import{a as E,c as St,f as D,i as O,u as k}from"./Icons-BEtED8P8.js";import{t as Ct}from"./ProjectFavicon-CeVJCQCy.js";import{t as wt}from"./button-DG8WqjNn.js";import{t as A}from"./toastHelpers-CSQRKo4F.js";import{n as Tt}from"./composerHandleContext-BrQ6d8r9.js";import{t as Et}from"./capabilities-B1FHGoov.js";import{n as Dt,r as Ot}from"./threadPinning-BLqwZebi.js";var kt=Ne(`corner-left-up`,[[`path`,{d:`M14 9 9 4 4 9`,key:`1af5af`}],[`path`,{d:`M20 20h-7a4 4 0 0 1-4-4V4`,key:`1blwi3`}]]),At=Ne(`folder-symlink`,[[`path`,{d:`M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7`,key:`y8kt7d`}],[`path`,{d:`m8 16 3-3-3-3`,key:`rlqrt1`}]]),jt=Ne(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),j=e(t(),1),M=n(),N=`size-4 text-muted-foreground/80`,P=`size-4`;function F(e){return e.isAlias?`browse:alias:${e.name}:${e.fullPath}`:`browse:${e.fullPath}`}function Mt(e){let t=e.browseFilterQuery.toLowerCase(),n=e.browseFilterQuery.startsWith(`.`),r=e.browseEntries.filter(e=>e.name.toLowerCase().startsWith(t)&&(n||!e.name.startsWith(`.`))),i=null,a=e.highlightedItemValue;a&&a.startsWith(`browse:`)&&(i=r.find(e=>F(e)===a)??null);let o=e.browseFilterQuery.length>0?r.find(t=>t.name===e.browseFilterQuery)??null:null;return{filteredEntries:r,highlightedEntry:i,exactEntry:o}}function I(e){return e.trim().toLowerCase().replace(/\s+/g,` `)}function Nt(e){return e.projects.map(t=>({kind:`action`,value:`${e.valuePrefix}:${t.environmentId}:${t.id}`,searchTerms:[t.name,t.cwd],title:t.name,description:t.cwd,icon:e.icon(t),run:async()=>{await e.runProject(t)}}))}function Pt(e){let t=f(e.threads.filter(e=>e.archivedAt===null),e.sortOrder);return(e.limit===void 0?t:t.slice(0,e.limit)).map(t=>{let n=e.projectTitleById.get(t.projectId),r=[];n&&r.push(n),t.branch&&r.push(`#${t.branch}`),t.id===e.activeThreadId&&r.push(`Current thread`);let i=e.renderLeadingContent?.(t),a=e.renderTrailingContent?.(t);return Object.assign({kind:`action`,value:`thread:${t.id}`,searchTerms:[t.title,n??``,t.branch??``],title:t.title,description:r.join(` · `),timestamp:x(t.latestUserMessageAt??t.updatedAt??t.createdAt),icon:e.icon},i?{titleLeadingContent:i}:{},a?{titleTrailingContent:a}:{},{run:async()=>{await e.runThread(t)}})})}function L(e,t){let n=I(e);return n.length===0||!n.includes(t)?-1/0:n===t?3:n.startsWith(t)?2:1}function Ft(e,t){let n=e.searchTerms.filter(e=>e.length>0);if(n.length===0)return 0;for(let[e,r]of n.entries()){let n=L(r,t);if(n!==-1/0)return 1e3-e*100+n}return 0}function It(e){return e.searchResults.map(t=>{let n=e.threadTitleById.get(t.threadId)??`Thread`,r=e.projectTitleByThreadId.get(t.threadId),i=[n,r].filter(Boolean).join(` · `);return{kind:`action`,value:`message:${t.environmentId}:${t.threadId}:${t.messageId}`,searchTerms:[t.snippet,n,r??``],title:t.snippet,description:i,timestamp:x(t.timestamp),icon:e.icon,run:async()=>{await e.runMessage(t)}}})}function Lt(e){let t=e.query.startsWith(`>`),n=I(t?e.query.slice(1):e.query);if(n.length===0)return t?e.activeGroups.filter(e=>e.value===`actions`):[...e.activeGroups];let r=[...e.activeGroups];t?r=r.filter(e=>e.value===`actions`):e.isInSubmenu||(r=r.filter(e=>e.value!==`recent-threads`));let i=[...r];return!e.isInSubmenu&&!t&&(e.projectSearchItems.length>0&&i.push({value:`projects-search`,label:`Projects`,items:e.projectSearchItems}),e.threadSearchItems.length>0&&i.push({value:`threads-search`,label:`Threads`,items:e.threadSearchItems}),e.messageSearchItems&&e.messageSearchItems.length>0&&i.push({value:`messages-search`,label:`Messages`,items:e.messageSearchItems})),i.flatMap(e=>{let t=e.items.map((e,t)=>I(e.searchTerms.join(` `)).includes(n)?{item:e,index:t,rank:Ft(e,n)}:null).filter(e=>e!==null).toSorted((e,t)=>t.rank-e.rank||e.index-t.index).map(e=>e.item);return t.length===0?[]:[{value:e.value,label:e.label,items:t}]})}function Rt(e){let t=[];e.canBrowseUp&&t.push({kind:`action`,value:`browse:up`,searchTerms:[e.browseQuery,`..`],title:`..`,icon:e.upIcon,keepOpen:!0,run:async()=>{e.browseUp()}});for(let n of e.browseEntries)t.push({kind:`action`,value:F(n),searchTerms:[e.browseQuery,n.fullPath,n.name],title:n.name,icon:n.isSymlink?e.symlinkIcon:e.directoryIcon,keepOpen:!0,run:async()=>{n.isAlias?e.browseToPath(n.fullPath):e.browseTo(n.name)}});return[{value:`directories`,label:`Directories`,items:t}]}function zt(e){return e.currentView?e.isBrowsing?`submenu-browse`:`submenu`:e.isBrowsing?`root-browse`:`root`}function Bt(e){let t=[];return e.actionItems.length>0&&t.push({value:`actions`,label:`Actions`,items:e.actionItems}),e.recentThreadItems.length>0&&t.push({value:`recent-threads`,label:`Recent Threads`,items:e.recentThreadItems}),t}function Vt(e){switch(e){case`root`:return`Search commands, projects, and threads...`;case`root-browse`:return`Enter project path (e.g. ~/projects/my-app)`;case`submenu`:return`Search...`;case`submenu-browse`:return`Enter path (e.g. ~/projects/my-app)`}}var R=be();function Ht(e){let t=(0,M.c)(13);if(e.groups.length===0){let n=e.emptyStateMessage??(e.isActionsOnly?`No matching actions.`:`No matching commands, projects, or threads.`),r;return t[0]===n?r=t[1]:(r=(0,R.jsx)(`div`,{className:`py-10 text-center text-sm text-muted-foreground`,children:n}),t[0]=n,t[1]=r),r}let n;if(t[2]!==e.groups||t[3]!==e.highlightedItemValue||t[4]!==e.keybindings||t[5]!==e.onExecuteItem){let r;t[7]!==e.highlightedItemValue||t[8]!==e.keybindings||t[9]!==e.onExecuteItem?(r=t=>(0,R.jsxs)(bt,{items:t.items,children:[(0,R.jsx)(S,{children:t.label}),(0,R.jsx)(vt,{children:t=>t.disabled?(0,R.jsx)(Ut,{item:t},t.value):(0,R.jsx)(Wt,{item:t,keybindings:e.keybindings,isActive:e.highlightedItemValue===t.value,onExecuteItem:e.onExecuteItem},t.value)})]},t.value),t[7]=e.highlightedItemValue,t[8]=e.keybindings,t[9]=e.onExecuteItem,t[10]=r):r=t[10],n=e.groups.map(r),t[2]=e.groups,t[3]=e.highlightedItemValue,t[4]=e.keybindings,t[5]=e.onExecuteItem,t[6]=n}else n=t[6];let r;return t[11]===n?r=t[12]:(r=(0,R.jsx)(C,{children:n}),t[11]=n,t[12]=r),r}function Ut(e){let t=(0,M.c)(8),n;t[0]!==e.item.description||t[1]!==e.item.title||t[2]!==e.item.titleLeadingContent?(n=e.item.description?(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 text-sm text-foreground`,children:[e.item.titleLeadingContent,(0,R.jsx)(`span`,{className:`truncate`,children:e.item.title})]}),(0,R.jsx)(`span`,{className:`truncate text-muted-foreground/70 text-xs`,children:e.item.description})]}):(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 text-sm text-foreground`,children:[e.item.titleLeadingContent,(0,R.jsx)(`span`,{className:`truncate`,children:e.item.title})]}),t[0]=e.item.description,t[1]=e.item.title,t[2]=e.item.titleLeadingContent,t[3]=n):n=t[3];let r;return t[4]!==e.item.icon||t[5]!==e.item.titleTrailingContent||t[6]!==n?(r=(0,R.jsxs)(`div`,{className:`flex min-h-8 select-none items-center gap-2 rounded-sm px-2 py-1.5 text-base opacity-64 sm:min-h-7 sm:text-sm`,children:[e.item.icon,n,e.item.titleTrailingContent]}),t[4]=e.item.icon,t[5]=e.item.titleTrailingContent,t[6]=n,t[7]=r):r=t[7],r}function Wt(e){let t=(0,M.c)(27),n;t[0]!==e.item.shortcutCommand||t[1]!==e.keybindings?(n=e.item.shortcutCommand?dt(e.keybindings,e.item.shortcutCommand):null,t[0]=e.item.shortcutCommand,t[1]=e.keybindings,t[2]=n):n=t[2];let r=n,i=e.item.value,a=e.isActive&&`bg-accent! text-accent-foreground!`,o;t[3]===a?o=t[4]:(o=b(`cursor-pointer gap-2 hover:bg-transparent hover:text-inherit data-highlighted:bg-transparent data-highlighted:text-inherit data-selected:bg-transparent data-selected:text-inherit [&[data-highlighted][data-selected]]:bg-transparent [&[data-highlighted][data-selected]]:text-inherit`,a),t[3]=a,t[4]=o);let s;t[5]===e?s=t[6]:(s=()=>{e.onExecuteItem(e.item)},t[5]=e,t[6]=s);let c;t[7]!==e.item.description||t[8]!==e.item.title||t[9]!==e.item.titleLeadingContent?(c=e.item.description?(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 text-sm text-foreground`,children:[e.item.titleLeadingContent,(0,R.jsx)(`span`,{className:`truncate`,children:e.item.title})]}),(0,R.jsx)(`span`,{className:`truncate text-muted-foreground/70 text-xs`,children:e.item.description})]}):(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 text-sm text-foreground`,children:[e.item.titleLeadingContent,(0,R.jsx)(`span`,{className:`truncate`,children:e.item.title})]}),t[7]=e.item.description,t[8]=e.item.title,t[9]=e.item.titleLeadingContent,t[10]=c):c=t[10];let l;t[11]===e.item.timestamp?l=t[12]:(l=e.item.timestamp?(0,R.jsx)(`span`,{className:`min-w-12 shrink-0 text-right text-[10px] tabular-nums text-muted-foreground/70`,children:e.item.timestamp}):null,t[11]=e.item.timestamp,t[12]=l);let u;t[13]===r?u=t[14]:(u=r?(0,R.jsx)(w,{children:r}):null,t[13]=r,t[14]=u);let d;t[15]===e.item.kind?d=t[16]:(d=e.item.kind===`submenu`?(0,R.jsx)(Re,{className:`ml-auto size-4 shrink-0 text-muted-foreground/50`}):null,t[15]=e.item.kind,t[16]=d);let ee;return t[17]!==e.item.icon||t[18]!==e.item.titleTrailingContent||t[19]!==e.item.value||t[20]!==o||t[21]!==s||t[22]!==c||t[23]!==l||t[24]!==u||t[25]!==d?(ee=(0,R.jsxs)(T,{value:i,className:o,onMouseDown:Gt,onClick:s,children:[e.item.icon,c,e.item.titleTrailingContent,l,u,d]}),t[17]=e.item.icon,t[18]=e.item.titleTrailingContent,t[19]=e.item.value,t[20]=o,t[21]=s,t[22]=c,t[23]=l,t[24]=u,t[25]=d,t[26]=ee):ee=t[26],ee}function Gt(e){e.preventDefault()}var Kt=[],qt=3e4,Jt=2,Yt=20;function Xt(e){return lt(e)?`Finder`:y(e)?`Explorer`:`Files`}function Zt(e){return e===`windows`?`Win32`:e===`darwin`?`MacIntel`:e===`linux`?`Linux`:typeof navigator>`u`?``:navigator.platform}var Qt=[`url`,`github`,`gitlab`,`forgejo`,`bitbucket`,`azure-devops`],$t=[`github`,`gitlab`,`forgejo`,`bitbucket`,`azure-devops`];function en(e){switch(e){case`github`:return`GitHub`;case`gitlab`:return`GitLab`;case`forgejo`:return`Forgejo`;case`bitbucket`:return`Bitbucket`;case`azure-devops`:return`Azure DevOps`;case`url`:return`Git URL`}}function tn(e){switch(e){case`github`:return`owner/repo`;case`gitlab`:return`group/project`;case`forgejo`:return`owner/repo`;case`bitbucket`:return`workspace/repository`;case`azure-devops`:return`project/repository`;case`url`:return`URL`}}function nn(e){return e===`url`?null:e}function z(e,t){switch(e){case`github`:return(0,R.jsx)(k,{className:t});case`gitlab`:return(0,R.jsx)(D,{className:t});case`forgejo`:return(0,R.jsx)(St,{className:t});case`bitbucket`:return(0,R.jsx)(E,{className:t});case`azure-devops`:return(0,R.jsx)(O,{className:t});case`url`:return(0,R.jsx)(v,{className:t})}}function rn(e){return!e||e.step===`confirm`?null:e.source===`url`?`Enter Git clone URL`:`Enter ${en(e.source)} repository (${tn(e.source)})`}function an(e){return e.split(`/`).at(-1)?.trim()??e}function on(e){return`remote-repository:${e.provider}:${encodeURIComponent(e.nameWithOwner)}`}function sn(e,t){return e===`bitbucket`?t.url:t.sshUrl}function cn(e){return!e.includes(`/`)&&!e.includes(`:`)}function ln(e){return e===`url`?null:e}function un(e){return $t.toSorted((t,n)=>{let r=e[t].ready;return r===e[n].ready?en(t).localeCompare(en(n)):r?-1:1})}function dn(e){let t={ready:!1,hint:`Provider status unavailable. Open Settings -> Source Control and rescan.`},n={url:{ready:!0,hint:null},github:t,gitlab:t,forgejo:t,bitbucket:t,"azure-devops":t};if(!e)return n;let r=new Map(e.sourceControlProviders.map(e=>[e.kind,e])),i={...n};for(let e of Qt){let n=ln(e);if(!n)continue;let a=r.get(n);if(!a){i[e]=t;continue}if(a.status!==`available`){i[e]={ready:!1,hint:a.installHint};continue}if(a.auth.status===`unauthenticated`){i[e]={ready:!1,hint:o(a.auth.detail)??`${a.label} is not authenticated. Open Settings -> Source Control for setup guidance.`};continue}i[e]={ready:!0,hint:null}}return i}function fn(e){return e instanceof Error&&e.message.trim().length>0?e.message:`An error occurred.`}function B(){let e=(0,M.c)(5),t=me(pn),n=me(V),r,i;e[0]===n?(r=e[1],i=e[2]):(r=()=>()=>{n(!1)},i=[n],e[0]=n,e[1]=r,e[2]=i),(0,j.useEffect)(r,i);let a;return e[3]===t?a=e[4]:(a=t?(0,R.jsx)(mn,{}):null,e[3]=t,e[4]=a),a}function V(e){return e.setOpen}function pn(e){return e.open}function mn(){let e=Et(s.dispatchCommand),t=Et(u.projectsAdd),n=Et(u.serverGetStatistics),o=Ce(),f=me(e=>e.setOpen),be=me(e=>e.openIntent),Ne=me(e=>e.clearOpenIntent),Re=Tt(),[v,y]=(0,j.useState)(``),x=(0,j.useDeferredValue)(v),dt=x.startsWith(`>`),[S,C]=(0,j.useState)(null),w=oe(),vt=p(e=>e.pinnedThreadKeys),bt=le(),{activeDraftThread:T,activeThread:E,defaultProjectRef:St,handleNewThread:D}=Se(),O=te(st(ee)),k=te(st(re)),M=ce(),[F,I]=(0,j.useState)([]),L=F.at(-1)??null,Ft=L===null,[Ut,Wt]=(0,j.useState)(0),[Gt,Qt]=(0,j.useState)(null),[$t,ln]=(0,j.useState)(!1),[B,V]=(0,j.useState)(null),[pn,mn]=(0,j.useState)(!1),[hn,gn]=(0,j.useState)(!1),[_n,vn]=(0,j.useState)([]),H=_e(),yn=ve()?.label??null,bn=ge(e=>e.byId),U=de(e=>e.byId),xn=(0,j.useMemo)(()=>{let e=[],t=new Set;H&&(t.add(H),e.push({environmentId:H,label:Me({isPrimary:!0,environmentId:H,runtimeLabel:yn}),isPrimary:!0}));for(let n of Object.values(bn)){if(t.has(n.environmentId))continue;let r=U[n.environmentId];e.push({environmentId:n.environmentId,label:Me({isPrimary:!1,environmentId:n.environmentId,runtimeLabel:r?.descriptor?.label??null,savedLabel:n.label}),isPrimary:!1})}return e.sort((e,t)=>e.isPrimary===t.isPrimary?e.label.localeCompare(t.label):e.isPrimary?-1:1),e},[H,yn,bn,U]),Sn=xn[0]?.environmentId??null,W=Gt??Sn,Cn=(0,j.useMemo)(()=>Zt(W&&H&&W===H?ve()?.platform.os??null:W?U[W]?.descriptor?.platform.os??U[W]?.serverConfig?.environment.platform.os??null:null),[W,H,U]),wn=B!==null,Tn=B?.step===`repository`,G=Tn&&B?nn(B.source):null,En=Tn?x.trim():``,K=we({environmentId:B?.step===`repository`?B.environmentId:null,provider:G,query:En,limit:25,enabled:B?.step===`repository`&&B.source!==`url`&&G===`bitbucket`}),q=!Tn&&ot(v,Cn),Dn=zt({currentView:L,isBrowsing:q}),On=Ft&&!dt&&!q&&!wn,kn=On?x.trim():``,[An]=ye(kn,{wait:200}),jn=(0,j.useMemo)(()=>{let e=new Set,t=[];for(let n of k)e.has(n.environmentId)||(e.add(n.environmentId),t.push(n.environmentId));for(let n of O)e.has(n.environmentId)||(e.add(n.environmentId),t.push(n.environmentId));return t},[O,k]);(0,j.useEffect)(()=>{let e=An.trim();if(!On||e.length<Jt||jn.length===0){vn([]);return}let t=!1,n=jn.map(async t=>{let n=fe(t);if(!n)return[];try{return(await n.orchestration.searchThreadMessages({query:e,limit:Yt})).map(e=>Object.assign({environmentId:t},e))}catch{return[]}});return Promise.all(n).then(e=>{t||vn(e.flat().toSorted((e,t)=>t.timestamp.localeCompare(e.timestamp)).slice(0,Yt))}),()=>{t=!0}},[On,An,jn]);let Mn=(0,j.useCallback)(e=>{let t=e&&H&&e===H?bt:e?U[e]?.serverConfig:null,n=e&&H&&e===H?w:e?U[e]?.serverConfig?.settings:null;return et({workspaceAccessRoot:t?.workspaceAccessRoot,configuredBaseDirectory:n?.addProjectBaseDirectory})},[H,bt,U,w]),Nn=(0,j.useMemo)(()=>new Map(O.map(e=>[e.id,e.cwd])),[O]),Pn=(0,j.useMemo)(()=>new Map(O.map(e=>[e.id,e.name])),[O]),Fn=(0,j.useMemo)(()=>new Map(k.map(e=>[e.id,e.title])),[k]),In=(0,j.useMemo)(()=>new Map(k.map(e=>[e.id,Pn.get(e.projectId)??``])),[Pn,k]),Ln=(0,j.useCallback)(async e=>{await o({to:`/$environmentId/$threadId`,params:xe(r(e.environmentId,e.threadId)),search:t=>({...t,messageId:e.messageId})})},[o]),Rn=(0,j.useMemo)(()=>It({searchResults:_n,threadTitleById:Fn,projectTitleByThreadId:In,icon:(0,R.jsx)(Te,{className:N}),runMessage:Ln}),[_n,Ln,In,Fn]),zn=E?.id,Bn=E?a(r(E.environmentId,E.id)):null,Vn=Dt({threadKey:Bn,pinned:Bn?vt[Bn]===!0:!1}),Hn=E?.environmentId??T?.environmentId??null,Un=E?.projectId??T?.projectId??null,Wn=Un?Nn.get(Un)??null:null,J=W&&Hn===W?Wn:null,Y=d(v.trim())&&J===null,Gn=q?Ke(v):``,Kn=q&&!qe(v)?nt(v):``,qn=je({environmentId:W,partialPath:Gn,cwd:J,staleTime:qt,enabled:q&&Gn.length>0&&W!==null&&!Y}),X=qn.data,Jn=qn.isPending,Yn=X?.entries??Kt,Xn=X?.workspaceAccessRoot!==void 0&&Je(X.parentPath,X.workspaceAccessRoot),Zn=q&&!Y&&!Xn&&tt(Gn),{filteredEntries:Qn,exactEntry:$n}=(0,j.useMemo)(()=>Mt({browseEntries:Yn,browseFilterQuery:Kn,highlightedItemValue:S}),[Yn,Kn,S]),er=(0,j.useCallback)(e=>{he({environmentId:W,partialPath:e,cwd:J,staleTime:qt})},[W,J]);(0,j.useEffect)(()=>{q&&Zn&&er(it(v))},[Zn,q,er,v]);let tr=(0,j.useMemo)(()=>async e=>{p.getState().setProjectExpanded(ue(e,w),!0);let t=pe(k.filter(t=>t.environmentId===e.environmentId),e.id,w.sidebarThreadSortOrder);if(t){await o({to:`/$environmentId/$threadId`,params:xe(r(t.environmentId,t.id))});return}await D(i(e.environmentId,e.id),{envMode:w.defaultThreadEnvMode})},[D,o,w,k]),nr=(0,j.useMemo)(()=>Nt({projects:O,valuePrefix:`project`,icon:e=>(0,R.jsx)(Ct,{environmentId:e.environmentId,cwd:e.cwd,projectId:e.id,customAvatarContentHash:e.customAvatarContentHash??null,className:N}),runProject:tr}),[tr,O]),rr=(0,j.useMemo)(()=>Nt({projects:O,valuePrefix:`new-thread-in`,icon:e=>(0,R.jsx)(Ct,{environmentId:e.environmentId,cwd:e.cwd,projectId:e.id,customAvatarContentHash:e.customAvatarContentHash??null,className:N}),runProject:async e=>{await Ge({activeDraftThread:T,activeThread:E,defaultProjectRef:St,defaultThreadEnvMode:w.defaultThreadEnvMode,handleNewThread:D},i(e.environmentId,e.id))}}),[T,E,St,D,O,w.defaultThreadEnvMode]),ir=(0,j.useMemo)(()=>Pt({threads:k,...zn?{activeThreadId:zn}:{},projectTitleById:Pn,sortOrder:w.sidebarThreadSortOrder,icon:(0,R.jsx)(Te,{className:N}),renderLeadingContent:e=>(0,R.jsx)(Oe,{thread:e}),renderTrailingContent:e=>(0,R.jsx)(De,{thread:e}),runThread:async e=>{await o({to:`/$environmentId/$threadId`,params:xe(r(e.environmentId,e.id))})}}),[zn,o,Pn,w.sidebarThreadSortOrder,k]),ar=ir.slice(0,12);function or(e){I(t=>[...t,{addonIcon:e.addonIcon,groups:e.groups,...e.initialQuery?{initialQuery:e.initialQuery}:{}}]),C(null),y(e.initialQuery??``)}function sr(e){or({addonIcon:e.addonIcon,groups:e.groups,...e.initialQuery?{initialQuery:e.initialQuery}:{}})}function cr(){V(null),F.length<=1&&Qt(null),I(e=>e.slice(0,-1)),C(null),y(``)}function lr(e){C(null),y(e),e===``&&L?.initialQuery&&cr()}let ur=(0,j.useCallback)(e=>{Qt(e),V(null),or({addonIcon:(0,R.jsx)(_,{className:P}),groups:[],initialQuery:Mn(e)})},[Mn]),dr=(0,j.useCallback)((e,t)=>{Qt(e),V({step:`repository`,environmentId:e,source:t}),or({addonIcon:z(t,P),groups:[],initialQuery:``})},[]),fr=Ae(e=>e.openSettings),pr=(0,j.useCallback)(()=>{f(!1),fr(`source-control`)},[fr,f]),mr=(0,j.useCallback)((e,t)=>{let n=[{kind:`action`,value:`action:add-project:${e}:local`,searchTerms:[`local`,`folder`,`directory`,`browse`],title:`Local folder`,description:`Browse a folder on disk`,icon:(0,R.jsx)(_,{className:N}),keepOpen:!0,run:async()=>{ur(e)}}],r=[`url`,...un(t)];for(let i of r){let r=en(i),a=i===`url`?`Git URL`:`${r} repository`,o=i===`url`?`Clone from a remote URL`:`Clone ${r} ${tn(i)}`,s=t[i],c=s.hint,l=s.ready?void 0:(0,R.jsx)(`span`,{className:`ml-auto`,children:(0,R.jsxs)(mt,{children:[(0,R.jsx)(ft,{render:(0,R.jsx)(wt,{variant:`outline`,size:`xs`,className:`h-5 rounded-sm px-1.5 text-[10px] text-warning-foreground`,onClick:()=>{pr()},children:`Setup Required`})}),(0,R.jsx)(pt,{align:`end`,side:`left`,children:c??`Open Settings -> Source Control to configure this provider.`})]})});if(!s.ready){n.push({kind:`action`,value:`action:add-project:${e}:${i}:not-ready`,searchTerms:[`clone`,`remote`,`repository`,`repo`,`git`,r,`setup required`],title:a,description:o,disabled:!0,icon:z(i,N),...l?{titleTrailingContent:l}:{},run:async()=>{}});continue}n.push({kind:`action`,value:`action:add-project:${e}:${i}`,searchTerms:[`clone`,`remote`,`repository`,`repo`,`git`,r],title:a,description:o,icon:z(i,N),...l?{titleTrailingContent:l}:{},keepOpen:!0,run:async()=>{dr(e,i)}})}return[{value:`sources:${e}`,label:`Sources`,items:n}]},[pr,ur,dr]),hr=(0,j.useCallback)(e=>{Qt(e),V(null);let t={environmentId:e},n=ie(t).data;or({addonIcon:(0,R.jsx)(_,{className:P}),groups:mr(e,dn(n))}),ae(t).then(t=>{I(n=>n.at(-1)?.groups[0]?.value===`sources:${e}`?[...n.slice(0,-1),{addonIcon:(0,R.jsx)(_,{className:P}),groups:mr(e,dn(t))}]:n)})},[mr]),gr=xn.map(e=>({kind:`action`,value:`action:add-project:environment:${e.environmentId}`,searchTerms:[e.label,e.environmentId,e.isPrimary?`this device`:``],title:e.label,description:e.isPrimary?`This device`:e.environmentId,icon:(0,R.jsx)(_,{className:N}),keepOpen:!0,run:async()=>{hr(e.environmentId)}})),_r=(0,j.useMemo)(()=>[{value:`environments`,label:`Environments`,items:gr}],[gr]),vr=(0,j.useCallback)(()=>{if(!t.allowed){g.add(A({type:`error`,title:`Unable to add project`,description:t.reason??`This action is unavailable.`}));return}if(xn.length>1){or({addonIcon:(0,R.jsx)(_,{className:P}),groups:_r});return}let e=Sn;if(!e){g.add(A({type:`error`,title:`Unable to browse projects`,description:`No environment is available.`}));return}hr(e)},[t.allowed,t.reason,_r,xn.length,Sn,hr]);(0,j.useLayoutEffect)(()=>{be?.kind===`add-project`&&(Ne(),vr())},[Ne,vr,be]);let Z=[];if(Z.push({kind:`action`,value:`action:show-inbox-sidebar`,searchTerms:[`sidebar`,`inbox`,`tasks`,`activity`],title:`Show Inbox sidebar`,icon:(0,R.jsx)(Be,{className:N}),shortcutCommand:`sidebar.showInbox`,run:async()=>{ne.getState().clearSelection(),p.getState().setSidebarMode(`inbox`),f(!1)}},{kind:`action`,value:`action:show-projects-sidebar`,searchTerms:[`sidebar`,`projects`,`tree`,`folders`],title:`Show Projects sidebar`,icon:(0,R.jsx)(Ve,{className:N}),shortcutCommand:`sidebar.showProjects`,run:async()=>{ne.getState().clearSelection(),p.getState().setSidebarMode(`projects`),f(!1)}}),Z.push({kind:`action`,value:`action:toggle-current-thread-pin`,searchTerms:[`pin`,`unpin`,`thread`,`favorite`,`keep at top`],title:Vn.title,...Vn.description?{description:Vn.description}:{},disabled:Vn.disabled,icon:Vn.pinned?(0,R.jsx)(jt,{className:N}):(0,R.jsx)(Xe,{className:N}),shortcutCommand:`thread.pinToggle`,run:async()=>{!E||!Bn||await Ot({threadKey:Bn,threadTitle:E.title,confirmUnpin:w.confirmThreadUnpin})}}),O.length>0){let t=Un?Pn.get(Un)??null:null;t&&Z.push({kind:`action`,value:`action:new-thread`,searchTerms:[`new thread`,`chat`,`create`,`draft`],title:(0,R.jsxs)(R.Fragment,{children:[`New thread in `,(0,R.jsx)(`span`,{className:`font-semibold`,children:t})]}),icon:(0,R.jsx)(He,{className:N}),shortcutCommand:`chat.new`,...e.reason?{description:e.reason}:{},disabled:!e.allowed,run:async()=>{await We({activeDraftThread:T,activeThread:E,defaultProjectRef:St,defaultThreadEnvMode:w.defaultThreadEnvMode,handleNewThread:D})}}),Z.push({kind:`submenu`,value:`action:new-thread-in`,searchTerms:[`new thread`,`project`,`pick`,`choose`,`select`],title:`New thread in...`,icon:(0,R.jsx)(He,{className:N}),addonIcon:(0,R.jsx)(He,{className:P}),groups:[{value:`projects`,label:`Projects`,items:rr}],...e.reason?{description:e.reason}:{},disabled:!e.allowed})}Z.push({kind:`action`,value:`action:add-project`,searchTerms:[`add project`,`folder`,`directory`,`browse`,`clone`,`remote`,`repository`,`repo`,`git`,`github`,`gitlab`,`forgejo`,`codeberg`,`bitbucket`,`azure`,`devops`,`url`,`environment`],title:`Add project`,...t.reason?{description:t.reason}:{},disabled:!t.allowed,icon:(0,R.jsx)(_,{className:N}),keepOpen:!0,run:async()=>{vr()}}),ke()!==`phone`&&Z.push({kind:`action`,value:`action:statistics`,searchTerms:[`statistics`,`usage`,`activity`,`tokens`,`cost`,`history`],title:`Open statistics`,...n.reason?{description:n.reason}:{},disabled:!n.allowed,icon:(0,R.jsx)(Le,{className:N}),run:async()=>{f(!1),await o({to:`/statistics`})}}),Z.push({kind:`action`,value:`action:settings`,searchTerms:[`settings`,`preferences`,`configuration`,`keybindings`],title:`Open settings`,icon:(0,R.jsx)(Ee,{className:N}),run:async()=>{f(!1),fr()}});let yr=Bt({actionItems:Z,recentThreadItems:ar}),br=Lt({activeGroups:L?L.groups:yr,query:x,isInSubmenu:L!==null,projectSearchItems:nr,threadSearchItems:ir,messageSearchItems:Rn}),xr=(0,j.useCallback)(async(e,t)=>{let n=t?.environmentId??W;if(!n){g.add(A({type:`error`,title:`Failed to add project`,description:`Choose an environment and try again.`}));return}let a=t?.api??fe(n);if(!a){g.add(A({type:`error`,title:`Failed to add project`,description:`The environment is still reconnecting. Try again shortly.`}));return}if(Ye(e.trim(),Cn)){g.add(A({type:`error`,title:`Failed to add project`,description:`Windows-style paths are only supported on Windows.`}));return}if(d(e.trim())&&!J){g.add(A({type:`error`,title:`Failed to add project`,description:`Relative paths require an active project.`}));return}let s=Ze(e,J);if(s.length===0)return;let u=Qe(O.filter(e=>e.environmentId===n),s);if(u){p.getState().setProjectExpanded(ue(u,w),!0);let e=pe(k.filter(e=>e.environmentId===u.environmentId),u.id,w.sidebarThreadSortOrder);e?await o({to:`/$environmentId/$threadId`,params:xe(r(e.environmentId,e.id))}):await D(i(u.environmentId,u.id),{envMode:w.defaultThreadEnvMode}).catch(()=>void 0),f(!1);return}try{let e=ut();await a.orchestration.dispatchCommand({type:`project.create`,commandId:ct(),projectId:e,title:$e(s),workspaceRoot:s,projectMetadataDir:`.ryco`,createWorkspaceRootIfMissing:!0,defaultModelSelection:{instanceId:l.make(`codex`),model:c},createdAt:new Date().toISOString()}),await D(i(n,e),{envMode:w.defaultThreadEnvMode}).catch(()=>void 0),f(!1)}catch(e){g.add(A({type:`error`,title:`Failed to add project`,description:e instanceof Error?e.message:`An error occurred.`}))}},[W,Cn,J,D,o,O,f,w,k]),Sr=(0,j.useCallback)(e=>Mn(e),[Mn]),Q=(0,j.useCallback)(e=>{let t=Sr(e.flow.environmentId);V({step:`confirm`,environmentId:e.flow.environmentId,source:e.flow.source,repositoryInput:e.repositoryInput,repository:e.repository,remoteUrl:e.remoteUrl}),C(null),y(t),Wt(e=>e+1)},[Sr]);async function Cr(e){if(!B)return;let t=fe(B.environmentId);if(!t){g.add(A({type:`error`,title:`Unable to clone project`,description:`Environment API is not available.`}));return}if(B.step===`repository`){let e=v.trim();if(e.length===0||pn)return;let n=nn(B.source);if(!n){Q({flow:B,repositoryInput:e,repository:null,remoteUrl:e});return}let r=K.data?.repositories??[];if(cn(e)&&En===e&&r.length===1){let e=r[0];Q({flow:B,repositoryInput:e.nameWithOwner,repository:e,remoteUrl:sn(B.source,e)});return}mn(!0);try{let r=await t.sourceControl.lookupRepository({provider:n,repository:e});Q({flow:B,repositoryInput:e,repository:r,remoteUrl:sn(B.source,r)})}catch(e){g.add(A({type:`error`,title:`Repository lookup failed`,description:fn(e)}))}finally{mn(!1)}return}let n=(e??v).trim();if(n.length===0||hn)return;if(Ye(n,Cn)){g.add(A({type:`error`,title:`Clone failed`,description:`Windows-style paths are only supported on Windows.`}));return}if(d(n)&&!J){g.add(A({type:`error`,title:`Clone failed`,description:`Relative paths require an active project.`}));return}let r=Ze(n,J);if(r.length!==0){gn(!0);try{let e=nn(B.source),n=await t.sourceControl.cloneRepository({...e&&B.repository?{provider:e,repository:B.repository.nameWithOwner,remoteUrl:B.remoteUrl,...B.source===`bitbucket`?{protocol:`https`}:{}}:{remoteUrl:B.remoteUrl},destinationPath:r});await xr(n.cwd,{environmentId:B.environmentId,api:t})}catch(e){g.add(A({type:`error`,title:`Clone failed`,description:fn(e)}))}finally{gn(!1)}}}function wr(e){let t=at(v,e);C(null),y(t),Wt(e=>e+1)}function Tr(e){let t=rt(e);C(null),y(t),Wt(e=>e+1)}function Er(){if(!Zn)return;let e=it(v);e!==null&&(C(null),y(e),Wt(e=>e+1))}let Dr=qe(v)?X?.parentPath??v.trim():$n?.fullPath??v.trim(),Or=[...qn.error?[{value:`browse-status`,label:`Filesystem`,items:[{kind:`action`,value:`browse-status:error`,searchTerms:[`filesystem`,`unavailable`,`error`],title:`Unable to browse folders`,description:fn(qn.error),icon:(0,R.jsx)(ze,{className:N}),disabled:!0,run:async()=>{}}]}]:[],...Rt({browseEntries:Qn,browseQuery:v,canBrowseUp:Zn,upIcon:(0,R.jsx)(kt,{className:N}),directoryIcon:(0,R.jsx)(Ue,{className:N}),symlinkIcon:(0,R.jsx)(At,{className:N}),browseUp:Er,browseTo:wr,browseToPath:Tr})],kr=Or.map(e=>e.value===`directories`?{...e,label:`Select where to clone`}:e),Ar=(0,j.useMemo)(()=>B?.step===`confirm`?{title:B.repository?.nameWithOwner??B.repositoryInput,description:B.repository?.url??B.remoteUrl,icon:z(B.source,N)}:null,[B]),jr=(0,j.useMemo)(()=>{if(B?.step!==`repository`||B.source===`url`||G!==`bitbucket`)return[];let e=K.data?.repositories??[];return e.length>0?[{value:`remote-repositories:${B.environmentId}:${G}`,label:En.length>0?`Matching repositories`:`Available repositories`,items:e.map(e=>({kind:`action`,value:on(e),searchTerms:[e.nameWithOwner,an(e.nameWithOwner),e.url,e.sshUrl],title:e.nameWithOwner,description:e.url,icon:z(B.source,N),keepOpen:!0,run:async()=>{Q({flow:B,repositoryInput:e.nameWithOwner,repository:e,remoteUrl:sn(B.source,e)})}}))}]:K.isFetching?[{value:`remote-repositories:${B.environmentId}:${G}:loading`,label:`Repositories`,items:[{kind:`action`,value:`remote-repositories:loading`,searchTerms:[`loading`,`repository`,`repo`],title:`Loading repositories`,description:`Reading available Bitbucket workspaces`,icon:z(B.source,N),disabled:!0,run:async()=>{}}]}]:K.error===null?[]:[{value:`remote-repositories:${B.environmentId}:${G}:error`,label:`Repositories`,items:[{kind:`action`,value:`remote-repositories:error`,searchTerms:[`error`,`repository`,`repo`],title:`Unable to load repositories`,description:fn(K.error),icon:z(B.source,N),disabled:!0,run:async()=>{}}]}]},[B,Q,G,En,K.data?.repositories,K.error,K.isFetching]),Mr=B?.step===`repository`&&B.source===`bitbucket`?En.length===0?`No repositories found. Enter workspace/repository manually.`:`No matching repositories. Enter workspace/repository manually.`:null,Nr=br;B?.step===`repository`?Nr=jr:B?.step===`confirm`?Nr=Y?[]:kr:q&&(Nr=Y?[]:Or);let Pr=rn(B)??Vt(Dn),Fr=Dn===`submenu`||Dn===`submenu-browse`,$=S?.startsWith(`browse:`)??!1,Ir=q&&!Y,Lr=Ir&&!Jn&&v.trim().length>0&&!$&&(qe(v)?!X:$n===null),Rr=lt(navigator.platform),zr=Rr?`⌘`:`Ctrl`,Br=B?.step===`confirm`,Vr=Br?Lr?`Create & Clone`:`Clone`:Lr?`Create & Add`:`Add`,Hr=$?`${zr} Enter`:`Enter`,Ur=B?B.source===`url`?`Continue`:`Lookup`:null,Wr=pn||hn,Gr=B?.step===`repository`&&v.trim().length>0&&!Wr,Kr=Xt(navigator.platform),qr=q&&W!==null&&H!==null&&W===H&&typeof window<`u`&&window.desktopBridge!==void 0,Jr=(0,j.useMemo)(()=>{if(!qr)return;let e=v.trim();if(e.length===0)return;let t=qe(v)?X?.parentPath??e:Gn||e,n=Ze(t,J);return n.length>0?n:void 0},[Gn,X?.parentPath,qr,J,v]);function Yr(e){return Rr?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey}function Xr(e){if(B?.step===`repository`&&e.key===`Enter`){e.preventDefault();let t=K.data?.repositories.find(e=>on(e)===S);if(t){Q({flow:B,repositoryInput:t.nameWithOwner,repository:t,remoteUrl:sn(B.source,t)});return}Cr();return}if(Ir&&e.key===`Enter`&&(!$||Yr(e))){e.preventDefault(),Br?Cr(Dr):xr(Dr);return}e.key===`Backspace`&&v===``&&Fr&&(e.preventDefault(),cr())}function Zr(e){if(!e.disabled){if(e.kind===`submenu`){sr(e);return}e.keepOpen||f(!1),e.run().catch(e=>{g.add(A({type:`error`,title:`Unable to run command`,description:e instanceof Error?e.message:`An unexpected error occurred.`}))})}}let Qr=(0,j.useCallback)(async()=>{if(!qr||$t)return;let e=se();if(!e)return;ln(!0);let t=null;try{t=await e.dialogs.pickFolder(Jr?{initialPath:Jr}:void 0)}catch{ln(!1);return}ln(!1),t&&await xr(t)},[qr,Jr,xr,$t]);return(0,R.jsx)(gt,{"aria-label":`Command palette`,className:`project-glass-surface overflow-hidden p-0`,"data-testid":`command-palette`,surface:`glass`,finalFocus:()=>(Re?.current?.focusAtEnd(),!1),onBackdropPointerDown:()=>{f(!1)},children:(0,R.jsxs)(xt,{"aria-label":`Command palette`,autoHighlight:q||wn?!1:`always`,mode:`none`,onItemHighlighted:e=>{C(typeof e==`string`?e:null)},onValueChange:lr,value:v,children:[(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(_t,{className:B?.step===`repository`?`pe-32`:q?Lr?`pe-36`:`pe-16`:void 0,placeholder:Pr,wrapperClassName:Fr?`[&_[data-slot=autocomplete-start-addon]]:pointer-events-auto`:void 0,...Fr?{startAddon:(0,R.jsx)(`button`,{type:`button`,className:`flex cursor-pointer items-center`,"aria-label":`Back`,onClick:cr,children:(0,R.jsx)(Ie,{})})}:q&&!Fr?{startAddon:(0,R.jsx)(_,{})}:{},onKeyDown:Xr}),B?.step===`repository`?(0,R.jsxs)(wt,{variant:`outline`,size:`xs`,tabIndex:-1,className:`absolute inset-e-2.5 top-1/2 gap-1.5 pe-1 ps-2 -translate-y-1/2`,"aria-label":`${Ur??`Continue`} (Enter)`,disabled:!Gr,onMouseDown:e=>{e.preventDefault()},onClick:()=>{Cr()},title:`${Ur??`Continue`} (Enter)`,children:[(0,R.jsx)(`span`,{children:Wr?`Working`:Ur}),(0,R.jsx)(m,{className:`pointer-events-none -me-0.5 items-center gap-1 pointer-coarse:hidden`,children:(0,R.jsx)(h,{children:`Enter`})})]}):q?(0,R.jsxs)(wt,{variant:`outline`,size:`xs`,tabIndex:-1,className:b(`absolute inset-e-2.5 top-1/2 pe-1 ps-2 -translate-y-1/2`,$?`gap-1`:`gap-1.5`),"aria-label":`${Vr} (${Hr})`,disabled:Y||Br&&Wr,onMouseDown:e=>{e.preventDefault()},onClick:()=>{Y||(Br?Cr(Dr):xr(Dr))},title:`${Vr} (${Hr})`,children:[(0,R.jsx)(`span`,{children:Br&&Wr?`Cloning`:Vr}),(0,R.jsx)(m,{className:`pointer-events-none -me-0.5 items-center gap-1 pointer-coarse:hidden`,children:(0,R.jsx)(h,{children:$?`${zr} Enter`:`Enter`})})]}):null]}),(0,R.jsxs)(ht,{className:`max-h-[min(28rem,70vh)] bg-transparent`,children:[Ar?(0,R.jsxs)(`div`,{className:`p-2 pb-0`,children:[(0,R.jsx)(`div`,{className:`px-2 py-1.5 font-medium text-muted-foreground text-xs`,children:`Repository`}),(0,R.jsxs)(`div`,{className:`flex min-h-8 items-center gap-2 rounded-sm px-2 py-1.5`,children:[Ar.icon,(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,R.jsx)(`span`,{className:`truncate text-foreground text-sm`,children:Ar.title}),(0,R.jsx)(`span`,{className:`truncate text-muted-foreground/70 text-xs`,children:Ar.description})]})]})]}):null,(0,R.jsx)(Ht,{groups:Nr,highlightedItemValue:S,isActionsOnly:dt,keybindings:M,onExecuteItem:Zr,...B?.step===`repository`?{emptyStateMessage:B.source===`url`?`Enter a Git clone URL and press Enter to continue.`:Mr??`Enter a repository path and press Enter to look it up.`}:B?.step===`confirm`?{emptyStateMessage:`Choose a destination path and press Enter to clone.`}:Y?{emptyStateMessage:`Relative paths require an active project.`}:Lr?{emptyStateMessage:`Press Enter to create this folder and add it as a project.`}:{}})]}),(0,R.jsxs)(yt,{className:`gap-3 max-sm:flex-col max-sm:items-start`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3 pointer-coarse:hidden`,children:[(0,R.jsxs)(m,{className:`items-center gap-1.5`,children:[(0,R.jsx)(h,{children:(0,R.jsx)(Fe,{})}),(0,R.jsx)(h,{children:(0,R.jsx)(Pe,{})}),(0,R.jsx)(`span`,{className:b(`text-muted-foreground/80`),children:`Navigate`})]}),B?.step===`repository`?(0,R.jsxs)(m,{className:`items-center gap-1.5`,children:[(0,R.jsx)(h,{children:`Enter`}),(0,R.jsx)(`span`,{className:b(`text-muted-foreground/80`),children:Ur??`Continue`})]}):!Ir||$?(0,R.jsxs)(m,{className:`items-center gap-1.5`,children:[(0,R.jsx)(h,{children:`Enter`}),(0,R.jsx)(`span`,{className:b(`text-muted-foreground/80`),children:`Select`})]}):null,Fr?(0,R.jsxs)(m,{className:`items-center gap-1.5`,children:[(0,R.jsx)(h,{children:`Backspace`}),(0,R.jsx)(`span`,{className:b(`text-muted-foreground/80`),children:`Back`})]}):null,(0,R.jsxs)(m,{className:`items-center gap-1.5`,children:[(0,R.jsx)(h,{children:`Esc`}),(0,R.jsx)(`span`,{className:b(`text-muted-foreground/80`),children:`Close`})]})]}),qr?(0,R.jsx)(wt,{variant:`ghost`,size:`xs`,className:`h-auto px-2 text-xs text-muted-foreground/80 hover:bg-transparent hover:text-foreground`,disabled:$t,onClick:()=>{Qr()},children:`Open in ${Kr}`}):null]})]},`${F.length}-${Ut}-${q}-${B?.step??`none`}`)})}export{B as CommandPaletteDialog};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import{t as r}from"./env-Bcq9YR3B.js";import{Bn as i,Gn as a,Kn as o,Xn as s,Xt as c,bn as l,hn as u,jn as d,xn as f,yn as p}from"./runtime-CPM0EUhb.js";import{It as m}from"./composerDraftStore-TYv9j3vY.js";import{i as h,r as g}from"./branding-B7DcCXjn.js";import{t as _}from"./settingsDialogStore-LxRFC5hh.js";import{f as v}from"./useRenderElement-DchFnsR8.js";import{t as y}from"./chevron-down-B7C6FKzM.js";import{i as b}from"./toast-C-0Ft2jD.js";import{t as x}from"./clipboard-copy-C4VV20QR.js";import{n as ee,t as S}from"./play-DYDxlTKo.js";import{t as C}from"./refresh-cw-DopCMrtR.js";import{t as w}from"./triangle-alert-RL_T3KLo.js";import{t as T}from"./utils-CV2fJJxC.js";import{t as E}from"./button-DG8WqjNn.js";import{t as D}from"./useCopyToClipboard-BTpWxumf.js";import{t as O}from"./toastHelpers-CSQRKo4F.js";import"./usePresentationTier-B_SCFvN7.js";import{i as k,r as te,t as ne}from"./alert-DomE7dAt.js";import{a as A,i as re,o as ie,s as j,t as M}from"./select-CZukJlTn.js";import{r as ae}from"./editorPreferences-B4GvqMiF.js";import{t as N}from"./badge-w43sx8eF.js";import{i as P,n as F,r as I}from"./settingsLayout-CHJT5wtl.js";var oe=v(`clipboard-check`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`m9 14 2 2 4-4`,key:`df797q`}]]),L=e(t(),1),R=n(),z=`[redacted]`,B=/(token|secret|password|passwd|credential|authorization|bearer|api[-_]?key|apikey|cookie|session[-_]?id|private[-_]?key|pairing[-_]?code|access[-_]?key|signature|email)/i;function se(e){let t;try{t=new URL(e)}catch{return e}(t.username||t.password)&&(t.username=``,t.password=``);for(let e of t.searchParams.keys())B.test(e)&&t.searchParams.set(e,z);return t.toString()}function ce(e){return le(e,!1)}function le(e,t){if(t)return e==null?e:z;if(typeof e==`string`)return se(e);if(Array.isArray(e))return e.map(e=>le(e,!1));if(typeof e==`object`&&e){let t={};for(let[n,r]of Object.entries(e))t[n]=le(r,B.test(n));return t}return e}function ue(e){return ce({generatedAt:e.generatedAt,app:e.app,environments:e.environments.map(e=>({environmentId:e.environmentId,label:e.record?.label??null,connectionState:e.runtime?.connectionState??null,authState:e.runtime?.authState??null,role:e.runtime?.role??null,lastError:e.runtime?.lastError??null,lastErrorAt:e.runtime?.lastErrorAt??null,connectedAt:e.runtime?.connectedAt??null,disconnectedAt:e.runtime?.disconnectedAt??null,pushSequence:e.pushSequence})),providers:e.providers.map(e=>({instanceId:e.instanceId,driver:e.driver,enabled:e.enabled,installed:e.installed,version:e.version,status:e.status,availability:e.availability??`available`,authStatus:e.auth.status,authType:e.auth.type??null,message:e.message??null,unavailableReason:e.unavailableReason??null,checkedAt:e.checkedAt})),observability:e.observability?{logsDirectoryConfigured:e.observability.logsDirectoryPath.length>0,localTracingEnabled:e.observability.localTracingEnabled,otlpTracesEnabled:e.observability.otlpTracesEnabled,otlpMetricsEnabled:e.observability.otlpMetricsEnabled,localMetrics:e.observability.localMetrics?{turnQuiescenceAvgMs:e.observability.localMetrics.turnQuiescenceAvgMs,checkpointDurationP95Ms:e.observability.localMetrics.checkpointDurationP95Ms,wsReconnectCount:e.observability.localMetrics.wsReconnectCount,capturedAt:e.observability.localMetrics.capturedAt}:null}:null,performance:e.performance?{local:{turnQuiescenceAvgMs:e.performance.local.turnQuiescenceAvgMs,checkpointDurationP95Ms:e.performance.local.checkpointDurationP95Ms,latestThreadSnapshotDurationMs:e.performance.local.latestThreadSnapshotDurationMs,threadSnapshotDurationP95Ms:e.performance.local.threadSnapshotDurationP95Ms,wsReconnectCount:e.performance.local.wsReconnectCount,windowSampleCounts:{...e.performance.local.windowSampleCounts},capturedAt:e.performance.local.capturedAt},queues:{...e.performance.queues},traceSink:e.performance.traceSink?{...e.performance.traceSink}:null,snapshotCollectionDurationMs:e.performance.snapshotCollectionDurationMs}:null})}function de(e){return JSON.stringify(e,null,2)}function fe(e){return(e?.gapCount??0)>0}var V=m(),H={connected:`bg-success`,connecting:`bg-warning`,error:`bg-destructive`,disconnected:`bg-muted-foreground/40`},U={ready:`bg-success`,warning:`bg-warning`,error:`bg-destructive`,disabled:`bg-muted-foreground/40`};function W(e){let t=(0,R.c)(4),{className:n}=e,r;t[0]===n?r=t[1]:(r=T(`inline-block size-2 shrink-0 rounded-full`,n),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,V.jsx)(`span`,{className:r,"aria-hidden":!0}),t[2]=r,t[3]=i),i}function G(e){if(!e)return`No push events observed yet.`;let t=[`last #${e.highestSequence??`—`}`,`${e.eventCount} events`,`${e.snapshotCount} snapshots`];return e.gapCount>0?t.push(`${e.gapCount} gap${e.gapCount===1?``:`s`}`):t.push(`no gaps`),t.join(` · `)}function pe(e){let t=(0,R.c)(25),{environmentId:n,record:r,runtime:i,pushSequence:a}=e,o=i?.connectionState??`disconnected`,s=r?.label??n,c=fe(a),l=H[o]??`bg-muted-foreground/40`,u;t[0]===l?u=t[1]:(u=(0,V.jsx)(W,{className:l}),t[0]=l,t[1]=u);let d;t[2]!==s||t[3]!==u?(d=(0,V.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[u,s]}),t[2]=s,t[3]=u,t[4]=d):d=t[4];let f=i?.authState?` · auth ${i.authState}`:``,p=i?.role?` · ${i.role}`:``,m;t[5]!==o||t[6]!==f||t[7]!==p?(m=(0,V.jsxs)(`span`,{className:`block`,children:[`WS `,o,f,p]}),t[5]=o,t[6]=f,t[7]=p,t[8]=m):m=t[8];let h=c?`text-warning`:`text-muted-foreground/70`,g;t[9]===h?g=t[10]:(g=T(`block`,h),t[9]=h,t[10]=g);let _;t[11]===a?_=t[12]:(_=G(a),t[11]=a,t[12]=_);let v;t[13]!==g||t[14]!==_?(v=(0,V.jsx)(`span`,{className:g,children:_}),t[13]=g,t[14]=_,t[15]=v):v=t[15];let y;t[16]===i?y=t[17]:(y=i?.lastError?(0,V.jsx)(`span`,{className:`block break-all text-destructive`,children:i.lastError}):null,t[16]=i,t[17]=y);let b;t[18]!==v||t[19]!==y||t[20]!==m?(b=(0,V.jsxs)(`span`,{className:`space-y-0.5`,children:[m,v,y]}),t[18]=v,t[19]=y,t[20]=m,t[21]=b):b=t[21];let x;return t[22]!==b||t[23]!==d?(x=(0,V.jsx)(I,{title:d,description:b}),t[22]=b,t[23]=d,t[24]=x):x=t[24],x}function K(e){let t=(0,R.c)(52),{snapshot:n}=e,s=p(be),u=l(ye),d=c(ve),m=o(),_=a(),v=i(),y=n?.performance?.local??null,[ee,S]=(0,L.useState)(!1),C;t[0]!==y||t[1]!==_?(C=_?{..._,...y?{localMetrics:y}:{}}:null,t[0]=y,t[1]=_,t[2]=C):C=t[2];let w=C,T;t[3]!==d||t[4]!==s||t[5]!==u?(T=[...new Set([...Object.keys(s),...Object.keys(u),...Object.keys(d)])].toSorted(),t[3]=d,t[4]=s,t[5]=u,t[6]=T):T=t[6];let k=T,te;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(te={onCopy:_e,onError:ge},t[7]=te):te=t[7];let{copyToClipboard:ne,isCopied:A}=D(te),re;t[8]!==ne||t[9]!==k||t[10]!==w||t[11]!==m||t[12]!==d||t[13]!==s||t[14]!==u||t[15]!==n?.performance?(re=()=>{let e=ue({generatedAt:new Date().toISOString(),app:{version:h,stage:g,isElectron:r,userAgent:typeof navigator>`u`?null:navigator.userAgent},environments:k.map(e=>({environmentId:e,record:s[e]??null,runtime:u[e]??null,pushSequence:d[e]??null})),providers:m,observability:w,performance:n?.performance??null});ne(de(e),void 0)},t[8]=ne,t[9]=k,t[10]=w,t[11]=m,t[12]=d,t[13]=s,t[14]=u,t[15]=n?.performance,t[16]=re):re=t[16],n?.performance;let ie=re,j=_?.logsDirectoryPath??null,M;t[17]!==v||t[18]!==j?(M=()=>{if(!j)return;S(!0);let e=ae(v??[]);if(!e){S(!1),b.add(O({type:`error`,title:`Could not open logs folder`,description:`No available editors found.`}));return}f().shell.openInEditor(j,e).catch(he).finally(()=>{S(!1)})},t[17]=v,t[18]=j,t[19]=M):M=t[19];let N=M,F;t[20]===A?F=t[21]:(F=A?(0,V.jsx)(oe,{className:`size-3.5`}):(0,V.jsx)(x,{className:`size-3.5`}),t[20]=A,t[21]=F);let z=A?`Copied`:`Copy debug bundle`,B;t[22]!==ie||t[23]!==F||t[24]!==z?(B=(0,V.jsxs)(E,{size:`xs`,variant:`outline`,onClick:ie,children:[F,z]}),t[22]=ie,t[23]=F,t[24]=z,t[25]=B):B=t[25];let se;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,V.jsx)(I,{title:`Application`,description:`Version ${h} · ${g}${r?` · Desktop`:` · Browser`}`}),t[26]=se):se=t[26];let ce=j??`Resolving logs directory…`,le=!j||ee,fe=ee?`Opening…`:`Open logs folder`,H;t[27]!==N||t[28]!==le||t[29]!==fe?(H=(0,V.jsx)(E,{size:`xs`,variant:`outline`,disabled:le,onClick:N,children:fe}),t[27]=N,t[28]=le,t[29]=fe,t[30]=H):H=t[30];let U;t[31]!==ce||t[32]!==H?(U=(0,V.jsx)(I,{title:`Logs`,description:ce,control:H}),t[31]=ce,t[32]=H,t[33]=U):U=t[33];let W;t[34]!==U||t[35]!==B?(W=(0,V.jsxs)(P,{title:`Diagnostics`,headerAction:B,children:[se,U]}),t[34]=U,t[35]=B,t[36]=W):W=t[36];let G;t[37]!==k||t[38]!==d||t[39]!==s||t[40]!==u?(G=k.length===0?(0,V.jsx)(I,{title:`No environments`,description:`No environment connections are tracked yet.`}):k.map(e=>(0,V.jsx)(pe,{environmentId:e,record:s[e]??null,runtime:u[e]??null,pushSequence:d[e]??null},e)),t[37]=k,t[38]=d,t[39]=s,t[40]=u,t[41]=G):G=t[41];let K;t[42]===G?K=t[43]:(K=(0,V.jsx)(P,{title:`Environments`,children:G}),t[42]=G,t[43]=K);let q;t[44]===m?q=t[45]:(q=m.length===0?(0,V.jsx)(I,{title:`No providers`,description:`No provider instances are configured.`}):m.map(me),t[44]=m,t[45]=q);let J;t[46]===q?J=t[47]:(J=(0,V.jsx)(P,{title:`Providers`,children:q}),t[46]=q,t[47]=J);let Y;return t[48]!==W||t[49]!==K||t[50]!==J?(Y=(0,V.jsxs)(V.Fragment,{children:[W,K,J]}),t[48]=W,t[49]=K,t[50]=J,t[51]=Y):Y=t[51],Y}function me(e){let t=e.unavailableReason??e.message??null;return(0,V.jsx)(I,{title:(0,V.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,V.jsx)(W,{className:U[e.status]??`bg-muted-foreground/40`}),e.displayName??e.instanceId]}),description:(0,V.jsxs)(`span`,{className:`space-y-0.5`,children:[(0,V.jsxs)(`span`,{className:`block`,children:[e.status,` · auth `,e.auth.status,e.version?` · v${e.version}`:``]}),t?(0,V.jsx)(`span`,{className:`block break-all text-muted-foreground/70`,children:t}):null]})},e.instanceId)}function he(e){b.add(O({type:`error`,title:`Could not open logs folder`,description:e instanceof Error?e.message:`Failed to open logs folder.`}))}function ge(e){b.add(O({type:`error`,title:`Could not copy debug bundle`,description:e.message}))}function _e(){b.add({type:`success`,title:`Debug bundle copied`,description:`Secrets are redacted before export.`})}function ve(e){return e.byEnvironment}function ye(e){return e.byId}function be(e){return e.byId}var q=[{method:`thread/snapshot`,requestId:`req_9f2c81d4a6`,startedAt:`12s ago`},{method:`git/status`,requestId:`req_c07b3e51fd`,startedAt:`9s ago`}];function J(e){b.update(e,{type:`loading`,title:`Updating Claude Code`,description:`Running provider update command.`,timeout:0,actionProps:void 0,data:{hideCopyButton:!0}}),window.setTimeout(()=>{b.update(e,{type:`success`,title:`Provider updated`,description:`New sessions will use the updated provider.`,timeout:0,data:{hideCopyButton:!0,dismissAfterVisibleMs:3e3}})},1800)}var Y=[{value:`provider-update`,label:`Provider update available`,fire:()=>{let e=b.add(O({type:`warning`,title:`Update Available: Claude Code v2.1.4`,description:`Install the update now or review provider settings.`,timeout:0,actionProps:{children:`Update`,onClick:()=>J(e)},actionVariant:`default`,data:{hideCopyButton:!0,secondaryActionProps:{children:`Settings`,onClick:()=>_.getState().openSettings(`providers`)},secondaryActionVariant:`outline`}}))}},{value:`pr-checks-passed`,label:`PR checks passed`,fire:()=>{b.add({type:`success`,title:`Checks passed for PR #316`,description:`Redesign the notification toasts · 3273af68e412`,timeout:6e3,actionProps:{children:`Open PR`,onClick:()=>void 0},data:{actionVariant:`outline`}})}},{value:`git-push`,label:`Git push with follow-up action`,fire:()=>{b.add(O({type:`success`,title:`Pushed`,description:`3 commits pushed to origin/feat/notifications-toasts.`,timeout:0,actionProps:{children:`Open PR`,onClick:()=>void 0},actionVariant:`outline`,data:{dismissAfterVisibleMs:1e4}}))}},{value:`git-failed`,label:`Git action failed`,fire:()=>{b.add(O({type:`error`,title:`Action failed`,description:`remote: Permission to sak0a/ryco.git denied to deploy-bot.
|
|
2
|
-
fatal: unable to access 'https://github.com/sak0a/ryco.git/': The requested URL returned error: 403`,timeout:0}))}},{value:`git-pull`,label:`Git pull (loading → result)`,fire:()=>{b.promise(new Promise(e=>{window.setTimeout(e,2400)}),{loading:{title:`Pulling...`},success:{title:`Pulled`,description:`Updated main from origin/main.`},error:{title:`Pull failed`,description:`Could not fast-forward.`}})}},{value:`slow-requests`,label:`Slow requests (expandable)`,fire:()=>{b.add({type:`warning`,title:`Some requests are slow`,description:`2 requests waiting longer than 5s.`,timeout:0,data:{expandableDescriptionTrigger:!0,expandableLabels:{expand:`Show requests`,collapse:`Hide requests`},expandableContent:(0,V.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:q.map(e=>(0,V.jsxs)(`li`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,V.jsx)(`span`,{className:`shrink-0 rounded-sm bg-muted px-1 py-0.5 font-mono text-[10px]`,children:e.method}),(0,V.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[11px] text-muted-foreground`,children:e.requestId}),(0,V.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] text-muted-foreground`,children:e.startedAt})]},e.requestId))})}})}},{value:`reconnected`,label:`Connection restored`,fire:()=>{b.add({type:`success`,title:`Reconnected to Ryco Server`,description:`Connection restored at ${new Date().toLocaleTimeString()}.`,timeout:0,data:{dismissAfterVisibleMs:8e3,hideCopyButton:!0}})}},{value:`long-error`,label:`Error with long details`,fire:()=>{b.add({type:`error`,title:`Provider session crashed`,description:`The provider session exited unexpectedly with code 137 while processing the turn. Last stderr output: FATAL ERROR: Reached heap limit — allocation failed, JavaScript heap out of memory. Restart the session or reduce the attached context, then try again.`,timeout:0})}}],xe=[`pr-checks-passed`,`provider-update`,`git-failed`];function Se(){xe.forEach((e,t)=>{let n=Y.find(t=>t.value===e);n&&window.setTimeout(()=>n.fire(),t*350)})}function Ce(){let e=(0,R.c)(17),[t,n]=(0,L.useState)(Y[0]?.value??``),r;e[0]===t?r=e[1]:(r=Y.find(e=>e.value===t)??Y[0],e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=e=>{typeof e==`string`&&n(e)},e[2]=a):a=e[2];let o=i?.label,s;e[3]===o?s=e[4]:(s=(0,V.jsx)(ie,{className:`w-full sm:w-56`,"aria-label":`Notification sample`,children:(0,V.jsx)(j,{children:o})}),e[3]=o,e[4]=s);let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsx)(A,{align:`end`,alignItemWithTrigger:!1,children:Y.map(we)}),e[5]=c):c=e[5];let l;e[6]!==t||e[7]!==s?(l=(0,V.jsxs)(M,{value:t,onValueChange:a,children:[s,c]}),e[6]=t,e[7]=s,e[8]=l):l=e[8];let u;e[9]===i?u=e[10]:(u=(0,V.jsx)(E,{"aria-label":`Show test notification`,size:`xs`,onClick:()=>i?.fire(),children:`Show`}),e[9]=i,e[10]=u);let d;e[11]!==l||e[12]!==u?(d=(0,V.jsx)(I,{title:`Test notification`,description:`Preview the notification design with realistic samples. Nothing is sent or changed.`,control:(0,V.jsxs)(`div`,{className:`flex w-full items-center gap-2 sm:w-auto`,children:[l,u]})}),e[11]=l,e[12]=u,e[13]=d):d=e[13];let f;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,V.jsx)(I,{title:`Notification stack`,description:`Fire a short burst to preview stacking, peeking, and hover expansion.`,control:(0,V.jsx)(E,{size:`xs`,variant:`outline`,onClick:Se,children:`Show stack`})}),e[14]=f):f=e[14];let p;return e[15]===d?p=e[16]:(p=(0,V.jsxs)(P,{title:`Notifications`,children:[d,f]}),e[15]=d,e[16]=p),p}function we(e){return(0,V.jsx)(re,{hideIndicator:!0,value:e.value,children:e.label},e.value)}function X(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n>=10||r===0?n.toFixed(0):n.toFixed(1)} ${t[r]}`}function Z(e){return!Number.isFinite(e)||e<=0?`0 ms`:e<1e3?`${Math.round(e)} ms`:e<6e4?`${(e/1e3).toFixed(+(e<1e4))} s`:`${(e/6e4).toFixed(1)} min`}function Te(e){return e===void 0||!Number.isFinite(e)?`n/a`:`${Math.max(0,Math.min(100,e)).toFixed(1)}%`}function Q(e,t=Date.now()){let n=Date.parse(e);if(!Number.isFinite(n))return e;let r=Math.max(0,t-n);return r<1e3?`just now`:r<6e4?`${Math.floor(r/1e3)}s ago`:r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:`${Math.floor(r/864e5)}d ago`}function Ee(e){return e.map(e=>({label:e.sampledAt,value:e.memory.rssBytes}))}function De(e){return e.map(e=>({label:e.sampledAt,value:e.cpu.utilizationPercent??0}))}function Oe(e){return e.map(e=>({label:e.label,value:e.count}))}function ke(e){return e.slice(0,8).map(e=>({label:e.name,value:e.count}))}function Ae(e){let t=e.failures.latest[0];return t?t.message:`No failures`}var je=5e3;function Me(e){let t=(0,R.c)(33),{points:n,formatValue:r}=e,i;bb0:{if(n.length===0){i=``;break bb0}let e;t[0]===n?e=t[1]:(e=Math.max(...n.map(Ne),1),t[0]=n,t[1]=e);let r=e,a;if(t[2]!==r||t[3]!==n){let e;t[5]!==r||t[6]!==n.length?(e=(e,t)=>{let i=n.length===1?320:t/(n.length-1)*320,a=96-e.value/r*84-6;return`${t===0?`M`:`L`}${i.toFixed(2)},${a.toFixed(2)}`},t[5]=r,t[6]=n.length,t[7]=e):e=t[7],a=n.map(e).join(` `),t[2]=r,t[3]=n,t[4]=a}else a=t[4];i=a}let a=i,o,s,c,l,u;if(t[8]!==r||t[9]!==n){let e=n.at(-1)?.value??0;u=`min-w-0`,c=`mb-2 flex items-baseline justify-between gap-3`,t[15]===n.length?l=t[16]:(l=(0,V.jsxs)(`span`,{className:`font-mono text-[11px] text-muted-foreground/70`,children:[n.length,` samples`]}),t[15]=n.length,t[16]=l),o=`font-mono text-xs text-foreground`,s=r(e),t[8]=r,t[9]=n,t[10]=o,t[11]=s,t[12]=c,t[13]=l,t[14]=u}else o=t[10],s=t[11],c=t[12],l=t[13],u=t[14];let d;t[17]!==o||t[18]!==s?(d=(0,V.jsx)(`span`,{className:o,children:s}),t[17]=o,t[18]=s,t[19]=d):d=t[19];let f;t[20]!==c||t[21]!==l||t[22]!==d?(f=(0,V.jsxs)(`div`,{className:c,children:[l,d]}),t[20]=c,t[21]=l,t[22]=d,t[23]=f):f=t[23];let p;t[24]===a?p=t[25]:(p=(0,V.jsx)(`path`,{d:a,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,vectorEffect:`non-scaling-stroke`}),t[24]=a,t[25]=p);let m;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,V.jsx)(`line`,{x1:`0`,y1:95,x2:320,y2:95,className:`stroke-border`}),t[26]=m):m=t[26];let h;t[27]===p?h=t[28]:(h=(0,V.jsxs)(`svg`,{viewBox:`0 0 320 96`,className:`h-24 w-full overflow-visible text-info`,role:`img`,"aria-label":`Diagnostics history chart`,children:[p,m]}),t[27]=p,t[28]=h);let g;return t[29]!==h||t[30]!==u||t[31]!==f?(g=(0,V.jsxs)(`div`,{className:u,children:[f,h]}),t[29]=h,t[30]=u,t[31]=f,t[32]=g):g=t[32],g}function Ne(e){return e.value}function Pe(e){let t=(0,R.c)(12),{points:n,formatValue:r}=e,i=r===void 0?String:r,a;t[0]===n?a=t[1]:(a=Math.max(...n.map(Fe),1),t[0]=n,t[1]=a);let o=a;if(n.length===0){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(`p`,{className:`px-4 py-4 text-muted-foreground text-sm`,children:`No data yet.`}),t[2]=e):e=t[2],e}let s;if(t[3]!==i||t[4]!==o||t[5]!==n){let e;t[7]!==i||t[8]!==o?(e=e=>(0,V.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_5rem] items-center gap-3 px-4 py-2.5`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`div`,{className:`mb-1 truncate text-[12px] font-medium`,children:e.label}),(0,V.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-muted`,children:(0,V.jsx)(`div`,{className:`h-full rounded-full bg-info`,style:{width:`${Math.max(4,e.value/o*100)}%`}})})]}),(0,V.jsx)(`div`,{className:`text-right font-mono text-[11px] text-muted-foreground`,children:i(e.value)})]},e.label),t[7]=i,t[8]=o,t[9]=e):e=t[9],s=n.map(e),t[3]=i,t[4]=o,t[5]=n,t[6]=s}else s=t[6];let c;return t[10]===s?c=t[11]:(c=(0,V.jsx)(`div`,{className:`divide-y divide-border/60`,children:s}),t[10]=s,t[11]=c),c}function Fe(e){return e.value}function $(e){let t=(0,R.c)(10),{label:n,value:r,detail:i}=e,a;t[0]===n?a=t[1]:(a=(0,V.jsx)(`div`,{className:`truncate text-[11px] font-medium text-muted-foreground uppercase tracking-[0.08em]`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,V.jsx)(`div`,{className:`mt-1 truncate text-[15px] font-semibold text-foreground`,children:r}),t[2]=r,t[3]=o);let s;t[4]===i?s=t[5]:(s=i?(0,V.jsx)(`div`,{className:`mt-0.5 truncate text-[11px] text-muted-foreground`,children:i}):null,t[4]=i,t[5]=s);let c;return t[6]!==a||t[7]!==o||t[8]!==s?(c=(0,V.jsxs)(`div`,{className:`min-w-0 border-border/60 border-t px-4 py-3 first:border-t-0 sm:px-5`,children:[a,o,s]}),t[6]=a,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function Ie(e){let t=(0,R.c)(12),{label:n,value:r,detail:i}=e,a;t[0]===n?a=t[1]:(a=(0,V.jsx)(`div`,{className:`text-[12px] font-medium text-foreground`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,V.jsx)(`div`,{className:`font-mono text-[12px] text-foreground`,children:r}),t[2]=r,t[3]=o);let s;t[4]===i?s=t[5]:(s=(0,V.jsx)(`div`,{className:`mt-0.5 text-[11px] text-muted-foreground`,children:i}),t[4]=i,t[5]=s);let c;t[6]!==o||t[7]!==s?(c=(0,V.jsxs)(`div`,{className:`min-w-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8];let l;return t[9]!==a||t[10]!==c?(l=(0,V.jsxs)(`div`,{className:`grid gap-1 border-border/60 border-t px-4 py-3 first:border-t-0 sm:grid-cols-[11rem_minmax(0,1fr)] sm:px-5`,children:[a,c]}),t[9]=a,t[10]=c,t[11]=l):l=t[11],l}function Le(e){let t=(0,R.c)(5),{value:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(`summary`,{className:`cursor-pointer select-none text-[11px] text-muted-foreground hover:text-foreground`,children:`raw`}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=JSON.stringify(n,null,2),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,V.jsxs)(`details`,{className:`group`,children:[r,(0,V.jsx)(`pre`,{className:`mt-2 max-h-64 overflow-auto rounded-md bg-muted/60 p-3 text-[11px] leading-relaxed`,children:i})]}),t[3]=i,t[4]=a),a}function Re(e){let t=(0,R.c)(5),{spans:n}=e;if(n.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(`p`,{className:`px-4 py-4 text-muted-foreground text-sm`,children:`No spans retained yet.`}),t[0]=e):e=t[0],e}let r;t[1]===n?r=t[2]:(r=n.slice(0,10).map(ze),t[1]=n,t[2]=r);let i;return t[3]===r?i=t[4]:(i=(0,V.jsx)(`div`,{className:`divide-y divide-border/60`,children:r}),t[3]=r,t[4]=i),i}function ze(e){return(0,V.jsxs)(`div`,{className:`grid gap-2 px-4 py-3 sm:grid-cols-[minmax(0,1fr)_6rem_5rem] sm:items-start`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(`span`,{className:`truncate text-[13px] font-medium`,children:e.name}),(0,V.jsx)(N,{size:`sm`,variant:e.status===`success`?`outline`:`error`,children:e.status})]}),(0,V.jsxs)(`div`,{className:`mt-1 truncate font-mono text-[11px] text-muted-foreground`,children:[e.source,` / `,e.kind,` / `,e.spanId]}),e.failureMessage?(0,V.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[11px] text-destructive`,children:e.failureMessage}):null,(0,V.jsx)(`div`,{className:`mt-2`,children:(0,V.jsx)(Le,{value:e})})]}),(0,V.jsx)(`div`,{className:`font-mono text-[11px] text-muted-foreground sm:text-right`,children:Z(e.durationMs)}),(0,V.jsx)(`div`,{className:`font-mono text-[11px] text-muted-foreground sm:text-right`,children:Q(e.endTime)})]},e.id)}function Be(e){let t=(0,R.c)(9),{memorySeries:n,cpuSeries:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,V.jsx)(`div`,{className:`mb-1 text-[12px] font-semibold`,children:`RSS memory`}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,V.jsxs)(`div`,{className:`min-w-0 p-4`,children:[i,(0,V.jsx)(Me,{points:n,formatValue:X})]}),t[1]=n,t[2]=a);let o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,V.jsx)(`div`,{className:`mb-1 text-[12px] font-semibold`,children:`CPU utilization`}),t[3]=o):o=t[3];let s;t[4]===r?s=t[5]:(s=(0,V.jsxs)(`div`,{className:`min-w-0 p-4`,children:[o,(0,V.jsx)(Me,{points:r,formatValue:Ve})]}),t[4]=r,t[5]=s);let c;return t[6]!==a||t[7]!==s?(c=(0,V.jsx)(P,{title:`Resource history`,children:(0,V.jsxs)(`div`,{className:`grid gap-0 divide-y divide-border/60 lg:grid-cols-2 lg:divide-x lg:divide-y-0`,children:[a,s]})}),t[6]=a,t[7]=s,t[8]=c):c=t[8],c}function Ve(e){return`${e.toFixed(1)}%`}function He(e){let t=(0,R.c)(25),{snapshot:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(`div`,{className:`border-border/60 border-b px-4 py-2 text-[12px] font-semibold`,children:`Top span names`}),t[0]=r):r=t[0];let i;t[1]===n?.tracing.topSpanNames?i=t[2]:(i=n?.tracing.topSpanNames??[],t[1]=n?.tracing.topSpanNames,t[2]=i);let a;t[3]===i?a=t[4]:(a=ke(i),t[3]=i,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,V.jsxs)(`div`,{className:`min-w-0`,children:[r,(0,V.jsx)(Pe,{points:a})]}),t[5]=a,t[6]=o);let s;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,V.jsx)(`div`,{className:`border-border/60 border-b px-4 py-2 text-[12px] font-semibold`,children:`Duration buckets`}),t[7]=s):s=t[7];let c;t[8]===n?.tracing.durationBuckets?c=t[9]:(c=n?.tracing.durationBuckets??[],t[8]=n?.tracing.durationBuckets,t[9]=c);let l;t[10]===c?l=t[11]:(l=Oe(c),t[10]=c,t[11]=l);let u;t[12]===l?u=t[13]:(u=(0,V.jsxs)(`div`,{className:`min-w-0`,children:[s,(0,V.jsx)(Pe,{points:l})]}),t[12]=l,t[13]=u);let d;t[14]!==o||t[15]!==u?(d=(0,V.jsxs)(`div`,{className:`grid gap-0 divide-y divide-border/60 lg:grid-cols-2 lg:divide-x lg:divide-y-0`,children:[o,u]}),t[14]=o,t[15]=u,t[16]=d):d=t[16];let f;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,V.jsx)(`div`,{className:`border-border/60 border-b px-4 py-2 text-[12px] font-semibold`,children:`Slowest spans`}),t[17]=f):f=t[17];let p;t[18]===n?.tracing.slowestSpans?p=t[19]:(p=n?.tracing.slowestSpans??[],t[18]=n?.tracing.slowestSpans,t[19]=p);let m;t[20]===p?m=t[21]:(m=(0,V.jsxs)(`div`,{className:`border-border/60 border-t`,children:[f,(0,V.jsx)(Re,{spans:p})]}),t[20]=p,t[21]=m);let h;return t[22]!==m||t[23]!==d?(h=(0,V.jsxs)(P,{title:`Tracing diagnostics`,children:[d,m]}),t[22]=m,t[23]=d,t[24]=h):h=t[24],h}function Ue(e){let t=(0,R.c)(10),{snapshot:n,nowMs:r}=e,i;if(t[0]!==r||t[1]!==n?.failures.latest){let e;t[3]===r?e=t[4]:(e=e=>(0,V.jsxs)(`div`,{className:`grid gap-2 px-4 py-3 sm:grid-cols-[minmax(0,1fr)_6rem]`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(N,{size:`sm`,variant:`error`,children:e.category}),(0,V.jsx)(`span`,{className:`truncate text-[13px] font-medium`,children:e.message})]}),(0,V.jsxs)(`div`,{className:`mt-1 truncate font-mono text-[11px] text-muted-foreground`,children:[e.source,` / `,e.signature]}),(0,V.jsx)(`div`,{className:`mt-2`,children:(0,V.jsx)(Le,{value:e.raw??e})})]}),(0,V.jsx)(`div`,{className:`font-mono text-[11px] text-muted-foreground sm:text-right`,children:Q(e.occurredAt,r)})]},e.id),t[3]=r,t[4]=e),i=(n?.failures.latest??[]).slice(0,8).map(e),t[0]=r,t[1]=n?.failures.latest,t[2]=i}else i=t[2];let a;t[5]===n?a=t[6]:(a=n&&n.failures.latest.length===0?(0,V.jsx)(`p`,{className:`px-4 py-4 text-muted-foreground text-sm`,children:`No failures retained.`}):null,t[5]=n,t[6]=a);let o;return t[7]!==i||t[8]!==a?(o=(0,V.jsx)(P,{title:`Failures`,children:(0,V.jsxs)(`div`,{className:`divide-y divide-border/60`,children:[i,a]})}),t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function We(e){let t=(0,R.c)(27),{snapshot:n,slowRpcAcks:r,nowMs:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(`div`,{className:`border-border/60 border-b px-4 py-2 text-[12px] font-semibold`,children:`Providers`}),t[0]=a):a=t[0];let o;t[1]===n?.liveProcesses.providers?o=t[2]:(o=n?.liveProcesses.providers??[],t[1]=n?.liveProcesses.providers,t[2]=o);let s;t[3]===o?s=t[4]:(s=o.map(Ke),t[3]=o,t[4]=s);let c;t[5]===s?c=t[6]:(c=(0,V.jsxs)(`div`,{className:`min-w-0`,children:[a,(0,V.jsx)(`div`,{className:`divide-y divide-border/60`,children:s})]}),t[5]=s,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,V.jsx)(`div`,{className:`border-border/60 border-b px-4 py-2 text-[12px] font-semibold`,children:`Terminals and slow RPCs`}),t[7]=l):l=t[7];let u;t[8]===n?.liveProcesses.terminals?u=t[9]:(u=n?.liveProcesses.terminals??[],t[8]=n?.liveProcesses.terminals,t[9]=u);let d;t[10]===u?d=t[11]:(d=u.map(Ge),t[10]=u,t[11]=d);let f;if(t[12]!==i||t[13]!==r){let e;t[15]===i?e=t[16]:(e=e=>(0,V.jsxs)(`div`,{className:`px-4 py-2.5`,children:[(0,V.jsx)(`div`,{className:`truncate text-[13px] font-medium`,children:e.tag}),(0,V.jsxs)(`div`,{className:`mt-1 font-mono text-[11px] text-muted-foreground`,children:[`slow ack / `,Q(e.startedAt,i)]})]},e.requestId),t[15]=i,t[16]=e),f=r.map(e),t[12]=i,t[13]=r,t[14]=f}else f=t[14];let p;t[17]!==r.length||t[18]!==n?.liveProcesses.terminals.length?(p=(n?.liveProcesses.terminals.length??0)===0&&r.length===0?(0,V.jsx)(`p`,{className:`px-4 py-4 text-muted-foreground text-sm`,children:`No live terminal or slow RPC activity.`}):null,t[17]=r.length,t[18]=n?.liveProcesses.terminals.length,t[19]=p):p=t[19];let m;t[20]!==d||t[21]!==f||t[22]!==p?(m=(0,V.jsxs)(`div`,{className:`min-w-0`,children:[l,(0,V.jsxs)(`div`,{className:`divide-y divide-border/60`,children:[d,f,p]})]}),t[20]=d,t[21]=f,t[22]=p,t[23]=m):m=t[23];let h;return t[24]!==m||t[25]!==c?(h=(0,V.jsx)(P,{title:`Live activity`,children:(0,V.jsxs)(`div`,{className:`grid gap-0 divide-y divide-border/60 lg:grid-cols-2 lg:divide-x lg:divide-y-0`,children:[c,m]})}),t[24]=m,t[25]=c,t[26]=h):h=t[26],h}function Ge(e){return(0,V.jsxs)(`div`,{className:`px-4 py-2.5`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,V.jsx)(`span`,{className:`truncate text-[13px] font-medium`,children:e.terminalId}),(0,V.jsx)(N,{size:`sm`,variant:e.status===`error`?`error`:`outline`,children:e.status})]}),(0,V.jsxs)(`div`,{className:`mt-1 truncate font-mono text-[11px] text-muted-foreground`,children:[`pid `,e.pid??`n/a`,` / subprocess`,` `,e.hasRunningSubprocess?`yes`:`no`]})]},`${e.threadId}:${e.terminalId}`)}function Ke(e){return(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3 px-4 py-2.5`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`div`,{className:`truncate text-[13px] font-medium`,children:e.displayName??e.instanceId}),(0,V.jsx)(`div`,{className:`truncate font-mono text-[11px] text-muted-foreground`,children:e.driver})]}),(0,V.jsx)(N,{size:`sm`,variant:e.status===`error`?`error`:e.status===`warning`?`warning`:`outline`,children:e.status})]},e.instanceId)}function qe(e){let t=(0,R.c)(57),{snapshot:n,memorySeries:r,cpuSeries:i,slowRpcAcks:a,latestFailure:o,nowMs:s}=e,c;t[0]===n?c=t[1]:(c=n?Z(n.uptimeMs):`n/a`,t[0]=n,t[1]=c);let l;t[2]!==s||t[3]!==n?(l=n?`Started ${Q(n.serverStartedAt,s)}`:void 0,t[2]=s,t[3]=n,t[4]=l):l=t[4];let u;t[5]!==c||t[6]!==l?(u=(0,V.jsx)($,{label:`Uptime`,value:c,detail:l}),t[5]=c,t[6]=l,t[7]=u):u=t[7];let d;t[8]===n?d=t[9]:(d=n?X(n.resources.current.memory.rssBytes):`n/a`,t[8]=n,t[9]=d);let f;t[10]===n?f=t[11]:(f=n?`${X(n.resources.current.memory.heapUsedBytes)} heap used`:void 0,t[10]=n,t[11]=f);let p;t[12]!==d||t[13]!==f?(p=(0,V.jsx)($,{label:`Memory`,value:d,detail:f}),t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;t[15]===n?m=t[16]:(m=n?Te(n.resources.current.cpu.utilizationPercent):`n/a`,t[15]=n,t[16]=m);let h;t[17]===n?h=t[18]:(h=n?.resources.current.eventLoopDelayMs===void 0?void 0:`${Z(n.resources.current.eventLoopDelayMs)} event loop delay`,t[17]=n,t[18]=h);let g;t[19]!==m||t[20]!==h?(g=(0,V.jsx)($,{label:`CPU`,value:m,detail:h}),t[19]=m,t[20]=h,t[21]=g):g=t[21];let _;t[22]===n?.liveProcesses.providers?_=t[23]:(_=n?.liveProcesses.providers.filter(Je).length??0,t[22]=n?.liveProcesses.providers,t[23]=_);let v=`${_} providers`,y=`${n?.liveProcesses.terminals.length??0} terminal sessions`,b;t[24]!==v||t[25]!==y?(b=(0,V.jsx)($,{label:`Activity`,value:v,detail:y}),t[24]=v,t[25]=y,t[26]=b):b=t[26];let x=`${n?.tracing.retainedSpanCount??0} spans`,ee=n?`${n.limits.fileTailBytes/1024} KB file tail`:void 0,S;t[27]!==x||t[28]!==ee?(S=(0,V.jsx)($,{label:`Tracing`,value:x,detail:ee}),t[27]=x,t[28]=ee,t[29]=S):S=t[29];let C;t[30]===o?C=t[31]:(C=(0,V.jsx)($,{label:`Latest failure`,value:o}),t[30]=o,t[31]=C);let w;t[32]!==b||t[33]!==S||t[34]!==C||t[35]!==u||t[36]!==p||t[37]!==g?(w=(0,V.jsx)(P,{title:`Overview`,children:(0,V.jsxs)(`div`,{className:`grid sm:grid-cols-2 lg:grid-cols-3`,children:[u,p,g,b,S,C]})}),t[32]=b,t[33]=S,t[34]=C,t[35]=u,t[36]=p,t[37]=g,t[38]=w):w=t[38];let T;t[39]!==i||t[40]!==r?(T=(0,V.jsx)(Be,{memorySeries:r,cpuSeries:i}),t[39]=i,t[40]=r,t[41]=T):T=t[41];let E;t[42]===n?E=t[43]:(E=(0,V.jsx)(He,{snapshot:n}),t[42]=n,t[43]=E);let D;t[44]!==s||t[45]!==n?(D=(0,V.jsx)(Ue,{snapshot:n,nowMs:s}),t[44]=s,t[45]=n,t[46]=D):D=t[46];let O;t[47]!==s||t[48]!==a||t[49]!==n?(O=(0,V.jsx)(We,{snapshot:n,slowRpcAcks:a,nowMs:s}),t[47]=s,t[48]=a,t[49]=n,t[50]=O):O=t[50];let k;return t[51]!==w||t[52]!==T||t[53]!==E||t[54]!==D||t[55]!==O?(k=(0,V.jsxs)(V.Fragment,{children:[w,T,E,D,O]}),t[51]=w,t[52]=T,t[53]=E,t[54]=D,t[55]=O,t[56]=k):k=t[56],k}function Je(e){return e.enabled}function Ye(e){let t=(0,R.c)(14),{snapshot:n,error:r}=e;if(!r&&(!n||n.warnings.length===0))return null;let i=r?`error`:`warning`,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(w,{}),t[0]=a):a=t[0];let o=r?`Diagnostics refresh failed`:`Diagnostics warnings`,s;t[1]===o?s=t[2]:(s=(0,V.jsx)(k,{children:o}),t[1]=o,t[2]=s);let c;t[3]===r?c=t[4]:(c=r?(0,V.jsx)(`span`,{children:r}):null,t[3]=r,t[4]=c);let l;t[5]===n?.warnings?l=t[6]:(l=n?.warnings.slice(0,4).map(Xe),t[5]=n?.warnings,t[6]=l);let u;t[7]!==c||t[8]!==l?(u=(0,V.jsxs)(te,{children:[c,l]}),t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;return t[10]!==i||t[11]!==s||t[12]!==u?(d=(0,V.jsxs)(ne,{variant:i,children:[a,s,u]}),t[10]=i,t[11]=s,t[12]=u,t[13]=d):d=t[13],d}function Xe(e){return(0,V.jsxs)(`span`,{children:[e.message,e.count?` (${e.count})`:``]},`${e.code}:${e.source??``}`)}function Ze({presentation:e=`performance`}){let t=s(),[n,r]=(0,L.useState)(null),[i,a]=(0,L.useState)(null),[o,c]=(0,L.useState)(!0),[p,m]=(0,L.useState)(!1),h=(0,L.useRef)(!1),g=(0,L.useRef)(!1),_=(0,L.useRef)(!1),v=d(),b=l(e=>e.byId),x=Date.now(),w=(0,L.useCallback)(async(e=!1)=>{if(!(!e&&document.visibilityState!==`visible`)&&!h.current){h.current=!0,c(e=>e&&!g.current);try{let e=t?u(t.environmentId)?.server:f().server;if(!e)throw Error(`Diagnostics are unavailable on ${t?.nodeLabel}.`);let n=await e.getDiagnosticsSnapshot();if(_.current)return;r(n),a(null),g.current=!0}catch(e){if(_.current)return;a(e instanceof Error?e.message:`Unable to refresh diagnostics.`)}finally{h.current=!1,_.current||c(!1)}}},[t]);(0,L.useEffect)(()=>{if(_.current=!1,w(),p)return()=>{_.current=!0};let e=null,t=()=>{e!==null&&(window.clearInterval(e),e=null)},n=()=>{document.visibilityState===`visible`&&e===null&&(e=window.setInterval(()=>void w(),je))};n();let r=()=>{if(document.visibilityState===`visible`){w(),n();return}t()};return document.addEventListener(`visibilitychange`,r),()=>{_.current=!0,t(),document.removeEventListener(`visibilitychange`,r)}},[p,w]);let D=(0,L.useMemo)(()=>Ee(n?.resources.history??[]),[n]),O=(0,L.useMemo)(()=>De(n?.resources.history??[]),[n]),k=n?Ae(n):`No snapshot`,te=n?.liveProcesses.providers.filter(e=>e.enabled).length??0,ne=n?.liveProcesses.terminals.filter(e=>e.status===`starting`||e.status===`running`).length??0,A=Object.values(b),re=A.filter(e=>e.connectionState===`connected`).length,ie=A.filter(e=>e.connectionState===`connecting`).length,j=A.length===0?`No tracked clients`:`${re} connected${ie>0?` · ${ie} connecting`:``}`,M=n?.tracing.slowestSpans.find(e=>e.source===`server`)??null,ae=v[0]??null,N=n?.performance??null,I=N?.local.turnQuiescenceAvgMs??null,oe=N?.local.checkpointDurationP95Ms??null,R=N?.local.latestThreadSnapshotDurationMs??null,z=N?.local.threadSnapshotDurationP95Ms??null;return(0,V.jsxs)(F,{children:[(0,V.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`h1`,{className:`text-base font-semibold`,children:`Diagnostics`}),(0,V.jsx)(`p`,{className:`mt-1 text-muted-foreground text-xs`,children:n?`Updated ${Q(n.generatedAt,x)}`:`Waiting for snapshot`})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsxs)(E,{size:`xs`,variant:`outline`,onClick:()=>m(e=>!e),children:[p?(0,V.jsx)(S,{className:`size-3.5`}):(0,V.jsx)(ee,{className:`size-3.5`}),p?`Resume`:`Pause`]}),(0,V.jsxs)(E,{size:`xs`,variant:`outline`,onClick:()=>void w(!0),disabled:o,children:[(0,V.jsx)(C,{className:T(`size-3.5`,o&&`animate-spin`)}),`Refresh`]})]})]}),(0,V.jsx)(Ye,{snapshot:n,error:i}),null,e===`phone-legacy`?null:(0,V.jsx)(Ce,{}),e===`phone-legacy`?(0,V.jsx)(qe,{snapshot:n,memorySeries:D,cpuSeries:O,slowRpcAcks:v,latestFailure:k,nowMs:x}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(P,{title:`Performance now`,children:(0,V.jsxs)(`div`,{className:`grid sm:grid-cols-2 lg:grid-cols-3`,children:[(0,V.jsx)($,{label:`Backend CPU`,value:n?Te(n.resources.current.cpu.utilizationPercent):`n/a`,detail:n?`Process uptime ${Z(n.uptimeMs)}`:void 0}),(0,V.jsx)($,{label:`RSS / heap`,value:n?X(n.resources.current.memory.rssBytes):`n/a`,detail:n?`${X(n.resources.current.memory.heapUsedBytes)} heap used`:void 0}),(0,V.jsx)($,{label:`Event-loop delay`,value:n?.resources.current.eventLoopDelayMs===void 0?`n/a`:Z(n.resources.current.eventLoopDelayMs),detail:`Measured once for this requested snapshot`}),(0,V.jsx)($,{label:`Providers / terminals`,value:`${te} enabled providers`,detail:`${ne} active terminals`}),(0,V.jsx)($,{label:`Turn quiescence`,value:I===null?`No samples`:Z(I),detail:`Rolling average`}),(0,V.jsx)($,{label:`Checkpoint duration`,value:oe===null?`No samples`:Z(oe),detail:`Rolling p95`}),(0,V.jsx)($,{label:`WebSocket state`,value:j,detail:`${N?.local.wsReconnectCount??0} reconnects in this server process`}),(0,V.jsx)($,{label:`Thread snapshot`,value:R===null?`No samples`:Z(R),detail:z===null?`Latest successful subscription snapshot`:`${Z(z)} rolling p95`}),(0,V.jsx)($,{label:`Latest failure`,value:k})]})}),(0,V.jsxs)(P,{title:`Why was this slow?`,children:[(0,V.jsx)(Ie,{label:`Thread snapshot`,value:R===null?`No thread snapshot timing yet`:`${Z(R)} latest`,detail:z===null?`Replay duration and payload bytes are not collected because the current transport has no zero-copy attribution hook.`:`${Z(z)} rolling p95. Replay duration and payload bytes are not collected because the current transport has no zero-copy attribution hook.`}),(0,V.jsx)(Ie,{label:`Queue pressure`,value:N?`${N.queues.runtimeDepthTotal+N.queues.liveBufferDepthTotal} queued now`:`No snapshot`,detail:N?`Largest runtime high-water ${N.queues.runtimeHighWaterMax}; live-buffer high-water ${N.queues.liveBufferHighWaterMax}; ${N.queues.liveBufferOverflowCount} overflows; replay depth ${N.queues.replayDepthMax}; replay lag ${N.queues.replayLagMax}; ${N.queues.providerLogDroppedRecords} provider log records dropped.`:`Runtime and replay queue evidence will appear after the first snapshot.`}),(0,V.jsx)(Ie,{label:`Slowest server stage`,value:M?`${M.name} · ${Z(M.durationMs)}`:`No retained spans`,detail:M?`Server span completed ${Q(M.endTime,x)}.`:`Tracing has not retained a server stage yet.`}),(0,V.jsx)(Ie,{label:`Current slow client RPC`,value:ae?.tag??`No slow RPC acknowledgement in progress`,detail:ae?`Exceeded its ${Z(ae.thresholdMs)} acknowledgement threshold; started ${Q(ae.startedAt,x)}.`:`Only RPCs that cross the existing client acknowledgement threshold appear here.`}),(0,V.jsx)(Ie,{label:`Reconnect / resume`,value:j,detail:`${N?.local.wsReconnectCount??0} server-side reconnects. Per-environment push gaps and recovery state are in Advanced diagnostics.`}),(0,V.jsx)(Ie,{label:`Recent failure`,value:n?.failures.latest[0]?.message??`No retained failures`,detail:n?.failures.latest[0]?`${n.failures.latest[0].source} · ${Q(n.failures.latest[0].occurredAt,x)}`:`No failure evidence is available for the current server process.`}),(0,V.jsx)(Ie,{label:`Trace persistence`,value:N?.traceSink?`${X(N.traceSink.bufferedBytes)} buffered`:`Health unavailable`,detail:N?.traceSink?`${X(N.traceSink.maxBufferedBytes)} cap; ${N.traceSink.droppedRecords} dropped records; ${N.traceSink.writeFailures} write failures; retry delay ${Z(N.traceSink.retryDelayMs)}.`:`This diagnostics service is not attached to the local trace-file sink.`})]}),(0,V.jsxs)(`details`,{className:`group/diagnostics`,children:[(0,V.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center justify-between rounded-xl border bg-card px-4 py-3 text-sm font-medium text-foreground shadow-sm/4 marker:hidden hover:bg-accent/30`,children:[`Advanced diagnostics`,(0,V.jsx)(y,{className:`size-4 text-muted-foreground transition-transform group-open/diagnostics:rotate-180 motion-reduce:transition-none`})]}),(0,V.jsxs)(`div`,{className:`mt-5 space-y-5`,children:[(0,V.jsx)(Be,{memorySeries:D,cpuSeries:O}),(0,V.jsx)(He,{snapshot:n}),(0,V.jsx)(Ue,{snapshot:n,nowMs:x}),(0,V.jsx)(We,{snapshot:n,slowRpcAcks:v,nowMs:x}),(0,V.jsx)(K,{snapshot:n})]})]})]})]})}export{Ze as DiagnosticsSettings};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./react-SIfiwpqq.js";import{t as n}from"./compiler-runtime-qmuS0Svy.js";import"./src-DmPIm3ie.js";import{Rn as r,Xn as i,hn as a,xn as o,zn as s}from"./runtime-CPM0EUhb.js";import{It as c}from"./composerDraftStore-TYv9j3vY.js";import{t as l}from"./circle-alert-BWvs6IOn.js";import{i as u,o as d}from"./toast-C-0Ft2jD.js";import{n as f,t as p}from"./external-link-fbvzDWM7.js";import{n as m,t as h}from"./tokenModePresentation-lVM0-Wi3.js";import{t as g}from"./download-CQZ-m4zW.js";import{t as ee}from"./loader-zHASMrUy.js";import{t as _}from"./refresh-cw-DopCMrtR.js";import{t as v}from"./utils-CV2fJJxC.js";import{i as y,n as te,t as ne}from"./tooltip-C_-9XEfA.js";import{t as re}from"./button-DG8WqjNn.js";import{t as b}from"./toastHelpers-CSQRKo4F.js";import{a as ie,i as x,o as ae,s as oe,t as se}from"./select-CZukJlTn.js";import{t as ce}from"./badge-w43sx8eF.js";import{i as le,n as ue,r as de}from"./settingsLayout-CHJT5wtl.js";var fe=n(),S=e(t(),1),C=c();function w(e){return`${e.pluginId}:${e.targetKind}:${e.providerInstanceId??`global`}`}function pe(e){switch(e.state){case`installed`:return`Installed`;case`not-installed`:return`Not installed`;case`unsupported`:return`Unsupported`;case`error`:return`Error`}}function T(e){switch(e.state){case`installed`:return`success`;case`not-installed`:return`outline`;case`unsupported`:return`warning`;case`error`:return`error`}}function E(e){switch(e.state){case`installed`:return(0,C.jsx)(d,{className:`size-3.5 text-success-foreground`});case`not-installed`:return(0,C.jsx)(f,{className:`size-3.5 text-muted-foreground`});case`unsupported`:case`error`:return(0,C.jsx)(l,{className:`size-3.5 text-warning-foreground`})}}function me(e){return e.targetKind===`global`?`System`:e.providerDisplayName??String(e.providerInstanceId??`Provider`)}function he(e){return e.impact===`tool-output`?`Tool output`:`Assistant output`}function ge(e){return e.scope===`global`?`Global`:`Provider`}function D(e){switch(e){case`rtk`:return 0;case`caveman`:return 1;case`token-optimizer`:return 2;case`token-savior`:return 3;case`lean-ctx`:return 4}}function O(e){return`${e.targetKind===`global`?`0`:`1`}:${me(e).toLowerCase()}`}function _e(e){let t=(0,fe.c)(36),{status:n,isInstalling:r,onInstall:i}=e,a=n.canInstall&&n.state!==`installed`,o;t[0]===n?o=t[1]:(o=E(n),t[0]=n,t[1]=o);let s;t[2]===n?s=t[3]:(s=me(n),t[2]=n,t[3]=s);let c;t[4]===s?c=t[5]:(c=(0,C.jsx)(`span`,{className:`truncate text-[13px] font-medium text-foreground`,children:s}),t[4]=s,t[5]=c);let l;t[6]===n?l=t[7]:(l=T(n),t[6]=n,t[7]=l);let u;t[8]===n?u=t[9]:(u=pe(n),t[8]=n,t[9]=u);let d;t[10]!==l||t[11]!==u?(d=(0,C.jsx)(ce,{variant:l,size:`sm`,children:u}),t[10]=l,t[11]=u,t[12]=d):d=t[12];let f;t[13]===n.version?f=t[14]:(f=n.version?(0,C.jsx)(`span`,{className:`font-mono text-[11px] text-muted-foreground/70`,children:n.version}):null,t[13]=n.version,t[14]=f);let p;t[15]!==o||t[16]!==c||t[17]!==d||t[18]!==f?(p=(0,C.jsxs)(`div`,{className:`flex min-h-5 flex-wrap items-center gap-2`,children:[o,c,d,f]}),t[15]=o,t[16]=c,t[17]=d,t[18]=f,t[19]=p):p=t[19];let m;t[20]===n.detail?m=t[21]:(m=n.detail?(0,C.jsx)(`p`,{className:`max-w-2xl text-xs leading-relaxed text-muted-foreground/80`,children:n.detail}):null,t[20]=n.detail,t[21]=m);let h;t[22]===n.manualSteps?h=t[23]:(h=n.manualSteps.length>0?(0,C.jsx)(`div`,{className:`space-y-1 pt-1`,children:n.manualSteps.map(k)}):null,t[22]=n.manualSteps,t[23]=h);let _;t[24]!==h||t[25]!==p||t[26]!==m?(_=(0,C.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[p,m,h]}),t[24]=h,t[25]=p,t[26]=m,t[27]=_):_=t[27];let v;t[28]!==a||t[29]!==r||t[30]!==i||t[31]!==n?(v=a?(0,C.jsxs)(re,{size:`xs`,variant:`outline`,disabled:r,className:`self-start sm:self-auto`,onClick:()=>i(n),children:[r?(0,C.jsx)(ee,{className:`size-3.5 animate-spin`}):(0,C.jsx)(g,{className:`size-3.5`}),`Install`]}):null,t[28]=a,t[29]=r,t[30]=i,t[31]=n,t[32]=v):v=t[32];let y;return t[33]!==_||t[34]!==v?(y=(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 border-t border-border/50 px-4 py-3 first:border-t-0 sm:flex-row sm:items-center sm:justify-between sm:px-5`,children:[_,v]}),t[33]=_,t[34]=v,t[35]=y):y=t[35],y}function k(e){return(0,C.jsx)(`p`,{className:`font-mono text-[11px] leading-relaxed text-muted-foreground`,children:e},e)}function A(){let e=(0,fe.c)(56),t=r(),{updateSettings:n}=s(),c=i(),l=t.defaultAgentTokenMode??`balanced`,d=m[l],f=d.icon,g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=[],e[0]=g):g=e[0];let[x,pe]=(0,S.useState)(g),T;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(T=[],e[1]=T):T=e[1];let[E,D]=(0,S.useState)(T),[O,k]=(0,S.useState)(!1),[A,Ce]=(0,S.useState)(null),j=(0,S.useRef)(!1),M;e[2]===c?M=e[3]:(M=()=>{if(j.current)return;j.current=!0,k(!0);let e=c?a(c.environmentId)?.server:o().server;if(!e){k(!1),j.current=!1;return}Promise.all([e.listOpinionatedPlugins(),e.checkOpinionatedPlugins()]).then(e=>{let[t,n]=e;pe(t.plugins.toSorted(Ee)),D(n.statuses)}).catch(Te).finally(()=>{j.current=!1,k(!1)})},e[2]=c,e[3]=M);let N=M,De,P;e[4]===N?(De=e[5],P=e[6]):(De=()=>{N()},P=[N],e[4]=N,e[5]=De,e[6]=P),(0,S.useEffect)(De,P);let F;if(e[7]!==E){let t=new Map;for(let e of E){let n=t.get(e.pluginId)??[];n.push(e),t.set(e.pluginId,n)}F=new Map;for(let[e,n]of t)F.set(e,n.toSorted(we));e[7]=E,e[8]=F}else F=e[8];let I=F,Oe=Se,L;e[9]!==N||e[10]!==c?(L=e=>{let t=o(),n=c?a(c.environmentId)?.server:t.server;if(!n){u.add(b({type:`error`,title:`Plugin install unavailable`,description:`Node ${c?.nodeLabel??`server`} is not connected.`}));return}let r=me(e);t.dialogs.confirm(`Install ${e.pluginId===`rtk`?`RTK`:`Caveman`} for ${r}?\n\nThis may run networked CLI installation commands on this machine.`).then(t=>{if(!t)return;let i=w(e);return Ce(i),n.installOpinionatedPlugin({pluginId:e.pluginId,...e.providerInstanceId?{providerInstanceId:e.providerInstanceId}:{}}).then(t=>{D(e=>[...e.filter(e=>w(e)!==i),t.status]),u.add({type:`success`,title:`${e.pluginId===`rtk`?`RTK`:`Caveman`} installed`,description:t.commands.length>0?t.commands[t.commands.length-1]:r}),N()}).catch(xe).finally(()=>Ce(null))}).catch(be)},e[9]=N,e[10]=c,e[11]=L):L=e[11];let R=L,z;e[12]===n?z=e[13]:(z=e=>n({defaultAgentTokenMode:e}),e[12]=n,e[13]=z);let B;e[14]===f?B=e[15]:(B=(0,C.jsx)(f,{className:`size-4 shrink-0 text-muted-foreground`}),e[14]=f,e[15]=B);let V;e[16]===d.triggerLabel?V=e[17]:(V=(0,C.jsx)(oe,{children:d.triggerLabel}),e[16]=d.triggerLabel,e[17]=V);let H;e[18]!==B||e[19]!==V?(H=(0,C.jsx)(ae,{className:`w-full sm:w-52`,"aria-label":`Default token mode`,children:(0,C.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-2`,children:[B,V]})}),e[18]=B,e[19]=V,e[20]=H):H=e[20];let U;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,C.jsx)(ie,{align:`end`,alignItemWithTrigger:!1,className:`w-60`,children:h.map(ye)}),e[21]=U):U=e[21];let W;e[22]!==l||e[23]!==z||e[24]!==H?(W=(0,C.jsx)(le,{title:`Token mode`,children:(0,C.jsx)(de,{title:`Default token mode`,description:`Applied to new threads and draft sessions. Existing threads keep their own mode.`,control:(0,C.jsxs)(se,{value:l,onValueChange:z,children:[H,U]})})}),e[22]=l,e[23]=z,e[24]=H,e[25]=W):W=e[25];let G;e[26]===N?G=e[27]:(G=()=>N(),e[26]=N,e[27]=G);let K;e[28]===O?K=e[29]:(K=O?(0,C.jsx)(ee,{className:`size-3 animate-spin`}):(0,C.jsx)(_,{className:`size-3`}),e[28]=O,e[29]=K);let q;e[30]!==O||e[31]!==G||e[32]!==K?(q=(0,C.jsx)(y,{render:(0,C.jsx)(re,{size:`icon-xs`,variant:`ghost`,className:`size-5 rounded-sm p-0 text-muted-foreground hover:text-foreground`,disabled:O,onClick:G,"aria-label":`Refresh plugin status`,children:K})}),e[30]=O,e[31]=G,e[32]=K,e[33]=q):q=e[33];let J;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,C.jsx)(te,{side:`top`,children:`Refresh plugin status`}),e[34]=J):J=e[34];let Y;e[35]===q?Y=e[36]:(Y=(0,C.jsxs)(ne,{children:[q,J]}),e[35]=q,e[36]=Y);let X;e[37]!==O||e[38]!==x.length?(X=x.length===0&&O?(0,C.jsxs)(`div`,{className:`flex items-center gap-2 px-5 py-4 text-xs text-muted-foreground`,children:[(0,C.jsx)(ee,{className:`size-3.5 animate-spin`}),`Loading plugin status`]}):null,e[37]=O,e[38]=x.length,e[39]=X):X=e[39];let Z;if(e[40]!==R||e[41]!==A||e[42]!==x||e[43]!==I){let t;e[45]!==R||e[46]!==A||e[47]!==I?(t=e=>{let t=I.get(e.id)??[],n=t.filter(ve).length;return(0,C.jsx)(de,{title:(0,C.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,C.jsx)(`span`,{className:`truncate`,children:e.name}),(0,C.jsx)(ce,{variant:n>0?`success`:`outline`,size:`sm`,children:n>0?`${n} installed`:`Available`})]}),description:e.summary,status:(0,C.jsxs)(`span`,{className:`flex flex-wrap gap-1.5`,children:[(0,C.jsx)(ce,{variant:`info`,size:`sm`,children:he(e)}),(0,C.jsx)(ce,{variant:`outline`,size:`sm`,children:ge(e)})]}),control:(0,C.jsxs)(re,{size:`xs`,variant:`ghost`,onClick:()=>Oe(e),children:[(0,C.jsx)(p,{className:`size-3.5`}),`Docs`]}),children:(0,C.jsx)(`div`,{className:v(`mt-4 border-t border-border/60`,t.length===0?`px-5 py-4`:``),children:t.length===0?(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground/80`,children:`No compatible provider instances detected.`}):t.map(e=>(0,C.jsx)(_e,{status:e,isInstalling:A===w(e),onInstall:R},w(e)))})},e.id)},e[45]=R,e[46]=A,e[47]=I,e[48]=t):t=e[48],Z=x.map(t),e[40]=R,e[41]=A,e[42]=x,e[43]=I,e[44]=Z}else Z=e[44];let Q;e[49]!==Y||e[50]!==X||e[51]!==Z?(Q=(0,C.jsxs)(le,{title:`Opinionated plugins`,headerAction:Y,children:[X,Z]}),e[49]=Y,e[50]=X,e[51]=Z,e[52]=Q):Q=e[52];let $;return e[53]!==W||e[54]!==Q?($=(0,C.jsxs)(ue,{children:[W,Q]}),e[53]=W,e[54]=Q,e[55]=$):$=e[55],$}function ve(e){return e.state===`installed`}function ye(e){let t=m[e],n=t.icon;return(0,C.jsx)(x,{hideIndicator:!0,value:e,children:(0,C.jsxs)(`div`,{className:`grid min-w-0 gap-0.5`,children:[(0,C.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-medium text-foreground`,children:[(0,C.jsx)(n,{className:`size-3.5 shrink-0 text-muted-foreground`}),t.label]}),(0,C.jsx)(`span`,{className:`text-muted-foreground text-xs leading-4`,children:t.description})]})},e)}function be(e){u.add(b({type:`error`,title:`Install confirmation failed`,description:e instanceof Error?e.message:`An error occurred.`}))}function xe(e){u.add(b({type:`error`,title:`Plugin install failed`,description:e instanceof Error?e.message:`An error occurred.`}))}function Se(e){let t=e.docsUrl??e.homepageUrl;o().shell.openExternal(t).catch(Ce)}function Ce(e){u.add(b({type:`error`,title:`Failed to open plugin docs`,description:e instanceof Error?e.message:`An error occurred.`}))}function we(e,t){return O(e).localeCompare(O(t))}function Te(e){u.add(b({type:`error`,title:`Failed to load plugins`,description:e instanceof Error?e.message:`An error occurred.`}))}function Ee(e,t){return D(e.id)-D(t.id)}export{A as OpinionatedPluginsSettingsPanel};
|