opencode-navigator 0.24.0 → 0.25.0
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 +5 -0
- package/HOST_API.md +7 -6
- package/LINT_COVERAGE.md +201 -0
- package/README.md +34 -6
- package/dist/native-todo-setup.js +1156 -0
- package/dist/onboarding.js +379 -0
- package/dist/runtime-dependencies.json +3 -3
- package/dist/sidebar-settings.js +278 -540
- package/dist/tui.js +164 -388
- package/package.json +10 -5
package/dist/tui.js
CHANGED
|
@@ -3,14 +3,13 @@ import {insert as _$insert,setProp as _$setProp,createElement as _$createElement
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
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,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup5,Show as Show3,batch,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,createSignal as createSignal12,onCleanup as onCleanup8,createEffect as createEffect8,onCleanup as onCleanup10,batch as batch2,createEffect as createEffect7,createMemo,createSignal as createSignal13,onCleanup as onCleanup9,onMount as onMount2,For as For2,For as For3,Show as Show4,createMemo as createMemo2,
|
|
6
|
+
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,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup5,Show as Show3,batch,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,createSignal as createSignal12,onCleanup as onCleanup8,createEffect as createEffect8,onCleanup as onCleanup10,batch as batch2,createEffect as createEffect7,createMemo,createSignal as createSignal13,onCleanup as onCleanup9,onMount as onMount2,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,createSignal as createSignal19,onCleanup as onCleanup17,createSignal as createSignal20,Show as Show10,createSignal as createSignal22,createSignal as createSignal21,onCleanup as onCleanup18,For as For10,Show as Show13,createMemo as createMemo9,createComputed,createMemo as createMemo8,createSignal as createSignal23,untrack as untrack3,Show as Show11,createComputed as createComputed2,untrack as untrack4,Show as Show12,createSignal as createSignal25,createEffect as createEffect14,createSignal as createSignal24,on,createMemo as createMemo11,createSignal as createSignal28,createMemo as createMemo10,For as For11,Show as Show17,Show as Show14,Show as Show15,createSignal as createSignal26,createContext as createContext3,useContext as useContext3,Show as Show16,createSignal as createSignal27,onCleanup as onCleanup19,Show as Show23,createSignal as createSignal29,untrack as untrack5,createSignal as createSignal30,createSignal as createSignal31,createEffect as createEffect15,For as For13,Show as Show18,For as For12,createSignal as createSignal32,Show as Show19,Show as Show20,Show as Show21,Show as Show22,For as For14,Show as Show25,createMemo as createMemo13,Show as Show24,createMemo as createMemo12,createSignal as createSignal33,createContext as createContext4,useContext as useContext4,Show as Show26,Suspense as Suspense5,createEffect as createEffect16,onCleanup as onCleanup20,untrack as untrack6,For as For20,Match,Switch,createMemo as createMemo19,onCleanup as onCleanup26,For as For15,Show as Show28,createMemo as createMemo15,createSignal as createSignal35,createEffect as createEffect17,createMemo as createMemo14,onCleanup as onCleanup21,untrack as untrack7,Show as Show27,createEffect as createEffect18,createSignal as createSignal34,onCleanup as onCleanup22,For as For16,Show as Show30,createSignal as createSignal36,createEffect as createEffect19,createMemo as createMemo16,onCleanup as onCleanup23,untrack as untrack8,Show as Show29,For as For18,Show as Show33,createEffect as createEffect20,createMemo as createMemo17,createSignal as createSignal37,onCleanup as onCleanup24,untrack as untrack9,For as For17,Show as Show32,Show as Show31,Show as Show38,createEffect as createEffect21,createMemo as createMemo18,createSignal as createSignal38,onCleanup as onCleanup25,untrack as untrack10,Show as Show34,For as For19,Show as Show36,Show as Show35,Show as Show37,createEffect as createEffect22,createMemo as createMemo20,onCleanup as onCleanup27,untrack as untrack11,Show as Show39,createMemo as createMemo21,onCleanup as onCleanup28,createEffect as createEffect23,createMemo as createMemo22,on as on2,onCleanup as onCleanup29,createRoot,createSignal as createSignal39,getOwner,createSignal as createSignal40,onCleanup as onCleanup30,onMount as onMount7} from "solid-js"
|
|
7
7
|
var SIDEBAR_SECTIONS=["limits","todo","subagents","skills","quick_actions","lsp","mcp"]
|
|
8
8
|
var QUICK_ACTION_IDS=["session.rename","session.timeline","session.copy","session.export","session.compact","session.list","session.new","session.fork","messages.copy","session.first","session.last","session.messages_last_user","session.message.next","session.message.previous","permission.mode"]
|
|
9
9
|
function preferencesScope(path){return path.worktree||path.directory||"global"
|
|
10
10
|
}
|
|
11
11
|
var DEFAULT_SECTION_EXPANSION={limits:true,todo:true,subagents:false,skills:false,quick_actions:false,lsp:false,mcp:false
|
|
12
12
|
}
|
|
13
|
-
var SECTION_DEFINITIONS=[{name:"limits",label:"Limits"},{name:"todo",label:"Todo"},{name:"subagents",label:"Subagents"},{name:"skills",label:"Skills"},{name:"quick_actions",label:"Quick actions"},{name:"lsp",label:"LSP"},{name:"mcp",label:"MCP"}]
|
|
14
13
|
function parseQuickActionOrder(value){if(!Array.isArray(value))
|
|
15
14
|
return
|
|
16
15
|
const order=[...new Set(value.filter((id)=>QUICK_ACTION_IDS.includes(id)))]
|
|
@@ -738,7 +737,7 @@ renderer.requestRender()
|
|
|
738
737
|
|
|
739
738
|
|
|
740
739
|
|
|
741
|
-
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
|
|
740
|
+
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"
|
|
742
741
|
|
|
743
742
|
var transparent=RGBA.fromInts(0,0,0,0)
|
|
744
743
|
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))
|
|
@@ -3703,274 +3702,16 @@ return value&&valid()&&!blocked()?controller.applyPreset(name,value,target):unde
|
|
|
3703
3702
|
|
|
3704
3703
|
|
|
3705
3704
|
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
var ONBOARDING_STEPS=[{title:"A control center that stays compact",summary:"Navigator brings session state, search, and controls into OpenCode's existing sidebar.",icon:"help",features:[{icon:"sections",title:"Progressive disclosure",description:"Expand only the context you need right now."},{icon:"scope",title:"Current context",description:"Follow the active session, workspace, and worktree."},{icon:"actions",title:"Mouse and keyboard",description:"Use the same controls with either input method."}]
|
|
3712
|
-
},{title:"Stay oriented while agents work",summary:"Keep current work visible without turning the sidebar into another dashboard.",icon:"todo",features:[{icon:"todo",title:"Todo filters",description:"Separate active, finished, and cancelled work."},{icon:"subagents",title:"Live subagents",description:"See running, retrying, recent, and failed child sessions; open them directly."
|
|
3713
|
-
},{icon:"info",title:"Provider limits",description:"Link a matching Codex account for model quotas and confirmed banked resets."
|
|
3714
|
-
}]
|
|
3715
|
-
},{title:"Find anything and launch Skills safely",summary:"Search complete source lists without expanding every sidebar section.",icon:"search",features:[{icon:"search",title:"Search Everything",description:"Search Skills, Subagents, MCP, and Actions in shared tabs."
|
|
3716
|
-
},{icon:"search",title:"Full source lists",description:"Search beyond sidebar visibility and item limits."},{icon:"skills",title:"Skill confirmation",description:"Review a skill and its source before inserting its command."
|
|
3717
|
-
}]
|
|
3718
|
-
},{title:"Run actions and check language tools",summary:"Keep frequent OpenCode commands and LSP health within one compact section.",icon:"actions",features:[{icon:"actions",title:"Quick Actions",description:"Rename, inspect timelines, copy, export, or compact the session."
|
|
3719
|
-
},{icon:"lsp",title:"Compact LSP status",description:"Spot connected and failed language servers at a glance."
|
|
3720
|
-
},{icon:"settings",title:"Configurable commands",description:"Choose action visibility, order, and shortcuts."
|
|
3721
|
-
}]
|
|
3722
|
-
},{title:"Control MCP without losing context",summary:"Manage individual servers or entire working sets directly from Navigator.",icon:"mcp",features:[{icon:"mcp",title:"Live server controls",description:"Connect, disconnect, filter, and favorite servers."},{icon:"actions",title:"Bulk operations",description:"Change eligible servers together and retry failures."
|
|
3723
|
-
},{icon:"presets",title:"Safe presets",description:"Preview connections and disconnections before Apply."}]
|
|
3724
|
-
},{title:"Make Navigator fit each workspace",summary:"Use the same controls with mouse or keyboard and keep only the context you need.",icon:"settings",features:[{icon:"sections",title:"Flexible layout",description:"Choose section visibility, order, expansion, and item limits."
|
|
3725
|
-
},{icon:"presets",title:"Scoped presets",description:"Save layouts globally or for the current worktree."},{icon:"settings",title:"Accessible controls",description:"Change shortcuts or use Text fallback without a restart."
|
|
3726
|
-
}]
|
|
3727
|
-
}];
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
function OnboardingStep(props){const icons=useIcons()
|
|
3739
|
-
const theme=()=>props.api.theme.current
|
|
3740
|
-
return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("text"),_el$3=_$createTextNode(` `),_el$4=_$createElement("text"),_el$5=_$createElement("box"),_el$6=_$createElement("text"),_el$7=_$createTextNode(`Toggle: `),_el$8=_$createTextNode(` \xB7 Focus: `),_el$9=_$createTextNode(` \xB7 Icons: `),_el$1=_$createElement("box")
|
|
3741
|
-
_$insertNode(_el$,_el$2)
|
|
3742
|
-
_$insertNode(_el$,_el$4)
|
|
3743
|
-
_$insertNode(_el$,_el$5)
|
|
3744
|
-
_$insertNode(_el$,_el$6)
|
|
3745
|
-
_$insertNode(_el$,_el$1)
|
|
3746
|
-
_$setProp(_el$,"gap",1)
|
|
3747
|
-
_$insertNode(_el$2,_el$3)
|
|
3748
|
-
_$insert(_el$2,()=>icons.icon(props.step.icon),_el$3)
|
|
3749
|
-
_$insert(_el$2,()=>props.step.title,null)
|
|
3750
|
-
_$setProp(_el$4,"wrapMode","word")
|
|
3751
|
-
_$insert(_el$4,()=>props.step.summary)
|
|
3752
|
-
_$setProp(_el$5,"border",["top","bottom"])
|
|
3753
|
-
_$setProp(_el$5,"paddingTop",1)
|
|
3754
|
-
_$setProp(_el$5,"paddingBottom",1)
|
|
3755
|
-
_$setProp(_el$5,"gap",1)
|
|
3756
|
-
_$insert(_el$5,_$createComponent(For4,{get each(){return props.step.features
|
|
3757
|
-
},children:(feature)=>(()=>{var _el$14=_$createElement("box"),_el$15=_$createElement("text"),_el$16=_$createElement("text"),_el$17=_$createElement("b"),_el$18=_$createTextNode(` \xB7 `)
|
|
3758
|
-
_$insertNode(_el$14,_el$15)
|
|
3759
|
-
_$insertNode(_el$14,_el$16)
|
|
3760
|
-
_$setProp(_el$14,"flexDirection","row")
|
|
3761
|
-
_$setProp(_el$14,"gap",1)
|
|
3762
|
-
_$setProp(_el$15,"flexShrink",0)
|
|
3763
|
-
_$insert(_el$15,()=>icons.icon(feature.icon))
|
|
3764
|
-
_$insertNode(_el$16,_el$17)
|
|
3765
|
-
_$insertNode(_el$16,_el$18)
|
|
3766
|
-
_$setProp(_el$16,"flexGrow",1)
|
|
3767
|
-
_$setProp(_el$16,"minWidth",0)
|
|
3768
|
-
_$setProp(_el$16,"wrapMode","word")
|
|
3769
|
-
_$insert(_el$17,()=>feature.title)
|
|
3770
|
-
_$insert(_el$16,()=>feature.description,null)
|
|
3771
|
-
_$effect((_p$)=>{var _v$6=theme().accent,_v$7=theme().textMuted
|
|
3772
|
-
_v$6!==_p$.e&&(_p$.e=_$setProp(_el$15,"fg",_v$6,_p$.e))
|
|
3773
|
-
_v$7!==_p$.t&&(_p$.t=_$setProp(_el$16,"fg",_v$7,_p$.t))
|
|
3774
|
-
return _p$
|
|
3775
|
-
},{e:undefined,t:undefined
|
|
3776
|
-
})
|
|
3777
|
-
return _el$14
|
|
3778
|
-
})()
|
|
3779
|
-
}))
|
|
3780
|
-
_$insertNode(_el$6,_el$7)
|
|
3781
|
-
_$insertNode(_el$6,_el$8)
|
|
3782
|
-
_$insertNode(_el$6,_el$9)
|
|
3783
|
-
_$setProp(_el$6,"wrapMode","word")
|
|
3784
|
-
_$insert(_el$6,()=>props.preferences.toggleKey(),_el$8)
|
|
3785
|
-
_$insert(_el$6,()=>props.preferences.focusKey(),_el$9)
|
|
3786
|
-
_$insert(_el$6,()=>icons.style()==="text"?"Text fallback":"Nerd Font",null)
|
|
3787
|
-
_$setProp(_el$1,"flexDirection","row")
|
|
3788
|
-
_$setProp(_el$1,"justifyContent","space-between")
|
|
3789
|
-
_$insert(_el$1,_$createComponent(SelectionBox,{paddingLeft:1,paddingRight:1,onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
|
|
3790
|
-
props.onBack()
|
|
3791
|
-
},get children(){var _el$10=_$createElement("text"),_el$11=_$createTextNode(` Back`)
|
|
3792
|
-
_$insertNode(_el$10,_el$11)
|
|
3793
|
-
_$insert(_el$10,()=>icons.icon("left"),_el$11)
|
|
3794
|
-
_$effect((_$p)=>_$setProp(_el$10,"fg",theme().textMuted,_$p))
|
|
3795
|
-
return _el$10
|
|
3796
|
-
}}),null)
|
|
3797
|
-
_$insert(_el$1,_$createComponent(SelectionBox,{paddingLeft:1,paddingRight:1,get backgroundColor(){return theme().primary
|
|
3798
|
-
},onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
|
|
3799
|
-
props.onAdvance()
|
|
3800
|
-
},get children(){var _el$12=_$createElement("text"),_el$13=_$createTextNode(` `)
|
|
3801
|
-
_$insertNode(_el$12,_el$13)
|
|
3802
|
-
_$insert(_el$12,()=>props.final?"Configure sidebar":"Next",_el$13)
|
|
3803
|
-
_$insert(_el$12,()=>icons.icon("right"),null)
|
|
3804
|
-
_$effect((_$p)=>_$setProp(_el$12,"fg",theme().selectedListItemText,_$p))
|
|
3805
|
-
return _el$12
|
|
3806
|
-
}}),null)
|
|
3807
|
-
_$effect((_p$)=>{var _v$=theme().accent,_v$2=TextAttributes10.BOLD,_v$3=theme().textMuted,_v$4=theme().borderSubtle,_v$5=theme().textMuted
|
|
3808
|
-
_v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"fg",_v$,_p$.e))
|
|
3809
|
-
_v$2!==_p$.t&&(_p$.t=_$setProp(_el$2,"attributes",_v$2,_p$.t))
|
|
3810
|
-
_v$3!==_p$.a&&(_p$.a=_$setProp(_el$4,"fg",_v$3,_p$.a))
|
|
3811
|
-
_v$4!==_p$.o&&(_p$.o=_$setProp(_el$5,"borderColor",_v$4,_p$.o))
|
|
3812
|
-
_v$5!==_p$.i&&(_p$.i=_$setProp(_el$6,"fg",_v$5,_p$.i))
|
|
3813
|
-
return _p$
|
|
3814
|
-
},{e:undefined,t:undefined,a:undefined,o:undefined,i:undefined
|
|
3815
|
-
})
|
|
3816
|
-
return _el$
|
|
3817
|
-
})()
|
|
3818
|
-
}
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
function SectionConfig(props){const icons=useIcons()
|
|
3830
|
-
const theme=()=>props.api.theme.current
|
|
3831
|
-
const sections=SECTION_DEFINITIONS.filter((section)=>supportsSidebarSection(props.api,section.name))
|
|
3832
|
-
const finishIndex=sections.length
|
|
3833
|
-
return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("text"),_el$3=_$createTextNode(` Choose your sidebar sections`),_el$4=_$createElement("text"),_el$6=_$createElement("box")
|
|
3834
|
-
_$insertNode(_el$,_el$2)
|
|
3835
|
-
_$insertNode(_el$,_el$4)
|
|
3836
|
-
_$insertNode(_el$,_el$6)
|
|
3837
|
-
_$setProp(_el$,"gap",1)
|
|
3838
|
-
_$insertNode(_el$2,_el$3)
|
|
3839
|
-
_$insert(_el$2,()=>icons.icon("sections"),_el$3)
|
|
3840
|
-
_$insertNode(_el$4,_$createTextNode(`Select what appears now. You can change visibility, order, limits, scope, and presets later with the gear button.`))
|
|
3841
|
-
_$setProp(_el$4,"wrapMode","word")
|
|
3842
|
-
_$insert(_el$,_$createComponent(For5,{each:sections,children:(section,index)=>_$createComponent(SelectionBox,{flexDirection:"row",gap:1,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$memo(()=>props.active===index())()?theme().backgroundElement:undefined
|
|
3843
|
-
},onMouseOver:()=>props.onActive(index()),onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
|
|
3844
|
-
props.preferences.toggleSection(section.name)
|
|
3845
|
-
},get children(){return [(()=>{var _el$1=_$createElement("text")
|
|
3846
|
-
_$setProp(_el$1,"flexShrink",0)
|
|
3847
|
-
_$insert(_el$1,()=>icons.icon(props.preferences.sections()[section.name]?"checked":"unchecked"))
|
|
3848
|
-
_$effect((_$p)=>_$setProp(_el$1,"fg",props.preferences.sections()[section.name]?theme().accent:theme().textMuted,_$p))
|
|
3849
|
-
return _el$1
|
|
3850
|
-
})(),(()=>{var _el$10=_$createElement("text"),_el$11=_$createTextNode(` `)
|
|
3851
|
-
_$insertNode(_el$10,_el$11)
|
|
3852
|
-
_$insert(_el$10,()=>icons.section(section.name),_el$11)
|
|
3853
|
-
_$insert(_el$10,()=>section.label,null)
|
|
3854
|
-
_$effect((_$p)=>_$setProp(_el$10,"fg",props.active===index()?theme().text:theme().textMuted,_$p))
|
|
3855
|
-
return _el$10
|
|
3856
|
-
})()]
|
|
3705
|
+
var Content=lazy3(async ()=>{const path=import.meta.url.includes("/dist/")?"./onboarding.js":"./first-run-wizard-content"
|
|
3706
|
+
const module=await import(path)
|
|
3707
|
+
return{default:module.FirstRunWizard
|
|
3857
3708
|
}})
|
|
3858
|
-
|
|
3859
|
-
_$
|
|
3860
|
-
|
|
3861
|
-
_$insert(_el$6,_$createComponent(SelectionBox,{paddingLeft:1,paddingRight:1,onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
|
|
3862
|
-
props.onBack()
|
|
3863
|
-
},get children(){var _el$7=_$createElement("text"),_el$8=_$createTextNode(` Back`)
|
|
3864
|
-
_$insertNode(_el$7,_el$8)
|
|
3865
|
-
_$insert(_el$7,()=>icons.icon("left"),_el$8)
|
|
3866
|
-
_$effect((_$p)=>_$setProp(_el$7,"fg",theme().textMuted,_$p))
|
|
3867
|
-
return _el$7
|
|
3868
|
-
}}),null)
|
|
3869
|
-
_$insert(_el$6,_$createComponent(SelectionBox,{paddingLeft:2,paddingRight:2,get backgroundColor(){return _$memo(()=>props.active===finishIndex)()?theme().primary:undefined
|
|
3870
|
-
},onMouseOver:()=>props.onActive(finishIndex),onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
|
|
3871
|
-
props.onFinish()
|
|
3872
|
-
},get children(){var _el$9=_$createElement("text"),_el$0=_$createTextNode(` Finish`)
|
|
3873
|
-
_$insertNode(_el$9,_el$0)
|
|
3874
|
-
_$insert(_el$9,()=>icons.icon("done"),_el$0)
|
|
3875
|
-
_$effect((_$p)=>_$setProp(_el$9,"fg",props.active===finishIndex?theme().selectedListItemText:theme().textMuted,_$p))
|
|
3876
|
-
return _el$9
|
|
3877
|
-
}}),null)
|
|
3878
|
-
_$effect((_p$)=>{var _v$=theme().accent,_v$2=TextAttributes11.BOLD,_v$3=theme().textMuted
|
|
3879
|
-
_v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"fg",_v$,_p$.e))
|
|
3880
|
-
_v$2!==_p$.t&&(_p$.t=_$setProp(_el$2,"attributes",_v$2,_p$.t))
|
|
3881
|
-
_v$3!==_p$.a&&(_p$.a=_$setProp(_el$4,"fg",_v$3,_p$.a))
|
|
3882
|
-
return _p$
|
|
3883
|
-
},{e:undefined,t:undefined,a:undefined
|
|
3884
|
-
})
|
|
3709
|
+
function FirstRunWizard(props){return(()=>{var _el$=_$createElement("box")
|
|
3710
|
+
_$insert(_el$,_$createComponent(Suspense3,{get children(){return _$createComponent(Content,props)
|
|
3711
|
+
}}))
|
|
3885
3712
|
return _el$
|
|
3886
3713
|
})()
|
|
3887
3714
|
}
|
|
3888
|
-
function FirstRunWizard(props){const icons=useIcons()
|
|
3889
|
-
const dialogs=useDialogs(props.api)
|
|
3890
|
-
const [active,setActive]=createSignal14(0)
|
|
3891
|
-
const [step,setStep]=createSignal14(0)
|
|
3892
|
-
const theme=()=>props.api.theme.current
|
|
3893
|
-
const sections=SECTION_DEFINITIONS.filter((section)=>supportsSidebarSection(props.api,section.name))
|
|
3894
|
-
const finishIndex=sections.length
|
|
3895
|
-
const stepCount=ONBOARDING_STEPS.length + 1
|
|
3896
|
-
const configuring=()=>step()===ONBOARDING_STEPS.length
|
|
3897
|
-
function finish(){dialogs.back()
|
|
3898
|
-
}
|
|
3899
|
-
function move(offset){if(configuring())
|
|
3900
|
-
setActive((value)=>(value + offset + finishIndex + 1)%(finishIndex + 1))
|
|
3901
|
-
else
|
|
3902
|
-
setStep((value)=>Math.max(0,Math.min(ONBOARDING_STEPS.length,value + offset)))
|
|
3903
|
-
}
|
|
3904
|
-
function back(){setStep((value)=>Math.max(0,value-1))
|
|
3905
|
-
}
|
|
3906
|
-
function advance(){if(!configuring())
|
|
3907
|
-
setStep((value)=>Math.min(ONBOARDING_STEPS.length,value + 1))
|
|
3908
|
-
}
|
|
3909
|
-
function select(){if(!configuring()){advance()
|
|
3910
|
-
return
|
|
3911
|
-
}
|
|
3912
|
-
const index=active()
|
|
3913
|
-
if(index===finishIndex)
|
|
3914
|
-
finish()
|
|
3915
|
-
else
|
|
3916
|
-
props.preferences.toggleSection(sections[index].name)
|
|
3917
|
-
}
|
|
3918
|
-
const unregister=props.api.keymap.registerLayer({mode:"modal",priority:1000,commands:[{name:`${PLUGIN_ID}.wizard.previous`,run(){move(-1)
|
|
3919
|
-
}},{name:`${PLUGIN_ID}.wizard.next`,run(){move(1)
|
|
3920
|
-
}},{name:`${PLUGIN_ID}.wizard.select`,run:select
|
|
3921
|
-
},{name:`${PLUGIN_ID}.wizard.back`,run:back
|
|
3922
|
-
},{name:`${PLUGIN_ID}.wizard.forward`,run:advance
|
|
3923
|
-
}],bindings:[{key:"up",cmd:`${PLUGIN_ID}.wizard.previous`
|
|
3924
|
-
},{key:"down",cmd:`${PLUGIN_ID}.wizard.next`
|
|
3925
|
-
},{key:"tab",cmd:`${PLUGIN_ID}.wizard.next`
|
|
3926
|
-
},{key:"left",cmd:`${PLUGIN_ID}.wizard.back`
|
|
3927
|
-
},{key:"right",cmd:`${PLUGIN_ID}.wizard.forward`
|
|
3928
|
-
},{key:"space",cmd:`${PLUGIN_ID}.wizard.select`
|
|
3929
|
-
},{key:"return",cmd:`${PLUGIN_ID}.wizard.select`
|
|
3930
|
-
}]
|
|
3931
|
-
})
|
|
3932
|
-
onCleanup11(unregister)
|
|
3933
|
-
return _$createComponent(DialogSurface,{get api(){return props.api
|
|
3934
|
-
},get children(){return [(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("text"),_el$3=_$createTextNode(` Navigator setup`),_el$4=_$createElement("text"),_el$5=_$createTextNode(`Step `),_el$6=_$createTextNode(`/`),_el$7=_$createTextNode(` \xB7 `)
|
|
3935
|
-
_$insertNode(_el$,_el$2)
|
|
3936
|
-
_$insertNode(_el$,_el$4)
|
|
3937
|
-
_$setProp(_el$,"flexDirection","row")
|
|
3938
|
-
_$setProp(_el$,"justifyContent","space-between")
|
|
3939
|
-
_$insertNode(_el$2,_el$3)
|
|
3940
|
-
_$insert(_el$2,()=>icons.icon("help"),_el$3)
|
|
3941
|
-
_$insertNode(_el$4,_el$5)
|
|
3942
|
-
_$insertNode(_el$4,_el$6)
|
|
3943
|
-
_$insertNode(_el$4,_el$7)
|
|
3944
|
-
_$setProp(_el$4,"onMouseDown",(event)=>event.stopPropagation())
|
|
3945
|
-
_$setProp(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
|
|
3946
|
-
finish()
|
|
3947
|
-
})
|
|
3948
|
-
_$insert(_el$4,()=>step() + 1,_el$6)
|
|
3949
|
-
_$insert(_el$4,stepCount,_el$7)
|
|
3950
|
-
_$insert(_el$4,()=>icons.key("esc"),null)
|
|
3951
|
-
_$effect((_p$)=>{var _v$=TextAttributes12.BOLD,_v$2=theme().text,_v$3=theme().textMuted
|
|
3952
|
-
_v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"attributes",_v$,_p$.e))
|
|
3953
|
-
_v$2!==_p$.t&&(_p$.t=_$setProp(_el$2,"fg",_v$2,_p$.t))
|
|
3954
|
-
_v$3!==_p$.a&&(_p$.a=_$setProp(_el$4,"fg",_v$3,_p$.a))
|
|
3955
|
-
return _p$
|
|
3956
|
-
},{e:undefined,t:undefined,a:undefined
|
|
3957
|
-
})
|
|
3958
|
-
return _el$
|
|
3959
|
-
})(),_$createComponent(Show5,{get when(){return configuring()
|
|
3960
|
-
},get fallback(){return _$createComponent(OnboardingStep,{get api(){return props.api
|
|
3961
|
-
},get preferences(){return props.preferences
|
|
3962
|
-
},get step(){return ONBOARDING_STEPS[step()]
|
|
3963
|
-
},get final(){return step()===ONBOARDING_STEPS.length-1
|
|
3964
|
-
},onBack:back,onAdvance:advance
|
|
3965
|
-
})
|
|
3966
|
-
},get children(){return _$createComponent(SectionConfig,{get api(){return props.api
|
|
3967
|
-
},get preferences(){return props.preferences
|
|
3968
|
-
},get active(){return active()
|
|
3969
|
-
},onActive:setActive,onBack:back,onFinish:finish
|
|
3970
|
-
})
|
|
3971
|
-
}})]
|
|
3972
|
-
}})
|
|
3973
|
-
}
|
|
3974
3715
|
function openFirstRunWizard(api,preferences){createDialogStack(api,preferences.lspIconStyle,()=>true,preferences.cornerFont).open(()=>_$createComponent(FirstRunWizard,{api,preferences
|
|
3975
3716
|
}))
|
|
3976
3717
|
}
|
|
@@ -4013,7 +3754,7 @@ _$insertNode(_el$,_el$6)
|
|
|
4013
3754
|
_$setProp(_el$,"flexDirection","row")
|
|
4014
3755
|
_$setProp(_el$,"justifyContent","space-between")
|
|
4015
3756
|
_$setProp(_el$2,"flexGrow",1)
|
|
4016
|
-
_$insert(_el$2,_$createComponent(
|
|
3757
|
+
_$insert(_el$2,_$createComponent(Show5,{get when(){return props.onRefresh
|
|
4017
3758
|
},get children(){var _el$3=_$createElement("text"),_el$4=_$createTextNode(` Refresh (`),_el$5=_$createTextNode(`)`)
|
|
4018
3759
|
_$insertNode(_el$3,_el$4)
|
|
4019
3760
|
_$insertNode(_el$3,_el$5)
|
|
@@ -4056,7 +3797,7 @@ return(()=>{var _el$=_$createElement("box")
|
|
|
4056
3797
|
_$setProp(_el$,"flexDirection","row")
|
|
4057
3798
|
_$setProp(_el$,"flexWrap","wrap")
|
|
4058
3799
|
_$setProp(_el$,"gap",1)
|
|
4059
|
-
_$insert(_el$,_$createComponent(
|
|
3800
|
+
_$insert(_el$,_$createComponent(For4,{get each(){return props.stats
|
|
4060
3801
|
},children:(stat)=>_$createComponent(SelectionBox,{height:1,get backgroundColor(){return theme().backgroundElement
|
|
4061
3802
|
},paddingLeft:1,paddingRight:1,get children(){var _el$2=_$createElement("text"),_el$3=_$createTextNode(` `)
|
|
4062
3803
|
_$insertNode(_el$2,_el$3)
|
|
@@ -4076,7 +3817,7 @@ const dialogs=useDialogs(props.api)
|
|
|
4076
3817
|
const theme=()=>props.api.theme.current
|
|
4077
3818
|
const dimensions=useTerminalDimensions6()
|
|
4078
3819
|
const scroll=useDialogScroll()
|
|
4079
|
-
const [active,setActive]=
|
|
3820
|
+
const [active,setActive]=createSignal14("apply")
|
|
4080
3821
|
let body
|
|
4081
3822
|
const prefix=`${PLUGIN_ID}.preset-preview`
|
|
4082
3823
|
function activate(action){if(!props.valid()){dialogs.close()
|
|
@@ -4105,7 +3846,7 @@ const unregister=props.api.keymap.registerLayer({mode:"modal",priority:1000,comm
|
|
|
4105
3846
|
},{key:"ctrl+r",cmd:`${prefix}.refresh`
|
|
4106
3847
|
}]
|
|
4107
3848
|
})
|
|
4108
|
-
|
|
3849
|
+
onCleanup11(unregister)
|
|
4109
3850
|
createEffect9(()=>{if(!props.valid())
|
|
4110
3851
|
dialogs.close()
|
|
4111
3852
|
})
|
|
@@ -4147,7 +3888,7 @@ _$setProp(_el$6,"gap",1)
|
|
|
4147
3888
|
_$insert(_el$6,()=>props.children)
|
|
4148
3889
|
_$effect((_$p)=>_$setProp(_el$5,"height",Math.min(Math.max(2,Math.floor(dimensions().height*0.75)-14),Math.max(1,props.rowCount*3-1)),_$p))
|
|
4149
3890
|
return _el$5
|
|
4150
|
-
})(),_$createComponent(
|
|
3891
|
+
})(),_$createComponent(Show6,{get when(){return props.blocked||props.notice
|
|
4151
3892
|
},get children(){var _el$7=_$createElement("box"),_el$8=_$createElement("text"),_el$9=_$createElement("text")
|
|
4152
3893
|
_$insertNode(_el$7,_el$8)
|
|
4153
3894
|
_$insertNode(_el$7,_el$9)
|
|
@@ -4213,7 +3954,7 @@ _$insertNode(_el$4,_el$5)
|
|
|
4213
3954
|
_$setProp(_el$4,"flexShrink",0)
|
|
4214
3955
|
_$insert(_el$4,()=>icons.icon(props.statusIcon),_el$5)
|
|
4215
3956
|
_$insert(_el$4,()=>props.statusLabel,null)
|
|
4216
|
-
_$effect((_p$)=>{var _v$=statusColor(),_v$2=emphasized()?theme().text:theme().textMuted,_v$3=emphasized()?
|
|
3957
|
+
_$effect((_p$)=>{var _v$=statusColor(),_v$2=emphasized()?theme().text:theme().textMuted,_v$3=emphasized()?TextAttributes10.BOLD:undefined,_v$4=statusColor(),_v$5=emphasized()?TextAttributes10.BOLD:undefined
|
|
4217
3958
|
_v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"fg",_v$,_p$.e))
|
|
4218
3959
|
_v$2!==_p$.t&&(_p$.t=_$setProp(_el$3,"fg",_v$2,_p$.t))
|
|
4219
3960
|
_v$3!==_p$.a&&(_p$.a=_$setProp(_el$3,"attributes",_v$3,_p$.a))
|
|
@@ -4259,7 +4000,7 @@ if(!request)
|
|
|
4259
4000
|
return
|
|
4260
4001
|
dialogs.close()
|
|
4261
4002
|
reportMcpApplyError(props.api,request)
|
|
4262
|
-
},get children(){return _$createComponent(
|
|
4003
|
+
},get children(){return _$createComponent(For5,{get each(){return rows()
|
|
4263
4004
|
},children:(row)=>_$createComponent(PresetPreviewRow,_$mergeProps({get api(){return props.api
|
|
4264
4005
|
}},row))
|
|
4265
4006
|
})
|
|
@@ -4359,12 +4100,12 @@ dialogs.open(()=>_$createComponent(SelectionMenu,{api,title:"MCP presets",get op
|
|
|
4359
4100
|
|
|
4360
4101
|
|
|
4361
4102
|
|
|
4362
|
-
var
|
|
4103
|
+
var Content2=lazy4(async ()=>{const path=import.meta.url.includes("/dist/")?"./sidebar-settings.js":"./settings-dialog-content"
|
|
4363
4104
|
const module=await import(path)
|
|
4364
4105
|
return{default:module.SettingsDialog
|
|
4365
4106
|
}})
|
|
4366
4107
|
function SettingsDialog(props){return(()=>{var _el$=_$createElement("box")
|
|
4367
|
-
_$insert(_el$,_$createComponent(
|
|
4108
|
+
_$insert(_el$,_$createComponent(Suspense4,{get children(){return _$createComponent(Content2,props)
|
|
4368
4109
|
}}))
|
|
4369
4110
|
return _el$
|
|
4370
4111
|
})()
|
|
@@ -4399,7 +4140,7 @@ function SettingsBinding(props){const unregister=props.api.keymap.registerLayer(
|
|
|
4399
4140
|
},cmd:`${PLUGIN_ID}.settings`
|
|
4400
4141
|
}]
|
|
4401
4142
|
})
|
|
4402
|
-
|
|
4143
|
+
onCleanup13(unregister)
|
|
4403
4144
|
return _$createElement("box")
|
|
4404
4145
|
}
|
|
4405
4146
|
|
|
@@ -4427,14 +4168,14 @@ observed=current
|
|
|
4427
4168
|
props.preferences.setAutoApprovePermissions(current)
|
|
4428
4169
|
})
|
|
4429
4170
|
if(unsubscribe)
|
|
4430
|
-
|
|
4171
|
+
onCleanup14(unsubscribe)
|
|
4431
4172
|
return _$createElement("box")
|
|
4432
4173
|
}
|
|
4433
4174
|
|
|
4434
4175
|
|
|
4435
4176
|
|
|
4436
4177
|
function SettingsFooterButton(props){const icons=useIcons()
|
|
4437
|
-
const [hovered,setHovered]=
|
|
4178
|
+
const [hovered,setHovered]=createSignal15(false)
|
|
4438
4179
|
const theme=()=>props.api.theme.current
|
|
4439
4180
|
return _$createComponent(IconControl,{id:`${PLUGIN_ID}.settings.footer`,get icon(){return icons.icon("settings")
|
|
4440
4181
|
},get foregroundColor(){return _$memo(()=>!!hovered())()?theme().text:theme().textMuted
|
|
@@ -4446,7 +4187,7 @@ return _$createComponent(IconControl,{id:`${PLUGIN_ID}.settings.footer`,get icon
|
|
|
4446
4187
|
|
|
4447
4188
|
|
|
4448
4189
|
var services=new WeakMap
|
|
4449
|
-
function createSlot(){const [read,write]=
|
|
4190
|
+
function createSlot(){const [read,write]=createSignal16()
|
|
4450
4191
|
return{read,write}}
|
|
4451
4192
|
function slot(api){let entry=services.get(api)
|
|
4452
4193
|
if(!entry){entry=createSlot()
|
|
@@ -4476,7 +4217,7 @@ var CANCEL_COMMAND=`${PLUGIN_ID}.sidebar-shortcuts.cancel`
|
|
|
4476
4217
|
var MODE=`${PLUGIN_ID}.sidebar-shortcuts`
|
|
4477
4218
|
var DEFAULT_TIMEOUT_MS=5000
|
|
4478
4219
|
function createSidebarShortcutMode(api,options={}){const actions=sidebarShortcutActions(api)
|
|
4479
|
-
const [active,setActive]=
|
|
4220
|
+
const [active,setActive]=createSignal17(false)
|
|
4480
4221
|
const timeoutMs=options.timeoutMs??DEFAULT_TIMEOUT_MS
|
|
4481
4222
|
let shortcutKey=""
|
|
4482
4223
|
let unregisterBinding
|
|
@@ -4526,7 +4267,7 @@ unregisterBinding=undefined
|
|
|
4526
4267
|
unregisterCommands()
|
|
4527
4268
|
}}}
|
|
4528
4269
|
|
|
4529
|
-
var SidebarShortcutHint=
|
|
4270
|
+
var SidebarShortcutHint=lazy5(()=>{const path=import.meta.url.includes("/dist/tui.js")?"./sidebar-shortcuts.js":"../../../sidebar-shortcuts"
|
|
4530
4271
|
return import(path)
|
|
4531
4272
|
});
|
|
4532
4273
|
|
|
@@ -4616,17 +4357,17 @@ function StartupSessionBinding(props){if(props.api.keymap.on){const unregister=p
|
|
|
4616
4357
|
return
|
|
4617
4358
|
queueMicrotask(()=>void props.controller.start())
|
|
4618
4359
|
})
|
|
4619
|
-
|
|
4360
|
+
onCleanup15(unregister)
|
|
4620
4361
|
} else
|
|
4621
4362
|
createEffect13(()=>{if(!props.controller.enabled())
|
|
4622
4363
|
return
|
|
4623
4364
|
const unregister=props.api.keymap.registerLayer({mode:"global",priority:2001,commands:[{name:"session.new",title:"New session",category:"Session",namespace:"palette",enabled:props.controller.enabled,run:()=>void props.controller.start()
|
|
4624
4365
|
}]
|
|
4625
4366
|
})
|
|
4626
|
-
|
|
4367
|
+
onCleanup15(unregister)
|
|
4627
4368
|
})
|
|
4628
4369
|
onMount5(()=>void props.controller.initialize())
|
|
4629
|
-
|
|
4370
|
+
onCleanup15(props.controller.dispose)
|
|
4630
4371
|
return _$createElement("box")
|
|
4631
4372
|
}
|
|
4632
4373
|
|
|
@@ -4655,7 +4396,7 @@ if(entries.length===0||disposed)
|
|
|
4655
4396
|
return
|
|
4656
4397
|
show()
|
|
4657
4398
|
} catch{}})
|
|
4658
|
-
|
|
4399
|
+
onCleanup16(()=>{disposed=true
|
|
4659
4400
|
clearTimeout(pending)
|
|
4660
4401
|
})
|
|
4661
4402
|
return _$createElement("box")
|
|
@@ -4786,9 +4527,9 @@ return false
|
|
|
4786
4527
|
return true
|
|
4787
4528
|
}
|
|
4788
4529
|
function createSidebarInteraction(api,showHelp=()=>openKeyboardHelp(api)){const descriptors=new Map
|
|
4789
|
-
const [selectedId,setSelectedId]=
|
|
4790
|
-
const [focusWithin,setFocusWithin]=
|
|
4791
|
-
const [revision,setRevision]=
|
|
4530
|
+
const [selectedId,setSelectedId]=createSignal20()
|
|
4531
|
+
const [focusWithin,setFocusWithin]=createSignal20(false)
|
|
4532
|
+
const [revision,setRevision]=createSignal20(0)
|
|
4792
4533
|
let titleRoot
|
|
4793
4534
|
let contentRoot
|
|
4794
4535
|
let targetedRoot
|
|
@@ -5057,14 +4798,14 @@ else if(highlighted)
|
|
|
5057
4798
|
foregroundColor=theme.selectedListItemText
|
|
5058
4799
|
return{backgroundColor,foregroundColor}}
|
|
5059
4800
|
function useSidebarItem(api,interaction,descriptor,normalColor=()=>api.theme.current.text,mode="row"){let unregister
|
|
5060
|
-
const [hovered,setHovered]=
|
|
4801
|
+
const [hovered,setHovered]=createSignal21(false)
|
|
5061
4802
|
const disabled=()=>descriptor.disabled?.()===true
|
|
5062
4803
|
const focused=()=>Boolean(interaction?.ownsFocus()&&interaction.isSelected(descriptor.id))
|
|
5063
4804
|
const colors=()=>sidebarInteractiveColors(api.theme.current,{focused:focused(),hovered:hovered(),disabled:disabled()},normalColor(),mode)
|
|
5064
4805
|
const ref=(renderable)=>{unregister?.()
|
|
5065
4806
|
unregister=interaction?.register({...descriptor,renderable})
|
|
5066
4807
|
}
|
|
5067
|
-
|
|
4808
|
+
onCleanup18(()=>unregister?.())
|
|
5068
4809
|
return{ref,disabled,focused,backgroundColor:()=>colors().backgroundColor,foregroundColor:()=>colors().foregroundColor,onMouseOver:()=>setHovered(true),onMouseOut:()=>setHovered(false),select(event){interaction?.mouseSelect(descriptor.id,event)
|
|
5069
4810
|
},activate(event){if(interaction)
|
|
5070
4811
|
return interaction.mouseActivate(descriptor.id,event)
|
|
@@ -5075,7 +4816,7 @@ return true
|
|
|
5075
4816
|
}}}
|
|
5076
4817
|
function LspBadge(props){const icons=useIcons()
|
|
5077
4818
|
const isKnown=lspIconName(props.id)!==undefined
|
|
5078
|
-
const [showName,setShowName]=
|
|
4819
|
+
const [showName,setShowName]=createSignal22(false)
|
|
5079
4820
|
const statusColor=()=>props.status==="connected"?props.api.theme.current.success:props.api.theme.current.error
|
|
5080
4821
|
if(!isKnown){return(()=>{var _el$=_$createElement("text")
|
|
5081
4822
|
_$setProp(_el$,"flexShrink",1)
|
|
@@ -5100,7 +4841,7 @@ _$setProp(_el$2,"flexShrink",0)
|
|
|
5100
4841
|
_$insert(_el$2,()=>lspIcon(props.id,props.iconStyle??icons.style()))
|
|
5101
4842
|
_$effect((_$p)=>_$setProp(_el$2,"fg",item.foregroundColor(),_$p))
|
|
5102
4843
|
return _el$2
|
|
5103
|
-
})(),_$createComponent(
|
|
4844
|
+
})(),_$createComponent(Show10,{get when(){return showName()
|
|
5104
4845
|
},get children(){var _el$3=_$createElement("text")
|
|
5105
4846
|
_$setProp(_el$3,"flexShrink",0)
|
|
5106
4847
|
_$setProp(_el$3,"wrapMode","none")
|
|
@@ -5118,7 +4859,7 @@ return _el$3
|
|
|
5118
4859
|
|
|
5119
4860
|
|
|
5120
4861
|
|
|
5121
|
-
function createListVisibility(options){const [expanded,setExpanded]=
|
|
4862
|
+
function createListVisibility(options){const [expanded,setExpanded]=createSignal23(false)
|
|
5122
4863
|
let previousKey
|
|
5123
4864
|
let previousLimit
|
|
5124
4865
|
const canToggle=createMemo8(()=>options.limit()>0&&options.items().length>options.limit())
|
|
@@ -5155,7 +4896,7 @@ else
|
|
|
5155
4896
|
props.visibility.showAll()
|
|
5156
4897
|
queueMicrotask(()=>props.interaction?.select(id))
|
|
5157
4898
|
}})
|
|
5158
|
-
return _$createComponent(
|
|
4899
|
+
return _$createComponent(Show11,{get when(){return props.visibility.canToggle()
|
|
5159
4900
|
},get children(){return _$createComponent(SelectionBox,{ref(r$){var _ref$=item.ref
|
|
5160
4901
|
typeof _ref$==="function"?_ref$(r$):item.ref=r$
|
|
5161
4902
|
},id,paddingLeft:1,paddingRight:1,get backgroundColor(){return item.backgroundColor()
|
|
@@ -5205,7 +4946,7 @@ result += segment
|
|
|
5205
4946
|
}
|
|
5206
4947
|
return result + ellipsis
|
|
5207
4948
|
}
|
|
5208
|
-
function SectionHeaderControl(props){const [width,setWidth]=
|
|
4949
|
+
function SectionHeaderControl(props){const [width,setWidth]=createSignal24()
|
|
5209
4950
|
const control=useSidebarItem(props.api,props.interaction,{id:props.action.id,position:()=>props.position,disabled:props.action.disabled,activate:props.action.onActivate
|
|
5210
4951
|
},()=>props.api.theme.current.accent,"control")
|
|
5211
4952
|
createEffect14(on(()=>[props.action.label(),props.resetWidth],()=>setWidth(undefined)))
|
|
@@ -5230,7 +4971,7 @@ return _el$
|
|
|
5230
4971
|
}})
|
|
5231
4972
|
}
|
|
5232
4973
|
function Section(props){const icons=useIcons()
|
|
5233
|
-
const [headerWidth,setHeaderWidth]=
|
|
4974
|
+
const [headerWidth,setHeaderWidth]=createSignal25(0)
|
|
5234
4975
|
const icon=()=>props.section?icons.section(props.section):props.icon
|
|
5235
4976
|
const theme=()=>props.api.theme.current
|
|
5236
4977
|
const item=useSidebarItem(props.api,props.interaction,{id:props.sectionId??`section.${props.title}`,position:()=>({section:props.navigationSection??0,row:0,column:0
|
|
@@ -5272,7 +5013,7 @@ _$setProp(_el$7,"flexGrow",1)
|
|
|
5272
5013
|
_$setProp(_el$7,"minWidth",0)
|
|
5273
5014
|
_$setProp(_el$7,"justifyContent","flex-end")
|
|
5274
5015
|
_$insert(_el$7,()=>props.headerControls,null)
|
|
5275
|
-
_$insert(_el$7,_$createComponent(
|
|
5016
|
+
_$insert(_el$7,_$createComponent(Show12,{get when(){return props.headerAction
|
|
5276
5017
|
},children:(action)=>_$createComponent(SectionHeaderControl,{get api(){return props.api
|
|
5277
5018
|
},get interaction(){return props.interaction
|
|
5278
5019
|
},get action(){return action()
|
|
@@ -5280,7 +5021,7 @@ _$insert(_el$7,_$createComponent(Show13,{get when(){return props.headerAction
|
|
|
5280
5021
|
},get position(){return{section:props.navigationSection??0,row:0,column:1
|
|
5281
5022
|
}}})
|
|
5282
5023
|
}),null)
|
|
5283
|
-
_$insert(_el$7,_$createComponent(
|
|
5024
|
+
_$insert(_el$7,_$createComponent(Show12,{get when(){return props.summary
|
|
5284
5025
|
},get children(){var _el$8=_$createElement("text")
|
|
5285
5026
|
_$setProp(_el$8,"wrapMode","none")
|
|
5286
5027
|
_$setProp(_el$8,"truncate",true)
|
|
@@ -5297,7 +5038,7 @@ return _el$8
|
|
|
5297
5038
|
return _el$7
|
|
5298
5039
|
})()]
|
|
5299
5040
|
}}),null)
|
|
5300
|
-
_$insert(_el$,_$createComponent(
|
|
5041
|
+
_$insert(_el$,_$createComponent(Show12,{get when(){return props.open
|
|
5301
5042
|
},get children(){return props.children
|
|
5302
5043
|
}}),null)
|
|
5303
5044
|
return _el$
|
|
@@ -5315,7 +5056,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
5315
5056
|
},sectionId:`${PLUGIN_ID}.section.lsp`,get navigationSection(){return navigationSection()
|
|
5316
5057
|
},title:"LSP",section:"lsp",get summary(){return `${connected()}/${list().length}`
|
|
5317
5058
|
},get open(){return props.preferences.expanded().lsp
|
|
5318
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("lsp"),get children(){return [_$createComponent(
|
|
5059
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("lsp"),get children(){return [_$createComponent(Show13,{get when(){return list().length>0
|
|
5319
5060
|
},get fallback(){return(()=>{var _el$2=_$createElement("text")
|
|
5320
5061
|
_$insert(_el$2,()=>disabled()?"LSP is disabled":"Activates as files are read")
|
|
5321
5062
|
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -5327,7 +5068,7 @@ _$setProp(_el$,"flexWrap","wrap")
|
|
|
5327
5068
|
_$setProp(_el$,"gap",1)
|
|
5328
5069
|
_$setProp(_el$,"paddingLeft",1)
|
|
5329
5070
|
_$setProp(_el$,"paddingRight",1)
|
|
5330
|
-
_$insert(_el$,_$createComponent(
|
|
5071
|
+
_$insert(_el$,_$createComponent(For10,{get each(){return visibility.visible()
|
|
5331
5072
|
},children:(item,index)=>_$createComponent(LspBadge,{get api(){return props.api
|
|
5332
5073
|
},get interaction(){return props.interaction
|
|
5333
5074
|
},get id(){return item.id
|
|
@@ -5440,7 +5181,7 @@ _$insert(_el$,_$createComponent(McpBulkAction,{get api(){return props.api
|
|
|
5440
5181
|
}),null)
|
|
5441
5182
|
_$effect((_$p)=>_$setProp(_el$,"paddingBottom",model.bulkRunning()||model.bulk().status==="error"?1:0,_$p))
|
|
5442
5183
|
return _el$
|
|
5443
|
-
})(),_$createComponent(
|
|
5184
|
+
})(),_$createComponent(Show14,{get when(){return model.bulkRunning()
|
|
5444
5185
|
},get children(){var _el$2=_$createElement("text"),_el$3=_$createTextNode(` `),_el$4=_$createTextNode(`/`),_el$5=_$createTextNode(`\u2026`)
|
|
5445
5186
|
_$insertNode(_el$2,_el$3)
|
|
5446
5187
|
_$insertNode(_el$2,_el$4)
|
|
@@ -5450,7 +5191,7 @@ _$insert(_el$2,()=>model.bulk().completed,_el$4)
|
|
|
5450
5191
|
_$insert(_el$2,()=>model.bulk().total,_el$5)
|
|
5451
5192
|
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
5452
5193
|
return _el$2
|
|
5453
|
-
}}),_$createComponent(
|
|
5194
|
+
}}),_$createComponent(Show14,{get when(){return model.bulk().status==="error"
|
|
5454
5195
|
},get children(){return _$createComponent(McpBulkAction,{get api(){return props.api
|
|
5455
5196
|
},get interaction(){return props.interaction
|
|
5456
5197
|
},id:`${PLUGIN_ID}.mcp.retry-all`,get position(){return{section:props.navigationSection,row:3,column:0
|
|
@@ -5530,7 +5271,7 @@ return _el$4
|
|
|
5530
5271
|
function RequestErrorRow(props){const icons=useIcons()
|
|
5531
5272
|
const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>props.position,disabled:()=>!props.state.error?.retryable||props.state.status==="loading"||props.state.status==="refreshing",activate:props.onRetry
|
|
5532
5273
|
})
|
|
5533
|
-
return _$createComponent(
|
|
5274
|
+
return _$createComponent(Show15,{get when(){return props.state.error
|
|
5534
5275
|
},children:(error)=>_$createComponent(SelectionBox,{ref:(node)=>item.ref(node),get id(){return props.id
|
|
5535
5276
|
},flexDirection:"row",gap:1,paddingLeft:1,paddingRight:1,get backgroundColor(){return item.backgroundColor()
|
|
5536
5277
|
},get onMouseOver(){return item.onMouseOver
|
|
@@ -5545,7 +5286,7 @@ _$insert(_el$,()=>icons.icon("error"),_el$2)
|
|
|
5545
5286
|
_$insert(_el$,()=>error().message,null)
|
|
5546
5287
|
_$effect((_$p)=>_$setProp(_el$,"fg",item.focused()?item.foregroundColor():props.api.theme.current.error,_$p))
|
|
5547
5288
|
return _el$
|
|
5548
|
-
})(),_$createComponent(
|
|
5289
|
+
})(),_$createComponent(Show15,{get when(){return error().retryable
|
|
5549
5290
|
},get children(){var _el$3=_$createElement("text"),_el$4=_$createTextNode(` Retry`)
|
|
5550
5291
|
_$insertNode(_el$3,_el$4)
|
|
5551
5292
|
_$setProp(_el$3,"flexShrink",0)
|
|
@@ -5560,7 +5301,7 @@ function SectionRequestBody(props){const icons=useIcons()
|
|
|
5560
5301
|
const pending=()=>props.state.status==="loading"
|
|
5561
5302
|
return(()=>{var _el$5=_$createElement("box")
|
|
5562
5303
|
_$insert(_el$5,_$createComponent(RequestErrorRow,props),null)
|
|
5563
|
-
_$insert(_el$5,_$createComponent(
|
|
5304
|
+
_$insert(_el$5,_$createComponent(Show15,{get when(){return _$memo(()=>!!pending())()&&!props.hasItems
|
|
5564
5305
|
},get children(){var _el$6=_$createElement("text"),_el$7=_$createTextNode(` `)
|
|
5565
5306
|
_$insertNode(_el$6,_el$7)
|
|
5566
5307
|
_$insert(_el$6,()=>icons.icon("pending"),_el$7)
|
|
@@ -5568,10 +5309,10 @@ _$insert(_el$6,()=>props.loading,null)
|
|
|
5568
5309
|
_$effect((_$p)=>_$setProp(_el$6,"fg",props.api.theme.current.textMuted,_$p))
|
|
5569
5310
|
return _el$6
|
|
5570
5311
|
}}),null)
|
|
5571
|
-
_$insert(_el$5,_$createComponent(
|
|
5312
|
+
_$insert(_el$5,_$createComponent(Show15,{get when(){return props.hasItems
|
|
5572
5313
|
},get children(){return props.children
|
|
5573
5314
|
}}),null)
|
|
5574
|
-
_$insert(_el$5,_$createComponent(
|
|
5315
|
+
_$insert(_el$5,_$createComponent(Show15,{get when(){return _$memo(()=>!!((props.state.status==="ready"||props.state.status==="refreshing")&&!props.hasItems))()&&!props.state.error
|
|
5575
5316
|
},get children(){var _el$8=_$createElement("text"),_el$9=_$createTextNode(` `)
|
|
5576
5317
|
_$insertNode(_el$8,_el$9)
|
|
5577
5318
|
_$insert(_el$8,()=>icons.icon("info"),_el$9)
|
|
@@ -5588,8 +5329,8 @@ return _el$5
|
|
|
5588
5329
|
function createSidebarBookmark(input){const{api,interaction,row,position,favorite,disabled,onToggle
|
|
5589
5330
|
}=input
|
|
5590
5331
|
const id=`${input.id}.favorite`
|
|
5591
|
-
const [rowHovered,setRowHovered]=
|
|
5592
|
-
const [controlHovered,setControlHovered]=
|
|
5332
|
+
const [rowHovered,setRowHovered]=createSignal26(false)
|
|
5333
|
+
const [controlHovered,setControlHovered]=createSignal26(false)
|
|
5593
5334
|
const control=useSidebarItem(api,interaction,{id,position:()=>({...position(),column:0
|
|
5594
5335
|
}),disabled,activate:()=>{onToggle()
|
|
5595
5336
|
queueMicrotask(()=>interaction?.select(id))
|
|
@@ -5705,7 +5446,7 @@ return _el$2
|
|
|
5705
5446
|
function SectionFilter(props){const icons=useIcons()
|
|
5706
5447
|
let input
|
|
5707
5448
|
let unregisterInput
|
|
5708
|
-
const [inputFocused,setInputFocused]=
|
|
5449
|
+
const [inputFocused,setInputFocused]=createSignal27(false)
|
|
5709
5450
|
const theme=()=>props.api.theme.current
|
|
5710
5451
|
const item=useSidebarItem(props.api,props.interaction,{id:props.id??`filter.${props.placeholder}`,position:()=>props.position??{section:0,row:0,column:0
|
|
5711
5452
|
},activate:()=>{if(!input)
|
|
@@ -5726,7 +5467,7 @@ props.interaction.leaveFilter(input)
|
|
|
5726
5467
|
else
|
|
5727
5468
|
input?.blur()
|
|
5728
5469
|
}
|
|
5729
|
-
|
|
5470
|
+
onCleanup19(()=>unregisterInput?.())
|
|
5730
5471
|
return _$createComponent(SelectionBox,{ref:(node)=>item.ref(node),get id(){return props.id
|
|
5731
5472
|
},flexDirection:"row",gap:1,marginTop:1,marginBottom:1,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$memo(()=>!!highlighted())()?theme().primary:item.backgroundColor()
|
|
5732
5473
|
},get onMouseOver(){return item.onMouseOver
|
|
@@ -5764,7 +5505,7 @@ return _p$
|
|
|
5764
5505
|
},{e:undefined,t:undefined,a:undefined,o:undefined,i:undefined,n:undefined,s:undefined,h:undefined
|
|
5765
5506
|
})
|
|
5766
5507
|
return _el$2
|
|
5767
|
-
})(),_$createComponent(
|
|
5508
|
+
})(),_$createComponent(Show16,{get when(){return props.query
|
|
5768
5509
|
},get children(){var _el$3=_$createElement("text")
|
|
5769
5510
|
_$setProp(_el$3,"flexShrink",0)
|
|
5770
5511
|
_$setProp(_el$3,"onMouseDown",()=>props.onInput(""))
|
|
@@ -5793,7 +5534,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
|
|
|
5793
5534
|
}},get query(){return props.query
|
|
5794
5535
|
},placeholder:"Filter MCP...",get onInput(){return props.onQuery
|
|
5795
5536
|
}}),null)
|
|
5796
|
-
_$insert(_el$,_$createComponent(
|
|
5537
|
+
_$insert(_el$,_$createComponent(Show17,{get when(){return model.filtered().length>0
|
|
5797
5538
|
},get fallback(){return(()=>{var _el$2=_$createElement("text")
|
|
5798
5539
|
_$insertNode(_el$2,_$createTextNode(`No matching MCP servers`))
|
|
5799
5540
|
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -5803,8 +5544,8 @@ return _el$2
|
|
|
5803
5544
|
},get interaction(){return props.interaction
|
|
5804
5545
|
},get grouped(){return model.grouped
|
|
5805
5546
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
5806
|
-
},get children(){return _$createComponent(
|
|
5807
|
-
},children:(item,index)=>[_$createComponent(
|
|
5547
|
+
},get children(){return _$createComponent(For11,{get each(){return model.visibility.visible()
|
|
5548
|
+
},children:(item,index)=>[_$createComponent(Show17,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
|
|
5808
5549
|
},get children(){return _$createComponent(McpGroupHeader,{get api(){return props.api
|
|
5809
5550
|
},get interaction(){return props.interaction
|
|
5810
5551
|
},get bucket(){return item.bucket
|
|
@@ -5835,7 +5576,7 @@ return _el$
|
|
|
5835
5576
|
}})
|
|
5836
5577
|
}
|
|
5837
5578
|
function McpSection(props){const icons=useIcons()
|
|
5838
|
-
const [query,setQuery]=
|
|
5579
|
+
const [query,setQuery]=createSignal28("")
|
|
5839
5580
|
const model=createMcpSectionModel(props,query)
|
|
5840
5581
|
const navigationSection=()=>props.navigationSection??6
|
|
5841
5582
|
const summary=createMemo11(()=>`${model.active()}/${model.list().length}${model.errors() ? ` \xB7 ${model.errors()} ${icons.icon("error")}` : ""}`)
|
|
@@ -5975,7 +5716,7 @@ function QuickActionRow(props){const{api,interaction
|
|
|
5975
5716
|
const icons=useIcons()
|
|
5976
5717
|
const toolbar=useToolbar()
|
|
5977
5718
|
const theme=()=>api.theme.current
|
|
5978
|
-
const [width,setWidth]=
|
|
5719
|
+
const [width,setWidth]=createSignal33(0)
|
|
5979
5720
|
const shortcut=createMemo12(()=>{const bindings=api.keymap.getCommandBindings({visibility:"registered",commands:[props.action.command]
|
|
5980
5721
|
})
|
|
5981
5722
|
return api.keys.formatBindings(bindings.get(props.action.command))
|
|
@@ -6019,7 +5760,7 @@ _$insert(_el$2,()=>props.action.label)
|
|
|
6019
5760
|
_$effect((_$p)=>_$setProp(_el$2,"fg",row.foregroundColor(),_$p))
|
|
6020
5761
|
return _el$2
|
|
6021
5762
|
})()
|
|
6022
|
-
},get metadata(){return _$createComponent(
|
|
5763
|
+
},get metadata(){return _$createComponent(Show24,{get when(){return visibleShortcut()
|
|
6023
5764
|
},children:(value)=>(()=>{var _el$3=_$createElement("text")
|
|
6024
5765
|
_$setProp(_el$3,"flexShrink",0)
|
|
6025
5766
|
_$setProp(_el$3,"wrapMode","none")
|
|
@@ -6028,12 +5769,12 @@ _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme()
|
|
|
6028
5769
|
return _el$3
|
|
6029
5770
|
})()
|
|
6030
5771
|
})
|
|
6031
|
-
},get trailing(){return _$createComponent(
|
|
5772
|
+
},get trailing(){return _$createComponent(Show24,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
|
|
6032
5773
|
},get position(){return props.position
|
|
6033
5774
|
},get pin(){return{kind:"action",id:props.action.command,icon:"bolt"
|
|
6034
5775
|
}}})
|
|
6035
5776
|
}})
|
|
6036
|
-
},get details(){return _$createComponent(
|
|
5777
|
+
},get details(){return _$createComponent(Show24,{get when(){return props.disabled
|
|
6037
5778
|
},children:(reason)=>(()=>{var _el$4=_$createElement("text")
|
|
6038
5779
|
_$setProp(_el$4,"wrapMode","word")
|
|
6039
5780
|
_$insert(_el$4,reason)
|
|
@@ -6061,12 +5802,12 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6061
5802
|
},onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children(){return [_$createComponent(SidebarRowList,{get api(){return props.api
|
|
6062
5803
|
},get interaction(){return props.interaction
|
|
6063
5804
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6064
|
-
},get children(){return [_$createComponent(
|
|
5805
|
+
},get children(){return [_$createComponent(Show25,{get when(){return actions().length===0
|
|
6065
5806
|
},get children(){var _el$=_$createElement("text")
|
|
6066
5807
|
_$insertNode(_el$,_$createTextNode(`No quick actions selected`))
|
|
6067
5808
|
_$effect((_$p)=>_$setProp(_el$,"fg",props.api.theme.current.textMuted,_$p))
|
|
6068
5809
|
return _el$
|
|
6069
|
-
}}),_$createComponent(
|
|
5810
|
+
}}),_$createComponent(For14,{get each(){return visibility.visible().map((action)=>action.command)
|
|
6070
5811
|
},children:(id,index)=>_$createComponent(QuickActionRow,{get onNewSession(){return props.onNewSession
|
|
6071
5812
|
},get action(){return visibility.visible()[index()]
|
|
6072
5813
|
},get disabled(){return visibility.visible()[index()].disabled
|
|
@@ -6134,15 +5875,15 @@ untrack6(()=>shortcuts.bind(key))
|
|
|
6134
5875
|
createEffect16(()=>{if(shortcuts.active()&&(props.api.route.current.name!=="session"||props.api.ui.dialog.open||props.api.mode.current()==="modal"))
|
|
6135
5876
|
untrack6(shortcuts.cancel)
|
|
6136
5877
|
})
|
|
6137
|
-
|
|
5878
|
+
onCleanup20(shortcuts.dispose)
|
|
6138
5879
|
return(()=>{var _el$=_$createElement("box")
|
|
6139
5880
|
_$setProp(_el$,"position","absolute")
|
|
6140
5881
|
_$setProp(_el$,"top",0)
|
|
6141
5882
|
_$setProp(_el$,"left",0)
|
|
6142
5883
|
_$setProp(_el$,"width","100%")
|
|
6143
5884
|
_$setProp(_el$,"height","100%")
|
|
6144
|
-
_$insert(_el$,_$createComponent(
|
|
6145
|
-
},get children(){return _$createComponent(
|
|
5885
|
+
_$insert(_el$,_$createComponent(Show26,{get when(){return shortcuts.active()
|
|
5886
|
+
},get children(){return _$createComponent(Suspense5,{get children(){return _$createComponent(SidebarShortcutHint,{get api(){return props.api
|
|
6146
5887
|
},get actions(){return shortcuts.actions
|
|
6147
5888
|
}})
|
|
6148
5889
|
}})
|
|
@@ -6156,11 +5897,11 @@ const unregisterCommands=props.api.keymap.registerLayer({commands:[...commands,.
|
|
|
6156
5897
|
})=>({name:name.replace(PLUGIN_ID,()=>LEGACY_PLUGIN_ID),run,enabled
|
|
6157
5898
|
}))]
|
|
6158
5899
|
})
|
|
6159
|
-
|
|
5900
|
+
onCleanup20(unregisterCommands)
|
|
6160
5901
|
createEffect16(()=>{const unregister=props.api.keymap.registerLayer({bindings:[{key:props.preferences.focusKey(),cmd:FOCUS_COMMAND
|
|
6161
5902
|
}]
|
|
6162
5903
|
})
|
|
6163
|
-
|
|
5904
|
+
onCleanup20(unregister)
|
|
6164
5905
|
})
|
|
6165
5906
|
return _$createElement("box")
|
|
6166
5907
|
}
|
|
@@ -6226,7 +5967,7 @@ createEffect17(()=>{if(!needsSkills())
|
|
|
6226
5967
|
return
|
|
6227
5968
|
const current=target()
|
|
6228
5969
|
const release=untrack7(()=>props.skills.activate(current))
|
|
6229
|
-
|
|
5970
|
+
onCleanup21(release)
|
|
6230
5971
|
untrack7(()=>{props.skills.refresh(current).catch(()=>{})
|
|
6231
5972
|
})
|
|
6232
5973
|
})
|
|
@@ -6272,14 +6013,14 @@ return{pins,view,run,width:toolbarPinWidth}}
|
|
|
6272
6013
|
|
|
6273
6014
|
function ToolbarButton(props){const icons=useIcons()
|
|
6274
6015
|
const foreground=()=>props.reason?props.api.theme.current.textMuted:item.foregroundColor()
|
|
6275
|
-
const [hovered,setHovered]=
|
|
6016
|
+
const [hovered,setHovered]=createSignal34(false)
|
|
6276
6017
|
const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>({section:0,row:props.row + 1,column:props.column
|
|
6277
6018
|
}),activate:props.onRun
|
|
6278
6019
|
},()=>props.reason?props.api.theme.current.textMuted:props.api.theme.current.accent,"control")
|
|
6279
6020
|
const content=()=>[props.icons.map((icon)=>terminalIcon(icon,icons.style())).join(" "),props.text].filter(Boolean).join(" ")
|
|
6280
6021
|
createEffect18(()=>props.onDetails(props.id,item.focused()||hovered()))
|
|
6281
|
-
|
|
6282
|
-
return _$createComponent(
|
|
6022
|
+
onCleanup22(()=>props.onDetails(props.id,false))
|
|
6023
|
+
return _$createComponent(Show27,{get when(){return _$memo(()=>!!(props.width===3&&props.icons.length===1))()&&!props.text
|
|
6283
6024
|
},get fallback(){return _$createComponent(SelectionBox,{get id(){return props.id
|
|
6284
6025
|
},ref(r$){var _ref$2=item.ref
|
|
6285
6026
|
typeof _ref$2==="function"?_ref$2(r$):item.ref=r$
|
|
@@ -6319,8 +6060,8 @@ setHovered(false)
|
|
|
6319
6060
|
}
|
|
6320
6061
|
function SidebarToolbar(props){const model=createToolbarModel(props)
|
|
6321
6062
|
const icons=useIcons()
|
|
6322
|
-
const [width,setWidth]=
|
|
6323
|
-
const [detail,setDetail]=
|
|
6063
|
+
const [width,setWidth]=createSignal35(3)
|
|
6064
|
+
const [detail,setDetail]=createSignal35()
|
|
6324
6065
|
const keys=createMemo15(()=>model.pins().map((pin)=>toolbarPinKey(pin)))
|
|
6325
6066
|
const widths=createMemo15(()=>new Map(model.pins().map((pin)=>[toolbarPinKey(pin),model.width(pin)])))
|
|
6326
6067
|
const layout=createMemo15(()=>toolbarLayout(keys(),width(),props.preferences.toolbarOverflow?.()??"menu",widths()))
|
|
@@ -6348,17 +6089,17 @@ dialogs.close()
|
|
|
6348
6089
|
model.run(option.value)
|
|
6349
6090
|
}}))
|
|
6350
6091
|
}
|
|
6351
|
-
return _$createComponent(
|
|
6092
|
+
return _$createComponent(Show28,{get when(){return keys().length>0
|
|
6352
6093
|
},get children(){var _el$=_$createElement("box")
|
|
6353
6094
|
_$setProp(_el$,"id","opencode-navigator.toolbar")
|
|
6354
6095
|
_$setProp(_el$,"overflow","visible")
|
|
6355
6096
|
_$setProp(_el$,"onSizeChange",function(){setWidth(this.width)
|
|
6356
6097
|
})
|
|
6357
|
-
_$insert(_el$,_$createComponent(
|
|
6098
|
+
_$insert(_el$,_$createComponent(For15,{get each(){return rows()
|
|
6358
6099
|
},children:(row)=>(()=>{var _el$2=_$createElement("box")
|
|
6359
6100
|
_$setProp(_el$2,"flexDirection","row")
|
|
6360
6101
|
_$setProp(_el$2,"gap",1)
|
|
6361
|
-
_$insert(_el$2,_$createComponent(
|
|
6102
|
+
_$insert(_el$2,_$createComponent(For15,{get each(){return layout().rows[row]
|
|
6362
6103
|
},children:(key,column)=>_$createComponent(ToolbarButton,_$mergeProps(props,{id:`opencode-navigator.toolbar.${key}`,row,get column(){return column()
|
|
6363
6104
|
},get label(){return view(key)?.label??"More"
|
|
6364
6105
|
},get icons(){return key==="toolbar:more"?["list"]:view(key)?.icons??["bolt"]
|
|
@@ -6371,7 +6112,7 @@ _$insert(_el$2,_$createComponent(For17,{get each(){return layout().rows[row]
|
|
|
6371
6112
|
return _el$2
|
|
6372
6113
|
})()
|
|
6373
6114
|
}),null)
|
|
6374
|
-
_$insert(_el$,_$createComponent(
|
|
6115
|
+
_$insert(_el$,_$createComponent(Show28,{get when(){return details()
|
|
6375
6116
|
},children:(text)=>(()=>{var _el$3=_$createElement("text")
|
|
6376
6117
|
_$setProp(_el$3,"position","absolute")
|
|
6377
6118
|
_$setProp(_el$3,"left",0)
|
|
@@ -6413,7 +6154,7 @@ const visibility=createListVisibility({items:filtered,limit:()=>props.preference
|
|
|
6413
6154
|
const state=createMemo16(()=>props.controller.state(target()))
|
|
6414
6155
|
createEffect19(()=>{const current=target()
|
|
6415
6156
|
const deactivate=untrack8(()=>props.controller.activate?.(current)??(()=>{}))
|
|
6416
|
-
|
|
6157
|
+
onCleanup23(deactivate)
|
|
6417
6158
|
untrack8(()=>void props.controller.refresh(current).catch(()=>{}))
|
|
6418
6159
|
})
|
|
6419
6160
|
async function useSkill(item){try{const isInserted=await props.controller.use(target(),item.name)
|
|
@@ -6465,7 +6206,7 @@ _$insert(_el$,()=>props.item.name,null)
|
|
|
6465
6206
|
_$effect((_$p)=>_$setProp(_el$,"fg",row.foregroundColor(),_$p))
|
|
6466
6207
|
return _el$
|
|
6467
6208
|
})()
|
|
6468
|
-
},get trailing(){return _$createComponent(
|
|
6209
|
+
},get trailing(){return _$createComponent(Show29,{when:toolbar,get children(){return _$createComponent(SidebarPinControl,{get id(){return id()
|
|
6469
6210
|
},get position(){return props.position
|
|
6470
6211
|
},get pin(){return{kind:"skill",name:props.item.name,location:props.item.location,icon:"book"
|
|
6471
6212
|
}}})
|
|
@@ -6474,7 +6215,7 @@ return _el$
|
|
|
6474
6215
|
}
|
|
6475
6216
|
function SkillsSection(props){const dialogs=useDialogs(props.api)
|
|
6476
6217
|
const toolbar=useToolbar()
|
|
6477
|
-
const [query,setQuery]=
|
|
6218
|
+
const [query,setQuery]=createSignal36("")
|
|
6478
6219
|
const model=createSkillSectionModel(props,query)
|
|
6479
6220
|
const navigationSection=()=>props.navigationSection??3
|
|
6480
6221
|
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"
|
|
@@ -6498,7 +6239,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
|
|
|
6498
6239
|
}},get query(){return query()
|
|
6499
6240
|
},placeholder:"Filter skills...",onInput:setQuery
|
|
6500
6241
|
}),null)
|
|
6501
|
-
_$insert(_el$,_$createComponent(
|
|
6242
|
+
_$insert(_el$,_$createComponent(Show30,{get when(){return model.filtered().length>0
|
|
6502
6243
|
},get fallback(){return(()=>{var _el$2=_$createElement("text")
|
|
6503
6244
|
_$insertNode(_el$2,_$createTextNode(`No matching skills`))
|
|
6504
6245
|
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6508,8 +6249,8 @@ return _el$2
|
|
|
6508
6249
|
},get interaction(){return props.interaction
|
|
6509
6250
|
},get grouped(){return model.grouped
|
|
6510
6251
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6511
|
-
},get children(){return _$createComponent(
|
|
6512
|
-
},children:(item,index)=>[_$createComponent(
|
|
6252
|
+
},get children(){return _$createComponent(For16,{get each(){return model.visibility.visible()
|
|
6253
|
+
},children:(item,index)=>[_$createComponent(Show30,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
|
|
6513
6254
|
},get children(){var _el$4=_$createElement("text")
|
|
6514
6255
|
_$setProp(_el$4,"height",1)
|
|
6515
6256
|
_$setProp(_el$4,"wrapMode","none")
|
|
@@ -6554,8 +6295,8 @@ return _el$
|
|
|
6554
6295
|
function createSubagentSectionModel(props){const list=createMemo17(()=>props.controller.list(props.sessionID))
|
|
6555
6296
|
const recent=createMemo17(()=>props.controller.recent?.(props.sessionID)??[])
|
|
6556
6297
|
const rows=createMemo17(()=>buildSubagentView(list(),recent()))
|
|
6557
|
-
const [query,setQuery]=
|
|
6558
|
-
const [mode,setMode]=
|
|
6298
|
+
const [query,setQuery]=createSignal37("")
|
|
6299
|
+
const [mode,setMode]=createSignal37("all")
|
|
6559
6300
|
const counts=createMemo17(()=>countSubagentView(rows(),query()))
|
|
6560
6301
|
const tabs=createMemo17(()=>["all","active","recent",...counts().errors>0?["errors"]:[]])
|
|
6561
6302
|
const filtered=createMemo17(()=>filterSubagentView(rows(),mode(),query()))
|
|
@@ -6578,7 +6319,7 @@ const state=createMemo17(()=>props.controller.state(props.sessionID))
|
|
|
6578
6319
|
createEffect20(()=>{const sessionID=props.sessionID
|
|
6579
6320
|
targetKey()
|
|
6580
6321
|
const deactivate=untrack9(()=>props.controller.activate?.(sessionID)??(()=>{}))
|
|
6581
|
-
|
|
6322
|
+
onCleanup24(deactivate)
|
|
6582
6323
|
untrack9(()=>void props.controller.refresh(sessionID).catch(()=>{}))
|
|
6583
6324
|
})
|
|
6584
6325
|
return{list,recent,rows,query,setQuery,mode,setMode,counts,tabs,filtered,parentID,visibility,now,byId,ids,state
|
|
@@ -6636,7 +6377,7 @@ return()=>_c$()?`${props.item.run.startedBeforeObservation ? `${icons.icon("rece
|
|
|
6636
6377
|
_$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
|
|
6637
6378
|
return _el$3
|
|
6638
6379
|
})()
|
|
6639
|
-
},get details(){return [_$createComponent(
|
|
6380
|
+
},get details(){return [_$createComponent(Show31,{get when(){return props.item.run?.errorMessage
|
|
6640
6381
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createTextNode(`: `)
|
|
6641
6382
|
_$insertNode(_el$4,_el$5)
|
|
6642
6383
|
_$setProp(_el$4,"wrapMode","word")
|
|
@@ -6644,12 +6385,12 @@ _$insert(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
|
|
|
6644
6385
|
_$insert(_el$4,()=>props.item.run?.errorMessage,null)
|
|
6645
6386
|
_$effect((_$p)=>_$setProp(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
|
|
6646
6387
|
return _el$4
|
|
6647
|
-
}}),_$createComponent(
|
|
6388
|
+
}}),_$createComponent(Show31,{get when(){return props.item.unavailable
|
|
6648
6389
|
},get children(){var _el$6=_$createElement("text")
|
|
6649
6390
|
_$insertNode(_el$6,_$createTextNode(`Worker status unavailable`))
|
|
6650
6391
|
_$effect((_$p)=>_$setProp(_el$6,"fg",theme().warning,_$p))
|
|
6651
6392
|
return _el$6
|
|
6652
|
-
}}),_$createComponent(
|
|
6393
|
+
}}),_$createComponent(Show31,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
|
|
6653
6394
|
},children:(status)=>(()=>{var _el$0=_$createElement("text"),_el$1=_$createTextNode(`Retry #`),_el$10=_$createTextNode(` \xB7 `),_el$11=_$createTextNode(`s \xB7 `)
|
|
6654
6395
|
_$insertNode(_el$0,_el$1)
|
|
6655
6396
|
_$insertNode(_el$0,_el$10)
|
|
@@ -6661,7 +6402,7 @@ _$insert(_el$0,()=>status().message,null)
|
|
|
6661
6402
|
_$effect((_$p)=>_$setProp(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
|
|
6662
6403
|
return _el$0
|
|
6663
6404
|
})()
|
|
6664
|
-
}),_$createComponent(
|
|
6405
|
+
}),_$createComponent(Show31,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
|
|
6665
6406
|
},get children(){var _el$8=_$createElement("text")
|
|
6666
6407
|
_$insertNode(_el$8,_$createTextNode(`Finished`))
|
|
6667
6408
|
_$effect((_$p)=>_$setProp(_el$8,"fg",theme().textMuted,_$p))
|
|
@@ -6672,12 +6413,12 @@ return _el$8
|
|
|
6672
6413
|
function SubagentList(props){return _$createComponent(SidebarRowList,{get api(){return props.api
|
|
6673
6414
|
},get interaction(){return props.interaction
|
|
6674
6415
|
},get density(){return props.density
|
|
6675
|
-
},get children(){return _$createComponent(
|
|
6416
|
+
},get children(){return _$createComponent(For17,{get each(){return props.ids
|
|
6676
6417
|
},children:(id,index)=>{const initial=props.itemById(id)
|
|
6677
6418
|
const item=()=>props.itemById(id)??initial
|
|
6678
6419
|
const startsGroup=()=>index()===0||props.visible[index()-1]?.group!==item().group
|
|
6679
6420
|
return(()=>{var _el$=_$createElement("box")
|
|
6680
|
-
_$insert(_el$,_$createComponent(
|
|
6421
|
+
_$insert(_el$,_$createComponent(Show32,{get when(){return startsGroup()
|
|
6681
6422
|
},get children(){var _el$2=_$createElement("text"),_el$3=_$createElement("b")
|
|
6682
6423
|
_$insertNode(_el$2,_el$3)
|
|
6683
6424
|
_$insert(_el$3,()=>item().group)
|
|
@@ -6703,7 +6444,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6703
6444
|
},sectionId:`${PLUGIN_ID}.section.subagents`,get navigationSection(){return navigationSection()
|
|
6704
6445
|
},title:"SUBAGENTS",section:"subagents",get summary(){return `${model.list().length} active \xB7 ${model.recent().length} recent`
|
|
6705
6446
|
},get open(){return props.preferences.expanded().subagents
|
|
6706
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(
|
|
6447
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show33,{get when(){return model.parentID()
|
|
6707
6448
|
},children:(id)=>_$createComponent(McpBulkAction,{get api(){return props.api
|
|
6708
6449
|
},get interaction(){return props.interaction
|
|
6709
6450
|
},id:`${PLUGIN_ID}.subagents.parent`,get position(){return{section:navigationSection(),row:1,column:0
|
|
@@ -6726,7 +6467,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
|
|
|
6726
6467
|
}}),_el$2)
|
|
6727
6468
|
_$setProp(_el$2,"flexDirection","row")
|
|
6728
6469
|
_$setProp(_el$2,"flexWrap","wrap")
|
|
6729
|
-
_$insert(_el$2,_$createComponent(
|
|
6470
|
+
_$insert(_el$2,_$createComponent(For18,{get each(){return model.tabs()
|
|
6730
6471
|
},children:(value,index)=>_$createComponent(SectionTab,{get api(){return props.api
|
|
6731
6472
|
},get interaction(){return props.interaction
|
|
6732
6473
|
},id:`${PLUGIN_ID}.subagents.filter.${value}`,get position(){return{section:navigationSection(),row:4,column:index()
|
|
@@ -6737,7 +6478,7 @@ _$insert(_el$2,_$createComponent(For20,{get each(){return model.tabs()
|
|
|
6737
6478
|
},onActivate:()=>model.setMode(value)
|
|
6738
6479
|
})
|
|
6739
6480
|
}))
|
|
6740
|
-
_$insert(_el$,_$createComponent(
|
|
6481
|
+
_$insert(_el$,_$createComponent(Show33,{get when(){return model.filtered().length===0
|
|
6741
6482
|
},get children(){var _el$3=_$createElement("text")
|
|
6742
6483
|
_$insertNode(_el$3,_$createTextNode(`No matching subagents`))
|
|
6743
6484
|
_$effect((_$p)=>_$setProp(_el$3,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6778,13 +6519,36 @@ return _el$
|
|
|
6778
6519
|
|
|
6779
6520
|
|
|
6780
6521
|
|
|
6522
|
+
|
|
6523
|
+
|
|
6781
6524
|
function NativeTodoNotice(props){const icons=useIcons()
|
|
6782
|
-
|
|
6525
|
+
const state=()=>props.setup?.state(props.sessionID)
|
|
6526
|
+
const failed=()=>state()?.status==="error"
|
|
6527
|
+
const disabled=()=>state()?.enabled===false
|
|
6528
|
+
const message=()=>{if(failed())
|
|
6529
|
+
return state()?.error
|
|
6530
|
+
if(state()?.status==="loading"&&state()?.enabled===undefined)
|
|
6531
|
+
return "Checking native Todo configuration\u2026"
|
|
6532
|
+
if(disabled())
|
|
6533
|
+
return "Native OpenCode Todo is disabled. Enable it to let the built-in todowrite tool manage tasks."
|
|
6534
|
+
return "Native OpenCode Todo. Edit tasks through chat and todowrite."
|
|
6535
|
+
}
|
|
6536
|
+
return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("text"),_el$3=_$createTextNode(` `)
|
|
6783
6537
|
_$insertNode(_el$,_el$2)
|
|
6784
|
-
_$
|
|
6785
|
-
_$
|
|
6786
|
-
_$insert(_el
|
|
6787
|
-
_$
|
|
6538
|
+
_$insertNode(_el$2,_el$3)
|
|
6539
|
+
_$setProp(_el$2,"wrapMode","word")
|
|
6540
|
+
_$insert(_el$2,()=>icons.icon("info"),_el$3)
|
|
6541
|
+
_$insert(_el$2,message,null)
|
|
6542
|
+
_$insert(_el$,_$createComponent(Show34,{get when(){return _$memo(()=>!!props.setup)()&&(disabled()||failed())
|
|
6543
|
+
},get children(){return _$createComponent(SectionTab,{get api(){return props.api
|
|
6544
|
+
},get interaction(){return props.interaction
|
|
6545
|
+
},id:"opencode-navigator.todo.setup",get position(){return{section:props.navigationSection,row:2,column:0
|
|
6546
|
+
}},get label(){return failed()?"Retry Todo configuration":"Enable Todo\u2026"
|
|
6547
|
+
},selected:false,get disabled(){return state()?.status==="saving"
|
|
6548
|
+
},onActivate:()=>failed()?void props.setup?.refresh(props.sessionID):props.setup?.configure(props.sessionID)
|
|
6549
|
+
})
|
|
6550
|
+
}}),null)
|
|
6551
|
+
_$effect((_$p)=>_$setProp(_el$2,"fg",failed()?props.api.theme.current.warning:props.api.theme.current.textMuted,_$p))
|
|
6788
6552
|
return _el$
|
|
6789
6553
|
})()
|
|
6790
6554
|
}
|
|
@@ -6848,7 +6612,7 @@ _$insert(_el$5,priorityLabel,null)
|
|
|
6848
6612
|
_$effect((_$p)=>_$setProp(_el$4,"fg",priorityColor(),_$p))
|
|
6849
6613
|
return _el$4
|
|
6850
6614
|
}}),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()?
|
|
6615
|
+
_$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
|
|
6852
6616
|
_v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"fg",_v$,_p$.e))
|
|
6853
6617
|
_v$2!==_p$.t&&(_p$.t=_$setProp(_el$3,"fg",_v$2,_p$.t))
|
|
6854
6618
|
_v$3!==_p$.a&&(_p$.a=_$setProp(_el$3,"attributes",_v$3,_p$.a))
|
|
@@ -6859,13 +6623,13 @@ return _el$
|
|
|
6859
6623
|
})()
|
|
6860
6624
|
}
|
|
6861
6625
|
function TodoContents(props){const navigationSection=()=>props.navigationSection??1
|
|
6862
|
-
const tabsRow=()=>props.managed?3:2
|
|
6626
|
+
const tabsRow=()=>(props.managed?3:2) + (props.navigationOffset??0)
|
|
6863
6627
|
return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("box")
|
|
6864
6628
|
_$insertNode(_el$,_el$2)
|
|
6865
6629
|
_$setProp(_el$,"gap",1)
|
|
6866
6630
|
_$setProp(_el$2,"flexDirection","row")
|
|
6867
6631
|
_$setProp(_el$2,"flexWrap","wrap")
|
|
6868
|
-
_$insert(_el$2,_$createComponent(
|
|
6632
|
+
_$insert(_el$2,_$createComponent(For19,{each:["all","active","finished"],children:(value,index)=>_$createComponent(SectionTab,{get api(){return props.api
|
|
6869
6633
|
},get interaction(){return props.interaction
|
|
6870
6634
|
},id:`${PLUGIN_ID}.todo.filter.${value}`,get position(){return{section:navigationSection(),row:tabsRow(),column:index()
|
|
6871
6635
|
}},get label(){return value[0].toUpperCase() + value.slice(1)
|
|
@@ -6881,7 +6645,7 @@ _$insert(_el$,_$createComponent(Show36,{get when(){return props.view.rows.length
|
|
|
6881
6645
|
},get children(){return _$createComponent(SidebarRowList,{get api(){return props.api
|
|
6882
6646
|
},get interaction(){return props.interaction
|
|
6883
6647
|
},get density(){return props.density
|
|
6884
|
-
},get children(){return _$createComponent(
|
|
6648
|
+
},get children(){return _$createComponent(For19,{get each(){return props.visibility.visible()
|
|
6885
6649
|
},children:(row,index)=>{const startsGroup=()=>index()===0||props.visibility.visible()[index()-1].group!==row.group
|
|
6886
6650
|
return(()=>{var _el$3=_$createElement("box")
|
|
6887
6651
|
_$insert(_el$3,_$createComponent(Show36,{get when(){return startsGroup()
|
|
@@ -6947,7 +6711,9 @@ const icons=useIcons()
|
|
|
6947
6711
|
const unavailable=()=>hostCapabilityUnavailable(props.api,"todo")
|
|
6948
6712
|
const managed=()=>("guidance" in props.controller)?props.controller:undefined
|
|
6949
6713
|
const native=()=>("source" in props.controller)&&props.controller.source==="native"
|
|
6950
|
-
const
|
|
6714
|
+
const setup=()=>("setup" in props.controller)?props.controller.setup:undefined
|
|
6715
|
+
const setupState=()=>setup()?.state(props.sessionID)
|
|
6716
|
+
const [mode,setMode]=createSignal38("all")
|
|
6951
6717
|
const targetKey=createMemo18(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
|
|
6952
6718
|
createEffect21(()=>{targetKey()
|
|
6953
6719
|
setMode("all")
|
|
@@ -6961,8 +6727,9 @@ targetKey()
|
|
|
6961
6727
|
if(unavailable())
|
|
6962
6728
|
return
|
|
6963
6729
|
const deactivate=untrack10(()=>props.controller.activate?.(sessionID)??(()=>{}))
|
|
6964
|
-
|
|
6730
|
+
onCleanup25(deactivate)
|
|
6965
6731
|
untrack10(()=>void props.controller.refresh(sessionID).catch(()=>{}))
|
|
6732
|
+
untrack10(()=>void setup()?.refresh(sessionID).catch(()=>{}))
|
|
6966
6733
|
})
|
|
6967
6734
|
const navigationSection=()=>props.navigationSection??1
|
|
6968
6735
|
return _$createComponent(Section,{get api(){return props.api
|
|
@@ -6970,6 +6737,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6970
6737
|
},sectionId:`${PLUGIN_ID}.section.todo`,get navigationSection(){return navigationSection()
|
|
6971
6738
|
},title:"TODO",section:"todo",get summary(){return _$memo(()=>!!(unavailable()||managed()?.missing(props.sessionID)))()?"\u2014":`${view().counts.completed}/${list().length}`
|
|
6972
6739
|
},get headerAction(){return native()?{id:`${PLUGIN_ID}.todo.refresh`,label:()=>`${icons.icon("retry")} Refresh`,disabled:()=>state().status==="loading"||state().status==="refreshing",onActivate:()=>{props.controller.refresh(props.sessionID).catch(()=>{})
|
|
6740
|
+
setup()?.refresh(props.sessionID).catch(()=>{})
|
|
6973
6741
|
}}:undefined
|
|
6974
6742
|
},get open(){return props.preferences.expanded().todo
|
|
6975
6743
|
},onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show38,{get when(){return unavailable()
|
|
@@ -6977,7 +6745,10 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6977
6745
|
_$setProp(_el$,"gap",1)
|
|
6978
6746
|
_$insert(_el$,_$createComponent(Show38,{get when(){return native()
|
|
6979
6747
|
},get children(){return _$createComponent(NativeTodoNotice,{get api(){return props.api
|
|
6980
|
-
},get
|
|
6748
|
+
},get setup(){return setup()
|
|
6749
|
+
},get sessionID(){return props.sessionID
|
|
6750
|
+
},get interaction(){return props.interaction
|
|
6751
|
+
},get navigationSection(){return navigationSection()
|
|
6981
6752
|
}})
|
|
6982
6753
|
}}),null)
|
|
6983
6754
|
_$insert(_el$,_$createComponent(Show38,{get when(){return managed()?.guidance(props.sessionID).available
|
|
@@ -7001,6 +6772,7 @@ _$insert(_el$,_$createComponent(Show38,{get when(){return managed()?.missing(pro
|
|
|
7001
6772
|
},setMode,get view(){return view()
|
|
7002
6773
|
},visibility,get density(){return props.preferences.rowDensity?.()??"compact"
|
|
7003
6774
|
},get managed(){return Boolean(managed())
|
|
6775
|
+
},get navigationOffset(){return setupState()?.enabled===false||setupState()?.status==="error"?1:0
|
|
7004
6776
|
}})
|
|
7005
6777
|
}})
|
|
7006
6778
|
},get children(){var _el$2=_$createElement("text"),_el$3=_$createTextNode(` Navigator Todo needs a separate OpenCode 2 server plugin. See the README setup steps and restart OpenCode.`)
|
|
@@ -7025,7 +6797,7 @@ return _el$4
|
|
|
7025
6797
|
}
|
|
7026
6798
|
function SidebarContent(props){const sections=props.preferences.sections
|
|
7027
6799
|
const visibleSections=createMemo19(()=>props.preferences.sectionOrder().filter((section)=>sections()[section]&&supportsSidebarSection(props.api,section)))
|
|
7028
|
-
|
|
6800
|
+
onCleanup26(()=>props.interaction.setContentRoot(undefined))
|
|
7029
6801
|
return _$createComponent(ToolbarProvider,{get api(){return props.api
|
|
7030
6802
|
},get preferences(){return props.preferences
|
|
7031
6803
|
},get skills(){return props.skills
|
|
@@ -7041,7 +6813,7 @@ event.stopPropagation()
|
|
|
7041
6813
|
props.interaction.leave()
|
|
7042
6814
|
})
|
|
7043
6815
|
_$insert(_el$,_$createComponent(SidebarToolbar,props),null)
|
|
7044
|
-
_$insert(_el$,_$createComponent(
|
|
6816
|
+
_$insert(_el$,_$createComponent(For20,{get each(){return visibleSections()
|
|
7045
6817
|
},children:(section,index)=>_$createComponent(SectionBoundary,{get api(){return props.api
|
|
7046
6818
|
},get divided(){return index()<visibleSections().length-1
|
|
7047
6819
|
},get children(){return _$createComponent(Switch,{get children(){return [_$createComponent(Match,{when:section==="limits",get children(){return props.limitsSection(index() + 1)
|
|
@@ -7085,7 +6857,7 @@ const params="params" in route?route.params:undefined
|
|
|
7085
6857
|
if(typeof params?.sessionID!=="string")
|
|
7086
6858
|
return
|
|
7087
6859
|
const current=props.controller.target()
|
|
7088
|
-
|
|
6860
|
+
onCleanup27(()=>props.controller.deactivate(current))
|
|
7089
6861
|
untrack11(()=>void props.controller.activate(current).catch(()=>{}))
|
|
7090
6862
|
})
|
|
7091
6863
|
return _$createElement("box")
|
|
@@ -7125,7 +6897,7 @@ const settingsId=`${PLUGIN_ID}.settings`
|
|
|
7125
6897
|
const settings=useSidebarItem(props.api,props.interaction,{id:settingsId,position:{section:0,row:0,column:0
|
|
7126
6898
|
},activate:()=>openSettings(props.api,props.preferences,undefined,props.mcp,props.skills)
|
|
7127
6899
|
},()=>theme().textMuted,"control")
|
|
7128
|
-
|
|
6900
|
+
onCleanup28(()=>props.interaction.setTitleRoot(undefined))
|
|
7129
6901
|
return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("box"),_el$3=_$createElement("box")
|
|
7130
6902
|
_$insertNode(_el$,_el$2)
|
|
7131
6903
|
_$use((node)=>props.interaction.setTitleRoot(node),_el$)
|
|
@@ -7210,15 +6982,15 @@ await options.accountSource.refresh(model)
|
|
|
7210
6982
|
if(!disposed&&target===targetKey())
|
|
7211
6983
|
await options.controller.refresh()
|
|
7212
6984
|
}
|
|
7213
|
-
createEffect23(on2(interval,(milliseconds)=>{
|
|
6985
|
+
createEffect23(on2(interval,(milliseconds)=>{onCleanup29(schedule(()=>void refresh().catch(()=>{}),milliseconds))
|
|
7214
6986
|
}))
|
|
7215
|
-
|
|
6987
|
+
onCleanup29(()=>{disposed=true
|
|
7216
6988
|
})
|
|
7217
6989
|
}
|
|
7218
6990
|
function LimitsPersistence(props){createLimitsRefresh(props)
|
|
7219
6991
|
return _$createElement("box")
|
|
7220
6992
|
}
|
|
7221
|
-
function bindNavigatorAbout(api,status,updates,notes){const dispose=registerNavigatorAboutServices(api,{navigatorVersion:"0.
|
|
6993
|
+
function bindNavigatorAbout(api,status,updates,notes){const dispose=registerNavigatorAboutServices(api,{navigatorVersion:"0.25.0",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()
|
|
7222
6994
|
if(target)
|
|
7223
6995
|
updates.navigator(target,dialogs)
|
|
7224
6996
|
},changelog:async ()=>notes.parseChangelog(await notes.readBundledChangelog())
|
|
@@ -7354,7 +7126,7 @@ context.keymap.dispatch(command.id)
|
|
|
7354
7126
|
context.renderer.keyInput.on("keypress",onKeypress)
|
|
7355
7127
|
const keymap={registerLayer(layer){const id=++sequence
|
|
7356
7128
|
const owner=getOwner()
|
|
7357
|
-
const [active,setActive]=
|
|
7129
|
+
const [active,setActive]=createSignal39(true)
|
|
7358
7130
|
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)
|
|
7359
7131
|
}))
|
|
7360
7132
|
}
|
|
@@ -7399,7 +7171,7 @@ cleanups.clear()
|
|
|
7399
7171
|
context.renderer.keyInput.off("keypress",onKeypress)
|
|
7400
7172
|
}}}
|
|
7401
7173
|
|
|
7402
|
-
function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=
|
|
7174
|
+
function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=createSignal40({})
|
|
7403
7175
|
const projections=new WeakMap
|
|
7404
7176
|
function normalize(info){const directory=info.location.directory
|
|
7405
7177
|
const workspaceID=context.location?.directory===directory?context.location.workspaceID:undefined
|
|
@@ -7469,7 +7241,7 @@ function DialogPrompt(props){return _$createComponent(SingleLinePrompt,_$mergePr
|
|
|
7469
7241
|
}},props))
|
|
7470
7242
|
}
|
|
7471
7243
|
function DialogConfirm(props){let active=true
|
|
7472
|
-
|
|
7244
|
+
onCleanup30(()=>{active=false
|
|
7473
7245
|
})
|
|
7474
7246
|
onMount7(async ()=>{const confirmed=await context.ui.dialog.confirm({title:props.title,message:props.message
|
|
7475
7247
|
})
|
|
@@ -7534,7 +7306,7 @@ context.ui.router.navigate({type:"plugin",name,data:params})
|
|
|
7534
7306
|
},attention:context.attention,lifecycle:{signal:controller.signal,onDispose},slots:createV2Slots(context,(dispose)=>{onDispose(dispose)
|
|
7535
7307
|
})
|
|
7536
7308
|
}
|
|
7537
|
-
setHostCapabilities(api,{todo:true,lsp:false,titleVisibility:false,permissionMode:false,commandsReachableOnly:true
|
|
7309
|
+
setHostCapabilities(api,{todo:true,lsp:false,titleVisibility:false,permissionMode:false,commandsReachableOnly:true,nativeTodo:true
|
|
7538
7310
|
})
|
|
7539
7311
|
bindToolbarActionState(context,api)
|
|
7540
7312
|
return{api,async dispose(){controller.abort()
|
|
@@ -7675,11 +7447,15 @@ const subagents=createSubagentController(api,{source:nativeSources?.subagents
|
|
|
7675
7447
|
})
|
|
7676
7448
|
const skills=createSkillController(api,nativeSources?.skills)
|
|
7677
7449
|
const preferences=createPreferencesController(api,config,createPreferencesStore(api.state.path.state),configured)
|
|
7450
|
+
if(hostContext){const setupPath=import.meta.url.includes("/dist/tui.js")?"./native-todo-setup.js":"../native-todo-setup"
|
|
7451
|
+
const setup=await import(setupPath)
|
|
7452
|
+
todo.setup=setup.createOpenCodeV2TodoSetup(hostContext,api,preferences,todo.target)
|
|
7453
|
+
}
|
|
7678
7454
|
const limitsPath=import.meta.url.includes("/dist/tui.js")?"./provider-limits.js":"../provider-limits"
|
|
7679
7455
|
const limitsModule=await import(limitsPath)
|
|
7680
7456
|
const LimitsSection=limitsModule.ProviderLimitsSection
|
|
7681
7457
|
const{controller:limits,codex,accountSource,selectModel,modelSelection
|
|
7682
|
-
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.
|
|
7458
|
+
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.25.0",hostContext)
|
|
7683
7459
|
const mcp=createMcpController(api,preferences.persistMcp,preferences,nativeSources?.mcp)
|
|
7684
7460
|
const interaction=createSidebarInteraction(api,()=>openKeyboardHelp(api,preferences.lspIconStyle,preferences.cornerFont,sidebarShortcutActions(api)))
|
|
7685
7461
|
const startup=createStartupSessionController(api,preferences)
|
|
@@ -7708,7 +7484,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
|
|
|
7708
7484
|
},interaction,skills,subagents,mcp
|
|
7709
7485
|
}),_$createComponent(FirstRunWizardPersistence,{api,preferences
|
|
7710
7486
|
}),_$createComponent(StartupSessionBinding,{api,controller:startup
|
|
7711
|
-
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.
|
|
7487
|
+
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.25.0"
|
|
7712
7488
|
}),_$createComponent(McpPersistence,{api,controller:mcp
|
|
7713
7489
|
})]
|
|
7714
7490
|
}})
|
|
@@ -7742,13 +7518,13 @@ return result.data?.type==="text"?result.data.content:undefined
|
|
|
7742
7518
|
const updateServices=await loadNavigatorUpdates()
|
|
7743
7519
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV1VersionUpdater
|
|
7744
7520
|
}=updateServices
|
|
7745
|
-
const versionStatus=createVersionStatus(api,"0.
|
|
7746
|
-
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.
|
|
7521
|
+
const versionStatus=createVersionStatus(api,"0.25.0")
|
|
7522
|
+
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.25.0"))
|
|
7747
7523
|
bindNavigatorAbout(api,versionStatus,versionUpdates,updateServices)
|
|
7748
7524
|
api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7749
7525
|
},get multilineCorners(){return preferences.cornerFont
|
|
7750
7526
|
},get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
|
|
7751
|
-
},navigatorVersion:"0.
|
|
7527
|
+
},navigatorVersion:"0.25.0",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7752
7528
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7753
7529
|
}})
|
|
7754
7530
|
}})
|
|
@@ -7765,8 +7541,8 @@ return new TextDecoder().decode(await context.client.file.read({location:context
|
|
|
7765
7541
|
const updateServices=await loadNavigatorUpdates()
|
|
7766
7542
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV2VersionUpdater
|
|
7767
7543
|
}=updateServices
|
|
7768
|
-
const versionStatus=createVersionStatus(adapter.api,"0.
|
|
7769
|
-
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.
|
|
7544
|
+
const versionStatus=createVersionStatus(adapter.api,"0.25.0")
|
|
7545
|
+
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.25.0"))
|
|
7770
7546
|
bindNavigatorAbout(adapter.api,versionStatus,versionUpdates,updateServices)
|
|
7771
7547
|
const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7772
7548
|
},get multilineCorners(){return preferences.cornerFont
|
|
@@ -7774,7 +7550,7 @@ const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$create
|
|
|
7774
7550
|
_$setProp(_el$,"flexDirection","row")
|
|
7775
7551
|
_$setProp(_el$,"justifyContent","space-between")
|
|
7776
7552
|
_$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
|
|
7777
|
-
},navigatorVersion:"0.
|
|
7553
|
+
},navigatorVersion:"0.25.0",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7778
7554
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7779
7555
|
}}),null)
|
|
7780
7556
|
_$insert(_el$,_$createComponent(SettingsFooterButton,{get api(){return adapter.api
|