opencode-navigator 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/dist/tui.js +1151 -1001
  3. package/package.json +1 -1
package/dist/tui.js CHANGED
@@ -1,8 +1,8 @@
1
- import {insert as _$insert50} from "@opentui/solid"
2
- import {setProp as _$setProp53} from "@opentui/solid"
3
- import {createElement as _$createElement61} from "@opentui/solid"
4
- import {createComponent as _$createComponent61} from "@opentui/solid"
5
- import {createSignal as createSignal2} from "solid-js"
1
+ import {insert as _$insert51,setProp as _$setProp54,createElement as _$createElement62,createComponent as _$createComponent64,createComponent as _$createComponent9,mergeProps as _$mergeProps,createComponent as _$createComponent2,createComponent as _$createComponent,createComponent as _$createComponent3,setProp as _$setProp,effect as _$effect,createTextNode as _$createTextNode,insertNode as _$insertNode,insert as _$insert,createElement as _$createElement2,memo as _$memo2,use as _$use,spread as _$spread,mergeProps as _$mergeProps2,memo as _$memo,createElement as _$createElement,effect as _$effect2,createTextNode as _$createTextNode2,insertNode as _$insertNode2,insert as _$insert2,setProp as _$setProp2,createElement as _$createElement3,effect as _$effect3,insert as _$insert3,setProp as _$setProp3,createElement as _$createElement4,useTerminalDimensions,createComponent as _$createComponent5,createComponent as _$createComponent4,effect as _$effect4,insert as _$insert4,setProp as _$setProp4,createElement as _$createElement5,createComponent as _$createComponent6,mergeProps as _$mergeProps3,memo as _$memo3,effect as _$effect5,insert as _$insert5,setProp as _$setProp5,createElement as _$createElement6,memo as _$memo4,createComponent as _$createComponent7,use as _$use2,effect as _$effect6,createTextNode as _$createTextNode3,insertNode as _$insertNode3,insert as _$insert6,setProp as _$setProp6,createElement as _$createElement7,mergeProps as _$mergeProps4,insertNode as _$insertNode4,createComponent as _$createComponent8,effect as _$effect7,insert as _$insert7,setProp as _$setProp7,createElement as _$createElement8,memo as _$memo5,effect as _$effect10,createComponent as _$createComponent11,memo as _$memo8,createTextNode as _$createTextNode6,insertNode as _$insertNode7,insert as _$insert10,setProp as _$setProp10,createElement as _$createElement11,createComponent as _$createComponent10,effect as _$effect8,memo as _$memo6,createTextNode as _$createTextNode4,insertNode as _$insertNode5,insert as _$insert8,setProp as _$setProp8,createElement as _$createElement9,effect as _$effect9,memo as _$memo7,createTextNode as _$createTextNode5,insertNode as _$insertNode6,insert as _$insert9,setProp as _$setProp9,use as _$use3,createElement as _$createElement10,useTerminalDimensions as useTerminalDimensions2,createComponent as _$createComponent12,setProp as _$setProp11,effect as _$effect11,createTextNode as _$createTextNode7,insertNode as _$insertNode8,insert as _$insert11,createElement as _$createElement12,createElement as _$createElement17,mergeProps as _$mergeProps5,effect as _$effect15,createTextNode as _$createTextNode10,insertNode as _$insertNode12,insert as _$insert15,setProp as _$setProp15,createElement as _$createElement16,createComponent as _$createComponent17,createComponent as _$createComponent13,memo as _$memo9,useTerminalDimensions as useTerminalDimensions3,memo as _$memo10,createComponent as _$createComponent14,use as _$use4,effect as _$effect12,createTextNode as _$createTextNode8,insertNode as _$insertNode9,insert as _$insert12,setProp as _$setProp12,createElement as _$createElement13,memo as _$memo12,createTextNode as _$createTextNode9,insertNode as _$insertNode11,effect as _$effect14,insert as _$insert14,createComponent as _$createComponent16,setProp as _$setProp14,use as _$use5,createElement as _$createElement15,createComponent as _$createComponent15,effect as _$effect13,insertNode as _$insertNode10,insert as _$insert13,setProp as _$setProp13,createElement as _$createElement14,memo as _$memo11,createComponent as _$createComponent20,effect as _$effect18,createTextNode as _$createTextNode13,insertNode as _$insertNode15,insert as _$insert18,setProp as _$setProp18,createElement as _$createElement20,effect as _$effect16,memo as _$memo13,createComponent as _$createComponent18,createTextNode as _$createTextNode11,insertNode as _$insertNode13,insert as _$insert16,setProp as _$setProp16,createElement as _$createElement18,memo as _$memo14,effect as _$effect17,createComponent as _$createComponent19,createTextNode as _$createTextNode12,insertNode as _$insertNode14,insert as _$insert17,setProp as _$setProp17,createElement as _$createElement19,mergeProps as _$mergeProps7,createComponent as _$createComponent26,memo as _$memo18,mergeProps as _$mergeProps6,createComponent as _$createComponent25,memo as _$memo17,memo as _$memo15,use as _$use6,effect as _$effect21,createTextNode as _$createTextNode16,insertNode as _$insertNode18,insert as _$insert21,setProp as _$setProp21,createElement as _$createElement23,createComponent as _$createComponent23,useTerminalDimensions as useTerminalDimensions4,createComponent as _$createComponent21,effect as _$effect19,createTextNode as _$createTextNode14,insertNode as _$insertNode16,insert as _$insert19,setProp as _$setProp19,createElement as _$createElement21,effect as _$effect20,createTextNode as _$createTextNode15,insertNode as _$insertNode17,insert as _$insert20,createComponent as _$createComponent22,setProp as _$setProp20,createElement as _$createElement22,createComponent as _$createComponent24,effect as _$effect22,createTextNode as _$createTextNode17,insertNode as _$insertNode19,insert as _$insert22,setProp as _$setProp22,createElement as _$createElement24,memo as _$memo16,createComponent as _$createComponent28,createComponent as _$createComponent27,createComponent as _$createComponent29,setProp as _$setProp23,effect as _$effect23,createTextNode as _$createTextNode18,insertNode as _$insertNode20,createElement as _$createElement25,memo as _$memo19,createComponent as _$createComponent30,use as _$use7,effect as _$effect24,createTextNode as _$createTextNode19,insertNode as _$insertNode21,insert as _$insert23,setProp as _$setProp24,createElement as _$createElement26,useTerminalDimensions as useTerminalDimensions5,memo as _$memo21,use as _$use8,createComponent as _$createComponent35,effect as _$effect28,createTextNode as _$createTextNode23,insertNode as _$insertNode25,insert as _$insert25,setProp as _$setProp28,createElement as _$createElement30,useTerminalDimensions as useTerminalDimensions6,createComponent as _$createComponent31,setProp as _$setProp25,effect as _$effect25,createTextNode as _$createTextNode20,insertNode as _$insertNode22,createElement as _$createElement27,createComponent as _$createComponent33,setProp as _$setProp26,effect as _$effect26,createTextNode as _$createTextNode21,insertNode as _$insertNode23,createElement as _$createElement28,createComponent as _$createComponent32,createComponent as _$createComponent34,createTextNode as _$createTextNode22,insertNode as _$insertNode24,effect as _$effect27,insert as _$insert24,setProp as _$setProp27,createElement as _$createElement29,memo as _$memo20,createElement as _$createElement31,createComponent as _$createComponent36,memo as _$memo22,effect as _$effect31,insertNode as _$insertNode28,createComponent as _$createComponent38,insert as _$insert28,setProp as _$setProp31,createElement as _$createElement34,effect as _$effect30,insert as _$insert27,createTextNode as _$createTextNode25,insertNode as _$insertNode27,createComponent as _$createComponent37,setProp as _$setProp30,createElement as _$createElement33,effect as _$effect29,memo as _$memo23,createTextNode as _$createTextNode24,insertNode as _$insertNode26,insert as _$insert26,setProp as _$setProp29,createElement as _$createElement32,createComponent as _$createComponent39,createComponent as _$createComponent40,memo as _$memo24,effect as _$effect32,insert as _$insert29,setProp as _$setProp32,createElement as _$createElement35,effect as _$effect35,memo as _$memo27,insert as _$insert32,createComponent as _$createComponent43,setProp as _$setProp35,createElement as _$createElement38,createComponent as _$createComponent41,setProp as _$setProp33,effect as _$effect33,createTextNode as _$createTextNode26,insertNode as _$insertNode29,insert as _$insert30,memo as _$memo25,createElement as _$createElement36,createComponent as _$createComponent42,effect as _$effect34,createTextNode as _$createTextNode27,insertNode as _$insertNode30,memo as _$memo26,insert as _$insert31,setProp as _$setProp34,createElement as _$createElement37,createComponent as _$createComponent49,effect as _$effect41,createTextNode as _$createTextNode29,insertNode as _$insertNode33,insert as _$insert38,createComponent as _$createComponent48,memo as _$memo31,setProp as _$setProp41,createElement as _$createElement44,createComponent as _$createComponent44,effect as _$effect36,insert as _$insert33,setProp as _$setProp36,createElement as _$createElement39,insertNode as _$insertNode32,effect as _$effect38,insert as _$insert35,setProp as _$setProp38,createElement as _$createElement41,memo as _$memo29,createComponent as _$createComponent46,memo as _$memo28,effect as _$effect37,createTextNode as _$createTextNode28,insertNode as _$insertNode31,insert as _$insert34,setProp as _$setProp37,createElement as _$createElement40,createComponent as _$createComponent45,createComponent as _$createComponent47,use as _$use9,effect as _$effect39,insert as _$insert36,setProp as _$setProp39,createElement as _$createElement42,memo as _$memo30,setProp as _$setProp40,effect as _$effect40,insert as _$insert37,createElement as _$createElement43,createComponent as _$createComponent51,setProp as _$setProp43,effect as _$effect43,createTextNode as _$createTextNode30,insertNode as _$insertNode34,createElement as _$createElement46,memo as _$memo33,effect as _$effect42,insert as _$insert39,setProp as _$setProp42,createElement as _$createElement45,createComponent as _$createComponent50,memo as _$memo32,insert as _$insert40,spread as _$spread2,mergeProps as _$mergeProps8,createElement as _$createElement47,createComponent as _$createComponent52,memo as _$memo34,createElement as _$createElement48,mergeProps as _$mergeProps9,effect as _$effect52,insert as _$insert49,createComponent as _$createComponent61,setProp as _$setProp52,use as _$use10,createElement as _$createElement57,setProp as _$setProp45,effect as _$effect45,createTextNode as _$createTextNode31,insertNode as _$insertNode35,insert as _$insert42,createElement as _$createElement50,createComponent as _$createComponent54,memo as _$memo36,effect as _$effect44,insert as _$insert41,setProp as _$setProp44,createElement as _$createElement49,createComponent as _$createComponent53,memo as _$memo35,memo as _$memo38,effect as _$effect48,createTextNode as _$createTextNode33,insertNode as _$insertNode38,insert as _$insert45,setProp as _$setProp48,createElement as _$createElement53,createComponent as _$createComponent57,setProp as _$setProp47,effect as _$effect47,insertNode as _$insertNode37,insert as _$insert44,createElement as _$createElement52,createComponent as _$createComponent56,createTextNode as _$createTextNode32,insertNode as _$insertNode36,memo as _$memo37,effect as _$effect46,insert as _$insert43,setProp as _$setProp46,createElement as _$createElement51,createComponent as _$createComponent55,effect as _$effect51,createTextNode as _$createTextNode35,insertNode as _$insertNode41,insert as _$insert48,setProp as _$setProp51,createElement as _$createElement56,createComponent as _$createComponent60,memo as _$memo41,memo as _$memo40,effect as _$effect50,insertNode as _$insertNode40,insert as _$insert47,createComponent as _$createComponent59,setProp as _$setProp50,createElement as _$createElement55,createComponent as _$createComponent58,effect as _$effect49,createTextNode as _$createTextNode34,insertNode as _$insertNode39,memo as _$memo39,insert as _$insert46,setProp as _$setProp49,createElement as _$createElement54,createElement as _$createElement58,effect as _$effect53,createComponent as _$createComponent62,insertNode as _$insertNode42,insert as _$insert50,setProp as _$setProp53,use as _$use11,createElement as _$createElement59,createElement as _$createElement60,memo as _$memo42,createComponent as _$createComponent63,createElement as _$createElement61} from "@opentui/solid"
2
+
3
+
4
+
5
+ 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,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 createEffect4,createSignal as createSignal9,onCleanup as onCleanup4,createSignal as createSignal10,Index,createSignal as createSignal11,onCleanup as onCleanup5,createEffect as createEffect6,onCleanup as onCleanup7,batch as batch2,createEffect as createEffect5,createMemo,createSignal as createSignal12,onCleanup as onCleanup6,onMount,For as For2,For as For3,Show as Show2,createMemo as createMemo2,Show as Show3,createSignal as createSignal13,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 createEffect7,createSignal as createSignal14,onCleanup as onCleanup9,Show as Show4,For as For6,For as For9,createEffect as createEffect8,createMemo as createMemo5,onCleanup as onCleanup10,For as For10,createEffect as createEffect9,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4,createMemo as createMemo6,createMemo as createMemo7,Show as Show6,onCleanup as onCleanup12,createSignal as createSignal15,createSignal as createSignal16,createSignal as createSignal17,Show as Show7,createSignal as createSignal19,createSignal as createSignal18,onCleanup as onCleanup13,For as For11,Show as Show10,createMemo as createMemo10,createComputed,createMemo as createMemo9,createSignal as createSignal20,untrack as untrack2,Show as Show8,createComputed as createComputed2,untrack as untrack3,Show as Show9,createEffect as createEffect10,createSignal as createSignal21,createMemo as createMemo12,createSignal as createSignal23,createMemo as createMemo11,For as For12,Show as Show13,Show as Show11,Show as Show12,createSignal as createSignal22,onCleanup as onCleanup14,For as For13,Show as Show15,createMemo as createMemo14,Show as Show14,createMemo as createMemo13,createEffect as createEffect11,onCleanup as onCleanup15,For as For18,Match,Switch,createMemo as createMemo18,onCleanup as onCleanup19,For as For14,Show as Show16,createSignal as createSignal24,createEffect as createEffect12,createMemo as createMemo15,onCleanup as onCleanup16,untrack as untrack4,For as For16,Show as Show19,createEffect as createEffect13,createMemo as createMemo16,createSignal as createSignal25,onCleanup as onCleanup17,untrack as untrack5,For as For15,Show as Show18,Show as Show17,Show as Show22,createEffect as createEffect14,createMemo as createMemo17,createSignal as createSignal26,onCleanup as onCleanup18,untrack as untrack6,For as For17,Show as Show21,Show as Show20,createEffect as createEffect15,createMemo as createMemo19,onCleanup as onCleanup20,untrack as untrack7,Show as Show23,createMemo as createMemo20,onCleanup as onCleanup21,createSignal as createSignal27,onCleanup as onCleanup22,onMount as onMount5} from "solid-js"
6
6
  var SIDEBAR_SECTIONS=["todo","subagents","skills","quick_actions","lsp","mcp"]
7
7
  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"
8
8
  ]
@@ -115,7 +115,7 @@ return{name,status:item?.status,desired,change}
115
115
  const changes=rows.flatMap((row)=>row.change==="connect"||row.change==="disconnect"?[{name:row.name,action:row.change}]:[])
116
116
  return{rows,changes}
117
117
  }
118
- import {createSignal} from "solid-js"
118
+
119
119
  var idle={status:"idle"}
120
120
  function isAbortError(cause) {return typeof DOMException!=="undefined"&&cause instanceof DOMException&&cause.name==="AbortError"||cause instanceof Error&&cause.name==="AbortError"||typeof cause==="object"&&cause!==null&&"name" in cause&&cause.name==="AbortError"
121
121
  }
@@ -495,12 +495,12 @@ const rightRank=BUCKET_RANK[right.bucket]??1
495
495
  return leftRank - rightRank||left.bucket.localeCompare(right.bucket)||left.name.localeCompare(right.name)
496
496
  })
497
497
  }
498
- import {createComponent as _$createComponent9} from "@opentui/solid"
499
- import {mergeProps as _$mergeProps} from "@opentui/solid"
500
- import {createComponent as _$createComponent2} from "@opentui/solid"
501
- import {createEffect,onCleanup} from "solid-js"
502
- import {createComponent as _$createComponent} from "@opentui/solid"
503
- import {createContext,useContext} from "solid-js"
498
+
499
+
500
+
501
+
502
+
503
+
504
504
  var ICONS={todo:["\uEAB3","[T]"],subagents:["\uEA7E","[A]"],skills:["\uEAA4","[S]"],actions:["\uEB9E","[Q]"],lsp:["\uEAC4","{}"],mcp:["\uEB2D","[M]"],sections:["\uEBEB","[]"],scope:["\uEB01","@"],presets:["\uEBD2","#"],settings:["\uEAF8","[=]"],reset:["\uEB37","R"],save:["\uEB4B","S"],add:["\uEA60","+"],edit:["\uEA73","[R]"],history:["\uEA82","[T]"],copy:["\uEBCC","[C]"],export:["\uEBAC","[E]"],compact:["\uEAF5","[-]"],checked:["\uEBB3","[x]"],unchecked:["\uEBB5","[ ]"],selected:["\uEAB6",">"],expanded:["\uEAB4","v"],collapsed:["\uEAB6",">"],radioOn:["\uEA71","(*)"],radioOff:["\uEABC","( )"],done:["\uEAB2","v"],busy:["\uEA71","*"],idle:["\uEABC","-"],close:["\uEA76","x"],error:["\uEA87","!"],retry:["\uEA77","~"],pending:["\uDB86\uDD78","..."],connected:["\uDB81\uDC3E","(*)"],disconnected:["\uDB81\uDC3D","( )"],favorite:["\uEB59","*"],favoriteEmpty:["\uEA6A","+"],bookmark:["\uDB80\uDCC0","*"],bookmarkEmpty:["\uDB80\uDCC3","+"],mcpFavorite:["\uDB80\uDCC0","*"],mcpFavoriteEmpty:["\uDB80\uDCC3","+"],recent:["\uEA82","~"],info:["\uEA74","i"],search:["\uEA6D","/"],up:["\uEAA1","^"],down:["\uEA9A","v"],left:["\uEA9B","<"],right:["\uEA9C",">"],keyEnter:["\uEBEA","enter"],keyTab:["\uDB80\uDF12","tab"],keyEscape:["\uDB84\uDEB7","esc"],keySpace:["\uDB84\uDC50","space"],delete:["\uEA81","del"],priorityMedium:["\uEA71","-"],help:["\uEB32","?"],selectionLeft:["\uE0B6"," "],selectionRight:["\uE0B4"," "],selectionTopLeft:["\uDBFC\uDC04"," "],selectionTopRight:["\uDBFC\uDC05"," "],selectionBottomLeft:["\uDBFC\uDC06"," "],selectionBottomRight:["\uDBFC\uDC07"," "]
505
505
  }
506
506
  function uiIcon(name,style="nerd") {return ICONS[name][style==="text"?1:0]
@@ -603,7 +603,7 @@ return
603
603
  function lspIcon(id,style="nerd") {const name=lspIconName(id)
604
604
  return name?LSP_ICONS[name][style]:id
605
605
  }
606
- import {createContext as createContext2} from "solid-js"
606
+
607
607
  var DialogContext=createContext2();
608
608
  function createDialogStack(api,style=()=>"nerd",valid=()=>true,corners=()=>true) {let frames=[]
609
609
  let isReplacing=false
@@ -692,7 +692,7 @@ return _$createComponent2(DialogContext.Provider,{get value() {return props.scop
692
692
  }
693
693
  })
694
694
  }
695
- import {createSignal as createSignal3,useContext as useContext2} from "solid-js"
695
+
696
696
  function useDialogs(api) {const scope=useContext2(DialogContext)
697
697
  const icons=useIcons()
698
698
  if(scope?.api===api)
@@ -723,21 +723,21 @@ setPosition(body.scrollTop)
723
723
  }
724
724
  }
725
725
  }
726
- import {createComponent as _$createComponent3} from "@opentui/solid"
727
- import {setProp as _$setProp} from "@opentui/solid"
728
- import {effect as _$effect} from "@opentui/solid"
729
- import {createTextNode as _$createTextNode} from "@opentui/solid"
730
- import {insertNode as _$insertNode} from "@opentui/solid"
731
- import {insert as _$insert} from "@opentui/solid"
732
- import {createElement as _$createElement2} from "@opentui/solid"
733
- import {memo as _$memo2} from "@opentui/solid"
734
- import {use as _$use} from "@opentui/solid"
735
- import {spread as _$spread} from "@opentui/solid"
736
- import {mergeProps as _$mergeProps2} from "@opentui/solid"
737
- import {memo as _$memo} from "@opentui/solid"
738
- import {createElement as _$createElement} from "@opentui/solid"
739
- import {RGBA} from "@opentui/core"
740
- import {createEffect as createEffect2,splitProps,untrack} from "solid-js"
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+
739
+ import {RGBA,TextAttributes,TextAttributes as TextAttributes2,TextAttributes as TextAttributes3,TextAttributes as TextAttributes6,TextAttributes as TextAttributes4,TextAttributes as TextAttributes5,TextAttributes as TextAttributes7,RGBA as RGBA2,parseColor,TextAttributes as TextAttributes8,TextAttributes as TextAttributes9,TextAttributes as TextAttributes12,TextAttributes as TextAttributes10,TextAttributes as TextAttributes11,TextAttributes as TextAttributes13,TextAttributes as TextAttributes14,TextAttributes as TextAttributes16,TextAttributes as TextAttributes15,ScrollBoxRenderable,RGBA as RGBA3,TextAttributes as TextAttributes17} from "@opentui/core"
740
+
741
741
  function SelectionBox(props) {const icons=useIcons()
742
742
  const [local,boxProps]=splitProps(props,["ref","iconOnly"])
743
743
  let node
@@ -802,13 +802,13 @@ return _el$
802
802
  }
803
803
  })
804
804
  }
805
- import {effect as _$effect2} from "@opentui/solid"
806
- import {createTextNode as _$createTextNode2} from "@opentui/solid"
807
- import {insertNode as _$insertNode2} from "@opentui/solid"
808
- import {insert as _$insert2} from "@opentui/solid"
809
- import {setProp as _$setProp2} from "@opentui/solid"
810
- import {createElement as _$createElement3} from "@opentui/solid"
811
- import {TextAttributes} from "@opentui/core"
805
+
806
+
807
+
808
+
809
+
810
+
811
+
812
812
  function DialogHeader(props) {const icons=useIcons()
813
813
  return (()=>{var _el$=_$createElement3("box"),_el$2=_$createElement3("text"),_el$3=_$createTextNode2(` `),_el$4=_$createElement3("text")
814
814
  _$insertNode2(_el$,_el$2)
@@ -838,11 +838,11 @@ return _p$
838
838
  return _el$
839
839
  })()
840
840
  }
841
- import {effect as _$effect3} from "@opentui/solid"
842
- import {insert as _$insert3} from "@opentui/solid"
843
- import {setProp as _$setProp3} from "@opentui/solid"
844
- import {createElement as _$createElement4} from "@opentui/solid"
845
- import {useTerminalDimensions} from "@opentui/solid"
841
+
842
+
843
+
844
+
845
+
846
846
  function DialogSurface(props) {const dimensions=useTerminalDimensions()
847
847
  return (()=>{var _el$=_$createElement4("box")
848
848
  _$setProp3(_el$,"paddingLeft",2)
@@ -861,12 +861,12 @@ return _p$
861
861
  return _el$
862
862
  })()
863
863
  }
864
- import {createComponent as _$createComponent5} from "@opentui/solid"
865
- import {createComponent as _$createComponent4} from "@opentui/solid"
866
- import {effect as _$effect4} from "@opentui/solid"
867
- import {insert as _$insert4} from "@opentui/solid"
868
- import {setProp as _$setProp4} from "@opentui/solid"
869
- import {createElement as _$createElement5} from "@opentui/solid"
864
+
865
+
866
+
867
+
868
+
869
+
870
870
  function IconControl(props) {function mouseOver(event) {props.onMouseOver?.()
871
871
  event.stopPropagation()
872
872
  }
@@ -905,14 +905,14 @@ typeof _ref$==="function"?_ref$(r$):props.ref=r$
905
905
  }
906
906
  })
907
907
  }
908
- import {createComponent as _$createComponent6} from "@opentui/solid"
909
- import {mergeProps as _$mergeProps3} from "@opentui/solid"
910
- import {memo as _$memo3} from "@opentui/solid"
911
- import {effect as _$effect5} from "@opentui/solid"
912
- import {insert as _$insert5} from "@opentui/solid"
913
- import {setProp as _$setProp5} from "@opentui/solid"
914
- import {createElement as _$createElement6} from "@opentui/solid"
915
- import {splitProps as splitProps2} from "solid-js"
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
916
  function ListRow(props) {const [slots,presentation]=splitProps2(props,["leading","content","details","metadata","trailing","contentGap"])
917
917
  return _$createComponent6(SelectionBox,_$mergeProps3(presentation,{get children() {return [(()=>{var _el$=_$createElement6("box")
918
918
  _$setProp5(_el$,"flexDirection","row")
@@ -927,17 +927,17 @@ return _el$
927
927
  }
928
928
  }))
929
929
  }
930
- import {memo as _$memo4} from "@opentui/solid"
931
- import {createComponent as _$createComponent7} from "@opentui/solid"
932
- import {use as _$use2} from "@opentui/solid"
933
- import {effect as _$effect6} from "@opentui/solid"
934
- import {createTextNode as _$createTextNode3} from "@opentui/solid"
935
- import {insertNode as _$insertNode3} from "@opentui/solid"
936
- import {insert as _$insert6} from "@opentui/solid"
937
- import {setProp as _$setProp6} from "@opentui/solid"
938
- import {createElement as _$createElement7} from "@opentui/solid"
939
- import {TextAttributes as TextAttributes2} from "@opentui/core"
940
- import {For,createEffect as createEffect3,onCleanup as onCleanup2} from "solid-js"
930
+
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
941
  function PresetMenu(props) {const icons=useIcons()
942
942
  const dialogs=useDialogs(props.api)
943
943
  const scroll=useDialogScroll()
@@ -1039,16 +1039,16 @@ return _el$7
1039
1039
  }
1040
1040
  })
1041
1041
  }
1042
- import {mergeProps as _$mergeProps4} from "@opentui/solid"
1043
- import {insertNode as _$insertNode4} from "@opentui/solid"
1044
- import {createComponent as _$createComponent8} from "@opentui/solid"
1045
- import {effect as _$effect7} from "@opentui/solid"
1046
- import {insert as _$insert7} from "@opentui/solid"
1047
- import {setProp as _$setProp7} from "@opentui/solid"
1048
- import {createElement as _$createElement8} from "@opentui/solid"
1049
- import {memo as _$memo5} from "@opentui/solid"
1050
- import {TextAttributes as TextAttributes3} from "@opentui/core"
1051
- import {Show,splitProps as splitProps3} from "solid-js"
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
1052
  function Tab(props) {const [local,boxProps]=splitProps3(props,["api","selected","focused","foregroundColor","count","children"])
1053
1053
  const theme=()=>local.api.theme.current
1054
1054
  return _$createComponent8(SelectionBox,_$mergeProps4(boxProps,{height:1,minWidth:0,get paddingLeft() {return props.paddingLeft??1
@@ -1095,7 +1095,7 @@ function McpErrorDialog(props) {return _$createComponent9(PresetMenu,{get api()
1095
1095
  },onSelect:()=>{}
1096
1096
  })
1097
1097
  }
1098
- import {createSignal as createSignal4} from "solid-js"
1098
+
1099
1099
  var PORTABLE_SETTINGS_FORMAT="opencode-navigator/settings"
1100
1100
  function object(value,path) {if (!value||typeof value!=="object"||Array.isArray(value))
1101
1101
  throw new Error(`${path} must be an object`)
@@ -1318,8 +1318,8 @@ Object.assign(desiredMcpStates,layer.desiredMcpStates)
1318
1318
  return{behavior,layout:{sections,expanded,order},desiredMcpStates}
1319
1319
  }
1320
1320
  import {randomUUID} from "crypto"
1321
- import {link,mkdir,readFile,readdir,rename,rm,unlink,writeFile} from "fs/promises"
1322
- import {join} from "path"
1321
+ import {link,mkdir,readFile,readdir,rename,rm,unlink,writeFile,readFile as readFile2} from "fs/promises"
1322
+ import {join,dirname,join as join2,join as join3,join as join4} from "path"
1323
1323
  var LOCK_TIMEOUT_MS=3000
1324
1324
  function errno(error,code) {return error instanceof Error&&"code" in error&&error.code===code
1325
1325
  }
@@ -2108,7 +2108,7 @@ return{behavior,layout:{sections,expanded:{},...sectionOrder&&{order:sectionOrde
2108
2108
  }
2109
2109
  function configuredDefaultsFromPluginOptions(options) {return mergeConfiguredDefaults(legacyDefaults(pluginConfig(options)),parseConfiguredDefaults(options??{}))
2110
2110
  }
2111
- import {createSignal as createSignal5} from "solid-js"
2111
+
2112
2112
  function createSkillController(api) {const [skills,setSkills]=createSignal5({})
2113
2113
  const refreshing=new Map
2114
2114
  const targets=new Map
@@ -2178,25 +2178,25 @@ throw error_
2178
2178
  }
2179
2179
  }
2180
2180
  }
2181
- import {effect as _$effect10} from "@opentui/solid"
2182
- import {createComponent as _$createComponent11} from "@opentui/solid"
2183
- import {memo as _$memo8} from "@opentui/solid"
2184
- import {createTextNode as _$createTextNode6} from "@opentui/solid"
2185
- import {insertNode as _$insertNode7} from "@opentui/solid"
2186
- import {insert as _$insert10} from "@opentui/solid"
2187
- import {setProp as _$setProp10} from "@opentui/solid"
2188
- import {createElement as _$createElement11} from "@opentui/solid"
2189
- import {TextAttributes as TextAttributes6} from "@opentui/core"
2190
- import {createSignal as createSignal6,onCleanup as onCleanup3} from "solid-js"
2191
- import {createComponent as _$createComponent10} from "@opentui/solid"
2192
- import {effect as _$effect8} from "@opentui/solid"
2193
- import {memo as _$memo6} from "@opentui/solid"
2194
- import {createTextNode as _$createTextNode4} from "@opentui/solid"
2195
- import {insertNode as _$insertNode5} from "@opentui/solid"
2196
- import {insert as _$insert8} from "@opentui/solid"
2197
- import {setProp as _$setProp8} from "@opentui/solid"
2198
- import {createElement as _$createElement9} from "@opentui/solid"
2199
- import {TextAttributes as TextAttributes4} from "@opentui/core"
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
2200
  function SkillConfirmation(props) {const icons=useIcons()
2201
2201
  const theme=()=>props.api.theme.current
2202
2202
  return (()=>{var _el$=_$createElement9("box"),_el$2=_$createElement9("text"),_el$3=_$createTextNode4(` Confirmation`),_el$4=_$createElement9("box"),_el$5=_$createElement9("text"),_el$6=_$createElement9("text"),_el$8=_$createElement9("text"),_el$9=_$createTextNode4(`(`),_el$0=_$createTextNode4(`)`),_el$1=_$createElement9("box")
@@ -2252,16 +2252,16 @@ return _p$
2252
2252
  return _el$
2253
2253
  })()
2254
2254
  }
2255
- import {effect as _$effect9} from "@opentui/solid"
2256
- import {memo as _$memo7} from "@opentui/solid"
2257
- import {createTextNode as _$createTextNode5} from "@opentui/solid"
2258
- import {insertNode as _$insertNode6} from "@opentui/solid"
2259
- import {insert as _$insert9} from "@opentui/solid"
2260
- import {setProp as _$setProp9} from "@opentui/solid"
2261
- import {use as _$use3} from "@opentui/solid"
2262
- import {createElement as _$createElement10} from "@opentui/solid"
2263
- import {TextAttributes as TextAttributes5} from "@opentui/core"
2264
- import {useTerminalDimensions as useTerminalDimensions2} from "@opentui/solid"
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
2265
  function SkillDetails(props) {const icons=useIcons()
2266
2266
  const dimensions=useTerminalDimensions2()
2267
2267
  const theme=()=>props.api.theme.current
@@ -2392,8 +2392,8 @@ return _el$
2392
2392
  }
2393
2393
  })
2394
2394
  }
2395
- import {batch,createSignal as createSignal8} from "solid-js"
2396
- import {createSignal as createSignal7} from "solid-js"
2395
+
2396
+
2397
2397
  function createSubagentHistory({now=Date.now}={}) {const targets=new Map
2398
2398
  const [revision,setRevision]=createSignal7(0)
2399
2399
  function state(key) {let value=targets.get(key)
@@ -2668,7 +2668,7 @@ return
2668
2668
  return{sessionID:session.id,failed:true}
2669
2669
  }
2670
2670
  }
2671
- import {createEffect as createEffect4,createSignal as createSignal9,onCleanup as onCleanup4} from "solid-js"
2671
+
2672
2672
  function filterSubagentView(rows,mode,query) {const needle=query.trim().toLocaleLowerCase()
2673
2673
  return rows.filter((row)=>{if (mode==="active"&&row.group!=="Active")
2674
2674
  return false
@@ -2706,7 +2706,7 @@ onCleanup4(()=>clearInterval(timer))
2706
2706
  })
2707
2707
  return now
2708
2708
  }
2709
- import {createSignal as createSignal10} from "solid-js"
2709
+
2710
2710
  function createTodoController(api) {const [sessions,setSessions]=createSignal10({})
2711
2711
  const refreshing=new Map
2712
2712
  const revisions=new Map
@@ -2777,15 +2777,15 @@ return{groups,rows:groups.flatMap((group)=>group.items.map((item)=>({item,group:
2777
2777
  }
2778
2778
  }
2779
2779
  }
2780
- import {createComponent as _$createComponent12} from "@opentui/solid"
2781
- import {setProp as _$setProp11} from "@opentui/solid"
2782
- import {effect as _$effect11} from "@opentui/solid"
2783
- import {createTextNode as _$createTextNode7} from "@opentui/solid"
2784
- import {insertNode as _$insertNode8} from "@opentui/solid"
2785
- import {insert as _$insert11} from "@opentui/solid"
2786
- import {createElement as _$createElement12} from "@opentui/solid"
2787
- import {TextAttributes as TextAttributes7} from "@opentui/core"
2788
- import {Index} from "solid-js"
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
2789
  function KeyboardHelpDialog(props) {const icons=useIcons()
2790
2790
  const theme=()=>props.api.theme.current
2791
2791
  const hints=()=>[`${icons.key("up")}/k and ${icons.key("down")}/j move \xB7 ${icons.key("enter")} activates`,`${icons.key("enter")} on a filter starts typing \xB7 ${icons.key("esc")} returns`,`Todo: ${icons.key("enter")} on All / Active / Finished changes the view`,"Show all / Show less expands or limits the filtered list",`Skills: ${icons.icon("info")} opens source \xB7 ${icons.icon("recent")} marks recent skills`,"Navigator Settings: Ctrl+,",`Search Everything: shortcut in Settings ${icons.icon("right")} Behavior`,`Search: type \xB7 ${icons.key("up/down")} results \xB7 ${icons.key("tab/shift+tab")} tabs \xB7 ${icons.key("enter")} run`,`${icons.key("esc")} leaves the sidebar \xB7 ${icons.key("?")} opens this help`]
@@ -2814,7 +2814,7 @@ return _el$3
2814
2814
  function openKeyboardHelp(api,iconStyle=()=>"nerd",multilineCorners=()=>true) {createDialogStack(api,iconStyle,()=>true,multilineCorners).open(()=>_$createComponent12(KeyboardHelpDialog,{api
2815
2815
  }))
2816
2816
  }
2817
- import {createSignal as createSignal11,onCleanup as onCleanup5} from "solid-js"
2817
+
2818
2818
  var QUICK_ACTION_METADATA=[["\uEA73","Rename"],["\uEA82","Timeline"],["\uEBCC","Copy transcript"],["\uEBAC","Export"],["\uEAF5","Compact"],["\uEBEB","Switch session"],["\uEA60","New session"],["\uEB9E","Fork session"],["\uEBCC","Copy last response"],["\uEAA1","First message"],["\uEA9A","Last message"],["\uEA82","Last user message"],["\uEA9A","Next message"],["\uEAA1","Previous message"],["\uEBB3","Auto-approve permissions"]
2819
2819
  ]
2820
2820
  var QUICK_ACTIONS=QUICK_ACTION_IDS.map((command,index)=>({command,icon:QUICK_ACTION_METADATA[index][0],label:QUICK_ACTION_METADATA[index][1]
@@ -2902,21 +2902,21 @@ return [{item,score,index}]
2902
2902
  scored.sort((a,b)=>SEARCH_GROUPS.indexOf(a.item.group) - SEARCH_GROUPS.indexOf(b.item.group)||b.score - a.score||a.index - b.index)
2903
2903
  return scored.map(({item})=>item)
2904
2904
  }
2905
- import {createElement as _$createElement17} from "@opentui/solid"
2906
- import {createEffect as createEffect6,onCleanup as onCleanup7} from "solid-js"
2907
- import {mergeProps as _$mergeProps5} from "@opentui/solid"
2908
- import {effect as _$effect15} from "@opentui/solid"
2909
- import {createTextNode as _$createTextNode10} from "@opentui/solid"
2910
- import {insertNode as _$insertNode12} from "@opentui/solid"
2911
- import {insert as _$insert15} from "@opentui/solid"
2912
- import {setProp as _$setProp15} from "@opentui/solid"
2913
- import {createElement as _$createElement16} from "@opentui/solid"
2914
- import {createComponent as _$createComponent17} from "@opentui/solid"
2915
- import {createComponent as _$createComponent13} from "@opentui/solid"
2916
- import {memo as _$memo9} from "@opentui/solid"
2917
- import {RGBA as RGBA2,parseColor} from "@opentui/core"
2918
- import {useTerminalDimensions as useTerminalDimensions3} from "@opentui/solid"
2919
- import {batch as batch2,createEffect as createEffect5,createMemo,createSignal as createSignal12,onCleanup as onCleanup6,onMount} from "solid-js"
2905
+
2906
+
2907
+
2908
+
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+
2920
2920
  function mixColor(from,to,amount) {return RGBA2.fromValues(from.r + (to.r - from.r) * amount,from.g + (to.g - from.g) * amount,from.b + (to.b - from.b) * amount)
2921
2921
  }
2922
2922
  function createSearchDialogController(props) {const context=searchContext(props.api)
@@ -3095,17 +3095,17 @@ setScrollTop(body.scrollTop)
3095
3095
  },resultHeight:()=>Math.min(Math.max(3,Math.min(16,Math.floor(dimensions().height * 0.5) - 9)),Math.max(1,results().length * 3 + errors().length * 2)),theme
3096
3096
  }
3097
3097
  }
3098
- import {memo as _$memo10} from "@opentui/solid"
3099
- import {createComponent as _$createComponent14} from "@opentui/solid"
3100
- import {use as _$use4} from "@opentui/solid"
3101
- import {effect as _$effect12} from "@opentui/solid"
3102
- import {createTextNode as _$createTextNode8} from "@opentui/solid"
3103
- import {insertNode as _$insertNode9} from "@opentui/solid"
3104
- import {insert as _$insert12} from "@opentui/solid"
3105
- import {setProp as _$setProp12} from "@opentui/solid"
3106
- import {createElement as _$createElement13} from "@opentui/solid"
3107
- import {TextAttributes as TextAttributes8} from "@opentui/core"
3108
- import {For as For2} from "solid-js"
3098
+
3099
+
3100
+
3101
+
3102
+
3103
+
3104
+
3105
+
3106
+
3107
+
3108
+
3109
3109
  function SearchHeader(props) {const model=props.model
3110
3110
  return [(()=>{var _el$=_$createElement13("box"),_el$2=_$createElement13("text"),_el$3=_$createTextNode8(` Search Everything`),_el$4=_$createElement13("text")
3111
3111
  _$insertNode9(_el$,_el$2)
@@ -3164,24 +3164,24 @@ model.selectTab(tab)
3164
3164
  return _el$6
3165
3165
  })()]
3166
3166
  }
3167
- import {memo as _$memo12} from "@opentui/solid"
3168
- import {createTextNode as _$createTextNode9} from "@opentui/solid"
3169
- import {insertNode as _$insertNode11} from "@opentui/solid"
3170
- import {effect as _$effect14} from "@opentui/solid"
3171
- import {insert as _$insert14} from "@opentui/solid"
3172
- import {createComponent as _$createComponent16} from "@opentui/solid"
3173
- import {setProp as _$setProp14} from "@opentui/solid"
3174
- import {use as _$use5} from "@opentui/solid"
3175
- import {createElement as _$createElement15} from "@opentui/solid"
3176
- import {For as For3,Show as Show2} from "solid-js"
3177
- import {createComponent as _$createComponent15} from "@opentui/solid"
3178
- import {effect as _$effect13} from "@opentui/solid"
3179
- import {insertNode as _$insertNode10} from "@opentui/solid"
3180
- import {insert as _$insert13} from "@opentui/solid"
3181
- import {setProp as _$setProp13} from "@opentui/solid"
3182
- import {createElement as _$createElement14} from "@opentui/solid"
3183
- import {memo as _$memo11} from "@opentui/solid"
3184
- import {TextAttributes as TextAttributes9} from "@opentui/core"
3167
+
3168
+
3169
+
3170
+
3171
+
3172
+
3173
+
3174
+
3175
+
3176
+
3177
+
3178
+
3179
+
3180
+
3181
+
3182
+
3183
+
3184
+
3185
3185
  function SearchResultRow(props) {const initial=props.model.byID().get(props.id)
3186
3186
  const item=()=>props.model.byID().get(props.id)??initial
3187
3187
  const selected=()=>props.model.active()?.id===props.id
@@ -3331,7 +3331,7 @@ clearTimeout(timer)
3331
3331
  })
3332
3332
  return _$createElement17("box")
3333
3333
  }
3334
- import {createMemo as createMemo2} from "solid-js"
3334
+
3335
3335
  function createLayoutPresetPreview(preferences,name) {const scope=preferences.selectedScopeKey()
3336
3336
  const valid=()=>preferences.selectedScopeKey()===scope
3337
3337
  const preset=createMemo2(()=>preferences.layoutPresets()[name])
@@ -3368,15 +3368,15 @@ return value&&valid()&&!blocked()?controller.applyPreset(name,value,target):unde
3368
3368
  }
3369
3369
  }
3370
3370
  }
3371
- import {createComponent as _$createComponent20} from "@opentui/solid"
3372
- import {effect as _$effect18} from "@opentui/solid"
3373
- import {createTextNode as _$createTextNode13} from "@opentui/solid"
3374
- import {insertNode as _$insertNode15} from "@opentui/solid"
3375
- import {insert as _$insert18} from "@opentui/solid"
3376
- import {setProp as _$setProp18} from "@opentui/solid"
3377
- import {createElement as _$createElement20} from "@opentui/solid"
3378
- import {TextAttributes as TextAttributes12} from "@opentui/core"
3379
- import {Show as Show3,createSignal as createSignal13,onCleanup as onCleanup8} from "solid-js"
3371
+
3372
+
3373
+
3374
+
3375
+
3376
+
3377
+
3378
+
3379
+
3380
3380
  var defaults={todo:true,lsp:true}
3381
3381
  var capabilities=new WeakMap
3382
3382
  function setHostCapabilities(api,value) {capabilities.set(api,value)
@@ -3412,16 +3412,16 @@ var ONBOARDING_STEPS=[{title:"A control center that stays compact",summary:"Navi
3412
3412
  ]
3413
3413
  }
3414
3414
  ];
3415
- import {effect as _$effect16} from "@opentui/solid"
3416
- import {memo as _$memo13} from "@opentui/solid"
3417
- import {createComponent as _$createComponent18} from "@opentui/solid"
3418
- import {createTextNode as _$createTextNode11} from "@opentui/solid"
3419
- import {insertNode as _$insertNode13} from "@opentui/solid"
3420
- import {insert as _$insert16} from "@opentui/solid"
3421
- import {setProp as _$setProp16} from "@opentui/solid"
3422
- import {createElement as _$createElement18} from "@opentui/solid"
3423
- import {TextAttributes as TextAttributes10} from "@opentui/core"
3424
- import {For as For4} from "solid-js"
3415
+
3416
+
3417
+
3418
+
3419
+
3420
+
3421
+
3422
+
3423
+
3424
+
3425
3425
  function OnboardingStep(props) {const icons=useIcons()
3426
3426
  const theme=()=>props.api.theme.current
3427
3427
  return (()=>{var _el$=_$createElement18("box"),_el$2=_$createElement18("text"),_el$3=_$createTextNode11(` `),_el$4=_$createElement18("text"),_el$5=_$createElement18("box"),_el$6=_$createElement18("text"),_el$7=_$createTextNode11(`Toggle: `),_el$8=_$createTextNode11(` \xB7 Focus: `),_el$9=_$createTextNode11(` \xB7 Icons: `),_el$1=_$createElement18("box")
@@ -3505,16 +3505,16 @@ return _p$
3505
3505
  return _el$
3506
3506
  })()
3507
3507
  }
3508
- import {memo as _$memo14} from "@opentui/solid"
3509
- import {effect as _$effect17} from "@opentui/solid"
3510
- import {createComponent as _$createComponent19} from "@opentui/solid"
3511
- import {createTextNode as _$createTextNode12} from "@opentui/solid"
3512
- import {insertNode as _$insertNode14} from "@opentui/solid"
3513
- import {insert as _$insert17} from "@opentui/solid"
3514
- import {setProp as _$setProp17} from "@opentui/solid"
3515
- import {createElement as _$createElement19} from "@opentui/solid"
3516
- import {TextAttributes as TextAttributes11} from "@opentui/core"
3517
- import {For as For5} from "solid-js"
3508
+
3509
+
3510
+
3511
+
3512
+
3513
+
3514
+
3515
+
3516
+
3517
+
3518
3518
  function SectionConfig(props) {const icons=useIcons()
3519
3519
  const theme=()=>props.api.theme.current
3520
3520
  const sections=SECTION_DEFINITIONS.filter((section)=>supportsSidebarSection(props.api,section.name))
@@ -3675,33 +3675,33 @@ return false
3675
3675
  openFirstRunWizard(api,preferences)
3676
3676
  return true
3677
3677
  }
3678
- import {mergeProps as _$mergeProps7} from "@opentui/solid"
3679
- import {createComponent as _$createComponent26} from "@opentui/solid"
3680
- import {memo as _$memo18} from "@opentui/solid"
3681
- import {For as For8,createMemo as createMemo4,onMount as onMount3} from "solid-js"
3682
- import {mergeProps as _$mergeProps6} from "@opentui/solid"
3683
- import {createComponent as _$createComponent25} from "@opentui/solid"
3684
- import {memo as _$memo17} from "@opentui/solid"
3685
- import {For as For7,createMemo as createMemo3,onMount as onMount2} from "solid-js"
3686
- import {memo as _$memo15} from "@opentui/solid"
3687
- import {use as _$use6} from "@opentui/solid"
3688
- import {effect as _$effect21} from "@opentui/solid"
3689
- import {createTextNode as _$createTextNode16} from "@opentui/solid"
3690
- import {insertNode as _$insertNode18} from "@opentui/solid"
3691
- import {insert as _$insert21} from "@opentui/solid"
3692
- import {setProp as _$setProp21} from "@opentui/solid"
3693
- import {createElement as _$createElement23} from "@opentui/solid"
3694
- import {createComponent as _$createComponent23} from "@opentui/solid"
3695
- import {useTerminalDimensions as useTerminalDimensions4} from "@opentui/solid"
3696
- import {Show as Show5,createEffect as createEffect7,createSignal as createSignal14,onCleanup as onCleanup9} from "solid-js"
3697
- import {createComponent as _$createComponent21} from "@opentui/solid"
3698
- import {effect as _$effect19} from "@opentui/solid"
3699
- import {createTextNode as _$createTextNode14} from "@opentui/solid"
3700
- import {insertNode as _$insertNode16} from "@opentui/solid"
3701
- import {insert as _$insert19} from "@opentui/solid"
3702
- import {setProp as _$setProp19} from "@opentui/solid"
3703
- import {createElement as _$createElement21} from "@opentui/solid"
3704
- import {Show as Show4} from "solid-js"
3678
+
3679
+
3680
+
3681
+
3682
+
3683
+
3684
+
3685
+
3686
+
3687
+
3688
+
3689
+
3690
+
3691
+
3692
+
3693
+
3694
+
3695
+
3696
+
3697
+
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
3705
  function PresetPreviewActions(props) {const icons=useIcons()
3706
3706
  return (()=>{var _el$=_$createElement21("box"),_el$2=_$createElement21("box"),_el$6=_$createElement21("box")
3707
3707
  _$insertNode16(_el$,_el$2)
@@ -3738,14 +3738,14 @@ _$insert19(_el$6,_$createComponent21(DialogAction,{get api() {return props.api
3738
3738
  return _el$
3739
3739
  })()
3740
3740
  }
3741
- import {effect as _$effect20} from "@opentui/solid"
3742
- import {createTextNode as _$createTextNode15} from "@opentui/solid"
3743
- import {insertNode as _$insertNode17} from "@opentui/solid"
3744
- import {insert as _$insert20} from "@opentui/solid"
3745
- import {createComponent as _$createComponent22} from "@opentui/solid"
3746
- import {setProp as _$setProp20} from "@opentui/solid"
3747
- import {createElement as _$createElement22} from "@opentui/solid"
3748
- import {For as For6} from "solid-js"
3741
+
3742
+
3743
+
3744
+
3745
+
3746
+
3747
+
3748
+
3749
3749
  function PresetPreviewSummary(props) {const icons=useIcons()
3750
3750
  const theme=()=>props.api.theme.current
3751
3751
  const color=(tone)=>tone==="accent"?theme().accent:tone==="warning"?theme().warning:theme().textMuted
@@ -3893,15 +3893,15 @@ return _el$0
3893
3893
  }
3894
3894
  })
3895
3895
  }
3896
- import {createComponent as _$createComponent24} from "@opentui/solid"
3897
- import {effect as _$effect22} from "@opentui/solid"
3898
- import {createTextNode as _$createTextNode17} from "@opentui/solid"
3899
- import {insertNode as _$insertNode19} from "@opentui/solid"
3900
- import {insert as _$insert22} from "@opentui/solid"
3901
- import {setProp as _$setProp22} from "@opentui/solid"
3902
- import {createElement as _$createElement24} from "@opentui/solid"
3903
- import {memo as _$memo16} from "@opentui/solid"
3904
- import {TextAttributes as TextAttributes13} from "@opentui/core"
3896
+
3897
+
3898
+
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
3905
  function PresetPreviewRow(props) {const icons=useIcons()
3906
3906
  const theme=()=>props.api.theme.current
3907
3907
  const emphasized=()=>props.status!=="unchanged"
@@ -4042,8 +4042,8 @@ reportMcpApplyError(props.api,request)
4042
4042
  }
4043
4043
  })
4044
4044
  }
4045
- import {createComponent as _$createComponent28} from "@opentui/solid"
4046
- import {createComponent as _$createComponent27} from "@opentui/solid"
4045
+
4046
+
4047
4047
  function McpGroupAssignmentDialog(props) {const dialogs=useDialogs(props.api)
4048
4048
  const options=()=>{const assigned=props.preferences.mcpServerGroups?.()[props.server]
4049
4049
  const groups=[...new Set(Object.values(props.preferences.mcpServerGroups?.()??{}))].sort((a,b)=>a.localeCompare(b))
@@ -4083,12 +4083,12 @@ return _$createComponent28(PresetMenu,{get api() {return props.api
4083
4083
  }))
4084
4084
  })
4085
4085
  }
4086
- import {createComponent as _$createComponent29} from "@opentui/solid"
4087
- import {setProp as _$setProp23} from "@opentui/solid"
4088
- import {effect as _$effect23} from "@opentui/solid"
4089
- import {createTextNode as _$createTextNode18} from "@opentui/solid"
4090
- import {insertNode as _$insertNode20} from "@opentui/solid"
4091
- import {createElement as _$createElement25} from "@opentui/solid"
4086
+
4087
+
4088
+
4089
+
4090
+
4091
+
4092
4092
  function openMcpPresets(api,controller,preferences) {const target=controller.target()
4093
4093
  const dialogs=createDialogStack(api,preferences.lspIconStyle,()=>{const current=controller.target()
4094
4094
  return current.key===target.key&&current.scope===target.scope
@@ -4149,18 +4149,18 @@ dialogs.open(()=>_$createComponent29(PresetMenu,{api,title:"MCP presets",get opt
4149
4149
  },onSelect:(option)=>option.value==="save"?prompt():actions(option.value.slice("preset:".length))
4150
4150
  }))
4151
4151
  }
4152
- import {memo as _$memo19} from "@opentui/solid"
4153
- import {createComponent as _$createComponent30} from "@opentui/solid"
4154
- import {use as _$use7} from "@opentui/solid"
4155
- import {effect as _$effect24} from "@opentui/solid"
4156
- import {createTextNode as _$createTextNode19} from "@opentui/solid"
4157
- import {insertNode as _$insertNode21} from "@opentui/solid"
4158
- import {insert as _$insert23} from "@opentui/solid"
4159
- import {setProp as _$setProp24} from "@opentui/solid"
4160
- import {createElement as _$createElement26} from "@opentui/solid"
4161
- import {TextAttributes as TextAttributes14} from "@opentui/core"
4162
- import {useTerminalDimensions as useTerminalDimensions5} from "@opentui/solid"
4163
- import {For as For9,createEffect as createEffect8,createMemo as createMemo5,onCleanup as onCleanup10} from "solid-js"
4152
+
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+
4159
+
4160
+
4161
+
4162
+
4163
+
4164
4164
  function QuickActionsDialog(props) {const order=props.preferences.selectedQuickActionOrder
4165
4165
  const dialogs=useDialogs(props.api)
4166
4166
  const scroll=useDialogScroll()
@@ -4296,25 +4296,25 @@ return _el$10
4296
4296
  }
4297
4297
  })
4298
4298
  }
4299
- import {memo as _$memo21} from "@opentui/solid"
4300
- import {use as _$use8} from "@opentui/solid"
4301
- import {createComponent as _$createComponent35} from "@opentui/solid"
4302
- import {effect as _$effect28} from "@opentui/solid"
4303
- import {createTextNode as _$createTextNode23} from "@opentui/solid"
4304
- import {insertNode as _$insertNode25} from "@opentui/solid"
4305
- import {insert as _$insert25} from "@opentui/solid"
4306
- import {setProp as _$setProp28} from "@opentui/solid"
4307
- import {createElement as _$createElement30} from "@opentui/solid"
4308
- import {TextAttributes as TextAttributes16} from "@opentui/core"
4309
- import {For as For10} from "solid-js"
4310
- import {useTerminalDimensions as useTerminalDimensions6} from "@opentui/solid"
4311
- import {createEffect as createEffect9,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4} from "solid-js"
4312
- import {createComponent as _$createComponent31} from "@opentui/solid"
4313
- import {setProp as _$setProp25} from "@opentui/solid"
4314
- import {effect as _$effect25} from "@opentui/solid"
4315
- import {createTextNode as _$createTextNode20} from "@opentui/solid"
4316
- import {insertNode as _$insertNode22} from "@opentui/solid"
4317
- import {createElement as _$createElement27} from "@opentui/solid"
4299
+
4300
+
4301
+
4302
+
4303
+
4304
+
4305
+
4306
+
4307
+
4308
+
4309
+
4310
+
4311
+
4312
+
4313
+
4314
+
4315
+
4316
+
4317
+
4318
4318
  function createLayoutPresetActions(input) {function prompt(value="",renameFrom) {input.dialogs.prompt({title:renameFrom?"Rename layout preset":"Save layout preset",description:()=>(()=>{var _el$=_$createElement27("text")
4319
4319
  _$insertNode22(_el$,_$createTextNode20(`Save the current visible, expanded, and ordered sections.`))
4320
4320
  _$effect25((_$p)=>_$setProp25(_el$,"fg",input.api.theme.current.textMuted,_$p))
@@ -4370,7 +4370,7 @@ input.dialogs.back()
4370
4370
  return{open,prompt
4371
4371
  }
4372
4372
  }
4373
- import {createMemo as createMemo6} from "solid-js"
4373
+
4374
4374
  function createSettingsGroups(api,preferences,icons) {const supportedSections=()=>SIDEBAR_SECTIONS.filter((name)=>supportsSidebarSection(api,name))
4375
4375
  const groups=createMemo6(()=>[{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"
4376
4376
  },{title:`${icons.icon(preferences.preferenceScope() === "worktree" ? "radioOn" : "radioOff")} Current worktree`,value:"scope:worktree",description:preferences.canUseWorktreeScope()?preferences.preferenceScopeLabel():"unavailable outside a worktree"
@@ -4423,14 +4423,14 @@ input.openLimitPrompt(section)
4423
4423
  ]
4424
4424
  })
4425
4425
  }
4426
- import {createComponent as _$createComponent33} from "@opentui/solid"
4427
- import {setProp as _$setProp26} from "@opentui/solid"
4428
- import {effect as _$effect26} from "@opentui/solid"
4429
- import {createTextNode as _$createTextNode21} from "@opentui/solid"
4430
- import {insertNode as _$insertNode23} from "@opentui/solid"
4431
- import {createElement as _$createElement28} from "@opentui/solid"
4432
- import {createComponent as _$createComponent32} from "@opentui/solid"
4433
- import {createMemo as createMemo7} from "solid-js"
4426
+
4427
+
4428
+
4429
+
4430
+
4431
+
4432
+
4433
+
4434
4434
  var RESET_ALL="__reset_all__"
4435
4435
  function TrustedSkillsDialog(props) {const options=createMemo7(()=>{const locations=props.preferences.trustedSkillLocations()
4436
4436
  if(locations.length===0)
@@ -4677,16 +4677,16 @@ scroll.ref(node)
4677
4677
  },restoreScroll:scroll.restore,saveScroll:scroll.save,theme
4678
4678
  }
4679
4679
  }
4680
- import {createComponent as _$createComponent34} from "@opentui/solid"
4681
- import {createTextNode as _$createTextNode22} from "@opentui/solid"
4682
- import {insertNode as _$insertNode24} from "@opentui/solid"
4683
- import {effect as _$effect27} from "@opentui/solid"
4684
- import {insert as _$insert24} from "@opentui/solid"
4685
- import {setProp as _$setProp27} from "@opentui/solid"
4686
- import {createElement as _$createElement29} from "@opentui/solid"
4687
- import {memo as _$memo20} from "@opentui/solid"
4688
- import {TextAttributes as TextAttributes15} from "@opentui/core"
4689
- import {Show as Show6} from "solid-js"
4680
+
4681
+
4682
+
4683
+
4684
+
4685
+
4686
+
4687
+
4688
+
4689
+
4690
4690
  function SettingsOptionRow(props) {const model=props.controller
4691
4691
  const index=()=>model.options().findIndex((candidate)=>candidate.value===props.option.value)
4692
4692
  const selected=()=>model.active()===index()
@@ -4843,8 +4843,8 @@ return _el$0
4843
4843
  function openSettings(api,preferences,activeValue,mcp) {createDialogStack(api,preferences.lspIconStyle,()=>true,preferences.cornerFont).open(()=>_$createComponent35(SettingsDialog,{api,preferences,mcp,activeValue
4844
4844
  }),"xlarge")
4845
4845
  }
4846
- import {createElement as _$createElement31} from "@opentui/solid"
4847
- import {onCleanup as onCleanup12} from "solid-js"
4846
+
4847
+
4848
4848
  function SettingsBinding(props) {const unregister=props.api.keymap.registerLayer({mode:"base",commands:[{name:`${PLUGIN_ID}.settings`,title:"Navigator settings",category:"Navigator",namespace:"palette",enabled:()=>["home","session"].includes(props.api.route.current.name),run:()=>openSettings(props.api,props.preferences,undefined,props.mcp)
4849
4849
  }],bindings:[{key:{name:",",ctrl:true
4850
4850
  },cmd:`${PLUGIN_ID}.settings`
@@ -4853,9 +4853,9 @@ function SettingsBinding(props) {const unregister=props.api.keymap.registerLayer
4853
4853
  onCleanup12(unregister)
4854
4854
  return _$createElement31("box")
4855
4855
  }
4856
- import {createComponent as _$createComponent36} from "@opentui/solid"
4857
- import {memo as _$memo22} from "@opentui/solid"
4858
- import {createSignal as createSignal15} from "solid-js"
4856
+
4857
+
4858
+
4859
4859
  function SettingsFooterButton(props) {const icons=useIcons()
4860
4860
  const [hovered,setHovered]=createSignal15(false)
4861
4861
  const theme=()=>props.api.theme.current
@@ -4865,7 +4865,7 @@ return _$createComponent36(IconControl,{id:`${PLUGIN_ID}.settings.footer`,get ic
4865
4865
  },onMouseOver:()=>setHovered(true),onMouseOut:()=>setHovered(false),onMouseUp:()=>openSettings(props.api,props.preferences,undefined,props.mcp)
4866
4866
  })
4867
4867
  }
4868
- import {createSignal as createSignal16} from "solid-js"
4868
+
4869
4869
  var NAVIGATOR_PACKAGE_URL="https://registry.npmjs.org/opencode-navigator/latest"
4870
4870
  var REQUEST_TIMEOUT_MS=5000
4871
4871
  function versionParts(value) {const match=/^v?(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?/.exec(value)
@@ -4880,11 +4880,12 @@ return next.numbers[index]>installed.numbers[index]
4880
4880
  }
4881
4881
  return installed.prerelease!==undefined&&next.prerelease===undefined
4882
4882
  }
4883
- function createVersionStatus(api,navigatorVersion,request=fetch) {const [openCodeUpdate,setOpenCodeUpdate]=createSignal16(false)
4884
- const [navigatorUpdate,setNavigatorUpdate]=createSignal16(false)
4883
+ function createVersionStatus(api,navigatorVersion,request=fetch) {const [openCodeUpdate,setOpenCodeUpdate]=createSignal16()
4884
+ const [navigatorUpdate,setNavigatorUpdate]=createSignal16()
4885
4885
  const controller=new AbortController
4886
4886
  const timeout=setTimeout(()=>controller.abort(),REQUEST_TIMEOUT_MS)
4887
- const unsubscribe=api.event.on("installation.update-available",(event)=>{setOpenCodeUpdate(isNewerVersion(event.properties.version,api.app.version))
4887
+ const unsubscribe=api.event.on("installation.update-available",(event)=>{const version=event.properties.version
4888
+ setOpenCodeUpdate(isNewerVersion(version,api.app.version)?version:undefined)
4888
4889
  })
4889
4890
  api.lifecycle.onDispose(()=>{clearTimeout(timeout)
4890
4891
  controller.abort()
@@ -4895,27 +4896,75 @@ request(NAVIGATOR_PACKAGE_URL,{headers:{accept:"application/json"},signal:contro
4895
4896
  return
4896
4897
  const metadata=await response.json()
4897
4898
  if(typeof metadata.version==="string")
4898
- setNavigatorUpdate(isNewerVersion(metadata.version,navigatorVersion))
4899
+ setNavigatorUpdate(isNewerVersion(metadata.version,navigatorVersion)?metadata.version:undefined)
4899
4900
  }).catch(()=>{}).finally(()=>clearTimeout(timeout))
4900
4901
  return{openCodeUpdate,navigatorUpdate}
4901
4902
  }
4902
- import {setProp as _$setProp29} from "@opentui/solid"
4903
- import {effect as _$effect29} from "@opentui/solid"
4904
- import {insert as _$insert26} from "@opentui/solid"
4905
- import {createElement as _$createElement32} from "@opentui/solid"
4906
- function NavigatorVersion(props) {const icons=useIcons()
4907
- const label=()=>`Navigator ${props.navigatorVersion}${props.status.navigatorUpdate() ? icons.icon("up") : ""}`
4908
- return (()=>{var _el$=_$createElement32("text")
4909
- _$insert26(_el$,label)
4910
- _$effect29((_$p)=>_$setProp29(_el$,"fg",props.api.theme.current.textMuted,_$p))
4903
+
4904
+
4905
+
4906
+
4907
+
4908
+
4909
+
4910
+
4911
+
4912
+
4913
+
4914
+
4915
+
4916
+
4917
+
4918
+
4919
+
4920
+
4921
+
4922
+
4923
+ function VersionControl(props) {const icons=useIcons()
4924
+ const theme=()=>props.api.theme.current
4925
+ return (()=>{var _el$=_$createElement32("box"),_el$2=_$createElement32("text"),_el$3=_$createTextNode24(` `)
4926
+ _$insertNode26(_el$,_el$2)
4927
+ _$setProp29(_el$,"flexDirection","row")
4928
+ _$insertNode26(_el$2,_el$3)
4929
+ _$insert26(_el$2,()=>props.label,_el$3)
4930
+ _$insert26(_el$2,()=>props.version,null)
4931
+ _$insert26(_el$,(()=>{var _c$=_$memo23(()=>!!props.update)
4932
+ return ()=>_c$()?(()=>{var _el$4=_$createElement32("text")
4933
+ _$setProp29(_el$4,"onMouseDown",(event)=>event.stopPropagation())
4934
+ _$setProp29(_el$4,"onMouseUp",(event)=>{event.stopPropagation()
4935
+ const update=props.update
4936
+ if(update)
4937
+ props.onUpdate?.(update)
4938
+ })
4939
+ _$insert26(_el$4,()=>icons.icon("up"))
4940
+ _$effect29((_$p)=>_$setProp29(_el$4,"fg",theme().warning,_$p))
4941
+ return _el$4
4942
+ })():null
4943
+ })(),null)
4944
+ _$effect29((_$p)=>_$setProp29(_el$2,"fg",theme().textMuted,_$p))
4945
+ return _el$
4946
+ })()
4947
+ }
4948
+ function VersionSummary(props) {return (()=>{var _el$=_$createElement33("box"),_el$2=_$createElement33("text")
4949
+ _$insertNode27(_el$,_el$2)
4950
+ _$setProp30(_el$,"flexDirection","row")
4951
+ _$insert27(_el$,_$createComponent37(VersionControl,{get api() {return props.api
4952
+ },label:"OpenCode",get version() {return props.api.app.version
4953
+ },get update() {return props.status.openCodeUpdate()
4954
+ },get onUpdate() {return props.onOpenCodeUpdate
4955
+ }
4956
+ }),_el$2)
4957
+ _$insertNode27(_el$2,_$createTextNode25(` | `))
4958
+ _$insert27(_el$,_$createComponent37(VersionControl,{get api() {return props.api
4959
+ },label:"Navigator",get version() {return props.navigatorVersion
4960
+ },get update() {return props.status.navigatorUpdate()
4961
+ },get onUpdate() {return props.onNavigatorUpdate
4962
+ }
4963
+ }),null)
4964
+ _$effect30((_$p)=>_$setProp30(_el$2,"fg",props.api.theme.current.textMuted,_$p))
4911
4965
  return _el$
4912
4966
  })()
4913
4967
  }
4914
- import {effect as _$effect30} from "@opentui/solid"
4915
- import {insertNode as _$insertNode26} from "@opentui/solid"
4916
- import {insert as _$insert27} from "@opentui/solid"
4917
- import {setProp as _$setProp30} from "@opentui/solid"
4918
- import {createElement as _$createElement33} from "@opentui/solid"
4919
4968
  function footerPath(api,sessionID) {const directory=api.state.session.get(sessionID)?.directory||api.state.path.directory
4920
4969
  const home=process.env.HOME
4921
4970
  const compact=home&&directory.startsWith(`${home}/`)?`~${directory.slice(home.length)}`:directory
@@ -4923,29 +4972,59 @@ const branch=directory===api.state.path.directory?api.state.vcs?.branch:undefine
4923
4972
  return `${compact}${branch ? `:${branch}` : ""}`
4924
4973
  }
4925
4974
  function VersionFooter(props) {const theme=()=>props.api.theme.current
4926
- const icons=useIcons()
4927
4975
  const path=()=>footerPath(props.api,props.sessionID)
4928
- const versions=()=>`OpenCode ${props.api.app.version}${props.status.openCodeUpdate() ? icons.icon("up") : ""} | ` + `Navigator ${props.navigatorVersion}${props.status.navigatorUpdate() ? icons.icon("up") : ""}`
4929
- return (()=>{var _el$=_$createElement33("box"),_el$2=_$createElement33("text"),_el$3=_$createElement33("text")
4930
- _$insertNode26(_el$,_el$2)
4931
- _$insertNode26(_el$,_el$3)
4932
- _$setProp30(_el$,"gap",1)
4933
- _$insert27(_el$2,path)
4934
- _$insert27(_el$3,versions)
4935
- _$effect30((_p$)=>{var _v$=theme().text,_v$2=theme().textMuted
4936
- _v$!==_p$.e&&(_p$.e=_$setProp30(_el$2,"fg",_v$,_p$.e))
4937
- _v$2!==_p$.t&&(_p$.t=_$setProp30(_el$3,"fg",_v$2,_p$.t))
4938
- return _p$
4939
- },{e:undefined,t:undefined
4940
- })
4976
+ return (()=>{var _el$=_$createElement34("box"),_el$2=_$createElement34("text")
4977
+ _$insertNode28(_el$,_el$2)
4978
+ _$setProp31(_el$,"gap",1)
4979
+ _$insert28(_el$2,path)
4980
+ _$insert28(_el$,_$createComponent38(VersionSummary,{get api() {return props.api
4981
+ },get navigatorVersion() {return props.navigatorVersion
4982
+ },get status() {return props.status
4983
+ },get onOpenCodeUpdate() {return props.onOpenCodeUpdate
4984
+ },get onNavigatorUpdate() {return props.onNavigatorUpdate
4985
+ }
4986
+ }),null)
4987
+ _$effect31((_$p)=>_$setProp31(_el$2,"fg",theme().text,_$p))
4941
4988
  return _el$
4942
4989
  })()
4943
4990
  }
4991
+
4992
+ function createVersionUpdateActions(api,status,updater) {const busy=new Set
4993
+ function target(kind) {return kind==="openCode"?status.openCodeUpdate():status.navigatorUpdate()
4994
+ }
4995
+ function label(kind) {return kind==="openCode"?"OpenCode":"Navigator"
4996
+ }
4997
+ function update(kind,version) {if (busy.has(kind))
4998
+ return
4999
+ api.ui.dialog.clear()
5000
+ busy.add(kind)
5001
+ api.ui.toast({variant:"info",title:`Updating ${label(kind)}`,message:`Installing ${version}...`
5002
+ })
5003
+ updater[kind](version).then(()=>{api.ui.toast({variant:"success",title:`${label(kind)} updated`,message:"Restart OpenCode to use the new version.",duration:6000
5004
+ })
5005
+ }).catch((error)=>{api.ui.toast({variant:"error",title:`Could not update ${label(kind)}`,message:error instanceof Error?error.message:"Update failed",duration:6000
5006
+ })
5007
+ }).finally(()=>busy.delete(kind))
5008
+ }
5009
+ function open(kind,version=target(kind)) {if (!version||busy.has(kind))
5010
+ return
5011
+ api.ui.dialog.replace(()=>_$createComponent39(api.ui.DialogConfirm,{get title() {return `Update ${label(kind)}`
5012
+ },message:`Update to ${version} using the current installation method? OpenCode must be restarted afterward.`,onConfirm:()=>update(kind,version),onCancel:()=>api.ui.dialog.clear()
5013
+ }))
5014
+ }
5015
+ const unregister=api.keymap.registerLayer({commands:[{name:`${PLUGIN_ID}.update-opencode`,title:"Update OpenCode",category:"Navigator",namespace:"palette",enabled:()=>Boolean(target("openCode"))&&!busy.has("openCode"),run:()=>open("openCode")
5016
+ },{name:`${PLUGIN_ID}.update-navigator`,title:"Update Navigator",category:"Navigator",namespace:"palette",enabled:()=>Boolean(target("navigator"))&&!busy.has("navigator"),run:()=>open("navigator")
5017
+ }]
5018
+ })
5019
+ api.lifecycle.onDispose(unregister)
5020
+ return{openCode:(version)=>open("openCode",version),navigator:(version)=>open("navigator",version)
5021
+ }
5022
+ }
4944
5023
  function matchesFilter(query,...values) {const needle=query.trim().toLocaleLowerCase()
4945
5024
  return !needle||values.some((value)=>value?.toLocaleLowerCase().includes(needle))
4946
5025
  }
4947
- import {ScrollBoxRenderable} from "@opentui/core"
4948
- import {createSignal as createSignal17} from "solid-js"
5026
+
5027
+
4949
5028
  function position(descriptor) {return typeof descriptor.position==="function"?descriptor.position():descriptor.position
4950
5029
  }
4951
5030
  var SECTION_COMMANDS=[{section:"todo",title:"Focus Todo"},{section:"subagents",title:"Focus Subagents"},{section:"skills",title:"Focus Skills"},{section:"quick_actions",title:"Focus Quick Actions"},{section:"lsp",title:"Focus LSP"},{section:"mcp",title:"Focus MCP"}
@@ -5221,14 +5300,14 @@ setFocusWithin(false)
5221
5300
  }
5222
5301
  }
5223
5302
  }
5224
- import {createComponent as _$createComponent37} from "@opentui/solid"
5225
- import {memo as _$memo23} from "@opentui/solid"
5226
- import {effect as _$effect31} from "@opentui/solid"
5227
- import {insert as _$insert28} from "@opentui/solid"
5228
- import {setProp as _$setProp31} from "@opentui/solid"
5229
- import {createElement as _$createElement34} from "@opentui/solid"
5230
- import {Show as Show7,createSignal as createSignal19} from "solid-js"
5231
- import {createSignal as createSignal18,onCleanup as onCleanup13} from "solid-js"
5303
+
5304
+
5305
+
5306
+
5307
+
5308
+
5309
+
5310
+
5232
5311
  function sidebarInteractiveColors(theme,state,normalColor=theme.text,mode="row") {const highlighted=!state.disabled&&(state.focused||mode==="control"&&state.hovered)
5233
5312
  let backgroundColor=theme.backgroundPanel
5234
5313
  let foregroundColor=normalColor
@@ -5267,49 +5346,49 @@ function LspBadge(props) {const icons=useIcons()
5267
5346
  const isKnown=lspIconName(props.id)!==undefined
5268
5347
  const [showName,setShowName]=createSignal19(false)
5269
5348
  const statusColor=()=>props.status==="connected"?props.api.theme.current.success:props.api.theme.current.error
5270
- if(!isKnown) {return (()=>{var _el$=_$createElement34("text")
5271
- _$setProp31(_el$,"flexShrink",1)
5272
- _$setProp31(_el$,"wrapMode","none")
5273
- _$insert28(_el$,()=>props.id)
5274
- _$effect31((_$p)=>_$setProp31(_el$,"fg",statusColor(),_$p))
5349
+ if(!isKnown) {return (()=>{var _el$=_$createElement35("text")
5350
+ _$setProp32(_el$,"flexShrink",1)
5351
+ _$setProp32(_el$,"wrapMode","none")
5352
+ _$insert29(_el$,()=>props.id)
5353
+ _$effect32((_$p)=>_$setProp32(_el$,"fg",statusColor(),_$p))
5275
5354
  return _el$
5276
5355
  })()
5277
5356
  }
5278
5357
  const item=useSidebarItem(props.api,props.interaction,{id:props.navigationId??`${PLUGIN_ID}.lsp.${props.id}`,position:()=>props.position??{section:0,row:0,column:0
5279
5358
  },activate:()=>setShowName((value)=>!value)
5280
5359
  },statusColor)
5281
- return _$createComponent37(SelectionBox,{get iconOnly() {return isKnown&&!showName()
5360
+ return _$createComponent40(SelectionBox,{get iconOnly() {return isKnown&&!showName()
5282
5361
  },ref:(node)=>item.ref(node),get id() {return props.navigationId??`${PLUGIN_ID}.lsp.${props.id}`
5283
5362
  },flexDirection:"row",gap:1,flexShrink:0,get backgroundColor() {return item.backgroundColor()
5284
5363
  },get onMouseOver() {return item.onMouseOver
5285
5364
  },get onMouseOut() {return item.onMouseOut
5286
5365
  },onMouseDown:(event)=>{event.stopPropagation()
5287
5366
  item.activate(event)
5288
- },get children() {return [(()=>{var _el$2=_$createElement34("text")
5289
- _$setProp31(_el$2,"flexShrink",0)
5290
- _$insert28(_el$2,()=>lspIcon(props.id,props.iconStyle??icons.style()))
5291
- _$effect31((_$p)=>_$setProp31(_el$2,"fg",item.foregroundColor(),_$p))
5367
+ },get children() {return [(()=>{var _el$2=_$createElement35("text")
5368
+ _$setProp32(_el$2,"flexShrink",0)
5369
+ _$insert29(_el$2,()=>lspIcon(props.id,props.iconStyle??icons.style()))
5370
+ _$effect32((_$p)=>_$setProp32(_el$2,"fg",item.foregroundColor(),_$p))
5292
5371
  return _el$2
5293
- })(),_$createComponent37(Show7,{get when() {return showName()
5294
- },get children() {var _el$3=_$createElement34("text")
5295
- _$setProp31(_el$3,"flexShrink",0)
5296
- _$setProp31(_el$3,"wrapMode","none")
5297
- _$insert28(_el$3,()=>props.id)
5298
- _$effect31((_$p)=>_$setProp31(_el$3,"fg",item.focused()?item.foregroundColor():props.api.theme.current.textMuted,_$p))
5372
+ })(),_$createComponent40(Show7,{get when() {return showName()
5373
+ },get children() {var _el$3=_$createElement35("text")
5374
+ _$setProp32(_el$3,"flexShrink",0)
5375
+ _$setProp32(_el$3,"wrapMode","none")
5376
+ _$insert29(_el$3,()=>props.id)
5377
+ _$effect32((_$p)=>_$setProp32(_el$3,"fg",item.focused()?item.foregroundColor():props.api.theme.current.textMuted,_$p))
5299
5378
  return _el$3
5300
5379
  }
5301
5380
  })]
5302
5381
  }
5303
5382
  })
5304
5383
  }
5305
- import {effect as _$effect34} from "@opentui/solid"
5306
- import {memo as _$memo26} from "@opentui/solid"
5307
- import {insert as _$insert31} from "@opentui/solid"
5308
- import {createComponent as _$createComponent40} from "@opentui/solid"
5309
- import {setProp as _$setProp34} from "@opentui/solid"
5310
- import {createElement as _$createElement37} from "@opentui/solid"
5311
- import {For as For11,Show as Show10,createMemo as createMemo10} from "solid-js"
5312
- import {createComputed,createMemo as createMemo9,createSignal as createSignal20,untrack as untrack2} from "solid-js"
5384
+
5385
+
5386
+
5387
+
5388
+
5389
+
5390
+
5391
+
5313
5392
  function createListVisibility(options) {const [expanded,setExpanded]=createSignal20(false)
5314
5393
  let previousKey
5315
5394
  let previousLimit
@@ -5326,15 +5405,15 @@ const visible=createMemo9(()=>!canToggle()||expanded()?options.items():options.i
5326
5405
  return{visible,expanded,canToggle,hiddenCount:()=>options.items().length - visible().length,showAll:()=>setExpanded(canToggle()),showLess:()=>setExpanded(false)
5327
5406
  }
5328
5407
  }
5329
- import {createComponent as _$createComponent38} from "@opentui/solid"
5330
- import {setProp as _$setProp32} from "@opentui/solid"
5331
- import {effect as _$effect32} from "@opentui/solid"
5332
- import {createTextNode as _$createTextNode24} from "@opentui/solid"
5333
- import {insertNode as _$insertNode27} from "@opentui/solid"
5334
- import {insert as _$insert29} from "@opentui/solid"
5335
- import {memo as _$memo24} from "@opentui/solid"
5336
- import {createElement as _$createElement35} from "@opentui/solid"
5337
- import {Show as Show8,createComputed as createComputed2,untrack as untrack3} from "solid-js"
5408
+
5409
+
5410
+
5411
+
5412
+
5413
+
5414
+
5415
+
5416
+
5338
5417
  function ListVisibilityControl(props) {const icons=useIcons()
5339
5418
  const id=`${PLUGIN_ID}.list.${props.section}`
5340
5419
  createComputed2(()=>{const isVisible=props.visibility.canToggle()
@@ -5350,36 +5429,36 @@ props.visibility.showAll()
5350
5429
  queueMicrotask(()=>props.interaction?.select(id))
5351
5430
  }
5352
5431
  })
5353
- return _$createComponent38(Show8,{get when() {return props.visibility.canToggle()
5354
- },get children() {return _$createComponent38(SelectionBox,{ref(r$) {var _ref$=item.ref
5432
+ return _$createComponent41(Show8,{get when() {return props.visibility.canToggle()
5433
+ },get children() {return _$createComponent41(SelectionBox,{ref(r$) {var _ref$=item.ref
5355
5434
  typeof _ref$==="function"?_ref$(r$):item.ref=r$
5356
5435
  },id,paddingLeft:1,paddingRight:1,get backgroundColor() {return item.backgroundColor()
5357
5436
  },get onMouseOver() {return item.onMouseOver
5358
5437
  },get onMouseOut() {return item.onMouseOut
5359
5438
  },onMouseUp:(event)=>{event.stopPropagation()
5360
5439
  item.activate(event)
5361
- },get children() {var _el$=_$createElement35("text"),_el$2=_$createTextNode24(` `)
5362
- _$insertNode27(_el$,_el$2)
5363
- _$insert29(_el$,()=>icons.icon(props.visibility.expanded()?"up":"down"),_el$2)
5364
- _$insert29(_el$,(()=>{var _c$=_$memo24(()=>!!props.visibility.expanded())
5440
+ },get children() {var _el$=_$createElement36("text"),_el$2=_$createTextNode26(` `)
5441
+ _$insertNode29(_el$,_el$2)
5442
+ _$insert30(_el$,()=>icons.icon(props.visibility.expanded()?"up":"down"),_el$2)
5443
+ _$insert30(_el$,(()=>{var _c$=_$memo25(()=>!!props.visibility.expanded())
5365
5444
  return ()=>_c$()?"Show less":`Show all (${props.visibility.hiddenCount()} more)`
5366
5445
  })(),null)
5367
- _$effect32((_$p)=>_$setProp32(_el$,"fg",item.foregroundColor(),_$p))
5446
+ _$effect33((_$p)=>_$setProp33(_el$,"fg",item.foregroundColor(),_$p))
5368
5447
  return _el$
5369
5448
  }
5370
5449
  })
5371
5450
  }
5372
5451
  })
5373
5452
  }
5374
- import {createComponent as _$createComponent39} from "@opentui/solid"
5375
- import {effect as _$effect33} from "@opentui/solid"
5376
- import {createTextNode as _$createTextNode25} from "@opentui/solid"
5377
- import {insertNode as _$insertNode28} from "@opentui/solid"
5378
- import {memo as _$memo25} from "@opentui/solid"
5379
- import {insert as _$insert30} from "@opentui/solid"
5380
- import {setProp as _$setProp33} from "@opentui/solid"
5381
- import {createElement as _$createElement36} from "@opentui/solid"
5382
- import {Show as Show9,createEffect as createEffect10,createSignal as createSignal21} from "solid-js"
5453
+
5454
+
5455
+
5456
+
5457
+
5458
+
5459
+
5460
+
5461
+
5383
5462
  var graphemes=new Intl.Segmenter(undefined,{granularity:"grapheme"
5384
5463
  })
5385
5464
  function truncateEnd(value,maxWidth) {if (Bun.stringWidth(value)<=maxWidth)
@@ -5413,64 +5492,64 @@ const actionLabel=()=>{const label=props.headerAction?.label()??""
5413
5492
  const width=actionWidth()
5414
5493
  return width===undefined?label:truncateEnd(label,width - 2)
5415
5494
  }
5416
- return (()=>{var _el$=_$createElement36("box")
5417
- _$setProp33(_el$,"gap",1)
5418
- _$insert30(_el$,_$createComponent39(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.sectionId
5495
+ return (()=>{var _el$=_$createElement37("box")
5496
+ _$setProp34(_el$,"gap",1)
5497
+ _$insert31(_el$,_$createComponent42(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.sectionId
5419
5498
  },flexDirection:"row",height:1,justifyContent:"space-between",gap:1,paddingLeft:1,paddingRight:1,get backgroundColor() {return item.backgroundColor()
5420
5499
  },get onMouseOver() {return item.onMouseOver
5421
5500
  },get onMouseOut() {return item.onMouseOut
5422
- },onMouseDown:(event)=>item.activate(event),onSizeChange:()=>setActionWidth(undefined),get children() {return [(()=>{var _el$2=_$createElement36("text"),_el$3=_$createElement36("span"),_el$4=_$createTextNode25(` `),_el$5=_$createElement36("span"),_el$6=_$createElement36("b")
5423
- _$insertNode28(_el$2,_el$3)
5424
- _$insertNode28(_el$2,_el$4)
5425
- _$insertNode28(_el$2,_el$5)
5426
- _$insertNode28(_el$2,_el$6)
5427
- _$setProp33(_el$2,"flexShrink",0)
5428
- _$setProp33(_el$2,"wrapMode","none")
5429
- _$insert30(_el$3,()=>icons.icon(props.open?"expanded":"collapsed"))
5430
- _$insert30(_el$5,(()=>{var _c$=_$memo25(()=>!!icon())
5501
+ },onMouseDown:(event)=>item.activate(event),onSizeChange:()=>setActionWidth(undefined),get children() {return [(()=>{var _el$2=_$createElement37("text"),_el$3=_$createElement37("span"),_el$4=_$createTextNode27(` `),_el$5=_$createElement37("span"),_el$6=_$createElement37("b")
5502
+ _$insertNode30(_el$2,_el$3)
5503
+ _$insertNode30(_el$2,_el$4)
5504
+ _$insertNode30(_el$2,_el$5)
5505
+ _$insertNode30(_el$2,_el$6)
5506
+ _$setProp34(_el$2,"flexShrink",0)
5507
+ _$setProp34(_el$2,"wrapMode","none")
5508
+ _$insert31(_el$3,()=>icons.icon(props.open?"expanded":"collapsed"))
5509
+ _$insert31(_el$5,(()=>{var _c$=_$memo26(()=>!!icon())
5431
5510
  return ()=>_c$()?`${icon()} `:""
5432
5511
  })())
5433
- _$insert30(_el$6,()=>props.title)
5434
- _$effect33((_p$)=>{var _v$=item.foregroundColor(),_v$2={fg:item.focused()?item.foregroundColor():theme().accent
5512
+ _$insert31(_el$6,()=>props.title)
5513
+ _$effect34((_p$)=>{var _v$=item.foregroundColor(),_v$2={fg:item.focused()?item.foregroundColor():theme().accent
5435
5514
  },_v$3={fg:item.focused()?item.foregroundColor():theme().accent
5436
5515
  }
5437
- _v$!==_p$.e&&(_p$.e=_$setProp33(_el$2,"fg",_v$,_p$.e))
5438
- _v$2!==_p$.t&&(_p$.t=_$setProp33(_el$3,"style",_v$2,_p$.t))
5439
- _v$3!==_p$.a&&(_p$.a=_$setProp33(_el$5,"style",_v$3,_p$.a))
5516
+ _v$!==_p$.e&&(_p$.e=_$setProp34(_el$2,"fg",_v$,_p$.e))
5517
+ _v$2!==_p$.t&&(_p$.t=_$setProp34(_el$3,"style",_v$2,_p$.t))
5518
+ _v$3!==_p$.a&&(_p$.a=_$setProp34(_el$5,"style",_v$3,_p$.a))
5440
5519
  return _p$
5441
5520
  },{e:undefined,t:undefined,a:undefined
5442
5521
  })
5443
5522
  return _el$2
5444
- })(),(()=>{var _el$7=_$createElement36("box"),_el$8=_$createElement36("text")
5445
- _$insertNode28(_el$7,_el$8)
5446
- _$setProp33(_el$7,"flexDirection","row")
5447
- _$setProp33(_el$7,"gap",1)
5448
- _$setProp33(_el$7,"flexGrow",1)
5449
- _$setProp33(_el$7,"minWidth",0)
5450
- _$setProp33(_el$7,"justifyContent","flex-end")
5451
- _$insert30(_el$7,_$createComponent39(Show9,{when:action,children:(control)=>_$createComponent39(SelectionBox,{ref:(node)=>control().ref(node),get id() {return props.headerAction?.id
5523
+ })(),(()=>{var _el$7=_$createElement37("box"),_el$8=_$createElement37("text")
5524
+ _$insertNode30(_el$7,_el$8)
5525
+ _$setProp34(_el$7,"flexDirection","row")
5526
+ _$setProp34(_el$7,"gap",1)
5527
+ _$setProp34(_el$7,"flexGrow",1)
5528
+ _$setProp34(_el$7,"minWidth",0)
5529
+ _$setProp34(_el$7,"justifyContent","flex-end")
5530
+ _$insert31(_el$7,_$createComponent42(Show9,{when:action,children:(control)=>_$createComponent42(SelectionBox,{ref:(node)=>control().ref(node),get id() {return props.headerAction?.id
5452
5531
  },flexShrink:1,minWidth:3,overflow:"hidden",get backgroundColor() {return control().backgroundColor()
5453
5532
  },onSizeChange:function() {setActionWidth(this.width)
5454
5533
  },get onMouseOver() {return control().onMouseOver
5455
5534
  },get onMouseOut() {return control().onMouseOut
5456
5535
  },onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
5457
5536
  control().activate(event)
5458
- },get children() {var _el$9=_$createElement36("text")
5459
- _$setProp33(_el$9,"wrapMode","none")
5460
- _$setProp33(_el$9,"height",1)
5461
- _$insert30(_el$9,actionLabel)
5462
- _$effect33((_$p)=>_$setProp33(_el$9,"fg",control().foregroundColor(),_$p))
5537
+ },get children() {var _el$9=_$createElement37("text")
5538
+ _$setProp34(_el$9,"wrapMode","none")
5539
+ _$setProp34(_el$9,"height",1)
5540
+ _$insert31(_el$9,actionLabel)
5541
+ _$effect34((_$p)=>_$setProp34(_el$9,"fg",control().foregroundColor(),_$p))
5463
5542
  return _el$9
5464
5543
  }
5465
5544
  })
5466
5545
  }),_el$8)
5467
- _$setProp33(_el$8,"wrapMode","none")
5468
- _$setProp33(_el$8,"truncate",true)
5469
- _$setProp33(_el$8,"height",1)
5470
- _$insert30(_el$8,()=>props.summary)
5471
- _$effect33((_p$)=>{var _v$4=item.focused()?item.foregroundColor():theme().textMuted,_v$5=props.headerAction?0:1
5472
- _v$4!==_p$.e&&(_p$.e=_$setProp33(_el$8,"fg",_v$4,_p$.e))
5473
- _v$5!==_p$.t&&(_p$.t=_$setProp33(_el$8,"flexShrink",_v$5,_p$.t))
5546
+ _$setProp34(_el$8,"wrapMode","none")
5547
+ _$setProp34(_el$8,"truncate",true)
5548
+ _$setProp34(_el$8,"height",1)
5549
+ _$insert31(_el$8,()=>props.summary)
5550
+ _$effect34((_p$)=>{var _v$4=item.focused()?item.foregroundColor():theme().textMuted,_v$5=props.headerAction?0:1
5551
+ _v$4!==_p$.e&&(_p$.e=_$setProp34(_el$8,"fg",_v$4,_p$.e))
5552
+ _v$5!==_p$.t&&(_p$.t=_$setProp34(_el$8,"flexShrink",_v$5,_p$.t))
5474
5553
  return _p$
5475
5554
  },{e:undefined,t:undefined
5476
5555
  })
@@ -5478,7 +5557,7 @@ return _el$7
5478
5557
  })()]
5479
5558
  }
5480
5559
  }),null)
5481
- _$insert30(_el$,_$createComponent39(Show9,{get when() {return props.open
5560
+ _$insert31(_el$,_$createComponent42(Show9,{get when() {return props.open
5482
5561
  },get children() {return props.children
5483
5562
  }
5484
5563
  }),null)
@@ -5492,25 +5571,25 @@ const visibility=createListVisibility({items:list,limit:()=>props.preferences.se
5492
5571
  const connected=createMemo10(()=>list().filter((item)=>item.status==="connected").length)
5493
5572
  const disabled=createMemo10(()=>props.api.state.config.lsp===false)
5494
5573
  const navigationSection=()=>props.navigationSection??5
5495
- return _$createComponent40(Section,{get api() {return props.api
5574
+ return _$createComponent43(Section,{get api() {return props.api
5496
5575
  },get interaction() {return props.interaction
5497
5576
  },sectionId:`${PLUGIN_ID}.section.lsp`,get navigationSection() {return navigationSection()
5498
5577
  },title:"LSP",section:"lsp",get summary() {return `${connected()}/${list().length}`
5499
5578
  },get open() {return props.preferences.expanded().lsp
5500
- },onToggle:()=>props.preferences.toggleSectionExpanded("lsp"),get children() {return [_$createComponent40(Show10,{get when() {return list().length>0
5501
- },get fallback() {return (()=>{var _el$2=_$createElement37("text")
5502
- _$insert31(_el$2,()=>disabled()?"LSP is disabled":"Activates as files are read")
5503
- _$effect34((_$p)=>_$setProp34(_el$2,"fg",props.api.theme.current.textMuted,_$p))
5579
+ },onToggle:()=>props.preferences.toggleSectionExpanded("lsp"),get children() {return [_$createComponent43(Show10,{get when() {return list().length>0
5580
+ },get fallback() {return (()=>{var _el$2=_$createElement38("text")
5581
+ _$insert32(_el$2,()=>disabled()?"LSP is disabled":"Activates as files are read")
5582
+ _$effect35((_$p)=>_$setProp35(_el$2,"fg",props.api.theme.current.textMuted,_$p))
5504
5583
  return _el$2
5505
5584
  })()
5506
- },get children() {var _el$=_$createElement37("box")
5507
- _$setProp34(_el$,"flexDirection","row")
5508
- _$setProp34(_el$,"flexWrap","wrap")
5509
- _$setProp34(_el$,"gap",1)
5510
- _$setProp34(_el$,"paddingLeft",1)
5511
- _$setProp34(_el$,"paddingRight",1)
5512
- _$insert31(_el$,_$createComponent40(For11,{get each() {return visibility.visible()
5513
- },children:(item,index)=>_$createComponent40(LspBadge,{get api() {return props.api
5585
+ },get children() {var _el$=_$createElement38("box")
5586
+ _$setProp35(_el$,"flexDirection","row")
5587
+ _$setProp35(_el$,"flexWrap","wrap")
5588
+ _$setProp35(_el$,"gap",1)
5589
+ _$setProp35(_el$,"paddingLeft",1)
5590
+ _$setProp35(_el$,"paddingRight",1)
5591
+ _$insert32(_el$,_$createComponent43(For11,{get each() {return visibility.visible()
5592
+ },children:(item,index)=>_$createComponent43(LspBadge,{get api() {return props.api
5514
5593
  },get interaction() {return props.interaction
5515
5594
  },get id() {return item.id
5516
5595
  },get navigationId() {return `${PLUGIN_ID}.lsp.${item.id}.${item.root}`
@@ -5522,7 +5601,7 @@ _$insert31(_el$,_$createComponent40(For11,{get each() {return visibility.visible
5522
5601
  }))
5523
5602
  return _el$
5524
5603
  }
5525
- }),_$createComponent40(ListVisibilityControl,{get api() {return props.api
5604
+ }),_$createComponent43(ListVisibilityControl,{get api() {return props.api
5526
5605
  },get interaction() {return props.interaction
5527
5606
  },section:"lsp",get navigationSection() {return navigationSection()
5528
5607
  },row:11,visibility
@@ -5530,9 +5609,9 @@ return _el$
5530
5609
  }
5531
5610
  })
5532
5611
  }
5533
- import {createComponent as _$createComponent46} from "@opentui/solid"
5534
- import {createMemo as createMemo12,createSignal as createSignal23} from "solid-js"
5535
- import {createMemo as createMemo11} from "solid-js"
5612
+
5613
+
5614
+
5536
5615
  function createMcpSectionModel(props,query) {const target=createMemo11(()=>props.controller.target())
5537
5616
  const favorites=createMemo11(()=>props.preferences.favoriteMcpServers?.()??new Set)
5538
5617
  const groups=createMemo11(()=>props.preferences.mcpServerGroups?.()??{})
@@ -5557,43 +5636,43 @@ return selected&&Object.hasOwn(presets,selected)?selected:matchingMcpPreset(list
5557
5636
  return{target,favorites,groups,grouped,list,filtered,visibility,active,state,bulk,bulkRunning,mutationRunning,connectable,disconnectable,errors,presetName
5558
5637
  }
5559
5638
  }
5560
- import {effect as _$effect40} from "@opentui/solid"
5561
- import {createTextNode as _$createTextNode27} from "@opentui/solid"
5562
- import {insertNode as _$insertNode31} from "@opentui/solid"
5563
- import {insert as _$insert37} from "@opentui/solid"
5564
- import {createComponent as _$createComponent45} from "@opentui/solid"
5565
- import {memo as _$memo30} from "@opentui/solid"
5566
- import {setProp as _$setProp40} from "@opentui/solid"
5567
- import {createElement as _$createElement43} from "@opentui/solid"
5568
- import {For as For12,Show as Show13} from "solid-js"
5569
- import {createComponent as _$createComponent41} from "@opentui/solid"
5570
- import {effect as _$effect35} from "@opentui/solid"
5571
- import {insert as _$insert32} from "@opentui/solid"
5572
- import {setProp as _$setProp35} from "@opentui/solid"
5573
- import {createElement as _$createElement38} from "@opentui/solid"
5639
+
5640
+
5641
+
5642
+
5643
+
5644
+
5645
+
5646
+
5647
+
5648
+
5649
+
5650
+
5651
+
5652
+
5574
5653
  function McpBulkAction(props) {const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>props.position,disabled:()=>props.disabled,activate:props.onActivate
5575
5654
  })
5576
- return _$createComponent41(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.id
5655
+ return _$createComponent44(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.id
5577
5656
  },height:1,minWidth:0,paddingLeft:1,paddingRight:1,get backgroundColor() {return item.backgroundColor()
5578
5657
  },get onMouseOver() {return item.onMouseOver
5579
5658
  },get onMouseOut() {return item.onMouseOut
5580
- },onMouseDown:(event)=>item.activate(event),get children() {var _el$=_$createElement38("text")
5581
- _$setProp35(_el$,"wrapMode","none")
5582
- _$setProp35(_el$,"truncate",true)
5583
- _$setProp35(_el$,"height",1)
5584
- _$insert32(_el$,()=>props.label)
5585
- _$effect35((_$p)=>_$setProp35(_el$,"fg",item.foregroundColor(),_$p))
5659
+ },onMouseDown:(event)=>item.activate(event),get children() {var _el$=_$createElement39("text")
5660
+ _$setProp36(_el$,"wrapMode","none")
5661
+ _$setProp36(_el$,"truncate",true)
5662
+ _$setProp36(_el$,"height",1)
5663
+ _$insert33(_el$,()=>props.label)
5664
+ _$effect36((_$p)=>_$setProp36(_el$,"fg",item.foregroundColor(),_$p))
5586
5665
  return _el$
5587
5666
  }
5588
5667
  })
5589
5668
  }
5590
- import {insertNode as _$insertNode30} from "@opentui/solid"
5591
- import {effect as _$effect37} from "@opentui/solid"
5592
- import {insert as _$insert34} from "@opentui/solid"
5593
- import {setProp as _$setProp37} from "@opentui/solid"
5594
- import {createElement as _$createElement40} from "@opentui/solid"
5595
- import {memo as _$memo28} from "@opentui/solid"
5596
- import {createComponent as _$createComponent43} from "@opentui/solid"
5669
+
5670
+
5671
+
5672
+
5673
+
5674
+
5675
+
5597
5676
  function mcpColor(api,status) {const theme=api.theme.current
5598
5677
  if(status==="connected")
5599
5678
  return theme.success
@@ -5607,39 +5686,39 @@ function mcpToggle(status,busy) {if (busy||status==="pending")
5607
5686
  return "pending"
5608
5687
  return status==="connected"?"connected":"disconnected"
5609
5688
  }
5610
- import {memo as _$memo27} from "@opentui/solid"
5611
- import {effect as _$effect36} from "@opentui/solid"
5612
- import {createTextNode as _$createTextNode26} from "@opentui/solid"
5613
- import {insertNode as _$insertNode29} from "@opentui/solid"
5614
- import {insert as _$insert33} from "@opentui/solid"
5615
- import {setProp as _$setProp36} from "@opentui/solid"
5616
- import {createElement as _$createElement39} from "@opentui/solid"
5617
- import {createComponent as _$createComponent42} from "@opentui/solid"
5618
- import {Show as Show11} from "solid-js"
5689
+
5690
+
5691
+
5692
+
5693
+
5694
+
5695
+
5696
+
5697
+
5619
5698
  function RequestErrorRow(props) {const icons=useIcons()
5620
5699
  const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>props.position,disabled:()=>!props.state.error?.retryable||props.state.status==="loading"||props.state.status==="refreshing",activate:props.onRetry
5621
5700
  })
5622
- return _$createComponent42(Show11,{get when() {return props.state.error
5623
- },children:(error)=>_$createComponent42(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.id
5701
+ return _$createComponent45(Show11,{get when() {return props.state.error
5702
+ },children:(error)=>_$createComponent45(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.id
5624
5703
  },flexDirection:"row",gap:1,paddingLeft:1,paddingRight:1,get backgroundColor() {return item.backgroundColor()
5625
5704
  },get onMouseOver() {return item.onMouseOver
5626
5705
  },get onMouseOut() {return item.onMouseOut
5627
5706
  },onMouseDown:(event)=>{event.stopPropagation()
5628
5707
  item.activate(event)
5629
- },get children() {return [(()=>{var _el$=_$createElement39("text"),_el$2=_$createTextNode26(` `)
5630
- _$insertNode29(_el$,_el$2)
5631
- _$setProp36(_el$,"flexGrow",1)
5632
- _$setProp36(_el$,"wrapMode","word")
5633
- _$insert33(_el$,()=>icons.icon("error"),_el$2)
5634
- _$insert33(_el$,()=>error().message,null)
5635
- _$effect36((_$p)=>_$setProp36(_el$,"fg",item.focused()?item.foregroundColor():props.api.theme.current.error,_$p))
5708
+ },get children() {return [(()=>{var _el$=_$createElement40("text"),_el$2=_$createTextNode28(` `)
5709
+ _$insertNode31(_el$,_el$2)
5710
+ _$setProp37(_el$,"flexGrow",1)
5711
+ _$setProp37(_el$,"wrapMode","word")
5712
+ _$insert34(_el$,()=>icons.icon("error"),_el$2)
5713
+ _$insert34(_el$,()=>error().message,null)
5714
+ _$effect37((_$p)=>_$setProp37(_el$,"fg",item.focused()?item.foregroundColor():props.api.theme.current.error,_$p))
5636
5715
  return _el$
5637
- })(),_$createComponent42(Show11,{get when() {return error().retryable
5638
- },get children() {var _el$3=_$createElement39("text"),_el$4=_$createTextNode26(` Retry`)
5639
- _$insertNode29(_el$3,_el$4)
5640
- _$setProp36(_el$3,"flexShrink",0)
5641
- _$insert33(_el$3,()=>icons.icon("retry"),_el$4)
5642
- _$effect36((_$p)=>_$setProp36(_el$3,"fg",item.focused()?item.foregroundColor():props.api.theme.current.accent,_$p))
5716
+ })(),_$createComponent45(Show11,{get when() {return error().retryable
5717
+ },get children() {var _el$3=_$createElement40("text"),_el$4=_$createTextNode28(` Retry`)
5718
+ _$insertNode31(_el$3,_el$4)
5719
+ _$setProp37(_el$3,"flexShrink",0)
5720
+ _$insert34(_el$3,()=>icons.icon("retry"),_el$4)
5721
+ _$effect37((_$p)=>_$setProp37(_el$3,"fg",item.focused()?item.foregroundColor():props.api.theme.current.accent,_$p))
5643
5722
  return _el$3
5644
5723
  }
5645
5724
  })]
@@ -5649,27 +5728,27 @@ return _el$3
5649
5728
  }
5650
5729
  function SectionRequestBody(props) {const icons=useIcons()
5651
5730
  const pending=()=>props.state.status==="loading"
5652
- return (()=>{var _el$5=_$createElement39("box")
5653
- _$insert33(_el$5,_$createComponent42(RequestErrorRow,props),null)
5654
- _$insert33(_el$5,_$createComponent42(Show11,{get when() {return _$memo27(()=>!!pending())()&&!props.hasItems
5655
- },get children() {var _el$6=_$createElement39("text"),_el$7=_$createTextNode26(` `)
5656
- _$insertNode29(_el$6,_el$7)
5657
- _$insert33(_el$6,()=>icons.icon("pending"),_el$7)
5658
- _$insert33(_el$6,()=>props.loading,null)
5659
- _$effect36((_$p)=>_$setProp36(_el$6,"fg",props.api.theme.current.textMuted,_$p))
5731
+ return (()=>{var _el$5=_$createElement40("box")
5732
+ _$insert34(_el$5,_$createComponent45(RequestErrorRow,props),null)
5733
+ _$insert34(_el$5,_$createComponent45(Show11,{get when() {return _$memo28(()=>!!pending())()&&!props.hasItems
5734
+ },get children() {var _el$6=_$createElement40("text"),_el$7=_$createTextNode28(` `)
5735
+ _$insertNode31(_el$6,_el$7)
5736
+ _$insert34(_el$6,()=>icons.icon("pending"),_el$7)
5737
+ _$insert34(_el$6,()=>props.loading,null)
5738
+ _$effect37((_$p)=>_$setProp37(_el$6,"fg",props.api.theme.current.textMuted,_$p))
5660
5739
  return _el$6
5661
5740
  }
5662
5741
  }),null)
5663
- _$insert33(_el$5,_$createComponent42(Show11,{get when() {return props.hasItems
5742
+ _$insert34(_el$5,_$createComponent45(Show11,{get when() {return props.hasItems
5664
5743
  },get children() {return props.children
5665
5744
  }
5666
5745
  }),null)
5667
- _$insert33(_el$5,_$createComponent42(Show11,{get when() {return _$memo27(()=>!!((props.state.status==="ready"||props.state.status==="refreshing")&&!props.hasItems))()&&!props.state.error
5668
- },get children() {var _el$8=_$createElement39("text"),_el$9=_$createTextNode26(` `)
5669
- _$insertNode29(_el$8,_el$9)
5670
- _$insert33(_el$8,()=>icons.icon("info"),_el$9)
5671
- _$insert33(_el$8,()=>props.empty,null)
5672
- _$effect36((_$p)=>_$setProp36(_el$8,"fg",props.api.theme.current.textMuted,_$p))
5746
+ _$insert34(_el$5,_$createComponent45(Show11,{get when() {return _$memo28(()=>!!((props.state.status==="ready"||props.state.status==="refreshing")&&!props.hasItems))()&&!props.state.error
5747
+ },get children() {var _el$8=_$createElement40("text"),_el$9=_$createTextNode28(` `)
5748
+ _$insertNode31(_el$8,_el$9)
5749
+ _$insert34(_el$8,()=>icons.icon("info"),_el$9)
5750
+ _$insert34(_el$8,()=>props.empty,null)
5751
+ _$effect37((_$p)=>_$setProp37(_el$8,"fg",props.api.theme.current.textMuted,_$p))
5673
5752
  return _el$8
5674
5753
  }
5675
5754
  }),null)
@@ -5694,7 +5773,7 @@ queueMicrotask(()=>props.interaction?.select(`${id()}.favorite`))
5694
5773
  const info=useSidebarItem(props.api,props.interaction,{id:`${id()}.info`,position:()=>({...props.position,column:1
5695
5774
  }),activate:()=>{if (!props.item.error)
5696
5775
  return
5697
- dialogs.open(()=>_$createComponent43(McpErrorDialog,{get api() {return props.api
5776
+ dialogs.open(()=>_$createComponent46(McpErrorDialog,{get api() {return props.api
5698
5777
  },get name() {return props.item.name
5699
5778
  },get status() {return props.item.status
5700
5779
  },get error() {return props.item.error
@@ -5703,29 +5782,29 @@ dialogs.open(()=>_$createComponent43(McpErrorDialog,{get api() {return props.api
5703
5782
  }
5704
5783
  },()=>theme().error,"control")
5705
5784
  const nestedBackground=(background)=>background==="transparent"?row.backgroundColor():background
5706
- return _$createComponent43(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
5785
+ return _$createComponent46(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
5707
5786
  },get backgroundColor() {return row.backgroundColor()
5708
5787
  },paddingLeft:1,paddingRight:1,get paddingTop() {return error()?1:0
5709
5788
  },get paddingBottom() {return error()?1:0
5710
5789
  },get marginTop() {return props.separator?1:0
5711
5790
  },get onMouseOver() {return row.onMouseOver
5712
5791
  },get onMouseOut() {return row.onMouseOut
5713
- },onMouseDown:(event)=>row.activate(event),get content() {return (()=>{var _el$=_$createElement40("text")
5714
- _$setProp37(_el$,"flexGrow",1)
5715
- _$setProp37(_el$,"wrapMode","none")
5716
- _$insert34(_el$,()=>props.item.name)
5717
- _$effect37((_$p)=>_$setProp37(_el$,"fg",row.focused()||disabled()?row.foregroundColor():props.item.status==="connected"?theme().text:theme().textMuted,_$p))
5792
+ },onMouseDown:(event)=>row.activate(event),get content() {return (()=>{var _el$=_$createElement41("text")
5793
+ _$setProp38(_el$,"flexGrow",1)
5794
+ _$setProp38(_el$,"wrapMode","none")
5795
+ _$insert35(_el$,()=>props.item.name)
5796
+ _$effect38((_$p)=>_$setProp38(_el$,"fg",row.focused()||disabled()?row.foregroundColor():props.item.status==="connected"?theme().text:theme().textMuted,_$p))
5718
5797
  return _el$
5719
5798
  })()
5720
- },get trailing() {return (()=>{var _el$2=_$createElement40("box"),_el$3=_$createElement40("text"),_el$4=_$createElement40("b")
5721
- _$insertNode30(_el$2,_el$3)
5722
- _$setProp37(_el$2,"flexDirection","row")
5723
- _$setProp37(_el$2,"flexShrink",0)
5724
- _$setProp37(_el$2,"gap",1)
5725
- _$insertNode30(_el$3,_el$4)
5726
- _$insert34(_el$4,()=>icons.icon(mcpToggle(props.item.status,busy())))
5727
- _$insert34(_el$2,(()=>{var _c$=_$memo28(()=>!!props.item.error)
5728
- return ()=>_c$()?_$createComponent43(IconControl,{ref:(node)=>info.ref(node),get id() {return `${id()}.info`
5799
+ },get trailing() {return (()=>{var _el$2=_$createElement41("box"),_el$3=_$createElement41("text"),_el$4=_$createElement41("b")
5800
+ _$insertNode32(_el$2,_el$3)
5801
+ _$setProp38(_el$2,"flexDirection","row")
5802
+ _$setProp38(_el$2,"flexShrink",0)
5803
+ _$setProp38(_el$2,"gap",1)
5804
+ _$insertNode32(_el$3,_el$4)
5805
+ _$insert35(_el$4,()=>icons.icon(mcpToggle(props.item.status,busy())))
5806
+ _$insert35(_el$2,(()=>{var _c$=_$memo29(()=>!!props.item.error)
5807
+ return ()=>_c$()?_$createComponent46(IconControl,{ref:(node)=>info.ref(node),get id() {return `${id()}.info`
5729
5808
  },get icon() {return icons.icon("info")
5730
5809
  },get backgroundColor() {return nestedBackground(info.backgroundColor())
5731
5810
  },get foregroundColor() {return info.foregroundColor()
@@ -5734,18 +5813,18 @@ return ()=>_c$()?_$createComponent43(IconControl,{ref:(node)=>info.ref(node),get
5734
5813
  },onMouseUp:(event)=>info.activate(event)
5735
5814
  }):null
5736
5815
  })(),null)
5737
- _$insert34(_el$2,_$createComponent43(BookmarkControl,{ref:(node)=>bookmark.ref(node),get id() {return `${id()}.favorite`
5816
+ _$insert35(_el$2,_$createComponent46(BookmarkControl,{ref:(node)=>bookmark.ref(node),get id() {return `${id()}.favorite`
5738
5817
  },get bookmarked() {return props.favorite
5739
5818
  },get backgroundColor() {return nestedBackground(bookmark.backgroundColor())
5740
- },get foregroundColor() {return _$memo28(()=>!!row.focused())()?row.foregroundColor():bookmark.foregroundColor()
5819
+ },get foregroundColor() {return _$memo29(()=>!!row.focused())()?row.foregroundColor():bookmark.foregroundColor()
5741
5820
  },get onMouseOver() {return bookmark.onMouseOver
5742
5821
  },get onMouseOut() {return bookmark.onMouseOut
5743
5822
  },onMouseUp:(event)=>bookmark.activate(event)
5744
5823
  }),null)
5745
- _$effect37((_$p)=>_$setProp37(_el$3,"fg",row.focused()?row.foregroundColor():mcpColor(props.api,props.item.status),_$p))
5824
+ _$effect38((_$p)=>_$setProp38(_el$3,"fg",row.focused()?row.foregroundColor():mcpColor(props.api,props.item.status),_$p))
5746
5825
  return _el$2
5747
5826
  })()
5748
- },get details() {return _$createComponent43(RequestErrorRow,{get api() {return props.api
5827
+ },get details() {return _$createComponent46(RequestErrorRow,{get api() {return props.api
5749
5828
  },get interaction() {return props.interaction
5750
5829
  },get id() {return `${id()}.retry`
5751
5830
  },get position() {return {...props.position,row:props.position.row + 1,column:0
@@ -5757,14 +5836,14 @@ return _el$2
5757
5836
  }
5758
5837
  })
5759
5838
  }
5760
- import {createComponent as _$createComponent44} from "@opentui/solid"
5761
- import {use as _$use9} from "@opentui/solid"
5762
- import {effect as _$effect38} from "@opentui/solid"
5763
- import {insert as _$insert35} from "@opentui/solid"
5764
- import {setProp as _$setProp38} from "@opentui/solid"
5765
- import {createElement as _$createElement41} from "@opentui/solid"
5766
- import {memo as _$memo29} from "@opentui/solid"
5767
- import {Show as Show12,createSignal as createSignal22,onCleanup as onCleanup14} from "solid-js"
5839
+
5840
+
5841
+
5842
+
5843
+
5844
+
5845
+
5846
+
5768
5847
  function SectionFilter(props) {const icons=useIcons()
5769
5848
  let input
5770
5849
  let unregisterInput
@@ -5791,78 +5870,78 @@ else
5791
5870
  input?.blur()
5792
5871
  }
5793
5872
  onCleanup14(()=>unregisterInput?.())
5794
- return _$createComponent44(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.id
5795
- },flexDirection:"row",gap:1,marginTop:1,marginBottom:1,paddingLeft:1,paddingRight:1,get backgroundColor() {return _$memo29(()=>!!highlighted())()?theme().primary:item.backgroundColor()
5873
+ return _$createComponent47(SelectionBox,{ref:(node)=>item.ref(node),get id() {return props.id
5874
+ },flexDirection:"row",gap:1,marginTop:1,marginBottom:1,paddingLeft:1,paddingRight:1,get backgroundColor() {return _$memo30(()=>!!highlighted())()?theme().primary:item.backgroundColor()
5796
5875
  },get onMouseOver() {return item.onMouseOver
5797
5876
  },get onMouseOut() {return item.onMouseOut
5798
- },onMouseDown:(event)=>item.activate(event),get children() {return [(()=>{var _el$=_$createElement41("text")
5799
- _$setProp38(_el$,"flexShrink",0)
5800
- _$insert35(_el$,()=>icons.icon("search"))
5801
- _$effect38((_$p)=>_$setProp38(_el$,"fg",mutedColor(),_$p))
5877
+ },onMouseDown:(event)=>item.activate(event),get children() {return [(()=>{var _el$=_$createElement42("text")
5878
+ _$setProp39(_el$,"flexShrink",0)
5879
+ _$insert36(_el$,()=>icons.icon("search"))
5880
+ _$effect39((_$p)=>_$setProp39(_el$,"fg",mutedColor(),_$p))
5802
5881
  return _el$
5803
- })(),(()=>{var _el$2=_$createElement41("input")
5882
+ })(),(()=>{var _el$2=_$createElement42("input")
5804
5883
  _$use9((node)=>{input=node
5805
5884
  unregisterInput?.()
5806
5885
  unregisterInput=props.interaction?.registerFilter(node,props.id??`filter.${props.placeholder}`,()=>leaveInput())
5807
5886
  },_el$2)
5808
- _$setProp38(_el$2,"flexGrow",1)
5809
- _$setProp38(_el$2,"backgroundColor","transparent")
5810
- _$setProp38(_el$2,"focusedBackgroundColor","transparent")
5811
- _$setProp38(_el$2,"on:focused",()=>setInputFocused(true))
5812
- _$setProp38(_el$2,"on:blurred",()=>setInputFocused(false))
5813
- _$setProp38(_el$2,"onSubmit",()=>leaveInput())
5814
- _$setProp38(_el$2,"onKeyDown",(event)=>{if (event.name!=="escape")
5887
+ _$setProp39(_el$2,"flexGrow",1)
5888
+ _$setProp39(_el$2,"backgroundColor","transparent")
5889
+ _$setProp39(_el$2,"focusedBackgroundColor","transparent")
5890
+ _$setProp39(_el$2,"on:focused",()=>setInputFocused(true))
5891
+ _$setProp39(_el$2,"on:blurred",()=>setInputFocused(false))
5892
+ _$setProp39(_el$2,"onSubmit",()=>leaveInput())
5893
+ _$setProp39(_el$2,"onKeyDown",(event)=>{if (event.name!=="escape")
5815
5894
  return
5816
5895
  leaveInput(event)
5817
5896
  })
5818
- _$effect38((_p$)=>{var {query:_v$,placeholder:_v$2}=props,_v$3=mutedColor(),_v$4=textColor(),_v$5=textColor(),_v$6=highlighted()?theme().selectedListItemText:theme().accent,_v$7=inputFocused(),_v$8=props.onInput
5819
- _v$!==_p$.e&&(_p$.e=_$setProp38(_el$2,"value",_v$,_p$.e))
5820
- _v$2!==_p$.t&&(_p$.t=_$setProp38(_el$2,"placeholder",_v$2,_p$.t))
5821
- _v$3!==_p$.a&&(_p$.a=_$setProp38(_el$2,"placeholderColor",_v$3,_p$.a))
5822
- _v$4!==_p$.o&&(_p$.o=_$setProp38(_el$2,"textColor",_v$4,_p$.o))
5823
- _v$5!==_p$.i&&(_p$.i=_$setProp38(_el$2,"focusedTextColor",_v$5,_p$.i))
5824
- _v$6!==_p$.n&&(_p$.n=_$setProp38(_el$2,"cursorColor",_v$6,_p$.n))
5825
- _v$7!==_p$.s&&(_p$.s=_$setProp38(_el$2,"focused",_v$7,_p$.s))
5826
- _v$8!==_p$.h&&(_p$.h=_$setProp38(_el$2,"onInput",_v$8,_p$.h))
5897
+ _$effect39((_p$)=>{var {query:_v$,placeholder:_v$2}=props,_v$3=mutedColor(),_v$4=textColor(),_v$5=textColor(),_v$6=highlighted()?theme().selectedListItemText:theme().accent,_v$7=inputFocused(),_v$8=props.onInput
5898
+ _v$!==_p$.e&&(_p$.e=_$setProp39(_el$2,"value",_v$,_p$.e))
5899
+ _v$2!==_p$.t&&(_p$.t=_$setProp39(_el$2,"placeholder",_v$2,_p$.t))
5900
+ _v$3!==_p$.a&&(_p$.a=_$setProp39(_el$2,"placeholderColor",_v$3,_p$.a))
5901
+ _v$4!==_p$.o&&(_p$.o=_$setProp39(_el$2,"textColor",_v$4,_p$.o))
5902
+ _v$5!==_p$.i&&(_p$.i=_$setProp39(_el$2,"focusedTextColor",_v$5,_p$.i))
5903
+ _v$6!==_p$.n&&(_p$.n=_$setProp39(_el$2,"cursorColor",_v$6,_p$.n))
5904
+ _v$7!==_p$.s&&(_p$.s=_$setProp39(_el$2,"focused",_v$7,_p$.s))
5905
+ _v$8!==_p$.h&&(_p$.h=_$setProp39(_el$2,"onInput",_v$8,_p$.h))
5827
5906
  return _p$
5828
5907
  },{e:undefined,t:undefined,a:undefined,o:undefined,i:undefined,n:undefined,s:undefined,h:undefined
5829
5908
  })
5830
5909
  return _el$2
5831
- })(),_$createComponent44(Show12,{get when() {return props.query
5832
- },get children() {var _el$3=_$createElement41("text")
5833
- _$setProp38(_el$3,"flexShrink",0)
5834
- _$setProp38(_el$3,"onMouseDown",()=>props.onInput(""))
5835
- _$insert35(_el$3,()=>icons.icon("close"))
5836
- _$effect38((_$p)=>_$setProp38(_el$3,"fg",mutedColor(),_$p))
5910
+ })(),_$createComponent47(Show12,{get when() {return props.query
5911
+ },get children() {var _el$3=_$createElement42("text")
5912
+ _$setProp39(_el$3,"flexShrink",0)
5913
+ _$setProp39(_el$3,"onMouseDown",()=>props.onInput(""))
5914
+ _$insert36(_el$3,()=>icons.icon("close"))
5915
+ _$effect39((_$p)=>_$setProp39(_el$3,"fg",mutedColor(),_$p))
5837
5916
  return _el$3
5838
5917
  }
5839
5918
  })]
5840
5919
  }
5841
5920
  })
5842
5921
  }
5843
- import {setProp as _$setProp39} from "@opentui/solid"
5844
- import {effect as _$effect39} from "@opentui/solid"
5845
- import {insert as _$insert36} from "@opentui/solid"
5846
- import {createElement as _$createElement42} from "@opentui/solid"
5847
- function SidebarRowList(props) {return (()=>{var _el$=_$createElement42("box")
5848
- _$insert36(_el$,()=>props.children)
5849
- _$effect39((_$p)=>_$setProp39(_el$,"gap",props.density==="comfortable"?1:0,_$p))
5922
+
5923
+
5924
+
5925
+
5926
+ function SidebarRowList(props) {return (()=>{var _el$=_$createElement43("box")
5927
+ _$insert37(_el$,()=>props.children)
5928
+ _$effect40((_$p)=>_$setProp40(_el$,"gap",props.density==="comfortable"?1:0,_$p))
5850
5929
  return _el$
5851
5930
  })()
5852
5931
  }
5853
5932
  function McpSectionContent(props) {const icons=useIcons()
5854
5933
  const model=props.model
5855
- return _$createComponent45(SectionRequestBody,{get api() {return props.api
5934
+ return _$createComponent48(SectionRequestBody,{get api() {return props.api
5856
5935
  },get interaction() {return props.interaction
5857
5936
  },id:`${PLUGIN_ID}.retry.mcp`,get position() {return {section:props.navigationSection,row:1,column:0
5858
5937
  }
5859
5938
  },get state() {return model.state()
5860
5939
  },get hasItems() {return model.list().length>0
5861
- },empty:"No MCP servers",loading:"Loading MCP servers\u2026",onRetry:()=>void props.controller.retry(model.target()),get children() {var _el$=_$createElement43("box"),_el$2=_$createElement43("box")
5862
- _$insertNode31(_el$,_el$2)
5863
- _$setProp40(_el$2,"flexDirection","row")
5864
- _$setProp40(_el$2,"gap",1)
5865
- _$insert37(_el$2,_$createComponent45(McpBulkAction,{get api() {return props.api
5940
+ },empty:"No MCP servers",loading:"Loading MCP servers\u2026",onRetry:()=>void props.controller.retry(model.target()),get children() {var _el$=_$createElement44("box"),_el$2=_$createElement44("box")
5941
+ _$insertNode33(_el$,_el$2)
5942
+ _$setProp41(_el$2,"flexDirection","row")
5943
+ _$setProp41(_el$2,"gap",1)
5944
+ _$insert38(_el$2,_$createComponent48(McpBulkAction,{get api() {return props.api
5866
5945
  },get interaction() {return props.interaction
5867
5946
  },id:`${PLUGIN_ID}.mcp.connect-all`,get position() {return {section:props.navigationSection,row:2,column:0
5868
5947
  }
@@ -5870,7 +5949,7 @@ _$insert37(_el$2,_$createComponent45(McpBulkAction,{get api() {return props.api
5870
5949
  },get disabled() {return model.bulkRunning()||model.mutationRunning()||model.connectable()===0
5871
5950
  },onActivate:()=>void props.controller.connectAll(model.target())
5872
5951
  }),null)
5873
- _$insert37(_el$2,_$createComponent45(McpBulkAction,{get api() {return props.api
5952
+ _$insert38(_el$2,_$createComponent48(McpBulkAction,{get api() {return props.api
5874
5953
  },get interaction() {return props.interaction
5875
5954
  },id:`${PLUGIN_ID}.mcp.disconnect-all`,get position() {return {section:props.navigationSection,row:2,column:1
5876
5955
  }
@@ -5878,22 +5957,22 @@ _$insert37(_el$2,_$createComponent45(McpBulkAction,{get api() {return props.api
5878
5957
  },get disabled() {return model.bulkRunning()||model.mutationRunning()||model.disconnectable()===0
5879
5958
  },onActivate:()=>void props.controller.disconnectAll(model.target())
5880
5959
  }),null)
5881
- _$insert37(_el$,_$createComponent45(Show13,{get when() {return model.bulkRunning()
5882
- },get children() {var _el$3=_$createElement43("text"),_el$4=_$createTextNode27(` `),_el$5=_$createTextNode27(`/`),_el$6=_$createTextNode27(`\u2026`)
5883
- _$insertNode31(_el$3,_el$4)
5884
- _$insertNode31(_el$3,_el$5)
5885
- _$insertNode31(_el$3,_el$6)
5886
- _$insert37(_el$3,(()=>{var _c$=_$memo30(()=>model.bulk().action==="connect")
5887
- return ()=>_c$()?"Connecting":_$memo30(()=>model.bulk().action==="disconnect")()?"Disconnecting":`Applying ${model.bulk().preset}`
5960
+ _$insert38(_el$,_$createComponent48(Show13,{get when() {return model.bulkRunning()
5961
+ },get children() {var _el$3=_$createElement44("text"),_el$4=_$createTextNode29(` `),_el$5=_$createTextNode29(`/`),_el$6=_$createTextNode29(`\u2026`)
5962
+ _$insertNode33(_el$3,_el$4)
5963
+ _$insertNode33(_el$3,_el$5)
5964
+ _$insertNode33(_el$3,_el$6)
5965
+ _$insert38(_el$3,(()=>{var _c$=_$memo31(()=>model.bulk().action==="connect")
5966
+ return ()=>_c$()?"Connecting":_$memo31(()=>model.bulk().action==="disconnect")()?"Disconnecting":`Applying ${model.bulk().preset}`
5888
5967
  })(),_el$4)
5889
- _$insert37(_el$3,()=>model.bulk().completed,_el$5)
5890
- _$insert37(_el$3,()=>model.bulk().total,_el$6)
5891
- _$effect40((_$p)=>_$setProp40(_el$3,"fg",props.api.theme.current.textMuted,_$p))
5968
+ _$insert38(_el$3,()=>model.bulk().completed,_el$5)
5969
+ _$insert38(_el$3,()=>model.bulk().total,_el$6)
5970
+ _$effect41((_$p)=>_$setProp41(_el$3,"fg",props.api.theme.current.textMuted,_$p))
5892
5971
  return _el$3
5893
5972
  }
5894
5973
  }),null)
5895
- _$insert37(_el$,_$createComponent45(Show13,{get when() {return model.bulk().status==="error"
5896
- },get children() {return _$createComponent45(McpBulkAction,{get api() {return props.api
5974
+ _$insert38(_el$,_$createComponent48(Show13,{get when() {return model.bulk().status==="error"
5975
+ },get children() {return _$createComponent48(McpBulkAction,{get api() {return props.api
5897
5976
  },get interaction() {return props.interaction
5898
5977
  },id:`${PLUGIN_ID}.mcp.retry-all`,get position() {return {section:props.navigationSection,row:3,column:0
5899
5978
  }
@@ -5902,7 +5981,7 @@ _$insert37(_el$,_$createComponent45(Show13,{get when() {return model.bulk().stat
5902
5981
  })
5903
5982
  }
5904
5983
  }),null)
5905
- _$insert37(_el$,_$createComponent45(SectionFilter,{get api() {return props.api
5984
+ _$insert38(_el$,_$createComponent48(SectionFilter,{get api() {return props.api
5906
5985
  },get interaction() {return props.interaction
5907
5986
  },id:`${PLUGIN_ID}.filter.mcp`,get position() {return {section:props.navigationSection,row:4,column:0
5908
5987
  }
@@ -5910,29 +5989,29 @@ _$insert37(_el$,_$createComponent45(SectionFilter,{get api() {return props.api
5910
5989
  },placeholder:"Filter MCP...",get onInput() {return props.onQuery
5911
5990
  }
5912
5991
  }),null)
5913
- _$insert37(_el$,_$createComponent45(Show13,{get when() {return model.filtered().length>0
5914
- },get fallback() {return (()=>{var _el$7=_$createElement43("text")
5915
- _$insertNode31(_el$7,_$createTextNode27(`No matching MCP servers`))
5916
- _$effect40((_$p)=>_$setProp40(_el$7,"fg",props.api.theme.current.textMuted,_$p))
5992
+ _$insert38(_el$,_$createComponent48(Show13,{get when() {return model.filtered().length>0
5993
+ },get fallback() {return (()=>{var _el$7=_$createElement44("text")
5994
+ _$insertNode33(_el$7,_$createTextNode29(`No matching MCP servers`))
5995
+ _$effect41((_$p)=>_$setProp41(_el$7,"fg",props.api.theme.current.textMuted,_$p))
5917
5996
  return _el$7
5918
5997
  })()
5919
- },get children() {return [_$createComponent45(SidebarRowList,{get density() {return props.preferences.rowDensity?.()??"compact"
5920
- },get children() {return _$createComponent45(For12,{get each() {return model.visibility.visible()
5921
- },children:(item,index)=>[_$createComponent45(Show13,{get when() {return _$memo30(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index() - 1]?.bucket!==item.bucket)
5922
- },get children() {var _el$9=_$createElement43("text")
5923
- _$setProp40(_el$9,"height",1)
5924
- _$setProp40(_el$9,"wrapMode","none")
5925
- _$setProp40(_el$9,"truncate",true)
5926
- _$insert37(_el$9,()=>item.bucket)
5927
- _$effect40((_p$)=>{var _v$=index()>0?1:0,_v$2=props.api.theme.current.textMuted
5928
- _v$!==_p$.e&&(_p$.e=_$setProp40(_el$9,"marginTop",_v$,_p$.e))
5929
- _v$2!==_p$.t&&(_p$.t=_$setProp40(_el$9,"fg",_v$2,_p$.t))
5998
+ },get children() {return [_$createComponent48(SidebarRowList,{get density() {return props.preferences.rowDensity?.()??"compact"
5999
+ },get children() {return _$createComponent48(For12,{get each() {return model.visibility.visible()
6000
+ },children:(item,index)=>[_$createComponent48(Show13,{get when() {return _$memo31(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index() - 1]?.bucket!==item.bucket)
6001
+ },get children() {var _el$9=_$createElement44("text")
6002
+ _$setProp41(_el$9,"height",1)
6003
+ _$setProp41(_el$9,"wrapMode","none")
6004
+ _$setProp41(_el$9,"truncate",true)
6005
+ _$insert38(_el$9,()=>item.bucket)
6006
+ _$effect41((_p$)=>{var _v$=index()>0?1:0,_v$2=props.api.theme.current.textMuted
6007
+ _v$!==_p$.e&&(_p$.e=_$setProp41(_el$9,"marginTop",_v$,_p$.e))
6008
+ _v$2!==_p$.t&&(_p$.t=_$setProp41(_el$9,"fg",_v$2,_p$.t))
5930
6009
  return _p$
5931
6010
  },{e:undefined,t:undefined
5932
6011
  })
5933
6012
  return _el$9
5934
6013
  }
5935
- }),_$createComponent45(McpRow,{get api() {return props.api
6014
+ }),_$createComponent48(McpRow,{get api() {return props.api
5936
6015
  },get interaction() {return props.interaction
5937
6016
  },item,get position() {return {section:props.navigationSection,row:10 + index() * 2,column:0
5938
6017
  }
@@ -5940,12 +6019,12 @@ return _el$9
5940
6019
  },get disabled() {return model.bulkRunning()
5941
6020
  },onToggle:()=>void props.controller.toggle(item.name).catch(()=>{}),onRetry:()=>void props.controller.retryServer(item.name,model.target())?.catch(()=>{}),get favorite() {return model.favorites().has(item.name)
5942
6021
  },get favoriteDisabled() {return props.preferences.ready?.()===false
5943
- },get separator() {return _$memo30(()=>!!(!model.grouped()&&index()>0&&model.favorites().has(model.visibility.visible()[index() - 1].name)))()&&!model.favorites().has(item.name)
6022
+ },get separator() {return _$memo31(()=>!!(!model.grouped()&&index()>0&&model.favorites().has(model.visibility.visible()[index() - 1].name)))()&&!model.favorites().has(item.name)
5944
6023
  },onToggleFavorite:()=>props.preferences.toggleFavoriteMcpServer?.(item.name)
5945
6024
  })]
5946
6025
  })
5947
6026
  }
5948
- }),_$createComponent45(ListVisibilityControl,{get api() {return props.api
6027
+ }),_$createComponent48(ListVisibilityControl,{get api() {return props.api
5949
6028
  },get interaction() {return props.interaction
5950
6029
  },section:"mcp",get navigationSection() {return props.navigationSection
5951
6030
  },get row() {return 10 + model.visibility.visible().length * 2
@@ -5954,7 +6033,7 @@ return _el$9
5954
6033
  })]
5955
6034
  }
5956
6035
  }),null)
5957
- _$effect40((_$p)=>_$setProp40(_el$2,"paddingBottom",model.bulkRunning()||model.bulk().status==="error"?1:0,_$p))
6036
+ _$effect41((_$p)=>_$setProp41(_el$2,"paddingBottom",model.bulkRunning()||model.bulk().status==="error"?1:0,_$p))
5958
6037
  return _el$
5959
6038
  }
5960
6039
  })
@@ -5964,13 +6043,13 @@ const [query,setQuery]=createSignal23("")
5964
6043
  const model=createMcpSectionModel(props,query)
5965
6044
  const navigationSection=()=>props.navigationSection??6
5966
6045
  const summary=createMemo12(()=>`${model.active()}/${model.list().length}${model.errors() ? ` \xB7 ${model.errors()} ${icons.icon("error")}` : ""}`)
5967
- return _$createComponent46(SectionWithHeaderAction,{get api() {return props.api
6046
+ return _$createComponent49(SectionWithHeaderAction,{get api() {return props.api
5968
6047
  },get interaction() {return props.interaction
5969
6048
  },sectionId:`${PLUGIN_ID}.section.mcp`,get navigationSection() {return navigationSection()
5970
6049
  },title:"MCP",section:"mcp",get summary() {return summary()
5971
6050
  },headerAction:{id:`${PLUGIN_ID}.mcp.presets`,label:()=>`${icons.icon("presets")} ${model.presetName() ?? "Preset"}`,disabled:()=>model.bulkRunning()||model.mutationRunning()||props.preferences.ready?.()===false,onActivate:()=>openMcpPresets(props.api,props.controller,props.preferences)
5972
6051
  },get open() {return props.preferences.expanded().mcp
5973
- },onToggle:()=>props.preferences.toggleSectionExpanded("mcp"),get children() {return _$createComponent46(McpSectionContent,{get api() {return props.api
6052
+ },onToggle:()=>props.preferences.toggleSectionExpanded("mcp"),get children() {return _$createComponent49(McpSectionContent,{get api() {return props.api
5974
6053
  },get interaction() {return props.interaction
5975
6054
  },get controller() {return props.controller
5976
6055
  },get preferences() {return props.preferences
@@ -5981,21 +6060,21 @@ return _$createComponent46(SectionWithHeaderAction,{get api() {return props.api
5981
6060
  }
5982
6061
  })
5983
6062
  }
5984
- import {createComponent as _$createComponent48} from "@opentui/solid"
5985
- import {setProp as _$setProp42} from "@opentui/solid"
5986
- import {effect as _$effect42} from "@opentui/solid"
5987
- import {createTextNode as _$createTextNode28} from "@opentui/solid"
5988
- import {insertNode as _$insertNode32} from "@opentui/solid"
5989
- import {createElement as _$createElement45} from "@opentui/solid"
5990
- import {memo as _$memo32} from "@opentui/solid"
5991
- import {For as For13,Show as Show15,createMemo as createMemo14} from "solid-js"
5992
- import {effect as _$effect41} from "@opentui/solid"
5993
- import {insert as _$insert38} from "@opentui/solid"
5994
- import {setProp as _$setProp41} from "@opentui/solid"
5995
- import {createElement as _$createElement44} from "@opentui/solid"
5996
- import {createComponent as _$createComponent47} from "@opentui/solid"
5997
- import {memo as _$memo31} from "@opentui/solid"
5998
- import {Show as Show14,createMemo as createMemo13} from "solid-js"
6063
+
6064
+
6065
+
6066
+
6067
+
6068
+
6069
+
6070
+
6071
+
6072
+
6073
+
6074
+
6075
+
6076
+
6077
+
5999
6078
  function QuickActionRow(props) {const icons=useIcons()
6000
6079
  const theme=()=>props.api.theme.current
6001
6080
  const shortcut=createMemo13(()=>{const bindings=props.api.keymap.getCommandBindings({visibility:"registered",commands:[props.action.command]
@@ -6019,41 +6098,41 @@ queueMicrotask(()=>props.interaction?.select(`${id()}.favorite`))
6019
6098
  const controlBackground=()=>{const background=favorite.backgroundColor()
6020
6099
  return background==="transparent"?row.backgroundColor():background
6021
6100
  }
6022
- return _$createComponent47(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
6101
+ return _$createComponent50(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
6023
6102
  },paddingLeft:1,paddingRight:1,get marginTop() {return props.separator?1:0
6024
6103
  },get backgroundColor() {return row.backgroundColor()
6025
6104
  },get onMouseOver() {return row.onMouseOver
6026
6105
  },get onMouseOut() {return row.onMouseOut
6027
- },onMouseUp:(event)=>row.activate(event),get leading() {return (()=>{var _el$=_$createElement44("text")
6028
- _$setProp41(_el$,"flexShrink",0)
6029
- _$insert38(_el$,()=>icons.action(props.action.command))
6030
- _$effect41((_$p)=>_$setProp41(_el$,"fg",props.disabled?theme().textMuted:row.focused()?row.foregroundColor():theme().accent,_$p))
6106
+ },onMouseUp:(event)=>row.activate(event),get leading() {return (()=>{var _el$=_$createElement45("text")
6107
+ _$setProp42(_el$,"flexShrink",0)
6108
+ _$insert39(_el$,()=>icons.action(props.action.command))
6109
+ _$effect42((_$p)=>_$setProp42(_el$,"fg",props.disabled?theme().textMuted:row.focused()?row.foregroundColor():theme().accent,_$p))
6031
6110
  return _el$
6032
6111
  })()
6033
- },get content() {return (()=>{var _el$2=_$createElement44("text")
6034
- _$setProp41(_el$2,"flexGrow",1)
6035
- _$setProp41(_el$2,"wrapMode","none")
6036
- _$setProp41(_el$2,"truncate",true)
6037
- _$insert38(_el$2,()=>props.action.label,null)
6038
- _$insert38(_el$2,(()=>{var _c$=_$memo31(()=>!!props.disabled)
6112
+ },get content() {return (()=>{var _el$2=_$createElement45("text")
6113
+ _$setProp42(_el$2,"flexGrow",1)
6114
+ _$setProp42(_el$2,"wrapMode","none")
6115
+ _$setProp42(_el$2,"truncate",true)
6116
+ _$insert39(_el$2,()=>props.action.label,null)
6117
+ _$insert39(_el$2,(()=>{var _c$=_$memo32(()=>!!props.disabled)
6039
6118
  return ()=>_c$()?` \xB7 ${props.disabled}`:""
6040
6119
  })(),null)
6041
- _$effect41((_$p)=>_$setProp41(_el$2,"fg",row.foregroundColor(),_$p))
6120
+ _$effect42((_$p)=>_$setProp42(_el$2,"fg",row.foregroundColor(),_$p))
6042
6121
  return _el$2
6043
6122
  })()
6044
- },get metadata() {return _$createComponent47(Show14,{get when() {return shortcut()
6045
- },children:(value)=>(()=>{var _el$3=_$createElement44("text")
6046
- _$setProp41(_el$3,"flexShrink",0)
6047
- _$setProp41(_el$3,"wrapMode","none")
6048
- _$insert38(_el$3,value)
6049
- _$effect41((_$p)=>_$setProp41(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
6123
+ },get metadata() {return _$createComponent50(Show14,{get when() {return shortcut()
6124
+ },children:(value)=>(()=>{var _el$3=_$createElement45("text")
6125
+ _$setProp42(_el$3,"flexShrink",0)
6126
+ _$setProp42(_el$3,"wrapMode","none")
6127
+ _$insert39(_el$3,value)
6128
+ _$effect42((_$p)=>_$setProp42(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
6050
6129
  return _el$3
6051
6130
  })()
6052
6131
  })
6053
- },get trailing() {return _$createComponent47(BookmarkControl,{ref:(node)=>favorite.ref(node),get id() {return `${id()}.favorite`
6132
+ },get trailing() {return _$createComponent50(BookmarkControl,{ref:(node)=>favorite.ref(node),get id() {return `${id()}.favorite`
6054
6133
  },get bookmarked() {return props.favorite
6055
6134
  },get backgroundColor() {return controlBackground()
6056
- },get foregroundColor() {return _$memo31(()=>!!row.focused())()?row.foregroundColor():favorite.foregroundColor()
6135
+ },get foregroundColor() {return _$memo32(()=>!!row.focused())()?row.foregroundColor():favorite.foregroundColor()
6057
6136
  },get onMouseOver() {return favorite.onMouseOver
6058
6137
  },get onMouseOut() {return favorite.onMouseOut
6059
6138
  },onMouseUp:(event)=>favorite.activate(event)
@@ -6071,32 +6150,32 @@ return action&&props.preferences.quickActionVisible?.(id)!==false?[{...action,la
6071
6150
  const visibility=createListVisibility({items:actions,limit:()=>props.preferences.sectionItemLimit?.("quick_actions")??0,resetKey:()=>currentLocation(props.api).key
6072
6151
  })
6073
6152
  const navigationSection=()=>props.navigationSection??4
6074
- return _$createComponent48(Section,{get api() {return props.api
6153
+ return _$createComponent51(Section,{get api() {return props.api
6075
6154
  },get interaction() {return props.interaction
6076
6155
  },sectionId:`${PLUGIN_ID}.section.quick_actions`,get navigationSection() {return navigationSection()
6077
6156
  },title:"QUICK ACTIONS",section:"quick_actions",get summary() {return String(actions().length)
6078
6157
  },get open() {return props.preferences.expanded().quick_actions
6079
- },onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children() {return [_$createComponent48(SidebarRowList,{get density() {return props.preferences.rowDensity?.()??"compact"
6080
- },get children() {return [_$createComponent48(Show15,{get when() {return actions().length===0
6081
- },get children() {var _el$=_$createElement45("text")
6082
- _$insertNode32(_el$,_$createTextNode28(`No quick actions selected`))
6083
- _$effect42((_$p)=>_$setProp42(_el$,"fg",props.api.theme.current.textMuted,_$p))
6158
+ },onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children() {return [_$createComponent51(SidebarRowList,{get density() {return props.preferences.rowDensity?.()??"compact"
6159
+ },get children() {return [_$createComponent51(Show15,{get when() {return actions().length===0
6160
+ },get children() {var _el$=_$createElement46("text")
6161
+ _$insertNode34(_el$,_$createTextNode30(`No quick actions selected`))
6162
+ _$effect43((_$p)=>_$setProp43(_el$,"fg",props.api.theme.current.textMuted,_$p))
6084
6163
  return _el$
6085
6164
  }
6086
- }),_$createComponent48(For13,{get each() {return visibility.visible()
6087
- },children:(action,index)=>_$createComponent48(QuickActionRow,{get api() {return props.api
6165
+ }),_$createComponent51(For13,{get each() {return visibility.visible()
6166
+ },children:(action,index)=>_$createComponent51(QuickActionRow,{get api() {return props.api
6088
6167
  },get interaction() {return props.interaction
6089
6168
  },action,get disabled() {return action.disabled
6090
6169
  },get favorite() {return props.preferences.favoriteQuickActions?.().has(action.command)??false
6091
- },get favoriteDisabled() {return _$memo32(()=>!!props.preferences.ready)()?!props.preferences.ready():false
6092
- },get separator() {return _$memo32(()=>!!(index()>0&&(props.preferences.favoriteQuickActions?.().has(visibility.visible()[index() - 1].command)??false)))()&&!(props.preferences.favoriteQuickActions?.().has(action.command)??false)
6170
+ },get favoriteDisabled() {return _$memo33(()=>!!props.preferences.ready)()?!props.preferences.ready():false
6171
+ },get separator() {return _$memo33(()=>!!(index()>0&&(props.preferences.favoriteQuickActions?.().has(visibility.visible()[index() - 1].command)??false)))()&&!(props.preferences.favoriteQuickActions?.().has(action.command)??false)
6093
6172
  },onToggleFavorite:()=>props.preferences.toggleFavoriteQuickAction?.(action.command),get position() {return {section:navigationSection(),row:10 + index(),column:0
6094
6173
  }
6095
6174
  }
6096
6175
  })
6097
6176
  })]
6098
6177
  }
6099
- }),_$createComponent48(ListVisibilityControl,{get api() {return props.api
6178
+ }),_$createComponent51(ListVisibilityControl,{get api() {return props.api
6100
6179
  },get interaction() {return props.interaction
6101
6180
  },section:"quick_actions",get navigationSection() {return navigationSection()
6102
6181
  },get row() {return 10 + visibility.visible().length
@@ -6105,36 +6184,36 @@ return _el$
6105
6184
  }
6106
6185
  })
6107
6186
  }
6108
- import {insert as _$insert39} from "@opentui/solid"
6109
- import {spread as _$spread2} from "@opentui/solid"
6110
- import {mergeProps as _$mergeProps8} from "@opentui/solid"
6111
- import {createElement as _$createElement46} from "@opentui/solid"
6112
- import {RGBA as RGBA3} from "@opentui/core"
6187
+
6188
+
6189
+
6190
+
6191
+
6113
6192
  function SectionBoundary(props) {const dividerColor=()=>{const {backgroundPanel,borderSubtle
6114
6193
  }=props.api.theme.current
6115
6194
  return RGBA3.fromValues(backgroundPanel.r + (borderSubtle.r - backgroundPanel.r) * 0.45,backgroundPanel.g + (borderSubtle.g - backgroundPanel.g) * 0.45,backgroundPanel.b + (borderSubtle.b - backgroundPanel.b) * 0.45)
6116
6195
  }
6117
- return (()=>{var _el$=_$createElement46("box")
6196
+ return (()=>{var _el$=_$createElement47("box")
6118
6197
  _$spread2(_el$,_$mergeProps8(()=>props.divided?{border:["bottom"],borderColor:dividerColor(),paddingBottom:1
6119
6198
  }:{}),true)
6120
- _$insert39(_el$,()=>props.children)
6199
+ _$insert40(_el$,()=>props.children)
6121
6200
  return _el$
6122
6201
  })()
6123
6202
  }
6124
- import {createComponent as _$createComponent49} from "@opentui/solid"
6125
- import {memo as _$memo33} from "@opentui/solid"
6203
+
6204
+
6126
6205
  function SectionTab(props) {const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>props.position,disabled:()=>props.disabled===true,activate:props.onActivate
6127
6206
  })
6128
6207
  const focused=()=>item.focused()
6129
- return _$createComponent49(Tab,{get api() {return props.api
6208
+ return _$createComponent52(Tab,{get api() {return props.api
6130
6209
  },get selected() {return props.selected
6131
- },get focused() {return _$memo33(()=>!!!props.disabled)()&&focused()
6210
+ },get focused() {return _$memo34(()=>!!!props.disabled)()&&focused()
6132
6211
  },get count() {return props.count
6133
6212
  },ref:(node)=>item.ref(node),get id() {return props.id
6134
6213
  },height:1,minWidth:0,paddingLeft:1,paddingRight:1,get backgroundColor() {return item.backgroundColor()
6135
6214
  },get foregroundColor() {return item.foregroundColor()
6136
- },get onMouseOver() {return _$memo33(()=>!!props.disabled)()?undefined:item.onMouseOver
6137
- },get onMouseOut() {return _$memo33(()=>!!props.disabled)()?undefined:item.onMouseOut
6215
+ },get onMouseOver() {return _$memo34(()=>!!props.disabled)()?undefined:item.onMouseOver
6216
+ },get onMouseOut() {return _$memo34(()=>!!props.disabled)()?undefined:item.onMouseOut
6138
6217
  },onMouseDown:(event)=>{if (!props.disabled)
6139
6218
  item.select(event)
6140
6219
  },onMouseUp:(event)=>{event.stopPropagation()
@@ -6144,8 +6223,8 @@ item.activate(event)
6144
6223
  }
6145
6224
  })
6146
6225
  }
6147
- import {createElement as _$createElement47} from "@opentui/solid"
6148
- import {createEffect as createEffect11,onCleanup as onCleanup15} from "solid-js"
6226
+
6227
+
6149
6228
  var ENTRY_COMMAND=`${PLUGIN_ID}.sidebar-shortcuts.enter`
6150
6229
  var CANCEL_COMMAND=`${PLUGIN_ID}.sidebar-shortcuts.cancel`
6151
6230
  var MODE=`${PLUGIN_ID}.sidebar-shortcuts`
@@ -6207,7 +6286,7 @@ unregisterCommands()
6207
6286
  function SidebarToggleBinding(props) {const shortcuts=createSidebarShortcutMode(props.api)
6208
6287
  createEffect11(()=>shortcuts.bind(props.preferences.toggleKey()))
6209
6288
  onCleanup15(shortcuts.dispose)
6210
- return _$createElement47("box")
6289
+ return _$createElement48("box")
6211
6290
  }
6212
6291
  function SidebarFocusBinding(props) {const commands=props.interaction.baseCommands()
6213
6292
  const unregisterCommands=props.api.keymap.registerLayer({commands:[...commands,...commands.map(({name,run,enabled
@@ -6220,26 +6299,26 @@ createEffect11(()=>{const unregister=props.api.keymap.registerLayer({bindings:[{
6220
6299
  })
6221
6300
  onCleanup15(unregister)
6222
6301
  })
6223
- return _$createElement47("box")
6224
- }
6225
- import {mergeProps as _$mergeProps9} from "@opentui/solid"
6226
- import {effect as _$effect51} from "@opentui/solid"
6227
- import {insert as _$insert48} from "@opentui/solid"
6228
- import {createComponent as _$createComponent58} from "@opentui/solid"
6229
- import {setProp as _$setProp51} from "@opentui/solid"
6230
- import {use as _$use10} from "@opentui/solid"
6231
- import {createElement as _$createElement56} from "@opentui/solid"
6232
- import {For as For18,Match,Switch,createMemo as createMemo18,onCleanup as onCleanup19} from "solid-js"
6233
- import {setProp as _$setProp44} from "@opentui/solid"
6234
- import {effect as _$effect44} from "@opentui/solid"
6235
- import {createTextNode as _$createTextNode29} from "@opentui/solid"
6236
- import {insertNode as _$insertNode33} from "@opentui/solid"
6237
- import {insert as _$insert41} from "@opentui/solid"
6238
- import {createElement as _$createElement49} from "@opentui/solid"
6239
- import {createComponent as _$createComponent51} from "@opentui/solid"
6240
- import {memo as _$memo35} from "@opentui/solid"
6241
- import {For as For14,Show as Show16,createSignal as createSignal24} from "solid-js"
6242
- import {createEffect as createEffect12,createMemo as createMemo15,onCleanup as onCleanup16,untrack as untrack4} from "solid-js"
6302
+ return _$createElement48("box")
6303
+ }
6304
+
6305
+
6306
+
6307
+
6308
+
6309
+
6310
+
6311
+
6312
+
6313
+
6314
+
6315
+
6316
+
6317
+
6318
+
6319
+
6320
+
6321
+
6243
6322
  function createSkillSectionModel(props,query) {const target=createMemo15(()=>props.controller.target())
6244
6323
  const recent=createMemo15(()=>new Map((props.preferences.recentSkills?.()??[]).map((location,index)=>[location,index])))
6245
6324
  const list=createMemo15(()=>{const favorites=props.preferences.favoriteSkills?.()??new Set
@@ -6272,12 +6351,12 @@ return recent().has(item.location)?"recent":"other"
6272
6351
  }
6273
6352
  return{target,recent,list,filtered,visibility,state,useSkill,skillGroup}
6274
6353
  }
6275
- import {effect as _$effect43} from "@opentui/solid"
6276
- import {insert as _$insert40} from "@opentui/solid"
6277
- import {setProp as _$setProp43} from "@opentui/solid"
6278
- import {createElement as _$createElement48} from "@opentui/solid"
6279
- import {createComponent as _$createComponent50} from "@opentui/solid"
6280
- import {memo as _$memo34} from "@opentui/solid"
6354
+
6355
+
6356
+
6357
+
6358
+
6359
+
6281
6360
  function SkillRow(props) {const icons=useIcons()
6282
6361
  const theme=()=>props.api.theme.current
6283
6362
  const id=()=>`${PLUGIN_ID}.skill.${props.item.location || props.item.name}`
@@ -6292,28 +6371,28 @@ queueMicrotask(()=>props.interaction?.select(`${id()}.favorite`))
6292
6371
  const controlBackground=()=>{const background=favorite.backgroundColor()
6293
6372
  return background==="transparent"?row.backgroundColor():background
6294
6373
  }
6295
- return _$createComponent50(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
6374
+ return _$createComponent53(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
6296
6375
  },paddingLeft:1,paddingRight:1,get marginTop() {return props.separator?1:0
6297
6376
  },get backgroundColor() {return row.backgroundColor()
6298
6377
  },get onMouseOver() {return row.onMouseOver
6299
6378
  },get onMouseOut() {return row.onMouseOut
6300
- },onMouseUp:(event)=>row.activate(event),get leading() {return (()=>{var _el$=_$createElement48("text")
6301
- _$setProp43(_el$,"flexShrink",0)
6302
- _$insert40(_el$,()=>icons.icon(props.recent?"recent":"skills"))
6303
- _$effect43((_$p)=>_$setProp43(_el$,"fg",row.focused()?row.foregroundColor():theme().accent,_$p))
6379
+ },onMouseUp:(event)=>row.activate(event),get leading() {return (()=>{var _el$=_$createElement49("text")
6380
+ _$setProp44(_el$,"flexShrink",0)
6381
+ _$insert41(_el$,()=>icons.icon(props.recent?"recent":"skills"))
6382
+ _$effect44((_$p)=>_$setProp44(_el$,"fg",row.focused()?row.foregroundColor():theme().accent,_$p))
6304
6383
  return _el$
6305
6384
  })()
6306
- },get content() {return (()=>{var _el$2=_$createElement48("text")
6307
- _$setProp43(_el$2,"flexGrow",1)
6308
- _$setProp43(_el$2,"wrapMode","word")
6309
- _$insert40(_el$2,()=>props.item.name)
6310
- _$effect43((_$p)=>_$setProp43(_el$2,"fg",row.foregroundColor(),_$p))
6385
+ },get content() {return (()=>{var _el$2=_$createElement49("text")
6386
+ _$setProp44(_el$2,"flexGrow",1)
6387
+ _$setProp44(_el$2,"wrapMode","word")
6388
+ _$insert41(_el$2,()=>props.item.name)
6389
+ _$effect44((_$p)=>_$setProp44(_el$2,"fg",row.foregroundColor(),_$p))
6311
6390
  return _el$2
6312
6391
  })()
6313
- },get trailing() {return _$createComponent50(BookmarkControl,{ref:(node)=>favorite.ref(node),get id() {return `${id()}.favorite`
6392
+ },get trailing() {return _$createComponent53(BookmarkControl,{ref:(node)=>favorite.ref(node),get id() {return `${id()}.favorite`
6314
6393
  },get bookmarked() {return props.favorite
6315
6394
  },get backgroundColor() {return controlBackground()
6316
- },get foregroundColor() {return _$memo34(()=>!!row.focused())()?row.foregroundColor():favorite.foregroundColor()
6395
+ },get foregroundColor() {return _$memo35(()=>!!row.focused())()?row.foregroundColor():favorite.foregroundColor()
6317
6396
  },get onMouseOver() {return favorite.onMouseOver
6318
6397
  },get onMouseOut() {return favorite.onMouseOut
6319
6398
  },onMouseUp:(event)=>favorite.activate(event)
@@ -6330,7 +6409,7 @@ return
6330
6409
  }
6331
6410
  showSkillDetails(item)
6332
6411
  }
6333
- function showSkillDetails(item) {dialogs.open(()=>_$createComponent51(SkillDialog,{get api() {return props.api
6412
+ function showSkillDetails(item) {dialogs.open(()=>_$createComponent54(SkillDialog,{get api() {return props.api
6334
6413
  },skill:item,get favorite() {return props.preferences.isFavoriteSkill?.(item)??false
6335
6414
  },get favoriteDisabled() {return props.preferences.ready?.()===false
6336
6415
  },onToggleFavorite:()=>props.preferences.toggleFavoriteSkill?.(item),onAccept:(skipConfirmation)=>{if (skipConfirmation)
@@ -6339,46 +6418,46 @@ model.useSkill(item)
6339
6418
  }
6340
6419
  }))
6341
6420
  }
6342
- return _$createComponent51(Section,{get api() {return props.api
6421
+ return _$createComponent54(Section,{get api() {return props.api
6343
6422
  },get interaction() {return props.interaction
6344
6423
  },sectionId:`${PLUGIN_ID}.section.skills`,get navigationSection() {return navigationSection()
6345
6424
  },title:"SKILLS",section:"skills",get summary() {return String(model.list().length)
6346
6425
  },get open() {return props.preferences.expanded().skills
6347
- },onToggle:()=>props.preferences.toggleSectionExpanded("skills"),get children() {return _$createComponent51(SectionRequestBody,{get api() {return props.api
6426
+ },onToggle:()=>props.preferences.toggleSectionExpanded("skills"),get children() {return _$createComponent54(SectionRequestBody,{get api() {return props.api
6348
6427
  },get interaction() {return props.interaction
6349
6428
  },id:`${PLUGIN_ID}.retry.skills`,get position() {return {section:navigationSection(),row:1,column:0
6350
6429
  }
6351
6430
  },get state() {return model.state()
6352
6431
  },get hasItems() {return model.list().length>0
6353
- },empty:"No skills",loading:"Loading skills\u2026",onRetry:()=>void props.controller.retry(model.target()),get children() {var _el$=_$createElement49("box")
6354
- _$insert41(_el$,_$createComponent51(SectionFilter,{get api() {return props.api
6432
+ },empty:"No skills",loading:"Loading skills\u2026",onRetry:()=>void props.controller.retry(model.target()),get children() {var _el$=_$createElement50("box")
6433
+ _$insert42(_el$,_$createComponent54(SectionFilter,{get api() {return props.api
6355
6434
  },get interaction() {return props.interaction
6356
6435
  },id:`${PLUGIN_ID}.filter.skills`,get position() {return {section:navigationSection(),row:2,column:0
6357
6436
  }
6358
6437
  },get query() {return query()
6359
6438
  },placeholder:"Filter skills...",onInput:setQuery
6360
6439
  }),null)
6361
- _$insert41(_el$,_$createComponent51(Show16,{get when() {return model.filtered().length>0
6362
- },get fallback() {return (()=>{var _el$2=_$createElement49("text")
6363
- _$insertNode33(_el$2,_$createTextNode29(`No matching skills`))
6364
- _$effect44((_$p)=>_$setProp44(_el$2,"fg",props.api.theme.current.textMuted,_$p))
6440
+ _$insert42(_el$,_$createComponent54(Show16,{get when() {return model.filtered().length>0
6441
+ },get fallback() {return (()=>{var _el$2=_$createElement50("text")
6442
+ _$insertNode35(_el$2,_$createTextNode31(`No matching skills`))
6443
+ _$effect45((_$p)=>_$setProp45(_el$2,"fg",props.api.theme.current.textMuted,_$p))
6365
6444
  return _el$2
6366
6445
  })()
6367
- },get children() {return [_$createComponent51(SidebarRowList,{get density() {return props.preferences.rowDensity?.()??"compact"
6368
- },get children() {return _$createComponent51(For14,{get each() {return model.visibility.visible()
6369
- },children:(item,index)=>_$createComponent51(SkillRow,{get api() {return props.api
6446
+ },get children() {return [_$createComponent54(SidebarRowList,{get density() {return props.preferences.rowDensity?.()??"compact"
6447
+ },get children() {return _$createComponent54(For14,{get each() {return model.visibility.visible()
6448
+ },children:(item,index)=>_$createComponent54(SkillRow,{get api() {return props.api
6370
6449
  },get interaction() {return props.interaction
6371
6450
  },item,get position() {return {section:navigationSection(),row:10 + index(),column:0
6372
6451
  }
6373
6452
  },onUse:()=>selectSkill(item),get recent() {return model.recent().has(item.location)
6374
6453
  },get favorite() {return props.preferences.isFavoriteSkill?.(item)??false
6375
6454
  },get favoriteDisabled() {return props.preferences.ready?.()===false
6376
- },get separator() {return _$memo35(()=>index()>0)()&&model.skillGroup(model.visibility.visible()[index() - 1])!==model.skillGroup(item)
6455
+ },get separator() {return _$memo36(()=>index()>0)()&&model.skillGroup(model.visibility.visible()[index() - 1])!==model.skillGroup(item)
6377
6456
  },onToggleFavorite:()=>props.preferences.toggleFavoriteSkill?.(item)
6378
6457
  })
6379
6458
  })
6380
6459
  }
6381
- }),_$createComponent51(ListVisibilityControl,{get api() {return props.api
6460
+ }),_$createComponent54(ListVisibilityControl,{get api() {return props.api
6382
6461
  },get interaction() {return props.interaction
6383
6462
  },section:"skills",get navigationSection() {return navigationSection()
6384
6463
  },get row() {return 10 + model.visibility.visible().length
@@ -6393,16 +6472,16 @@ return _el$
6393
6472
  }
6394
6473
  })
6395
6474
  }
6396
- import {memo as _$memo37} from "@opentui/solid"
6397
- import {effect as _$effect47} from "@opentui/solid"
6398
- import {createTextNode as _$createTextNode31} from "@opentui/solid"
6399
- import {insertNode as _$insertNode36} from "@opentui/solid"
6400
- import {insert as _$insert44} from "@opentui/solid"
6401
- import {setProp as _$setProp47} from "@opentui/solid"
6402
- import {createElement as _$createElement52} from "@opentui/solid"
6403
- import {createComponent as _$createComponent54} from "@opentui/solid"
6404
- import {For as For16,Show as Show19} from "solid-js"
6405
- import {createEffect as createEffect13,createMemo as createMemo16,createSignal as createSignal25,onCleanup as onCleanup17,untrack as untrack5} from "solid-js"
6475
+
6476
+
6477
+
6478
+
6479
+
6480
+
6481
+
6482
+
6483
+
6484
+
6406
6485
  function createSubagentSectionModel(props) {const list=createMemo16(()=>props.controller.list(props.sessionID))
6407
6486
  const recent=createMemo16(()=>props.controller.recent?.(props.sessionID)??[])
6408
6487
  const rows=createMemo16(()=>buildSubagentView(list(),recent()))
@@ -6437,22 +6516,22 @@ untrack5(()=>void props.controller.refresh(sessionID).catch(()=>{}))
6437
6516
  return{list,recent,rows,query,setQuery,mode,setMode,counts,tabs,filtered,parentID,visibility,now,byId,ids,state
6438
6517
  }
6439
6518
  }
6440
- import {setProp as _$setProp46} from "@opentui/solid"
6441
- import {effect as _$effect46} from "@opentui/solid"
6442
- import {insertNode as _$insertNode35} from "@opentui/solid"
6443
- import {insert as _$insert43} from "@opentui/solid"
6444
- import {createElement as _$createElement51} from "@opentui/solid"
6445
- import {createComponent as _$createComponent53} from "@opentui/solid"
6446
- import {For as For15,Show as Show18} from "solid-js"
6447
- import {createTextNode as _$createTextNode30} from "@opentui/solid"
6448
- import {insertNode as _$insertNode34} from "@opentui/solid"
6449
- import {memo as _$memo36} from "@opentui/solid"
6450
- import {effect as _$effect45} from "@opentui/solid"
6451
- import {insert as _$insert42} from "@opentui/solid"
6452
- import {setProp as _$setProp45} from "@opentui/solid"
6453
- import {createElement as _$createElement50} from "@opentui/solid"
6454
- import {createComponent as _$createComponent52} from "@opentui/solid"
6455
- import {Show as Show17} from "solid-js"
6519
+
6520
+
6521
+
6522
+
6523
+
6524
+
6525
+
6526
+
6527
+
6528
+
6529
+
6530
+
6531
+
6532
+
6533
+
6534
+
6456
6535
  function SubagentRow(props) {const icons=useIcons()
6457
6536
  const theme=()=>props.api.theme.current
6458
6537
  const retrying=()=>props.item.status.type==="retry"
@@ -6463,83 +6542,83 @@ const id=()=>`${PLUGIN_ID}.subagent.${props.item.session.id}`
6463
6542
  const row=useSidebarItem(props.api,props.interaction,{id:id(),position:()=>props.position,activate:props.onOpen
6464
6543
  })
6465
6544
  const leadingColor=()=>row.focused()?row.foregroundColor():failed()?theme().error:retrying()||props.item.unavailable?theme().warning:idle()?theme().textMuted:theme().primary
6466
- return _$createComponent52(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
6545
+ return _$createComponent55(ListRow,{ref:(node)=>row.ref(node),get id() {return id()
6467
6546
  },paddingLeft:1,paddingRight:1,get backgroundColor() {return row.backgroundColor()
6468
6547
  },get onMouseOver() {return row.onMouseOver
6469
6548
  },get onMouseOut() {return row.onMouseOut
6470
- },onMouseDown:(event)=>row.activate(event),get leading() {return (()=>{var _el$=_$createElement50("text")
6471
- _$setProp45(_el$,"flexShrink",0)
6472
- _$insert42(_el$,()=>icons.icon(failed()?"error":cancelled()?"close":retrying()?"retry":idle()?"idle":"busy"))
6473
- _$effect45((_$p)=>_$setProp45(_el$,"fg",leadingColor(),_$p))
6549
+ },onMouseDown:(event)=>row.activate(event),get leading() {return (()=>{var _el$=_$createElement51("text")
6550
+ _$setProp46(_el$,"flexShrink",0)
6551
+ _$insert43(_el$,()=>icons.icon(failed()?"error":cancelled()?"close":retrying()?"retry":idle()?"idle":"busy"))
6552
+ _$effect46((_$p)=>_$setProp46(_el$,"fg",leadingColor(),_$p))
6474
6553
  return _el$
6475
6554
  })()
6476
- },get content() {return (()=>{var _el$2=_$createElement50("text")
6477
- _$setProp45(_el$2,"flexGrow",1)
6478
- _$setProp45(_el$2,"wrapMode","word")
6479
- _$insert42(_el$2,()=>props.item.session.title)
6480
- _$effect45((_$p)=>_$setProp45(_el$2,"fg",row.foregroundColor(),_$p))
6555
+ },get content() {return (()=>{var _el$2=_$createElement51("text")
6556
+ _$setProp46(_el$2,"flexGrow",1)
6557
+ _$setProp46(_el$2,"wrapMode","word")
6558
+ _$insert43(_el$2,()=>props.item.session.title)
6559
+ _$effect46((_$p)=>_$setProp46(_el$2,"fg",row.foregroundColor(),_$p))
6481
6560
  return _el$2
6482
6561
  })()
6483
- },get metadata() {return (()=>{var _el$3=_$createElement50("text")
6484
- _$setProp45(_el$3,"flexShrink",0)
6485
- _$insert42(_el$3,(()=>{var _c$=_$memo36(()=>!!props.item.run)
6562
+ },get metadata() {return (()=>{var _el$3=_$createElement51("text")
6563
+ _$setProp46(_el$3,"flexShrink",0)
6564
+ _$insert43(_el$3,(()=>{var _c$=_$memo37(()=>!!props.item.run)
6486
6565
  return ()=>_c$()?`${props.item.run.startedBeforeObservation ? `${icons.icon("recent")} ` : ""}${formatSubagentDuration(props.item.run.startedAt, props.item.run.finishedAt ?? props.now)}`:""
6487
6566
  })())
6488
- _$effect45((_$p)=>_$setProp45(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
6567
+ _$effect46((_$p)=>_$setProp46(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
6489
6568
  return _el$3
6490
6569
  })()
6491
- },get details() {return [_$createComponent52(Show17,{get when() {return props.item.run?.errorMessage
6492
- },get children() {var _el$4=_$createElement50("text"),_el$5=_$createTextNode30(`: `)
6493
- _$insertNode34(_el$4,_el$5)
6494
- _$setProp45(_el$4,"wrapMode","word")
6495
- _$insert42(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
6496
- _$insert42(_el$4,()=>props.item.run?.errorMessage,null)
6497
- _$effect45((_$p)=>_$setProp45(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
6570
+ },get details() {return [_$createComponent55(Show17,{get when() {return props.item.run?.errorMessage
6571
+ },get children() {var _el$4=_$createElement51("text"),_el$5=_$createTextNode32(`: `)
6572
+ _$insertNode36(_el$4,_el$5)
6573
+ _$setProp46(_el$4,"wrapMode","word")
6574
+ _$insert43(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
6575
+ _$insert43(_el$4,()=>props.item.run?.errorMessage,null)
6576
+ _$effect46((_$p)=>_$setProp46(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
6498
6577
  return _el$4
6499
6578
  }
6500
- }),_$createComponent52(Show17,{get when() {return props.item.unavailable
6501
- },get children() {var _el$6=_$createElement50("text")
6502
- _$insertNode34(_el$6,_$createTextNode30(`Worker status unavailable`))
6503
- _$effect45((_$p)=>_$setProp45(_el$6,"fg",theme().warning,_$p))
6579
+ }),_$createComponent55(Show17,{get when() {return props.item.unavailable
6580
+ },get children() {var _el$6=_$createElement51("text")
6581
+ _$insertNode36(_el$6,_$createTextNode32(`Worker status unavailable`))
6582
+ _$effect46((_$p)=>_$setProp46(_el$6,"fg",theme().warning,_$p))
6504
6583
  return _el$6
6505
6584
  }
6506
- }),_$createComponent52(Show17,{get when() {return _$memo36(()=>props.item.status.type==="retry")()?props.item.status:undefined
6507
- },children:(status)=>(()=>{var _el$0=_$createElement50("text"),_el$1=_$createTextNode30(`Retry #`),_el$10=_$createTextNode30(` \xB7 `),_el$11=_$createTextNode30(`s \xB7 `)
6508
- _$insertNode34(_el$0,_el$1)
6509
- _$insertNode34(_el$0,_el$10)
6510
- _$insertNode34(_el$0,_el$11)
6511
- _$setProp45(_el$0,"wrapMode","word")
6512
- _$insert42(_el$0,()=>status().attempt,_el$10)
6513
- _$insert42(_el$0,()=>Math.max(0,Math.ceil((status().next - props.now) / 1000)),_el$11)
6514
- _$insert42(_el$0,()=>status().message,null)
6515
- _$effect45((_$p)=>_$setProp45(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
6585
+ }),_$createComponent55(Show17,{get when() {return _$memo37(()=>props.item.status.type==="retry")()?props.item.status:undefined
6586
+ },children:(status)=>(()=>{var _el$0=_$createElement51("text"),_el$1=_$createTextNode32(`Retry #`),_el$10=_$createTextNode32(` \xB7 `),_el$11=_$createTextNode32(`s \xB7 `)
6587
+ _$insertNode36(_el$0,_el$1)
6588
+ _$insertNode36(_el$0,_el$10)
6589
+ _$insertNode36(_el$0,_el$11)
6590
+ _$setProp46(_el$0,"wrapMode","word")
6591
+ _$insert43(_el$0,()=>status().attempt,_el$10)
6592
+ _$insert43(_el$0,()=>Math.max(0,Math.ceil((status().next - props.now) / 1000)),_el$11)
6593
+ _$insert43(_el$0,()=>status().message,null)
6594
+ _$effect46((_$p)=>_$setProp46(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
6516
6595
  return _el$0
6517
6596
  })()
6518
- }),_$createComponent52(Show17,{get when() {return _$memo36(()=>!!idle())()&&!props.item.run?.errorMessage
6519
- },get children() {var _el$8=_$createElement50("text")
6520
- _$insertNode34(_el$8,_$createTextNode30(`Finished`))
6521
- _$effect45((_$p)=>_$setProp45(_el$8,"fg",theme().textMuted,_$p))
6597
+ }),_$createComponent55(Show17,{get when() {return _$memo37(()=>!!idle())()&&!props.item.run?.errorMessage
6598
+ },get children() {var _el$8=_$createElement51("text")
6599
+ _$insertNode36(_el$8,_$createTextNode32(`Finished`))
6600
+ _$effect46((_$p)=>_$setProp46(_el$8,"fg",theme().textMuted,_$p))
6522
6601
  return _el$8
6523
6602
  }
6524
6603
  })]
6525
6604
  }
6526
6605
  })
6527
6606
  }
6528
- function SubagentList(props) {return _$createComponent53(SidebarRowList,{get density() {return props.density
6529
- },get children() {return _$createComponent53(For15,{get each() {return props.ids
6607
+ function SubagentList(props) {return _$createComponent56(SidebarRowList,{get density() {return props.density
6608
+ },get children() {return _$createComponent56(For15,{get each() {return props.ids
6530
6609
  },children:(id,index)=>{const initial=props.itemById(id)
6531
6610
  const item=()=>props.itemById(id)??initial
6532
6611
  const startsGroup=()=>index()===0||props.visible[index() - 1]?.group!==item().group
6533
- return (()=>{var _el$=_$createElement51("box")
6534
- _$insert43(_el$,_$createComponent53(Show18,{get when() {return startsGroup()
6535
- },get children() {var _el$2=_$createElement51("text"),_el$3=_$createElement51("b")
6536
- _$insertNode35(_el$2,_el$3)
6537
- _$insert43(_el$3,()=>item().group)
6538
- _$effect46((_$p)=>_$setProp46(_el$2,"fg",props.api.theme.current.textMuted,_$p))
6612
+ return (()=>{var _el$=_$createElement52("box")
6613
+ _$insert44(_el$,_$createComponent56(Show18,{get when() {return startsGroup()
6614
+ },get children() {var _el$2=_$createElement52("text"),_el$3=_$createElement52("b")
6615
+ _$insertNode37(_el$2,_el$3)
6616
+ _$insert44(_el$3,()=>item().group)
6617
+ _$effect47((_$p)=>_$setProp47(_el$2,"fg",props.api.theme.current.textMuted,_$p))
6539
6618
  return _el$2
6540
6619
  }
6541
6620
  }),null)
6542
- _$insert43(_el$,_$createComponent53(SubagentRow,{get api() {return props.api
6621
+ _$insert44(_el$,_$createComponent56(SubagentRow,{get api() {return props.api
6543
6622
  },get interaction() {return props.interaction
6544
6623
  },get item() {return item()
6545
6624
  },get now() {return props.now
@@ -6547,7 +6626,7 @@ _$insert43(_el$,_$createComponent53(SubagentRow,{get api() {return props.api
6547
6626
  }
6548
6627
  },onOpen:()=>props.controller.open(id)
6549
6628
  }),null)
6550
- _$effect46((_$p)=>_$setProp46(_el$,"marginTop",index()>0&&startsGroup()?1:0,_$p))
6629
+ _$effect47((_$p)=>_$setProp47(_el$,"marginTop",index()>0&&startsGroup()?1:0,_$p))
6551
6630
  return _el$
6552
6631
  })()
6553
6632
  }
@@ -6558,29 +6637,29 @@ return _el$
6558
6637
  function SubagentSection(props) {const icons=useIcons()
6559
6638
  const model=createSubagentSectionModel(props)
6560
6639
  const navigationSection=()=>props.navigationSection??2
6561
- return _$createComponent54(Section,{get api() {return props.api
6640
+ return _$createComponent57(Section,{get api() {return props.api
6562
6641
  },get interaction() {return props.interaction
6563
6642
  },sectionId:`${PLUGIN_ID}.section.subagents`,get navigationSection() {return navigationSection()
6564
6643
  },title:"SUBAGENTS",section:"subagents",get summary() {return `${model.list().length} active \xB7 ${model.recent().length} recent`
6565
6644
  },get open() {return props.preferences.expanded().subagents
6566
- },onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children() {return [_$createComponent54(Show19,{get when() {return model.parentID()
6567
- },children:(id)=>_$createComponent54(McpBulkAction,{get api() {return props.api
6645
+ },onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children() {return [_$createComponent57(Show19,{get when() {return model.parentID()
6646
+ },children:(id)=>_$createComponent57(McpBulkAction,{get api() {return props.api
6568
6647
  },get interaction() {return props.interaction
6569
6648
  },id:`${PLUGIN_ID}.subagents.parent`,get position() {return {section:navigationSection(),row:1,column:0
6570
6649
  }
6571
6650
  },get label() {return `${icons.icon("up")} Parent session`
6572
6651
  },disabled:false,onActivate:()=>props.controller.open(id())
6573
6652
  })
6574
- }),_$createComponent54(SectionRequestBody,{get api() {return props.api
6653
+ }),_$createComponent57(SectionRequestBody,{get api() {return props.api
6575
6654
  },get interaction() {return props.interaction
6576
6655
  },id:`${PLUGIN_ID}.retry.subagents`,get position() {return {section:navigationSection(),row:2,column:0
6577
6656
  }
6578
6657
  },get state() {return model.state()
6579
6658
  },get hasItems() {return model.rows().length>0
6580
- },empty:"No subagents",loading:"Loading subagents\u2026",onRetry:()=>void props.controller.retry(props.sessionID),get children() {var _el$=_$createElement52("box"),_el$2=_$createElement52("box")
6581
- _$insertNode36(_el$,_el$2)
6582
- _$setProp47(_el$,"gap",1)
6583
- _$insert44(_el$,_$createComponent54(SectionFilter,{get api() {return props.api
6659
+ },empty:"No subagents",loading:"Loading subagents\u2026",onRetry:()=>void props.controller.retry(props.sessionID),get children() {var _el$=_$createElement53("box"),_el$2=_$createElement53("box")
6660
+ _$insertNode38(_el$,_el$2)
6661
+ _$setProp48(_el$,"gap",1)
6662
+ _$insert45(_el$,_$createComponent57(SectionFilter,{get api() {return props.api
6584
6663
  },get interaction() {return props.interaction
6585
6664
  },id:`${PLUGIN_ID}.filter.subagents`,get position() {return {section:navigationSection(),row:3,column:0
6586
6665
  }
@@ -6588,10 +6667,10 @@ _$insert44(_el$,_$createComponent54(SectionFilter,{get api() {return props.api
6588
6667
  },placeholder:"Filter subagents...",get onInput() {return model.setQuery
6589
6668
  }
6590
6669
  }),_el$2)
6591
- _$setProp47(_el$2,"flexDirection","row")
6592
- _$setProp47(_el$2,"flexWrap","wrap")
6593
- _$insert44(_el$2,_$createComponent54(For16,{get each() {return model.tabs()
6594
- },children:(value,index)=>_$createComponent54(SectionTab,{get api() {return props.api
6670
+ _$setProp48(_el$2,"flexDirection","row")
6671
+ _$setProp48(_el$2,"flexWrap","wrap")
6672
+ _$insert45(_el$2,_$createComponent57(For16,{get each() {return model.tabs()
6673
+ },children:(value,index)=>_$createComponent57(SectionTab,{get api() {return props.api
6595
6674
  },get interaction() {return props.interaction
6596
6675
  },id:`${PLUGIN_ID}.subagents.filter.${value}`,get position() {return {section:navigationSection(),row:4,column:index()
6597
6676
  }
@@ -6602,14 +6681,14 @@ _$insert44(_el$2,_$createComponent54(For16,{get each() {return model.tabs()
6602
6681
  },onActivate:()=>model.setMode(value)
6603
6682
  })
6604
6683
  }))
6605
- _$insert44(_el$,_$createComponent54(Show19,{get when() {return model.filtered().length===0
6606
- },get children() {var _el$3=_$createElement52("text")
6607
- _$insertNode36(_el$3,_$createTextNode31(`No matching subagents`))
6608
- _$effect47((_$p)=>_$setProp47(_el$3,"fg",props.api.theme.current.textMuted,_$p))
6684
+ _$insert45(_el$,_$createComponent57(Show19,{get when() {return model.filtered().length===0
6685
+ },get children() {var _el$3=_$createElement53("text")
6686
+ _$insertNode38(_el$3,_$createTextNode33(`No matching subagents`))
6687
+ _$effect48((_$p)=>_$setProp48(_el$3,"fg",props.api.theme.current.textMuted,_$p))
6609
6688
  return _el$3
6610
6689
  }
6611
6690
  }),null)
6612
- _$insert44(_el$,_$createComponent54(SubagentList,{get api() {return props.api
6691
+ _$insert45(_el$,_$createComponent57(SubagentList,{get api() {return props.api
6613
6692
  },get interaction() {return props.interaction
6614
6693
  },get controller() {return props.controller
6615
6694
  },get navigationSection() {return navigationSection()
@@ -6619,7 +6698,7 @@ _$insert44(_el$,_$createComponent54(SubagentList,{get api() {return props.api
6619
6698
  },get density() {return props.preferences.rowDensity?.()??"compact"
6620
6699
  }
6621
6700
  }),null)
6622
- _$insert44(_el$,_$createComponent54(ListVisibilityControl,{get api() {return props.api
6701
+ _$insert45(_el$,_$createComponent57(ListVisibilityControl,{get api() {return props.api
6623
6702
  },get interaction() {return props.interaction
6624
6703
  },section:"subagents",get navigationSection() {return navigationSection()
6625
6704
  },get row() {return 10 + model.visibility.visible().length
@@ -6632,33 +6711,33 @@ return _el$
6632
6711
  }
6633
6712
  })
6634
6713
  }
6635
- import {effect as _$effect50} from "@opentui/solid"
6636
- import {createTextNode as _$createTextNode33} from "@opentui/solid"
6637
- import {insertNode as _$insertNode39} from "@opentui/solid"
6638
- import {insert as _$insert47} from "@opentui/solid"
6639
- import {setProp as _$setProp50} from "@opentui/solid"
6640
- import {createElement as _$createElement55} from "@opentui/solid"
6641
- import {createComponent as _$createComponent57} from "@opentui/solid"
6642
- import {memo as _$memo40} from "@opentui/solid"
6643
- import {Show as Show22,createEffect as createEffect14,createMemo as createMemo17,createSignal as createSignal26,onCleanup as onCleanup18,untrack as untrack6} from "solid-js"
6644
- import {memo as _$memo39} from "@opentui/solid"
6645
- import {effect as _$effect49} from "@opentui/solid"
6646
- import {insertNode as _$insertNode38} from "@opentui/solid"
6647
- import {insert as _$insert46} from "@opentui/solid"
6648
- import {createComponent as _$createComponent56} from "@opentui/solid"
6649
- import {setProp as _$setProp49} from "@opentui/solid"
6650
- import {createElement as _$createElement54} from "@opentui/solid"
6651
- import {For as For17,Show as Show21} from "solid-js"
6652
- import {createComponent as _$createComponent55} from "@opentui/solid"
6653
- import {effect as _$effect48} from "@opentui/solid"
6654
- import {createTextNode as _$createTextNode32} from "@opentui/solid"
6655
- import {insertNode as _$insertNode37} from "@opentui/solid"
6656
- import {memo as _$memo38} from "@opentui/solid"
6657
- import {insert as _$insert45} from "@opentui/solid"
6658
- import {setProp as _$setProp48} from "@opentui/solid"
6659
- import {createElement as _$createElement53} from "@opentui/solid"
6660
- import {TextAttributes as TextAttributes17} from "@opentui/core"
6661
- import {Show as Show20} from "solid-js"
6714
+
6715
+
6716
+
6717
+
6718
+
6719
+
6720
+
6721
+
6722
+
6723
+
6724
+
6725
+
6726
+
6727
+
6728
+
6729
+
6730
+
6731
+
6732
+
6733
+
6734
+
6735
+
6736
+
6737
+
6738
+
6739
+
6740
+
6662
6741
  function TodoRow(props) {const icons=useIcons()
6663
6742
  const theme=()=>props.api.theme.current
6664
6743
  const done=()=>props.item.status==="completed"
@@ -6678,31 +6757,31 @@ if(props.item.priority==="medium")
6678
6757
  return theme().warning
6679
6758
  return theme().info
6680
6759
  }
6681
- return (()=>{var _el$=_$createElement53("box"),_el$2=_$createElement53("text"),_el$3=_$createElement53("text")
6682
- _$insertNode37(_el$,_el$2)
6683
- _$insertNode37(_el$,_el$3)
6684
- _$setProp48(_el$,"flexDirection","row")
6685
- _$setProp48(_el$,"gap",1)
6686
- _$setProp48(_el$2,"flexShrink",0)
6687
- _$insert45(_el$2,()=>icons.icon(done()?"done":active()?"busy":cancelled()?"close":"idle"))
6688
- _$setProp48(_el$3,"flexGrow",1)
6689
- _$setProp48(_el$3,"wrapMode","word")
6690
- _$insert45(_el$3,()=>props.item.content)
6691
- _$insert45(_el$,_$createComponent55(Show20,{get when() {return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
6692
- },get children() {var _el$4=_$createElement53("text"),_el$5=_$createElement53("b"),_el$6=_$createTextNode32(` `)
6693
- _$insertNode37(_el$4,_el$5)
6694
- _$setProp48(_el$4,"width",2)
6695
- _$setProp48(_el$4,"flexShrink",0)
6696
- _$insertNode37(_el$5,_el$6)
6697
- _$insert45(_el$5,priorityLabel,null)
6698
- _$effect48((_$p)=>_$setProp48(_el$4,"fg",priorityColor(),_$p))
6760
+ return (()=>{var _el$=_$createElement54("box"),_el$2=_$createElement54("text"),_el$3=_$createElement54("text")
6761
+ _$insertNode39(_el$,_el$2)
6762
+ _$insertNode39(_el$,_el$3)
6763
+ _$setProp49(_el$,"flexDirection","row")
6764
+ _$setProp49(_el$,"gap",1)
6765
+ _$setProp49(_el$2,"flexShrink",0)
6766
+ _$insert46(_el$2,()=>icons.icon(done()?"done":active()?"busy":cancelled()?"close":"idle"))
6767
+ _$setProp49(_el$3,"flexGrow",1)
6768
+ _$setProp49(_el$3,"wrapMode","word")
6769
+ _$insert46(_el$3,()=>props.item.content)
6770
+ _$insert46(_el$,_$createComponent58(Show20,{get when() {return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
6771
+ },get children() {var _el$4=_$createElement54("text"),_el$5=_$createElement54("b"),_el$6=_$createTextNode34(` `)
6772
+ _$insertNode39(_el$4,_el$5)
6773
+ _$setProp49(_el$4,"width",2)
6774
+ _$setProp49(_el$4,"flexShrink",0)
6775
+ _$insertNode39(_el$5,_el$6)
6776
+ _$insert46(_el$5,priorityLabel,null)
6777
+ _$effect49((_$p)=>_$setProp49(_el$4,"fg",priorityColor(),_$p))
6699
6778
  return _el$4
6700
6779
  }
6701
6780
  }),null)
6702
- _$effect48((_p$)=>{var _v$=active()?theme().warning:done()?theme().success:cancelled()?theme().error:theme().textMuted,_v$2=active()?theme().primary:theme().textMuted,_v$3=done()?TextAttributes17.STRIKETHROUGH:active()?TextAttributes17.BOLD:undefined
6703
- _v$!==_p$.e&&(_p$.e=_$setProp48(_el$2,"fg",_v$,_p$.e))
6704
- _v$2!==_p$.t&&(_p$.t=_$setProp48(_el$3,"fg",_v$2,_p$.t))
6705
- _v$3!==_p$.a&&(_p$.a=_$setProp48(_el$3,"attributes",_v$3,_p$.a))
6781
+ _$effect49((_p$)=>{var _v$=active()?theme().warning:done()?theme().success:cancelled()?theme().error:theme().textMuted,_v$2=active()?theme().primary:theme().textMuted,_v$3=done()?TextAttributes17.STRIKETHROUGH:active()?TextAttributes17.BOLD:undefined
6782
+ _v$!==_p$.e&&(_p$.e=_$setProp49(_el$2,"fg",_v$,_p$.e))
6783
+ _v$2!==_p$.t&&(_p$.t=_$setProp49(_el$3,"fg",_v$2,_p$.t))
6784
+ _v$3!==_p$.a&&(_p$.a=_$setProp49(_el$3,"attributes",_v$3,_p$.a))
6706
6785
  return _p$
6707
6786
  },{e:undefined,t:undefined,a:undefined
6708
6787
  })
@@ -6710,12 +6789,12 @@ return _el$
6710
6789
  })()
6711
6790
  }
6712
6791
  function TodoContents(props) {const navigationSection=()=>props.navigationSection??1
6713
- return (()=>{var _el$=_$createElement54("box"),_el$2=_$createElement54("box")
6714
- _$insertNode38(_el$,_el$2)
6715
- _$setProp49(_el$,"gap",1)
6716
- _$setProp49(_el$2,"flexDirection","row")
6717
- _$setProp49(_el$2,"flexWrap","wrap")
6718
- _$insert46(_el$2,_$createComponent56(For17,{each:["all","active","finished"],children:(value,index)=>_$createComponent56(SectionTab,{get api() {return props.api
6792
+ return (()=>{var _el$=_$createElement55("box"),_el$2=_$createElement55("box")
6793
+ _$insertNode40(_el$,_el$2)
6794
+ _$setProp50(_el$,"gap",1)
6795
+ _$setProp50(_el$2,"flexDirection","row")
6796
+ _$setProp50(_el$2,"flexWrap","wrap")
6797
+ _$insert47(_el$2,_$createComponent59(For17,{each:["all","active","finished"],children:(value,index)=>_$createComponent59(SectionTab,{get api() {return props.api
6719
6798
  },get interaction() {return props.interaction
6720
6799
  },id:`${PLUGIN_ID}.todo.filter.${value}`,get position() {return {section:navigationSection(),row:2,column:index()
6721
6800
  }
@@ -6725,28 +6804,28 @@ _$insert46(_el$2,_$createComponent56(For17,{each:["all","active","finished"],chi
6725
6804
  },onActivate:()=>props.setMode(value)
6726
6805
  })
6727
6806
  }))
6728
- _$insert46(_el$,_$createComponent56(Show21,{get when() {return props.view.rows.length>0
6729
- },get fallback() {return _$createComponent56(EmptyTodo,{get api() {return props.api
6807
+ _$insert47(_el$,_$createComponent59(Show21,{get when() {return props.view.rows.length>0
6808
+ },get fallback() {return _$createComponent59(EmptyTodo,{get api() {return props.api
6730
6809
  },get mode() {return props.mode
6731
6810
  }
6732
6811
  })
6733
- },get children() {return _$createComponent56(SidebarRowList,{get density() {return props.density
6734
- },get children() {return _$createComponent56(For17,{get each() {return props.visibility.visible()
6812
+ },get children() {return _$createComponent59(SidebarRowList,{get density() {return props.density
6813
+ },get children() {return _$createComponent59(For17,{get each() {return props.visibility.visible()
6735
6814
  },children:(row,index)=>{const startsGroup=()=>index()===0||props.visibility.visible()[index() - 1].group!==row.group
6736
- return (()=>{var _el$3=_$createElement54("box")
6737
- _$insert46(_el$3,_$createComponent56(Show21,{get when() {return startsGroup()
6738
- },get children() {var _el$4=_$createElement54("text"),_el$5=_$createElement54("b")
6739
- _$insertNode38(_el$4,_el$5)
6740
- _$insert46(_el$5,()=>row.group)
6741
- _$effect49((_$p)=>_$setProp49(_el$4,"fg",props.api.theme.current.textMuted,_$p))
6815
+ return (()=>{var _el$3=_$createElement55("box")
6816
+ _$insert47(_el$3,_$createComponent59(Show21,{get when() {return startsGroup()
6817
+ },get children() {var _el$4=_$createElement55("text"),_el$5=_$createElement55("b")
6818
+ _$insertNode40(_el$4,_el$5)
6819
+ _$insert47(_el$5,()=>row.group)
6820
+ _$effect50((_$p)=>_$setProp50(_el$4,"fg",props.api.theme.current.textMuted,_$p))
6742
6821
  return _el$4
6743
6822
  }
6744
6823
  }),null)
6745
- _$insert46(_el$3,_$createComponent56(TodoRow,{get api() {return props.api
6824
+ _$insert47(_el$3,_$createComponent59(TodoRow,{get api() {return props.api
6746
6825
  },get item() {return row.item
6747
6826
  }
6748
6827
  }),null)
6749
- _$effect49((_$p)=>_$setProp49(_el$3,"marginTop",index()>0&&startsGroup()?1:0,_$p))
6828
+ _$effect50((_$p)=>_$setProp50(_el$3,"marginTop",index()>0&&startsGroup()?1:0,_$p))
6750
6829
  return _el$3
6751
6830
  })()
6752
6831
  }
@@ -6755,7 +6834,7 @@ return _el$3
6755
6834
  })
6756
6835
  }
6757
6836
  }),null)
6758
- _$insert46(_el$,_$createComponent56(ListVisibilityControl,{get api() {return props.api
6837
+ _$insert47(_el$,_$createComponent59(ListVisibilityControl,{get api() {return props.api
6759
6838
  },get interaction() {return props.interaction
6760
6839
  },section:"todo",get navigationSection() {return navigationSection()
6761
6840
  },row:3,get visibility() {return props.visibility
@@ -6764,9 +6843,9 @@ _$insert46(_el$,_$createComponent56(ListVisibilityControl,{get api() {return pro
6764
6843
  return _el$
6765
6844
  })()
6766
6845
  }
6767
- function EmptyTodo(props) {return (()=>{var _el$6=_$createElement54("text")
6768
- _$insert46(_el$6,()=>props.mode==="active"?"No active tasks":"No finished tasks")
6769
- _$effect49((_$p)=>_$setProp49(_el$6,"fg",props.api.theme.current.textMuted,_$p))
6846
+ function EmptyTodo(props) {return (()=>{var _el$6=_$createElement55("text")
6847
+ _$insert47(_el$6,()=>props.mode==="active"?"No active tasks":"No finished tasks")
6848
+ _$effect50((_$p)=>_$setProp50(_el$6,"fg",props.api.theme.current.textMuted,_$p))
6770
6849
  return _el$6
6771
6850
  })()
6772
6851
  }
@@ -6791,19 +6870,19 @@ onCleanup18(deactivate)
6791
6870
  untrack6(()=>void props.controller.refresh(sessionID).catch(()=>{}))
6792
6871
  })
6793
6872
  const navigationSection=()=>props.navigationSection??1
6794
- return _$createComponent57(Section,{get api() {return props.api
6873
+ return _$createComponent60(Section,{get api() {return props.api
6795
6874
  },get interaction() {return props.interaction
6796
6875
  },sectionId:`${PLUGIN_ID}.section.todo`,get navigationSection() {return navigationSection()
6797
- },title:"TODO",section:"todo",get summary() {return _$memo40(()=>!!unavailable())()?"\u2014":`${view().counts.completed}/${list().length}`
6876
+ },title:"TODO",section:"todo",get summary() {return _$memo41(()=>!!unavailable())()?"\u2014":`${view().counts.completed}/${list().length}`
6798
6877
  },get open() {return props.preferences.expanded().todo
6799
- },onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children() {return _$createComponent57(Show22,{get when() {return unavailable()
6800
- },get fallback() {return _$createComponent57(SectionRequestBody,{get api() {return props.api
6878
+ },onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children() {return _$createComponent60(Show22,{get when() {return unavailable()
6879
+ },get fallback() {return _$createComponent60(SectionRequestBody,{get api() {return props.api
6801
6880
  },get interaction() {return props.interaction
6802
6881
  },id:`${PLUGIN_ID}.retry.todo`,get position() {return {section:navigationSection(),row:1,column:0
6803
6882
  }
6804
6883
  },get state() {return state()
6805
6884
  },get hasItems() {return list().length>0
6806
- },empty:"No tasks yet",loading:"Loading tasks\u2026",onRetry:()=>void props.controller.retry(props.sessionID),get children() {return _$createComponent57(TodoContents,{get api() {return props.api
6885
+ },empty:"No tasks yet",loading:"Loading tasks\u2026",onRetry:()=>void props.controller.retry(props.sessionID),get children() {return _$createComponent60(TodoContents,{get api() {return props.api
6807
6886
  },get interaction() {return props.interaction
6808
6887
  },get navigationSection() {return props.navigationSection
6809
6888
  },get mode() {return mode()
@@ -6813,12 +6892,12 @@ return _$createComponent57(Section,{get api() {return props.api
6813
6892
  })
6814
6893
  }
6815
6894
  })
6816
- },children:(message)=>(()=>{var _el$=_$createElement55("text"),_el$2=_$createTextNode33(` `)
6817
- _$insertNode39(_el$,_el$2)
6818
- _$setProp50(_el$,"wrapMode","word")
6819
- _$insert47(_el$,()=>icons.icon("info"),_el$2)
6820
- _$insert47(_el$,message,null)
6821
- _$effect50((_$p)=>_$setProp50(_el$,"fg",props.api.theme.current.textMuted,_$p))
6895
+ },children:(message)=>(()=>{var _el$=_$createElement56("text"),_el$2=_$createTextNode35(` `)
6896
+ _$insertNode41(_el$,_el$2)
6897
+ _$setProp51(_el$,"wrapMode","word")
6898
+ _$insert48(_el$,()=>icons.icon("info"),_el$2)
6899
+ _$insert48(_el$,message,null)
6900
+ _$effect51((_$p)=>_$setProp51(_el$,"fg",props.api.theme.current.textMuted,_$p))
6822
6901
  return _el$
6823
6902
  })()
6824
6903
  })
@@ -6828,44 +6907,44 @@ return _el$
6828
6907
  function SidebarContent(props) {const sections=props.preferences.sections
6829
6908
  const visibleSections=createMemo18(()=>props.preferences.sectionOrder().filter((section)=>sections()[section]&&supportsSidebarSection(props.api,section)))
6830
6909
  onCleanup19(()=>props.interaction.setContentRoot(undefined))
6831
- return (()=>{var _el$=_$createElement56("box")
6910
+ return (()=>{var _el$=_$createElement57("box")
6832
6911
  _$use10((node)=>props.interaction.setContentRoot(node),_el$)
6833
- _$setProp51(_el$,"id",`${PLUGIN_ID}.root`)
6834
- _$setProp51(_el$,"focusable",true)
6835
- _$setProp51(_el$,"gap",1)
6836
- _$setProp51(_el$,"onKeyDown",(event)=>{if (event.name!=="escape"||event.defaultPrevented)
6912
+ _$setProp52(_el$,"id",`${PLUGIN_ID}.root`)
6913
+ _$setProp52(_el$,"focusable",true)
6914
+ _$setProp52(_el$,"gap",1)
6915
+ _$setProp52(_el$,"onKeyDown",(event)=>{if (event.name!=="escape"||event.defaultPrevented)
6837
6916
  return
6838
6917
  event.preventDefault()
6839
6918
  event.stopPropagation()
6840
6919
  props.interaction.leave()
6841
6920
  })
6842
- _$insert48(_el$,_$createComponent58(For18,{get each() {return visibleSections()
6843
- },children:(section,index)=>_$createComponent58(SectionBoundary,{get api() {return props.api
6921
+ _$insert49(_el$,_$createComponent61(For18,{get each() {return visibleSections()
6922
+ },children:(section,index)=>_$createComponent61(SectionBoundary,{get api() {return props.api
6844
6923
  },get divided() {return index()<visibleSections().length - 1
6845
- },get children() {return _$createComponent58(Switch,{get children() {return [_$createComponent58(Match,{when:section==="todo",get children() {return _$createComponent58(TodoSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6924
+ },get children() {return _$createComponent61(Switch,{get children() {return [_$createComponent61(Match,{when:section==="todo",get children() {return _$createComponent61(TodoSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6846
6925
  },get controller() {return props.todo
6847
6926
  }
6848
6927
  }))
6849
6928
  }
6850
- }),_$createComponent58(Match,{when:section==="subagents",get children() {return _$createComponent58(SubagentSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6929
+ }),_$createComponent61(Match,{when:section==="subagents",get children() {return _$createComponent61(SubagentSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6851
6930
  },get controller() {return props.subagents
6852
6931
  }
6853
6932
  }))
6854
6933
  }
6855
- }),_$createComponent58(Match,{when:section==="skills",get children() {return _$createComponent58(SkillsSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6934
+ }),_$createComponent61(Match,{when:section==="skills",get children() {return _$createComponent61(SkillsSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6856
6935
  },get controller() {return props.skills
6857
6936
  }
6858
6937
  }))
6859
6938
  }
6860
- }),_$createComponent58(Match,{when:section==="quick_actions",get children() {return _$createComponent58(QuickActionsSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6939
+ }),_$createComponent61(Match,{when:section==="quick_actions",get children() {return _$createComponent61(QuickActionsSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6861
6940
  }
6862
6941
  }))
6863
6942
  }
6864
- }),_$createComponent58(Match,{when:section==="lsp",get children() {return _$createComponent58(LspSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6943
+ }),_$createComponent61(Match,{when:section==="lsp",get children() {return _$createComponent61(LspSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6865
6944
  }
6866
6945
  }))
6867
6946
  }
6868
- }),_$createComponent58(Match,{when:section==="mcp",get children() {return _$createComponent58(McpSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6947
+ }),_$createComponent61(Match,{when:section==="mcp",get children() {return _$createComponent61(McpSection,_$mergeProps9(props,{get navigationSection() {return index() + 1
6869
6948
  },get controller() {return props.mcp
6870
6949
  }
6871
6950
  }))
@@ -6876,17 +6955,17 @@ _$insert48(_el$,_$createComponent58(For18,{get each() {return visibleSections()
6876
6955
  }
6877
6956
  })
6878
6957
  }))
6879
- _$effect51((_p$)=>{var _v$=props.interaction.syncFocus,_v$2=props.interaction.syncFocus
6880
- _v$!==_p$.e&&(_p$.e=_$setProp51(_el$,"on:focused",_v$,_p$.e))
6881
- _v$2!==_p$.t&&(_p$.t=_$setProp51(_el$,"on:blurred",_v$2,_p$.t))
6958
+ _$effect52((_p$)=>{var _v$=props.interaction.syncFocus,_v$2=props.interaction.syncFocus
6959
+ _v$!==_p$.e&&(_p$.e=_$setProp52(_el$,"on:focused",_v$,_p$.e))
6960
+ _v$2!==_p$.t&&(_p$.t=_$setProp52(_el$,"on:blurred",_v$2,_p$.t))
6882
6961
  return _p$
6883
6962
  },{e:undefined,t:undefined
6884
6963
  })
6885
6964
  return _el$
6886
6965
  })()
6887
6966
  }
6888
- import {createElement as _$createElement57} from "@opentui/solid"
6889
- import {createEffect as createEffect15,createMemo as createMemo19,onCleanup as onCleanup20,untrack as untrack7} from "solid-js"
6967
+
6968
+
6890
6969
  function McpPersistence(props) {const persist=createMemo19(()=>props.controller.persist())
6891
6970
  createEffect15(()=>{if (!props.api.state.ready)
6892
6971
  return
@@ -6899,14 +6978,14 @@ const current=props.controller.target()
6899
6978
  onCleanup20(()=>props.controller.deactivate(current))
6900
6979
  untrack7(()=>void props.controller.activate(current).catch(()=>{}))
6901
6980
  })
6902
- return _$createElement57("box")
6981
+ return _$createElement58("box")
6903
6982
  }
6904
6983
  function PreferencesPersistence(props) {createEffect15(()=>{const location=currentLocation(props.api)
6905
6984
  untrack7(()=>props.controller.setActiveScope(preferencesScope({directory:location.routing.directory,worktree:props.api.state.path.worktree
6906
6985
  })))
6907
6986
  props.controller.load()
6908
6987
  })
6909
- return _$createElement57("box")
6988
+ return _$createElement58("box")
6910
6989
  }
6911
6990
  function FirstRunWizardPersistence(props) {let isChecked=false
6912
6991
  createEffect15(()=>{if (isChecked)
@@ -6914,16 +6993,16 @@ return
6914
6993
  isChecked=true
6915
6994
  showFirstRunWizard(props.api,props.preferences).catch(()=>{})
6916
6995
  })
6917
- return _$createElement57("box")
6996
+ return _$createElement58("box")
6918
6997
  }
6919
- import {effect as _$effect52} from "@opentui/solid"
6920
- import {createComponent as _$createComponent59} from "@opentui/solid"
6921
- import {insertNode as _$insertNode40} from "@opentui/solid"
6922
- import {insert as _$insert49} from "@opentui/solid"
6923
- import {setProp as _$setProp52} from "@opentui/solid"
6924
- import {use as _$use11} from "@opentui/solid"
6925
- import {createElement as _$createElement58} from "@opentui/solid"
6926
- import {Show as Show23,createMemo as createMemo20,onCleanup as onCleanup21} from "solid-js"
6998
+
6999
+
7000
+
7001
+
7002
+
7003
+
7004
+
7005
+
6927
7006
  function SidebarTitle(props) {const icons=useIcons()
6928
7007
  const theme=()=>props.api.theme.current
6929
7008
  const created=createMemo20(()=>{const value=props.api.state.session.get(props.sessionID)?.time?.created
@@ -6936,45 +7015,45 @@ const settings=useSidebarItem(props.api,props.interaction,{id:settingsId,positio
6936
7015
  },activate:()=>openSettings(props.api,props.preferences,undefined,props.mcp)
6937
7016
  },()=>theme().textMuted,"control")
6938
7017
  onCleanup21(()=>props.interaction.setTitleRoot(undefined))
6939
- return (()=>{var _el$=_$createElement58("box"),_el$2=_$createElement58("box"),_el$3=_$createElement58("box"),_el$4=_$createElement58("text"),_el$5=_$createElement58("b")
6940
- _$insertNode40(_el$,_el$2)
7018
+ return (()=>{var _el$=_$createElement59("box"),_el$2=_$createElement59("box"),_el$3=_$createElement59("box"),_el$4=_$createElement59("text"),_el$5=_$createElement59("b")
7019
+ _$insertNode42(_el$,_el$2)
6941
7020
  _$use11((node)=>props.interaction.setTitleRoot(node),_el$)
6942
- _$setProp52(_el$,"border",["bottom"])
6943
- _$setProp52(_el$,"paddingBottom",1)
6944
- _$insertNode40(_el$2,_el$3)
6945
- _$setProp52(_el$2,"flexDirection","row")
6946
- _$setProp52(_el$2,"justifyContent","space-between")
6947
- _$setProp52(_el$2,"gap",1)
6948
- _$insertNode40(_el$3,_el$4)
6949
- _$setProp52(_el$3,"flexGrow",1)
6950
- _$insertNode40(_el$4,_el$5)
6951
- _$setProp52(_el$4,"wrapMode","word")
6952
- _$insert49(_el$5,()=>props.title)
6953
- _$insert49(_el$3,_$createComponent59(Show23,{get when() {return created()
6954
- },children:(value)=>(()=>{var _el$6=_$createElement58("text")
6955
- _$insert49(_el$6,value)
6956
- _$effect52((_$p)=>_$setProp52(_el$6,"fg",theme().textMuted,_$p))
7021
+ _$setProp53(_el$,"border",["bottom"])
7022
+ _$setProp53(_el$,"paddingBottom",1)
7023
+ _$insertNode42(_el$2,_el$3)
7024
+ _$setProp53(_el$2,"flexDirection","row")
7025
+ _$setProp53(_el$2,"justifyContent","space-between")
7026
+ _$setProp53(_el$2,"gap",1)
7027
+ _$insertNode42(_el$3,_el$4)
7028
+ _$setProp53(_el$3,"flexGrow",1)
7029
+ _$insertNode42(_el$4,_el$5)
7030
+ _$setProp53(_el$4,"wrapMode","word")
7031
+ _$insert50(_el$5,()=>props.title)
7032
+ _$insert50(_el$3,_$createComponent62(Show23,{get when() {return created()
7033
+ },children:(value)=>(()=>{var _el$6=_$createElement59("text")
7034
+ _$insert50(_el$6,value)
7035
+ _$effect53((_$p)=>_$setProp53(_el$6,"fg",theme().textMuted,_$p))
6957
7036
  return _el$6
6958
7037
  })()
6959
7038
  }),null)
6960
- _$insert49(_el$2,_$createComponent59(IconControl,{ref:(node)=>settings.ref(node),id:settingsId,get icon() {return icons.icon("settings")
7039
+ _$insert50(_el$2,_$createComponent62(IconControl,{ref:(node)=>settings.ref(node),id:settingsId,get icon() {return icons.icon("settings")
6961
7040
  },get backgroundColor() {return settings.backgroundColor()
6962
7041
  },get foregroundColor() {return settings.foregroundColor()
6963
7042
  },get onMouseOver() {return settings.onMouseOver
6964
7043
  },get onMouseOut() {return settings.onMouseOut
6965
7044
  },onMouseUp:(event)=>settings.activate(event)
6966
7045
  }),null)
6967
- _$effect52((_p$)=>{var _v$=theme().borderSubtle,_v$2=theme().text
6968
- _v$!==_p$.e&&(_p$.e=_$setProp52(_el$,"borderColor",_v$,_p$.e))
6969
- _v$2!==_p$.t&&(_p$.t=_$setProp52(_el$4,"fg",_v$2,_p$.t))
7046
+ _$effect53((_p$)=>{var _v$=theme().borderSubtle,_v$2=theme().text
7047
+ _v$!==_p$.e&&(_p$.e=_$setProp53(_el$,"borderColor",_v$,_p$.e))
7048
+ _v$2!==_p$.t&&(_p$.t=_$setProp53(_el$4,"fg",_v$2,_p$.t))
6970
7049
  return _p$
6971
7050
  },{e:undefined,t:undefined
6972
7051
  })
6973
7052
  return _el$
6974
7053
  })()
6975
7054
  }
6976
- import {readFile as readFile2} from "fs/promises"
6977
- import {dirname,join as join2} from "path"
7055
+
7056
+
6978
7057
  function isMissing(error) {const value=error
6979
7058
  return value?.code==="ENOENT"||value?.status===404||value?.statusCode===404||/not found|enoent/i.test(value?.message??"")
6980
7059
  }
@@ -6998,8 +7077,8 @@ const [user,project]=await Promise.all([safe(userPath?readSource(userPath,()=>re
6998
7077
  ])
6999
7078
  return mergeConfiguredDefaults(configuredDefaultsFromPluginOptions(options),user,project)
7000
7079
  }
7001
- import {homedir} from "os"
7002
- import {join as join3} from "path"
7080
+ import {homedir,homedir as homedir2} from "os"
7081
+
7003
7082
  function location(input) {return input.directory?{location:{directory:input.directory}}:{}
7004
7083
  }
7005
7084
  function mcpItem(server) {return {name:server.name,status:server.status.status,...server.status.error&&{error:server.status.error}
@@ -7099,8 +7178,8 @@ unsubscribe()
7099
7178
  }
7100
7179
  }
7101
7180
  }
7102
- import {createElement as _$createElement59} from "@opentui/solid"
7103
- import {createSignal as createSignal27} from "solid-js"
7181
+
7182
+
7104
7183
  function belongsTo2(renderable,ancestor) {if (!renderable||!ancestor)
7105
7184
  return false
7106
7185
  for(let current=renderable;current; current=current.parent) {if (current===ancestor)
@@ -7149,7 +7228,7 @@ const bindings=commands.flatMap((command)=>command.id?[command.id]:[])
7149
7228
  return{mode:"global",priority:2000,commands,bindings
7150
7229
  }
7151
7230
  })
7152
- return _$createElement59("box")
7231
+ return _$createElement60("box")
7153
7232
  }
7154
7233
  const keymap={registerLayer(layer) {const id=++sequence
7155
7234
  layers.set(id,layer)
@@ -7214,10 +7293,10 @@ return{data}
7214
7293
  }
7215
7294
  }
7216
7295
  }
7217
- import {memo as _$memo41} from "@opentui/solid"
7218
- import {createComponent as _$createComponent60} from "@opentui/solid"
7296
+
7297
+
7219
7298
  function createV2Slots(context,keymap,onDispose) {return {register(plugin) {const slots=plugin.slots
7220
- const cleanups=[context.ui.slot({append:"app",render:()=>[_$createComponent60(keymap.Bridge,{}),_$memo41(()=>slots.app?.(undefined,{}))]
7299
+ const cleanups=[context.ui.slot({append:"app",render:()=>[_$createComponent63(keymap.Bridge,{}),_$memo42(()=>slots.app?.(undefined,{}))]
7221
7300
  }),context.ui.slot({replace:"sidebar.content",render:(input)=>{const sessionID=input.sessionID
7222
7301
  return slots.sidebar_content?.(undefined,{session_id:sessionID
7223
7302
  })
@@ -7232,8 +7311,8 @@ return "opencode-navigator"
7232
7311
  function legacyTheme(theme) {return {primary:theme.hue.interactive[200],secondary:theme.categorical[0]?.[200]??theme.hue.accent[200],accent:theme.hue.accent[200],error:theme.text.feedback.error.base,warning:theme.text.feedback.warning.base,success:theme.text.feedback.success.base,info:theme.text.feedback.info.base,text:theme.text.base,textMuted:theme.text.muted,selectedListItemText:theme.text.action.primary.focused,background:theme.background.base,backgroundPanel:theme.background.raised.base,backgroundElement:theme.background.raised.high,backgroundMenu:theme.background.raised.max,border:theme.border.base,borderActive:theme.scrollbar.base,borderSubtle:theme.hue.neutral[500],diffAdded:theme.diff.text.added,diffRemoved:theme.diff.text.removed,diffContext:theme.diff.text.context,diffHunkHeader:theme.diff.text.hunkHeader,diffHighlightAdded:theme.diff.highlight.added,diffHighlightRemoved:theme.diff.highlight.removed,diffAddedBg:theme.diff.background.added,diffRemovedBg:theme.diff.background.removed,diffContextBg:theme.diff.background.context,diffLineNumber:theme.diff.lineNumber.text,diffAddedLineNumberBg:theme.diff.lineNumber.background.added,diffRemovedLineNumberBg:theme.diff.lineNumber.background.removed,markdownText:theme.markdown.text,markdownHeading:theme.markdown.heading,markdownLink:theme.markdown.link,markdownLinkText:theme.markdown.linkText,markdownCode:theme.markdown.code,markdownBlockQuote:theme.markdown.blockQuote,markdownEmph:theme.markdown.emphasis,markdownStrong:theme.markdown.strong,markdownHorizontalRule:theme.markdown.horizontalRule,markdownListItem:theme.markdown.listItem,markdownListEnumeration:theme.markdown.listEnumeration,markdownImage:theme.markdown.image,markdownImageText:theme.markdown.imageText,markdownCodeBlock:theme.markdown.codeBlock,syntaxComment:theme.syntax.comment,syntaxKeyword:theme.syntax.keyword,syntaxFunction:theme.syntax.function,syntaxVariable:theme.syntax.variable,syntaxString:theme.syntax.string,syntaxNumber:theme.syntax.number,syntaxType:theme.syntax.type,syntaxOperator:theme.syntax.operator,syntaxPunctuation:theme.syntax.punctuation,thinkingOpacity:0.6
7233
7312
  }
7234
7313
  }
7235
- import {createElement as _$createElement60} from "@opentui/solid"
7236
- import {onCleanup as onCleanup22,onMount as onMount5} from "solid-js"
7314
+
7315
+
7237
7316
  function createV2UI(context) {let dialogOpen=false
7238
7317
  function DialogPrompt(props) {let active=true
7239
7318
  onCleanup22(()=>{active=false
@@ -7247,9 +7326,23 @@ props.onCancel?.()
7247
7326
  else
7248
7327
  props.onConfirm?.(value)
7249
7328
  })
7250
- return _$createElement60("box")
7329
+ return _$createElement61("box")
7251
7330
  }
7252
- return{DialogPrompt,toast:(input)=>context.ui.toast.show(input),dialog:{replace(render,onClose) {dialogOpen=true
7331
+ function DialogConfirm(props) {let active=true
7332
+ onCleanup22(()=>{active=false
7333
+ })
7334
+ onMount5(async ()=>{const confirmed=await context.ui.dialog.confirm({title:props.title,message:props.message
7335
+ })
7336
+ if(!active)
7337
+ return
7338
+ if(confirmed)
7339
+ props.onConfirm?.()
7340
+ else
7341
+ props.onCancel?.()
7342
+ })
7343
+ return _$createElement61("box")
7344
+ }
7345
+ return{DialogConfirm,DialogPrompt,toast:(input)=>context.ui.toast.show(input),dialog:{replace(render,onClose) {dialogOpen=true
7253
7346
  context.ui.dialog.show(render,()=>{dialogOpen=false
7254
7347
  onClose?.()
7255
7348
  })
@@ -7317,6 +7410,57 @@ disposers.length=0
7317
7410
  }
7318
7411
  }
7319
7412
  }
7413
+
7414
+
7415
+ var run=async (command)=>{const child=Bun.spawn([...command],{stdout:"ignore",stderr:"pipe"})
7416
+ const error=new Response(child.stderr).text()
7417
+ const exitCode=await child.exited
7418
+ if(exitCode===0)
7419
+ return
7420
+ const message=await error
7421
+ throw new Error(message.trim()||`Command failed with exit code ${child.exitCode}`)
7422
+ }
7423
+ var readConfig=async (path)=>{const file=Bun.file(path)
7424
+ return await file.exists()?Bun.JSONC.parse(await file.text()):undefined
7425
+ }
7426
+ function configHasPlugin(value,spec) {if (!value||typeof value!=="object")
7427
+ return false
7428
+ const plugins=value.plugin
7429
+ return Array.isArray(plugins)&&plugins.some((item)=>{let configured=item
7430
+ if(Array.isArray(item))
7431
+ configured=item[0]
7432
+ else if (item&&typeof item==="object")
7433
+ configured=item.package
7434
+ return configured===spec
7435
+ })
7436
+ }
7437
+ async function v1Global(api,spec,read) {const configRoot=process.env.OPENCODE_CONFIG_DIR??join4(process.env.XDG_CONFIG_HOME??join4(homedir2(),".config"),"opencode")
7438
+ const global=join4(configRoot,"tui.json")
7439
+ const configured=api.state.path.config.endsWith(".json")?api.state.path.config:join4(api.state.path.config,"tui.json")
7440
+ const local=new Set([configured,join4(api.state.path.worktree,".opencode","tui.json")])
7441
+ local.delete(global)
7442
+ for(const path of local)
7443
+ if(configHasPlugin(await read(path),spec))
7444
+ return false
7445
+ return configHasPlugin(await read(global),spec)
7446
+ }
7447
+ function createOpenCodeV1VersionUpdater(api,meta,execute=run,read=readConfig) {return {openCode:(target)=>execute([process.execPath,"upgrade",target]),async navigator(target) {if (meta.source!=="npm")
7448
+ throw new Error("Local Navigator installations must be updated from their source path.")
7449
+ const result=await api.plugins.install(`opencode-navigator@${target}`,{global:await v1Global(api,meta.spec,read)
7450
+ })
7451
+ if(!result.ok)
7452
+ throw new Error(result.message)
7453
+ }
7454
+ }
7455
+ }
7456
+ function createOpenCodeV2VersionUpdater(context,execute=run) {return {openCode:(target)=>execute([process.execPath,"upgrade",target]),async navigator() {const response=await context.client.plugin.list(context.location?{location:context.location}:{})
7457
+ const item=response.data.find((plugin)=>plugin.id===PLUGIN_ID)
7458
+ if(!item||item.source.type!=="package")
7459
+ throw new Error("Local Navigator installations must be updated from their source path.")
7460
+ await context.client.plugin.update({location:response.location,targets:[item.source.target]})
7461
+ }
7462
+ }
7463
+ }
7320
7464
  async function setupNavigator(api,options,readProject) {const config=pluginConfig(undefined)
7321
7465
  const configured=await loadConfiguredDefaults(api,options,readProject)
7322
7466
  const todo=createTodoController(api)
@@ -7335,29 +7479,29 @@ mcp.reconnect().catch(()=>{})
7335
7479
  })
7336
7480
  api.lifecycle.onDispose(unsubscribeMcp)
7337
7481
  api.lifecycle.onDispose(unsubscribeConnected)
7338
- api.slots.register({order:100,slots:{app() {return _$createComponent61(IconProvider,{get style() {return preferences.lspIconStyle
7482
+ api.slots.register({order:100,slots:{app() {return _$createComponent64(IconProvider,{get style() {return preferences.lspIconStyle
7339
7483
  },get multilineCorners() {return preferences.cornerFont
7340
- },get children() {return [_$createComponent61(PreferencesPersistence,{api,controller:preferences
7341
- }),_$createComponent61(SettingsBinding,{api,preferences,mcp
7342
- }),_$createComponent61(SidebarToggleBinding,{api,preferences
7343
- }),_$createComponent61(SidebarFocusBinding,{api,preferences,interaction
7344
- }),_$createComponent61(SearchBinding,{api,preferences,interaction,skills,subagents,mcp
7345
- }),_$createComponent61(FirstRunWizardPersistence,{api,preferences
7346
- }),_$createComponent61(McpPersistence,{api,controller:mcp
7484
+ },get children() {return [_$createComponent64(PreferencesPersistence,{api,controller:preferences
7485
+ }),_$createComponent64(SettingsBinding,{api,preferences,mcp
7486
+ }),_$createComponent64(SidebarToggleBinding,{api,preferences
7487
+ }),_$createComponent64(SidebarFocusBinding,{api,preferences,interaction
7488
+ }),_$createComponent64(SearchBinding,{api,preferences,interaction,skills,subagents,mcp
7489
+ }),_$createComponent64(FirstRunWizardPersistence,{api,preferences
7490
+ }),_$createComponent64(McpPersistence,{api,controller:mcp
7347
7491
  })]
7348
7492
  }
7349
7493
  })
7350
- },sidebar_title(_context,props) {return _$createComponent61(IconProvider,{get style() {return preferences.lspIconStyle
7494
+ },sidebar_title(_context,props) {return _$createComponent64(IconProvider,{get style() {return preferences.lspIconStyle
7351
7495
  },get multilineCorners() {return preferences.cornerFont
7352
- },get children() {return _$createComponent61(SidebarTitle,{api,preferences,mcp,interaction,get sessionID() {return props.session_id
7496
+ },get children() {return _$createComponent64(SidebarTitle,{api,preferences,mcp,interaction,get sessionID() {return props.session_id
7353
7497
  },get title() {return props.title
7354
7498
  }
7355
7499
  })
7356
7500
  }
7357
7501
  })
7358
- },sidebar_content(_context,props) {return _$createComponent61(IconProvider,{get style() {return preferences.lspIconStyle
7502
+ },sidebar_content(_context,props) {return _$createComponent64(IconProvider,{get style() {return preferences.lspIconStyle
7359
7503
  },get multilineCorners() {return preferences.cornerFont
7360
- },get children() {return _$createComponent61(SidebarContent,{api,mcp,todo,subagents,skills,preferences,interaction,get sessionID() {return props.session_id
7504
+ },get children() {return _$createComponent64(SidebarContent,{api,mcp,todo,subagents,skills,preferences,interaction,get sessionID() {return props.session_id
7361
7505
  }
7362
7506
  })
7363
7507
  }
@@ -7368,7 +7512,7 @@ api.slots.register({order:100,slots:{app() {return _$createComponent61(IconProvi
7368
7512
  return{mcp,preferences
7369
7513
  }
7370
7514
  }
7371
- var setupOpenCodeV1=async (api,options)=>{const {preferences
7515
+ var setupOpenCodeV1=async (api,options,meta)=>{const {preferences
7372
7516
  }=await setupNavigator(api,options,async ()=>{if (!api.client?.file?.read||!api.state.path.worktree)
7373
7517
  return
7374
7518
  const result=await api.client.file.read({directory:api.state.path.worktree,path:".opencode/navigator.json"
@@ -7379,11 +7523,14 @@ throw result.error
7379
7523
  }
7380
7524
  return result.data?.type==="text"?result.data.content:undefined
7381
7525
  })
7382
- const versionStatus=createVersionStatus(api,"0.15.0")
7383
- api.slots.register({order:90,slots:{sidebar_footer(_context,props) {return _$createComponent61(IconProvider,{get style() {return preferences.lspIconStyle
7526
+ const versionStatus=createVersionStatus(api,"0.16.0")
7527
+ const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta))
7528
+ api.slots.register({order:90,slots:{sidebar_footer(_context,props) {return _$createComponent64(IconProvider,{get style() {return preferences.lspIconStyle
7384
7529
  },get multilineCorners() {return preferences.cornerFont
7385
- },get children() {return _$createComponent61(VersionFooter,{api,get sessionID() {return props.session_id
7386
- },navigatorVersion:"0.15.0",status:versionStatus
7530
+ },get children() {return _$createComponent64(VersionFooter,{api,get sessionID() {return props.session_id
7531
+ },navigatorVersion:"0.16.0",status:versionStatus,get onOpenCodeUpdate() {return versionUpdates.openCode
7532
+ },get onNavigatorUpdate() {return versionUpdates.navigator
7533
+ }
7387
7534
  })
7388
7535
  }
7389
7536
  })
@@ -7398,16 +7545,19 @@ return
7398
7545
  return new TextDecoder().decode(await context.client.file.read({location:context.location,path:".opencode/navigator.json"
7399
7546
  }))
7400
7547
  })
7401
- const versionStatus=createVersionStatus(adapter.api,"0.15.0")
7402
- const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent61(IconProvider,{get style() {return preferences.lspIconStyle
7548
+ const versionStatus=createVersionStatus(adapter.api,"0.16.0")
7549
+ const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context))
7550
+ const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent64(IconProvider,{get style() {return preferences.lspIconStyle
7403
7551
  },get multilineCorners() {return preferences.cornerFont
7404
- },get children() {var _el$=_$createElement61("box")
7405
- _$setProp53(_el$,"flexDirection","row")
7406
- _$setProp53(_el$,"justifyContent","space-between")
7407
- _$insert50(_el$,_$createComponent61(NavigatorVersion,{get api() {return adapter.api
7408
- },navigatorVersion:"0.15.0",status:versionStatus
7552
+ },get children() {var _el$=_$createElement62("box")
7553
+ _$setProp54(_el$,"flexDirection","row")
7554
+ _$setProp54(_el$,"justifyContent","space-between")
7555
+ _$insert51(_el$,_$createComponent64(VersionSummary,{get api() {return adapter.api
7556
+ },navigatorVersion:"0.16.0",status:versionStatus,get onOpenCodeUpdate() {return versionUpdates.openCode
7557
+ },get onNavigatorUpdate() {return versionUpdates.navigator
7558
+ }
7409
7559
  }),null)
7410
- _$insert50(_el$,_$createComponent61(SettingsFooterButton,{get api() {return adapter.api
7560
+ _$insert51(_el$,_$createComponent64(SettingsFooterButton,{get api() {return adapter.api
7411
7561
  },preferences,mcp
7412
7562
  }),null)
7413
7563
  return _el$