opencode-navigator 0.27.1 → 0.27.2
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 +8 -0
- package/HOST_API.md +22 -3
- package/README.md +18 -2
- package/dist/gui-experimental.cjs +973 -502
- package/dist/navigator-updates.js +85 -29
- package/dist/tui.js +155 -76
- package/package.json +1 -1
- package/scripts/update-local-snapshot.mjs +13 -1
package/dist/tui.js
CHANGED
|
@@ -84,7 +84,7 @@ const session=sessionID?api.state.session.get(sessionID):undefined
|
|
|
84
84
|
const directory=session?.directory??api.state.path.directory
|
|
85
85
|
const workspace=session?.workspaceID
|
|
86
86
|
return{key:JSON.stringify([directory,workspace??null]),routing:{directory,...workspace&&{workspace}}}}
|
|
87
|
-
import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,onCleanup as onCleanup2,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup3,Show,createEffect as createEffect4,Show as Show2,splitProps as splitProps3,createEffect as createEffect5,createSignal as createSignal4,onCleanup as onCleanup4,onMount,Suspense,lazy,batch,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup5,Show as Show3,batch as batch2,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect6,createSignal as createSignal9,onCleanup as onCleanup6,createSignal as createSignal10,createSignal as createSignal11,Suspense as Suspense2,lazy as lazy2,Index,onCleanup as onCleanup7,createEffect as createEffect8,onCleanup as onCleanup10,batch as batch3,createEffect as createEffect7,createMemo,createSignal as createSignal13,onCleanup as onCleanup9,onMount as onMount2,createSignal as createSignal12,onCleanup as onCleanup8,For as For2,For as For3,Show as Show4,createMemo as createMemo2,Suspense as Suspense3,lazy as lazy3,For as For6,createMemo as createMemo4,onMount as onMount4,For as For5,createMemo as createMemo3,onMount as onMount3,Show as Show6,createEffect as createEffect9,createSignal as createSignal14,onCleanup as onCleanup11,Show as Show5,For as For4,For as For7,createEffect as createEffect10,createMemo as createMemo5,onCleanup as onCleanup12,createEffect as createEffect11,createMemo as createMemo6,untrack as untrack2,Suspense as Suspense4,lazy as lazy4,onCleanup as onCleanup13,createEffect as createEffect12,onCleanup as onCleanup14,createSignal as createSignal15,createMemo as createMemo7,createSignal as createSignal16,createSignal as createSignal17,lazy as lazy5,Show as Show9,For as For8,Show as Show8,Show as Show7,createEffect as createEffect13,onCleanup as onCleanup15,onMount as onMount5,onCleanup as onCleanup16,onMount as onMount6,For as For9,createSignal as createSignal18,createSignal as createSignal19,onCleanup as onCleanup17,createSignal as createSignal20,Show as Show10,createSignal as
|
|
87
|
+
import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,onCleanup as onCleanup2,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup3,Show,createEffect as createEffect4,Show as Show2,splitProps as splitProps3,createEffect as createEffect5,createSignal as createSignal4,onCleanup as onCleanup4,onMount,Suspense,lazy,batch,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup5,Show as Show3,batch as batch2,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect6,createSignal as createSignal9,onCleanup as onCleanup6,createSignal as createSignal10,createSignal as createSignal11,Suspense as Suspense2,lazy as lazy2,Index,onCleanup as onCleanup7,createEffect as createEffect8,onCleanup as onCleanup10,batch as batch3,createEffect as createEffect7,createMemo,createSignal as createSignal13,onCleanup as onCleanup9,onMount as onMount2,createSignal as createSignal12,onCleanup as onCleanup8,For as For2,For as For3,Show as Show4,createMemo as createMemo2,Suspense as Suspense3,lazy as lazy3,For as For6,createMemo as createMemo4,onMount as onMount4,For as For5,createMemo as createMemo3,onMount as onMount3,Show as Show6,createEffect as createEffect9,createSignal as createSignal14,onCleanup as onCleanup11,Show as Show5,For as For4,For as For7,createEffect as createEffect10,createMemo as createMemo5,onCleanup as onCleanup12,createEffect as createEffect11,createMemo as createMemo6,untrack as untrack2,Suspense as Suspense4,lazy as lazy4,onCleanup as onCleanup13,createEffect as createEffect12,onCleanup as onCleanup14,createSignal as createSignal15,createMemo as createMemo7,createSignal as createSignal16,createSignal as createSignal17,lazy as lazy5,Show as Show9,For as For8,Show as Show8,Show as Show7,createEffect as createEffect13,onCleanup as onCleanup15,onMount as onMount5,onCleanup as onCleanup16,onMount as onMount6,For as For9,createSignal as createSignal18,createEffect as createEffect14,createSignal as createSignal19,onCleanup as onCleanup17,createSignal as createSignal20,onCleanup as onCleanup18,createSignal as createSignal21,Show as Show10,createSignal as createSignal23,createSignal as createSignal22,onCleanup as onCleanup19,For as For10,Show as Show13,createMemo as createMemo9,createComputed,createMemo as createMemo8,createSignal as createSignal24,untrack as untrack3,Show as Show11,createComputed as createComputed2,untrack as untrack4,Show as Show12,createSignal as createSignal26,createEffect as createEffect15,createSignal as createSignal25,on,createMemo as createMemo11,createSignal as createSignal29,createMemo as createMemo10,For as For11,Show as Show17,Show as Show14,Show as Show15,createSignal as createSignal27,createContext as createContext3,useContext as useContext3,Show as Show16,createSignal as createSignal28,onCleanup as onCleanup20,Show as Show23,createSignal as createSignal30,untrack as untrack5,createSignal as createSignal31,createSignal as createSignal32,createEffect as createEffect16,For as For13,Show as Show18,For as For12,createSignal as createSignal33,Show as Show19,Show as Show20,Show as Show21,Show as Show22,createSignal as createSignal34,createEffect as createEffect17,createMemo as createMemo12,on as on2,onCleanup as onCleanup21,For as For14,Show as Show25,createMemo as createMemo14,Show as Show24,createMemo as createMemo13,createSignal as createSignal35,createContext as createContext4,useContext as useContext4,Show as Show26,Suspense as Suspense5,createEffect as createEffect18,onCleanup as onCleanup22,untrack as untrack6,For as For20,Match,Switch,createMemo as createMemo20,onCleanup as onCleanup28,For as For15,Show as Show28,createMemo as createMemo16,createSignal as createSignal37,createEffect as createEffect19,createMemo as createMemo15,onCleanup as onCleanup23,untrack as untrack7,Show as Show27,createEffect as createEffect20,createSignal as createSignal36,onCleanup as onCleanup24,For as For16,Show as Show30,createSignal as createSignal38,createEffect as createEffect21,createMemo as createMemo17,onCleanup as onCleanup25,untrack as untrack8,Show as Show29,For as For18,Show as Show33,createEffect as createEffect22,createMemo as createMemo18,createSignal as createSignal39,onCleanup as onCleanup26,untrack as untrack9,For as For17,Show as Show32,Show as Show31,Show as Show38,createEffect as createEffect23,createMemo as createMemo19,createSignal as createSignal40,onCleanup as onCleanup27,untrack as untrack10,Show as Show34,For as For19,Show as Show36,Show as Show35,Show as Show37,createEffect as createEffect24,createMemo as createMemo21,onCleanup as onCleanup29,untrack as untrack11,Show as Show39,createMemo as createMemo22,onCleanup as onCleanup30,createRoot,createSignal as createSignal41,getOwner,createSignal as createSignal42,onCleanup as onCleanup31,onMount as onMount7} from "solid-js"
|
|
88
88
|
function mcpToggleAction(status){if(status==="pending")
|
|
89
89
|
return
|
|
90
90
|
return status==="connected"?"disconnect":"connect"
|
|
@@ -1216,6 +1216,15 @@ function McpErrorDialog(props){return _$createComponent(SelectionMenu,{get api()
|
|
|
1216
1216
|
},onSelect:()=>{}})
|
|
1217
1217
|
}
|
|
1218
1218
|
|
|
1219
|
+
function reorderItems(items,from,to,key){const source=items.findIndex((item)=>key(item)===from)
|
|
1220
|
+
const target=items.findIndex((item)=>key(item)===to)
|
|
1221
|
+
const next=[...items]
|
|
1222
|
+
if(source===-1||target===-1||source===target)
|
|
1223
|
+
return next
|
|
1224
|
+
const [item]=next.splice(source,1)
|
|
1225
|
+
next.splice(target,0,item)
|
|
1226
|
+
return next
|
|
1227
|
+
}
|
|
1219
1228
|
function builtInPreferences(defaults){return{behavior:{toggleKey:defaults.toggleKey,focusKey:defaults.focusKey,searchKey:defaults.searchKey,persistMcp:defaults.persistMcp,limitsRefreshMinutes:defaults.limitsRefreshMinutes,startInChat:defaults.startInChat,showSessionTitle:defaults.showSessionTitle,showSessionDate:defaults.showSessionDate,cornerFont:defaults.cornerFont,lspIconStyle:defaults.lspIconStyle,rowDensity:defaults.rowDensity,toolbarOverflow:defaults.toolbarOverflow,sectionItemLimits:defaults.sectionItemLimits,quickActionOrder:defaults.quickActionOrder,quickActionVisibility:defaults.quickActionVisibility
|
|
1220
1229
|
},layout:{sections:defaults.sections,expanded:DEFAULT_SECTION_EXPANSION,order:defaults.sectionOrder??[...SIDEBAR_SECTIONS]
|
|
1221
1230
|
},desiredMcpStates:{}}}
|
|
@@ -2084,6 +2093,10 @@ if(index===-1||destination<0||destination>=order.length)
|
|
|
2084
2093
|
return
|
|
2085
2094
|
swap(order,index,destination)
|
|
2086
2095
|
update({target:selectedTarget(),behavior:{quickActionOrder:order}})
|
|
2096
|
+
},reorderQuickAction(from,to,scope){if(scope!==targetKey(selectedTarget()))
|
|
2097
|
+
return
|
|
2098
|
+
const order=reorderItems(selectedResolved().behavior.quickActionOrder,from,to,(id)=>id)
|
|
2099
|
+
update({target:selectedTarget(),behavior:{quickActionOrder:order}})
|
|
2087
2100
|
},sectionItemLimit:(section)=>resolved().behavior.sectionItemLimits[section]??0,selectedSectionItemLimit:(section)=>selectedResolved().behavior.sectionItemLimits[section]??0,setSectionItemLimit(section,value){if(!Number.isSafeInteger(value)||value<0)
|
|
2088
2101
|
throw new Error("Enter a non-negative whole number (0 for All)")
|
|
2089
2102
|
load()
|
|
@@ -2193,6 +2206,10 @@ if(index===-1||destination<0||destination>=order.length)
|
|
|
2193
2206
|
return
|
|
2194
2207
|
swap(order,index,destination)
|
|
2195
2208
|
setSelectedSessionLayout({order})
|
|
2209
|
+
},reorderSelectedSection(from,to,scope){if(scope!==targetKey(selectedTarget()))
|
|
2210
|
+
return
|
|
2211
|
+
const layout=resolveTarget(selectedTarget()).layout
|
|
2212
|
+
setSelectedSessionLayout({order:reorderItems(layout.order,from,to,(id)=>id)})
|
|
2196
2213
|
},previewLayoutPreset(preset){return layoutPresetPreview(selectedLayoutResolved().layout,preset)
|
|
2197
2214
|
},applyLayoutPreset(preset){load()
|
|
2198
2215
|
setSelectedSessionLayout(layoutPresetPreview(selectedLayoutResolved().layout,preset).next,true)
|
|
@@ -4556,49 +4573,105 @@ return _$createElement("box")
|
|
|
4556
4573
|
|
|
4557
4574
|
|
|
4558
4575
|
|
|
4576
|
+
|
|
4577
|
+
|
|
4578
|
+
|
|
4579
|
+
|
|
4580
|
+
|
|
4581
|
+
|
|
4582
|
+
|
|
4583
|
+
|
|
4584
|
+
|
|
4585
|
+
function updateProgressView(progress){const labels={preparing:"Preparing",downloading:"Downloading",installing:"Downloading / installing",verifying:"Verifying"
|
|
4586
|
+
}
|
|
4587
|
+
const known=progress.total!==undefined&&Number.isFinite(progress.total)&&progress.total>0&&progress.received!==undefined&&Number.isFinite(progress.received)&&progress.received>=0
|
|
4588
|
+
const fraction=known?Math.min(1,progress.received / progress.total):undefined
|
|
4589
|
+
const label=fraction===undefined?labels[progress.phase]:`${labels[progress.phase]} ${Math.floor(fraction * 100)}%`
|
|
4590
|
+
return{label,fraction}}
|
|
4591
|
+
function VersionInstallProgress(props){const [frame,setFrame]=createSignal19(0)
|
|
4592
|
+
const view=()=>updateProgressView(props.progress)
|
|
4593
|
+
const caption=()=>{const labels={preparing:"Prepare",downloading:"Download",installing:"Update",verifying:"Verify"
|
|
4594
|
+
}
|
|
4595
|
+
const fraction=view().fraction
|
|
4596
|
+
return fraction===undefined?labels[props.progress.phase]:`${labels[props.progress.phase]} ${Math.floor(fraction * 100)}%`
|
|
4597
|
+
}
|
|
4598
|
+
createEffect14(()=>{if(view().fraction!==undefined)
|
|
4599
|
+
return
|
|
4600
|
+
const timer=setInterval(()=>setFrame((value)=>(value + 1)%7),200)
|
|
4601
|
+
onCleanup17(()=>clearInterval(timer))
|
|
4602
|
+
})
|
|
4603
|
+
const bar=()=>Array.from({length:8
|
|
4604
|
+
},(_,index)=>{const value=view().fraction
|
|
4605
|
+
if(value!==undefined)
|
|
4606
|
+
return index<Math.round(value*8)?"=":"-"
|
|
4607
|
+
return index===frame()||index===frame() + 1?"=":"-"
|
|
4608
|
+
}).join("")
|
|
4609
|
+
return(()=>{var _el$=_$createElement("text"),_el$2=_$createTextNode(` [`),_el$3=_$createTextNode(`] `)
|
|
4610
|
+
_$insertNode(_el$,_el$2)
|
|
4611
|
+
_$insertNode(_el$,_el$3)
|
|
4612
|
+
_$insert(_el$,()=>props.label,_el$2)
|
|
4613
|
+
_$insert(_el$,bar,_el$3)
|
|
4614
|
+
_$insert(_el$,caption,null)
|
|
4615
|
+
_$effect((_$p)=>_$setProp(_el$,"fg",props.api.theme.current.textMuted,_$p))
|
|
4616
|
+
return _el$
|
|
4617
|
+
})()
|
|
4618
|
+
}
|
|
4559
4619
|
function VersionControl(props){const icons=useIcons()
|
|
4560
4620
|
const theme=()=>props.api.theme.current
|
|
4561
|
-
return(()=>{var _el$=_$createElement("box")
|
|
4562
|
-
_$insertNode(_el$,_el$2)
|
|
4621
|
+
return(()=>{var _el$=_$createElement("box")
|
|
4563
4622
|
_$setProp(_el$,"flexDirection","row")
|
|
4564
4623
|
_$setProp(_el$,"onMouseDown",(event)=>{if(props.update)
|
|
4565
4624
|
event.stopPropagation()
|
|
4566
4625
|
})
|
|
4567
4626
|
_$setProp(_el$,"onMouseUp",(event)=>{const update=props.update
|
|
4568
|
-
if(!update)
|
|
4627
|
+
if(!update||props.progress)
|
|
4569
4628
|
return
|
|
4570
4629
|
event.stopPropagation()
|
|
4571
4630
|
props.onUpdate?.(update)
|
|
4572
4631
|
})
|
|
4632
|
+
_$insert(_el$,(()=>{var _c$=_$memo(()=>!!props.progress)
|
|
4633
|
+
return()=>_c$()?_$createComponent(VersionInstallProgress,{get api(){return props.api
|
|
4634
|
+
},get label(){return props.label
|
|
4635
|
+
},get progress(){return props.progress
|
|
4636
|
+
}}):(()=>{var _el$2=_$createElement("text"),_el$3=_$createTextNode(` `)
|
|
4573
4637
|
_$insertNode(_el$2,_el$3)
|
|
4574
4638
|
_$insert(_el$2,()=>props.label,_el$3)
|
|
4575
4639
|
_$insert(_el$2,()=>props.version,null)
|
|
4576
|
-
_$
|
|
4577
|
-
return
|
|
4640
|
+
_$effect((_$p)=>_$setProp(_el$2,"fg",theme().textMuted,_$p))
|
|
4641
|
+
return _el$2
|
|
4642
|
+
})()
|
|
4643
|
+
})(),null)
|
|
4644
|
+
_$insert(_el$,(()=>{var _c$2=_$memo(()=>!!(props.update&&!props.progress))
|
|
4645
|
+
return()=>_c$2()?(()=>{var _el$4=_$createElement("text")
|
|
4578
4646
|
_$insert(_el$4,()=>icons.icon("update"))
|
|
4579
4647
|
_$effect((_$p)=>_$setProp(_el$4,"fg",theme().warning,_$p))
|
|
4580
4648
|
return _el$4
|
|
4581
4649
|
})():null
|
|
4582
4650
|
})(),null)
|
|
4583
|
-
_$effect((_$p)=>_$setProp(_el$2,"fg",theme().textMuted,_$p))
|
|
4584
4651
|
return _el$
|
|
4585
4652
|
})()
|
|
4586
4653
|
}
|
|
4587
|
-
function VersionSummary(props){return(()=>{var _el$=_$createElement("box")
|
|
4588
|
-
_$insertNode(_el$,_el$2)
|
|
4589
|
-
_$setProp(_el$,"flexDirection","row")
|
|
4654
|
+
function VersionSummary(props){return(()=>{var _el$=_$createElement("box")
|
|
4590
4655
|
_$insert(_el$,_$createComponent(VersionControl,{get api(){return props.api
|
|
4591
4656
|
},label:"OpenCode",get version(){return props.api.app.version
|
|
4592
4657
|
},get update(){return props.status.openCodeUpdate()
|
|
4593
4658
|
},get onUpdate(){return props.onOpenCodeUpdate
|
|
4594
|
-
}
|
|
4659
|
+
},get progress(){return props.openCodeProgress
|
|
4660
|
+
}}),null)
|
|
4661
|
+
_$insert(_el$,(()=>{var _c$=_$memo(()=>!!(props.navigatorProgress||props.openCodeProgress))
|
|
4662
|
+
return()=>_c$()?null:(()=>{var _el$2=_$createElement("text")
|
|
4595
4663
|
_$insertNode(_el$2,_$createTextNode(` | `))
|
|
4664
|
+
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
4665
|
+
return _el$2
|
|
4666
|
+
})()
|
|
4667
|
+
})(),null)
|
|
4596
4668
|
_$insert(_el$,_$createComponent(VersionControl,{get api(){return props.api
|
|
4597
4669
|
},label:"Navigator",get version(){return props.navigatorVersion
|
|
4598
4670
|
},get update(){return props.status.navigatorUpdate()
|
|
4599
4671
|
},get onUpdate(){return props.onNavigatorUpdate
|
|
4672
|
+
},get progress(){return props.navigatorProgress
|
|
4600
4673
|
}}),null)
|
|
4601
|
-
_$effect((_$p)=>_$setProp(_el
|
|
4674
|
+
_$effect((_$p)=>_$setProp(_el$,"flexDirection",props.navigatorProgress||props.openCodeProgress?"column":"row",_$p))
|
|
4602
4675
|
return _el$
|
|
4603
4676
|
})()
|
|
4604
4677
|
}
|
|
@@ -4619,6 +4692,8 @@ _$insert(_el$,_$createComponent(VersionSummary,{get api(){return props.api
|
|
|
4619
4692
|
},get status(){return props.status
|
|
4620
4693
|
},get onOpenCodeUpdate(){return props.onOpenCodeUpdate
|
|
4621
4694
|
},get onNavigatorUpdate(){return props.onNavigatorUpdate
|
|
4695
|
+
},get navigatorProgress(){return props.navigatorProgress
|
|
4696
|
+
},get openCodeProgress(){return props.openCodeProgress
|
|
4622
4697
|
}}),null)
|
|
4623
4698
|
_$effect((_$p)=>_$setProp(_el$2,"fg",theme().text,_$p))
|
|
4624
4699
|
return _el$
|
|
@@ -4651,9 +4726,9 @@ return false
|
|
|
4651
4726
|
return true
|
|
4652
4727
|
}
|
|
4653
4728
|
function createSidebarInteraction(api,showHelp=()=>openKeyboardHelp(api)){const descriptors=new Map
|
|
4654
|
-
const [selectedId,setSelectedId]=
|
|
4655
|
-
const [focusWithin,setFocusWithin]=
|
|
4656
|
-
const [revision,setRevision]=
|
|
4729
|
+
const [selectedId,setSelectedId]=createSignal21()
|
|
4730
|
+
const [focusWithin,setFocusWithin]=createSignal21(false)
|
|
4731
|
+
const [revision,setRevision]=createSignal21(0)
|
|
4657
4732
|
let titleRoot
|
|
4658
4733
|
let contentRoot
|
|
4659
4734
|
let targetedRoot
|
|
@@ -4922,14 +4997,14 @@ else if(highlighted)
|
|
|
4922
4997
|
foregroundColor=theme.selectedListItemText
|
|
4923
4998
|
return{backgroundColor,foregroundColor}}
|
|
4924
4999
|
function useSidebarItem(api,interaction,descriptor,normalColor=()=>api.theme.current.text,mode="row"){let unregister
|
|
4925
|
-
const [hovered,setHovered]=
|
|
5000
|
+
const [hovered,setHovered]=createSignal22(false)
|
|
4926
5001
|
const disabled=()=>descriptor.disabled?.()===true
|
|
4927
5002
|
const focused=()=>Boolean(interaction?.ownsFocus()&&interaction.isSelected(descriptor.id))
|
|
4928
5003
|
const colors=()=>sidebarInteractiveColors(api.theme.current,{focused:focused(),hovered:hovered(),disabled:disabled()},normalColor(),mode)
|
|
4929
5004
|
const ref=(renderable)=>{unregister?.()
|
|
4930
5005
|
unregister=interaction?.register({...descriptor,renderable})
|
|
4931
5006
|
}
|
|
4932
|
-
|
|
5007
|
+
onCleanup19(()=>unregister?.())
|
|
4933
5008
|
return{ref,disabled,focused,backgroundColor:()=>colors().backgroundColor,foregroundColor:()=>colors().foregroundColor,onMouseOver:()=>setHovered(true),onMouseOut:()=>setHovered(false),select(event){interaction?.mouseSelect(descriptor.id,event)
|
|
4934
5009
|
},activate(event){if(interaction)
|
|
4935
5010
|
return interaction.mouseActivate(descriptor.id,event)
|
|
@@ -4940,7 +5015,7 @@ return true
|
|
|
4940
5015
|
}}}
|
|
4941
5016
|
function LspBadge(props){const icons=useIcons()
|
|
4942
5017
|
const isKnown=lspIconName(props.id)!==undefined
|
|
4943
|
-
const [showName,setShowName]=
|
|
5018
|
+
const [showName,setShowName]=createSignal23(false)
|
|
4944
5019
|
const statusColor=()=>props.status==="connected"?props.api.theme.current.success:props.api.theme.current.error
|
|
4945
5020
|
if(!isKnown){return(()=>{var _el$=_$createElement("text")
|
|
4946
5021
|
_$setProp(_el$,"flexShrink",1)
|
|
@@ -4983,7 +5058,7 @@ return _el$3
|
|
|
4983
5058
|
|
|
4984
5059
|
|
|
4985
5060
|
|
|
4986
|
-
function createListVisibility(options){const [expanded,setExpanded]=
|
|
5061
|
+
function createListVisibility(options){const [expanded,setExpanded]=createSignal24(false)
|
|
4987
5062
|
let previousKey
|
|
4988
5063
|
let previousLimit
|
|
4989
5064
|
const canToggle=createMemo8(()=>options.limit()>0&&options.items().length>options.limit())
|
|
@@ -5070,10 +5145,10 @@ result += segment
|
|
|
5070
5145
|
}
|
|
5071
5146
|
return result + ellipsis
|
|
5072
5147
|
}
|
|
5073
|
-
function SectionHeaderControl(props){const [width,setWidth]=
|
|
5148
|
+
function SectionHeaderControl(props){const [width,setWidth]=createSignal25()
|
|
5074
5149
|
const control=useSidebarItem(props.api,props.interaction,{id:props.action.id,position:()=>props.position,disabled:props.action.disabled,activate:props.action.onActivate
|
|
5075
5150
|
},()=>props.api.theme.current.accent,"control")
|
|
5076
|
-
|
|
5151
|
+
createEffect15(on(()=>[props.action.label(),props.resetWidth],()=>setWidth(undefined)))
|
|
5077
5152
|
const label=()=>width()===undefined||props.iconOnly?props.action.label():truncateEnd(props.action.label(),width()-2)
|
|
5078
5153
|
return _$createComponent(SelectionBox,{ref:(node)=>control.ref(node),get id(){return props.action.id
|
|
5079
5154
|
},get iconOnly(){return props.iconOnly
|
|
@@ -5095,7 +5170,7 @@ return _el$
|
|
|
5095
5170
|
}})
|
|
5096
5171
|
}
|
|
5097
5172
|
function Section(props){const icons=useIcons()
|
|
5098
|
-
const [headerWidth,setHeaderWidth]=
|
|
5173
|
+
const [headerWidth,setHeaderWidth]=createSignal26(0)
|
|
5099
5174
|
const icon=()=>props.section?icons.section(props.section):props.icon
|
|
5100
5175
|
const theme=()=>props.api.theme.current
|
|
5101
5176
|
const item=useSidebarItem(props.api,props.interaction,{id:props.sectionId??`section.${props.title}`,position:()=>({section:props.navigationSection??0,row:0,column:0
|
|
@@ -5453,8 +5528,8 @@ return _el$5
|
|
|
5453
5528
|
function createSidebarBookmark(input){const{api,interaction,row,position,favorite,disabled,onToggle
|
|
5454
5529
|
}=input
|
|
5455
5530
|
const id=`${input.id}.favorite`
|
|
5456
|
-
const [rowHovered,setRowHovered]=
|
|
5457
|
-
const [controlHovered,setControlHovered]=
|
|
5531
|
+
const [rowHovered,setRowHovered]=createSignal27(false)
|
|
5532
|
+
const [controlHovered,setControlHovered]=createSignal27(false)
|
|
5458
5533
|
const control=useSidebarItem(api,interaction,{id,position:()=>({...position(),column:0
|
|
5459
5534
|
}),disabled,activate:()=>{onToggle()
|
|
5460
5535
|
queueMicrotask(()=>interaction?.select(id))
|
|
@@ -5570,7 +5645,7 @@ return _el$2
|
|
|
5570
5645
|
function SectionFilter(props){const icons=useIcons()
|
|
5571
5646
|
let input
|
|
5572
5647
|
let unregisterInput
|
|
5573
|
-
const [inputFocused,setInputFocused]=
|
|
5648
|
+
const [inputFocused,setInputFocused]=createSignal28(false)
|
|
5574
5649
|
const theme=()=>props.api.theme.current
|
|
5575
5650
|
const item=useSidebarItem(props.api,props.interaction,{id:props.id??`filter.${props.placeholder}`,position:()=>props.position??{section:0,row:0,column:0
|
|
5576
5651
|
},activate:()=>{if(!input)
|
|
@@ -5591,7 +5666,7 @@ props.interaction.leaveFilter(input)
|
|
|
5591
5666
|
else
|
|
5592
5667
|
input?.blur()
|
|
5593
5668
|
}
|
|
5594
|
-
|
|
5669
|
+
onCleanup20(()=>unregisterInput?.())
|
|
5595
5670
|
return _$createComponent(SelectionBox,{ref:(node)=>item.ref(node),get id(){return props.id
|
|
5596
5671
|
},flexDirection:"row",gap:1,marginTop:1,marginBottom:1,paddingLeft:1,paddingRight:1,get backgroundColor(){return _$memo(()=>!!highlighted())()?theme().primary:item.backgroundColor()
|
|
5597
5672
|
},get onMouseOver(){return item.onMouseOver
|
|
@@ -5700,7 +5775,7 @@ return _el$
|
|
|
5700
5775
|
}})
|
|
5701
5776
|
}
|
|
5702
5777
|
function McpSection(props){const icons=useIcons()
|
|
5703
|
-
const [query,setQuery]=
|
|
5778
|
+
const [query,setQuery]=createSignal29("")
|
|
5704
5779
|
const model=createMcpSectionModel(props,query)
|
|
5705
5780
|
const navigationSection=()=>props.navigationSection??6
|
|
5706
5781
|
const summary=createMemo11(()=>`${model.active()}/${model.list().length}${model.errors() ? ` \xB7 ${model.errors()} ${icons.icon("error")}` : ""}`)
|
|
@@ -5797,11 +5872,11 @@ function createLimitsRefresh(options,schedule=scheduleInterval){let disposed=fal
|
|
|
5797
5872
|
const selectedKey=createMemo12(()=>JSON.stringify(options.selectedModel?.()))
|
|
5798
5873
|
const targetKey=createMemo12(()=>JSON.stringify(options.controller.current().model))
|
|
5799
5874
|
const interval=createMemo12(()=>(parseLimitsRefreshMinutes(options.refreshMinutes?.())??DEFAULT_LIMITS_REFRESH_MINUTES)*60000)
|
|
5800
|
-
|
|
5875
|
+
createEffect17(on2(selectedKey,()=>{const model=options.selectedModel?.()
|
|
5801
5876
|
if(model&&options.accountSource)
|
|
5802
5877
|
options.accountSource.refresh(model).catch(()=>{})
|
|
5803
5878
|
}))
|
|
5804
|
-
|
|
5879
|
+
createEffect17(on2(targetKey,()=>{const{model,adapter}=options.controller.current()
|
|
5805
5880
|
if(model&&adapter)
|
|
5806
5881
|
options.controller.refresh()
|
|
5807
5882
|
}))
|
|
@@ -5814,9 +5889,9 @@ await options.accountSource.refresh(model)
|
|
|
5814
5889
|
if(!disposed&&target===targetKey())
|
|
5815
5890
|
await options.controller.refresh()
|
|
5816
5891
|
}
|
|
5817
|
-
|
|
5892
|
+
createEffect17(on2(interval,(milliseconds)=>{onCleanup21(schedule(()=>void refresh().catch(()=>{}),milliseconds))
|
|
5818
5893
|
}))
|
|
5819
|
-
|
|
5894
|
+
onCleanup21(()=>{disposed=true
|
|
5820
5895
|
})
|
|
5821
5896
|
}
|
|
5822
5897
|
|
|
@@ -5872,7 +5947,7 @@ function QuickActionRow(props){const{api,interaction
|
|
|
5872
5947
|
const icons=useIcons()
|
|
5873
5948
|
const toolbar=useToolbar()
|
|
5874
5949
|
const theme=()=>api.theme.current
|
|
5875
|
-
const [width,setWidth]=
|
|
5950
|
+
const [width,setWidth]=createSignal35(0)
|
|
5876
5951
|
const shortcut=createMemo13(()=>{const bindings=api.keymap.getCommandBindings({visibility:"registered",commands:[props.action.command]
|
|
5877
5952
|
})
|
|
5878
5953
|
return api.keys.formatBindings(bindings.get(props.action.command))
|
|
@@ -6025,13 +6100,13 @@ item.activate(event)
|
|
|
6025
6100
|
|
|
6026
6101
|
|
|
6027
6102
|
function SidebarToggleBinding(props){const shortcuts=createSidebarShortcutMode(props.api)
|
|
6028
|
-
|
|
6103
|
+
createEffect18(()=>{const key=props.preferences.toggleKey()
|
|
6029
6104
|
untrack6(()=>shortcuts.bind(key))
|
|
6030
6105
|
})
|
|
6031
|
-
|
|
6106
|
+
createEffect18(()=>{if(shortcuts.active()&&(props.api.route.current.name!=="session"||props.api.ui.dialog.open||props.api.mode.current()==="modal"))
|
|
6032
6107
|
untrack6(shortcuts.cancel)
|
|
6033
6108
|
})
|
|
6034
|
-
|
|
6109
|
+
onCleanup22(shortcuts.dispose)
|
|
6035
6110
|
return(()=>{var _el$=_$createElement("box")
|
|
6036
6111
|
_$setProp(_el$,"position","absolute")
|
|
6037
6112
|
_$setProp(_el$,"top",0)
|
|
@@ -6053,11 +6128,11 @@ const unregisterCommands=props.api.keymap.registerLayer({commands:[...commands,.
|
|
|
6053
6128
|
})=>({name:name.replace(PLUGIN_ID,()=>LEGACY_PLUGIN_ID),run,enabled
|
|
6054
6129
|
}))]
|
|
6055
6130
|
})
|
|
6056
|
-
|
|
6057
|
-
|
|
6131
|
+
onCleanup22(unregisterCommands)
|
|
6132
|
+
createEffect18(()=>{const unregister=props.api.keymap.registerLayer({bindings:[{key:props.preferences.focusKey(),cmd:FOCUS_COMMAND
|
|
6058
6133
|
}]
|
|
6059
6134
|
})
|
|
6060
|
-
|
|
6135
|
+
onCleanup22(unregister)
|
|
6061
6136
|
})
|
|
6062
6137
|
return _$createElement("box")
|
|
6063
6138
|
}
|
|
@@ -6139,11 +6214,11 @@ const revision=createQuickActionRevision(props.api)
|
|
|
6139
6214
|
const pins=()=>props.preferences.toolbarPins?.()??[]
|
|
6140
6215
|
const needsSkills=createMemo15(()=>pins().some((pin)=>pin.kind==="skill"))
|
|
6141
6216
|
const target=createMemo15(()=>props.skills.target())
|
|
6142
|
-
|
|
6217
|
+
createEffect19(()=>{if(!needsSkills())
|
|
6143
6218
|
return
|
|
6144
6219
|
const current=target()
|
|
6145
6220
|
const release=untrack7(()=>props.skills.activate(current))
|
|
6146
|
-
|
|
6221
|
+
onCleanup23(release)
|
|
6147
6222
|
untrack7(()=>{props.skills.refresh(current).catch(()=>{})
|
|
6148
6223
|
})
|
|
6149
6224
|
})
|
|
@@ -6174,13 +6249,13 @@ return{...model,width:toolbarPinWidth}}
|
|
|
6174
6249
|
|
|
6175
6250
|
function ToolbarButton(props){const icons=useIcons()
|
|
6176
6251
|
const foreground=()=>props.reason?props.api.theme.current.textMuted:item.foregroundColor()
|
|
6177
|
-
const [hovered,setHovered]=
|
|
6252
|
+
const [hovered,setHovered]=createSignal36(false)
|
|
6178
6253
|
const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>({section:0,row:props.row + 1,column:props.column
|
|
6179
6254
|
}),activate:props.onRun
|
|
6180
6255
|
},()=>props.reason?props.api.theme.current.textMuted:props.api.theme.current.accent,"control")
|
|
6181
6256
|
const content=()=>[props.icons.map((icon)=>terminalIcon(icon,icons.style())).join(" "),props.text].filter(Boolean).join(" ")
|
|
6182
|
-
|
|
6183
|
-
|
|
6257
|
+
createEffect20(()=>props.onDetails(props.id,item.focused()||hovered()))
|
|
6258
|
+
onCleanup24(()=>props.onDetails(props.id,false))
|
|
6184
6259
|
return _$createComponent(Show27,{get when(){return _$memo(()=>!!(props.width===3&&props.icons.length===1))()&&!props.text
|
|
6185
6260
|
},get fallback(){return _$createComponent(SelectionBox,{get id(){return props.id
|
|
6186
6261
|
},ref(r$){var _ref$2=item.ref
|
|
@@ -6221,8 +6296,8 @@ setHovered(false)
|
|
|
6221
6296
|
}
|
|
6222
6297
|
function SidebarToolbar(props){const model=createToolbarModel(props)
|
|
6223
6298
|
const icons=useIcons()
|
|
6224
|
-
const [width,setWidth]=
|
|
6225
|
-
const [detail,setDetail]=
|
|
6299
|
+
const [width,setWidth]=createSignal37(3)
|
|
6300
|
+
const [detail,setDetail]=createSignal37()
|
|
6226
6301
|
const keys=createMemo16(()=>model.pins().map((pin)=>toolbarPinKey(pin)))
|
|
6227
6302
|
const widths=createMemo16(()=>new Map(model.pins().map((pin)=>[toolbarPinKey(pin),model.width(pin)])))
|
|
6228
6303
|
const layout=createMemo16(()=>toolbarLayout(keys(),width(),props.preferences.toolbarOverflow?.()??"menu",widths()))
|
|
@@ -6313,9 +6388,9 @@ const filtered=createMemo17(()=>list().filter((item)=>matchesFilter(query(),item
|
|
|
6313
6388
|
const visibility=createListVisibility({items:filtered,limit:()=>props.preferences.sectionItemLimit?.("skills")??0,resetKey:()=>JSON.stringify([target().key,query()])
|
|
6314
6389
|
})
|
|
6315
6390
|
const state=createMemo17(()=>props.controller.state(target()))
|
|
6316
|
-
|
|
6391
|
+
createEffect21(()=>{const current=target()
|
|
6317
6392
|
const deactivate=untrack8(()=>props.controller.activate?.(current)??(()=>{}))
|
|
6318
|
-
|
|
6393
|
+
onCleanup25(deactivate)
|
|
6319
6394
|
untrack8(()=>void props.controller.refresh(current).catch(()=>{}))
|
|
6320
6395
|
})
|
|
6321
6396
|
async function useSkill(item){try{const isInserted=await props.controller.use(target(),item.name)
|
|
@@ -6376,7 +6451,7 @@ return _el$
|
|
|
6376
6451
|
}
|
|
6377
6452
|
function SkillsSection(props){const dialogs=useDialogs(props.api)
|
|
6378
6453
|
const toolbar=useToolbar()
|
|
6379
|
-
const [query,setQuery]=
|
|
6454
|
+
const [query,setQuery]=createSignal38("")
|
|
6380
6455
|
const model=createSkillSectionModel(props,query)
|
|
6381
6456
|
const navigationSection=()=>props.navigationSection??3
|
|
6382
6457
|
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"
|
|
@@ -6456,18 +6531,18 @@ return _el$
|
|
|
6456
6531
|
function createSubagentSectionModel(props){const list=createMemo18(()=>props.controller.list(props.sessionID))
|
|
6457
6532
|
const recent=createMemo18(()=>props.controller.recent?.(props.sessionID)??[])
|
|
6458
6533
|
const rows=createMemo18(()=>buildSubagentView(list(),recent()))
|
|
6459
|
-
const [query,setQuery]=
|
|
6460
|
-
const [mode,setMode]=
|
|
6534
|
+
const [query,setQuery]=createSignal39("")
|
|
6535
|
+
const [mode,setMode]=createSignal39("all")
|
|
6461
6536
|
const counts=createMemo18(()=>countSubagentView(rows(),query()))
|
|
6462
6537
|
const tabs=createMemo18(()=>["all","active","recent",...counts().errors>0?["errors"]:[]])
|
|
6463
6538
|
const filtered=createMemo18(()=>filterSubagentView(rows(),mode(),query()))
|
|
6464
6539
|
const parentID=createMemo18(()=>props.api.state?.session?.get(props.sessionID)?.parentID)
|
|
6465
6540
|
const targetKey=createMemo18(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
|
|
6466
|
-
|
|
6541
|
+
createEffect22(()=>{targetKey()
|
|
6467
6542
|
setQuery("")
|
|
6468
6543
|
setMode("all")
|
|
6469
6544
|
})
|
|
6470
|
-
|
|
6545
|
+
createEffect22(()=>{if(mode()!=="all"&&counts()[mode()]===0)
|
|
6471
6546
|
setMode("all")
|
|
6472
6547
|
})
|
|
6473
6548
|
const visibility=createListVisibility({items:filtered,limit:()=>props.preferences.sectionItemLimit?.("subagents")??0,resetKey:()=>JSON.stringify([targetKey(),query(),mode()])
|
|
@@ -6477,10 +6552,10 @@ const now=createSubagentClock(clockKey)
|
|
|
6477
6552
|
const byId=createMemo18(()=>new Map(visibility.visible().map((item)=>[item.session.id,item])))
|
|
6478
6553
|
const ids=createMemo18(()=>visibility.visible().map((item)=>item.session.id))
|
|
6479
6554
|
const state=createMemo18(()=>props.controller.state(props.sessionID))
|
|
6480
|
-
|
|
6555
|
+
createEffect22(()=>{const sessionID=props.sessionID
|
|
6481
6556
|
targetKey()
|
|
6482
6557
|
const deactivate=untrack9(()=>props.controller.activate?.(sessionID)??(()=>{}))
|
|
6483
|
-
|
|
6558
|
+
onCleanup26(deactivate)
|
|
6484
6559
|
untrack9(()=>void props.controller.refresh(sessionID).catch(()=>{}))
|
|
6485
6560
|
})
|
|
6486
6561
|
return{list,recent,rows,query,setQuery,mode,setMode,counts,tabs,filtered,parentID,visibility,now,byId,ids,state
|
|
@@ -6874,21 +6949,21 @@ const managed=()=>("guidance" in props.controller)?props.controller:undefined
|
|
|
6874
6949
|
const native=()=>("source" in props.controller)&&props.controller.source==="native"
|
|
6875
6950
|
const setup=()=>("setup" in props.controller)?props.controller.setup:undefined
|
|
6876
6951
|
const setupState=()=>setup()?.state(props.sessionID)
|
|
6877
|
-
const [mode,setMode]=
|
|
6952
|
+
const [mode,setMode]=createSignal40("all")
|
|
6878
6953
|
const targetKey=createMemo19(()=>props.controller.target?.(props.sessionID).key??props.sessionID)
|
|
6879
|
-
|
|
6954
|
+
createEffect23(()=>{targetKey()
|
|
6880
6955
|
setMode("all")
|
|
6881
6956
|
})
|
|
6882
6957
|
const view=createMemo19(()=>buildTodoView(list(),mode()))
|
|
6883
6958
|
const visibility=createListVisibility({items:()=>view().rows,limit:()=>props.preferences.sectionItemLimit?.("todo")??0,resetKey:()=>JSON.stringify([targetKey(),mode()])
|
|
6884
6959
|
})
|
|
6885
6960
|
const state=createMemo19(()=>props.controller.state(props.sessionID))
|
|
6886
|
-
|
|
6961
|
+
createEffect23(()=>{const sessionID=props.sessionID
|
|
6887
6962
|
targetKey()
|
|
6888
6963
|
if(unavailable())
|
|
6889
6964
|
return
|
|
6890
6965
|
const deactivate=untrack10(()=>props.controller.activate?.(sessionID)??(()=>{}))
|
|
6891
|
-
|
|
6966
|
+
onCleanup27(deactivate)
|
|
6892
6967
|
untrack10(()=>void props.controller.refresh(sessionID).catch(()=>{}))
|
|
6893
6968
|
untrack10(()=>void setup()?.refresh(sessionID).catch(()=>{}))
|
|
6894
6969
|
})
|
|
@@ -6958,7 +7033,7 @@ return _el$4
|
|
|
6958
7033
|
}
|
|
6959
7034
|
function SidebarContent(props){const sections=props.preferences.sections
|
|
6960
7035
|
const visibleSections=createMemo20(()=>props.preferences.sectionOrder().filter((section)=>sections()[section]&&supportsSidebarSection(props.api,section)))
|
|
6961
|
-
|
|
7036
|
+
onCleanup28(()=>props.interaction.setContentRoot(undefined))
|
|
6962
7037
|
return _$createComponent(ToolbarProvider,{get api(){return props.api
|
|
6963
7038
|
},get preferences(){return props.preferences
|
|
6964
7039
|
},get skills(){return props.skills
|
|
@@ -7010,7 +7085,7 @@ return _el$
|
|
|
7010
7085
|
|
|
7011
7086
|
|
|
7012
7087
|
function McpPersistence(props){const persist=createMemo21(()=>props.controller.persist())
|
|
7013
|
-
|
|
7088
|
+
createEffect24(()=>{if(!props.api.state.ready)
|
|
7014
7089
|
return
|
|
7015
7090
|
persist()
|
|
7016
7091
|
const route=props.api.route.current
|
|
@@ -7018,12 +7093,12 @@ const params="params" in route?route.params:undefined
|
|
|
7018
7093
|
if(typeof params?.sessionID!=="string")
|
|
7019
7094
|
return
|
|
7020
7095
|
const current=props.controller.target()
|
|
7021
|
-
|
|
7096
|
+
onCleanup29(()=>props.controller.deactivate(current))
|
|
7022
7097
|
untrack11(()=>void props.controller.activate(current).catch(()=>{}))
|
|
7023
7098
|
})
|
|
7024
7099
|
return _$createElement("box")
|
|
7025
7100
|
}
|
|
7026
|
-
function PreferencesPersistence(props){
|
|
7101
|
+
function PreferencesPersistence(props){createEffect24(()=>{const location=currentLocation(props.api)
|
|
7027
7102
|
untrack11(()=>props.controller.setActiveScope(preferencesScope({directory:location.routing.directory,worktree:props.api.state.path.worktree
|
|
7028
7103
|
})))
|
|
7029
7104
|
props.controller.load()
|
|
@@ -7031,7 +7106,7 @@ props.controller.load()
|
|
|
7031
7106
|
return _$createElement("box")
|
|
7032
7107
|
}
|
|
7033
7108
|
function FirstRunWizardPersistence(props){let isChecked=false
|
|
7034
|
-
|
|
7109
|
+
createEffect24(()=>{if(isChecked)
|
|
7035
7110
|
return
|
|
7036
7111
|
isChecked=true
|
|
7037
7112
|
showFirstRunWizard(props.api,props.preferences).catch(()=>{})
|
|
@@ -7058,7 +7133,7 @@ const settingsId=`${PLUGIN_ID}.settings`
|
|
|
7058
7133
|
const settings=useSidebarItem(props.api,props.interaction,{id:settingsId,position:{section:0,row:0,column:0
|
|
7059
7134
|
},activate:()=>openSettings(props.api,props.preferences,undefined,props.mcp,props.skills)
|
|
7060
7135
|
},()=>theme().textMuted,"control")
|
|
7061
|
-
|
|
7136
|
+
onCleanup30(()=>props.interaction.setTitleRoot(undefined))
|
|
7062
7137
|
return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("box"),_el$3=_$createElement("box")
|
|
7063
7138
|
_$insertNode(_el$,_el$2)
|
|
7064
7139
|
_$use((node)=>props.interaction.setTitleRoot(node),_el$)
|
|
@@ -7121,7 +7196,7 @@ return mergeConfiguredDefaults(configuredDefaultsFromPluginOptions(options),user
|
|
|
7121
7196
|
function LimitsPersistence(props){createLimitsRefresh(props)
|
|
7122
7197
|
return _$createElement("box")
|
|
7123
7198
|
}
|
|
7124
|
-
function bindNavigatorAbout(api,status,updates,notes){const dispose=registerNavigatorAboutServices(api,{navigatorVersion:"0.27.
|
|
7199
|
+
function bindNavigatorAbout(api,status,updates,notes){const dispose=registerNavigatorAboutServices(api,{navigatorVersion:"0.27.2",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()
|
|
7125
7200
|
if(target)
|
|
7126
7201
|
updates.navigator(target,dialogs)
|
|
7127
7202
|
},changelog:async ()=>notes.parseChangelog(await notes.readBundledChangelog())
|
|
@@ -7257,7 +7332,7 @@ context.keymap.dispatch(command.id)
|
|
|
7257
7332
|
context.renderer.keyInput.on("keypress",onKeypress)
|
|
7258
7333
|
const keymap={registerLayer(layer){const id=++sequence
|
|
7259
7334
|
const owner=getOwner()
|
|
7260
|
-
const [active,setActive]=
|
|
7335
|
+
const [active,setActive]=createSignal41(true)
|
|
7261
7336
|
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)
|
|
7262
7337
|
}))
|
|
7263
7338
|
}
|
|
@@ -7302,7 +7377,7 @@ cleanups.clear()
|
|
|
7302
7377
|
context.renderer.keyInput.off("keypress",onKeypress)
|
|
7303
7378
|
}}}
|
|
7304
7379
|
|
|
7305
|
-
function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=
|
|
7380
|
+
function createV2SessionAdapter(context){const [retryDetails,setRetryDetails]=createSignal42({})
|
|
7306
7381
|
const projections=new WeakMap
|
|
7307
7382
|
function normalize(info){const directory=info.location.directory
|
|
7308
7383
|
const workspaceID=context.location?.directory===directory?context.location.workspaceID:undefined
|
|
@@ -7372,7 +7447,7 @@ function DialogPrompt(props){return _$createComponent(SingleLinePrompt,_$mergePr
|
|
|
7372
7447
|
}},props))
|
|
7373
7448
|
}
|
|
7374
7449
|
function DialogConfirm(props){let active=true
|
|
7375
|
-
|
|
7450
|
+
onCleanup31(()=>{active=false
|
|
7376
7451
|
})
|
|
7377
7452
|
async function confirm(){const confirmed=await context.ui.dialog.confirm({title:props.title,message:props.message
|
|
7378
7453
|
})
|
|
@@ -7586,7 +7661,7 @@ const limitsPath=import.meta.url.includes("/dist/tui.js")?"./provider-limits.js"
|
|
|
7586
7661
|
const limitsModule=await import(limitsPath)
|
|
7587
7662
|
const LimitsSection=limitsModule.ProviderLimitsSection
|
|
7588
7663
|
const{controller:limits,codex,accountSource,selectModel,modelSelection
|
|
7589
|
-
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.27.
|
|
7664
|
+
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.27.2",hostContext)
|
|
7590
7665
|
const mcp=createMcpController(api,preferences.persistMcp,preferences,nativeSources?.mcp)
|
|
7591
7666
|
const interaction=createSidebarInteraction(api,()=>openKeyboardHelp(api,preferences.lspIconStyle,preferences.cornerFont,sidebarShortcutActions(api)))
|
|
7592
7667
|
const startup=createStartupSessionController(api,preferences)
|
|
@@ -7615,7 +7690,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
|
|
|
7615
7690
|
},interaction,skills,subagents,mcp
|
|
7616
7691
|
}),_$createComponent(FirstRunWizardPersistence,{api,preferences
|
|
7617
7692
|
}),_$createComponent(StartupSessionBinding,{api,controller:startup
|
|
7618
|
-
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.27.
|
|
7693
|
+
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.27.2"
|
|
7619
7694
|
}),_$createComponent(McpPersistence,{api,controller:mcp
|
|
7620
7695
|
})]
|
|
7621
7696
|
}})
|
|
@@ -7649,14 +7724,16 @@ return result.data?.type==="text"?result.data.content:undefined
|
|
|
7649
7724
|
const updateServices=await loadNavigatorUpdates()
|
|
7650
7725
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV1VersionUpdater
|
|
7651
7726
|
}=updateServices
|
|
7652
|
-
const versionStatus=createVersionStatus(api,"0.27.
|
|
7653
|
-
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.
|
|
7727
|
+
const versionStatus=createVersionStatus(api,"0.27.2")
|
|
7728
|
+
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.2"))
|
|
7654
7729
|
bindNavigatorAbout(api,versionStatus,versionUpdates,updateServices)
|
|
7655
7730
|
api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7656
7731
|
},get multilineCorners(){return preferences.cornerFont
|
|
7657
7732
|
},get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
|
|
7658
|
-
},navigatorVersion:"0.27.
|
|
7733
|
+
},navigatorVersion:"0.27.2",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7659
7734
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7735
|
+
},get navigatorProgress(){return versionUpdates.navigatorProgress()
|
|
7736
|
+
},get openCodeProgress(){return versionUpdates.openCodeProgress()
|
|
7660
7737
|
}})
|
|
7661
7738
|
}})
|
|
7662
7739
|
}}})
|
|
@@ -7672,8 +7749,8 @@ return new TextDecoder().decode(await context.client.file.read({location:context
|
|
|
7672
7749
|
const updateServices=await loadNavigatorUpdates()
|
|
7673
7750
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV2VersionUpdater
|
|
7674
7751
|
}=updateServices
|
|
7675
|
-
const versionStatus=createVersionStatus(adapter.api,"0.27.
|
|
7676
|
-
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.
|
|
7752
|
+
const versionStatus=createVersionStatus(adapter.api,"0.27.2")
|
|
7753
|
+
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.27.2"))
|
|
7677
7754
|
bindNavigatorAbout(adapter.api,versionStatus,versionUpdates,updateServices)
|
|
7678
7755
|
const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7679
7756
|
},get multilineCorners(){return preferences.cornerFont
|
|
@@ -7681,8 +7758,10 @@ const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$create
|
|
|
7681
7758
|
_$setProp(_el$,"flexDirection","row")
|
|
7682
7759
|
_$setProp(_el$,"justifyContent","space-between")
|
|
7683
7760
|
_$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
|
|
7684
|
-
},navigatorVersion:"0.27.
|
|
7761
|
+
},navigatorVersion:"0.27.2",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7685
7762
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7763
|
+
},get navigatorProgress(){return versionUpdates.navigatorProgress()
|
|
7764
|
+
},get openCodeProgress(){return versionUpdates.openCodeProgress()
|
|
7686
7765
|
}}),null)
|
|
7687
7766
|
_$insert(_el$,_$createComponent(SettingsFooterButton,{get api(){return adapter.api
|
|
7688
7767
|
},preferences,mcp,skills
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "opencode-navigator",
|
|
4
|
-
"version": "0.27.
|
|
4
|
+
"version": "0.27.2",
|
|
5
5
|
"description": "Search, navigate, and manage OpenCode sessions in the TUI and experimental Desktop GUI",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"packageManager": "bun@1.4.4",
|