opencode-navigator 0.27.4 → 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/CHANGELOG.md +9 -0
- package/HOST_API.md +7 -0
- package/PROVIDERS.md +4 -0
- package/README.md +58 -2
- package/dist/{chunk-fd7394y1.js → chunk-4rh7rb74.js} +15 -1
- package/dist/chunk-sm9ej5ac.js +6 -0
- package/dist/chunk-tq2z58v5.js +23 -0
- package/dist/chunk-v6qckzat.js +838 -0
- package/dist/gui-experimental.cjs +9468 -8995
- package/dist/native-todo-setup.js +5 -830
- package/dist/navigator-updates.js +671 -321
- package/dist/provider-limits.js +441 -287
- package/dist/sidebar-settings.js +14 -17
- package/dist/tui.js +161 -130
- package/dist/upgrade-notes.js +4 -2
- package/package.json +5 -1
- package/dist/chunk-rrvwmnyh.js +0 -22
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,
|
|
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,
|
|
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,
|
|
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
|
-
})(),(()=>
|
|
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,24 +1005,24 @@ _$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$
|
|
1004
|
-
_$setProp(_el$
|
|
1005
|
-
_$insert(_el$
|
|
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$
|
|
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$
|
|
1011
|
-
_v$6!==_p$.t&&(_p$.t=_$setProp(_el$
|
|
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
|
+
})(),(()=>{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
|
|
1021
1026
|
})(),_$memo(()=>props.renderDetails?.(option))]
|
|
1022
1027
|
}})
|
|
1023
1028
|
}))
|
|
@@ -5805,7 +5810,25 @@ 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
|
+
|
|
5809
5832
|
|
|
5810
5833
|
|
|
5811
5834
|
|
|
@@ -5878,9 +5901,9 @@ var scheduleInterval=(callback,milliseconds)=>{const timer=setInterval(callback,
|
|
|
5878
5901
|
return()=>clearInterval(timer)
|
|
5879
5902
|
}
|
|
5880
5903
|
function createLimitsRefresh(options,schedule=scheduleInterval){let disposed=false
|
|
5881
|
-
const selectedKey=
|
|
5882
|
-
const targetKey=
|
|
5883
|
-
const interval=
|
|
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)
|
|
5884
5907
|
createEffect17(on2(selectedKey,()=>{const model=options.selectedModel?.()
|
|
5885
5908
|
if(model&&options.accountSource)
|
|
5886
5909
|
options.accountSource.refresh(model).catch(()=>{})
|
|
@@ -5898,9 +5921,9 @@ await options.accountSource.refresh(model)
|
|
|
5898
5921
|
if(!disposed&&target===targetKey())
|
|
5899
5922
|
await options.controller.refresh()
|
|
5900
5923
|
}
|
|
5901
|
-
createEffect17(on2(interval,(milliseconds)=>{
|
|
5924
|
+
createEffect17(on2(interval,(milliseconds)=>{onCleanup23(schedule(()=>void refresh().catch(()=>{}),milliseconds))
|
|
5902
5925
|
}))
|
|
5903
|
-
|
|
5926
|
+
onCleanup23(()=>{disposed=true
|
|
5904
5927
|
})
|
|
5905
5928
|
}
|
|
5906
5929
|
|
|
@@ -5956,12 +5979,12 @@ function QuickActionRow(props){const{api,interaction
|
|
|
5956
5979
|
const icons=useIcons()
|
|
5957
5980
|
const toolbar=useToolbar()
|
|
5958
5981
|
const theme=()=>api.theme.current
|
|
5959
|
-
const [width,setWidth]=
|
|
5960
|
-
const shortcut=
|
|
5982
|
+
const [width,setWidth]=createSignal38(0)
|
|
5983
|
+
const shortcut=createMemo14(()=>{const bindings=api.keymap.getCommandBindings({visibility:"registered",commands:[props.action.command]
|
|
5961
5984
|
})
|
|
5962
5985
|
return api.keys.formatBindings(bindings.get(props.action.command))
|
|
5963
5986
|
})
|
|
5964
|
-
const visibleShortcut=
|
|
5987
|
+
const visibleShortcut=createMemo14(()=>{const value=shortcut()
|
|
5965
5988
|
return value&&width()>=Bun.stringWidth(props.action.label) + Bun.stringWidth(value) + (toolbar?11:8)?value:undefined
|
|
5966
5989
|
})
|
|
5967
5990
|
function run(){if(props.action.command==="session.new"&&props.onNewSession?.())
|
|
@@ -6000,7 +6023,7 @@ _$insert(_el$2,()=>props.action.label)
|
|
|
6000
6023
|
_$effect((_$p)=>_$setProp(_el$2,"fg",row.foregroundColor(),_$p))
|
|
6001
6024
|
return _el$2
|
|
6002
6025
|
})()
|
|
6003
|
-
},get metadata(){return _$createComponent(
|
|
6026
|
+
},get metadata(){return _$createComponent(Show25,{get when(){return visibleShortcut()
|
|
6004
6027
|
},children:(value)=>(()=>{var _el$3=_$createElement("text")
|
|
6005
6028
|
_$setProp(_el$3,"flexShrink",0)
|
|
6006
6029
|
_$setProp(_el$3,"wrapMode","none")
|
|
@@ -6009,12 +6032,12 @@ _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme()
|
|
|
6009
6032
|
return _el$3
|
|
6010
6033
|
})()
|
|
6011
6034
|
})
|
|
6012
|
-
},get trailing(){return _$createComponent(
|
|
6035
|
+
},get trailing(){return _$createComponent(Show25,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
|
|
6013
6036
|
},get position(){return props.position
|
|
6014
6037
|
},get pin(){return{kind:"action",id:props.action.command,icon:"bolt"
|
|
6015
6038
|
}}})
|
|
6016
6039
|
}})
|
|
6017
|
-
},get details(){return _$createComponent(
|
|
6040
|
+
},get details(){return _$createComponent(Show25,{get when(){return props.disabled
|
|
6018
6041
|
},children:(reason)=>(()=>{var _el$4=_$createElement("text")
|
|
6019
6042
|
_$setProp(_el$4,"wrapMode","word")
|
|
6020
6043
|
_$insert(_el$4,reason)
|
|
@@ -6025,7 +6048,7 @@ return _el$4
|
|
|
6025
6048
|
}})
|
|
6026
6049
|
}
|
|
6027
6050
|
function QuickActionsSection(props){const commandRevision=createQuickActionRevision(props.api)
|
|
6028
|
-
const actions=
|
|
6051
|
+
const actions=createMemo15(()=>{commandRevision()
|
|
6029
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)
|
|
6030
6053
|
return action&&props.preferences.quickActionVisible?.(id)!==false?[{...action,label:quickActionLabel(props.api,action),disabled:quickActionDisabledReason(props.api,action)
|
|
6031
6054
|
}]:[]
|
|
@@ -6042,7 +6065,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6042
6065
|
},onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children(){return [_$createComponent(SidebarRowList,{get api(){return props.api
|
|
6043
6066
|
},get interaction(){return props.interaction
|
|
6044
6067
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6045
|
-
},get children(){return [_$createComponent(
|
|
6068
|
+
},get children(){return [_$createComponent(Show26,{get when(){return actions().length===0
|
|
6046
6069
|
},get children(){var _el$=_$createElement("text")
|
|
6047
6070
|
_$insertNode(_el$,_$createTextNode(`No quick actions selected`))
|
|
6048
6071
|
_$effect((_$p)=>_$setProp(_el$,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6115,14 +6138,14 @@ untrack6(()=>shortcuts.bind(key))
|
|
|
6115
6138
|
createEffect18(()=>{if(shortcuts.active()&&(props.api.route.current.name!=="session"||props.api.ui.dialog.open||props.api.mode.current()==="modal"))
|
|
6116
6139
|
untrack6(shortcuts.cancel)
|
|
6117
6140
|
})
|
|
6118
|
-
|
|
6141
|
+
onCleanup24(shortcuts.dispose)
|
|
6119
6142
|
return(()=>{var _el$=_$createElement("box")
|
|
6120
6143
|
_$setProp(_el$,"position","absolute")
|
|
6121
6144
|
_$setProp(_el$,"top",0)
|
|
6122
6145
|
_$setProp(_el$,"left",0)
|
|
6123
6146
|
_$setProp(_el$,"width","100%")
|
|
6124
6147
|
_$setProp(_el$,"height","100%")
|
|
6125
|
-
_$insert(_el$,_$createComponent(
|
|
6148
|
+
_$insert(_el$,_$createComponent(Show27,{get when(){return shortcuts.active()
|
|
6126
6149
|
},get children(){return _$createComponent(Suspense5,{get children(){return _$createComponent(SidebarShortcutHint,{get api(){return props.api
|
|
6127
6150
|
},get actions(){return shortcuts.actions
|
|
6128
6151
|
}})
|
|
@@ -6137,11 +6160,11 @@ const unregisterCommands=props.api.keymap.registerLayer({commands:[...commands,.
|
|
|
6137
6160
|
})=>({name:name.replace(PLUGIN_ID,()=>LEGACY_PLUGIN_ID),run,enabled
|
|
6138
6161
|
}))]
|
|
6139
6162
|
})
|
|
6140
|
-
|
|
6163
|
+
onCleanup24(unregisterCommands)
|
|
6141
6164
|
createEffect18(()=>{const unregister=props.api.keymap.registerLayer({bindings:[{key:props.preferences.focusKey(),cmd:FOCUS_COMMAND
|
|
6142
6165
|
}]
|
|
6143
6166
|
})
|
|
6144
|
-
|
|
6167
|
+
onCleanup24(unregister)
|
|
6145
6168
|
})
|
|
6146
6169
|
return _$createElement("box")
|
|
6147
6170
|
}
|
|
@@ -6221,13 +6244,13 @@ return 2 + Math.max(1,iconsWidth + (count&&pin.text?1:0) + Bun.stringWidth(pin.t
|
|
|
6221
6244
|
function createToolbarModel(props){const icons=useIcons()
|
|
6222
6245
|
const revision=createQuickActionRevision(props.api)
|
|
6223
6246
|
const pins=()=>props.preferences.toolbarPins?.()??[]
|
|
6224
|
-
const needsSkills=
|
|
6225
|
-
const target=
|
|
6247
|
+
const needsSkills=createMemo16(()=>pins().some((pin)=>pin.kind==="skill"))
|
|
6248
|
+
const target=createMemo16(()=>props.skills.target())
|
|
6226
6249
|
createEffect19(()=>{if(!needsSkills())
|
|
6227
6250
|
return
|
|
6228
6251
|
const current=target()
|
|
6229
6252
|
const release=untrack7(()=>props.skills.activate(current))
|
|
6230
|
-
|
|
6253
|
+
onCleanup25(release)
|
|
6231
6254
|
untrack7(()=>{props.skills.refresh(current).catch(()=>{})
|
|
6232
6255
|
})
|
|
6233
6256
|
})
|
|
@@ -6258,14 +6281,14 @@ return{...model,width:toolbarPinWidth}}
|
|
|
6258
6281
|
|
|
6259
6282
|
function ToolbarButton(props){const icons=useIcons()
|
|
6260
6283
|
const foreground=()=>props.reason?props.api.theme.current.textMuted:item.foregroundColor()
|
|
6261
|
-
const [hovered,setHovered]=
|
|
6284
|
+
const [hovered,setHovered]=createSignal39(false)
|
|
6262
6285
|
const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>({section:0,row:props.row + 1,column:props.column
|
|
6263
6286
|
}),activate:props.onRun
|
|
6264
6287
|
},()=>props.reason?props.api.theme.current.textMuted:props.api.theme.current.accent,"control")
|
|
6265
6288
|
const content=()=>[props.icons.map((icon)=>terminalIcon(icon,icons.style())).join(" "),props.text].filter(Boolean).join(" ")
|
|
6266
6289
|
createEffect20(()=>props.onDetails(props.id,item.focused()||hovered()))
|
|
6267
|
-
|
|
6268
|
-
return _$createComponent(
|
|
6290
|
+
onCleanup26(()=>props.onDetails(props.id,false))
|
|
6291
|
+
return _$createComponent(Show28,{get when(){return _$memo(()=>!!(props.width===3&&props.icons.length===1))()&&!props.text
|
|
6269
6292
|
},get fallback(){return _$createComponent(SelectionBox,{get id(){return props.id
|
|
6270
6293
|
},ref(r$){var _ref$2=item.ref
|
|
6271
6294
|
typeof _ref$2==="function"?_ref$2(r$):item.ref=r$
|
|
@@ -6305,17 +6328,17 @@ setHovered(false)
|
|
|
6305
6328
|
}
|
|
6306
6329
|
function SidebarToolbar(props){const model=createToolbarModel(props)
|
|
6307
6330
|
const icons=useIcons()
|
|
6308
|
-
const [width,setWidth]=
|
|
6309
|
-
const [detail,setDetail]=
|
|
6310
|
-
const keys=
|
|
6311
|
-
const widths=
|
|
6312
|
-
const layout=
|
|
6313
|
-
const rows=
|
|
6314
|
-
const byKey=
|
|
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])))
|
|
6315
6338
|
const view=(key)=>{const pin=byKey().get(key)
|
|
6316
6339
|
return pin&&model.view(pin)
|
|
6317
6340
|
}
|
|
6318
|
-
const details=
|
|
6341
|
+
const details=createMemo17(()=>{if(detail()==="toolbar:more")
|
|
6319
6342
|
return "More pinned actions and Skills"
|
|
6320
6343
|
const item=view(detail()??"")
|
|
6321
6344
|
return item?[item.label,item.stateLabel,item.reason].filter(Boolean).join(" \xB7 "):undefined
|
|
@@ -6334,7 +6357,7 @@ dialogs.close()
|
|
|
6334
6357
|
model.run(option.value)
|
|
6335
6358
|
}}))
|
|
6336
6359
|
}
|
|
6337
|
-
return _$createComponent(
|
|
6360
|
+
return _$createComponent(Show29,{get when(){return keys().length>0
|
|
6338
6361
|
},get children(){var _el$=_$createElement("box")
|
|
6339
6362
|
_$setProp(_el$,"id","opencode-navigator.toolbar")
|
|
6340
6363
|
_$setProp(_el$,"overflow","visible")
|
|
@@ -6357,7 +6380,7 @@ _$insert(_el$2,_$createComponent(For15,{get each(){return layout().rows[row]
|
|
|
6357
6380
|
return _el$2
|
|
6358
6381
|
})()
|
|
6359
6382
|
}),null)
|
|
6360
|
-
_$insert(_el$,_$createComponent(
|
|
6383
|
+
_$insert(_el$,_$createComponent(Show29,{get when(){return details()
|
|
6361
6384
|
},children:(text)=>(()=>{var _el$3=_$createElement("text")
|
|
6362
6385
|
_$setProp(_el$3,"position","absolute")
|
|
6363
6386
|
_$setProp(_el$3,"left",0)
|
|
@@ -6388,18 +6411,18 @@ return _el$
|
|
|
6388
6411
|
|
|
6389
6412
|
|
|
6390
6413
|
|
|
6391
|
-
function createSkillSectionModel(props,query){const target=
|
|
6392
|
-
const recent=
|
|
6393
|
-
const groups=
|
|
6394
|
-
const grouped=
|
|
6395
|
-
const list=
|
|
6396
|
-
const filtered=
|
|
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)))
|
|
6397
6420
|
const visibility=createListVisibility({items:filtered,limit:()=>props.preferences.sectionItemLimit?.("skills")??0,resetKey:()=>JSON.stringify([target().key,query()])
|
|
6398
6421
|
})
|
|
6399
|
-
const state=
|
|
6422
|
+
const state=createMemo18(()=>props.controller.state(target()))
|
|
6400
6423
|
createEffect21(()=>{const current=target()
|
|
6401
6424
|
const deactivate=untrack8(()=>props.controller.activate?.(current)??(()=>{}))
|
|
6402
|
-
|
|
6425
|
+
onCleanup27(deactivate)
|
|
6403
6426
|
untrack8(()=>void props.controller.refresh(current).catch(()=>{}))
|
|
6404
6427
|
})
|
|
6405
6428
|
async function useSkill(item){try{const isInserted=await props.controller.use(target(),item.name)
|
|
@@ -6451,7 +6474,7 @@ _$insert(_el$,()=>props.item.name,null)
|
|
|
6451
6474
|
_$effect((_$p)=>_$setProp(_el$,"fg",row.foregroundColor(),_$p))
|
|
6452
6475
|
return _el$
|
|
6453
6476
|
})()
|
|
6454
|
-
},get trailing(){return _$createComponent(
|
|
6477
|
+
},get trailing(){return _$createComponent(Show30,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
|
|
6455
6478
|
},get position(){return props.position
|
|
6456
6479
|
},get pin(){return{kind:"skill",name:props.item.name,location:props.item.location,icon:"book"
|
|
6457
6480
|
}}})
|
|
@@ -6460,7 +6483,7 @@ return _el$
|
|
|
6460
6483
|
}
|
|
6461
6484
|
function SkillsSection(props){const dialogs=useDialogs(props.api)
|
|
6462
6485
|
const toolbar=useToolbar()
|
|
6463
|
-
const [query,setQuery]=
|
|
6486
|
+
const [query,setQuery]=createSignal41("")
|
|
6464
6487
|
const model=createSkillSectionModel(props,query)
|
|
6465
6488
|
const navigationSection=()=>props.navigationSection??3
|
|
6466
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"
|
|
@@ -6484,7 +6507,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
|
|
|
6484
6507
|
}},get query(){return query()
|
|
6485
6508
|
},placeholder:"Filter skills...",onInput:setQuery
|
|
6486
6509
|
}),null)
|
|
6487
|
-
_$insert(_el$,_$createComponent(
|
|
6510
|
+
_$insert(_el$,_$createComponent(Show31,{get when(){return model.filtered().length>0
|
|
6488
6511
|
},get fallback(){return(()=>{var _el$2=_$createElement("text")
|
|
6489
6512
|
_$insertNode(_el$2,_$createTextNode(`No matching skills`))
|
|
6490
6513
|
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6495,7 +6518,7 @@ return _el$2
|
|
|
6495
6518
|
},get grouped(){return model.grouped
|
|
6496
6519
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6497
6520
|
},get children(){return _$createComponent(For16,{get each(){return model.visibility.visible()
|
|
6498
|
-
},children:(item,index)=>[_$createComponent(
|
|
6521
|
+
},children:(item,index)=>[_$createComponent(Show31,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
|
|
6499
6522
|
},get children(){var _el$4=_$createElement("text")
|
|
6500
6523
|
_$setProp(_el$4,"height",1)
|
|
6501
6524
|
_$setProp(_el$4,"wrapMode","none")
|
|
@@ -6537,16 +6560,16 @@ return _el$
|
|
|
6537
6560
|
|
|
6538
6561
|
|
|
6539
6562
|
|
|
6540
|
-
function createSubagentSectionModel(props){const list=
|
|
6541
|
-
const recent=
|
|
6542
|
-
const rows=
|
|
6543
|
-
const [query,setQuery]=
|
|
6544
|
-
const [mode,setMode]=
|
|
6545
|
-
const counts=
|
|
6546
|
-
const tabs=
|
|
6547
|
-
const filtered=
|
|
6548
|
-
const parentID=
|
|
6549
|
-
const targetKey=
|
|
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)
|
|
6550
6573
|
createEffect22(()=>{targetKey()
|
|
6551
6574
|
setQuery("")
|
|
6552
6575
|
setMode("all")
|
|
@@ -6556,15 +6579,15 @@ setMode("all")
|
|
|
6556
6579
|
})
|
|
6557
6580
|
const visibility=createListVisibility({items:filtered,limit:()=>props.preferences.sectionItemLimit?.("subagents")??0,resetKey:()=>JSON.stringify([targetKey(),query(),mode()])
|
|
6558
6581
|
})
|
|
6559
|
-
const clockKey=
|
|
6582
|
+
const clockKey=createMemo19(()=>props.preferences.expanded().subagents&&visibility.visible().some((item)=>item.status.type!=="idle")?targetKey():undefined)
|
|
6560
6583
|
const now=createSubagentClock(clockKey)
|
|
6561
|
-
const byId=
|
|
6562
|
-
const ids=
|
|
6563
|
-
const state=
|
|
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))
|
|
6564
6587
|
createEffect22(()=>{const sessionID=props.sessionID
|
|
6565
6588
|
targetKey()
|
|
6566
6589
|
const deactivate=untrack9(()=>props.controller.activate?.(sessionID)??(()=>{}))
|
|
6567
|
-
|
|
6590
|
+
onCleanup28(deactivate)
|
|
6568
6591
|
untrack9(()=>void props.controller.refresh(sessionID).catch(()=>{}))
|
|
6569
6592
|
})
|
|
6570
6593
|
return{list,recent,rows,query,setQuery,mode,setMode,counts,tabs,filtered,parentID,visibility,now,byId,ids,state
|
|
@@ -6622,7 +6645,7 @@ return()=>_c$()?`${props.item.run.startedBeforeObservation ? `${icons.icon("rece
|
|
|
6622
6645
|
_$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
|
|
6623
6646
|
return _el$3
|
|
6624
6647
|
})()
|
|
6625
|
-
},get details(){return [_$createComponent(
|
|
6648
|
+
},get details(){return [_$createComponent(Show32,{get when(){return props.item.run?.errorMessage
|
|
6626
6649
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createTextNode(`: `)
|
|
6627
6650
|
_$insertNode(_el$4,_el$5)
|
|
6628
6651
|
_$setProp(_el$4,"wrapMode","word")
|
|
@@ -6630,12 +6653,12 @@ _$insert(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
|
|
|
6630
6653
|
_$insert(_el$4,()=>props.item.run?.errorMessage,null)
|
|
6631
6654
|
_$effect((_$p)=>_$setProp(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
|
|
6632
6655
|
return _el$4
|
|
6633
|
-
}}),_$createComponent(
|
|
6656
|
+
}}),_$createComponent(Show32,{get when(){return props.item.unavailable
|
|
6634
6657
|
},get children(){var _el$6=_$createElement("text")
|
|
6635
6658
|
_$insertNode(_el$6,_$createTextNode(`Worker status unavailable`))
|
|
6636
6659
|
_$effect((_$p)=>_$setProp(_el$6,"fg",theme().warning,_$p))
|
|
6637
6660
|
return _el$6
|
|
6638
|
-
}}),_$createComponent(
|
|
6661
|
+
}}),_$createComponent(Show32,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
|
|
6639
6662
|
},children:(status)=>(()=>{var _el$0=_$createElement("text"),_el$1=_$createTextNode(`Retry #`),_el$10=_$createTextNode(` \xB7 `),_el$11=_$createTextNode(`s \xB7 `)
|
|
6640
6663
|
_$insertNode(_el$0,_el$1)
|
|
6641
6664
|
_$insertNode(_el$0,_el$10)
|
|
@@ -6647,7 +6670,7 @@ _$insert(_el$0,()=>status().message,null)
|
|
|
6647
6670
|
_$effect((_$p)=>_$setProp(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
|
|
6648
6671
|
return _el$0
|
|
6649
6672
|
})()
|
|
6650
|
-
}),_$createComponent(
|
|
6673
|
+
}),_$createComponent(Show32,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
|
|
6651
6674
|
},get children(){var _el$8=_$createElement("text")
|
|
6652
6675
|
_$insertNode(_el$8,_$createTextNode(`Finished`))
|
|
6653
6676
|
_$effect((_$p)=>_$setProp(_el$8,"fg",theme().textMuted,_$p))
|
|
@@ -6663,7 +6686,7 @@ function SubagentList(props){return _$createComponent(SidebarRowList,{get api(){
|
|
|
6663
6686
|
const item=()=>props.itemById(id)??initial
|
|
6664
6687
|
const startsGroup=()=>index()===0||props.visible[index()-1]?.group!==item().group
|
|
6665
6688
|
return(()=>{var _el$=_$createElement("box")
|
|
6666
|
-
_$insert(_el$,_$createComponent(
|
|
6689
|
+
_$insert(_el$,_$createComponent(Show33,{get when(){return startsGroup()
|
|
6667
6690
|
},get children(){var _el$2=_$createElement("text"),_el$3=_$createElement("b")
|
|
6668
6691
|
_$insertNode(_el$2,_el$3)
|
|
6669
6692
|
_$insert(_el$3,()=>item().group)
|
|
@@ -6689,7 +6712,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6689
6712
|
},sectionId:`${PLUGIN_ID}.section.subagents`,get navigationSection(){return navigationSection()
|
|
6690
6713
|
},title:"SUBAGENTS",section:"subagents",get summary(){return `${model.list().length} active \xB7 ${model.recent().length} recent`
|
|
6691
6714
|
},get open(){return props.preferences.expanded().subagents
|
|
6692
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(
|
|
6715
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show34,{get when(){return model.parentID()
|
|
6693
6716
|
},children:(id)=>_$createComponent(McpBulkAction,{get api(){return props.api
|
|
6694
6717
|
},get interaction(){return props.interaction
|
|
6695
6718
|
},id:`${PLUGIN_ID}.subagents.parent`,get position(){return{section:navigationSection(),row:1,column:0
|
|
@@ -6723,7 +6746,7 @@ _$insert(_el$2,_$createComponent(For18,{get each(){return model.tabs()
|
|
|
6723
6746
|
},onActivate:()=>model.setMode(value)
|
|
6724
6747
|
})
|
|
6725
6748
|
}))
|
|
6726
|
-
_$insert(_el$,_$createComponent(
|
|
6749
|
+
_$insert(_el$,_$createComponent(Show34,{get when(){return model.filtered().length===0
|
|
6727
6750
|
},get children(){var _el$3=_$createElement("text")
|
|
6728
6751
|
_$insertNode(_el$3,_$createTextNode(`No matching subagents`))
|
|
6729
6752
|
_$effect((_$p)=>_$setProp(_el$3,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6784,7 +6807,7 @@ _$insertNode(_el$2,_el$3)
|
|
|
6784
6807
|
_$setProp(_el$2,"wrapMode","word")
|
|
6785
6808
|
_$insert(_el$2,()=>icons.icon("info"),_el$3)
|
|
6786
6809
|
_$insert(_el$2,message,null)
|
|
6787
|
-
_$insert(_el$,_$createComponent(
|
|
6810
|
+
_$insert(_el$,_$createComponent(Show35,{get when(){return _$memo(()=>!!props.setup)()&&(disabled()||failed())
|
|
6788
6811
|
},get children(){return _$createComponent(SectionTab,{get api(){return props.api
|
|
6789
6812
|
},get interaction(){return props.interaction
|
|
6790
6813
|
},id:"opencode-navigator.todo.setup",get position(){return{section:props.navigationSection,row:2,column:0
|
|
@@ -6847,7 +6870,7 @@ _$insert(_el$2,()=>icons.icon(done()?"done":active()?"busy":cancelled()?"close":
|
|
|
6847
6870
|
_$setProp(_el$3,"flexGrow",1)
|
|
6848
6871
|
_$setProp(_el$3,"wrapMode","word")
|
|
6849
6872
|
_$insert(_el$3,()=>props.item.content)
|
|
6850
|
-
_$insert(_el$,_$createComponent(
|
|
6873
|
+
_$insert(_el$,_$createComponent(Show36,{get when(){return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
|
|
6851
6874
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b"),_el$6=_$createTextNode(` `)
|
|
6852
6875
|
_$insertNode(_el$4,_el$5)
|
|
6853
6876
|
_$setProp(_el$4,"width",2)
|
|
@@ -6857,7 +6880,7 @@ _$insert(_el$5,priorityLabel,null)
|
|
|
6857
6880
|
_$effect((_$p)=>_$setProp(_el$4,"fg",priorityColor(),_$p))
|
|
6858
6881
|
return _el$4
|
|
6859
6882
|
}}),null)
|
|
6860
|
-
_$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()?
|
|
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
|
|
6861
6884
|
_v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"fg",_v$,_p$.e))
|
|
6862
6885
|
_v$2!==_p$.t&&(_p$.t=_$setProp(_el$3,"fg",_v$2,_p$.t))
|
|
6863
6886
|
_v$3!==_p$.a&&(_p$.a=_$setProp(_el$3,"attributes",_v$3,_p$.a))
|
|
@@ -6883,7 +6906,7 @@ _$insert(_el$2,_$createComponent(For19,{each:["all","active","finished"],childre
|
|
|
6883
6906
|
},onActivate:()=>props.setMode(value)
|
|
6884
6907
|
})
|
|
6885
6908
|
}))
|
|
6886
|
-
_$insert(_el$,_$createComponent(
|
|
6909
|
+
_$insert(_el$,_$createComponent(Show37,{get when(){return props.view.rows.length>0
|
|
6887
6910
|
},get fallback(){return _$createComponent(EmptyTodo,{get api(){return props.api
|
|
6888
6911
|
},get mode(){return props.mode
|
|
6889
6912
|
}})
|
|
@@ -6893,7 +6916,7 @@ _$insert(_el$,_$createComponent(Show38,{get when(){return props.view.rows.length
|
|
|
6893
6916
|
},get children(){return _$createComponent(For19,{get each(){return props.visibility.visible()
|
|
6894
6917
|
},children:(row,index)=>{const startsGroup=()=>index()===0||props.visibility.visible()[index()-1].group!==row.group
|
|
6895
6918
|
return(()=>{var _el$3=_$createElement("box")
|
|
6896
|
-
_$insert(_el$3,_$createComponent(
|
|
6919
|
+
_$insert(_el$3,_$createComponent(Show37,{get when(){return startsGroup()
|
|
6897
6920
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
|
|
6898
6921
|
_$insertNode(_el$4,_el$5)
|
|
6899
6922
|
_$insert(_el$5,()=>row.group)
|
|
@@ -6930,7 +6953,7 @@ return _el$6
|
|
|
6930
6953
|
|
|
6931
6954
|
|
|
6932
6955
|
function TodoGuidanceControl(props){const state=()=>props.controller.guidance(props.sessionID)
|
|
6933
|
-
return _$createComponent(
|
|
6956
|
+
return _$createComponent(Show38,{get when(){return state().available
|
|
6934
6957
|
},get children(){var _el$=_$createElement("box")
|
|
6935
6958
|
_$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
|
|
6936
6959
|
},get interaction(){return props.interaction
|
|
@@ -6940,7 +6963,7 @@ _$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
|
|
|
6940
6963
|
},get disabled(){return state().saving
|
|
6941
6964
|
},onActivate:()=>void props.controller.setGuidance(props.sessionID,!state().enabled)
|
|
6942
6965
|
}),null)
|
|
6943
|
-
_$insert(_el$,_$createComponent(
|
|
6966
|
+
_$insert(_el$,_$createComponent(Show38,{get when(){return state().error
|
|
6944
6967
|
},children:(message)=>(()=>{var _el$2=_$createElement("text")
|
|
6945
6968
|
_$setProp(_el$2,"wrapMode","word")
|
|
6946
6969
|
_$insert(_el$2,message)
|
|
@@ -6951,28 +6974,28 @@ return _el$2
|
|
|
6951
6974
|
return _el$
|
|
6952
6975
|
}})
|
|
6953
6976
|
}
|
|
6954
|
-
function TodoSection(props){const list=
|
|
6977
|
+
function TodoSection(props){const list=createMemo20(()=>props.controller.list(props.sessionID))
|
|
6955
6978
|
const icons=useIcons()
|
|
6956
6979
|
const unavailable=()=>hostCapabilityUnavailable(props.api,"todo")
|
|
6957
6980
|
const managed=()=>("guidance" in props.controller)?props.controller:undefined
|
|
6958
6981
|
const native=()=>("source" in props.controller)&&props.controller.source==="native"
|
|
6959
6982
|
const setup=()=>("setup" in props.controller)?props.controller.setup:undefined
|
|
6960
6983
|
const setupState=()=>setup()?.state(props.sessionID)
|
|
6961
|
-
const [mode,setMode]=
|
|
6962
|
-
const targetKey=
|
|
6984
|
+
const [mode,setMode]=createSignal43("all")
|
|
6985
|
+
const targetKey=createMemo20(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
|
|
6963
6986
|
createEffect23(()=>{targetKey()
|
|
6964
6987
|
setMode("all")
|
|
6965
6988
|
})
|
|
6966
|
-
const view=
|
|
6989
|
+
const view=createMemo20(()=>buildTodoView(list(),mode()))
|
|
6967
6990
|
const visibility=createListVisibility({items:()=>view().rows,limit:()=>props.preferences.sectionItemLimit?.("todo")??0,resetKey:()=>JSON.stringify([targetKey(),mode()])
|
|
6968
6991
|
})
|
|
6969
|
-
const state=
|
|
6992
|
+
const state=createMemo20(()=>props.controller.state(props.sessionID))
|
|
6970
6993
|
createEffect23(()=>{const sessionID=props.sessionID
|
|
6971
6994
|
targetKey()
|
|
6972
6995
|
if(unavailable())
|
|
6973
6996
|
return
|
|
6974
6997
|
const deactivate=untrack10(()=>props.controller.activate?.(sessionID)??(()=>{}))
|
|
6975
|
-
|
|
6998
|
+
onCleanup29(deactivate)
|
|
6976
6999
|
untrack10(()=>void props.controller.refresh(sessionID).catch(()=>{}))
|
|
6977
7000
|
untrack10(()=>void setup()?.refresh(sessionID).catch(()=>{}))
|
|
6978
7001
|
})
|
|
@@ -6985,10 +7008,10 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6985
7008
|
setup()?.refresh(props.sessionID).catch(()=>{})
|
|
6986
7009
|
}}:undefined
|
|
6987
7010
|
},get open(){return props.preferences.expanded().todo
|
|
6988
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(
|
|
7011
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show39,{get when(){return unavailable()
|
|
6989
7012
|
},get fallback(){return(()=>{var _el$=_$createElement("box")
|
|
6990
7013
|
_$setProp(_el$,"gap",1)
|
|
6991
|
-
_$insert(_el$,_$createComponent(
|
|
7014
|
+
_$insert(_el$,_$createComponent(Show39,{get when(){return native()
|
|
6992
7015
|
},get children(){return _$createComponent(NativeTodoNotice,{get api(){return props.api
|
|
6993
7016
|
},get setup(){return setup()
|
|
6994
7017
|
},get sessionID(){return props.sessionID
|
|
@@ -6996,7 +7019,7 @@ _$insert(_el$,_$createComponent(Show40,{get when(){return native()
|
|
|
6996
7019
|
},get navigationSection(){return navigationSection()
|
|
6997
7020
|
}})
|
|
6998
7021
|
}}),null)
|
|
6999
|
-
_$insert(_el$,_$createComponent(
|
|
7022
|
+
_$insert(_el$,_$createComponent(Show39,{get when(){return managed()?.guidance(props.sessionID).available
|
|
7000
7023
|
},get children(){return _$createComponent(TodoGuidanceControl,{get api(){return props.api
|
|
7001
7024
|
},get controller(){return managed()
|
|
7002
7025
|
},get sessionID(){return props.sessionID
|
|
@@ -7004,7 +7027,7 @@ _$insert(_el$,_$createComponent(Show40,{get when(){return managed()?.guidance(pr
|
|
|
7004
7027
|
},get navigationSection(){return navigationSection()
|
|
7005
7028
|
}})
|
|
7006
7029
|
}}),null)
|
|
7007
|
-
_$insert(_el$,_$createComponent(
|
|
7030
|
+
_$insert(_el$,_$createComponent(Show39,{get when(){return managed()?.missing(props.sessionID)
|
|
7008
7031
|
},get fallback(){return _$createComponent(SectionRequestBody,{get api(){return props.api
|
|
7009
7032
|
},get interaction(){return props.interaction
|
|
7010
7033
|
},id:`${PLUGIN_ID}.retry.todo`,get position(){return{section:navigationSection(),row:1,column:0
|
|
@@ -7041,8 +7064,8 @@ return _el$4
|
|
|
7041
7064
|
}})
|
|
7042
7065
|
}
|
|
7043
7066
|
function SidebarContent(props){const sections=props.preferences.sections
|
|
7044
|
-
const visibleSections=
|
|
7045
|
-
|
|
7067
|
+
const visibleSections=createMemo21(()=>props.preferences.sectionOrder().filter((section)=>sections()[section]&&supportsSidebarSection(props.api,section)))
|
|
7068
|
+
onCleanup30(()=>props.interaction.setContentRoot(undefined))
|
|
7046
7069
|
return _$createComponent(ToolbarProvider,{get api(){return props.api
|
|
7047
7070
|
},get preferences(){return props.preferences
|
|
7048
7071
|
},get skills(){return props.skills
|
|
@@ -7093,7 +7116,7 @@ return _el$
|
|
|
7093
7116
|
}
|
|
7094
7117
|
|
|
7095
7118
|
|
|
7096
|
-
function McpPersistence(props){const persist=
|
|
7119
|
+
function McpPersistence(props){const persist=createMemo22(()=>props.controller.persist())
|
|
7097
7120
|
createEffect24(()=>{if(!props.api.state.ready)
|
|
7098
7121
|
return
|
|
7099
7122
|
persist()
|
|
@@ -7102,7 +7125,7 @@ const params="params" in route?route.params:undefined
|
|
|
7102
7125
|
if(typeof params?.sessionID!=="string")
|
|
7103
7126
|
return
|
|
7104
7127
|
const current=props.controller.target()
|
|
7105
|
-
|
|
7128
|
+
onCleanup31(()=>props.controller.deactivate(current))
|
|
7106
7129
|
untrack11(()=>void props.controller.activate(current).catch(()=>{}))
|
|
7107
7130
|
})
|
|
7108
7131
|
return _$createElement("box")
|
|
@@ -7133,7 +7156,7 @@ return _$createElement("box")
|
|
|
7133
7156
|
|
|
7134
7157
|
function SidebarTitle(props){const icons=useIcons()
|
|
7135
7158
|
const theme=()=>props.api.theme.current
|
|
7136
|
-
const created=
|
|
7159
|
+
const created=createMemo23(()=>{const value=props.api.state.session.get(props.sessionID)?.time?.created
|
|
7137
7160
|
return value===undefined?undefined:`Created ${new Date(value).toLocaleDateString("en", {
|
|
7138
7161
|
dateStyle: "medium"
|
|
7139
7162
|
})}`
|
|
@@ -7142,7 +7165,7 @@ const settingsId=`${PLUGIN_ID}.settings`
|
|
|
7142
7165
|
const settings=useSidebarItem(props.api,props.interaction,{id:settingsId,position:{section:0,row:0,column:0
|
|
7143
7166
|
},activate:()=>openSettings(props.api,props.preferences,undefined,props.mcp,props.skills)
|
|
7144
7167
|
},()=>theme().textMuted,"control")
|
|
7145
|
-
|
|
7168
|
+
onCleanup32(()=>props.interaction.setTitleRoot(undefined))
|
|
7146
7169
|
return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("box"),_el$3=_$createElement("box")
|
|
7147
7170
|
_$insertNode(_el$,_el$2)
|
|
7148
7171
|
_$use((node)=>props.interaction.setTitleRoot(node),_el$)
|
|
@@ -7153,7 +7176,7 @@ _$setProp(_el$2,"flexDirection","row")
|
|
|
7153
7176
|
_$setProp(_el$2,"justifyContent","space-between")
|
|
7154
7177
|
_$setProp(_el$2,"gap",1)
|
|
7155
7178
|
_$setProp(_el$3,"flexGrow",1)
|
|
7156
|
-
_$insert(_el$3,_$createComponent(
|
|
7179
|
+
_$insert(_el$3,_$createComponent(Show40,{get when(){return props.preferences.showSessionTitle()
|
|
7157
7180
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
|
|
7158
7181
|
_$insertNode(_el$4,_el$5)
|
|
7159
7182
|
_$setProp(_el$4,"wrapMode","word")
|
|
@@ -7161,7 +7184,7 @@ _$insert(_el$5,()=>props.title)
|
|
|
7161
7184
|
_$effect((_$p)=>_$setProp(_el$4,"fg",theme().text,_$p))
|
|
7162
7185
|
return _el$4
|
|
7163
7186
|
}}),null)
|
|
7164
|
-
_$insert(_el$3,_$createComponent(
|
|
7187
|
+
_$insert(_el$3,_$createComponent(Show40,{get when(){return _$memo(()=>!!props.preferences.showSessionDate())()&&created()
|
|
7165
7188
|
},children:(value)=>(()=>{var _el$6=_$createElement("text")
|
|
7166
7189
|
_$insert(_el$6,value)
|
|
7167
7190
|
_$effect((_$p)=>_$setProp(_el$6,"fg",theme().textMuted,_$p))
|
|
@@ -7205,7 +7228,7 @@ return mergeConfiguredDefaults(configuredDefaultsFromPluginOptions(options),user
|
|
|
7205
7228
|
function LimitsPersistence(props){createLimitsRefresh(props)
|
|
7206
7229
|
return _$createElement("box")
|
|
7207
7230
|
}
|
|
7208
|
-
function bindNavigatorAbout(api,status,updates,notes){const dispose=registerNavigatorAboutServices(api,{navigatorVersion:"0.27.
|
|
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()
|
|
7209
7232
|
if(target)
|
|
7210
7233
|
updates.navigator(target,dialogs)
|
|
7211
7234
|
},changelog:async ()=>notes.parseChangelog(await notes.readBundledChangelog())
|
|
@@ -7341,7 +7364,7 @@ context.keymap.dispatch(command.id)
|
|
|
7341
7364
|
context.renderer.keyInput.on("keypress",onKeypress)
|
|
7342
7365
|
const keymap={registerLayer(layer){const id=++sequence
|
|
7343
7366
|
const owner=getOwner()
|
|
7344
|
-
const [active,setActive]=
|
|
7367
|
+
const [active,setActive]=createSignal44(true)
|
|
7345
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)
|
|
7346
7369
|
}))
|
|
7347
7370
|
}
|
|
@@ -7386,7 +7409,7 @@ cleanups.clear()
|
|
|
7386
7409
|
context.renderer.keyInput.off("keypress",onKeypress)
|
|
7387
7410
|
}}}
|
|
7388
7411
|
|
|
7389
|
-
function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=
|
|
7412
|
+
function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=createSignal45({})
|
|
7390
7413
|
const projections=new WeakMap
|
|
7391
7414
|
function normalize(info){const directory=info.location.directory
|
|
7392
7415
|
const workspaceID=context.location?.directory===directory?context.location.workspaceID:undefined
|
|
@@ -7452,34 +7475,42 @@ return context.data.session.message.list(route.sessionID).some((message)=>(!reve
|
|
|
7452
7475
|
|
|
7453
7476
|
|
|
7454
7477
|
function createV2UI(context,api){let dialogOpen=false
|
|
7478
|
+
let dialogGeneration=0
|
|
7479
|
+
let handingOff=false
|
|
7455
7480
|
function DialogPrompt(props){return _$createComponent(SingleLinePrompt,_$mergeProps({get api(){return api()
|
|
7456
7481
|
}},props))
|
|
7457
7482
|
}
|
|
7458
|
-
function DialogConfirm(props){
|
|
7459
|
-
|
|
7460
|
-
|
|
7461
|
-
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
|
|
7462
7486
|
})
|
|
7463
|
-
|
|
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")
|
|
7464
7493
|
return
|
|
7465
7494
|
if(confirmed)
|
|
7466
7495
|
props.onConfirm?.()
|
|
7467
7496
|
else
|
|
7468
7497
|
props.onCancel?.()
|
|
7469
|
-
}
|
|
7470
|
-
onMount7(()=>{confirm().catch(()=>{if(active)
|
|
7471
|
-
props.onCancel?.()
|
|
7472
7498
|
})
|
|
7473
7499
|
})
|
|
7474
7500
|
return _$createElement("box")
|
|
7475
7501
|
}
|
|
7476
|
-
return{DialogConfirm,DialogPrompt,toast:(input)=>context.ui.toast.show(input),dialog:{replace(render,onClose){
|
|
7477
|
-
|
|
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
|
|
7478
7508
|
onClose?.()
|
|
7479
7509
|
})
|
|
7480
7510
|
},setSize(size){context.ui.dialog.set({size
|
|
7481
7511
|
})
|
|
7482
|
-
},clear(){
|
|
7512
|
+
},clear(){dialogGeneration++
|
|
7513
|
+
dialogOpen=false
|
|
7483
7514
|
context.ui.dialog.clear()
|
|
7484
7515
|
},get open(){return dialogOpen
|
|
7485
7516
|
}}}}
|
|
@@ -7670,7 +7701,7 @@ const limitsPath=import.meta.url.includes("/dist/tui.js")?"./provider-limits.js"
|
|
|
7670
7701
|
const limitsModule=await import(limitsPath)
|
|
7671
7702
|
const LimitsSection=limitsModule.ProviderLimitsSection
|
|
7672
7703
|
const{controller:limits,codex,accountSource,selectModel,modelSelection
|
|
7673
|
-
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.27.
|
|
7704
|
+
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.27.5",hostContext)
|
|
7674
7705
|
const mcp=createMcpController(api,preferences.persistMcp,preferences,nativeSources?.mcp)
|
|
7675
7706
|
const interaction=createSidebarInteraction(api,()=>openKeyboardHelp(api,preferences.lspIconStyle,preferences.cornerFont,sidebarShortcutActions(api)))
|
|
7676
7707
|
const startup=createStartupSessionController(api,preferences)
|
|
@@ -7699,7 +7730,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
|
|
|
7699
7730
|
},interaction,skills,subagents,mcp
|
|
7700
7731
|
}),_$createComponent(FirstRunWizardPersistence,{api,preferences
|
|
7701
7732
|
}),_$createComponent(StartupSessionBinding,{api,controller:startup
|
|
7702
|
-
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.27.
|
|
7733
|
+
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.27.5"
|
|
7703
7734
|
}),_$createComponent(McpPersistence,{api,controller:mcp
|
|
7704
7735
|
})]
|
|
7705
7736
|
}})
|
|
@@ -7733,13 +7764,13 @@ return result.data?.type==="text"?result.data.content:undefined
|
|
|
7733
7764
|
const updateServices=await loadNavigatorUpdates()
|
|
7734
7765
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV1VersionUpdater
|
|
7735
7766
|
}=updateServices
|
|
7736
|
-
const versionStatus=createVersionStatus(api,"0.27.
|
|
7737
|
-
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.
|
|
7767
|
+
const versionStatus=createVersionStatus(api,"0.27.5")
|
|
7768
|
+
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.5"))
|
|
7738
7769
|
bindNavigatorAbout(api,versionStatus,versionUpdates,updateServices)
|
|
7739
7770
|
api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7740
7771
|
},get multilineCorners(){return preferences.cornerFont
|
|
7741
7772
|
},get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
|
|
7742
|
-
},navigatorVersion:"0.27.
|
|
7773
|
+
},navigatorVersion:"0.27.5",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7743
7774
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7744
7775
|
},get navigatorProgress(){return versionUpdates.navigatorProgress()
|
|
7745
7776
|
},get openCodeProgress(){return versionUpdates.openCodeProgress()
|
|
@@ -7758,8 +7789,8 @@ return new TextDecoder().decode(await context.client.file.read({location:context
|
|
|
7758
7789
|
const updateServices=await loadNavigatorUpdates()
|
|
7759
7790
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV2VersionUpdater
|
|
7760
7791
|
}=updateServices
|
|
7761
|
-
const versionStatus=createVersionStatus(adapter.api,"0.27.
|
|
7762
|
-
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.
|
|
7792
|
+
const versionStatus=createVersionStatus(adapter.api,"0.27.5")
|
|
7793
|
+
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.5"))
|
|
7763
7794
|
bindNavigatorAbout(adapter.api,versionStatus,versionUpdates,updateServices)
|
|
7764
7795
|
const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7765
7796
|
},get multilineCorners(){return preferences.cornerFont
|
|
@@ -7767,7 +7798,7 @@ const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$create
|
|
|
7767
7798
|
_$setProp(_el$,"flexDirection","row")
|
|
7768
7799
|
_$setProp(_el$,"justifyContent","space-between")
|
|
7769
7800
|
_$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
|
|
7770
|
-
},navigatorVersion:"0.27.
|
|
7801
|
+
},navigatorVersion:"0.27.5",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7771
7802
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7772
7803
|
},get navigatorProgress(){return versionUpdates.navigatorProgress()
|
|
7773
7804
|
},get openCodeProgress(){return versionUpdates.openCodeProgress()
|