opencode-navigator 0.21.5 → 0.21.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.21.6] - 2026-10-09
6
+
7
+ - Refine Limits with a continuous muted guide, full-width thin-line quota scales, and reset-left/remaining-right details. Keep long reset text from overlapping the remaining value and preserve Text fallback, resize clipping, and existing controls.
8
+
5
9
  ## [0.21.5] - 2026-10-07
6
10
 
7
11
  - Make automatic Limits refresh configurable in scoped Behavior settings and portable configuration, with a five-minute default and one-minute minimum. Keep manual Refresh and supported model/account switches immediate.
@@ -100,6 +104,7 @@
100
104
 
101
105
  Earlier release notes are available on [GitHub Releases](https://github.com/St1ggy/opencode-navigator/releases).
102
106
 
107
+ [0.21.6]: https://github.com/St1ggy/opencode-navigator/compare/v0.21.5...v0.21.6
103
108
  [0.21.5]: https://github.com/St1ggy/opencode-navigator/compare/v0.21.4...v0.21.5
104
109
  [0.21.4]: https://github.com/St1ggy/opencode-navigator/compare/v0.21.3...v0.21.4
105
110
  [0.21.3]: https://github.com/St1ggy/opencode-navigator/compare/v0.21.2...v0.21.3
package/README.md CHANGED
@@ -432,9 +432,11 @@ Codex account** and **Unlink Codex account** for the outdated manual association
432
432
  bindings are reused; conflicting bindings remain isolated until a deliberate relink.
433
433
 
434
434
  Limits starts with **[Provider name] Model name · variant**. Activate the model or
435
- variant with the mouse or keyboard to open OpenCode's native selector. Each quota
436
- window uses two compact rows: remaining headroom with an adaptive muted thin-line
437
- scale spanning the available sidebar content width, then a muted reset time.
435
+ variant with the mouse or keyboard to open OpenCode's native selector. A muted
436
+ vertical guide joins the quota windows, with one guide-only row between them
437
+ (`|` in Text fallback). Each window uses two compact rows: a full-width adaptive
438
+ thin-line scale, then muted reset time on the left and remaining headroom aligned
439
+ to the right. The remaining value keeps its own space; long reset text is clipped.
438
440
  Both rows stay within the sidebar's padding when it resizes. Healthy views omit
439
441
  account IDs, technical scope/window-duration suffixes, source explanations, and update timestamps. Account scope and native window durations remain in the data model;
440
442
  durations describe provider quota windows, not time remaining until reset. Balances retain their native
@@ -389,42 +389,56 @@ const [columns,setColumns]=createSignal4(0)
389
389
  const view=()=>quotaPresentation(props.window)
390
390
  const scale=()=>{const ratio=view().ratio
391
391
  if(ratio===undefined)
392
- return " \xB7 scale unknown"
393
- const width=Math.max(0,columns()-Bun.stringWidth(view().value)-1)
392
+ return "Scale unknown"
393
+ const width=columns()
394
394
  const filled=Math.round(ratio*width)
395
395
  const symbols=icons.style()==="text"?["=","-"]:["\u2501","\u2500"]
396
- return width?` ${symbols[0].repeat(filled)}${symbols[1].repeat(width - filled)}`:""
396
+ return symbols[0].repeat(filled) + symbols[1].repeat(width-filled)
397
397
  }
398
- return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("text"),_el$3=_$createElement("span"),_el$4=_$createElement("text")
398
+ const valueWidth=()=>Math.min(columns(),Bun.stringWidth(view().value))
399
+ const gap=()=>columns()>valueWidth()?1:0
400
+ const resetWidth=()=>Math.max(0,columns()-valueWidth()-gap())
401
+ return(()=>{var _el$=_$createElement("box"),_el$2=_$createElement("text"),_el$3=_$createElement("box"),_el$4=_$createElement("text"),_el$5=_$createElement("text")
399
402
  _$insertNode(_el$,_el$2)
400
- _$insertNode(_el$,_el$4)
403
+ _$insertNode(_el$,_el$3)
401
404
  _$setProp(_el$,"width","100%")
402
405
  _$setProp(_el$,"minWidth",0)
403
406
  _$setProp(_el$,"flexShrink",1)
407
+ _$setProp(_el$,"height",2)
404
408
  _$setProp(_el$,"overflow","hidden")
405
409
  _$setProp(_el$,"onSizeChange",function(){setColumns(this.width)
406
410
  })
407
- _$insertNode(_el$2,_el$3)
408
411
  _$setProp(_el$2,"width","100%")
409
412
  _$setProp(_el$2,"minWidth",0)
410
413
  _$setProp(_el$2,"height",1)
411
414
  _$setProp(_el$2,"wrapMode","none")
412
415
  _$setProp(_el$2,"truncate",true)
413
- _$insert(_el$3,()=>view().value)
414
- _$insert(_el$2,scale,null)
415
- _$setProp(_el$4,"width","100%")
416
+ _$insert(_el$2,scale)
417
+ _$insertNode(_el$3,_el$4)
418
+ _$insertNode(_el$3,_el$5)
419
+ _$setProp(_el$3,"width","100%")
420
+ _$setProp(_el$3,"minWidth",0)
421
+ _$setProp(_el$3,"height",1)
422
+ _$setProp(_el$3,"flexDirection","row")
423
+ _$setProp(_el$3,"overflow","hidden")
416
424
  _$setProp(_el$4,"minWidth",0)
417
425
  _$setProp(_el$4,"height",1)
418
426
  _$setProp(_el$4,"wrapMode","none")
419
427
  _$setProp(_el$4,"truncate",true)
420
428
  _$insert(_el$4,()=>view().reset)
421
- _$effect((_p$)=>{var _v$=props.api.theme.current.textMuted,_v$2={fg:props.api.theme.current.text
422
- },_v$3=props.api.theme.current.textMuted
429
+ _$setProp(_el$5,"height",1)
430
+ _$setProp(_el$5,"wrapMode","none")
431
+ _$setProp(_el$5,"truncate",true)
432
+ _$insert(_el$5,()=>view().value)
433
+ _$effect((_p$)=>{var _v$=props.api.theme.current.textMuted,_v$2=resetWidth(),_v$3=props.api.theme.current.textMuted,_v$4=valueWidth(),_v$5=gap(),_v$6=props.api.theme.current.text
423
434
  _v$!==_p$.e&&(_p$.e=_$setProp(_el$2,"fg",_v$,_p$.e))
424
- _v$2!==_p$.t&&(_p$.t=_$setProp(_el$3,"style",_v$2,_p$.t))
435
+ _v$2!==_p$.t&&(_p$.t=_$setProp(_el$4,"width",_v$2,_p$.t))
425
436
  _v$3!==_p$.a&&(_p$.a=_$setProp(_el$4,"fg",_v$3,_p$.a))
437
+ _v$4!==_p$.o&&(_p$.o=_$setProp(_el$5,"width",_v$4,_p$.o))
438
+ _v$5!==_p$.i&&(_p$.i=_$setProp(_el$5,"marginLeft",_v$5,_p$.i))
439
+ _v$6!==_p$.n&&(_p$.n=_$setProp(_el$5,"fg",_v$6,_p$.n))
426
440
  return _p$
427
- },{e:undefined,t:undefined,a:undefined
441
+ },{e:undefined,t:undefined,a:undefined,o:undefined,i:undefined,n:undefined
428
442
  })
429
443
  return _el$
430
444
  })()
@@ -509,8 +523,8 @@ else if(option.value.startsWith("credit:"))
509
523
  actions.review(option.value.slice("credit:".length)||undefined)
510
524
  }})
511
525
  }
512
- import {createComponent as _$createComponent4} from "@opentui/solid"
513
- import {For} from "solid-js"
526
+ import {createComponent as _$createComponent5} from "@opentui/solid"
527
+ import {For as For2,Show} from "solid-js"
514
528
  import {effect as _$effect2} from "@opentui/solid"
515
529
  import {insertNode as _$insertNode2} from "@opentui/solid"
516
530
  import {insert as _$insert2} from "@opentui/solid"
@@ -535,12 +549,50 @@ return _p$
535
549
  return _el$
536
550
  })()
537
551
  }
538
- function QuotaSnapshotRows(props){return [_$createComponent4(For,{get each(){return props.snapshot.windows
552
+ import {effect as _$effect3} from "@opentui/solid"
553
+ import {insertNode as _$insertNode3} from "@opentui/solid"
554
+ import {createComponent as _$createComponent4} from "@opentui/solid"
555
+ import {insert as _$insert3} from "@opentui/solid"
556
+ import {setProp as _$setProp3} from "@opentui/solid"
557
+ import {createElement as _$createElement3} from "@opentui/solid"
558
+ import {For} from "solid-js"
559
+ import {useIcons as useIcons2} from "./tui.js"
560
+ function QuotaWindowGroup(props){const icons=useIcons2()
561
+ const guide=()=>Array.from({length:Math.max(0,props.windows.length*3-1)
562
+ },()=>icons.style()==="text"?"|":"\u2502").join(`
563
+ `)
564
+ return(()=>{var _el$=_$createElement3("box"),_el$2=_$createElement3("text"),_el$3=_$createElement3("box")
565
+ _$insertNode3(_el$,_el$2)
566
+ _$insertNode3(_el$,_el$3)
567
+ _$setProp3(_el$,"width","100%")
568
+ _$setProp3(_el$,"minWidth",0)
569
+ _$setProp3(_el$,"flexDirection","row")
570
+ _$setProp3(_el$,"overflow","hidden")
571
+ _$setProp3(_el$2,"width",1)
572
+ _$setProp3(_el$2,"marginRight",1)
573
+ _$setProp3(_el$2,"flexShrink",0)
574
+ _$setProp3(_el$2,"wrapMode","none")
575
+ _$insert3(_el$2,guide)
576
+ _$setProp3(_el$3,"width","100%")
577
+ _$setProp3(_el$3,"flexGrow",1)
578
+ _$setProp3(_el$3,"flexShrink",1)
579
+ _$setProp3(_el$3,"minWidth",0)
580
+ _$setProp3(_el$3,"gap",1)
581
+ _$insert3(_el$3,_$createComponent4(For,{get each(){return props.windows
539
582
  },children:(window)=>_$createComponent4(QuotaWindowRow,{get api(){return props.api
540
583
  },window
541
584
  })
542
- }),_$createComponent4(For,{get each(){return props.snapshot.balances
543
- },children:(balance)=>_$createComponent4(QuotaBalanceRow,{get api(){return props.api
585
+ }))
586
+ _$effect3((_$p)=>_$setProp3(_el$2,"fg",props.api.theme.current.textMuted,_$p))
587
+ return _el$
588
+ })()
589
+ }
590
+ function QuotaSnapshotRows(props){return [_$createComponent5(Show,{get when(){return props.snapshot.windows.length>0
591
+ },get children(){return _$createComponent5(QuotaWindowGroup,{get api(){return props.api
592
+ },get windows(){return props.snapshot.windows
593
+ }})
594
+ }}),_$createComponent5(For2,{get each(){return props.snapshot.balances
595
+ },children:(balance)=>_$createComponent5(QuotaBalanceRow,{get api(){return props.api
544
596
  },balance
545
597
  })
546
598
  })]
@@ -590,31 +642,31 @@ function providerQuotaCapability(id,canonical){const key=aliases[canonical??id]?
590
642
  const found=PROVIDER_QUOTA_CAPABILITIES.find((entry)=>entry.id===key)
591
643
  return found??{id,name:id,sources:[],reason:"No independent quota/balance API or native counter semantics are verified for this provider.",documentation:["https://opencode.ai/docs/providers/"]
592
644
  }}
593
- import {insert as _$insert8} from "@opentui/solid"
645
+ import {insert as _$insert9} from "@opentui/solid"
594
646
  import {mergeProps as _$mergeProps} from "@opentui/solid"
595
- import {setProp as _$setProp9} from "@opentui/solid"
596
- import {effect as _$effect9} from "@opentui/solid"
647
+ import {setProp as _$setProp10} from "@opentui/solid"
648
+ import {effect as _$effect10} from "@opentui/solid"
597
649
  import {createTextNode as _$createTextNode4} from "@opentui/solid"
598
- import {insertNode as _$insertNode6} from "@opentui/solid"
599
- import {createElement as _$createElement9} from "@opentui/solid"
650
+ import {insertNode as _$insertNode7} from "@opentui/solid"
651
+ import {createElement as _$createElement10} from "@opentui/solid"
600
652
  import {memo as _$memo7} from "@opentui/solid"
601
- import {createComponent as _$createComponent12} from "@opentui/solid"
602
- import {Show as Show6} from "solid-js"
653
+ import {createComponent as _$createComponent13} from "@opentui/solid"
654
+ import {Show as Show7} from "solid-js"
603
655
  import {useDialogs as useDialogs3} from "./tui.js"
604
- import {setProp as _$setProp4} from "@opentui/solid"
605
- import {effect as _$effect4} from "@opentui/solid"
656
+ import {setProp as _$setProp5} from "@opentui/solid"
657
+ import {effect as _$effect5} from "@opentui/solid"
606
658
  import {createTextNode as _$createTextNode} from "@opentui/solid"
607
- import {insertNode as _$insertNode3} from "@opentui/solid"
608
- import {createElement as _$createElement4} from "@opentui/solid"
659
+ import {insertNode as _$insertNode4} from "@opentui/solid"
660
+ import {createElement as _$createElement5} from "@opentui/solid"
609
661
  import {memo as _$memo2} from "@opentui/solid"
662
+ import {createComponent as _$createComponent7} from "@opentui/solid"
663
+ import {Show as Show2} from "solid-js"
664
+ import {useDialogs as useDialogs2,useIcons as useIcons3} from "./tui.js"
610
665
  import {createComponent as _$createComponent6} from "@opentui/solid"
611
- import {Show} from "solid-js"
612
- import {useDialogs as useDialogs2,useIcons as useIcons2} from "./tui.js"
613
- import {createComponent as _$createComponent5} from "@opentui/solid"
614
- import {effect as _$effect3} from "@opentui/solid"
615
- import {insert as _$insert3} from "@opentui/solid"
616
- import {setProp as _$setProp3} from "@opentui/solid"
617
- import {createElement as _$createElement3} from "@opentui/solid"
666
+ import {effect as _$effect4} from "@opentui/solid"
667
+ import {insert as _$insert4} from "@opentui/solid"
668
+ import {setProp as _$setProp4} from "@opentui/solid"
669
+ import {createElement as _$createElement4} from "@opentui/solid"
618
670
  import {SelectionBox} from "./tui.js"
619
671
  import {createSignal as createSignal5,onCleanup} from "solid-js"
620
672
  function sidebarInteractiveColors(theme,state,normalColor=theme.text,mode="row"){const highlighted=!state.disabled&&(state.focused||mode==="control"&&state.hovered)
@@ -650,7 +702,7 @@ return true
650
702
  }}}
651
703
  function LimitsAction(props){const item=useSidebarItem(props.api,props.interaction,{id:props.id,position:()=>props.position,disabled:()=>props.disabled===true,activate:props.onActivate
652
704
  },()=>props.api.theme.current.text,props.inline?"control":"row")
653
- return _$createComponent5(SelectionBox,{ref:(node)=>item.ref(node),get id(){return props.id
705
+ return _$createComponent6(SelectionBox,{ref:(node)=>item.ref(node),get id(){return props.id
654
706
  },height:1,get flexGrow(){return props.flexGrow
655
707
  },get maxWidth(){return props.maxWidth
656
708
  },flexShrink:1,minWidth:3,get backgroundColor(){return item.backgroundColor()
@@ -658,46 +710,46 @@ return _$createComponent5(SelectionBox,{ref:(node)=>item.ref(node),get id(){retu
658
710
  },get onMouseOut(){return item.onMouseOut
659
711
  },onMouseUp:(event)=>{event.stopPropagation()
660
712
  item.activate(event)
661
- },get children(){var _el$=_$createElement3("text")
662
- _$setProp3(_el$,"wrapMode","none")
663
- _$setProp3(_el$,"truncate",true)
664
- _$insert3(_el$,()=>props.label)
665
- _$effect3((_$p)=>_$setProp3(_el$,"fg",item.foregroundColor(),_$p))
713
+ },get children(){var _el$=_$createElement4("text")
714
+ _$setProp4(_el$,"wrapMode","none")
715
+ _$setProp4(_el$,"truncate",true)
716
+ _$insert4(_el$,()=>props.label)
717
+ _$effect4((_$p)=>_$setProp4(_el$,"fg",item.foregroundColor(),_$p))
666
718
  return _el$
667
719
  }})
668
720
  }
669
- function CodexAccountControls(props){const icons=useIcons2()
721
+ function CodexAccountControls(props){const icons=useIcons3()
670
722
  const model=()=>props.controller.current().model
671
723
  const accountLink=createCodexAccountLink({api:props.api,preferences:props.preferences,adapter:props.codex,model,dialogs:useDialogs2(props.api)
672
724
  })
673
725
  const eligible=()=>(props.model.providerID==="openai"||props.model.hostConnection?.providerID==="openai")&&props.model.hostConnection?.method!=="api"
674
- const action=(id,row,label,onActivate)=>_$createComponent6(LimitsAction,{get api(){return props.api
726
+ const action=(id,row,label,onActivate)=>_$createComponent7(LimitsAction,{get api(){return props.api
675
727
  },get interaction(){return props.interaction
676
728
  },id:`${PLUGIN_ID}.limits.${id}`,get position(){return{section:props.navigationSection,row,column:0
677
729
  }},label,onActivate,get disabled(){return accountLink.busy()
678
730
  }})
679
- return _$createComponent6(Show,{get when(){return eligible()
680
- },get children(){return [_$createComponent6(Show,{get when(){return _$memo2(()=>!!!props.model.accountID)()&&(!props.model.hostConnection||props.model.hostConnection.status==="ready")
681
- },get children(){return [(()=>{var _el$=_$createElement4("text")
682
- _$insertNode3(_el$,_$createTextNode(`Link the matching Codex account once for this connection`))
683
- _$effect4((_$p)=>_$setProp4(_el$,"fg",props.api.theme.current.textMuted,_$p))
731
+ return _$createComponent7(Show2,{get when(){return eligible()
732
+ },get children(){return [_$createComponent7(Show2,{get when(){return _$memo2(()=>!!!props.model.accountID)()&&(!props.model.hostConnection||props.model.hostConnection.status==="ready")
733
+ },get children(){return [(()=>{var _el$=_$createElement5("text")
734
+ _$insertNode4(_el$,_$createTextNode(`Link the matching Codex account once for this connection`))
735
+ _$effect5((_$p)=>_$setProp5(_el$,"fg",props.api.theme.current.textMuted,_$p))
684
736
  return _el$
685
737
  })(),_$memo2(()=>action("link",2,`${icons.icon("scope")} Link Codex CLI account`,()=>void accountLink.link()))]
686
- }}),_$createComponent6(Show,{get when(){return _$memo2(()=>!!(props.model.accountID&&props.model.accountSource!=="host"))()&&props.controller.snapshot()?.availability==="unauthenticated"
687
- },get children(){return [_$memo2(()=>action("unlink",4,`${icons.icon("close")} Unlink Codex account`,()=>props.preferences.setCodexConnectionBinding(props.model.providerID,props.model.hostConnection?.id))),_$createComponent6(Show,{get when(){return props.controller.snapshot()?.availability==="unauthenticated"
738
+ }}),_$createComponent7(Show2,{get when(){return _$memo2(()=>!!(props.model.accountID&&props.model.accountSource!=="host"))()&&props.controller.snapshot()?.availability==="unauthenticated"
739
+ },get children(){return [_$memo2(()=>action("unlink",4,`${icons.icon("close")} Unlink Codex account`,()=>props.preferences.setCodexConnectionBinding(props.model.providerID,props.model.hostConnection?.id))),_$createComponent7(Show2,{get when(){return props.controller.snapshot()?.availability==="unauthenticated"
688
740
  },get children(){return action("relink",5,`${icons.icon("scope")} Relink Codex account`,()=>void accountLink.link())
689
741
  }})]
690
742
  }})]
691
743
  }})
692
744
  }
745
+ import {createComponent as _$createComponent9} from "@opentui/solid"
746
+ import {Show as Show3} from "solid-js"
747
+ import {useIcons as useIcons4} from "./tui.js"
693
748
  import {createComponent as _$createComponent8} from "@opentui/solid"
694
- import {Show as Show2} from "solid-js"
695
- import {useIcons as useIcons3} from "./tui.js"
696
- import {createComponent as _$createComponent7} from "@opentui/solid"
697
- import {effect as _$effect5} from "@opentui/solid"
698
- import {insert as _$insert4} from "@opentui/solid"
699
- import {setProp as _$setProp5} from "@opentui/solid"
700
- import {createElement as _$createElement5} from "@opentui/solid"
749
+ import {effect as _$effect6} from "@opentui/solid"
750
+ import {insert as _$insert5} from "@opentui/solid"
751
+ import {setProp as _$setProp6} from "@opentui/solid"
752
+ import {createElement as _$createElement6} from "@opentui/solid"
701
753
  import {memo as _$memo3} from "@opentui/solid"
702
754
  import {createEffect as createEffect2,createSignal as createSignal6,on} from "solid-js"
703
755
  import {SelectionBox as SelectionBox2} from "./tui.js"
@@ -721,7 +773,7 @@ const control=useSidebarItem(props.api,props.interaction,{id:props.action.id,pos
721
773
  },()=>props.api.theme.current.accent,"control")
722
774
  createEffect2(on(()=>[props.action.label(),props.resetWidth],()=>setWidth(undefined)))
723
775
  const label=()=>width()===undefined||props.iconOnly?props.action.label():truncateEnd(props.action.label(),width()-2)
724
- return _$createComponent7(SelectionBox2,{ref:(node)=>control.ref(node),get id(){return props.action.id
776
+ return _$createComponent8(SelectionBox2,{ref:(node)=>control.ref(node),get id(){return props.action.id
725
777
  },get iconOnly(){return props.iconOnly
726
778
  },get width(){return props.iconOnly?3:undefined
727
779
  },get flexShrink(){return props.iconOnly?0:1
@@ -732,42 +784,42 @@ return _$createComponent7(SelectionBox2,{ref:(node)=>control.ref(node),get id(){
732
784
  },get onMouseOut(){return control.onMouseOut
733
785
  },onMouseDown:(event)=>event.stopPropagation(),onMouseUp:(event)=>{event.stopPropagation()
734
786
  control.activate(event)
735
- },get children(){var _el$=_$createElement5("text")
736
- _$setProp5(_el$,"wrapMode","none")
737
- _$setProp5(_el$,"height",1)
738
- _$insert4(_el$,label)
739
- _$effect5((_$p)=>_$setProp5(_el$,"fg",control.foregroundColor(),_$p))
787
+ },get children(){var _el$=_$createElement6("text")
788
+ _$setProp6(_el$,"wrapMode","none")
789
+ _$setProp6(_el$,"height",1)
790
+ _$insert5(_el$,label)
791
+ _$effect6((_$p)=>_$setProp6(_el$,"fg",control.foregroundColor(),_$p))
740
792
  return _el$
741
793
  }})
742
794
  }
743
- function LimitsHeaderControls(props){const icons=useIcons3()
744
- return [_$createComponent8(Show2,{get when(){return props.credits
745
- },get children(){return _$createComponent8(SectionHeaderControl,{get api(){return props.api
795
+ function LimitsHeaderControls(props){const icons=useIcons4()
796
+ return [_$createComponent9(Show3,{get when(){return props.credits
797
+ },get children(){return _$createComponent9(SectionHeaderControl,{get api(){return props.api
746
798
  },get interaction(){return props.interaction
747
799
  },get position(){return{section:props.navigationSection,row:0,column:1
748
800
  }},get action(){return{id:`${PLUGIN_ID}.limits.credits`,label:()=>"Banked Resets",disabled:()=>false,onActivate:props.onCredits
749
801
  }}})
750
- }}),_$createComponent8(SectionHeaderControl,{get api(){return props.api
802
+ }}),_$createComponent9(SectionHeaderControl,{get api(){return props.api
751
803
  },get interaction(){return props.interaction
752
804
  },iconOnly:true,get position(){return{section:props.navigationSection,row:0,column:2
753
805
  }},get action(){return{id:`${PLUGIN_ID}.limits.refresh`,label:()=>icons.icon(props.refreshing?"pending":"retry"),disabled:()=>props.refreshing||!props.canRefresh,onActivate:props.onRefresh
754
806
  }}})]
755
807
  }
756
- import {insert as _$insert5} from "@opentui/solid"
757
- import {effect as _$effect6} from "@opentui/solid"
808
+ import {insert as _$insert6} from "@opentui/solid"
809
+ import {effect as _$effect7} from "@opentui/solid"
758
810
  import {createTextNode as _$createTextNode2} from "@opentui/solid"
759
- import {insertNode as _$insertNode4} from "@opentui/solid"
811
+ import {insertNode as _$insertNode5} from "@opentui/solid"
760
812
  import {memo as _$memo4} from "@opentui/solid"
761
- import {createComponent as _$createComponent9} from "@opentui/solid"
762
- import {setProp as _$setProp6} from "@opentui/solid"
763
- import {createElement as _$createElement6} from "@opentui/solid"
764
- import {Show as Show3} from "solid-js"
813
+ import {createComponent as _$createComponent10} from "@opentui/solid"
814
+ import {setProp as _$setProp7} from "@opentui/solid"
815
+ import {createElement as _$createElement7} from "@opentui/solid"
816
+ import {Show as Show4} from "solid-js"
765
817
  function LimitsModelRow(props){const names=()=>props.selection?.names(props.model)??{provider:props.model.providerID,model:props.model.modelID
766
818
  }
767
- return(()=>{var _el$=_$createElement6("box")
768
- _$setProp6(_el$,"flexDirection","row")
769
- _$setProp6(_el$,"minWidth",0)
770
- _$insert5(_el$,_$createComponent9(LimitsAction,{get api(){return props.api
819
+ return(()=>{var _el$=_$createElement7("box")
820
+ _$setProp7(_el$,"flexDirection","row")
821
+ _$setProp7(_el$,"minWidth",0)
822
+ _$insert6(_el$,_$createComponent10(LimitsAction,{get api(){return props.api
771
823
  },get interaction(){return props.interaction
772
824
  },inline:true,flexGrow:1,get maxWidth(){return Bun.stringWidth(`[${names().provider}] ${names().model}`) + 2
773
825
  },id:`${PLUGIN_ID}.limits.model`,get position(){return{section:props.navigationSection,row:1,column:0
@@ -775,13 +827,13 @@ _$insert5(_el$,_$createComponent9(LimitsAction,{get api(){return props.api
775
827
  },get disabled(){return !props.selection?.canOpen("model",props.model)
776
828
  },onActivate:()=>props.selection?.open("model",props.model)
777
829
  }),null)
778
- _$insert5(_el$,_$createComponent9(Show3,{get when(){return props.model.variant||props.selection?.variants(props.model).length
779
- },get children(){return [(()=>{var _el$2=_$createElement6("text"),_el$3=_$createTextNode2(` \xB7 `)
780
- _$insertNode4(_el$2,_el$3)
781
- _$setProp6(_el$2,"flexShrink",0)
782
- _$effect6((_$p)=>_$setProp6(_el$2,"fg",props.api.theme.current.textMuted,_$p))
830
+ _$insert6(_el$,_$createComponent10(Show4,{get when(){return props.model.variant||props.selection?.variants(props.model).length
831
+ },get children(){return [(()=>{var _el$2=_$createElement7("text"),_el$3=_$createTextNode2(` \xB7 `)
832
+ _$insertNode5(_el$2,_el$3)
833
+ _$setProp7(_el$2,"flexShrink",0)
834
+ _$effect7((_$p)=>_$setProp7(_el$2,"fg",props.api.theme.current.textMuted,_$p))
783
835
  return _el$2
784
- })(),_$createComponent9(LimitsAction,{get api(){return props.api
836
+ })(),_$createComponent10(LimitsAction,{get api(){return props.api
785
837
  },get interaction(){return props.interaction
786
838
  },inline:true,id:`${PLUGIN_ID}.limits.variant`,get position(){return{section:props.navigationSection,row:1,column:1
787
839
  }},get label(){return props.model.variant??"Default"
@@ -792,13 +844,13 @@ return _el$2
792
844
  return _el$
793
845
  })()
794
846
  }
795
- import {effect as _$effect7} from "@opentui/solid"
796
- import {insert as _$insert6} from "@opentui/solid"
797
- import {setProp as _$setProp7} from "@opentui/solid"
798
- import {createElement as _$createElement7} from "@opentui/solid"
799
- import {createComponent as _$createComponent10} from "@opentui/solid"
847
+ import {effect as _$effect8} from "@opentui/solid"
848
+ import {insert as _$insert7} from "@opentui/solid"
849
+ import {setProp as _$setProp8} from "@opentui/solid"
850
+ import {createElement as _$createElement8} from "@opentui/solid"
851
+ import {createComponent as _$createComponent11} from "@opentui/solid"
800
852
  import {memo as _$memo5} from "@opentui/solid"
801
- import {Show as Show4} from "solid-js"
853
+ import {Show as Show5} from "solid-js"
802
854
  function LimitsStatus(props){const message=()=>{const model=props.controller.current().model
803
855
  const connection=model?.hostConnection
804
856
  const snapshot=props.controller.snapshot()
@@ -828,85 +880,85 @@ if(availability==="stale")
828
880
  return "Stale provider data \xB7 refresh to update"
829
881
  return `Updated ${new Date(snapshot.fetchedAt).toLocaleTimeString()}`
830
882
  }
831
- return _$createComponent10(Show4,{get when(){return _$memo5(()=>!!props.controller.current().model)()&&message()
832
- },children:(value)=>(()=>{var _el$=_$createElement7("text")
833
- _$setProp7(_el$,"wrapMode","word")
834
- _$insert6(_el$,value)
835
- _$effect7((_$p)=>_$setProp7(_el$,"fg",props.api.theme.current.textMuted,_$p))
883
+ return _$createComponent11(Show5,{get when(){return _$memo5(()=>!!props.controller.current().model)()&&message()
884
+ },children:(value)=>(()=>{var _el$=_$createElement8("text")
885
+ _$setProp8(_el$,"wrapMode","word")
886
+ _$insert7(_el$,value)
887
+ _$effect8((_$p)=>_$setProp8(_el$,"fg",props.api.theme.current.textMuted,_$p))
836
888
  return _el$
837
889
  })()
838
890
  })
839
891
  }
840
- import {createComponent as _$createComponent11} from "@opentui/solid"
841
- import {effect as _$effect8} from "@opentui/solid"
892
+ import {createComponent as _$createComponent12} from "@opentui/solid"
893
+ import {effect as _$effect9} from "@opentui/solid"
842
894
  import {createTextNode as _$createTextNode3} from "@opentui/solid"
843
- import {insertNode as _$insertNode5} from "@opentui/solid"
895
+ import {insertNode as _$insertNode6} from "@opentui/solid"
844
896
  import {memo as _$memo6} from "@opentui/solid"
845
- import {insert as _$insert7} from "@opentui/solid"
846
- import {setProp as _$setProp8} from "@opentui/solid"
847
- import {createElement as _$createElement8} from "@opentui/solid"
848
- import {Show as Show5,createSignal as createSignal7} from "solid-js"
849
- import {SelectionBox as SelectionBox3,useIcons as useIcons4} from "./tui.js"
850
- function Section(props){const icons=useIcons4()
897
+ import {insert as _$insert8} from "@opentui/solid"
898
+ import {setProp as _$setProp9} from "@opentui/solid"
899
+ import {createElement as _$createElement9} from "@opentui/solid"
900
+ import {Show as Show6,createSignal as createSignal7} from "solid-js"
901
+ import {SelectionBox as SelectionBox3,useIcons as useIcons5} from "./tui.js"
902
+ function Section(props){const icons=useIcons5()
851
903
  const [headerWidth,setHeaderWidth]=createSignal7(0)
852
904
  const icon=()=>props.section?icons.section(props.section):props.icon
853
905
  const theme=()=>props.api.theme.current
854
906
  const item=useSidebarItem(props.api,props.interaction,{id:props.sectionId??`section.${props.title}`,position:()=>({section:props.navigationSection??0,row:0,column:0
855
907
  }),activate:props.onToggle
856
908
  })
857
- return(()=>{var _el$=_$createElement8("box")
858
- _$setProp8(_el$,"gap",1)
859
- _$insert7(_el$,_$createComponent11(SelectionBox3,{ref:(node)=>item.ref(node),get id(){return props.sectionId
909
+ return(()=>{var _el$=_$createElement9("box")
910
+ _$setProp9(_el$,"gap",1)
911
+ _$insert8(_el$,_$createComponent12(SelectionBox3,{ref:(node)=>item.ref(node),get id(){return props.sectionId
860
912
  },flexDirection:"row",height:1,justifyContent:"space-between",gap:1,get backgroundColor(){return item.backgroundColor()
861
913
  },get onMouseOver(){return item.onMouseOver
862
914
  },get onMouseOut(){return item.onMouseOut
863
915
  },onMouseDown:(event)=>item.activate(event),onSizeChange:function(){setHeaderWidth(this.width)
864
- },get children(){return [(()=>{var _el$2=_$createElement8("text"),_el$3=_$createElement8("span"),_el$4=_$createTextNode3(` `),_el$5=_$createElement8("span"),_el$6=_$createElement8("b")
865
- _$insertNode5(_el$2,_el$3)
866
- _$insertNode5(_el$2,_el$4)
867
- _$insertNode5(_el$2,_el$5)
868
- _$insertNode5(_el$2,_el$6)
869
- _$setProp8(_el$2,"flexShrink",0)
870
- _$setProp8(_el$2,"wrapMode","none")
871
- _$insert7(_el$3,()=>icons.icon(props.open?"expanded":"collapsed"))
872
- _$insert7(_el$5,(()=>{var _c$=_$memo6(()=>!!icon())
916
+ },get children(){return [(()=>{var _el$2=_$createElement9("text"),_el$3=_$createElement9("span"),_el$4=_$createTextNode3(` `),_el$5=_$createElement9("span"),_el$6=_$createElement9("b")
917
+ _$insertNode6(_el$2,_el$3)
918
+ _$insertNode6(_el$2,_el$4)
919
+ _$insertNode6(_el$2,_el$5)
920
+ _$insertNode6(_el$2,_el$6)
921
+ _$setProp9(_el$2,"flexShrink",0)
922
+ _$setProp9(_el$2,"wrapMode","none")
923
+ _$insert8(_el$3,()=>icons.icon(props.open?"expanded":"collapsed"))
924
+ _$insert8(_el$5,(()=>{var _c$=_$memo6(()=>!!icon())
873
925
  return()=>_c$()?`${icon()} `:""
874
926
  })())
875
- _$insert7(_el$6,()=>props.title)
876
- _$effect8((_p$)=>{var _v$=item.foregroundColor(),_v$2={fg:item.focused()?item.foregroundColor():theme().accent
927
+ _$insert8(_el$6,()=>props.title)
928
+ _$effect9((_p$)=>{var _v$=item.foregroundColor(),_v$2={fg:item.focused()?item.foregroundColor():theme().accent
877
929
  },_v$3={fg:item.focused()?item.foregroundColor():theme().accent
878
930
  }
879
- _v$!==_p$.e&&(_p$.e=_$setProp8(_el$2,"fg",_v$,_p$.e))
880
- _v$2!==_p$.t&&(_p$.t=_$setProp8(_el$3,"style",_v$2,_p$.t))
881
- _v$3!==_p$.a&&(_p$.a=_$setProp8(_el$5,"style",_v$3,_p$.a))
931
+ _v$!==_p$.e&&(_p$.e=_$setProp9(_el$2,"fg",_v$,_p$.e))
932
+ _v$2!==_p$.t&&(_p$.t=_$setProp9(_el$3,"style",_v$2,_p$.t))
933
+ _v$3!==_p$.a&&(_p$.a=_$setProp9(_el$5,"style",_v$3,_p$.a))
882
934
  return _p$
883
935
  },{e:undefined,t:undefined,a:undefined
884
936
  })
885
937
  return _el$2
886
- })(),(()=>{var _el$7=_$createElement8("box")
887
- _$setProp8(_el$7,"flexDirection","row")
888
- _$setProp8(_el$7,"gap",1)
889
- _$setProp8(_el$7,"flexGrow",1)
890
- _$setProp8(_el$7,"minWidth",0)
891
- _$setProp8(_el$7,"justifyContent","flex-end")
892
- _$insert7(_el$7,()=>props.headerControls,null)
893
- _$insert7(_el$7,_$createComponent11(Show5,{get when(){return props.headerAction
894
- },children:(action)=>_$createComponent11(SectionHeaderControl,{get api(){return props.api
938
+ })(),(()=>{var _el$7=_$createElement9("box")
939
+ _$setProp9(_el$7,"flexDirection","row")
940
+ _$setProp9(_el$7,"gap",1)
941
+ _$setProp9(_el$7,"flexGrow",1)
942
+ _$setProp9(_el$7,"minWidth",0)
943
+ _$setProp9(_el$7,"justifyContent","flex-end")
944
+ _$insert8(_el$7,()=>props.headerControls,null)
945
+ _$insert8(_el$7,_$createComponent12(Show6,{get when(){return props.headerAction
946
+ },children:(action)=>_$createComponent12(SectionHeaderControl,{get api(){return props.api
895
947
  },get interaction(){return props.interaction
896
948
  },get action(){return action()
897
949
  },get resetWidth(){return headerWidth()
898
950
  },get position(){return{section:props.navigationSection??0,row:0,column:1
899
951
  }}})
900
952
  }),null)
901
- _$insert7(_el$7,_$createComponent11(Show5,{get when(){return props.summary
902
- },get children(){var _el$8=_$createElement8("text")
903
- _$setProp8(_el$8,"wrapMode","none")
904
- _$setProp8(_el$8,"truncate",true)
905
- _$setProp8(_el$8,"height",1)
906
- _$insert7(_el$8,()=>props.summary)
907
- _$effect8((_p$)=>{var _v$4=item.focused()?item.foregroundColor():theme().textMuted,_v$5=props.headerAction?0:1
908
- _v$4!==_p$.e&&(_p$.e=_$setProp8(_el$8,"fg",_v$4,_p$.e))
909
- _v$5!==_p$.t&&(_p$.t=_$setProp8(_el$8,"flexShrink",_v$5,_p$.t))
953
+ _$insert8(_el$7,_$createComponent12(Show6,{get when(){return props.summary
954
+ },get children(){var _el$8=_$createElement9("text")
955
+ _$setProp9(_el$8,"wrapMode","none")
956
+ _$setProp9(_el$8,"truncate",true)
957
+ _$setProp9(_el$8,"height",1)
958
+ _$insert8(_el$8,()=>props.summary)
959
+ _$effect9((_p$)=>{var _v$4=item.focused()?item.foregroundColor():theme().textMuted,_v$5=props.headerAction?0:1
960
+ _v$4!==_p$.e&&(_p$.e=_$setProp9(_el$8,"fg",_v$4,_p$.e))
961
+ _v$5!==_p$.t&&(_p$.t=_$setProp9(_el$8,"flexShrink",_v$5,_p$.t))
910
962
  return _p$
911
963
  },{e:undefined,t:undefined
912
964
  })
@@ -915,7 +967,7 @@ return _el$8
915
967
  return _el$7
916
968
  })()]
917
969
  }}),null)
918
- _$insert7(_el$,_$createComponent11(Show5,{get when(){return props.open
970
+ _$insert8(_el$,_$createComponent12(Show6,{get when(){return props.open
919
971
  },get children(){return props.children
920
972
  }}),null)
921
973
  return _el$
@@ -926,17 +978,17 @@ const model=()=>props.controller.current().model
926
978
  const snapshot=props.controller.snapshot
927
979
  function openCredits(){const selected=model()
928
980
  if(selected)
929
- dialogs.open(()=>_$createComponent12(ResetCreditDialog,{get api(){return props.api
981
+ dialogs.open(()=>_$createComponent13(ResetCreditDialog,{get api(){return props.api
930
982
  },get preferences(){return props.preferences
931
983
  },get controller(){return props.controller
932
984
  },get adapter(){return props.codex
933
985
  },model:selected
934
986
  }))
935
987
  }
936
- return _$createComponent12(Section,{get api(){return props.api
988
+ return _$createComponent13(Section,{get api(){return props.api
937
989
  },get interaction(){return props.interaction
938
990
  },sectionId:`${PLUGIN_ID}.section.limits`,get navigationSection(){return props.navigationSection
939
- },title:"LIMITS",section:"limits",summary:"",get headerControls(){return _$createComponent12(LimitsHeaderControls,{get api(){return props.api
991
+ },title:"LIMITS",section:"limits",summary:"",get headerControls(){return _$createComponent13(LimitsHeaderControls,{get api(){return props.api
940
992
  },get interaction(){return props.interaction
941
993
  },get navigationSection(){return props.navigationSection
942
994
  },get credits(){return(snapshot()?.bankedResets?.availableCount??0)>0||Boolean(props.preferences.pendingResetAttempt())
@@ -945,28 +997,28 @@ return _$createComponent12(Section,{get api(){return props.api
945
997
  },onCredits:openCredits,onRefresh:()=>void props.controller.refresh(true)
946
998
  })
947
999
  },get open(){return props.preferences.expanded().limits
948
- },onToggle:()=>props.preferences.toggleSectionExpanded("limits"),get children(){return _$createComponent12(Show6,{get when(){return model()
949
- },get fallback(){return(()=>{var _el$=_$createElement9("text")
950
- _$insertNode6(_el$,_$createTextNode4(`Open a session to view model limits`))
951
- _$effect9((_$p)=>_$setProp9(_el$,"fg",props.api.theme.current.textMuted,_$p))
1000
+ },onToggle:()=>props.preferences.toggleSectionExpanded("limits"),get children(){return _$createComponent13(Show7,{get when(){return model()
1001
+ },get fallback(){return(()=>{var _el$=_$createElement10("text")
1002
+ _$insertNode7(_el$,_$createTextNode4(`Open a session to view model limits`))
1003
+ _$effect10((_$p)=>_$setProp10(_el$,"fg",props.api.theme.current.textMuted,_$p))
952
1004
  return _el$
953
1005
  })()
954
- },children:(selected)=>(()=>{var _el$3=_$createElement9("box")
955
- _$setProp9(_el$3,"width","100%")
956
- _$setProp9(_el$3,"minWidth",0)
957
- _$setProp9(_el$3,"flexShrink",1)
958
- _$setProp9(_el$3,"overflow","hidden")
959
- _$insert8(_el$3,_$createComponent12(LimitsModelRow,_$mergeProps(props,{get model(){return selected()
1006
+ },children:(selected)=>(()=>{var _el$3=_$createElement10("box")
1007
+ _$setProp10(_el$3,"width","100%")
1008
+ _$setProp10(_el$3,"minWidth",0)
1009
+ _$setProp10(_el$3,"flexShrink",1)
1010
+ _$setProp10(_el$3,"overflow","hidden")
1011
+ _$insert9(_el$3,_$createComponent13(LimitsModelRow,_$mergeProps(props,{get model(){return selected()
960
1012
  },get selection(){return props.modelSelection
961
1013
  }})),null)
962
- _$insert8(_el$3,_$createComponent12(CodexAccountControls,_$mergeProps(props,{get model(){return selected()
1014
+ _$insert9(_el$3,_$createComponent13(CodexAccountControls,_$mergeProps(props,{get model(){return selected()
963
1015
  }})),null)
964
- _$insert8(_el$3,_$createComponent12(Show6,{get when(){return _$memo7(()=>!!(snapshot()&&["ready","stale"].includes(snapshot().availability)))()?snapshot():undefined
965
- },children:(quota)=>_$createComponent12(QuotaSnapshotRows,{get api(){return props.api
1016
+ _$insert9(_el$3,_$createComponent13(Show7,{get when(){return _$memo7(()=>!!(snapshot()&&["ready","stale"].includes(snapshot().availability)))()?snapshot():undefined
1017
+ },children:(quota)=>_$createComponent13(QuotaSnapshotRows,{get api(){return props.api
966
1018
  },get snapshot(){return quota()
967
1019
  }})
968
1020
  }),null)
969
- _$insert8(_el$3,_$createComponent12(LimitsStatus,{get api(){return props.api
1021
+ _$insert9(_el$3,_$createComponent13(LimitsStatus,{get api(){return props.api
970
1022
  },get controller(){return props.controller
971
1023
  }}),null)
972
1024
  return _el$3
package/dist/tui.js CHANGED
@@ -3,7 +3,7 @@ import {insert as _$insert,setProp as _$setProp,createElement as _$createElement
3
3
 
4
4
 
5
5
 
6
- import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup2,createEffect as createEffect4,Show,splitProps as splitProps3,createSignal as createSignal4,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup3,batch,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect5,createSignal as createSignal9,onCleanup as onCleanup4,createSignal as createSignal10,createSignal as createSignal11,Index,createSignal as createSignal12,onCleanup as onCleanup5,createEffect as createEffect7,onCleanup as onCleanup7,batch as batch2,createEffect as createEffect6,createMemo,createSignal as createSignal13,onCleanup as onCleanup6,onMount,For as For2,For as For3,Show as Show2,createMemo as createMemo2,Show as Show3,createSignal as createSignal14,onCleanup as onCleanup8,For as For4,For as For5,For as For8,createMemo as createMemo4,onMount as onMount3,For as For7,createMemo as createMemo3,onMount as onMount2,Show as Show5,createEffect as createEffect8,createSignal as createSignal15,onCleanup as onCleanup9,Show as Show4,For as For6,For as For9,createEffect as createEffect9,createMemo as createMemo5,onCleanup as onCleanup10,createEffect as createEffect10,createMemo as createMemo6,untrack as untrack2,For as For10,createEffect as createEffect11,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4,createMemo as createMemo7,Show as Show6,onCleanup as onCleanup12,createEffect as createEffect12,onCleanup as onCleanup13,createSignal as createSignal16,createMemo as createMemo9,createEffect as createEffect13,onCleanup as onCleanup14,onMount as onMount5,onCleanup as onCleanup15,onMount as onMount6,For as For11,createSignal as createSignal17,createSignal as createSignal18,Show as Show7,createSignal as createSignal20,createSignal as createSignal19,onCleanup as onCleanup16,For as For12,Show as Show10,createMemo as createMemo11,createComputed,createMemo as createMemo10,createSignal as createSignal21,untrack as untrack3,Show as Show8,createComputed as createComputed2,untrack as untrack4,Show as Show9,createSignal as createSignal23,createEffect as createEffect14,createSignal as createSignal22,on,createMemo as createMemo13,createSignal as createSignal26,createMemo as createMemo12,For as For13,Show as Show14,Show as Show11,Show as Show12,createSignal as createSignal24,createContext as createContext3,useContext as useContext3,Show as Show13,createSignal as createSignal25,onCleanup as onCleanup17,Show as Show19,createSignal as createSignal27,untrack as untrack5,createSignal as createSignal28,createSignal as createSignal29,createEffect as createEffect15,For as For14,Show as Show15,Show as Show16,Show as Show17,Show as Show18,For as For15,Show as Show21,createMemo as createMemo15,Show as Show20,createMemo as createMemo14,createSignal as createSignal30,createEffect as createEffect16,onCleanup as onCleanup18,For as For20,Match,Switch,createMemo as createMemo19,onCleanup as onCleanup22,For as For16,Show as Show22,createSignal as createSignal31,createEffect as createEffect17,createMemo as createMemo16,onCleanup as onCleanup19,untrack as untrack6,For as For18,Show as Show25,createEffect as createEffect18,createMemo as createMemo17,createSignal as createSignal32,onCleanup as onCleanup20,untrack as untrack7,For as For17,Show as Show24,Show as Show23,Show as Show29,createEffect as createEffect19,createMemo as createMemo18,createSignal as createSignal33,onCleanup as onCleanup21,untrack as untrack8,For as For19,Show as Show27,Show as Show26,Show as Show28,createEffect as createEffect20,createMemo as createMemo20,onCleanup as onCleanup23,untrack as untrack9,Show as Show30,createMemo as createMemo21,onCleanup as onCleanup24,createEffect as createEffect21,createMemo as createMemo22,on as on2,onCleanup as onCleanup25,createSignal as createSignal34,onCleanup as onCleanup26,onMount as onMount7} from "solid-js"
6
+ import {createSignal as createSignal2,createSignal,createEffect,onCleanup,createContext,useContext,createContext as createContext2,createSignal as createSignal3,useContext as useContext2,createEffect as createEffect2,splitProps,untrack,splitProps as splitProps2,For,createEffect as createEffect3,onCleanup as onCleanup2,createEffect as createEffect4,Show,splitProps as splitProps3,createSignal as createSignal4,createSignal as createSignal5,createSignal as createSignal6,onCleanup as onCleanup3,batch,createSignal as createSignal8,createSignal as createSignal7,createEffect as createEffect5,createSignal as createSignal9,onCleanup as onCleanup4,createSignal as createSignal10,createSignal as createSignal11,Index,createSignal as createSignal12,onCleanup as onCleanup5,createEffect as createEffect7,onCleanup as onCleanup7,batch as batch2,createEffect as createEffect6,createMemo,createSignal as createSignal13,onCleanup as onCleanup6,onMount,For as For2,For as For3,Show as Show2,createMemo as createMemo2,Show as Show3,createSignal as createSignal14,onCleanup as onCleanup8,For as For4,For as For5,For as For8,createMemo as createMemo4,onMount as onMount3,For as For7,createMemo as createMemo3,onMount as onMount2,Show as Show5,createEffect as createEffect8,createSignal as createSignal15,onCleanup as onCleanup9,Show as Show4,For as For6,For as For9,createEffect as createEffect9,createMemo as createMemo5,onCleanup as onCleanup10,createEffect as createEffect10,createMemo as createMemo6,untrack as untrack2,For as For10,createEffect as createEffect11,createMemo as createMemo8,onCleanup as onCleanup11,onMount as onMount4,createMemo as createMemo7,Show as Show6,onCleanup as onCleanup12,createEffect as createEffect12,onCleanup as onCleanup13,createSignal as createSignal16,createMemo as createMemo9,createEffect as createEffect13,onCleanup as onCleanup14,onMount as onMount5,onCleanup as onCleanup15,onMount as onMount6,For as For11,createSignal as createSignal17,createSignal as createSignal18,Show as Show7,createSignal as createSignal20,createSignal as createSignal19,onCleanup as onCleanup16,For as For12,Show as Show10,createMemo as createMemo11,createComputed,createMemo as createMemo10,createSignal as createSignal21,untrack as untrack3,Show as Show8,createComputed as createComputed2,untrack as untrack4,Show as Show9,createSignal as createSignal23,createEffect as createEffect14,createSignal as createSignal22,on,createMemo as createMemo13,createSignal as createSignal26,createMemo as createMemo12,For as For13,Show as Show14,Show as Show11,Show as Show12,createSignal as createSignal24,createContext as createContext3,useContext as useContext3,Show as Show13,createSignal as createSignal25,onCleanup as onCleanup17,Show as Show20,createSignal as createSignal27,untrack as untrack5,createSignal as createSignal28,createSignal as createSignal29,createEffect as createEffect15,For as For15,Show as Show15,For as For14,Show as Show16,Show as Show17,Show as Show18,Show as Show19,For as For16,Show as Show22,createMemo as createMemo15,Show as Show21,createMemo as createMemo14,createSignal as createSignal30,createEffect as createEffect16,onCleanup as onCleanup18,For as For21,Match,Switch,createMemo as createMemo19,onCleanup as onCleanup22,For as For17,Show as Show23,createSignal as createSignal31,createEffect as createEffect17,createMemo as createMemo16,onCleanup as onCleanup19,untrack as untrack6,For as For19,Show as Show26,createEffect as createEffect18,createMemo as createMemo17,createSignal as createSignal32,onCleanup as onCleanup20,untrack as untrack7,For as For18,Show as Show25,Show as Show24,Show as Show30,createEffect as createEffect19,createMemo as createMemo18,createSignal as createSignal33,onCleanup as onCleanup21,untrack as untrack8,For as For20,Show as Show28,Show as Show27,Show as Show29,createEffect as createEffect20,createMemo as createMemo20,onCleanup as onCleanup23,untrack as untrack9,Show as Show31,createMemo as createMemo21,onCleanup as onCleanup24,createEffect as createEffect21,createMemo as createMemo22,on as on2,onCleanup as onCleanup25,createSignal as createSignal34,onCleanup as onCleanup26,onMount as onMount7} from "solid-js"
7
7
  var SIDEBAR_SECTIONS=["limits","todo","subagents","skills","quick_actions","lsp","mcp"]
8
8
  var QUICK_ACTION_IDS=["session.rename","session.timeline","session.copy","session.export","session.compact","session.list","session.new","session.fork","messages.copy","session.first","session.last","session.messages_last_user","session.message.next","session.message.previous","permission.mode"]
9
9
  function preferencesScope(path){return path.worktree||path.directory||"global"
@@ -6180,6 +6180,13 @@ return _$createComponent(SectionWithHeaderAction,{get api(){return props.api
6180
6180
 
6181
6181
 
6182
6182
 
6183
+
6184
+
6185
+
6186
+
6187
+
6188
+
6189
+
6183
6190
 
6184
6191
 
6185
6192
 
@@ -6236,7 +6243,7 @@ _$insert(_el$2,()=>props.action.label)
6236
6243
  _$effect((_$p)=>_$setProp(_el$2,"fg",row.foregroundColor(),_$p))
6237
6244
  return _el$2
6238
6245
  })()
6239
- },get metadata(){return _$createComponent(Show20,{get when(){return visibleShortcut()
6246
+ },get metadata(){return _$createComponent(Show21,{get when(){return visibleShortcut()
6240
6247
  },children:(value)=>(()=>{var _el$3=_$createElement("text")
6241
6248
  _$setProp(_el$3,"flexShrink",0)
6242
6249
  _$setProp(_el$3,"wrapMode","none")
@@ -6245,7 +6252,7 @@ _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme()
6245
6252
  return _el$3
6246
6253
  })()
6247
6254
  })
6248
- },get details(){return _$createComponent(Show20,{get when(){return props.disabled
6255
+ },get details(){return _$createComponent(Show21,{get when(){return props.disabled
6249
6256
  },children:(reason)=>(()=>{var _el$4=_$createElement("text")
6250
6257
  _$setProp(_el$4,"wrapMode","word")
6251
6258
  _$insert(_el$4,reason)
@@ -6273,12 +6280,12 @@ return _$createComponent(Section,{get api(){return props.api
6273
6280
  },onToggle:()=>props.preferences.toggleSectionExpanded("quick_actions"),get children(){return [_$createComponent(SidebarRowList,{get api(){return props.api
6274
6281
  },get interaction(){return props.interaction
6275
6282
  },get density(){return props.preferences.rowDensity?.()??"compact"
6276
- },get children(){return [_$createComponent(Show21,{get when(){return actions().length===0
6283
+ },get children(){return [_$createComponent(Show22,{get when(){return actions().length===0
6277
6284
  },get children(){var _el$=_$createElement("text")
6278
6285
  _$insertNode(_el$,_$createTextNode(`No quick actions selected`))
6279
6286
  _$effect((_$p)=>_$setProp(_el$,"fg",props.api.theme.current.textMuted,_$p))
6280
6287
  return _el$
6281
- }}),_$createComponent(For15,{get each(){return visibility.visible()
6288
+ }}),_$createComponent(For16,{get each(){return visibility.visible()
6282
6289
  },children:(action,index)=>_$createComponent(QuickActionRow,{get onNewSession(){return props.onNewSession
6283
6290
  },action,get disabled(){return action.disabled
6284
6291
  },get favorite(){return props.preferences.favoriteQuickActions?.().has(action.command)??false
@@ -6521,7 +6528,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
6521
6528
  }},get query(){return query()
6522
6529
  },placeholder:"Filter skills...",onInput:setQuery
6523
6530
  }),null)
6524
- _$insert(_el$,_$createComponent(Show22,{get when(){return model.filtered().length>0
6531
+ _$insert(_el$,_$createComponent(Show23,{get when(){return model.filtered().length>0
6525
6532
  },get fallback(){return(()=>{var _el$2=_$createElement("text")
6526
6533
  _$insertNode(_el$2,_$createTextNode(`No matching skills`))
6527
6534
  _$effect((_$p)=>_$setProp(_el$2,"fg",props.api.theme.current.textMuted,_$p))
@@ -6531,8 +6538,8 @@ return _el$2
6531
6538
  },get interaction(){return props.interaction
6532
6539
  },get grouped(){return model.grouped
6533
6540
  },get density(){return props.preferences.rowDensity?.()??"compact"
6534
- },get children(){return _$createComponent(For16,{get each(){return model.visibility.visible()
6535
- },children:(item,index)=>[_$createComponent(Show22,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
6541
+ },get children(){return _$createComponent(For17,{get each(){return model.visibility.visible()
6542
+ },children:(item,index)=>[_$createComponent(Show23,{get when(){return _$memo(()=>!!model.grouped())()&&(index()===0||model.visibility.visible()[index()-1]?.bucket!==item.bucket)
6536
6543
  },get children(){var _el$4=_$createElement("text")
6537
6544
  _$setProp(_el$4,"height",1)
6538
6545
  _$setProp(_el$4,"wrapMode","none")
@@ -6659,7 +6666,7 @@ return()=>_c$()?`${props.item.run.startedBeforeObservation ? `${icons.icon("rece
6659
6666
  _$effect((_$p)=>_$setProp(_el$3,"fg",row.focused()?row.foregroundColor():theme().textMuted,_$p))
6660
6667
  return _el$3
6661
6668
  })()
6662
- },get details(){return [_$createComponent(Show23,{get when(){return props.item.run?.errorMessage
6669
+ },get details(){return [_$createComponent(Show24,{get when(){return props.item.run?.errorMessage
6663
6670
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createTextNode(`: `)
6664
6671
  _$insertNode(_el$4,_el$5)
6665
6672
  _$setProp(_el$4,"wrapMode","word")
@@ -6667,12 +6674,12 @@ _$insert(_el$4,()=>cancelled()?"Cancelled":"Error",_el$5)
6667
6674
  _$insert(_el$4,()=>props.item.run?.errorMessage,null)
6668
6675
  _$effect((_$p)=>_$setProp(_el$4,"fg",row.focused()?row.foregroundColor():failed()?theme().error:theme().textMuted,_$p))
6669
6676
  return _el$4
6670
- }}),_$createComponent(Show23,{get when(){return props.item.unavailable
6677
+ }}),_$createComponent(Show24,{get when(){return props.item.unavailable
6671
6678
  },get children(){var _el$6=_$createElement("text")
6672
6679
  _$insertNode(_el$6,_$createTextNode(`Worker status unavailable`))
6673
6680
  _$effect((_$p)=>_$setProp(_el$6,"fg",theme().warning,_$p))
6674
6681
  return _el$6
6675
- }}),_$createComponent(Show23,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
6682
+ }}),_$createComponent(Show24,{get when(){return _$memo(()=>props.item.status.type==="retry")()?props.item.status:undefined
6676
6683
  },children:(status)=>(()=>{var _el$0=_$createElement("text"),_el$1=_$createTextNode(`Retry #`),_el$10=_$createTextNode(` \xB7 `),_el$11=_$createTextNode(`s \xB7 `)
6677
6684
  _$insertNode(_el$0,_el$1)
6678
6685
  _$insertNode(_el$0,_el$10)
@@ -6684,7 +6691,7 @@ _$insert(_el$0,()=>status().message,null)
6684
6691
  _$effect((_$p)=>_$setProp(_el$0,"fg",row.focused()?row.foregroundColor():theme().warning,_$p))
6685
6692
  return _el$0
6686
6693
  })()
6687
- }),_$createComponent(Show23,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
6694
+ }),_$createComponent(Show24,{get when(){return _$memo(()=>!!idle())()&&!props.item.run?.errorMessage
6688
6695
  },get children(){var _el$8=_$createElement("text")
6689
6696
  _$insertNode(_el$8,_$createTextNode(`Finished`))
6690
6697
  _$effect((_$p)=>_$setProp(_el$8,"fg",theme().textMuted,_$p))
@@ -6695,12 +6702,12 @@ return _el$8
6695
6702
  function SubagentList(props){return _$createComponent(SidebarRowList,{get api(){return props.api
6696
6703
  },get interaction(){return props.interaction
6697
6704
  },get density(){return props.density
6698
- },get children(){return _$createComponent(For17,{get each(){return props.ids
6705
+ },get children(){return _$createComponent(For18,{get each(){return props.ids
6699
6706
  },children:(id,index)=>{const initial=props.itemById(id)
6700
6707
  const item=()=>props.itemById(id)??initial
6701
6708
  const startsGroup=()=>index()===0||props.visible[index()-1]?.group!==item().group
6702
6709
  return(()=>{var _el$=_$createElement("box")
6703
- _$insert(_el$,_$createComponent(Show24,{get when(){return startsGroup()
6710
+ _$insert(_el$,_$createComponent(Show25,{get when(){return startsGroup()
6704
6711
  },get children(){var _el$2=_$createElement("text"),_el$3=_$createElement("b")
6705
6712
  _$insertNode(_el$2,_el$3)
6706
6713
  _$insert(_el$3,()=>item().group)
@@ -6726,7 +6733,7 @@ return _$createComponent(Section,{get api(){return props.api
6726
6733
  },sectionId:`${PLUGIN_ID}.section.subagents`,get navigationSection(){return navigationSection()
6727
6734
  },title:"SUBAGENTS",section:"subagents",get summary(){return `${model.list().length} active \xB7 ${model.recent().length} recent`
6728
6735
  },get open(){return props.preferences.expanded().subagents
6729
- },onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show25,{get when(){return model.parentID()
6736
+ },onToggle:()=>props.preferences.toggleSectionExpanded("subagents"),get children(){return [_$createComponent(Show26,{get when(){return model.parentID()
6730
6737
  },children:(id)=>_$createComponent(McpBulkAction,{get api(){return props.api
6731
6738
  },get interaction(){return props.interaction
6732
6739
  },id:`${PLUGIN_ID}.subagents.parent`,get position(){return{section:navigationSection(),row:1,column:0
@@ -6749,7 +6756,7 @@ _$insert(_el$,_$createComponent(SectionFilter,{get api(){return props.api
6749
6756
  }}),_el$2)
6750
6757
  _$setProp(_el$2,"flexDirection","row")
6751
6758
  _$setProp(_el$2,"flexWrap","wrap")
6752
- _$insert(_el$2,_$createComponent(For18,{get each(){return model.tabs()
6759
+ _$insert(_el$2,_$createComponent(For19,{get each(){return model.tabs()
6753
6760
  },children:(value,index)=>_$createComponent(SectionTab,{get api(){return props.api
6754
6761
  },get interaction(){return props.interaction
6755
6762
  },id:`${PLUGIN_ID}.subagents.filter.${value}`,get position(){return{section:navigationSection(),row:4,column:index()
@@ -6760,7 +6767,7 @@ _$insert(_el$2,_$createComponent(For18,{get each(){return model.tabs()
6760
6767
  },onActivate:()=>model.setMode(value)
6761
6768
  })
6762
6769
  }))
6763
- _$insert(_el$,_$createComponent(Show25,{get when(){return model.filtered().length===0
6770
+ _$insert(_el$,_$createComponent(Show26,{get when(){return model.filtered().length===0
6764
6771
  },get children(){var _el$3=_$createElement("text")
6765
6772
  _$insertNode(_el$3,_$createTextNode(`No matching subagents`))
6766
6773
  _$effect((_$p)=>_$setProp(_el$3,"fg",props.api.theme.current.textMuted,_$p))
@@ -6844,7 +6851,7 @@ _$insert(_el$2,()=>icons.icon(done()?"done":active()?"busy":cancelled()?"close":
6844
6851
  _$setProp(_el$3,"flexGrow",1)
6845
6852
  _$setProp(_el$3,"wrapMode","word")
6846
6853
  _$insert(_el$3,()=>props.item.content)
6847
- _$insert(_el$,_$createComponent(Show26,{get when(){return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
6854
+ _$insert(_el$,_$createComponent(Show27,{get when(){return props.item.priority==="high"||props.item.priority==="medium"||props.item.priority==="low"
6848
6855
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b"),_el$6=_$createTextNode(` `)
6849
6856
  _$insertNode(_el$4,_el$5)
6850
6857
  _$setProp(_el$4,"width",2)
@@ -6871,7 +6878,7 @@ _$insertNode(_el$,_el$2)
6871
6878
  _$setProp(_el$,"gap",1)
6872
6879
  _$setProp(_el$2,"flexDirection","row")
6873
6880
  _$setProp(_el$2,"flexWrap","wrap")
6874
- _$insert(_el$2,_$createComponent(For19,{each:["all","active","finished"],children:(value,index)=>_$createComponent(SectionTab,{get api(){return props.api
6881
+ _$insert(_el$2,_$createComponent(For20,{each:["all","active","finished"],children:(value,index)=>_$createComponent(SectionTab,{get api(){return props.api
6875
6882
  },get interaction(){return props.interaction
6876
6883
  },id:`${PLUGIN_ID}.todo.filter.${value}`,get position(){return{section:navigationSection(),row:tabsRow(),column:index()
6877
6884
  }},get label(){return value[0].toUpperCase() + value.slice(1)
@@ -6880,17 +6887,17 @@ _$insert(_el$2,_$createComponent(For19,{each:["all","active","finished"],childre
6880
6887
  },onActivate:()=>props.setMode(value)
6881
6888
  })
6882
6889
  }))
6883
- _$insert(_el$,_$createComponent(Show27,{get when(){return props.view.rows.length>0
6890
+ _$insert(_el$,_$createComponent(Show28,{get when(){return props.view.rows.length>0
6884
6891
  },get fallback(){return _$createComponent(EmptyTodo,{get api(){return props.api
6885
6892
  },get mode(){return props.mode
6886
6893
  }})
6887
6894
  },get children(){return _$createComponent(SidebarRowList,{get api(){return props.api
6888
6895
  },get interaction(){return props.interaction
6889
6896
  },get density(){return props.density
6890
- },get children(){return _$createComponent(For19,{get each(){return props.visibility.visible()
6897
+ },get children(){return _$createComponent(For20,{get each(){return props.visibility.visible()
6891
6898
  },children:(row,index)=>{const startsGroup=()=>index()===0||props.visibility.visible()[index()-1].group!==row.group
6892
6899
  return(()=>{var _el$3=_$createElement("box")
6893
- _$insert(_el$3,_$createComponent(Show27,{get when(){return startsGroup()
6900
+ _$insert(_el$3,_$createComponent(Show28,{get when(){return startsGroup()
6894
6901
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
6895
6902
  _$insertNode(_el$4,_el$5)
6896
6903
  _$insert(_el$5,()=>row.group)
@@ -6927,7 +6934,7 @@ return _el$6
6927
6934
 
6928
6935
 
6929
6936
  function TodoGuidanceControl(props){const state=()=>props.controller.guidance(props.sessionID)
6930
- return _$createComponent(Show28,{get when(){return state().available
6937
+ return _$createComponent(Show29,{get when(){return state().available
6931
6938
  },get children(){var _el$=_$createElement("box")
6932
6939
  _$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
6933
6940
  },get interaction(){return props.interaction
@@ -6937,7 +6944,7 @@ _$insert(_el$,_$createComponent(SectionTab,{get api(){return props.api
6937
6944
  },get disabled(){return state().saving
6938
6945
  },onActivate:()=>void props.controller.setGuidance(props.sessionID,!state().enabled)
6939
6946
  }),null)
6940
- _$insert(_el$,_$createComponent(Show28,{get when(){return state().error
6947
+ _$insert(_el$,_$createComponent(Show29,{get when(){return state().error
6941
6948
  },children:(message)=>(()=>{var _el$2=_$createElement("text")
6942
6949
  _$setProp(_el$2,"wrapMode","word")
6943
6950
  _$insert(_el$2,message)
@@ -6975,10 +6982,10 @@ return _$createComponent(Section,{get api(){return props.api
6975
6982
  },sectionId:`${PLUGIN_ID}.section.todo`,get navigationSection(){return navigationSection()
6976
6983
  },title:"TODO",section:"todo",get summary(){return _$memo(()=>!!(unavailable()||managed()?.missing(props.sessionID)))()?"\u2014":`${view().counts.completed}/${list().length}`
6977
6984
  },get open(){return props.preferences.expanded().todo
6978
- },onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show29,{get when(){return unavailable()
6985
+ },onToggle:()=>props.preferences.toggleSectionExpanded("todo"),get children(){return _$createComponent(Show30,{get when(){return unavailable()
6979
6986
  },get fallback(){return(()=>{var _el$=_$createElement("box")
6980
6987
  _$setProp(_el$,"gap",1)
6981
- _$insert(_el$,_$createComponent(Show29,{get when(){return managed()?.guidance(props.sessionID).available
6988
+ _$insert(_el$,_$createComponent(Show30,{get when(){return managed()?.guidance(props.sessionID).available
6982
6989
  },get children(){return _$createComponent(TodoGuidanceControl,{get api(){return props.api
6983
6990
  },get controller(){return managed()
6984
6991
  },get sessionID(){return props.sessionID
@@ -6986,7 +6993,7 @@ _$insert(_el$,_$createComponent(Show29,{get when(){return managed()?.guidance(pr
6986
6993
  },get navigationSection(){return navigationSection()
6987
6994
  }})
6988
6995
  }}),null)
6989
- _$insert(_el$,_$createComponent(Show29,{get when(){return managed()?.missing(props.sessionID)
6996
+ _$insert(_el$,_$createComponent(Show30,{get when(){return managed()?.missing(props.sessionID)
6990
6997
  },get fallback(){return _$createComponent(SectionRequestBody,{get api(){return props.api
6991
6998
  },get interaction(){return props.interaction
6992
6999
  },id:`${PLUGIN_ID}.retry.todo`,get position(){return{section:navigationSection(),row:1,column:0
@@ -7035,7 +7042,7 @@ event.preventDefault()
7035
7042
  event.stopPropagation()
7036
7043
  props.interaction.leave()
7037
7044
  })
7038
- _$insert(_el$,_$createComponent(For20,{get each(){return visibleSections()
7045
+ _$insert(_el$,_$createComponent(For21,{get each(){return visibleSections()
7039
7046
  },children:(section,index)=>_$createComponent(SectionBoundary,{get api(){return props.api
7040
7047
  },get divided(){return index()<visibleSections().length-1
7041
7048
  },get children(){return _$createComponent(Switch,{get children(){return [_$createComponent(Match,{when:section==="limits",get children(){return props.limitsSection(index() + 1)
@@ -7130,7 +7137,7 @@ _$setProp(_el$2,"flexDirection","row")
7130
7137
  _$setProp(_el$2,"justifyContent","space-between")
7131
7138
  _$setProp(_el$2,"gap",1)
7132
7139
  _$setProp(_el$3,"flexGrow",1)
7133
- _$insert(_el$3,_$createComponent(Show30,{get when(){return props.preferences.showSessionTitle()
7140
+ _$insert(_el$3,_$createComponent(Show31,{get when(){return props.preferences.showSessionTitle()
7134
7141
  },get children(){var _el$4=_$createElement("text"),_el$5=_$createElement("b")
7135
7142
  _$insertNode(_el$4,_el$5)
7136
7143
  _$setProp(_el$4,"wrapMode","word")
@@ -7138,7 +7145,7 @@ _$insert(_el$5,()=>props.title)
7138
7145
  _$effect((_$p)=>_$setProp(_el$4,"fg",theme().text,_$p))
7139
7146
  return _el$4
7140
7147
  }}),null)
7141
- _$insert(_el$3,_$createComponent(Show30,{get when(){return _$memo(()=>!!props.preferences.showSessionDate())()&&created()
7148
+ _$insert(_el$3,_$createComponent(Show31,{get when(){return _$memo(()=>!!props.preferences.showSessionDate())()&&created()
7142
7149
  },children:(value)=>(()=>{var _el$6=_$createElement("text")
7143
7150
  _$insert(_el$6,value)
7144
7151
  _$effect((_$p)=>_$setProp(_el$6,"fg",theme().textMuted,_$p))
@@ -7515,7 +7522,7 @@ const limitsPath=import.meta.url.includes("/dist/tui.js")?"./provider-limits.js"
7515
7522
  const limitsModule=await import(limitsPath)
7516
7523
  const LimitsSection=limitsModule.ProviderLimitsSection
7517
7524
  const{controller:limits,codex,accountSource,selectModel,modelSelection
7518
- }=limitsModule.createProviderQuotaIntegration(api,preferences,"0.21.5",hostContext)
7525
+ }=limitsModule.createProviderQuotaIntegration(api,preferences,"0.21.6",hostContext)
7519
7526
  const mcp=createMcpController(api,preferences.persistMcp,preferences)
7520
7527
  const interaction=createSidebarInteraction(api,()=>openKeyboardHelp(api,preferences.lspIconStyle,preferences.cornerFont))
7521
7528
  const startup=createStartupSessionController(api,preferences)
@@ -7543,7 +7550,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
7543
7550
  },interaction,skills,subagents,mcp
7544
7551
  }),_$createComponent(FirstRunWizardPersistence,{api,preferences
7545
7552
  }),_$createComponent(StartupSessionBinding,{api,controller:startup
7546
- }),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.21.5"
7553
+ }),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.21.6"
7547
7554
  }),_$createComponent(McpPersistence,{api,controller:mcp
7548
7555
  })]
7549
7556
  }})
@@ -7576,12 +7583,12 @@ return result.data?.type==="text"?result.data.content:undefined
7576
7583
  })
7577
7584
  const{createVersionStatus,createVersionUpdateActions,createOpenCodeV1VersionUpdater
7578
7585
  }=await loadNavigatorUpdates()
7579
- const versionStatus=createVersionStatus(api,"0.21.5")
7580
- const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.5"))
7586
+ const versionStatus=createVersionStatus(api,"0.21.6")
7587
+ const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.6"))
7581
7588
  api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
7582
7589
  },get multilineCorners(){return preferences.cornerFont
7583
7590
  },get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
7584
- },navigatorVersion:"0.21.5",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7591
+ },navigatorVersion:"0.21.6",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7585
7592
  },get onNavigatorUpdate(){return versionUpdates.navigator
7586
7593
  }})
7587
7594
  }})
@@ -7597,15 +7604,15 @@ return new TextDecoder().decode(await context.client.file.read({location:context
7597
7604
  },todo,context)
7598
7605
  const{createVersionStatus,createVersionUpdateActions,createOpenCodeV2VersionUpdater
7599
7606
  }=await loadNavigatorUpdates()
7600
- const versionStatus=createVersionStatus(adapter.api,"0.21.5")
7601
- const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.5"))
7607
+ const versionStatus=createVersionStatus(adapter.api,"0.21.6")
7608
+ const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.21.6"))
7602
7609
  const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
7603
7610
  },get multilineCorners(){return preferences.cornerFont
7604
7611
  },get children(){var _el$=_$createElement("box")
7605
7612
  _$setProp(_el$,"flexDirection","row")
7606
7613
  _$setProp(_el$,"justifyContent","space-between")
7607
7614
  _$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
7608
- },navigatorVersion:"0.21.5",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7615
+ },navigatorVersion:"0.21.6",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
7609
7616
  },get onNavigatorUpdate(){return versionUpdates.navigator
7610
7617
  }}),null)
7611
7618
  _$insert(_el$,_$createComponent(SettingsFooterButton,{get api(){return adapter.api
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "opencode-navigator",
4
- "version": "0.21.5",
4
+ "version": "0.21.6",
5
5
  "description": "Search, navigate, and manage OpenCode sessions from the TUI",
6
6
  "type": "module",
7
7
  "packageManager": "bun@1.4.2",