opencode-navigator 0.21.4 → 0.21.6
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 +11 -0
- package/README.md +23 -8
- package/dist/{chunk-cmmnfes2.js → chunk-d1bws32s.js} +2 -1
- package/dist/layout-preset-actions.js +1 -1
- package/dist/navigator-updates.js +1 -1
- package/dist/project-profile.js +5 -1
- package/dist/provider-limits.js +217 -165
- package/dist/quick-actions-settings.js +1 -1
- package/dist/tui.js +125 -74
- package/package.json +1 -1
package/dist/tui.js
CHANGED
|
@@ -3,7 +3,7 @@ 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,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup2,createEffect as createEffect4,Show,splitProps as splitProps3,createSignal as createSignal4,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup3,batch,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect5,createSignal as createSignal9,onCleanup as onCleanup4,createSignal as createSignal10,createSignal as createSignal11,Index,createSignal as createSignal12,onCleanup as onCleanup5,createEffect as createEffect7,onCleanup as onCleanup7,batch as batch2,createEffect as createEffect6,createMemo,createSignal as createSignal13,onCleanup as onCleanup6,onMount,For as For2,For as For3,Show as Show2,createMemo as createMemo2,Show as Show3,createSignal as createSignal14,onCleanup as onCleanup8,For as For4,For as For5,For as For8,createMemo as createMemo4,onMount as onMount3,For as For7,createMemo as createMemo3,onMount as onMount2,Show as Show5,createEffect as createEffect8,createSignal as createSignal15,onCleanup as onCleanup9,Show as Show4,For as For6,For as For9,createEffect as createEffect9,createMemo as createMemo5,onCleanup as onCleanup10,createEffect as createEffect10,createMemo as createMemo6,untrack as untrack2,For as For10,createEffect as createEffect11,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4,createMemo as createMemo7,Show as Show6,onCleanup as onCleanup12,createEffect as createEffect12,onCleanup as onCleanup13,createSignal as createSignal16,createMemo as createMemo9,createEffect as createEffect13,onCleanup as onCleanup14,onMount as onMount5,onCleanup as onCleanup15,onMount as onMount6,For as For11,createSignal as createSignal17,createSignal as createSignal18,Show as Show7,createSignal as createSignal20,createSignal as createSignal19,onCleanup as onCleanup16,For as For12,Show as Show10,createMemo as createMemo11,createComputed,createMemo as createMemo10,createSignal as createSignal21,untrack as untrack3,Show as Show8,createComputed as createComputed2,untrack as untrack4,Show as Show9,createSignal as createSignal23,createEffect as createEffect14,createSignal as createSignal22,on,createMemo as createMemo13,createSignal as createSignal26,createMemo as createMemo12,For as For13,Show as Show14,Show as Show11,Show as Show12,createSignal as createSignal24,createContext as createContext3,useContext as useContext3,Show as Show13,createSignal as createSignal25,onCleanup as onCleanup17,Show as
|
|
6
|
+
import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup2,createEffect as createEffect4,Show,splitProps as splitProps3,createSignal as createSignal4,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup3,batch,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect5,createSignal as createSignal9,onCleanup as onCleanup4,createSignal as createSignal10,createSignal as createSignal11,Index,createSignal as createSignal12,onCleanup as onCleanup5,createEffect as createEffect7,onCleanup as onCleanup7,batch as batch2,createEffect as createEffect6,createMemo,createSignal as createSignal13,onCleanup as onCleanup6,onMount,For as For2,For as For3,Show as Show2,createMemo as createMemo2,Show as Show3,createSignal as createSignal14,onCleanup as onCleanup8,For as For4,For as For5,For as For8,createMemo as createMemo4,onMount as onMount3,For as For7,createMemo as createMemo3,onMount as onMount2,Show as Show5,createEffect as createEffect8,createSignal as createSignal15,onCleanup as onCleanup9,Show as Show4,For as For6,For as For9,createEffect as createEffect9,createMemo as createMemo5,onCleanup as onCleanup10,createEffect as createEffect10,createMemo as createMemo6,untrack as untrack2,For as For10,createEffect as createEffect11,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4,createMemo as createMemo7,Show as Show6,onCleanup as onCleanup12,createEffect as createEffect12,onCleanup as onCleanup13,createSignal as createSignal16,createMemo as createMemo9,createEffect as createEffect13,onCleanup as onCleanup14,onMount as onMount5,onCleanup as onCleanup15,onMount as onMount6,For as For11,createSignal as createSignal17,createSignal as createSignal18,Show as Show7,createSignal as createSignal20,createSignal as createSignal19,onCleanup as onCleanup16,For as For12,Show as Show10,createMemo as createMemo11,createComputed,createMemo as createMemo10,createSignal as createSignal21,untrack as untrack3,Show as Show8,createComputed as createComputed2,untrack as untrack4,Show as Show9,createSignal as createSignal23,createEffect as createEffect14,createSignal as createSignal22,on,createMemo as createMemo13,createSignal as createSignal26,createMemo as createMemo12,For as For13,Show as Show14,Show as Show11,Show as Show12,createSignal as createSignal24,createContext as createContext3,useContext as useContext3,Show as Show13,createSignal as createSignal25,onCleanup as onCleanup17,Show as Show20,createSignal as createSignal27,untrack as untrack5,createSignal as createSignal28,createSignal as createSignal29,createEffect as createEffect15,For as For15,Show as Show15,For as For14,Show as Show16,Show as Show17,Show as Show18,Show as Show19,For as For16,Show as Show22,createMemo as createMemo15,Show as Show21,createMemo as createMemo14,createSignal as createSignal30,createEffect as createEffect16,onCleanup as onCleanup18,For as For21,Match,Switch,createMemo as createMemo19,onCleanup as onCleanup22,For as For17,Show as Show23,createSignal as createSignal31,createEffect as createEffect17,createMemo as createMemo16,onCleanup as onCleanup19,untrack as untrack6,For as For19,Show as Show26,createEffect as createEffect18,createMemo as createMemo17,createSignal as createSignal32,onCleanup as onCleanup20,untrack as untrack7,For as For18,Show as Show25,Show as Show24,Show as Show30,createEffect as createEffect19,createMemo as createMemo18,createSignal as createSignal33,onCleanup as onCleanup21,untrack as untrack8,For as For20,Show as Show28,Show as Show27,Show as Show29,createEffect as createEffect20,createMemo as createMemo20,onCleanup as onCleanup23,untrack as untrack9,Show as Show31,createMemo as createMemo21,onCleanup as onCleanup24,createEffect as createEffect21,createMemo as createMemo22,on as on2,onCleanup as onCleanup25,createSignal as createSignal34,onCleanup as onCleanup26,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"
|
|
@@ -66,6 +66,10 @@ return Object.fromEntries(Object.entries(defaults).map(([name,visible])=>[name,t
|
|
|
66
66
|
function parseSectionVisibility(value){return resolveSectionVisibility({limits:true,todo:true,subagents:true,skills:true,quick_actions:true,lsp:true,mcp:true
|
|
67
67
|
},value)
|
|
68
68
|
}
|
|
69
|
+
var DEFAULT_LIMITS_REFRESH_MINUTES=5
|
|
70
|
+
var MAX_LIMITS_REFRESH_MINUTES=Math.floor(2147483647 / 60000)
|
|
71
|
+
function parseLimitsRefreshMinutes(value){return typeof value==="number"&&Number.isSafeInteger(value)&&value>=1&&value<=MAX_LIMITS_REFRESH_MINUTES?value:undefined
|
|
72
|
+
}
|
|
69
73
|
var PLUGIN_ID="opencode-navigator"
|
|
70
74
|
var LEGACY_PLUGIN_ID="opencode-pretty-sidebar"
|
|
71
75
|
var TOGGLE_COMMAND=`${PLUGIN_ID}.toggle`
|
|
@@ -73,7 +77,7 @@ var FOCUS_COMMAND=`${PLUGIN_ID}.focus`
|
|
|
73
77
|
var SEARCH_COMMAND=`${PLUGIN_ID}.search`
|
|
74
78
|
var DEFAULT_SEARCH_KEY="ctrl+shift+k";
|
|
75
79
|
function pluginConfig(options){const iconStyle=options?.icon_style==="nerd"||options?.icon_style==="text"?options.icon_style:options?.lsp_icon_style
|
|
76
|
-
return{toggleKey:typeof options?.toggle_key==="string"&&options.toggle_key.trim()?options.toggle_key.trim():"ctrl+shift+b",focusKey:typeof options?.focus_key==="string"&&options.focus_key.trim()?options.focus_key.trim():"ctrl+shift+f",searchKey:typeof options?.search_key==="string"&&options.search_key.trim()?options.search_key.trim():DEFAULT_SEARCH_KEY,persistMcp:options?.persist_mcp!==false,startInChat:options?.start_in_chat===true,showSessionTitle:options?.show_session_title!==false,showSessionDate:options?.show_session_date!==false,cornerFont:options?.corner_font!==false,sections:parseSectionVisibility(options?.sections),sectionOrder:parseSectionOrder(options?.section_order)??[...SIDEBAR_SECTIONS],lspIconStyle:iconStyle==="text"?"text":"nerd",rowDensity:options?.row_density==="comfortable"?"comfortable":"compact",sectionItemLimits:parseSectionItemLimits(options?.section_item_limits),quickActionOrder:parseQuickActionOrder(options?.quick_action_order)??[...QUICK_ACTION_IDS],quickActionVisibility:parseQuickActionVisibility(options?.quick_action_visibility)
|
|
80
|
+
return{toggleKey:typeof options?.toggle_key==="string"&&options.toggle_key.trim()?options.toggle_key.trim():"ctrl+shift+b",focusKey:typeof options?.focus_key==="string"&&options.focus_key.trim()?options.focus_key.trim():"ctrl+shift+f",searchKey:typeof options?.search_key==="string"&&options.search_key.trim()?options.search_key.trim():DEFAULT_SEARCH_KEY,persistMcp:options?.persist_mcp!==false,limitsRefreshMinutes:parseLimitsRefreshMinutes(options?.limits_refresh_minutes)??DEFAULT_LIMITS_REFRESH_MINUTES,startInChat:options?.start_in_chat===true,showSessionTitle:options?.show_session_title!==false,showSessionDate:options?.show_session_date!==false,cornerFont:options?.corner_font!==false,sections:parseSectionVisibility(options?.sections),sectionOrder:parseSectionOrder(options?.section_order)??[...SIDEBAR_SECTIONS],lspIconStyle:iconStyle==="text"?"text":"nerd",rowDensity:options?.row_density==="comfortable"?"comfortable":"compact",sectionItemLimits:parseSectionItemLimits(options?.section_item_limits),quickActionOrder:parseQuickActionOrder(options?.quick_action_order)??[...QUICK_ACTION_IDS],quickActionVisibility:parseQuickActionVisibility(options?.quick_action_visibility)
|
|
77
81
|
}}
|
|
78
82
|
function currentLocation(api){const route=api.route.current
|
|
79
83
|
const params="params" in route?route.params:undefined
|
|
@@ -1206,7 +1210,8 @@ return value
|
|
|
1206
1210
|
function parsePluginSettings(value){const input=record(value)
|
|
1207
1211
|
if(!input)
|
|
1208
1212
|
return{}
|
|
1209
|
-
return{...typeof input.toggleKey==="string"&&input.toggleKey.trim()&&{toggleKey:input.toggleKey.trim()},...typeof input.focusKey==="string"&&input.focusKey.trim()&&{focusKey:input.focusKey.trim()},...typeof input.searchKey==="string"&&input.searchKey.trim()&&{searchKey:input.searchKey.trim()},...typeof input.persistMcp==="boolean"&&{persistMcp:input.persistMcp},...
|
|
1213
|
+
return{...typeof input.toggleKey==="string"&&input.toggleKey.trim()&&{toggleKey:input.toggleKey.trim()},...typeof input.focusKey==="string"&&input.focusKey.trim()&&{focusKey:input.focusKey.trim()},...typeof input.searchKey==="string"&&input.searchKey.trim()&&{searchKey:input.searchKey.trim()},...typeof input.persistMcp==="boolean"&&{persistMcp:input.persistMcp},...parseLimitsRefreshMinutes(input.limitsRefreshMinutes)!==undefined&&{limitsRefreshMinutes:parseLimitsRefreshMinutes(input.limitsRefreshMinutes)
|
|
1214
|
+
},...typeof input.startInChat==="boolean"&&{startInChat:input.startInChat},...typeof input.showSessionTitle==="boolean"&&{showSessionTitle:input.showSessionTitle},...typeof input.showSessionDate==="boolean"&&{showSessionDate:input.showSessionDate},...typeof input.cornerFont==="boolean"&&{cornerFont:input.cornerFont},...(input.lspIconStyle==="nerd"||input.lspIconStyle==="text")&&{lspIconStyle:input.lspIconStyle},...(input.rowDensity==="compact"||input.rowDensity==="comfortable")&&{rowDensity:input.rowDensity
|
|
1210
1215
|
},...Object.keys(parseSectionItemLimits(input.sectionItemLimits)).length>0&&{sectionItemLimits:parseSectionItemLimits(input.sectionItemLimits)
|
|
1211
1216
|
},...parseQuickActionOrder(input.quickActionOrder)&&{quickActionOrder:parseQuickActionOrder(input.quickActionOrder)
|
|
1212
1217
|
},...Object.keys(parseQuickActionVisibility(input.quickActionVisibility)).length>0&&{quickActionVisibility:parseQuickActionVisibility(input.quickActionVisibility)
|
|
@@ -1638,7 +1643,7 @@ return{behavior:scope.behavior,layout:scope.layout,desiredMcpStates:scope.mcp
|
|
|
1638
1643
|
}}
|
|
1639
1644
|
function mergeSessionLayout(base,session){const order=session.order??base?.order
|
|
1640
1645
|
return{sections:{...base?.sections,...session.sections},expanded:{...base?.expanded,...session.expanded},...order&&{order:[...order]}}}
|
|
1641
|
-
function createPreferencesController(api,defaults,store,configured={}){const builtIns={behavior:{toggleKey:defaults.toggleKey,focusKey:defaults.focusKey,searchKey:defaults.searchKey,persistMcp:defaults.persistMcp,startInChat:defaults.startInChat,showSessionTitle:defaults.showSessionTitle,showSessionDate:defaults.showSessionDate,cornerFont:defaults.cornerFont,lspIconStyle:defaults.lspIconStyle,rowDensity:defaults.rowDensity,sectionItemLimits:defaults.sectionItemLimits,quickActionOrder:defaults.quickActionOrder,quickActionVisibility:defaults.quickActionVisibility
|
|
1646
|
+
function createPreferencesController(api,defaults,store,configured={}){const builtIns={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,sectionItemLimits:defaults.sectionItemLimits,quickActionOrder:defaults.quickActionOrder,quickActionVisibility:defaults.quickActionVisibility
|
|
1642
1647
|
},layout:{sections:defaults.sections,expanded:DEFAULT_SECTION_EXPANSION,order:defaults.sectionOrder??[...SIDEBAR_SECTIONS]
|
|
1643
1648
|
},desiredMcpStates:{}}
|
|
1644
1649
|
const [resolved,setResolved]=createSignal4(resolvePreferences({builtIns,pluginOptions:configured}))
|
|
@@ -1881,9 +1886,13 @@ next.add(id)
|
|
|
1881
1886
|
setFavoriteQuickActions(next)
|
|
1882
1887
|
update({user:{favoriteQuickAction:{id,favorite:next.has(id)}}})
|
|
1883
1888
|
}
|
|
1884
|
-
return{sections:()=>resolved().layout.sections,expanded:()=>resolved().layout.expanded,sectionOrder:()=>resolved().layout.order,toggleKey:()=>resolved().behavior.toggleKey,focusKey:()=>resolved().behavior.focusKey,searchKey:()=>resolved().behavior.searchKey,persistMcp:()=>resolved().behavior.persistMcp,showSessionTitle:()=>resolved().behavior.showSessionTitle,showSessionDate:()=>resolved().behavior.showSessionDate,startInChatForScope:(scope)=>{revision()
|
|
1889
|
+
return{sections:()=>resolved().layout.sections,expanded:()=>resolved().layout.expanded,sectionOrder:()=>resolved().layout.order,toggleKey:()=>resolved().behavior.toggleKey,focusKey:()=>resolved().behavior.focusKey,searchKey:()=>resolved().behavior.searchKey,persistMcp:()=>resolved().behavior.persistMcp,limitsRefreshMinutes:()=>resolved().behavior.limitsRefreshMinutes,showSessionTitle:()=>resolved().behavior.showSessionTitle,showSessionDate:()=>resolved().behavior.showSessionDate,startInChatForScope:(scope)=>{revision()
|
|
1885
1890
|
return resolveTarget(targetForScope(scope),false).behavior.startInChat
|
|
1886
|
-
},cornerFont:()=>resolved().behavior.cornerFont,lspIconStyle:()=>resolved().behavior.lspIconStyle,rowDensity:()=>resolved().behavior.rowDensity,selectedToggleKey:()=>selectedResolved().behavior.toggleKey,selectedFocusKey:()=>selectedResolved().behavior.focusKey,selectedSearchKey:()=>selectedResolved().behavior.searchKey,selectedPersistMcp:()=>selectedResolved().behavior.persistMcp,
|
|
1891
|
+
},cornerFont:()=>resolved().behavior.cornerFont,lspIconStyle:()=>resolved().behavior.lspIconStyle,rowDensity:()=>resolved().behavior.rowDensity,selectedToggleKey:()=>selectedResolved().behavior.toggleKey,selectedFocusKey:()=>selectedResolved().behavior.focusKey,selectedSearchKey:()=>selectedResolved().behavior.searchKey,selectedPersistMcp:()=>selectedResolved().behavior.persistMcp,selectedLimitsRefreshMinutes:()=>selectedResolved().behavior.limitsRefreshMinutes,setLimitsRefreshMinutes(value){if(parseLimitsRefreshMinutes(value)===undefined)
|
|
1892
|
+
throw new Error("Enter whole minutes (at least 1 minute, within the supported timer range)")
|
|
1893
|
+
load()
|
|
1894
|
+
update({target:selectedTarget(),behavior:{limitsRefreshMinutes:value}})
|
|
1895
|
+
},selectedStartInChat:()=>selectedResolved().behavior.startInChat,selectedShowSessionTitle:()=>selectedResolved().behavior.showSessionTitle,selectedShowSessionDate:()=>selectedResolved().behavior.showSessionDate,selectedCornerFont:()=>selectedResolved().behavior.cornerFont,selectedLspIconStyle:()=>selectedResolved().behavior.lspIconStyle,selectedRowDensity:()=>selectedResolved().behavior.rowDensity,quickActionOrder:()=>resolved().behavior.quickActionOrder,quickActionVisible:(id)=>resolved().behavior.quickActionVisibility[id]!==false,selectedQuickActionOrder:()=>selectedResolved().behavior.quickActionOrder,selectedQuickActionVisible:(id)=>selectedResolved().behavior.quickActionVisibility[id]!==false,toggleQuickAction(id){load()
|
|
1887
1896
|
update({target:selectedTarget(),behavior:{quickActionVisibility:{[id]:selectedResolved().behavior.quickActionVisibility[id]===false}}})
|
|
1888
1897
|
},moveQuickAction(id,direction){load()
|
|
1889
1898
|
const order=[...selectedResolved().behavior.quickActionOrder]
|
|
@@ -4142,6 +4151,20 @@ dialogs.open(()=>_$createComponent(SelectionMenu,{api,title:"MCP presets",get op
|
|
|
4142
4151
|
|
|
4143
4152
|
|
|
4144
4153
|
|
|
4154
|
+
function behaviorSettingsOptions(api,preferences,icons){const permission=preferences.autoApprovePermissions()
|
|
4155
|
+
const permissionDescription=permission?"on for new sessions":"off for new sessions"
|
|
4156
|
+
return [...supportsPermissionMode(api)?[{title:`${icons.icon(permission === true ? "checked" : "unchecked")} Default auto-approve permissions`,value:"auto_approve_permissions",description:permission===undefined?"follow OpenCode startup mode":permissionDescription
|
|
4157
|
+
}]:[],{title:`${icons.icon(preferences.selectedStartInChat() ? "checked" : "unchecked")} Start new sessions in chat`,value:"start_in_chat",description:preferences.selectedStartInChat()?"skip Home \xB7 on":"show Home \xB7 off"
|
|
4158
|
+
},{title:`${icons.icon(preferences.selectedPersistMcp() ? "checked" : "unchecked")} Remember MCP states`,value:"persist_mcp",description:preferences.selectedPersistMcp()?"on":"off"
|
|
4159
|
+
},{title:`${icons.icon("settings")} Icon style`,value:"lsp_icon_style",description:preferences.selectedLspIconStyle()==="nerd"?"Nerd Font":"Text fallback"
|
|
4160
|
+
},{title:`${icons.icon(preferences.selectedCornerFont() ? "checked" : "unchecked")} Multiline corner font`,value:"corner_font",description:preferences.selectedCornerFont()?"Installed":"Not installed \xB7 rectangular highlights"
|
|
4161
|
+
},{title:`${icons.icon("sections")} Row density`,value:"row_density",description:preferences.selectedRowDensity()==="compact"?"Compact":"Comfortable"
|
|
4162
|
+
},{title:`${icons.icon("sections")} Sidebar shortcut`,value:"toggle_key",description:preferences.selectedToggleKey()
|
|
4163
|
+
},{title:`${icons.icon("selected")} Focus shortcut`,value:"focus_key",description:preferences.selectedFocusKey()
|
|
4164
|
+
},{title:`${icons.icon("search")} Search Everything shortcut`,value:"search_key",description:preferences.selectedSearchKey?.()??DEFAULT_SEARCH_KEY
|
|
4165
|
+
},{title:`${icons.icon("retry")} Limits refresh interval`,value:"limits_refresh",description:`${preferences.selectedLimitsRefreshMinutes()} min \xB7 minimum 1 min`
|
|
4166
|
+
}]
|
|
4167
|
+
}
|
|
4145
4168
|
function titleVisibilityOptions(api,preferences,icons){if(!supportsTitleVisibility(api))
|
|
4146
4169
|
return []
|
|
4147
4170
|
const title=preferences.selectedShowSessionTitle()
|
|
@@ -4151,11 +4174,6 @@ return [{title:`${icons.icon(title ? "checked" : "unchecked")} Session title`,va
|
|
|
4151
4174
|
}]
|
|
4152
4175
|
}
|
|
4153
4176
|
function createSettingsGroups(api,preferences,icons){const supportedSections=()=>SIDEBAR_SECTIONS.filter((name)=>supportsSidebarSection(api,name))
|
|
4154
|
-
const permissionDefaultDescription=()=>{const value=preferences.autoApprovePermissions()
|
|
4155
|
-
if(value===undefined)
|
|
4156
|
-
return "follow OpenCode startup mode"
|
|
4157
|
-
return value?"on for new sessions":"off for new sessions"
|
|
4158
|
-
}
|
|
4159
4177
|
const groups=createMemo7(()=>[{id:"scope",tab:"Scope",title:"Preference scope",options:[{title:`${icons.icon(preferences.preferenceScope() === "global" ? "radioOn" : "radioOff")} Global`,value:"scope:global",description:"applies to every worktree"
|
|
4160
4178
|
},{title:`${icons.icon(preferences.preferenceScope() === "worktree" ? "radioOn" : "radioOff")} Current worktree`,value:"scope:worktree",description:preferences.canUseWorktreeScope()?preferences.preferenceScopeLabel():"unavailable outside a worktree"
|
|
4161
4179
|
}]
|
|
@@ -4165,16 +4183,7 @@ const groups=createMemo7(()=>[{id:"scope",tab:"Scope",title:"Preference scope",o
|
|
|
4165
4183
|
},{id:"sections",tab:"Sections",title:"Sections & order",options:[...titleVisibilityOptions(api,preferences,icons),...preferences.selectedSectionOrder().filter((name)=>supportsSidebarSection(api,name)).map((name,index)=>{const section=SECTION_DEFINITIONS.find((candidate)=>candidate.name===name)
|
|
4166
4184
|
return{title:`${icons.icon(preferences.selectedSections()[section.name] ? "checked" : "unchecked")} ${index + 1}. ${icons.section(section.name)} ${section.label}`,value:section.name,description:preferences.selectedSections()[section.name]?"visible":"hidden"
|
|
4167
4185
|
}})]
|
|
4168
|
-
},{id:"behavior",tab:"Behavior",title:"Behavior",options:
|
|
4169
|
-
}]:[],{title:`${icons.icon(preferences.selectedStartInChat() ? "checked" : "unchecked")} Start new sessions in chat`,value:"start_in_chat",description:preferences.selectedStartInChat()?"skip Home \xB7 on":"show Home \xB7 off"
|
|
4170
|
-
},{title:`${icons.icon(preferences.selectedPersistMcp() ? "checked" : "unchecked")} Remember MCP states`,value:"persist_mcp",description:preferences.selectedPersistMcp()?"on":"off"
|
|
4171
|
-
},{title:`${icons.icon("settings")} Icon style`,value:"lsp_icon_style",description:preferences.selectedLspIconStyle()==="nerd"?"Nerd Font":"Text fallback"
|
|
4172
|
-
},{title:`${icons.icon(preferences.selectedCornerFont() ? "checked" : "unchecked")} Multiline corner font`,value:"corner_font",description:preferences.selectedCornerFont()?"Installed":"Not installed \xB7 rectangular highlights"
|
|
4173
|
-
},{title:`${icons.icon("sections")} Row density`,value:"row_density",description:preferences.selectedRowDensity()==="compact"?"Compact":"Comfortable"
|
|
4174
|
-
},{title:`${icons.icon("sections")} Sidebar shortcut`,value:"toggle_key",description:preferences.selectedToggleKey()
|
|
4175
|
-
},{title:`${icons.icon("selected")} Focus shortcut`,value:"focus_key",description:preferences.selectedFocusKey()
|
|
4176
|
-
},{title:`${icons.icon("search")} Search Everything shortcut`,value:"search_key",description:preferences.selectedSearchKey?.()??DEFAULT_SEARCH_KEY
|
|
4177
|
-
}]
|
|
4186
|
+
},{id:"behavior",tab:"Behavior",title:"Behavior",options:behaviorSettingsOptions(api,preferences,icons)
|
|
4178
4187
|
},{id:"defaults",tab:"Defaults",title:"Defaults & help",options:[{title:`${icons.icon("save")} Save current layout as default`,value:"save_layout",description:`${supportedSections().filter((name) => preferences.selectedSections()[name]).length} visible \xB7 ${supportedSections().filter((name) => preferences.selectedExpanded()[name]).length} expanded`
|
|
4179
4188
|
},{title:`${icons.icon("export")} Copy portable settings`,value:"export_settings",description:"versioned layout and MCP JSON"
|
|
4180
4189
|
},{title:`${icons.icon("add")} Import portable settings\u2026`,value:"import_settings",description:"preview pasted JSON before applying"
|
|
@@ -4209,6 +4218,24 @@ input.openLimitPrompt(section)
|
|
|
4209
4218
|
|
|
4210
4219
|
|
|
4211
4220
|
|
|
4221
|
+
|
|
4222
|
+
|
|
4223
|
+
|
|
4224
|
+
|
|
4225
|
+
|
|
4226
|
+
function openLimitsRefreshPrompt(api,preferences,dialogs){const scope=preferences.preferenceScopeLabel()
|
|
4227
|
+
dialogs.prompt({title:"Limits refresh interval",description:()=>(()=>{var _el$=_$createElement("text")
|
|
4228
|
+
_$insertNode(_el$,_$createTextNode(`Automatic refresh in minutes (minimum 1; default 5). Manual Refresh stays immediate.`))
|
|
4229
|
+
_$effect((_$p)=>_$setProp(_el$,"fg",api.theme.current.textMuted,_$p))
|
|
4230
|
+
return _el$
|
|
4231
|
+
})(),value:String(preferences.selectedLimitsRefreshMinutes()),onConfirm(value){if(preferences.preferenceScopeLabel()!==scope)
|
|
4232
|
+
throw new Error("Preference scope changed; reopen this setting")
|
|
4233
|
+
if(!/^\d+$/.test(value.trim()))
|
|
4234
|
+
throw new Error("Enter whole minutes (at least 1 minute)")
|
|
4235
|
+
preferences.setLimitsRefreshMinutes(Number(value))
|
|
4236
|
+
dialogs.back()
|
|
4237
|
+
}})
|
|
4238
|
+
}
|
|
4212
4239
|
function createSettingsSelection(input){const dialogClosed=()=>("open" in input.api.ui.dialog)&&!input.api.ui.dialog.open
|
|
4213
4240
|
function openLimitPrompt(section){const index=input.options().findIndex((option)=>option.value===section)
|
|
4214
4241
|
if(index!==-1)
|
|
@@ -4289,6 +4316,9 @@ break
|
|
|
4289
4316
|
case "persist_mcp":{input.preferences.toggleMcpPersistence()
|
|
4290
4317
|
break
|
|
4291
4318
|
}
|
|
4319
|
+
case "limits_refresh":{openLimitsRefreshPrompt(input.api,input.preferences,input.dialogs)
|
|
4320
|
+
break
|
|
4321
|
+
}
|
|
4292
4322
|
case "start_in_chat":{input.preferences.toggleStartInChat()
|
|
4293
4323
|
break
|
|
4294
4324
|
}
|
|
@@ -6150,6 +6180,13 @@ return _$createComponent(SectionWithHeaderAction,{get api(){return props.api
|
|
|
6150
6180
|
|
|
6151
6181
|
|
|
6152
6182
|
|
|
6183
|
+
|
|
6184
|
+
|
|
6185
|
+
|
|
6186
|
+
|
|
6187
|
+
|
|
6188
|
+
|
|
6189
|
+
|
|
6153
6190
|
|
|
6154
6191
|
|
|
6155
6192
|
|
|
@@ -6206,7 +6243,7 @@ _$insert(_el$2,()=>props.action.label)
|
|
|
6206
6243
|
_$effect((_$p)=>_$setProp(_el$2,"fg",row.foregroundColor(),_$p))
|
|
6207
6244
|
return _el$2
|
|
6208
6245
|
})()
|
|
6209
|
-
},get metadata(){return _$createComponent(
|
|
6246
|
+
},get metadata(){return _$createComponent(Show21,{get when(){return visibleShortcut()
|
|
6210
6247
|
},children:(value)=>(()=>{var _el$3=_$createElement("text")
|
|
6211
6248
|
_$setProp(_el$3,"flexShrink",0)
|
|
6212
6249
|
_$setProp(_el$3,"wrapMode","none")
|
|
@@ -6215,7 +6252,7 @@ _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme()
|
|
|
6215
6252
|
return _el$3
|
|
6216
6253
|
})()
|
|
6217
6254
|
})
|
|
6218
|
-
},get details(){return _$createComponent(
|
|
6255
|
+
},get details(){return _$createComponent(Show21,{get when(){return props.disabled
|
|
6219
6256
|
},children:(reason)=>(()=>{var _el$4=_$createElement("text")
|
|
6220
6257
|
_$setProp(_el$4,"wrapMode","word")
|
|
6221
6258
|
_$insert(_el$4,reason)
|
|
@@ -6243,12 +6280,12 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6243
6280
|
},onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children(){return [_$createComponent(SidebarRowList,{get api(){return props.api
|
|
6244
6281
|
},get interaction(){return props.interaction
|
|
6245
6282
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6246
|
-
},get children(){return [_$createComponent(
|
|
6283
|
+
},get children(){return [_$createComponent(Show22,{get when(){return actions().length===0
|
|
6247
6284
|
},get children(){var _el$=_$createElement("text")
|
|
6248
6285
|
_$insertNode(_el$,_$createTextNode(`No quick actions selected`))
|
|
6249
6286
|
_$effect((_$p)=>_$setProp(_el$,"fg",props.api.theme.current.textMuted,_$p))
|
|
6250
6287
|
return _el$
|
|
6251
|
-
}}),_$createComponent(
|
|
6288
|
+
}}),_$createComponent(For16,{get each(){return visibility.visible()
|
|
6252
6289
|
},children:(action,index)=>_$createComponent(QuickActionRow,{get onNewSession(){return props.onNewSession
|
|
6253
6290
|
},action,get disabled(){return action.disabled
|
|
6254
6291
|
},get favorite(){return props.preferences.favoriteQuickActions?.().has(action.command)??false
|
|
@@ -6491,7 +6528,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
|
|
|
6491
6528
|
}},get query(){return query()
|
|
6492
6529
|
},placeholder:"Filter skills...",onInput:setQuery
|
|
6493
6530
|
}),null)
|
|
6494
|
-
_$insert(_el$,_$createComponent(
|
|
6531
|
+
_$insert(_el$,_$createComponent(Show23,{get when(){return model.filtered().length>0
|
|
6495
6532
|
},get fallback(){return(()=>{var _el$2=_$createElement("text")
|
|
6496
6533
|
_$insertNode(_el$2,_$createTextNode(`No matching skills`))
|
|
6497
6534
|
_$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6501,8 +6538,8 @@ return _el$2
|
|
|
6501
6538
|
},get interaction(){return props.interaction
|
|
6502
6539
|
},get grouped(){return model.grouped
|
|
6503
6540
|
},get density(){return props.preferences.rowDensity?.()??"compact"
|
|
6504
|
-
},get children(){return _$createComponent(
|
|
6505
|
-
},children:(item,index)=>[_$createComponent(
|
|
6541
|
+
},get children(){return _$createComponent(For17,{get each(){return model.visibility.visible()
|
|
6542
|
+
},children:(item,index)=>[_$createComponent(Show23,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
|
|
6506
6543
|
},get children(){var _el$4=_$createElement("text")
|
|
6507
6544
|
_$setProp(_el$4,"height",1)
|
|
6508
6545
|
_$setProp(_el$4,"wrapMode","none")
|
|
@@ -6629,7 +6666,7 @@ return()=>_c$()?`${props.item.run.startedBeforeObservation ? `${icons.icon("rece
|
|
|
6629
6666
|
_$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
|
|
6630
6667
|
return _el$3
|
|
6631
6668
|
})()
|
|
6632
|
-
},get details(){return [_$createComponent(
|
|
6669
|
+
},get details(){return [_$createComponent(Show24,{get when(){return props.item.run?.errorMessage
|
|
6633
6670
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createTextNode(`: `)
|
|
6634
6671
|
_$insertNode(_el$4,_el$5)
|
|
6635
6672
|
_$setProp(_el$4,"wrapMode","word")
|
|
@@ -6637,12 +6674,12 @@ _$insert(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
|
|
|
6637
6674
|
_$insert(_el$4,()=>props.item.run?.errorMessage,null)
|
|
6638
6675
|
_$effect((_$p)=>_$setProp(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
|
|
6639
6676
|
return _el$4
|
|
6640
|
-
}}),_$createComponent(
|
|
6677
|
+
}}),_$createComponent(Show24,{get when(){return props.item.unavailable
|
|
6641
6678
|
},get children(){var _el$6=_$createElement("text")
|
|
6642
6679
|
_$insertNode(_el$6,_$createTextNode(`Worker status unavailable`))
|
|
6643
6680
|
_$effect((_$p)=>_$setProp(_el$6,"fg",theme().warning,_$p))
|
|
6644
6681
|
return _el$6
|
|
6645
|
-
}}),_$createComponent(
|
|
6682
|
+
}}),_$createComponent(Show24,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
|
|
6646
6683
|
},children:(status)=>(()=>{var _el$0=_$createElement("text"),_el$1=_$createTextNode(`Retry #`),_el$10=_$createTextNode(` \xB7 `),_el$11=_$createTextNode(`s \xB7 `)
|
|
6647
6684
|
_$insertNode(_el$0,_el$1)
|
|
6648
6685
|
_$insertNode(_el$0,_el$10)
|
|
@@ -6654,7 +6691,7 @@ _$insert(_el$0,()=>status().message,null)
|
|
|
6654
6691
|
_$effect((_$p)=>_$setProp(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
|
|
6655
6692
|
return _el$0
|
|
6656
6693
|
})()
|
|
6657
|
-
}),_$createComponent(
|
|
6694
|
+
}),_$createComponent(Show24,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
|
|
6658
6695
|
},get children(){var _el$8=_$createElement("text")
|
|
6659
6696
|
_$insertNode(_el$8,_$createTextNode(`Finished`))
|
|
6660
6697
|
_$effect((_$p)=>_$setProp(_el$8,"fg",theme().textMuted,_$p))
|
|
@@ -6665,12 +6702,12 @@ return _el$8
|
|
|
6665
6702
|
function SubagentList(props){return _$createComponent(SidebarRowList,{get api(){return props.api
|
|
6666
6703
|
},get interaction(){return props.interaction
|
|
6667
6704
|
},get density(){return props.density
|
|
6668
|
-
},get children(){return _$createComponent(
|
|
6705
|
+
},get children(){return _$createComponent(For18,{get each(){return props.ids
|
|
6669
6706
|
},children:(id,index)=>{const initial=props.itemById(id)
|
|
6670
6707
|
const item=()=>props.itemById(id)??initial
|
|
6671
6708
|
const startsGroup=()=>index()===0||props.visible[index()-1]?.group!==item().group
|
|
6672
6709
|
return(()=>{var _el$=_$createElement("box")
|
|
6673
|
-
_$insert(_el$,_$createComponent(
|
|
6710
|
+
_$insert(_el$,_$createComponent(Show25,{get when(){return startsGroup()
|
|
6674
6711
|
},get children(){var _el$2=_$createElement("text"),_el$3=_$createElement("b")
|
|
6675
6712
|
_$insertNode(_el$2,_el$3)
|
|
6676
6713
|
_$insert(_el$3,()=>item().group)
|
|
@@ -6696,7 +6733,7 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6696
6733
|
},sectionId:`${PLUGIN_ID}.section.subagents`,get navigationSection(){return navigationSection()
|
|
6697
6734
|
},title:"SUBAGENTS",section:"subagents",get summary(){return `${model.list().length} active \xB7 ${model.recent().length} recent`
|
|
6698
6735
|
},get open(){return props.preferences.expanded().subagents
|
|
6699
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(
|
|
6736
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show26,{get when(){return model.parentID()
|
|
6700
6737
|
},children:(id)=>_$createComponent(McpBulkAction,{get api(){return props.api
|
|
6701
6738
|
},get interaction(){return props.interaction
|
|
6702
6739
|
},id:`${PLUGIN_ID}.subagents.parent`,get position(){return{section:navigationSection(),row:1,column:0
|
|
@@ -6719,7 +6756,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
|
|
|
6719
6756
|
}}),_el$2)
|
|
6720
6757
|
_$setProp(_el$2,"flexDirection","row")
|
|
6721
6758
|
_$setProp(_el$2,"flexWrap","wrap")
|
|
6722
|
-
_$insert(_el$2,_$createComponent(
|
|
6759
|
+
_$insert(_el$2,_$createComponent(For19,{get each(){return model.tabs()
|
|
6723
6760
|
},children:(value,index)=>_$createComponent(SectionTab,{get api(){return props.api
|
|
6724
6761
|
},get interaction(){return props.interaction
|
|
6725
6762
|
},id:`${PLUGIN_ID}.subagents.filter.${value}`,get position(){return{section:navigationSection(),row:4,column:index()
|
|
@@ -6730,7 +6767,7 @@ _$insert(_el$2,_$createComponent(For18,{get each(){return model.tabs()
|
|
|
6730
6767
|
},onActivate:()=>model.setMode(value)
|
|
6731
6768
|
})
|
|
6732
6769
|
}))
|
|
6733
|
-
_$insert(_el$,_$createComponent(
|
|
6770
|
+
_$insert(_el$,_$createComponent(Show26,{get when(){return model.filtered().length===0
|
|
6734
6771
|
},get children(){var _el$3=_$createElement("text")
|
|
6735
6772
|
_$insertNode(_el$3,_$createTextNode(`No matching subagents`))
|
|
6736
6773
|
_$effect((_$p)=>_$setProp(_el$3,"fg",props.api.theme.current.textMuted,_$p))
|
|
@@ -6814,7 +6851,7 @@ _$insert(_el$2,()=>icons.icon(done()?"done":active()?"busy":cancelled()?"close":
|
|
|
6814
6851
|
_$setProp(_el$3,"flexGrow",1)
|
|
6815
6852
|
_$setProp(_el$3,"wrapMode","word")
|
|
6816
6853
|
_$insert(_el$3,()=>props.item.content)
|
|
6817
|
-
_$insert(_el$,_$createComponent(
|
|
6854
|
+
_$insert(_el$,_$createComponent(Show27,{get when(){return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
|
|
6818
6855
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b"),_el$6=_$createTextNode(` `)
|
|
6819
6856
|
_$insertNode(_el$4,_el$5)
|
|
6820
6857
|
_$setProp(_el$4,"width",2)
|
|
@@ -6841,7 +6878,7 @@ _$insertNode(_el$,_el$2)
|
|
|
6841
6878
|
_$setProp(_el$,"gap",1)
|
|
6842
6879
|
_$setProp(_el$2,"flexDirection","row")
|
|
6843
6880
|
_$setProp(_el$2,"flexWrap","wrap")
|
|
6844
|
-
_$insert(_el$2,_$createComponent(
|
|
6881
|
+
_$insert(_el$2,_$createComponent(For20,{each:["all","active","finished"],children:(value,index)=>_$createComponent(SectionTab,{get api(){return props.api
|
|
6845
6882
|
},get interaction(){return props.interaction
|
|
6846
6883
|
},id:`${PLUGIN_ID}.todo.filter.${value}`,get position(){return{section:navigationSection(),row:tabsRow(),column:index()
|
|
6847
6884
|
}},get label(){return value[0].toUpperCase() + value.slice(1)
|
|
@@ -6850,17 +6887,17 @@ _$insert(_el$2,_$createComponent(For19,{each:["all","active","finished"],childre
|
|
|
6850
6887
|
},onActivate:()=>props.setMode(value)
|
|
6851
6888
|
})
|
|
6852
6889
|
}))
|
|
6853
|
-
_$insert(_el$,_$createComponent(
|
|
6890
|
+
_$insert(_el$,_$createComponent(Show28,{get when(){return props.view.rows.length>0
|
|
6854
6891
|
},get fallback(){return _$createComponent(EmptyTodo,{get api(){return props.api
|
|
6855
6892
|
},get mode(){return props.mode
|
|
6856
6893
|
}})
|
|
6857
6894
|
},get children(){return _$createComponent(SidebarRowList,{get api(){return props.api
|
|
6858
6895
|
},get interaction(){return props.interaction
|
|
6859
6896
|
},get density(){return props.density
|
|
6860
|
-
},get children(){return _$createComponent(
|
|
6897
|
+
},get children(){return _$createComponent(For20,{get each(){return props.visibility.visible()
|
|
6861
6898
|
},children:(row,index)=>{const startsGroup=()=>index()===0||props.visibility.visible()[index()-1].group!==row.group
|
|
6862
6899
|
return(()=>{var _el$3=_$createElement("box")
|
|
6863
|
-
_$insert(_el$3,_$createComponent(
|
|
6900
|
+
_$insert(_el$3,_$createComponent(Show28,{get when(){return startsGroup()
|
|
6864
6901
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
|
|
6865
6902
|
_$insertNode(_el$4,_el$5)
|
|
6866
6903
|
_$insert(_el$5,()=>row.group)
|
|
@@ -6897,7 +6934,7 @@ return _el$6
|
|
|
6897
6934
|
|
|
6898
6935
|
|
|
6899
6936
|
function TodoGuidanceControl(props){const state=()=>props.controller.guidance(props.sessionID)
|
|
6900
|
-
return _$createComponent(
|
|
6937
|
+
return _$createComponent(Show29,{get when(){return state().available
|
|
6901
6938
|
},get children(){var _el$=_$createElement("box")
|
|
6902
6939
|
_$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
|
|
6903
6940
|
},get interaction(){return props.interaction
|
|
@@ -6907,7 +6944,7 @@ _$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
|
|
|
6907
6944
|
},get disabled(){return state().saving
|
|
6908
6945
|
},onActivate:()=>void props.controller.setGuidance(props.sessionID,!state().enabled)
|
|
6909
6946
|
}),null)
|
|
6910
|
-
_$insert(_el$,_$createComponent(
|
|
6947
|
+
_$insert(_el$,_$createComponent(Show29,{get when(){return state().error
|
|
6911
6948
|
},children:(message)=>(()=>{var _el$2=_$createElement("text")
|
|
6912
6949
|
_$setProp(_el$2,"wrapMode","word")
|
|
6913
6950
|
_$insert(_el$2,message)
|
|
@@ -6945,10 +6982,10 @@ return _$createComponent(Section,{get api(){return props.api
|
|
|
6945
6982
|
},sectionId:`${PLUGIN_ID}.section.todo`,get navigationSection(){return navigationSection()
|
|
6946
6983
|
},title:"TODO",section:"todo",get summary(){return _$memo(()=>!!(unavailable()||managed()?.missing(props.sessionID)))()?"\u2014":`${view().counts.completed}/${list().length}`
|
|
6947
6984
|
},get open(){return props.preferences.expanded().todo
|
|
6948
|
-
},onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(
|
|
6985
|
+
},onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show30,{get when(){return unavailable()
|
|
6949
6986
|
},get fallback(){return(()=>{var _el$=_$createElement("box")
|
|
6950
6987
|
_$setProp(_el$,"gap",1)
|
|
6951
|
-
_$insert(_el$,_$createComponent(
|
|
6988
|
+
_$insert(_el$,_$createComponent(Show30,{get when(){return managed()?.guidance(props.sessionID).available
|
|
6952
6989
|
},get children(){return _$createComponent(TodoGuidanceControl,{get api(){return props.api
|
|
6953
6990
|
},get controller(){return managed()
|
|
6954
6991
|
},get sessionID(){return props.sessionID
|
|
@@ -6956,7 +6993,7 @@ _$insert(_el$,_$createComponent(Show29,{get when(){return managed()?.guidance(pr
|
|
|
6956
6993
|
},get navigationSection(){return navigationSection()
|
|
6957
6994
|
}})
|
|
6958
6995
|
}}),null)
|
|
6959
|
-
_$insert(_el$,_$createComponent(
|
|
6996
|
+
_$insert(_el$,_$createComponent(Show30,{get when(){return managed()?.missing(props.sessionID)
|
|
6960
6997
|
},get fallback(){return _$createComponent(SectionRequestBody,{get api(){return props.api
|
|
6961
6998
|
},get interaction(){return props.interaction
|
|
6962
6999
|
},id:`${PLUGIN_ID}.retry.todo`,get position(){return{section:navigationSection(),row:1,column:0
|
|
@@ -7005,7 +7042,7 @@ event.preventDefault()
|
|
|
7005
7042
|
event.stopPropagation()
|
|
7006
7043
|
props.interaction.leave()
|
|
7007
7044
|
})
|
|
7008
|
-
_$insert(_el$,_$createComponent(
|
|
7045
|
+
_$insert(_el$,_$createComponent(For21,{get each(){return visibleSections()
|
|
7009
7046
|
},children:(section,index)=>_$createComponent(SectionBoundary,{get api(){return props.api
|
|
7010
7047
|
},get divided(){return index()<visibleSections().length-1
|
|
7011
7048
|
},get children(){return _$createComponent(Switch,{get children(){return [_$createComponent(Match,{when:section==="limits",get children(){return props.limitsSection(index() + 1)
|
|
@@ -7100,7 +7137,7 @@ _$setProp(_el$2,"flexDirection","row")
|
|
|
7100
7137
|
_$setProp(_el$2,"justifyContent","space-between")
|
|
7101
7138
|
_$setProp(_el$2,"gap",1)
|
|
7102
7139
|
_$setProp(_el$3,"flexGrow",1)
|
|
7103
|
-
_$insert(_el$3,_$createComponent(
|
|
7140
|
+
_$insert(_el$3,_$createComponent(Show31,{get when(){return props.preferences.showSessionTitle()
|
|
7104
7141
|
},get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
|
|
7105
7142
|
_$insertNode(_el$4,_el$5)
|
|
7106
7143
|
_$setProp(_el$4,"wrapMode","word")
|
|
@@ -7108,7 +7145,7 @@ _$insert(_el$5,()=>props.title)
|
|
|
7108
7145
|
_$effect((_$p)=>_$setProp(_el$4,"fg",theme().text,_$p))
|
|
7109
7146
|
return _el$4
|
|
7110
7147
|
}}),null)
|
|
7111
|
-
_$insert(_el$3,_$createComponent(
|
|
7148
|
+
_$insert(_el$3,_$createComponent(Show31,{get when(){return _$memo(()=>!!props.preferences.showSessionDate())()&&created()
|
|
7112
7149
|
},children:(value)=>(()=>{var _el$6=_$createElement("text")
|
|
7113
7150
|
_$insert(_el$6,value)
|
|
7114
7151
|
_$effect((_$p)=>_$setProp(_el$6,"fg",theme().textMuted,_$p))
|
|
@@ -7150,22 +7187,36 @@ return mergeConfiguredDefaults(configuredDefaultsFromPluginOptions(options),user
|
|
|
7150
7187
|
}
|
|
7151
7188
|
|
|
7152
7189
|
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
|
|
7190
|
+
var scheduleInterval=(callback,milliseconds)=>{const timer=setInterval(callback,milliseconds)
|
|
7191
|
+
return()=>clearInterval(timer)
|
|
7192
|
+
}
|
|
7193
|
+
function createLimitsRefresh(options,schedule=scheduleInterval){let disposed=false
|
|
7194
|
+
const selectedKey=createMemo22(()=>JSON.stringify(options.selectedModel?.()))
|
|
7195
|
+
const targetKey=createMemo22(()=>JSON.stringify(options.controller.current().model))
|
|
7196
|
+
const interval=createMemo22(()=>(parseLimitsRefreshMinutes(options.refreshMinutes?.())??DEFAULT_LIMITS_REFRESH_MINUTES)*60000)
|
|
7197
|
+
createEffect21(on2(selectedKey,()=>{const model=options.selectedModel?.()
|
|
7198
|
+
if(model&&options.accountSource)
|
|
7199
|
+
options.accountSource.refresh(model).catch(()=>{})
|
|
7200
|
+
}))
|
|
7201
|
+
createEffect21(on2(targetKey,()=>{const{model,adapter}=options.controller.current()
|
|
7159
7202
|
if(model&&adapter)
|
|
7160
|
-
|
|
7203
|
+
options.controller.refresh()
|
|
7204
|
+
}))
|
|
7205
|
+
async function refresh(){if(disposed)
|
|
7206
|
+
return
|
|
7207
|
+
const target=targetKey()
|
|
7208
|
+
const model=options.selectedModel?.()
|
|
7209
|
+
if(model&&options.accountSource)
|
|
7210
|
+
await options.accountSource.refresh(model)
|
|
7211
|
+
if(!disposed&&target===targetKey())
|
|
7212
|
+
await options.controller.refresh()
|
|
7213
|
+
}
|
|
7214
|
+
createEffect21(on2(interval,(milliseconds)=>{onCleanup25(schedule(()=>void refresh().catch(()=>{}),milliseconds))
|
|
7215
|
+
}))
|
|
7216
|
+
onCleanup25(()=>{disposed=true
|
|
7161
7217
|
})
|
|
7162
|
-
|
|
7163
|
-
|
|
7164
|
-
props.accountSource.refresh(model).then(()=>untrack10(()=>props.controller.refresh()))
|
|
7165
|
-
else
|
|
7166
|
-
props.controller.refresh()
|
|
7167
|
-
},5000)
|
|
7168
|
-
onCleanup25(()=>clearInterval(timer))
|
|
7218
|
+
}
|
|
7219
|
+
function LimitsPersistence(props){createLimitsRefresh(props)
|
|
7169
7220
|
return _$createElement("box")
|
|
7170
7221
|
}
|
|
7171
7222
|
import {homedir} from "os"
|
|
@@ -7471,7 +7522,7 @@ const limitsPath=import.meta.url.includes("/dist/tui.js")?"./provider-limits.js"
|
|
|
7471
7522
|
const limitsModule=await import(limitsPath)
|
|
7472
7523
|
const LimitsSection=limitsModule.ProviderLimitsSection
|
|
7473
7524
|
const{controller:limits,codex,accountSource,selectModel,modelSelection
|
|
7474
|
-
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.21.
|
|
7525
|
+
}=limitsModule.createProviderQuotaIntegration(api,preferences,"0.21.6",hostContext)
|
|
7475
7526
|
const mcp=createMcpController(api,preferences.persistMcp,preferences)
|
|
7476
7527
|
const interaction=createSidebarInteraction(api,()=>openKeyboardHelp(api,preferences.lspIconStyle,preferences.cornerFont))
|
|
7477
7528
|
const startup=createStartupSessionController(api,preferences)
|
|
@@ -7490,8 +7541,8 @@ api.lifecycle.onDispose(unsubscribeConnected)
|
|
|
7490
7541
|
api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7491
7542
|
},get multilineCorners(){return preferences.cornerFont
|
|
7492
7543
|
},get children(){return [_$createComponent(PreferencesPersistence,{api,controller:preferences
|
|
7493
|
-
}),_$createComponent(LimitsPersistence,{controller:limits,accountSource,selectedModel:selectModel
|
|
7494
|
-
}),_$memo(()=>_$memo(()=>!!supportsPermissionMode(api))()&&_$createComponent(PermissionModeBinding,{api,preferences
|
|
7544
|
+
}),_$createComponent(LimitsPersistence,{controller:limits,accountSource,selectedModel:selectModel,get refreshMinutes(){return preferences.limitsRefreshMinutes
|
|
7545
|
+
}}),_$memo(()=>_$memo(()=>!!supportsPermissionMode(api))()&&_$createComponent(PermissionModeBinding,{api,preferences
|
|
7495
7546
|
})),_$createComponent(SettingsBinding,{api,preferences,mcp,skills
|
|
7496
7547
|
}),_$createComponent(SidebarToggleBinding,{api,preferences
|
|
7497
7548
|
}),_$createComponent(SidebarFocusBinding,{api,preferences,interaction
|
|
@@ -7499,7 +7550,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
|
|
|
7499
7550
|
},interaction,skills,subagents,mcp
|
|
7500
7551
|
}),_$createComponent(FirstRunWizardPersistence,{api,preferences
|
|
7501
7552
|
}),_$createComponent(StartupSessionBinding,{api,controller:startup
|
|
7502
|
-
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.21.
|
|
7553
|
+
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.21.6"
|
|
7503
7554
|
}),_$createComponent(McpPersistence,{api,controller:mcp
|
|
7504
7555
|
})]
|
|
7505
7556
|
}})
|
|
@@ -7532,12 +7583,12 @@ return result.data?.type==="text"?result.data.content:undefined
|
|
|
7532
7583
|
})
|
|
7533
7584
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV1VersionUpdater
|
|
7534
7585
|
}=await loadNavigatorUpdates()
|
|
7535
|
-
const versionStatus=createVersionStatus(api,"0.21.
|
|
7536
|
-
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.
|
|
7586
|
+
const versionStatus=createVersionStatus(api,"0.21.6")
|
|
7587
|
+
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.6"))
|
|
7537
7588
|
api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7538
7589
|
},get multilineCorners(){return preferences.cornerFont
|
|
7539
7590
|
},get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
|
|
7540
|
-
},navigatorVersion:"0.21.
|
|
7591
|
+
},navigatorVersion:"0.21.6",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7541
7592
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7542
7593
|
}})
|
|
7543
7594
|
}})
|
|
@@ -7553,15 +7604,15 @@ return new TextDecoder().decode(await context.client.file.read({location:context
|
|
|
7553
7604
|
},todo,context)
|
|
7554
7605
|
const{createVersionStatus,createVersionUpdateActions,createOpenCodeV2VersionUpdater
|
|
7555
7606
|
}=await loadNavigatorUpdates()
|
|
7556
|
-
const versionStatus=createVersionStatus(adapter.api,"0.21.
|
|
7557
|
-
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.
|
|
7607
|
+
const versionStatus=createVersionStatus(adapter.api,"0.21.6")
|
|
7608
|
+
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.6"))
|
|
7558
7609
|
const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7559
7610
|
},get multilineCorners(){return preferences.cornerFont
|
|
7560
7611
|
},get children(){var _el$=_$createElement("box")
|
|
7561
7612
|
_$setProp(_el$,"flexDirection","row")
|
|
7562
7613
|
_$setProp(_el$,"justifyContent","space-between")
|
|
7563
7614
|
_$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
|
|
7564
|
-
},navigatorVersion:"0.21.
|
|
7615
|
+
},navigatorVersion:"0.21.6",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7565
7616
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7566
7617
|
}}),null)
|
|
7567
7618
|
_$insert(_el$,_$createComponent(SettingsFooterButton,{get api(){return adapter.api
|
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.21.
|
|
4
|
+
"version": "0.21.6",
|
|
5
5
|
"description": "Search, navigate, and manage OpenCode sessions from the TUI",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"packageManager": "bun@1.4.2",
|