codexmate 0.1.15 → 0.1.17

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.
@@ -661,13 +661,35 @@ return function render(_ctx, _cache) {
661
661
  _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.opencodeConfigPath || _ctx.t('common.notSelected')), 1 /* TEXT */)
662
662
  ])
663
663
  ], 64 /* STABLE_FRAGMENT */))
664
- : (_openBlock(), _createElementBlock("div", {
665
- key: 4,
666
- class: "status-chip"
667
- }, [
668
- _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.configMode')), 1 /* TEXT */),
669
- _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.t('common.notSelected')), 1 /* TEXT */)
670
- ]))
664
+ : (_ctx.configMode === 'kilocode')
665
+ ? (_openBlock(), _createElementBlock(_Fragment, { key: 4 }, [
666
+ _createElementVNode("div", { class: "status-chip" }, [
667
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.kilocodeProvider')), 1 /* TEXT */),
668
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.kilocodeProvider || _ctx.t('common.notSelected')), 1 /* TEXT */)
669
+ ]),
670
+ _createElementVNode("div", { class: "status-chip" }, [
671
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.kilocodeModel')), 1 /* TEXT */),
672
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.kilocodeModel || _ctx.t('common.notSelected')), 1 /* TEXT */)
673
+ ])
674
+ ], 64 /* STABLE_FRAGMENT */))
675
+ : (_ctx.configMode === 'pi')
676
+ ? (_openBlock(), _createElementBlock(_Fragment, { key: 5 }, [
677
+ _createElementVNode("div", { class: "status-chip" }, [
678
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.piProvider')), 1 /* TEXT */),
679
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.piActiveProvider || _ctx.t('common.notSelected')), 1 /* TEXT */)
680
+ ]),
681
+ _createElementVNode("div", { class: "status-chip" }, [
682
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.piModel')), 1 /* TEXT */),
683
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.piActiveModel || _ctx.t('common.notSelected')), 1 /* TEXT */)
684
+ ])
685
+ ], 64 /* STABLE_FRAGMENT */))
686
+ : (_openBlock(), _createElementBlock("div", {
687
+ key: 6,
688
+ class: "status-chip"
689
+ }, [
690
+ _createElementVNode("span", { class: "label" }, _toDisplayString(_ctx.t('status.configMode')), 1 /* TEXT */),
691
+ _createElementVNode("span", { class: "value" }, _toDisplayString(_ctx.t('common.notSelected')), 1 /* TEXT */)
692
+ ]))
671
693
  ]))
672
694
  : (!_ctx.sessionStandalone && _ctx.mainTab === 'sessions')
673
695
  ? (_openBlock(), _createElementBlock("div", {
@@ -3598,6 +3620,208 @@ return function render(_ctx, _cache) {
3598
3620
  ])
3599
3621
  ]))
3600
3622
  : _createCommentVNode("v-if", true),
3623
+ _createElementVNode("section", { class: "selector-section" }, [
3624
+ _createElementVNode("div", { class: "selector-header" }, [
3625
+ _createElementVNode("span", { class: "selector-title" }, _toDisplayString(_ctx.t('pi.files.title')), 1 /* TEXT */)
3626
+ ]),
3627
+ _createElementVNode("div", { class: "config-template-hint" }, _toDisplayString(_ctx.t('pi.files.desc')), 1 /* TEXT */),
3628
+ _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('pi.files.settingsTitle')), 1 /* TEXT */),
3629
+ _withDirectives(_createElementVNode("textarea", {
3630
+ class: "template-textarea config-json-editor",
3631
+ "onUpdate:modelValue": $event => ((_ctx.piSettingsJsonDraft) = $event),
3632
+ spellcheck: "false",
3633
+ autocomplete: "off",
3634
+ disabled: !_ctx.isToolConfigWriteAllowed('pi'),
3635
+ onInput: _ctx.piSettingsJsonInput,
3636
+ placeholder: "{}"
3637
+ }, null, 40 /* PROPS, NEED_HYDRATION */, ["onUpdate:modelValue", "disabled", "onInput"]), [
3638
+ [_vModelText, _ctx.piSettingsJsonDraft]
3639
+ ]),
3640
+ (_ctx.piSettingsJsonError)
3641
+ ? (_openBlock(), _createElementBlock("p", {
3642
+ key: 0,
3643
+ class: "config-template-hint error-text"
3644
+ }, _toDisplayString(_ctx.piSettingsJsonError), 1 /* TEXT */))
3645
+ : _createCommentVNode("v-if", true),
3646
+ _createElementVNode("div", { class: "settings-tab-actions" }, [
3647
+ _createElementVNode("button", {
3648
+ type: "button",
3649
+ class: "btn-tool",
3650
+ onClick: _ctx.savePiSettingsJson,
3651
+ disabled: !_ctx.isToolConfigWriteAllowed('pi') || _ctx.piSaving || _ctx.piFileJsonSaving || !!_ctx.piSettingsJsonError
3652
+ }, _toDisplayString(_ctx.t('common.save')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
3653
+ _createElementVNode("button", {
3654
+ type: "button",
3655
+ class: "btn-mini",
3656
+ onClick: $event => (_ctx.openPiConfigHistory('settings')),
3657
+ disabled: _ctx.piHistoryLoading
3658
+ }, _toDisplayString(_ctx.t('common.history')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
3659
+ ]),
3660
+ (_ctx.piHistoryTarget === 'settings')
3661
+ ? (_openBlock(), _createElementBlock("details", {
3662
+ key: 1,
3663
+ class: "prompt-history-panel",
3664
+ open: ""
3665
+ }, [
3666
+ _createElementVNode("summary", { class: "prompt-history-summary" }, [
3667
+ _createElementVNode("span", null, _toDisplayString(_ctx.t('common.history')), 1 /* TEXT */),
3668
+ _createElementVNode("button", {
3669
+ type: "button",
3670
+ class: "btn-mini prompt-history-close",
3671
+ onClick: _ctx.closePiConfigHistory,
3672
+ title: _ctx.t('common.close')
3673
+ }, "✕", 8 /* PROPS */, ["onClick", "title"])
3674
+ ]),
3675
+ _createElementVNode("div", { class: "prompt-history-body" }, [
3676
+ (!_ctx.piHistoryLoading && !_ctx.piHistoryError && _ctx.piHistoryItems.length)
3677
+ ? (_openBlock(), _createElementBlock("ul", {
3678
+ key: 0,
3679
+ class: "prompt-history-list"
3680
+ }, [
3681
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.piHistoryItems, (item) => {
3682
+ return (_openBlock(), _createElementBlock("li", {
3683
+ key: item.id,
3684
+ class: _normalizeClass(['prompt-history-item', { active: _ctx.piHistoryPreviewId === item.id }]),
3685
+ onClick: $event => (_ctx.viewPiConfigHistoryItem(item))
3686
+ }, [
3687
+ _createElementVNode("span", { class: "prompt-history-time" }, _toDisplayString(item.id), 1 /* TEXT */),
3688
+ _createElementVNode("span", { class: "prompt-history-size" }, _toDisplayString(Math.round(item.size / 1024 * 10) / 10) + " KB", 1 /* TEXT */)
3689
+ ], 10 /* CLASS, PROPS */, ["onClick"]))
3690
+ }), 128 /* KEYED_FRAGMENT */))
3691
+ ]))
3692
+ : _createCommentVNode("v-if", true),
3693
+ (_ctx.piHistoryLoading)
3694
+ ? (_openBlock(), _createElementBlock("div", {
3695
+ key: 1,
3696
+ class: "state-message"
3697
+ }, _toDisplayString(_ctx.t('diff.generating')), 1 /* TEXT */))
3698
+ : (_ctx.piHistoryError)
3699
+ ? (_openBlock(), _createElementBlock("div", {
3700
+ key: 2,
3701
+ class: "state-message error"
3702
+ }, _toDisplayString(_ctx.piHistoryError), 1 /* TEXT */))
3703
+ : (!_ctx.piHistoryItems.length)
3704
+ ? (_openBlock(), _createElementBlock("div", {
3705
+ key: 3,
3706
+ class: "state-message"
3707
+ }, _toDisplayString(_ctx.t('toast.history.empty')), 1 /* TEXT */))
3708
+ : _createCommentVNode("v-if", true),
3709
+ (_ctx.piHistoryPreviewContent)
3710
+ ? (_openBlock(), _createElementBlock("div", {
3711
+ key: 4,
3712
+ class: "prompt-history-preview-wrap"
3713
+ }, [
3714
+ _createElementVNode("pre", { class: "prompt-history-preview" }, _toDisplayString(_ctx.piHistoryPreviewContent), 1 /* TEXT */),
3715
+ _createElementVNode("button", {
3716
+ type: "button",
3717
+ class: "btn-mini btn-confirm-mini",
3718
+ onClick: _ctx.applyPiConfigHistory,
3719
+ disabled: _ctx.piHistoryApplying || !_ctx.isToolConfigWriteAllowed('pi')
3720
+ }, _toDisplayString(_ctx.t('pi.history.apply')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
3721
+ ]))
3722
+ : _createCommentVNode("v-if", true)
3723
+ ])
3724
+ ]))
3725
+ : _createCommentVNode("v-if", true),
3726
+ _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('pi.files.modelsTitle')), 1 /* TEXT */),
3727
+ _withDirectives(_createElementVNode("textarea", {
3728
+ class: "template-textarea config-json-editor",
3729
+ "onUpdate:modelValue": $event => ((_ctx.piModelsJsonDraft) = $event),
3730
+ spellcheck: "false",
3731
+ autocomplete: "off",
3732
+ disabled: !_ctx.isToolConfigWriteAllowed('pi'),
3733
+ onInput: _ctx.piModelsJsonInput,
3734
+ placeholder: "{}"
3735
+ }, null, 40 /* PROPS, NEED_HYDRATION */, ["onUpdate:modelValue", "disabled", "onInput"]), [
3736
+ [_vModelText, _ctx.piModelsJsonDraft]
3737
+ ]),
3738
+ (_ctx.piModelsJsonError)
3739
+ ? (_openBlock(), _createElementBlock("p", {
3740
+ key: 2,
3741
+ class: "config-template-hint error-text"
3742
+ }, _toDisplayString(_ctx.piModelsJsonError), 1 /* TEXT */))
3743
+ : _createCommentVNode("v-if", true),
3744
+ _createElementVNode("div", { class: "settings-tab-actions" }, [
3745
+ _createElementVNode("button", {
3746
+ type: "button",
3747
+ class: "btn-tool",
3748
+ onClick: _ctx.savePiModelsJson,
3749
+ disabled: !_ctx.isToolConfigWriteAllowed('pi') || _ctx.piSaving || _ctx.piFileJsonSaving || !!_ctx.piModelsJsonError
3750
+ }, _toDisplayString(_ctx.t('common.save')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]),
3751
+ _createElementVNode("button", {
3752
+ type: "button",
3753
+ class: "btn-mini",
3754
+ onClick: $event => (_ctx.openPiConfigHistory('models')),
3755
+ disabled: _ctx.piHistoryLoading
3756
+ }, _toDisplayString(_ctx.t('common.history')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
3757
+ ]),
3758
+ (_ctx.piHistoryTarget === 'models')
3759
+ ? (_openBlock(), _createElementBlock("details", {
3760
+ key: 3,
3761
+ class: "prompt-history-panel",
3762
+ open: ""
3763
+ }, [
3764
+ _createElementVNode("summary", { class: "prompt-history-summary" }, [
3765
+ _createElementVNode("span", null, _toDisplayString(_ctx.t('common.history')), 1 /* TEXT */),
3766
+ _createElementVNode("button", {
3767
+ type: "button",
3768
+ class: "btn-mini prompt-history-close",
3769
+ onClick: _ctx.closePiConfigHistory,
3770
+ title: _ctx.t('common.close')
3771
+ }, "✕", 8 /* PROPS */, ["onClick", "title"])
3772
+ ]),
3773
+ _createElementVNode("div", { class: "prompt-history-body" }, [
3774
+ (!_ctx.piHistoryLoading && !_ctx.piHistoryError && _ctx.piHistoryItems.length)
3775
+ ? (_openBlock(), _createElementBlock("ul", {
3776
+ key: 0,
3777
+ class: "prompt-history-list"
3778
+ }, [
3779
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.piHistoryItems, (item) => {
3780
+ return (_openBlock(), _createElementBlock("li", {
3781
+ key: item.id,
3782
+ class: _normalizeClass(['prompt-history-item', { active: _ctx.piHistoryPreviewId === item.id }]),
3783
+ onClick: $event => (_ctx.viewPiConfigHistoryItem(item))
3784
+ }, [
3785
+ _createElementVNode("span", { class: "prompt-history-time" }, _toDisplayString(item.id), 1 /* TEXT */),
3786
+ _createElementVNode("span", { class: "prompt-history-size" }, _toDisplayString(Math.round(item.size / 1024 * 10) / 10) + " KB", 1 /* TEXT */)
3787
+ ], 10 /* CLASS, PROPS */, ["onClick"]))
3788
+ }), 128 /* KEYED_FRAGMENT */))
3789
+ ]))
3790
+ : _createCommentVNode("v-if", true),
3791
+ (_ctx.piHistoryLoading)
3792
+ ? (_openBlock(), _createElementBlock("div", {
3793
+ key: 1,
3794
+ class: "state-message"
3795
+ }, _toDisplayString(_ctx.t('diff.generating')), 1 /* TEXT */))
3796
+ : (_ctx.piHistoryError)
3797
+ ? (_openBlock(), _createElementBlock("div", {
3798
+ key: 2,
3799
+ class: "state-message error"
3800
+ }, _toDisplayString(_ctx.piHistoryError), 1 /* TEXT */))
3801
+ : (!_ctx.piHistoryItems.length)
3802
+ ? (_openBlock(), _createElementBlock("div", {
3803
+ key: 3,
3804
+ class: "state-message"
3805
+ }, _toDisplayString(_ctx.t('toast.history.empty')), 1 /* TEXT */))
3806
+ : _createCommentVNode("v-if", true),
3807
+ (_ctx.piHistoryPreviewContent)
3808
+ ? (_openBlock(), _createElementBlock("div", {
3809
+ key: 4,
3810
+ class: "prompt-history-preview-wrap"
3811
+ }, [
3812
+ _createElementVNode("pre", { class: "prompt-history-preview" }, _toDisplayString(_ctx.piHistoryPreviewContent), 1 /* TEXT */),
3813
+ _createElementVNode("button", {
3814
+ type: "button",
3815
+ class: "btn-mini btn-confirm-mini",
3816
+ onClick: _ctx.applyPiConfigHistory,
3817
+ disabled: _ctx.piHistoryApplying || !_ctx.isToolConfigWriteAllowed('pi')
3818
+ }, _toDisplayString(_ctx.t('pi.history.apply')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
3819
+ ]))
3820
+ : _createCommentVNode("v-if", true)
3821
+ ])
3822
+ ]))
3823
+ : _createCommentVNode("v-if", true)
3824
+ ]),
3601
3825
  (!_ctx.isToolConfigWriteAllowed('pi'))
3602
3826
  ? (_openBlock(), _createElementBlock("div", {
3603
3827
  key: 2,
@@ -4697,40 +4921,55 @@ return function render(_ctx, _cache) {
4697
4921
  })
4698
4922
  ]))
4699
4923
  : _createCommentVNode("v-if", true),
4700
- _createCommentVNode(" Hero 区域:合并当前会话条 + 主要指标 "),
4701
- _createElementVNode("div", { class: "usage-hero" }, [
4702
- (_ctx.usageCurrentSessionStats)
4703
- ? (_openBlock(), _createElementBlock("div", {
4704
- key: 0,
4705
- class: "usage-hero-active"
4706
- }, [
4707
- _createElementVNode("span", { class: "usage-hero-active-dot" }),
4708
- _createElementVNode("span", { class: "usage-hero-active-label" }, _toDisplayString(_ctx.usageCurrentSessionStats.label), 1 /* TEXT */),
4709
- _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.tokenLabel) + " tokens", 1 /* TEXT */),
4710
- _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.apiDurationLabel) + " API", 1 /* TEXT */),
4711
- _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.totalDurationLabel) + " total", 1 /* TEXT */)
4712
- ]))
4713
- : _createCommentVNode("v-if", true),
4714
- _createElementVNode("div", { class: "usage-hero-metrics" }, [
4715
- _createElementVNode("div", { class: "usage-hero-main" }, _toDisplayString(_ctx.usageHeroMainValue), 1 /* TEXT */),
4716
- _createElementVNode("div", { class: "usage-hero-sub" }, [
4717
- _createElementVNode("span", null, _toDisplayString(_ctx.usageHeroSubLabel), 1 /* TEXT */),
4718
- (_ctx.usageHeroDelta)
4924
+ (_ctx.usageCurrentSessionStats)
4925
+ ? (_openBlock(), _createElementBlock("div", {
4926
+ key: 1,
4927
+ class: "usage-active-strip",
4928
+ role: "status"
4929
+ }, [
4930
+ _createElementVNode("span", { class: "usage-hero-active-dot" }),
4931
+ _createElementVNode("span", { class: "usage-hero-active-label" }, _toDisplayString(_ctx.usageCurrentSessionStats.label), 1 /* TEXT */),
4932
+ _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.tokenLabel) + " tokens", 1 /* TEXT */),
4933
+ _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.apiDurationLabel) + " API", 1 /* TEXT */),
4934
+ _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.totalDurationLabel) + " total", 1 /* TEXT */)
4935
+ ]))
4936
+ : _createCommentVNode("v-if", true),
4937
+ _createCommentVNode(" KPI 指标卡片行 "),
4938
+ _createElementVNode("div", { class: "usage-kpi-grid" }, [
4939
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usageKpiCards, (card) => {
4940
+ return (_openBlock(), _createElementBlock("div", {
4941
+ key: card.key,
4942
+ class: "usage-kpi-card"
4943
+ }, [
4944
+ _createElementVNode("div", { class: "usage-kpi-label" }, _toDisplayString(card.label), 1 /* TEXT */),
4945
+ _createElementVNode("div", {
4946
+ class: "usage-kpi-value",
4947
+ title: card.title || card.value
4948
+ }, _toDisplayString(card.value), 9 /* TEXT, PROPS */, ["title"]),
4949
+ (card.delta)
4719
4950
  ? (_openBlock(), _createElementBlock("span", {
4720
4951
  key: 0,
4721
- class: _normalizeClass(['usage-hero-delta', _ctx.usageHeroDeltaClass])
4722
- }, _toDisplayString(_ctx.usageHeroDelta), 3 /* TEXT, CLASS */))
4952
+ class: _normalizeClass(['usage-hero-delta', card.deltaClass])
4953
+ }, _toDisplayString(card.delta), 3 /* TEXT, CLASS */))
4723
4954
  : _createCommentVNode("v-if", true)
4724
- ])
4725
- ])
4955
+ ]))
4956
+ }), 128 /* KEYED_FRAGMENT */))
4726
4957
  ]),
4727
4958
  _createCommentVNode(" 波浪图 "),
4728
4959
  (_ctx.sessionUsageWave.points && _ctx.sessionUsageWave.points.length)
4729
4960
  ? (_openBlock(), _createElementBlock("section", {
4730
- key: 1,
4961
+ key: 2,
4731
4962
  class: "usage-wave-section"
4732
4963
  }, [
4733
- _createElementVNode("div", { class: "usage-card-title" }, _toDisplayString(_ctx.t('usage.daily.title')), 1 /* TEXT */),
4964
+ _createElementVNode("div", { class: "usage-card-title usage-wave-title" }, [
4965
+ _createElementVNode("span", null, _toDisplayString(_ctx.t('usage.daily.title')), 1 /* TEXT */),
4966
+ (_ctx.usageWaveHeaderSummary)
4967
+ ? (_openBlock(), _createElementBlock("span", {
4968
+ key: 0,
4969
+ class: "usage-wave-summary"
4970
+ }, _toDisplayString(_ctx.usageWaveHeaderSummary), 1 /* TEXT */))
4971
+ : _createCommentVNode("v-if", true)
4972
+ ]),
4734
4973
  _createElementVNode("div", { class: "usage-wave-container" }, [
4735
4974
  _createElementVNode("div", { class: "usage-wave-yaxis" }, [
4736
4975
  (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageWave.yTicks, (tick) => {
@@ -4895,7 +5134,7 @@ return function render(_ctx, _cache) {
4895
5134
  _createCommentVNode(" Top Sessions "),
4896
5135
  _createElementVNode("section", { class: "usage-card" }, [
4897
5136
  _createElementVNode("div", { class: "usage-card-title" }, _toDisplayString(_ctx.t('usage.sessions.topDensity')), 1 /* TEXT */),
4898
- (!_ctx.sessionUsageCharts.topSessionsByMessages.length)
5137
+ (!_ctx.usageRankedLists.topSessions.length)
4899
5138
  ? (_openBlock(), _createElementBlock("div", {
4900
5139
  key: 0,
4901
5140
  class: "usage-list-value"
@@ -4904,7 +5143,7 @@ return function render(_ctx, _cache) {
4904
5143
  key: 1,
4905
5144
  class: "usage-list-compact"
4906
5145
  }, [
4907
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageCharts.topSessionsByMessages, (item) => {
5146
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usageRankedLists.topSessions, (item) => {
4908
5147
  return (_openBlock(), _createElementBlock("div", {
4909
5148
  key: item.key + '-dense',
4910
5149
  class: "usage-list-compact-item",
@@ -4914,7 +5153,16 @@ return function render(_ctx, _cache) {
4914
5153
  _createElementVNode("span", { class: "usage-list-bullet" }, "·"),
4915
5154
  _createElementVNode("div", { class: "usage-list-compact-content" }, [
4916
5155
  _createElementVNode("div", { class: "usage-list-title" }, _toDisplayString(item.title), 1 /* TEXT */),
4917
- _createElementVNode("div", { class: "usage-list-meta" }, _toDisplayString(item.messageCount) + " msgs · " + _toDisplayString(item.sourceLabel) + " · " + _toDisplayString(item.updatedAtLabel), 1 /* TEXT */)
5156
+ _createElementVNode("div", { class: "usage-list-meta" }, _toDisplayString(item.messageCount) + " msgs · " + _toDisplayString(item.sourceLabel) + " · " + _toDisplayString(item.updatedAtLabel), 1 /* TEXT */),
5157
+ _createElementVNode("div", {
5158
+ class: "usage-list-bar",
5159
+ "aria-hidden": "true"
5160
+ }, [
5161
+ _createElementVNode("span", {
5162
+ class: "usage-list-bar-fill",
5163
+ style: _normalizeStyle({ width: item.barPercent + '%' })
5164
+ }, null, 4 /* STYLE */)
5165
+ ])
4918
5166
  ])
4919
5167
  ], 8 /* PROPS */, ["onClick", "title"]))
4920
5168
  }), 128 /* KEYED_FRAGMENT */))
@@ -4923,7 +5171,7 @@ return function render(_ctx, _cache) {
4923
5171
  _createCommentVNode(" Recent Activity "),
4924
5172
  _createElementVNode("section", { class: "usage-card" }, [
4925
5173
  _createElementVNode("div", { class: "usage-card-title" }, _toDisplayString(_ctx.t('usage.recent.title')), 1 /* TEXT */),
4926
- (!_ctx.sessionUsageCharts.recentSessions.length)
5174
+ (!_ctx.usageRankedLists.recentSessions.length)
4927
5175
  ? (_openBlock(), _createElementBlock("div", {
4928
5176
  key: 0,
4929
5177
  class: "usage-list-value"
@@ -4932,7 +5180,7 @@ return function render(_ctx, _cache) {
4932
5180
  key: 1,
4933
5181
  class: "usage-list-compact"
4934
5182
  }, [
4935
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageCharts.recentSessions, (item) => {
5183
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usageRankedLists.recentSessions, (item) => {
4936
5184
  return (_openBlock(), _createElementBlock("div", {
4937
5185
  key: item.key,
4938
5186
  class: "usage-list-compact-item",
@@ -4941,7 +5189,16 @@ return function render(_ctx, _cache) {
4941
5189
  _createElementVNode("span", { class: "usage-list-bullet" }, "·"),
4942
5190
  _createElementVNode("div", { class: "usage-list-compact-content" }, [
4943
5191
  _createElementVNode("div", { class: "usage-list-title" }, _toDisplayString(item.title), 1 /* TEXT */),
4944
- _createElementVNode("div", { class: "usage-list-meta" }, _toDisplayString(item.messageCount) + " msgs · " + _toDisplayString(item.sourceLabel) + " · " + _toDisplayString(item.updatedAtLabel), 1 /* TEXT */)
5192
+ _createElementVNode("div", { class: "usage-list-meta" }, _toDisplayString(item.messageCount) + " msgs · " + _toDisplayString(item.sourceLabel) + " · " + _toDisplayString(item.updatedAtLabel), 1 /* TEXT */),
5193
+ _createElementVNode("div", {
5194
+ class: "usage-list-bar",
5195
+ "aria-hidden": "true"
5196
+ }, [
5197
+ _createElementVNode("span", {
5198
+ class: "usage-list-bar-fill",
5199
+ style: _normalizeStyle({ width: item.barPercent + '%' })
5200
+ }, null, 4 /* STYLE */)
5201
+ ])
4945
5202
  ])
4946
5203
  ], 8 /* PROPS */, ["onClick"]))
4947
5204
  }), 128 /* KEYED_FRAGMENT */))
@@ -4950,7 +5207,7 @@ return function render(_ctx, _cache) {
4950
5207
  _createCommentVNode(" Top Paths "),
4951
5208
  _createElementVNode("section", { class: "usage-paths-section" }, [
4952
5209
  _createElementVNode("div", { class: "usage-card-title" }, _toDisplayString(_ctx.t('usage.paths.title')), 1 /* TEXT */),
4953
- (!_ctx.sessionUsageCharts.topPaths.length)
5210
+ (!_ctx.usageRankedLists.topPaths.length)
4954
5211
  ? (_openBlock(), _createElementBlock("div", {
4955
5212
  key: 0,
4956
5213
  class: "usage-list-value"
@@ -4959,7 +5216,7 @@ return function render(_ctx, _cache) {
4959
5216
  key: 1,
4960
5217
  class: "usage-list-paths"
4961
5218
  }, [
4962
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageCharts.topPaths, (item, index) => {
5219
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usageRankedLists.topPaths, (item, index) => {
4963
5220
  return (_openBlock(), _createElementBlock("div", {
4964
5221
  key: item.path,
4965
5222
  class: "usage-list-path-row"
@@ -4970,8 +5227,17 @@ return function render(_ctx, _cache) {
4970
5227
  class: "usage-list-path",
4971
5228
  title: item.path
4972
5229
  }, _toDisplayString(item.path), 9 /* TEXT, PROPS */, ["title"]),
4973
- _createElementVNode("div", { class: "usage-list-path-stat" }, _toDisplayString(item.count), 1 /* TEXT */)
4974
- ])
5230
+ _createElementVNode("div", {
5231
+ class: "usage-list-bar",
5232
+ "aria-hidden": "true"
5233
+ }, [
5234
+ _createElementVNode("span", {
5235
+ class: "usage-list-bar-fill",
5236
+ style: _normalizeStyle({ width: item.barPercent + '%' })
5237
+ }, null, 4 /* STYLE */)
5238
+ ])
5239
+ ]),
5240
+ _createElementVNode("div", { class: "usage-list-path-stat" }, _toDisplayString(item.count), 1 /* TEXT */)
4975
5241
  ]))
4976
5242
  }), 128 /* KEYED_FRAGMENT */))
4977
5243
  ]))
@@ -4993,23 +5259,26 @@ return function render(_ctx, _cache) {
4993
5259
  ]),
4994
5260
  _createElementVNode("div", { class: "docs-toolbar-grid" }, [
4995
5261
  _createElementVNode("div", { class: "docs-toolbar-card" }, [
4996
- _createElementVNode("label", {
4997
- class: "form-label",
4998
- for: "docs-install-package-manager"
4999
- }, _toDisplayString(_ctx.t('common.packageManager')), 1 /* TEXT */),
5000
- _withDirectives(_createElementVNode("select", {
5001
- id: "docs-install-package-manager",
5002
- class: "form-input",
5003
- "onUpdate:modelValue": $event => ((_ctx.installPackageManager) = $event)
5004
- }, [
5005
- _createElementVNode("option", { value: "npm" }, "npm"),
5006
- _createElementVNode("option", { value: "pnpm" }, "pnpm"),
5007
- _createElementVNode("option", { value: "bun" }, "bun")
5008
- ], 8 /* PROPS */, ["onUpdate:modelValue"]), [
5009
- [_vModelSelect, _ctx.installPackageManager]
5262
+ _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('common.packageManager')), 1 /* TEXT */),
5263
+ _createElementVNode("div", { class: "install-action-tabs" }, [
5264
+ _createElementVNode("button", {
5265
+ type: "button",
5266
+ class: _normalizeClass(["btn-mini", { active: _ctx.installPackageManager === 'npm' }]),
5267
+ onClick: $event => (_ctx.installPackageManager = 'npm')
5268
+ }, "npm", 10 /* CLASS, PROPS */, ["onClick"]),
5269
+ _createElementVNode("button", {
5270
+ type: "button",
5271
+ class: _normalizeClass(["btn-mini", { active: _ctx.installPackageManager === 'pnpm' }]),
5272
+ onClick: $event => (_ctx.installPackageManager = 'pnpm')
5273
+ }, "pnpm", 10 /* CLASS, PROPS */, ["onClick"]),
5274
+ _createElementVNode("button", {
5275
+ type: "button",
5276
+ class: _normalizeClass(["btn-mini", { active: _ctx.installPackageManager === 'bun' }]),
5277
+ onClick: $event => (_ctx.installPackageManager = 'bun')
5278
+ }, "bun", 10 /* CLASS, PROPS */, ["onClick"])
5010
5279
  ])
5011
5280
  ]),
5012
- _createElementVNode("div", { class: "docs-toolbar-card docs-toolbar-card-wide" }, [
5281
+ _createElementVNode("div", { class: "docs-toolbar-card" }, [
5013
5282
  _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('common.mirror')), 1 /* TEXT */),
5014
5283
  _createElementVNode("div", { class: "install-action-tabs" }, [
5015
5284
  _createElementVNode("button", {
@@ -5050,7 +5319,7 @@ return function render(_ctx, _cache) {
5050
5319
  }, _toDisplayString(_ctx.t('docs.registryHintCustom')), 1 /* TEXT */))
5051
5320
  : _createCommentVNode("v-if", true)
5052
5321
  ]),
5053
- _createElementVNode("div", { class: "docs-toolbar-card docs-toolbar-card-wide" }, [
5322
+ _createElementVNode("div", { class: "docs-toolbar-card" }, [
5054
5323
  _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('common.action')), 1 /* TEXT */),
5055
5324
  _createElementVNode("div", { class: "install-action-tabs" }, [
5056
5325
  _createElementVNode("button", {
@@ -5070,20 +5339,6 @@ return function render(_ctx, _cache) {
5070
5339
  }, _toDisplayString(_ctx.t('common.uninstall')), 11 /* TEXT, CLASS, PROPS */, ["onClick"])
5071
5340
  ])
5072
5341
  ])
5073
- ]),
5074
- _createElementVNode("div", { class: "docs-summary-strip" }, [
5075
- _createElementVNode("div", { class: "docs-summary-item" }, [
5076
- _createElementVNode("span", { class: "docs-summary-label" }, _toDisplayString(_ctx.t('common.targets')), 1 /* TEXT */),
5077
- _createElementVNode("strong", { class: "docs-summary-value" }, _toDisplayString(_ctx.installTargetCards.length), 1 /* TEXT */)
5078
- ]),
5079
- _createElementVNode("div", { class: "docs-summary-item" }, [
5080
- _createElementVNode("span", { class: "docs-summary-label" }, _toDisplayString(_ctx.t('common.currentPm')), 1 /* TEXT */),
5081
- _createElementVNode("strong", { class: "docs-summary-value" }, _toDisplayString(String(_ctx.installPackageManager || 'npm').toUpperCase()), 1 /* TEXT */)
5082
- ]),
5083
- _createElementVNode("div", { class: "docs-summary-item docs-summary-item-wide" }, [
5084
- _createElementVNode("span", { class: "docs-summary-label" }, _toDisplayString(_ctx.t('common.registry')), 1 /* TEXT */),
5085
- _createElementVNode("strong", { class: "docs-summary-value" }, _toDisplayString(_ctx.installRegistryPreview || 'npmmirror'), 1 /* TEXT */)
5086
- ])
5087
5342
  ])
5088
5343
  ]),
5089
5344
  _createElementVNode("div", { class: "selector-section" }, [
@@ -5806,7 +6061,14 @@ return function render(_ctx, _cache) {
5806
6061
  "aria-pressed": _ctx.skillsTargetApp === 'claude',
5807
6062
  disabled: _ctx.loading || !!_ctx.initError || _ctx.skillsMarketBusy,
5808
6063
  onClick: $event => (_ctx.setSkillsTargetApp('claude', { silent: false }))
5809
- }, " Claude Code ", 10 /* CLASS, PROPS */, ["aria-pressed", "disabled", "onClick"])
6064
+ }, " Claude Code ", 10 /* CLASS, PROPS */, ["aria-pressed", "disabled", "onClick"]),
6065
+ _createElementVNode("button", {
6066
+ type: "button",
6067
+ class: _normalizeClass(['skills-target-chip', { active: _ctx.skillsTargetApp === 'pi' }]),
6068
+ "aria-pressed": _ctx.skillsTargetApp === 'pi',
6069
+ disabled: _ctx.loading || !!_ctx.initError || _ctx.skillsMarketBusy,
6070
+ onClick: $event => (_ctx.setSkillsTargetApp('pi', { silent: false }))
6071
+ }, " Pi ", 10 /* CLASS, PROPS */, ["aria-pressed", "disabled", "onClick"])
5810
6072
  ], 8 /* PROPS */, ["aria-label"])
5811
6073
  ]),
5812
6074
  _createElementVNode("div", { class: "skills-header-actions" }, [
@@ -6065,49 +6327,54 @@ return function render(_ctx, _cache) {
6065
6327
  role: "tabpanel",
6066
6328
  "aria-labelledby": "tab-plugins"
6067
6329
  }, [
6068
- _createElementVNode("div", { class: "plugins-layout" }, [
6069
- _createElementVNode("aside", {
6070
- class: "plugins-sidebar",
6071
- "aria-label": _ctx.t('plugins.sidebar.ariaList')
6072
- }, [
6073
- _createElementVNode("div", { class: "selector-header plugins-sidebar-header" }, [
6074
- _createElementVNode("div", null, [
6075
- _createElementVNode("span", { class: "selector-title" }, _toDisplayString(_ctx.t('plugins.sidebar.title')), 1 /* TEXT */),
6076
- _createElementVNode("div", { class: "plugins-panel-note" }, _toDisplayString(_ctx.t('plugins.sidebar.note')), 1 /* TEXT */)
6077
- ]),
6078
- _createElementVNode("div", { class: "settings-tab-actions" }, [
6079
- _createElementVNode("button", {
6080
- type: "button",
6081
- class: "btn-tool btn-tool-compact",
6082
- onClick: $event => (_ctx.loadPluginsOverview({ forceRefresh: true, silent: false })),
6083
- disabled: _ctx.loading || !!_ctx.initError || _ctx.pluginsLoading
6084
- }, _toDisplayString(_ctx.pluginsLoading ? _ctx.t('plugins.refreshing') : _ctx.t('plugins.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6085
- ])
6086
- ]),
6087
- _createElementVNode("div", {
6088
- class: "plugins-list",
6089
- role: "list"
6090
- }, [
6091
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pluginsCatalog, (plugin) => {
6092
- return (_openBlock(), _createElementBlock("button", {
6093
- key: 'plugin-' + plugin.id,
6094
- type: "button",
6095
- class: _normalizeClass(['plugins-item', { active: _ctx.pluginsActiveId === plugin.id }]),
6096
- "aria-current": _ctx.pluginsActiveId === plugin.id ? 'page' : null,
6097
- disabled: _ctx.loading || !!_ctx.initError || _ctx.pluginsLoading,
6098
- onClick: $event => (_ctx.selectPlugin(plugin.id))
6099
- }, [
6100
- _createElementVNode("div", { class: "plugins-item-main" }, [
6101
- _createElementVNode("div", { class: "plugins-item-title" }, _toDisplayString(plugin.title), 1 /* TEXT */),
6102
- _createElementVNode("div", { class: "plugins-item-meta" }, _toDisplayString(plugin.description), 1 /* TEXT */)
6330
+ _createElementVNode("div", {
6331
+ class: _normalizeClass(['plugins-layout', { 'plugins-layout-single': !_ctx.pluginsSidebarVisible }])
6332
+ }, [
6333
+ (_ctx.pluginsSidebarVisible)
6334
+ ? (_openBlock(), _createElementBlock("aside", {
6335
+ key: 0,
6336
+ class: "plugins-sidebar",
6337
+ "aria-label": _ctx.t('plugins.sidebar.ariaList')
6338
+ }, [
6339
+ _createElementVNode("div", { class: "selector-header plugins-sidebar-header" }, [
6340
+ _createElementVNode("div", null, [
6341
+ _createElementVNode("span", { class: "selector-title" }, _toDisplayString(_ctx.t('plugins.sidebar.title')), 1 /* TEXT */),
6342
+ _createElementVNode("div", { class: "plugins-panel-note" }, _toDisplayString(_ctx.t('plugins.sidebar.note')), 1 /* TEXT */)
6103
6343
  ]),
6104
- _createElementVNode("span", {
6105
- class: _normalizeClass(['pill', plugin.tone])
6106
- }, _toDisplayString(plugin.statusLabel), 3 /* TEXT, CLASS */)
6107
- ], 10 /* CLASS, PROPS */, ["aria-current", "disabled", "onClick"]))
6108
- }), 128 /* KEYED_FRAGMENT */))
6109
- ])
6110
- ], 8 /* PROPS */, ["aria-label"]),
6344
+ _createElementVNode("div", { class: "settings-tab-actions" }, [
6345
+ _createElementVNode("button", {
6346
+ type: "button",
6347
+ class: "btn-tool btn-tool-compact",
6348
+ onClick: $event => (_ctx.loadPluginsOverview({ forceRefresh: true, silent: false })),
6349
+ disabled: _ctx.loading || !!_ctx.initError || _ctx.pluginsLoading
6350
+ }, _toDisplayString(_ctx.pluginsLoading ? _ctx.t('plugins.refreshing') : _ctx.t('plugins.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6351
+ ])
6352
+ ]),
6353
+ _createElementVNode("div", {
6354
+ class: "plugins-list",
6355
+ role: "list"
6356
+ }, [
6357
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pluginsCatalog, (plugin) => {
6358
+ return (_openBlock(), _createElementBlock("button", {
6359
+ key: 'plugin-' + plugin.id,
6360
+ type: "button",
6361
+ class: _normalizeClass(['plugins-item', { active: _ctx.pluginsActiveId === plugin.id }]),
6362
+ "aria-current": _ctx.pluginsActiveId === plugin.id ? 'page' : null,
6363
+ disabled: _ctx.loading || !!_ctx.initError || _ctx.pluginsLoading,
6364
+ onClick: $event => (_ctx.selectPlugin(plugin.id))
6365
+ }, [
6366
+ _createElementVNode("div", { class: "plugins-item-main" }, [
6367
+ _createElementVNode("div", { class: "plugins-item-title" }, _toDisplayString(plugin.title), 1 /* TEXT */),
6368
+ _createElementVNode("div", { class: "plugins-item-meta" }, _toDisplayString(plugin.description), 1 /* TEXT */)
6369
+ ]),
6370
+ _createElementVNode("span", {
6371
+ class: _normalizeClass(['pill', plugin.tone])
6372
+ }, _toDisplayString(plugin.statusLabel), 3 /* TEXT, CLASS */)
6373
+ ], 10 /* CLASS, PROPS */, ["aria-current", "disabled", "onClick"]))
6374
+ }), 128 /* KEYED_FRAGMENT */))
6375
+ ])
6376
+ ], 8 /* PROPS */, ["aria-label"]))
6377
+ : _createCommentVNode("v-if", true),
6111
6378
  _createElementVNode("section", {
6112
6379
  class: "plugins-main",
6113
6380
  "aria-label": _ctx.t('plugins.main.ariaWorkspace')
@@ -6136,12 +6403,27 @@ return function render(_ctx, _cache) {
6136
6403
  class: "plugins-panel"
6137
6404
  }, [
6138
6405
  _createElementVNode("div", { class: "plugins-panel-head" }, [
6139
- _createElementVNode("div", { class: "plugins-panel-title" }, _toDisplayString(_ctx.t('plugins.promptTemplates.title')), 1 /* TEXT */),
6140
- (_ctx.pluginsActiveAttribution)
6406
+ _createElementVNode("div", null, [
6407
+ _createElementVNode("div", { class: "plugins-panel-title" }, _toDisplayString(_ctx.t('plugins.promptTemplates.title')), 1 /* TEXT */),
6408
+ (_ctx.pluginsActiveAttribution)
6409
+ ? (_openBlock(), _createElementBlock("div", {
6410
+ key: 0,
6411
+ class: "plugins-panel-note"
6412
+ }, _toDisplayString(_ctx.pluginsActiveAttribution), 1 /* TEXT */))
6413
+ : _createCommentVNode("v-if", true)
6414
+ ]),
6415
+ (!_ctx.pluginsSidebarVisible)
6141
6416
  ? (_openBlock(), _createElementBlock("div", {
6142
6417
  key: 0,
6143
- class: "plugins-panel-note"
6144
- }, _toDisplayString(_ctx.pluginsActiveAttribution), 1 /* TEXT */))
6418
+ class: "settings-tab-actions"
6419
+ }, [
6420
+ _createElementVNode("button", {
6421
+ type: "button",
6422
+ class: "btn-tool btn-tool-compact",
6423
+ onClick: $event => (_ctx.loadPluginsOverview({ forceRefresh: true, silent: false })),
6424
+ disabled: _ctx.loading || !!_ctx.initError || _ctx.pluginsLoading
6425
+ }, _toDisplayString(_ctx.pluginsLoading ? _ctx.t('plugins.refreshing') : _ctx.t('plugins.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6426
+ ]))
6145
6427
  : _createCommentVNode("v-if", true)
6146
6428
  ]),
6147
6429
  _createElementVNode("div", {
@@ -6195,126 +6477,118 @@ return function render(_ctx, _cache) {
6195
6477
  class: "prompt-compose"
6196
6478
  }, [
6197
6479
  _createElementVNode("div", { class: "prompt-compose-workspace" }, [
6198
- _createElementVNode("div", { class: "prompt-compose-selected" }, [
6199
- _createElementVNode("div", { class: "prompt-compose-selected-title" }, _toDisplayString((_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.name) ? _ctx.promptComposerActiveTemplate.name : _ctx.t('plugins.promptTemplates.compose.chooseTemplate')), 1 /* TEXT */),
6200
- _createElementVNode("div", { class: "prompt-compose-selected-meta" }, _toDisplayString((_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.description) ? _ctx.promptComposerActiveTemplate.description : _ctx.t('plugins.promptTemplates.compose.chooseTemplateHint')), 1 /* TEXT */),
6201
- (_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.isBuiltin && (_ctx.promptComposerActiveTemplate.createdBy || (_ctx.promptComposerActiveTemplate.maintainers && _ctx.promptComposerActiveTemplate.maintainers.length)))
6202
- ? (_openBlock(), _createElementBlock("div", {
6203
- key: 0,
6204
- class: "plugins-panel-note"
6205
- }, _toDisplayString(_ctx.t('plugins.meta.attribution', { createdBy: _ctx.promptComposerActiveTemplate.createdBy || '', maintainers: (_ctx.promptComposerActiveTemplate.maintainers || []).join(', ') })), 1 /* TEXT */))
6206
- : _createCommentVNode("v-if", true)
6207
- ]),
6208
- _createElementVNode("div", { class: "prompt-compose-form" }, [
6209
- _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.selectTemplate')), 1 /* TEXT */),
6210
- _createElementVNode("select", {
6211
- class: "form-select prompt-compose-template-select",
6212
- value: _ctx.promptComposerSelectedTemplateId,
6213
- onChange: $event => (_ctx.selectPromptComposerTemplate($event.target.value)),
6214
- disabled: _ctx.pluginsLoading || !_ctx.promptTemplatesList.length
6215
- }, [
6216
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.promptTemplatesList, (tpl) => {
6217
- return (_openBlock(), _createElementBlock("option", {
6218
- key: 'compose-tpl-' + tpl.id,
6219
- value: tpl.id
6220
- }, _toDisplayString(tpl.name) + _toDisplayString(tpl.isBuiltin ? _ctx.t('plugins.promptTemplates.compose.builtinSuffix') : ''), 9 /* TEXT, PROPS */, ["value"]))
6221
- }), 128 /* KEYED_FRAGMENT */))
6222
- ], 40 /* PROPS, NEED_HYDRATION */, ["value", "onChange", "disabled"]),
6223
- (!_ctx.promptComposerActiveTemplate)
6224
- ? (_openBlock(), _createElementBlock("div", {
6225
- key: 0,
6226
- class: "plugins-panel-note"
6227
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.empty')), 1 /* TEXT */))
6228
- : (!_ctx.promptComposerActiveTemplate.isBuiltin)
6480
+ _createElementVNode("div", { class: "prompt-compose-main" }, [
6481
+ _createElementVNode("div", { class: "prompt-compose-form" }, [
6482
+ _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.selectTemplate')), 1 /* TEXT */),
6483
+ _createElementVNode("select", {
6484
+ class: "form-select prompt-compose-template-select",
6485
+ value: _ctx.promptComposerSelectedTemplateId,
6486
+ onChange: $event => (_ctx.selectPromptComposerTemplate($event.target.value)),
6487
+ disabled: _ctx.pluginsLoading || !_ctx.promptTemplatesList.length
6488
+ }, [
6489
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.promptTemplatesList, (tpl) => {
6490
+ return (_openBlock(), _createElementBlock("option", {
6491
+ key: 'compose-tpl-' + tpl.id,
6492
+ value: tpl.id
6493
+ }, _toDisplayString(tpl.name) + _toDisplayString(tpl.isBuiltin ? _ctx.t('plugins.promptTemplates.compose.builtinSuffix') : ''), 9 /* TEXT, PROPS */, ["value"]))
6494
+ }), 128 /* KEYED_FRAGMENT */))
6495
+ ], 40 /* PROPS, NEED_HYDRATION */, ["value", "onChange", "disabled"]),
6496
+ (!_ctx.promptComposerActiveTemplate)
6229
6497
  ? (_openBlock(), _createElementBlock("div", {
6230
- key: 1,
6498
+ key: 0,
6231
6499
  class: "plugins-panel-note"
6232
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.varsHint')), 1 /* TEXT */))
6233
- : _createCommentVNode("v-if", true),
6234
- (_ctx.promptComposerActiveTemplate && !_ctx.promptComposerActiveTemplate.isBuiltin)
6235
- ? (_openBlock(), _createElementBlock("div", {
6236
- key: 2,
6237
- class: "prompt-compose-actions"
6238
- }, [
6239
- _createElementVNode("button", {
6240
- type: "button",
6241
- class: "btn-mini",
6242
- onClick: $event => (_ctx.selectPromptTemplate(_ctx.promptComposerSelectedTemplateId)),
6243
- disabled: _ctx.pluginsLoading || !_ctx.promptComposerSelectedTemplateId
6244
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.goManage')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6245
- ]))
6246
- : _createCommentVNode("v-if", true)
6247
- ]),
6248
- (_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.vars && _ctx.promptComposerActiveTemplate.vars.length)
6249
- ? (_openBlock(), _createElementBlock("div", {
6250
- key: 0,
6251
- class: "prompt-vars-block"
6252
- }, [
6253
- _createElementVNode("div", { class: "prompt-vars-head" }, [
6254
- _createElementVNode("div", null, [
6255
- _createElementVNode("div", { class: "prompt-vars-title" }, _toDisplayString(_ctx.t('plugins.promptTemplates.vars.title')), 1 /* TEXT */),
6256
- (!_ctx.promptComposerActiveTemplate.isBuiltin)
6257
- ? (_openBlock(), _createElementBlock("div", {
6258
- key: 0,
6259
- class: "plugins-panel-note"
6260
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.varsHint')), 1 /* TEXT */))
6261
- : _createCommentVNode("v-if", true),
6262
- (_ctx.promptComposerMissingVars.length)
6263
- ? (_openBlock(), _createElementBlock("div", {
6264
- key: 1,
6265
- class: "plugins-panel-note"
6266
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.missingCount', { count: _ctx.promptComposerMissingVars.length })), 1 /* TEXT */))
6267
- : _createCommentVNode("v-if", true)
6268
- ]),
6269
- _createElementVNode("div", { class: "prompt-editor-actions" }, [
6270
- (_ctx.promptComposerMissingVars.length)
6271
- ? (_openBlock(), _createElementBlock("button", {
6272
- key: 0,
6273
- type: "button",
6274
- class: "btn-mini",
6275
- onClick: _ctx.focusPromptComposerFirstMissingVar,
6276
- disabled: _ctx.pluginsLoading
6277
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.jumpToMissing')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]))
6278
- : _createCommentVNode("v-if", true),
6500
+ }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.empty')), 1 /* TEXT */))
6501
+ : (_ctx.promptComposerActiveTemplate.description)
6502
+ ? (_openBlock(), _createElementBlock("div", {
6503
+ key: 1,
6504
+ class: "plugins-panel-note"
6505
+ }, _toDisplayString(_ctx.promptComposerActiveTemplate.description), 1 /* TEXT */))
6506
+ : _createCommentVNode("v-if", true),
6507
+ (_ctx.promptComposerActiveTemplate && !_ctx.promptComposerActiveTemplate.isBuiltin)
6508
+ ? (_openBlock(), _createElementBlock("div", {
6509
+ key: 2,
6510
+ class: "prompt-compose-actions"
6511
+ }, [
6279
6512
  _createElementVNode("button", {
6280
6513
  type: "button",
6281
6514
  class: "btn-mini",
6282
- onClick: _ctx.resetPromptComposerVarValues,
6283
- disabled: _ctx.pluginsLoading
6284
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.vars.reset')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6285
- ])
6286
- ]),
6287
- _createElementVNode("div", { class: "prompt-vars-grid" }, [
6288
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.promptComposerActiveTemplate.vars, (name, idx) => {
6289
- return (_openBlock(), _createElementBlock("label", {
6290
- key: 'prompt-compose-var-' + name,
6291
- class: "prompt-var-row"
6292
- }, [
6293
- _createElementVNode("span", { class: "prompt-var-label mono" }, _toDisplayString(name), 1 /* TEXT */),
6294
- (idx === 0)
6295
- ? (_openBlock(), _createElementBlock("input", {
6515
+ onClick: $event => (_ctx.selectPromptTemplate(_ctx.promptComposerSelectedTemplateId)),
6516
+ disabled: _ctx.pluginsLoading || !_ctx.promptComposerSelectedTemplateId
6517
+ }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.goManage')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6518
+ ]))
6519
+ : _createCommentVNode("v-if", true)
6520
+ ]),
6521
+ (_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.vars && _ctx.promptComposerActiveTemplate.vars.length)
6522
+ ? (_openBlock(), _createElementBlock("div", {
6523
+ key: 0,
6524
+ class: "prompt-vars-block"
6525
+ }, [
6526
+ _createElementVNode("div", { class: "prompt-vars-head" }, [
6527
+ _createElementVNode("div", null, [
6528
+ _createElementVNode("div", { class: "prompt-vars-title" }, _toDisplayString(_ctx.t('plugins.promptTemplates.vars.title')), 1 /* TEXT */),
6529
+ (!_ctx.promptComposerActiveTemplate.isBuiltin)
6530
+ ? (_openBlock(), _createElementBlock("div", {
6296
6531
  key: 0,
6297
- ref_for: true,
6298
- ref: "promptComposerFirstField",
6299
- class: _normalizeClass(['form-input', 'prompt-var-input', { 'is-missing': _ctx.promptComposerMissingVars.includes(name) }]),
6300
- type: "text",
6301
- value: _ctx.promptComposerVarValues[name] || '',
6302
- onInput: $event => (_ctx.setPromptComposerVarValue(name, $event.target.value)),
6303
- placeholder: _ctx.t('plugins.promptTemplates.vars.valuePlaceholder', { name })
6304
- }, null, 42 /* CLASS, PROPS, NEED_HYDRATION */, ["value", "onInput", "placeholder"]))
6305
- : (_openBlock(), _createElementBlock("input", {
6532
+ class: "plugins-panel-note"
6533
+ }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.varsHint')), 1 /* TEXT */))
6534
+ : _createCommentVNode("v-if", true),
6535
+ (_ctx.promptComposerMissingVars.length)
6536
+ ? (_openBlock(), _createElementBlock("div", {
6306
6537
  key: 1,
6307
- class: _normalizeClass(['form-input', 'prompt-var-input', { 'is-missing': _ctx.promptComposerMissingVars.includes(name) }]),
6308
- type: "text",
6309
- value: _ctx.promptComposerVarValues[name] || '',
6310
- onInput: $event => (_ctx.setPromptComposerVarValue(name, $event.target.value)),
6311
- placeholder: _ctx.t('plugins.promptTemplates.vars.valuePlaceholder', { name })
6312
- }, null, 42 /* CLASS, PROPS, NEED_HYDRATION */, ["value", "onInput", "placeholder"]))
6313
- ]))
6314
- }), 128 /* KEYED_FRAGMENT */))
6315
- ])
6316
- ]))
6317
- : _createCommentVNode("v-if", true),
6538
+ class: "plugins-panel-note"
6539
+ }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.missingCount', { count: _ctx.promptComposerMissingVars.length })), 1 /* TEXT */))
6540
+ : _createCommentVNode("v-if", true)
6541
+ ]),
6542
+ _createElementVNode("div", { class: "prompt-editor-actions" }, [
6543
+ (_ctx.promptComposerMissingVars.length)
6544
+ ? (_openBlock(), _createElementBlock("button", {
6545
+ key: 0,
6546
+ type: "button",
6547
+ class: "btn-mini",
6548
+ onClick: _ctx.focusPromptComposerFirstMissingVar,
6549
+ disabled: _ctx.pluginsLoading
6550
+ }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.jumpToMissing')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]))
6551
+ : _createCommentVNode("v-if", true),
6552
+ _createElementVNode("button", {
6553
+ type: "button",
6554
+ class: "btn-mini",
6555
+ onClick: _ctx.resetPromptComposerVarValues,
6556
+ disabled: _ctx.pluginsLoading
6557
+ }, _toDisplayString(_ctx.t('plugins.promptTemplates.vars.reset')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6558
+ ])
6559
+ ]),
6560
+ _createElementVNode("div", { class: "prompt-vars-grid" }, [
6561
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.promptComposerActiveTemplate.vars, (name, idx) => {
6562
+ return (_openBlock(), _createElementBlock("label", {
6563
+ key: 'prompt-compose-var-' + name,
6564
+ class: "prompt-var-row"
6565
+ }, [
6566
+ _createElementVNode("span", { class: "prompt-var-label mono" }, _toDisplayString(name), 1 /* TEXT */),
6567
+ (idx === 0)
6568
+ ? (_openBlock(), _createElementBlock("input", {
6569
+ key: 0,
6570
+ ref_for: true,
6571
+ ref: "promptComposerFirstField",
6572
+ class: _normalizeClass(['form-input', 'prompt-var-input', { 'is-missing': _ctx.promptComposerMissingVars.includes(name) }]),
6573
+ type: "text",
6574
+ value: _ctx.promptComposerVarValues[name] || '',
6575
+ onInput: $event => (_ctx.setPromptComposerVarValue(name, $event.target.value)),
6576
+ placeholder: _ctx.t('plugins.promptTemplates.vars.valuePlaceholder', { name })
6577
+ }, null, 42 /* CLASS, PROPS, NEED_HYDRATION */, ["value", "onInput", "placeholder"]))
6578
+ : (_openBlock(), _createElementBlock("input", {
6579
+ key: 1,
6580
+ class: _normalizeClass(['form-input', 'prompt-var-input', { 'is-missing': _ctx.promptComposerMissingVars.includes(name) }]),
6581
+ type: "text",
6582
+ value: _ctx.promptComposerVarValues[name] || '',
6583
+ onInput: $event => (_ctx.setPromptComposerVarValue(name, $event.target.value)),
6584
+ placeholder: _ctx.t('plugins.promptTemplates.vars.valuePlaceholder', { name })
6585
+ }, null, 42 /* CLASS, PROPS, NEED_HYDRATION */, ["value", "onInput", "placeholder"]))
6586
+ ]))
6587
+ }), 128 /* KEYED_FRAGMENT */))
6588
+ ])
6589
+ ]))
6590
+ : _createCommentVNode("v-if", true)
6591
+ ]),
6318
6592
  _createElementVNode("div", { class: "prompt-preview-block prompt-compose-preview" }, [
6319
6593
  _createElementVNode("div", { class: "prompt-vars-head" }, [
6320
6594
  _createElementVNode("div", null, [
@@ -6586,7 +6860,7 @@ return function render(_ctx, _cache) {
6586
6860
  class: "skills-empty-state"
6587
6861
  }, _toDisplayString(_ctx.t('plugins.promptTemplates.noPluginSelected')), 1 /* TEXT */))
6588
6862
  ], 8 /* PROPS */, ["aria-label"])
6589
- ])
6863
+ ], 2 /* CLASS */)
6590
6864
  ], 512 /* NEED_PATCH */), [
6591
6865
  [_vShow, _ctx.mainTab === 'plugins']
6592
6866
  ]),
@@ -9739,7 +10013,14 @@ return function render(_ctx, _cache) {
9739
10013
  "aria-pressed": _ctx.skillsTargetApp === 'claude',
9740
10014
  disabled: _ctx.loading || !!_ctx.initError || _ctx.skillsMarketBusy,
9741
10015
  onClick: $event => (_ctx.setSkillsTargetApp('claude', { silent: false }))
9742
- }, " Claude Code ", 10 /* CLASS, PROPS */, ["aria-pressed", "disabled", "onClick"])
10016
+ }, " Claude Code ", 10 /* CLASS, PROPS */, ["aria-pressed", "disabled", "onClick"]),
10017
+ _createElementVNode("button", {
10018
+ type: "button",
10019
+ class: _normalizeClass(['market-target-chip', { active: _ctx.skillsTargetApp === 'pi' }]),
10020
+ "aria-pressed": _ctx.skillsTargetApp === 'pi',
10021
+ disabled: _ctx.loading || !!_ctx.initError || _ctx.skillsMarketBusy,
10022
+ onClick: $event => (_ctx.setSkillsTargetApp('pi', { silent: false }))
10023
+ }, " Pi ", 10 /* CLASS, PROPS */, ["aria-pressed", "disabled", "onClick"])
9743
10024
  ], 8 /* PROPS */, ["aria-label"]),
9744
10025
  _createElementVNode("button", {
9745
10026
  class: "btn-mini",