opencode-navigator 0.27.3 → 0.27.5

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/tui.js CHANGED
@@ -1,4 +1,4 @@
1
- import {insert as _$insert,setProp as _$setProp,createElement as _$createElement,memo as _$memo,createComponent as _$createComponent,mergeProps as _$mergeProps,useRenderer,effect as _$effect,createTextNode as _$createTextNode,insertNode as _$insertNode,use as _$use,spread as _$spread,useTerminalDimensions,useTerminalDimensions as useTerminalDimensions2,useTerminalDimensions as useTerminalDimensions3,useTerminalDimensions as useTerminalDimensions4,useRenderer as useRenderer2,useTerminalDimensions as useTerminalDimensions5,useTerminalDimensions as useTerminalDimensions6,useTerminalDimensions as useTerminalDimensions7,useTerminalDimensions as useTerminalDimensions8,useTerminalDimensions as useTerminalDimensions9} from "@opentui/solid"
1
+ import {insert as _$insert,setProp as _$setProp,createElement as _$createElement,memo as _$memo,createComponent as _$createComponent,mergeProps as _$mergeProps,useRenderer,effect as _$effect,createTextNode as _$createTextNode,insertNode as _$insertNode,use as _$use,spread as _$spread,useTerminalDimensions,useTerminalDimensions as useTerminalDimensions2,useTerminalDimensions as useTerminalDimensions3,useRenderer as useRenderer2,useTerminalDimensions as useTerminalDimensions5,useTerminalDimensions as useTerminalDimensions6} from "@opentui/solid"
2
2
 
3
3
 
4
4
 
@@ -84,7 +84,7 @@ const session=sessionID?api.state.session.get(sessionID):undefined
84
84
  const directory=session?.directory??api.state.path.directory
85
85
  const workspace=session?.workspaceID
86
86
  return{key:JSON.stringify([directory,workspace??null]),routing:{directory,...workspace&&{workspace}}}}
87
- import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,onCleanup as onCleanup2,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup3,Show,createEffect as createEffect4,Show as Show2,splitProps as splitProps3,createEffect as createEffect5,createSignal as createSignal4,onCleanup as onCleanup4,onMount,Suspense,lazy,batch,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup5,Show as Show3,batch as batch2,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect6,createSignal as createSignal9,onCleanup as onCleanup6,createSignal as createSignal10,createSignal as createSignal11,Suspense as Suspense2,lazy as lazy2,Index,onCleanup as onCleanup7,createEffect as createEffect8,onCleanup as onCleanup10,batch as batch3,createEffect as createEffect7,createMemo,createSignal as createSignal13,onCleanup as onCleanup9,onMount as onMount2,createSignal as createSignal12,onCleanup as onCleanup8,For as For2,For as For3,Show as Show4,createMemo as createMemo2,Suspense as Suspense3,lazy as lazy3,For as For6,createMemo as createMemo4,onMount as onMount4,For as For5,createMemo as createMemo3,onMount as onMount3,Show as Show6,createEffect as createEffect9,createSignal as createSignal14,onCleanup as onCleanup11,Show as Show5,For as For4,For as For7,createEffect as createEffect10,createMemo as createMemo5,onCleanup as onCleanup12,createEffect as createEffect11,createMemo as createMemo6,untrack as untrack2,Suspense as Suspense4,lazy as lazy4,onCleanup as onCleanup13,createEffect as createEffect12,onCleanup as onCleanup14,createSignal as createSignal15,createMemo as createMemo7,createSignal as createSignal16,createSignal as createSignal17,lazy as lazy5,Show as Show9,For as For8,Show as Show8,Show as Show7,createEffect as createEffect13,onCleanup as onCleanup15,onMount as onMount5,onCleanup as onCleanup16,onMount as onMount6,For as For9,createSignal as createSignal18,createEffect as createEffect14,createSignal as createSignal19,onCleanup as onCleanup17,createSignal as createSignal20,onCleanup as onCleanup18,createSignal as createSignal21,Show as Show10,createSignal as createSignal23,createSignal as createSignal22,onCleanup as onCleanup19,For as For10,Show as Show13,createMemo as createMemo9,createComputed,createMemo as createMemo8,createSignal as createSignal24,untrack as untrack3,Show as Show11,createComputed as createComputed2,untrack as untrack4,Show as Show12,createSignal as createSignal26,createEffect as createEffect15,createSignal as createSignal25,on,createMemo as createMemo11,createSignal as createSignal29,createMemo as createMemo10,For as For11,Show as Show17,Show as Show14,Show as Show15,createSignal as createSignal27,createContext as createContext3,useContext as useContext3,Show as Show16,createSignal as createSignal28,onCleanup as onCleanup20,Show as Show23,createSignal as createSignal30,untrack as untrack5,createSignal as createSignal31,createSignal as createSignal32,createEffect as createEffect16,For as For13,Show as Show18,For as For12,createSignal as createSignal33,Show as Show19,Show as Show20,Show as Show21,Show as Show22,createSignal as createSignal34,createEffect as createEffect17,createMemo as createMemo12,on as on2,onCleanup as onCleanup21,For as For14,Show as Show25,createMemo as createMemo14,Show as Show24,createMemo as createMemo13,createSignal as createSignal35,createContext as createContext4,useContext as useContext4,Show as Show26,Suspense as Suspense5,createEffect as createEffect18,onCleanup as onCleanup22,untrack as untrack6,For as For20,Match,Switch,createMemo as createMemo20,onCleanup as onCleanup28,For as For15,Show as Show28,createMemo as createMemo16,createSignal as createSignal37,createEffect as createEffect19,createMemo as createMemo15,onCleanup as onCleanup23,untrack as untrack7,Show as Show27,createEffect as createEffect20,createSignal as createSignal36,onCleanup as onCleanup24,For as For16,Show as Show30,createSignal as createSignal38,createEffect as createEffect21,createMemo as createMemo17,onCleanup as onCleanup25,untrack as untrack8,Show as Show29,For as For18,Show as Show33,createEffect as createEffect22,createMemo as createMemo18,createSignal as createSignal39,onCleanup as onCleanup26,untrack as untrack9,For as For17,Show as Show32,Show as Show31,Show as Show38,createEffect as createEffect23,createMemo as createMemo19,createSignal as createSignal40,onCleanup as onCleanup27,untrack as untrack10,Show as Show34,For as For19,Show as Show36,Show as Show35,Show as Show37,createEffect as createEffect24,createMemo as createMemo21,onCleanup as onCleanup29,untrack as untrack11,Show as Show39,createMemo as createMemo22,onCleanup as onCleanup30,createRoot,createSignal as createSignal41,getOwner,createSignal as createSignal42,onCleanup as onCleanup31,onMount as onMount7} from "solid-js"
87
+ import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,onCleanup as onCleanup2,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup3,Show,createEffect as createEffect4,Show as Show2,splitProps as splitProps3,createEffect as createEffect5,createSignal as createSignal4,onCleanup as onCleanup4,onMount,Suspense,lazy,batch,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup5,Show as Show3,batch as batch2,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect6,createSignal as createSignal9,onCleanup as onCleanup6,createSignal as createSignal10,Suspense as Suspense2,lazy as lazy2,createEffect as createEffect8,onCleanup as onCleanup10,batch as batch3,createEffect as createEffect7,createMemo,createSignal as createSignal13,onCleanup as onCleanup9,onMount as onMount2,createSignal as createSignal12,onCleanup as onCleanup8,For as For2,For as For3,Show as Show4,createMemo as createMemo2,Suspense as Suspense3,lazy as lazy3,For as For5,createMemo as createMemo3,onMount as onMount3,Show as Show6,createEffect as createEffect9,createSignal as createSignal14,onCleanup as onCleanup11,Show as Show5,For as For4,Suspense as Suspense4,lazy as lazy4,onCleanup as onCleanup13,createEffect as createEffect12,onCleanup as onCleanup14,createSignal as createSignal15,createSignal as createSignal16,createSignal as createSignal17,lazy as lazy5,createEffect as createEffect13,onCleanup as onCleanup15,onMount as onMount5,onCleanup as onCleanup16,onMount as onMount6,createEffect as createEffect14,createSignal as createSignal19,onCleanup as onCleanup17,createSignal as createSignal21,Show as Show10,createSignal as createSignal23,createSignal as createSignal22,onCleanup as onCleanup19,For as For10,Show as Show13,createMemo as createMemo9,createComputed,createMemo as createMemo8,createSignal as createSignal24,untrack as untrack3,Show as Show11,createComputed as createComputed2,untrack as untrack4,Show as Show12,createSignal as createSignal26,createEffect as createEffect15,createSignal as createSignal25,on,createMemo as createMemo11,createSignal as createSignal29,createMemo as createMemo10,For as For11,Show as Show17,Show as Show14,Show as Show15,createSignal as createSignal27,createContext as createContext3,useContext as useContext3,Show as Show16,createSignal as createSignal28,onCleanup as onCleanup20,createEffect as createEffect17,createMemo as createMemo13,on as on2,onCleanup as onCleanup23,For as For14,Show as Show26,createMemo as createMemo15,Show as Show25,createMemo as createMemo14,createSignal as createSignal38,createContext as createContext4,useContext as useContext4,Show as Show27,Suspense as Suspense5,createEffect as createEffect18,onCleanup as onCleanup24,untrack as untrack6,For as For20,Match,Switch,createMemo as createMemo21,onCleanup as onCleanup30,For as For15,Show as Show29,createMemo as createMemo17,createSignal as createSignal40,createEffect as createEffect19,createMemo as createMemo16,onCleanup as onCleanup25,untrack as untrack7,Show as Show28,createEffect as createEffect20,createSignal as createSignal39,onCleanup as onCleanup26,For as For16,Show as Show31,createSignal as createSignal41,createEffect as createEffect21,createMemo as createMemo18,onCleanup as onCleanup27,untrack as untrack8,Show as Show30,For as For18,Show as Show34,createEffect as createEffect22,createMemo as createMemo19,createSignal as createSignal42,onCleanup as onCleanup28,untrack as untrack9,For as For17,Show as Show33,Show as Show32,Show as Show39,createEffect as createEffect23,createMemo as createMemo20,createSignal as createSignal43,onCleanup as onCleanup29,untrack as untrack10,Show as Show35,For as For19,Show as Show37,Show as Show36,Show as Show38,createEffect as createEffect24,createMemo as createMemo22,onCleanup as onCleanup31,untrack as untrack11,Show as Show40,createMemo as createMemo23,onCleanup as onCleanup32,createRoot,createSignal as createSignal44,getOwner,createSignal as createSignal45,onMount as onMount7} from "solid-js"
88
88
  function mcpToggleAction(status){if(status==="pending")
89
89
  return
90
90
  return status==="connected"?"disconnect":"connect"
@@ -744,7 +744,7 @@ renderer.requestRender()
744
744
 
745
745
 
746
746
 
747
- import {RGBA,TextAttributes,TextAttributes as TextAttributes2,TextAttributes as TextAttributes3,RGBA as RGBA2,parseColor,TextAttributes as TextAttributes4,TextAttributes as TextAttributes5,TextAttributes as TextAttributes6,TextAttributes as TextAttributes7,RGBA as RGBA3,parseColor as parseColor2,TextAttributes as TextAttributes8,TextAttributes as TextAttributes9,TextAttributes as TextAttributes10,TextAttributes as TextAttributes11,TextAttributes as TextAttributes13,TextAttributes as TextAttributes12,TextAttributes as TextAttributes14,ScrollBoxRenderable,TextAttributes as TextAttributes15} from "@opentui/core"
747
+ import {RGBA,TextAttributes,TextAttributes as TextAttributes2,TextAttributes as TextAttributes3,RGBA as RGBA2,parseColor,TextAttributes as TextAttributes4,TextAttributes as TextAttributes5,TextAttributes as TextAttributes6,RGBA as RGBA3,parseColor as parseColor2,TextAttributes as TextAttributes8,TextAttributes as TextAttributes9,TextAttributes as TextAttributes10,ScrollBoxRenderable,TextAttributes as TextAttributes16} from "@opentui/core"
748
748
 
749
749
  var transparent=RGBA.fromInts(0,0,0,0)
750
750
  function selectionBackdrop(node){for(let parent=node.parent;parent; parent=parent.parent){if("backgroundColor" in parent&&parent.backgroundColor instanceof RGBA&&parent.backgroundColor.a>0&&(!("shouldFill" in parent)||parent.shouldFill!==false))
@@ -987,7 +987,12 @@ return _p$
987
987
  },{e:undefined,t:undefined,a:undefined,o:undefined
988
988
  })
989
989
  return _el$
990
- })(),(()=>{var _el$5=_$createElement("scrollbox"),_el$6=_$createElement("box")
990
+ })(),_$memo(()=>_$memo(()=>!!props.description)()&&(()=>{var _el$1=_$createElement("text")
991
+ _$setProp(_el$1,"wrapMode","word")
992
+ _$insert(_el$1,()=>props.description)
993
+ _$effect((_$p)=>_$setProp(_el$1,"fg",theme().textMuted,_$p))
994
+ return _el$1
995
+ })()),(()=>{var _el$5=_$createElement("scrollbox"),_el$6=_$createElement("box")
991
996
  _$insertNode(_el$5,_el$6)
992
997
  _$use((node)=>{body=node
993
998
  scroll.ref(node)
@@ -1000,25 +1005,25 @@ _$insert(_el$6,_$createComponent(For,{get each(){return props.options
1000
1005
  },onMouseOver:()=>setActive(index()),onMouseUp:(event)=>{event.stopPropagation()
1001
1006
  setActive(index())
1002
1007
  props.onSelect(option)
1003
- },get children(){return [(()=>{var _el$1=_$createElement("text")
1004
- _$setProp(_el$1,"wrapMode","word")
1005
- _$insert(_el$1,(()=>{var _c$=_$memo(()=>!!option.icon)
1008
+ },get children(){return props.renderOption?.(option)??[(()=>{var _el$10=_$createElement("text")
1009
+ _$setProp(_el$10,"wrapMode","word")
1010
+ _$insert(_el$10,(()=>{var _c$=_$memo(()=>!!option.icon)
1006
1011
  return()=>_c$()?`${icons.icon(option.icon)} `:""
1007
1012
  })(),null)
1008
- _$insert(_el$1,()=>option.title,null)
1013
+ _$insert(_el$10,()=>option.title,null)
1009
1014
  _$effect((_p$)=>{var _v$5=active()===index()?TextAttributes2.BOLD:undefined,_v$6=theme().text
1010
- _v$5!==_p$.e&&(_p$.e=_$setProp(_el$1,"attributes",_v$5,_p$.e))
1011
- _v$6!==_p$.t&&(_p$.t=_$setProp(_el$1,"fg",_v$6,_p$.t))
1015
+ _v$5!==_p$.e&&(_p$.e=_$setProp(_el$10,"attributes",_v$5,_p$.e))
1016
+ _v$6!==_p$.t&&(_p$.t=_$setProp(_el$10,"fg",_v$6,_p$.t))
1012
1017
  return _p$
1013
1018
  },{e:undefined,t:undefined
1014
1019
  })
1015
- return _el$1
1016
- })(),(()=>{var _el$10=_$createElement("text")
1017
- _$setProp(_el$10,"wrapMode","word")
1018
- _$insert(_el$10,()=>option.description)
1019
- _$effect((_$p)=>_$setProp(_el$10,"fg",theme().textMuted,_$p))
1020
1020
  return _el$10
1021
- })()]
1021
+ })(),(()=>{var _el$11=_$createElement("text")
1022
+ _$setProp(_el$11,"wrapMode","word")
1023
+ _$insert(_el$11,()=>option.description)
1024
+ _$effect((_$p)=>_$setProp(_el$11,"fg",theme().textMuted,_$p))
1025
+ return _el$11
1026
+ })(),_$memo(()=>props.renderDetails?.(option))]
1022
1027
  }})
1023
1028
  }))
1024
1029
  _$effect((_$p)=>_$setProp(_el$5,"height",props.adaptive?Math.min(props.height??Math.min(props.options.length*3,15),Math.max(2,Math.floor(dimensions().height*0.75)-8)):props.height??Math.min(props.options.length*3,15),_$p))
@@ -3305,7 +3310,7 @@ const skills=[...input.skills].sort((a,b)=>Number(input.favoriteSkills.has(b.loc
3305
3310
  const mcp=[...input.mcp].sort((a,b)=>Number(input.favoriteMcp.has(b.name))-Number(input.favoriteMcp.has(a.name))||a.name.localeCompare(b.name))
3306
3311
  const results=[...skills.map((skill)=>({id:`skill:${skill.location || skill.name}`,group:"Skills",title:skill.name,description:[input.skillGroups?.[skill.location],skill.description?.trim()||skill.location].filter(Boolean).join(" \xB7 "),keywords:`${skill.location} ${input.skillGroups?.[skill.location] ?? ""}`,skill
3307
3312
  })),...input.subagents.map((item)=>({id:`subagent:${item.session.id}`,group:"Subagents",title:item.session.title,description:[item.run?.outcome??item.status.type,item.run?.errorMessage].filter(Boolean).join(" \xB7 "),keywords:item.session.id,sessionID:item.session.id
3308
- })),...mcp.map((item)=>({id:`mcp:${item.name}`,group:"MCP",title:item.name,description:[input.mcpGroups?.[item.name],mcpToggleAction2(item.status)==="disconnect"?"Disconnect":"Connect",item.status,input.mcpErrorMode==="details"?undefined:item.error].filter(Boolean).join(" \xB7 "),keywords:input.mcpGroups?.[item.name],disabled:input.mcpBusy||!mcpToggleAction2(item.status)?"MCP operation in progress":undefined,server:item.name,...input.mcpErrorMode==="details"&&item.error&&{information:{title:`MCP \xB7 ${item.name}`,body:`Status: ${item.status}
3313
+ })),...mcp.map((item)=>({id:`mcp:${item.name}`,group:"MCP",title:item.name,description:[input.mcpGroups?.[item.name],mcpToggleAction2(item.status)==="disconnect"?"Disconnect":"Connect",item.status,input.mcpErrorMode==="details"?undefined:item.error].filter(Boolean).join(" \xB7 "),keywords:input.mcpGroups?.[item.name],disabled:input.mcpBusy||!mcpToggleAction2(item.status)?"MCP operation in progress":undefined,server:item.name,connected:item.status==="connected",...input.mcpErrorMode==="details"&&item.error&&{information:{title:`MCP \xB7 ${item.name}`,body:`Status: ${item.status}
3309
3314
 
3310
3315
  ${item.error}`}}})),...orderQuickActionIds(input.actionOrder,input.favoriteQuickActions??new Set).flatMap((id)=>{const action=QUICK_ACTIONS.find((item)=>item.command===id)
3311
3316
  return action?[{id:`action:${id}`,group:"Actions",title:input.actionLabel?.(action)??action.label,description:id,command:id,disabled:input.actionDisabledReason?.(action)??(quickActionRequiresSession(action.command)&&!input.hasSession?"Requires an open session":undefined)
@@ -5805,7 +5810,34 @@ return _$createComponent(SectionWithHeaderAction,{get api(){return props.api
5805
5810
 
5806
5811
 
5807
5812
 
5808
- var CHATGPT_METHODS=new Set(["chatgpt-browser","chatgpt-headless"]);
5813
+ var CHATGPT_METHODS=new Set(["chatgpt-browser","chatgpt-headless","chatgpt-token-sharing"]);
5814
+
5815
+
5816
+
5817
+
5818
+
5819
+
5820
+
5821
+
5822
+
5823
+
5824
+
5825
+
5826
+
5827
+
5828
+
5829
+
5830
+
5831
+
5832
+
5833
+
5834
+
5835
+
5836
+
5837
+
5838
+
5839
+
5840
+
5809
5841
 
5810
5842
 
5811
5843
 
@@ -5869,9 +5901,9 @@ var scheduleInterval=(callback,milliseconds)=>{const timer=setInterval(callback,
5869
5901
  return()=>clearInterval(timer)
5870
5902
  }
5871
5903
  function createLimitsRefresh(options,schedule=scheduleInterval){let disposed=false
5872
- const selectedKey=createMemo12(()=>JSON.stringify(options.selectedModel?.()))
5873
- const targetKey=createMemo12(()=>JSON.stringify(options.controller.current().model))
5874
- const interval=createMemo12(()=>(parseLimitsRefreshMinutes(options.refreshMinutes?.())??DEFAULT_LIMITS_REFRESH_MINUTES)*60000)
5904
+ const selectedKey=createMemo13(()=>JSON.stringify(options.selectedModel?.()))
5905
+ const targetKey=createMemo13(()=>JSON.stringify(options.controller.current().model))
5906
+ const interval=createMemo13(()=>(parseLimitsRefreshMinutes(options.refreshMinutes?.())??DEFAULT_LIMITS_REFRESH_MINUTES)*60000)
5875
5907
  createEffect17(on2(selectedKey,()=>{const model=options.selectedModel?.()
5876
5908
  if(model&&options.accountSource)
5877
5909
  options.accountSource.refresh(model).catch(()=>{})
@@ -5889,9 +5921,9 @@ await options.accountSource.refresh(model)
5889
5921
  if(!disposed&&target===targetKey())
5890
5922
  await options.controller.refresh()
5891
5923
  }
5892
- createEffect17(on2(interval,(milliseconds)=>{onCleanup21(schedule(()=>void refresh().catch(()=>{}),milliseconds))
5924
+ createEffect17(on2(interval,(milliseconds)=>{onCleanup23(schedule(()=>void refresh().catch(()=>{}),milliseconds))
5893
5925
  }))
5894
- onCleanup21(()=>{disposed=true
5926
+ onCleanup23(()=>{disposed=true
5895
5927
  })
5896
5928
  }
5897
5929
 
@@ -5947,12 +5979,12 @@ function QuickActionRow(props){const{api,interaction
5947
5979
  const icons=useIcons()
5948
5980
  const toolbar=useToolbar()
5949
5981
  const theme=()=>api.theme.current
5950
- const [width,setWidth]=createSignal35(0)
5951
- const shortcut=createMemo13(()=>{const bindings=api.keymap.getCommandBindings({visibility:"registered",commands:[props.action.command]
5982
+ const [width,setWidth]=createSignal38(0)
5983
+ const shortcut=createMemo14(()=>{const bindings=api.keymap.getCommandBindings({visibility:"registered",commands:[props.action.command]
5952
5984
  })
5953
5985
  return api.keys.formatBindings(bindings.get(props.action.command))
5954
5986
  })
5955
- const visibleShortcut=createMemo13(()=>{const value=shortcut()
5987
+ const visibleShortcut=createMemo14(()=>{const value=shortcut()
5956
5988
  return value&&width()>=Bun.stringWidth(props.action.label) + Bun.stringWidth(value) + (toolbar?11:8)?value:undefined
5957
5989
  })
5958
5990
  function run(){if(props.action.command==="session.new"&&props.onNewSession?.())
@@ -5991,7 +6023,7 @@ _$insert(_el$2,()=>props.action.label)
5991
6023
  _$effect((_$p)=>_$setProp(_el$2,"fg",row.foregroundColor(),_$p))
5992
6024
  return _el$2
5993
6025
  })()
5994
- },get metadata(){return _$createComponent(Show24,{get when(){return visibleShortcut()
6026
+ },get metadata(){return _$createComponent(Show25,{get when(){return visibleShortcut()
5995
6027
  },children:(value)=>(()=>{var _el$3=_$createElement("text")
5996
6028
  _$setProp(_el$3,"flexShrink",0)
5997
6029
  _$setProp(_el$3,"wrapMode","none")
@@ -6000,12 +6032,12 @@ _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme()
6000
6032
  return _el$3
6001
6033
  })()
6002
6034
  })
6003
- },get trailing(){return _$createComponent(Show24,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
6035
+ },get trailing(){return _$createComponent(Show25,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
6004
6036
  },get position(){return props.position
6005
6037
  },get pin(){return{kind:"action",id:props.action.command,icon:"bolt"
6006
6038
  }}})
6007
6039
  }})
6008
- },get details(){return _$createComponent(Show24,{get when(){return props.disabled
6040
+ },get details(){return _$createComponent(Show25,{get when(){return props.disabled
6009
6041
  },children:(reason)=>(()=>{var _el$4=_$createElement("text")
6010
6042
  _$setProp(_el$4,"wrapMode","word")
6011
6043
  _$insert(_el$4,reason)
@@ -6016,7 +6048,7 @@ return _el$4
6016
6048
  }})
6017
6049
  }
6018
6050
  function QuickActionsSection(props){const commandRevision=createQuickActionRevision(props.api)
6019
- const actions=createMemo14(()=>{commandRevision()
6051
+ const actions=createMemo15(()=>{commandRevision()
6020
6052
  return orderQuickActionIds(props.preferences.quickActionOrder?.()??QUICK_ACTIONS.map((action)=>action.command),props.preferences.favoriteQuickActions?.()??new Set).flatMap((id)=>{const action=QUICK_ACTIONS.find((candidate)=>candidate.command===id)
6021
6053
  return action&&props.preferences.quickActionVisible?.(id)!==false?[{...action,label:quickActionLabel(props.api,action),disabled:quickActionDisabledReason(props.api,action)
6022
6054
  }]:[]
@@ -6033,7 +6065,7 @@ return _$createComponent(Section,{get api(){return props.api
6033
6065
  },onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children(){return [_$createComponent(SidebarRowList,{get api(){return props.api
6034
6066
  },get interaction(){return props.interaction
6035
6067
  },get density(){return props.preferences.rowDensity?.()??"compact"
6036
- },get children(){return [_$createComponent(Show25,{get when(){return actions().length===0
6068
+ },get children(){return [_$createComponent(Show26,{get when(){return actions().length===0
6037
6069
  },get children(){var _el$=_$createElement("text")
6038
6070
  _$insertNode(_el$,_$createTextNode(`No quick actions selected`))
6039
6071
  _$effect((_$p)=>_$setProp(_el$,"fg",props.api.theme.current.textMuted,_$p))
@@ -6106,14 +6138,14 @@ untrack6(()=>shortcuts.bind(key))
6106
6138
  createEffect18(()=>{if(shortcuts.active()&&(props.api.route.current.name!=="session"||props.api.ui.dialog.open||props.api.mode.current()==="modal"))
6107
6139
  untrack6(shortcuts.cancel)
6108
6140
  })
6109
- onCleanup22(shortcuts.dispose)
6141
+ onCleanup24(shortcuts.dispose)
6110
6142
  return(()=>{var _el$=_$createElement("box")
6111
6143
  _$setProp(_el$,"position","absolute")
6112
6144
  _$setProp(_el$,"top",0)
6113
6145
  _$setProp(_el$,"left",0)
6114
6146
  _$setProp(_el$,"width","100%")
6115
6147
  _$setProp(_el$,"height","100%")
6116
- _$insert(_el$,_$createComponent(Show26,{get when(){return shortcuts.active()
6148
+ _$insert(_el$,_$createComponent(Show27,{get when(){return shortcuts.active()
6117
6149
  },get children(){return _$createComponent(Suspense5,{get children(){return _$createComponent(SidebarShortcutHint,{get api(){return props.api
6118
6150
  },get actions(){return shortcuts.actions
6119
6151
  }})
@@ -6128,11 +6160,11 @@ const unregisterCommands=props.api.keymap.registerLayer({commands:[...commands,.
6128
6160
  })=>({name:name.replace(PLUGIN_ID,()=>LEGACY_PLUGIN_ID),run,enabled
6129
6161
  }))]
6130
6162
  })
6131
- onCleanup22(unregisterCommands)
6163
+ onCleanup24(unregisterCommands)
6132
6164
  createEffect18(()=>{const unregister=props.api.keymap.registerLayer({bindings:[{key:props.preferences.focusKey(),cmd:FOCUS_COMMAND
6133
6165
  }]
6134
6166
  })
6135
- onCleanup22(unregister)
6167
+ onCleanup24(unregister)
6136
6168
  })
6137
6169
  return _$createElement("box")
6138
6170
  }
@@ -6212,13 +6244,13 @@ return 2 + Math.max(1,iconsWidth + (count&&pin.text?1:0) + Bun.stringWidth(pin.t
6212
6244
  function createToolbarModel(props){const icons=useIcons()
6213
6245
  const revision=createQuickActionRevision(props.api)
6214
6246
  const pins=()=>props.preferences.toolbarPins?.()??[]
6215
- const needsSkills=createMemo15(()=>pins().some((pin)=>pin.kind==="skill"))
6216
- const target=createMemo15(()=>props.skills.target())
6247
+ const needsSkills=createMemo16(()=>pins().some((pin)=>pin.kind==="skill"))
6248
+ const target=createMemo16(()=>props.skills.target())
6217
6249
  createEffect19(()=>{if(!needsSkills())
6218
6250
  return
6219
6251
  const current=target()
6220
6252
  const release=untrack7(()=>props.skills.activate(current))
6221
- onCleanup23(release)
6253
+ onCleanup25(release)
6222
6254
  untrack7(()=>{props.skills.refresh(current).catch(()=>{})
6223
6255
  })
6224
6256
  })
@@ -6249,14 +6281,14 @@ return{...model,width:toolbarPinWidth}}
6249
6281
 
6250
6282
  function ToolbarButton(props){const icons=useIcons()
6251
6283
  const foreground=()=>props.reason?props.api.theme.current.textMuted:item.foregroundColor()
6252
- const [hovered,setHovered]=createSignal36(false)
6284
+ const [hovered,setHovered]=createSignal39(false)
6253
6285
  const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>({section:0,row:props.row + 1,column:props.column
6254
6286
  }),activate:props.onRun
6255
6287
  },()=>props.reason?props.api.theme.current.textMuted:props.api.theme.current.accent,"control")
6256
6288
  const content=()=>[props.icons.map((icon)=>terminalIcon(icon,icons.style())).join(" "),props.text].filter(Boolean).join(" ")
6257
6289
  createEffect20(()=>props.onDetails(props.id,item.focused()||hovered()))
6258
- onCleanup24(()=>props.onDetails(props.id,false))
6259
- return _$createComponent(Show27,{get when(){return _$memo(()=>!!(props.width===3&&props.icons.length===1))()&&!props.text
6290
+ onCleanup26(()=>props.onDetails(props.id,false))
6291
+ return _$createComponent(Show28,{get when(){return _$memo(()=>!!(props.width===3&&props.icons.length===1))()&&!props.text
6260
6292
  },get fallback(){return _$createComponent(SelectionBox,{get id(){return props.id
6261
6293
  },ref(r$){var _ref$2=item.ref
6262
6294
  typeof _ref$2==="function"?_ref$2(r$):item.ref=r$
@@ -6296,17 +6328,17 @@ setHovered(false)
6296
6328
  }
6297
6329
  function SidebarToolbar(props){const model=createToolbarModel(props)
6298
6330
  const icons=useIcons()
6299
- const [width,setWidth]=createSignal37(3)
6300
- const [detail,setDetail]=createSignal37()
6301
- const keys=createMemo16(()=>model.pins().map((pin)=>toolbarPinKey(pin)))
6302
- const widths=createMemo16(()=>new Map(model.pins().map((pin)=>[toolbarPinKey(pin),model.width(pin)])))
6303
- const layout=createMemo16(()=>toolbarLayout(keys(),width(),props.preferences.toolbarOverflow?.()??"menu",widths()))
6304
- const rows=createMemo16(()=>layout().rows.map((_,index)=>index))
6305
- const byKey=createMemo16(()=>new Map(model.pins().map((pin)=>[toolbarPinKey(pin),pin])))
6331
+ const [width,setWidth]=createSignal40(3)
6332
+ const [detail,setDetail]=createSignal40()
6333
+ const keys=createMemo17(()=>model.pins().map((pin)=>toolbarPinKey(pin)))
6334
+ const widths=createMemo17(()=>new Map(model.pins().map((pin)=>[toolbarPinKey(pin),model.width(pin)])))
6335
+ const layout=createMemo17(()=>toolbarLayout(keys(),width(),props.preferences.toolbarOverflow?.()??"menu",widths()))
6336
+ const rows=createMemo17(()=>layout().rows.map((_,index)=>index))
6337
+ const byKey=createMemo17(()=>new Map(model.pins().map((pin)=>[toolbarPinKey(pin),pin])))
6306
6338
  const view=(key)=>{const pin=byKey().get(key)
6307
6339
  return pin&&model.view(pin)
6308
6340
  }
6309
- const details=createMemo16(()=>{if(detail()==="toolbar:more")
6341
+ const details=createMemo17(()=>{if(detail()==="toolbar:more")
6310
6342
  return "More pinned actions and Skills"
6311
6343
  const item=view(detail()??"")
6312
6344
  return item?[item.label,item.stateLabel,item.reason].filter(Boolean).join(" \xB7 "):undefined
@@ -6325,7 +6357,7 @@ dialogs.close()
6325
6357
  model.run(option.value)
6326
6358
  }}))
6327
6359
  }
6328
- return _$createComponent(Show28,{get when(){return keys().length>0
6360
+ return _$createComponent(Show29,{get when(){return keys().length>0
6329
6361
  },get children(){var _el$=_$createElement("box")
6330
6362
  _$setProp(_el$,"id","opencode-navigator.toolbar")
6331
6363
  _$setProp(_el$,"overflow","visible")
@@ -6348,7 +6380,7 @@ _$insert(_el$2,_$createComponent(For15,{get each(){return layout().rows[row]
6348
6380
  return _el$2
6349
6381
  })()
6350
6382
  }),null)
6351
- _$insert(_el$,_$createComponent(Show28,{get when(){return details()
6383
+ _$insert(_el$,_$createComponent(Show29,{get when(){return details()
6352
6384
  },children:(text)=>(()=>{var _el$3=_$createElement("text")
6353
6385
  _$setProp(_el$3,"position","absolute")
6354
6386
  _$setProp(_el$3,"left",0)
@@ -6379,18 +6411,18 @@ return _el$
6379
6411
 
6380
6412
 
6381
6413
 
6382
- function createSkillSectionModel(props,query){const target=createMemo17(()=>props.controller.target())
6383
- const recent=createMemo17(()=>new Map((props.preferences.recentSkills?.()??[]).map((location,index)=>[location,index])))
6384
- const groups=createMemo17(()=>props.preferences.skillGroups?.()??{})
6385
- const grouped=createMemo17(()=>Object.keys(groups()).length>0)
6386
- const list=createMemo17(()=>buildSkillGroupedView(props.controller.list(target()),props.preferences.favoriteSkills?.()??new Set,groups(),recent()))
6387
- const filtered=createMemo17(()=>list().filter((item)=>matchesFilter(query(),item.name,item.description,item.assignedGroup)))
6414
+ function createSkillSectionModel(props,query){const target=createMemo18(()=>props.controller.target())
6415
+ const recent=createMemo18(()=>new Map((props.preferences.recentSkills?.()??[]).map((location,index)=>[location,index])))
6416
+ const groups=createMemo18(()=>props.preferences.skillGroups?.()??{})
6417
+ const grouped=createMemo18(()=>Object.keys(groups()).length>0)
6418
+ const list=createMemo18(()=>buildSkillGroupedView(props.controller.list(target()),props.preferences.favoriteSkills?.()??new Set,groups(),recent()))
6419
+ const filtered=createMemo18(()=>list().filter((item)=>matchesFilter(query(),item.name,item.description,item.assignedGroup)))
6388
6420
  const visibility=createListVisibility({items:filtered,limit:()=>props.preferences.sectionItemLimit?.("skills")??0,resetKey:()=>JSON.stringify([target().key,query()])
6389
6421
  })
6390
- const state=createMemo17(()=>props.controller.state(target()))
6422
+ const state=createMemo18(()=>props.controller.state(target()))
6391
6423
  createEffect21(()=>{const current=target()
6392
6424
  const deactivate=untrack8(()=>props.controller.activate?.(current)??(()=>{}))
6393
- onCleanup25(deactivate)
6425
+ onCleanup27(deactivate)
6394
6426
  untrack8(()=>void props.controller.refresh(current).catch(()=>{}))
6395
6427
  })
6396
6428
  async function useSkill(item){try{const isInserted=await props.controller.use(target(),item.name)
@@ -6442,7 +6474,7 @@ _$insert(_el$,()=>props.item.name,null)
6442
6474
  _$effect((_$p)=>_$setProp(_el$,"fg",row.foregroundColor(),_$p))
6443
6475
  return _el$
6444
6476
  })()
6445
- },get trailing(){return _$createComponent(Show29,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
6477
+ },get trailing(){return _$createComponent(Show30,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
6446
6478
  },get position(){return props.position
6447
6479
  },get pin(){return{kind:"skill",name:props.item.name,location:props.item.location,icon:"book"
6448
6480
  }}})
@@ -6451,7 +6483,7 @@ return _el$
6451
6483
  }
6452
6484
  function SkillsSection(props){const dialogs=useDialogs(props.api)
6453
6485
  const toolbar=useToolbar()
6454
- const [query,setQuery]=createSignal38("")
6486
+ const [query,setQuery]=createSignal41("")
6455
6487
  const model=createSkillSectionModel(props,query)
6456
6488
  const navigationSection=()=>props.navigationSection??3
6457
6489
  function selectSkill(item){activateSkill({api:props.api,controller:props.controller,access:props.preferences,dialogs,skill:item,onConfigure:toolbar?(navigation)=>toolbar.configure({kind:"skill",name:item.name,location:item.location,icon:"book"
@@ -6475,7 +6507,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
6475
6507
  }},get query(){return query()
6476
6508
  },placeholder:"Filter skills...",onInput:setQuery
6477
6509
  }),null)
6478
- _$insert(_el$,_$createComponent(Show30,{get when(){return model.filtered().length>0
6510
+ _$insert(_el$,_$createComponent(Show31,{get when(){return model.filtered().length>0
6479
6511
  },get fallback(){return(()=>{var _el$2=_$createElement("text")
6480
6512
  _$insertNode(_el$2,_$createTextNode(`No matching skills`))
6481
6513
  _$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
@@ -6486,7 +6518,7 @@ return _el$2
6486
6518
  },get grouped(){return model.grouped
6487
6519
  },get density(){return props.preferences.rowDensity?.()??"compact"
6488
6520
  },get children(){return _$createComponent(For16,{get each(){return model.visibility.visible()
6489
- },children:(item,index)=>[_$createComponent(Show30,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
6521
+ },children:(item,index)=>[_$createComponent(Show31,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
6490
6522
  },get children(){var _el$4=_$createElement("text")
6491
6523
  _$setProp(_el$4,"height",1)
6492
6524
  _$setProp(_el$4,"wrapMode","none")
@@ -6528,16 +6560,16 @@ return _el$
6528
6560
 
6529
6561
 
6530
6562
 
6531
- function createSubagentSectionModel(props){const list=createMemo18(()=>props.controller.list(props.sessionID))
6532
- const recent=createMemo18(()=>props.controller.recent?.(props.sessionID)??[])
6533
- const rows=createMemo18(()=>buildSubagentView(list(),recent()))
6534
- const [query,setQuery]=createSignal39("")
6535
- const [mode,setMode]=createSignal39("all")
6536
- const counts=createMemo18(()=>countSubagentView(rows(),query()))
6537
- const tabs=createMemo18(()=>["all","active","recent",...counts().errors>0?["errors"]:[]])
6538
- const filtered=createMemo18(()=>filterSubagentView(rows(),mode(),query()))
6539
- const parentID=createMemo18(()=>props.api.state?.session?.get(props.sessionID)?.parentID)
6540
- const targetKey=createMemo18(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
6563
+ function createSubagentSectionModel(props){const list=createMemo19(()=>props.controller.list(props.sessionID))
6564
+ const recent=createMemo19(()=>props.controller.recent?.(props.sessionID)??[])
6565
+ const rows=createMemo19(()=>buildSubagentView(list(),recent()))
6566
+ const [query,setQuery]=createSignal42("")
6567
+ const [mode,setMode]=createSignal42("all")
6568
+ const counts=createMemo19(()=>countSubagentView(rows(),query()))
6569
+ const tabs=createMemo19(()=>["all","active","recent",...counts().errors>0?["errors"]:[]])
6570
+ const filtered=createMemo19(()=>filterSubagentView(rows(),mode(),query()))
6571
+ const parentID=createMemo19(()=>props.api.state?.session?.get(props.sessionID)?.parentID)
6572
+ const targetKey=createMemo19(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
6541
6573
  createEffect22(()=>{targetKey()
6542
6574
  setQuery("")
6543
6575
  setMode("all")
@@ -6547,15 +6579,15 @@ setMode("all")
6547
6579
  })
6548
6580
  const visibility=createListVisibility({items:filtered,limit:()=>props.preferences.sectionItemLimit?.("subagents")??0,resetKey:()=>JSON.stringify([targetKey(),query(),mode()])
6549
6581
  })
6550
- const clockKey=createMemo18(()=>props.preferences.expanded().subagents&&visibility.visible().some((item)=>item.status.type!=="idle")?targetKey():undefined)
6582
+ const clockKey=createMemo19(()=>props.preferences.expanded().subagents&&visibility.visible().some((item)=>item.status.type!=="idle")?targetKey():undefined)
6551
6583
  const now=createSubagentClock(clockKey)
6552
- const byId=createMemo18(()=>new Map(visibility.visible().map((item)=>[item.session.id,item])))
6553
- const ids=createMemo18(()=>visibility.visible().map((item)=>item.session.id))
6554
- const state=createMemo18(()=>props.controller.state(props.sessionID))
6584
+ const byId=createMemo19(()=>new Map(visibility.visible().map((item)=>[item.session.id,item])))
6585
+ const ids=createMemo19(()=>visibility.visible().map((item)=>item.session.id))
6586
+ const state=createMemo19(()=>props.controller.state(props.sessionID))
6555
6587
  createEffect22(()=>{const sessionID=props.sessionID
6556
6588
  targetKey()
6557
6589
  const deactivate=untrack9(()=>props.controller.activate?.(sessionID)??(()=>{}))
6558
- onCleanup26(deactivate)
6590
+ onCleanup28(deactivate)
6559
6591
  untrack9(()=>void props.controller.refresh(sessionID).catch(()=>{}))
6560
6592
  })
6561
6593
  return{list,recent,rows,query,setQuery,mode,setMode,counts,tabs,filtered,parentID,visibility,now,byId,ids,state
@@ -6613,7 +6645,7 @@ return()=>_c$()?`${props.item.run.startedBeforeObservation ? `${icons.icon("rece
6613
6645
  _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
6614
6646
  return _el$3
6615
6647
  })()
6616
- },get details(){return [_$createComponent(Show31,{get when(){return props.item.run?.errorMessage
6648
+ },get details(){return [_$createComponent(Show32,{get when(){return props.item.run?.errorMessage
6617
6649
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createTextNode(`: `)
6618
6650
  _$insertNode(_el$4,_el$5)
6619
6651
  _$setProp(_el$4,"wrapMode","word")
@@ -6621,12 +6653,12 @@ _$insert(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
6621
6653
  _$insert(_el$4,()=>props.item.run?.errorMessage,null)
6622
6654
  _$effect((_$p)=>_$setProp(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
6623
6655
  return _el$4
6624
- }}),_$createComponent(Show31,{get when(){return props.item.unavailable
6656
+ }}),_$createComponent(Show32,{get when(){return props.item.unavailable
6625
6657
  },get children(){var _el$6=_$createElement("text")
6626
6658
  _$insertNode(_el$6,_$createTextNode(`Worker status unavailable`))
6627
6659
  _$effect((_$p)=>_$setProp(_el$6,"fg",theme().warning,_$p))
6628
6660
  return _el$6
6629
- }}),_$createComponent(Show31,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
6661
+ }}),_$createComponent(Show32,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
6630
6662
  },children:(status)=>(()=>{var _el$0=_$createElement("text"),_el$1=_$createTextNode(`Retry #`),_el$10=_$createTextNode(` \xB7 `),_el$11=_$createTextNode(`s \xB7 `)
6631
6663
  _$insertNode(_el$0,_el$1)
6632
6664
  _$insertNode(_el$0,_el$10)
@@ -6638,7 +6670,7 @@ _$insert(_el$0,()=>status().message,null)
6638
6670
  _$effect((_$p)=>_$setProp(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
6639
6671
  return _el$0
6640
6672
  })()
6641
- }),_$createComponent(Show31,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
6673
+ }),_$createComponent(Show32,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
6642
6674
  },get children(){var _el$8=_$createElement("text")
6643
6675
  _$insertNode(_el$8,_$createTextNode(`Finished`))
6644
6676
  _$effect((_$p)=>_$setProp(_el$8,"fg",theme().textMuted,_$p))
@@ -6654,7 +6686,7 @@ function SubagentList(props){return _$createComponent(SidebarRowList,{get api(){
6654
6686
  const item=()=>props.itemById(id)??initial
6655
6687
  const startsGroup=()=>index()===0||props.visible[index()-1]?.group!==item().group
6656
6688
  return(()=>{var _el$=_$createElement("box")
6657
- _$insert(_el$,_$createComponent(Show32,{get when(){return startsGroup()
6689
+ _$insert(_el$,_$createComponent(Show33,{get when(){return startsGroup()
6658
6690
  },get children(){var _el$2=_$createElement("text"),_el$3=_$createElement("b")
6659
6691
  _$insertNode(_el$2,_el$3)
6660
6692
  _$insert(_el$3,()=>item().group)
@@ -6680,7 +6712,7 @@ return _$createComponent(Section,{get api(){return props.api
6680
6712
  },sectionId:`${PLUGIN_ID}.section.subagents`,get navigationSection(){return navigationSection()
6681
6713
  },title:"SUBAGENTS",section:"subagents",get summary(){return `${model.list().length} active \xB7 ${model.recent().length} recent`
6682
6714
  },get open(){return props.preferences.expanded().subagents
6683
- },onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show33,{get when(){return model.parentID()
6715
+ },onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show34,{get when(){return model.parentID()
6684
6716
  },children:(id)=>_$createComponent(McpBulkAction,{get api(){return props.api
6685
6717
  },get interaction(){return props.interaction
6686
6718
  },id:`${PLUGIN_ID}.subagents.parent`,get position(){return{section:navigationSection(),row:1,column:0
@@ -6714,7 +6746,7 @@ _$insert(_el$2,_$createComponent(For18,{get each(){return model.tabs()
6714
6746
  },onActivate:()=>model.setMode(value)
6715
6747
  })
6716
6748
  }))
6717
- _$insert(_el$,_$createComponent(Show33,{get when(){return model.filtered().length===0
6749
+ _$insert(_el$,_$createComponent(Show34,{get when(){return model.filtered().length===0
6718
6750
  },get children(){var _el$3=_$createElement("text")
6719
6751
  _$insertNode(_el$3,_$createTextNode(`No matching subagents`))
6720
6752
  _$effect((_$p)=>_$setProp(_el$3,"fg",props.api.theme.current.textMuted,_$p))
@@ -6775,7 +6807,7 @@ _$insertNode(_el$2,_el$3)
6775
6807
  _$setProp(_el$2,"wrapMode","word")
6776
6808
  _$insert(_el$2,()=>icons.icon("info"),_el$3)
6777
6809
  _$insert(_el$2,message,null)
6778
- _$insert(_el$,_$createComponent(Show34,{get when(){return _$memo(()=>!!props.setup)()&&(disabled()||failed())
6810
+ _$insert(_el$,_$createComponent(Show35,{get when(){return _$memo(()=>!!props.setup)()&&(disabled()||failed())
6779
6811
  },get children(){return _$createComponent(SectionTab,{get api(){return props.api
6780
6812
  },get interaction(){return props.interaction
6781
6813
  },id:"opencode-navigator.todo.setup",get position(){return{section:props.navigationSection,row:2,column:0
@@ -6838,7 +6870,7 @@ _$insert(_el$2,()=>icons.icon(done()?"done":active()?"busy":cancelled()?"close":
6838
6870
  _$setProp(_el$3,"flexGrow",1)
6839
6871
  _$setProp(_el$3,"wrapMode","word")
6840
6872
  _$insert(_el$3,()=>props.item.content)
6841
- _$insert(_el$,_$createComponent(Show35,{get when(){return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
6873
+ _$insert(_el$,_$createComponent(Show36,{get when(){return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
6842
6874
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b"),_el$6=_$createTextNode(` `)
6843
6875
  _$insertNode(_el$4,_el$5)
6844
6876
  _$setProp(_el$4,"width",2)
@@ -6848,7 +6880,7 @@ _$insert(_el$5,priorityLabel,null)
6848
6880
  _$effect((_$p)=>_$setProp(_el$4,"fg",priorityColor(),_$p))
6849
6881
  return _el$4
6850
6882
  }}),null)
6851
- _$effect((_p$)=>{var _v$=active()?theme().warning:done()?theme().success:cancelled()?theme().error:theme().textMuted,_v$2=active()?theme().primary:theme().textMuted,_v$3=done()?TextAttributes15.STRIKETHROUGH:active()?TextAttributes15.BOLD:undefined
6883
+ _$effect((_p$)=>{var _v$=active()?theme().warning:done()?theme().success:cancelled()?theme().error:theme().textMuted,_v$2=active()?theme().primary:theme().textMuted,_v$3=done()?TextAttributes16.STRIKETHROUGH:active()?TextAttributes16.BOLD:undefined
6852
6884
  _v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"fg",_v$,_p$.e))
6853
6885
  _v$2!==_p$.t&&(_p$.t=_$setProp(_el$3,"fg",_v$2,_p$.t))
6854
6886
  _v$3!==_p$.a&&(_p$.a=_$setProp(_el$3,"attributes",_v$3,_p$.a))
@@ -6874,7 +6906,7 @@ _$insert(_el$2,_$createComponent(For19,{each:["all","active","finished"],childre
6874
6906
  },onActivate:()=>props.setMode(value)
6875
6907
  })
6876
6908
  }))
6877
- _$insert(_el$,_$createComponent(Show36,{get when(){return props.view.rows.length>0
6909
+ _$insert(_el$,_$createComponent(Show37,{get when(){return props.view.rows.length>0
6878
6910
  },get fallback(){return _$createComponent(EmptyTodo,{get api(){return props.api
6879
6911
  },get mode(){return props.mode
6880
6912
  }})
@@ -6884,7 +6916,7 @@ _$insert(_el$,_$createComponent(Show36,{get when(){return props.view.rows.length
6884
6916
  },get children(){return _$createComponent(For19,{get each(){return props.visibility.visible()
6885
6917
  },children:(row,index)=>{const startsGroup=()=>index()===0||props.visibility.visible()[index()-1].group!==row.group
6886
6918
  return(()=>{var _el$3=_$createElement("box")
6887
- _$insert(_el$3,_$createComponent(Show36,{get when(){return startsGroup()
6919
+ _$insert(_el$3,_$createComponent(Show37,{get when(){return startsGroup()
6888
6920
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
6889
6921
  _$insertNode(_el$4,_el$5)
6890
6922
  _$insert(_el$5,()=>row.group)
@@ -6921,7 +6953,7 @@ return _el$6
6921
6953
 
6922
6954
 
6923
6955
  function TodoGuidanceControl(props){const state=()=>props.controller.guidance(props.sessionID)
6924
- return _$createComponent(Show37,{get when(){return state().available
6956
+ return _$createComponent(Show38,{get when(){return state().available
6925
6957
  },get children(){var _el$=_$createElement("box")
6926
6958
  _$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
6927
6959
  },get interaction(){return props.interaction
@@ -6931,7 +6963,7 @@ _$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
6931
6963
  },get disabled(){return state().saving
6932
6964
  },onActivate:()=>void props.controller.setGuidance(props.sessionID,!state().enabled)
6933
6965
  }),null)
6934
- _$insert(_el$,_$createComponent(Show37,{get when(){return state().error
6966
+ _$insert(_el$,_$createComponent(Show38,{get when(){return state().error
6935
6967
  },children:(message)=>(()=>{var _el$2=_$createElement("text")
6936
6968
  _$setProp(_el$2,"wrapMode","word")
6937
6969
  _$insert(_el$2,message)
@@ -6942,28 +6974,28 @@ return _el$2
6942
6974
  return _el$
6943
6975
  }})
6944
6976
  }
6945
- function TodoSection(props){const list=createMemo19(()=>props.controller.list(props.sessionID))
6977
+ function TodoSection(props){const list=createMemo20(()=>props.controller.list(props.sessionID))
6946
6978
  const icons=useIcons()
6947
6979
  const unavailable=()=>hostCapabilityUnavailable(props.api,"todo")
6948
6980
  const managed=()=>("guidance" in props.controller)?props.controller:undefined
6949
6981
  const native=()=>("source" in props.controller)&&props.controller.source==="native"
6950
6982
  const setup=()=>("setup" in props.controller)?props.controller.setup:undefined
6951
6983
  const setupState=()=>setup()?.state(props.sessionID)
6952
- const [mode,setMode]=createSignal40("all")
6953
- const targetKey=createMemo19(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
6984
+ const [mode,setMode]=createSignal43("all")
6985
+ const targetKey=createMemo20(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
6954
6986
  createEffect23(()=>{targetKey()
6955
6987
  setMode("all")
6956
6988
  })
6957
- const view=createMemo19(()=>buildTodoView(list(),mode()))
6989
+ const view=createMemo20(()=>buildTodoView(list(),mode()))
6958
6990
  const visibility=createListVisibility({items:()=>view().rows,limit:()=>props.preferences.sectionItemLimit?.("todo")??0,resetKey:()=>JSON.stringify([targetKey(),mode()])
6959
6991
  })
6960
- const state=createMemo19(()=>props.controller.state(props.sessionID))
6992
+ const state=createMemo20(()=>props.controller.state(props.sessionID))
6961
6993
  createEffect23(()=>{const sessionID=props.sessionID
6962
6994
  targetKey()
6963
6995
  if(unavailable())
6964
6996
  return
6965
6997
  const deactivate=untrack10(()=>props.controller.activate?.(sessionID)??(()=>{}))
6966
- onCleanup27(deactivate)
6998
+ onCleanup29(deactivate)
6967
6999
  untrack10(()=>void props.controller.refresh(sessionID).catch(()=>{}))
6968
7000
  untrack10(()=>void setup()?.refresh(sessionID).catch(()=>{}))
6969
7001
  })
@@ -6976,10 +7008,10 @@ return _$createComponent(Section,{get api(){return props.api
6976
7008
  setup()?.refresh(props.sessionID).catch(()=>{})
6977
7009
  }}:undefined
6978
7010
  },get open(){return props.preferences.expanded().todo
6979
- },onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show38,{get when(){return unavailable()
7011
+ },onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show39,{get when(){return unavailable()
6980
7012
  },get fallback(){return(()=>{var _el$=_$createElement("box")
6981
7013
  _$setProp(_el$,"gap",1)
6982
- _$insert(_el$,_$createComponent(Show38,{get when(){return native()
7014
+ _$insert(_el$,_$createComponent(Show39,{get when(){return native()
6983
7015
  },get children(){return _$createComponent(NativeTodoNotice,{get api(){return props.api
6984
7016
  },get setup(){return setup()
6985
7017
  },get sessionID(){return props.sessionID
@@ -6987,7 +7019,7 @@ _$insert(_el$,_$createComponent(Show38,{get when(){return native()
6987
7019
  },get navigationSection(){return navigationSection()
6988
7020
  }})
6989
7021
  }}),null)
6990
- _$insert(_el$,_$createComponent(Show38,{get when(){return managed()?.guidance(props.sessionID).available
7022
+ _$insert(_el$,_$createComponent(Show39,{get when(){return managed()?.guidance(props.sessionID).available
6991
7023
  },get children(){return _$createComponent(TodoGuidanceControl,{get api(){return props.api
6992
7024
  },get controller(){return managed()
6993
7025
  },get sessionID(){return props.sessionID
@@ -6995,7 +7027,7 @@ _$insert(_el$,_$createComponent(Show38,{get when(){return managed()?.guidance(pr
6995
7027
  },get navigationSection(){return navigationSection()
6996
7028
  }})
6997
7029
  }}),null)
6998
- _$insert(_el$,_$createComponent(Show38,{get when(){return managed()?.missing(props.sessionID)
7030
+ _$insert(_el$,_$createComponent(Show39,{get when(){return managed()?.missing(props.sessionID)
6999
7031
  },get fallback(){return _$createComponent(SectionRequestBody,{get api(){return props.api
7000
7032
  },get interaction(){return props.interaction
7001
7033
  },id:`${PLUGIN_ID}.retry.todo`,get position(){return{section:navigationSection(),row:1,column:0
@@ -7032,8 +7064,8 @@ return _el$4
7032
7064
  }})
7033
7065
  }
7034
7066
  function SidebarContent(props){const sections=props.preferences.sections
7035
- const visibleSections=createMemo20(()=>props.preferences.sectionOrder().filter((section)=>sections()[section]&&supportsSidebarSection(props.api,section)))
7036
- onCleanup28(()=>props.interaction.setContentRoot(undefined))
7067
+ const visibleSections=createMemo21(()=>props.preferences.sectionOrder().filter((section)=>sections()[section]&&supportsSidebarSection(props.api,section)))
7068
+ onCleanup30(()=>props.interaction.setContentRoot(undefined))
7037
7069
  return _$createComponent(ToolbarProvider,{get api(){return props.api
7038
7070
  },get preferences(){return props.preferences
7039
7071
  },get skills(){return props.skills
@@ -7084,7 +7116,7 @@ return _el$
7084
7116
  }
7085
7117
 
7086
7118
 
7087
- function McpPersistence(props){const persist=createMemo21(()=>props.controller.persist())
7119
+ function McpPersistence(props){const persist=createMemo22(()=>props.controller.persist())
7088
7120
  createEffect24(()=>{if(!props.api.state.ready)
7089
7121
  return
7090
7122
  persist()
@@ -7093,7 +7125,7 @@ const params="params" in route?route.params:undefined
7093
7125
  if(typeof params?.sessionID!=="string")
7094
7126
  return
7095
7127
  const current=props.controller.target()
7096
- onCleanup29(()=>props.controller.deactivate(current))
7128
+ onCleanup31(()=>props.controller.deactivate(current))
7097
7129
  untrack11(()=>void props.controller.activate(current).catch(()=>{}))
7098
7130
  })
7099
7131
  return _$createElement("box")
@@ -7124,7 +7156,7 @@ return _$createElement("box")
7124
7156
 
7125
7157
  function SidebarTitle(props){const icons=useIcons()
7126
7158
  const theme=()=>props.api.theme.current
7127
- const created=createMemo22(()=>{const value=props.api.state.session.get(props.sessionID)?.time?.created
7159
+ const created=createMemo23(()=>{const value=props.api.state.session.get(props.sessionID)?.time?.created
7128
7160
  return value===undefined?undefined:`Created ${new Date(value).toLocaleDateString("en", {
7129
7161
  dateStyle: "medium"
7130
7162
  })}`
@@ -7133,7 +7165,7 @@ const settingsId=`${PLUGIN_ID}.settings`
7133
7165
  const settings=useSidebarItem(props.api,props.interaction,{id:settingsId,position:{section:0,row:0,column:0
7134
7166
  },activate:()=>openSettings(props.api,props.preferences,undefined,props.mcp,props.skills)
7135
7167
  },()=>theme().textMuted,"control")
7136
- onCleanup30(()=>props.interaction.setTitleRoot(undefined))
7168
+ onCleanup32(()=>props.interaction.setTitleRoot(undefined))
7137
7169
  return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("box"),_el$3=_$createElement("box")
7138
7170
  _$insertNode(_el$,_el$2)
7139
7171
  _$use((node)=>props.interaction.setTitleRoot(node),_el$)
@@ -7144,7 +7176,7 @@ _$setProp(_el$2,"flexDirection","row")
7144
7176
  _$setProp(_el$2,"justifyContent","space-between")
7145
7177
  _$setProp(_el$2,"gap",1)
7146
7178
  _$setProp(_el$3,"flexGrow",1)
7147
- _$insert(_el$3,_$createComponent(Show39,{get when(){return props.preferences.showSessionTitle()
7179
+ _$insert(_el$3,_$createComponent(Show40,{get when(){return props.preferences.showSessionTitle()
7148
7180
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
7149
7181
  _$insertNode(_el$4,_el$5)
7150
7182
  _$setProp(_el$4,"wrapMode","word")
@@ -7152,7 +7184,7 @@ _$insert(_el$5,()=>props.title)
7152
7184
  _$effect((_$p)=>_$setProp(_el$4,"fg",theme().text,_$p))
7153
7185
  return _el$4
7154
7186
  }}),null)
7155
- _$insert(_el$3,_$createComponent(Show39,{get when(){return _$memo(()=>!!props.preferences.showSessionDate())()&&created()
7187
+ _$insert(_el$3,_$createComponent(Show40,{get when(){return _$memo(()=>!!props.preferences.showSessionDate())()&&created()
7156
7188
  },children:(value)=>(()=>{var _el$6=_$createElement("text")
7157
7189
  _$insert(_el$6,value)
7158
7190
  _$effect((_$p)=>_$setProp(_el$6,"fg",theme().textMuted,_$p))
@@ -7196,7 +7228,7 @@ return mergeConfiguredDefaults(configuredDefaultsFromPluginOptions(options),user
7196
7228
  function LimitsPersistence(props){createLimitsRefresh(props)
7197
7229
  return _$createElement("box")
7198
7230
  }
7199
- function bindNavigatorAbout(api,status,updates,notes){const dispose=registerNavigatorAboutServices(api,{navigatorVersion:"0.27.3",openCodeVersion:api.app.version,checkState:()=>status.navigatorCheckState?.()??{status:"idle"},checking:()=>status.navigatorCheckState?.().status==="checking",updating:updates.navigatorUpdating,installed:updates.navigatorInstalled,check:()=>status.refreshNavigator?.()??Promise.resolve("unavailable"),update(dialogs){const target=status.navigatorUpdate()
7231
+ function bindNavigatorAbout(api,status,updates,notes){const dispose=registerNavigatorAboutServices(api,{navigatorVersion:"0.27.5",openCodeVersion:api.app.version,checkState:()=>status.navigatorCheckState?.()??{status:"idle"},checking:()=>status.navigatorCheckState?.().status==="checking",updating:updates.navigatorUpdating,installed:updates.navigatorInstalled,installation:updates,check:()=>status.refreshNavigator?.()??Promise.resolve("unavailable"),update(dialogs){const target=status.navigatorUpdate()
7200
7232
  if(target)
7201
7233
  updates.navigator(target,dialogs)
7202
7234
  },changelog:async ()=>notes.parseChangelog(await notes.readBundledChangelog())
@@ -7332,7 +7364,7 @@ context.keymap.dispatch(command.id)
7332
7364
  context.renderer.keyInput.on("keypress",onKeypress)
7333
7365
  const keymap={registerLayer(layer){const id=++sequence
7334
7366
  const owner=getOwner()
7335
- const [active,setActive]=createSignal41(true)
7367
+ const [active,setActive]=createSignal44(true)
7336
7368
  const install=()=>{context.keymap.layer(()=>({mode:typeof layer.mode==="string"?layer.mode:"base",priority:layer.priority,enabled:()=>active()&&enabled(layer.enabled),target:layer.target?()=>layer.target:undefined,commands:v2LayerCommands(id,layer,()=>true,run,context.keymap.dispatch)
7337
7369
  }))
7338
7370
  }
@@ -7377,7 +7409,7 @@ cleanups.clear()
7377
7409
  context.renderer.keyInput.off("keypress",onKeypress)
7378
7410
  }}}
7379
7411
 
7380
- function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=createSignal42({})
7412
+ function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=createSignal45({})
7381
7413
  const projections=new WeakMap
7382
7414
  function normalize(info){const directory=info.location.directory
7383
7415
  const workspaceID=context.location?.directory===directory?context.location.workspaceID:undefined
@@ -7443,34 +7475,42 @@ return context.data.session.message.list(route.sessionID).some((message)=>(!reve
7443
7475
 
7444
7476
 
7445
7477
  function createV2UI(context,api){let dialogOpen=false
7478
+ let dialogGeneration=0
7479
+ let handingOff=false
7446
7480
  function DialogPrompt(props){return _$createComponent(SingleLinePrompt,_$mergeProps({get api(){return api()
7447
7481
  }},props))
7448
7482
  }
7449
- function DialogConfirm(props){let active=true
7450
- onCleanup31(()=>{active=false
7451
- })
7452
- async function confirm(){const confirmed=await context.ui.dialog.confirm({title:props.title,message:props.message
7483
+ function DialogConfirm(props){const generation=dialogGeneration
7484
+ async function confirm(){handingOff=true
7485
+ try{return context.ui.dialog.confirm({title:props.title,message:props.message
7453
7486
  })
7454
- if(!active)
7487
+ } finally{handingOff=false
7488
+ }}
7489
+ onMount7(()=>{confirm().catch(()=>false).then((confirmed)=>{if(generation!==dialogGeneration||api().lifecycle.signal.aborted)
7490
+ return
7491
+ dialogOpen=false
7492
+ if(context.keymap.mode.current()==="modal")
7455
7493
  return
7456
7494
  if(confirmed)
7457
7495
  props.onConfirm?.()
7458
7496
  else
7459
7497
  props.onCancel?.()
7460
- }
7461
- onMount7(()=>{confirm().catch(()=>{if(active)
7462
- props.onCancel?.()
7463
7498
  })
7464
7499
  })
7465
7500
  return _$createElement("box")
7466
7501
  }
7467
- return{DialogConfirm,DialogPrompt,toast:(input)=>context.ui.toast.show(input),dialog:{replace(render,onClose){dialogOpen=true
7468
- context.ui.dialog.show(render,()=>{dialogOpen=false
7502
+ return{DialogConfirm,DialogPrompt,toast:(input)=>context.ui.toast.show(input),dialog:{replace(render,onClose){const generation=++dialogGeneration
7503
+ dialogOpen=true
7504
+ context.ui.dialog.show(render,()=>{if(handingOff||generation!==dialogGeneration)
7505
+ return
7506
+ dialogGeneration++
7507
+ dialogOpen=false
7469
7508
  onClose?.()
7470
7509
  })
7471
7510
  },setSize(size){context.ui.dialog.set({size
7472
7511
  })
7473
- },clear(){dialogOpen=false
7512
+ },clear(){dialogGeneration++
7513
+ dialogOpen=false
7474
7514
  context.ui.dialog.clear()
7475
7515
  },get open(){return dialogOpen
7476
7516
  }}}}
@@ -7661,7 +7701,7 @@ const limitsPath=import.meta.url.includes("/dist/tui.js")?"./provider-limits.js"
7661
7701
  const limitsModule=await import(limitsPath)
7662
7702
  const LimitsSection=limitsModule.ProviderLimitsSection
7663
7703
  const{controller:limits,codex,accountSource,selectModel,modelSelection
7664
- }=limitsModule.createProviderQuotaIntegration(api,preferences,"0.27.3",hostContext)
7704
+ }=limitsModule.createProviderQuotaIntegration(api,preferences,"0.27.5",hostContext)
7665
7705
  const mcp=createMcpController(api,preferences.persistMcp,preferences,nativeSources?.mcp)
7666
7706
  const interaction=createSidebarInteraction(api,()=>openKeyboardHelp(api,preferences.lspIconStyle,preferences.cornerFont,sidebarShortcutActions(api)))
7667
7707
  const startup=createStartupSessionController(api,preferences)
@@ -7690,7 +7730,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
7690
7730
  },interaction,skills,subagents,mcp
7691
7731
  }),_$createComponent(FirstRunWizardPersistence,{api,preferences
7692
7732
  }),_$createComponent(StartupSessionBinding,{api,controller:startup
7693
- }),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.27.3"
7733
+ }),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.27.5"
7694
7734
  }),_$createComponent(McpPersistence,{api,controller:mcp
7695
7735
  })]
7696
7736
  }})
@@ -7724,13 +7764,13 @@ return result.data?.type==="text"?result.data.content:undefined
7724
7764
  const updateServices=await loadNavigatorUpdates()
7725
7765
  const{createVersionStatus,createVersionUpdateActions,createOpenCodeV1VersionUpdater
7726
7766
  }=updateServices
7727
- const versionStatus=createVersionStatus(api,"0.27.3")
7728
- const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.3"))
7767
+ const versionStatus=createVersionStatus(api,"0.27.5")
7768
+ const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.5"))
7729
7769
  bindNavigatorAbout(api,versionStatus,versionUpdates,updateServices)
7730
7770
  api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
7731
7771
  },get multilineCorners(){return preferences.cornerFont
7732
7772
  },get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
7733
- },navigatorVersion:"0.27.3",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7773
+ },navigatorVersion:"0.27.5",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7734
7774
  },get onNavigatorUpdate(){return versionUpdates.navigator
7735
7775
  },get navigatorProgress(){return versionUpdates.navigatorProgress()
7736
7776
  },get openCodeProgress(){return versionUpdates.openCodeProgress()
@@ -7749,8 +7789,8 @@ return new TextDecoder().decode(await context.client.file.read({location:context
7749
7789
  const updateServices=await loadNavigatorUpdates()
7750
7790
  const{createVersionStatus,createVersionUpdateActions,createOpenCodeV2VersionUpdater
7751
7791
  }=updateServices
7752
- const versionStatus=createVersionStatus(adapter.api,"0.27.3")
7753
- const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.3"))
7792
+ const versionStatus=createVersionStatus(adapter.api,"0.27.5")
7793
+ const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.5"))
7754
7794
  bindNavigatorAbout(adapter.api,versionStatus,versionUpdates,updateServices)
7755
7795
  const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
7756
7796
  },get multilineCorners(){return preferences.cornerFont
@@ -7758,7 +7798,7 @@ const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$create
7758
7798
  _$setProp(_el$,"flexDirection","row")
7759
7799
  _$setProp(_el$,"justifyContent","space-between")
7760
7800
  _$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
7761
- },navigatorVersion:"0.27.3",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7801
+ },navigatorVersion:"0.27.5",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7762
7802
  },get onNavigatorUpdate(){return versionUpdates.navigator
7763
7803
  },get navigatorProgress(){return versionUpdates.navigatorProgress()
7764
7804
  },get openCodeProgress(){return versionUpdates.openCodeProgress()