codexmate 0.1.16 → 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.
@@ -3649,8 +3649,80 @@ return function render(_ctx, _cache) {
3649
3649
  class: "btn-tool",
3650
3650
  onClick: _ctx.savePiSettingsJson,
3651
3651
  disabled: !_ctx.isToolConfigWriteAllowed('pi') || _ctx.piSaving || _ctx.piFileJsonSaving || !!_ctx.piSettingsJsonError
3652
- }, _toDisplayString(_ctx.t('common.save')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
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"])
3653
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),
3654
3726
  _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('pi.files.modelsTitle')), 1 /* TEXT */),
3655
3727
  _withDirectives(_createElementVNode("textarea", {
3656
3728
  class: "template-textarea config-json-editor",
@@ -3665,7 +3737,7 @@ return function render(_ctx, _cache) {
3665
3737
  ]),
3666
3738
  (_ctx.piModelsJsonError)
3667
3739
  ? (_openBlock(), _createElementBlock("p", {
3668
- key: 1,
3740
+ key: 2,
3669
3741
  class: "config-template-hint error-text"
3670
3742
  }, _toDisplayString(_ctx.piModelsJsonError), 1 /* TEXT */))
3671
3743
  : _createCommentVNode("v-if", true),
@@ -3675,8 +3747,80 @@ return function render(_ctx, _cache) {
3675
3747
  class: "btn-tool",
3676
3748
  onClick: _ctx.savePiModelsJson,
3677
3749
  disabled: !_ctx.isToolConfigWriteAllowed('pi') || _ctx.piSaving || _ctx.piFileJsonSaving || !!_ctx.piModelsJsonError
3678
- }, _toDisplayString(_ctx.t('common.save')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
3679
- ])
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)
3680
3824
  ]),
3681
3825
  (!_ctx.isToolConfigWriteAllowed('pi'))
3682
3826
  ? (_openBlock(), _createElementBlock("div", {
@@ -4777,40 +4921,55 @@ return function render(_ctx, _cache) {
4777
4921
  })
4778
4922
  ]))
4779
4923
  : _createCommentVNode("v-if", true),
4780
- _createCommentVNode(" Hero 区域:合并当前会话条 + 主要指标 "),
4781
- _createElementVNode("div", { class: "usage-hero" }, [
4782
- (_ctx.usageCurrentSessionStats)
4783
- ? (_openBlock(), _createElementBlock("div", {
4784
- key: 0,
4785
- class: "usage-hero-active"
4786
- }, [
4787
- _createElementVNode("span", { class: "usage-hero-active-dot" }),
4788
- _createElementVNode("span", { class: "usage-hero-active-label" }, _toDisplayString(_ctx.usageCurrentSessionStats.label), 1 /* TEXT */),
4789
- _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.tokenLabel) + " tokens", 1 /* TEXT */),
4790
- _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.apiDurationLabel) + " API", 1 /* TEXT */),
4791
- _createElementVNode("span", { class: "usage-hero-active-stat" }, _toDisplayString(_ctx.usageCurrentSessionStats.totalDurationLabel) + " total", 1 /* TEXT */)
4792
- ]))
4793
- : _createCommentVNode("v-if", true),
4794
- _createElementVNode("div", { class: "usage-hero-metrics" }, [
4795
- _createElementVNode("div", { class: "usage-hero-main" }, _toDisplayString(_ctx.usageHeroMainValue), 1 /* TEXT */),
4796
- _createElementVNode("div", { class: "usage-hero-sub" }, [
4797
- _createElementVNode("span", null, _toDisplayString(_ctx.usageHeroSubLabel), 1 /* TEXT */),
4798
- (_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)
4799
4950
  ? (_openBlock(), _createElementBlock("span", {
4800
4951
  key: 0,
4801
- class: _normalizeClass(['usage-hero-delta', _ctx.usageHeroDeltaClass])
4802
- }, _toDisplayString(_ctx.usageHeroDelta), 3 /* TEXT, CLASS */))
4952
+ class: _normalizeClass(['usage-hero-delta', card.deltaClass])
4953
+ }, _toDisplayString(card.delta), 3 /* TEXT, CLASS */))
4803
4954
  : _createCommentVNode("v-if", true)
4804
- ])
4805
- ])
4955
+ ]))
4956
+ }), 128 /* KEYED_FRAGMENT */))
4806
4957
  ]),
4807
4958
  _createCommentVNode(" 波浪图 "),
4808
4959
  (_ctx.sessionUsageWave.points && _ctx.sessionUsageWave.points.length)
4809
4960
  ? (_openBlock(), _createElementBlock("section", {
4810
- key: 1,
4961
+ key: 2,
4811
4962
  class: "usage-wave-section"
4812
4963
  }, [
4813
- _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
+ ]),
4814
4973
  _createElementVNode("div", { class: "usage-wave-container" }, [
4815
4974
  _createElementVNode("div", { class: "usage-wave-yaxis" }, [
4816
4975
  (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageWave.yTicks, (tick) => {
@@ -4975,7 +5134,7 @@ return function render(_ctx, _cache) {
4975
5134
  _createCommentVNode(" Top Sessions "),
4976
5135
  _createElementVNode("section", { class: "usage-card" }, [
4977
5136
  _createElementVNode("div", { class: "usage-card-title" }, _toDisplayString(_ctx.t('usage.sessions.topDensity')), 1 /* TEXT */),
4978
- (!_ctx.sessionUsageCharts.topSessionsByMessages.length)
5137
+ (!_ctx.usageRankedLists.topSessions.length)
4979
5138
  ? (_openBlock(), _createElementBlock("div", {
4980
5139
  key: 0,
4981
5140
  class: "usage-list-value"
@@ -4984,7 +5143,7 @@ return function render(_ctx, _cache) {
4984
5143
  key: 1,
4985
5144
  class: "usage-list-compact"
4986
5145
  }, [
4987
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageCharts.topSessionsByMessages, (item) => {
5146
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usageRankedLists.topSessions, (item) => {
4988
5147
  return (_openBlock(), _createElementBlock("div", {
4989
5148
  key: item.key + '-dense',
4990
5149
  class: "usage-list-compact-item",
@@ -4994,7 +5153,16 @@ return function render(_ctx, _cache) {
4994
5153
  _createElementVNode("span", { class: "usage-list-bullet" }, "·"),
4995
5154
  _createElementVNode("div", { class: "usage-list-compact-content" }, [
4996
5155
  _createElementVNode("div", { class: "usage-list-title" }, _toDisplayString(item.title), 1 /* TEXT */),
4997
- _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
+ ])
4998
5166
  ])
4999
5167
  ], 8 /* PROPS */, ["onClick", "title"]))
5000
5168
  }), 128 /* KEYED_FRAGMENT */))
@@ -5003,7 +5171,7 @@ return function render(_ctx, _cache) {
5003
5171
  _createCommentVNode(" Recent Activity "),
5004
5172
  _createElementVNode("section", { class: "usage-card" }, [
5005
5173
  _createElementVNode("div", { class: "usage-card-title" }, _toDisplayString(_ctx.t('usage.recent.title')), 1 /* TEXT */),
5006
- (!_ctx.sessionUsageCharts.recentSessions.length)
5174
+ (!_ctx.usageRankedLists.recentSessions.length)
5007
5175
  ? (_openBlock(), _createElementBlock("div", {
5008
5176
  key: 0,
5009
5177
  class: "usage-list-value"
@@ -5012,7 +5180,7 @@ return function render(_ctx, _cache) {
5012
5180
  key: 1,
5013
5181
  class: "usage-list-compact"
5014
5182
  }, [
5015
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageCharts.recentSessions, (item) => {
5183
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usageRankedLists.recentSessions, (item) => {
5016
5184
  return (_openBlock(), _createElementBlock("div", {
5017
5185
  key: item.key,
5018
5186
  class: "usage-list-compact-item",
@@ -5021,7 +5189,16 @@ return function render(_ctx, _cache) {
5021
5189
  _createElementVNode("span", { class: "usage-list-bullet" }, "·"),
5022
5190
  _createElementVNode("div", { class: "usage-list-compact-content" }, [
5023
5191
  _createElementVNode("div", { class: "usage-list-title" }, _toDisplayString(item.title), 1 /* TEXT */),
5024
- _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
+ ])
5025
5202
  ])
5026
5203
  ], 8 /* PROPS */, ["onClick"]))
5027
5204
  }), 128 /* KEYED_FRAGMENT */))
@@ -5030,7 +5207,7 @@ return function render(_ctx, _cache) {
5030
5207
  _createCommentVNode(" Top Paths "),
5031
5208
  _createElementVNode("section", { class: "usage-paths-section" }, [
5032
5209
  _createElementVNode("div", { class: "usage-card-title" }, _toDisplayString(_ctx.t('usage.paths.title')), 1 /* TEXT */),
5033
- (!_ctx.sessionUsageCharts.topPaths.length)
5210
+ (!_ctx.usageRankedLists.topPaths.length)
5034
5211
  ? (_openBlock(), _createElementBlock("div", {
5035
5212
  key: 0,
5036
5213
  class: "usage-list-value"
@@ -5039,7 +5216,7 @@ return function render(_ctx, _cache) {
5039
5216
  key: 1,
5040
5217
  class: "usage-list-paths"
5041
5218
  }, [
5042
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sessionUsageCharts.topPaths, (item, index) => {
5219
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.usageRankedLists.topPaths, (item, index) => {
5043
5220
  return (_openBlock(), _createElementBlock("div", {
5044
5221
  key: item.path,
5045
5222
  class: "usage-list-path-row"
@@ -5050,8 +5227,17 @@ return function render(_ctx, _cache) {
5050
5227
  class: "usage-list-path",
5051
5228
  title: item.path
5052
5229
  }, _toDisplayString(item.path), 9 /* TEXT, PROPS */, ["title"]),
5053
- _createElementVNode("div", { class: "usage-list-path-stat" }, _toDisplayString(item.count), 1 /* TEXT */)
5054
- ])
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 */)
5055
5241
  ]))
5056
5242
  }), 128 /* KEYED_FRAGMENT */))
5057
5243
  ]))
@@ -5073,23 +5259,26 @@ return function render(_ctx, _cache) {
5073
5259
  ]),
5074
5260
  _createElementVNode("div", { class: "docs-toolbar-grid" }, [
5075
5261
  _createElementVNode("div", { class: "docs-toolbar-card" }, [
5076
- _createElementVNode("label", {
5077
- class: "form-label",
5078
- for: "docs-install-package-manager"
5079
- }, _toDisplayString(_ctx.t('common.packageManager')), 1 /* TEXT */),
5080
- _withDirectives(_createElementVNode("select", {
5081
- id: "docs-install-package-manager",
5082
- class: "form-input",
5083
- "onUpdate:modelValue": $event => ((_ctx.installPackageManager) = $event)
5084
- }, [
5085
- _createElementVNode("option", { value: "npm" }, "npm"),
5086
- _createElementVNode("option", { value: "pnpm" }, "pnpm"),
5087
- _createElementVNode("option", { value: "bun" }, "bun")
5088
- ], 8 /* PROPS */, ["onUpdate:modelValue"]), [
5089
- [_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"])
5090
5279
  ])
5091
5280
  ]),
5092
- _createElementVNode("div", { class: "docs-toolbar-card docs-toolbar-card-wide" }, [
5281
+ _createElementVNode("div", { class: "docs-toolbar-card" }, [
5093
5282
  _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('common.mirror')), 1 /* TEXT */),
5094
5283
  _createElementVNode("div", { class: "install-action-tabs" }, [
5095
5284
  _createElementVNode("button", {
@@ -5130,7 +5319,7 @@ return function render(_ctx, _cache) {
5130
5319
  }, _toDisplayString(_ctx.t('docs.registryHintCustom')), 1 /* TEXT */))
5131
5320
  : _createCommentVNode("v-if", true)
5132
5321
  ]),
5133
- _createElementVNode("div", { class: "docs-toolbar-card docs-toolbar-card-wide" }, [
5322
+ _createElementVNode("div", { class: "docs-toolbar-card" }, [
5134
5323
  _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('common.action')), 1 /* TEXT */),
5135
5324
  _createElementVNode("div", { class: "install-action-tabs" }, [
5136
5325
  _createElementVNode("button", {
@@ -5150,20 +5339,6 @@ return function render(_ctx, _cache) {
5150
5339
  }, _toDisplayString(_ctx.t('common.uninstall')), 11 /* TEXT, CLASS, PROPS */, ["onClick"])
5151
5340
  ])
5152
5341
  ])
5153
- ]),
5154
- _createElementVNode("div", { class: "docs-summary-strip" }, [
5155
- _createElementVNode("div", { class: "docs-summary-item" }, [
5156
- _createElementVNode("span", { class: "docs-summary-label" }, _toDisplayString(_ctx.t('common.targets')), 1 /* TEXT */),
5157
- _createElementVNode("strong", { class: "docs-summary-value" }, _toDisplayString(_ctx.installTargetCards.length), 1 /* TEXT */)
5158
- ]),
5159
- _createElementVNode("div", { class: "docs-summary-item" }, [
5160
- _createElementVNode("span", { class: "docs-summary-label" }, _toDisplayString(_ctx.t('common.currentPm')), 1 /* TEXT */),
5161
- _createElementVNode("strong", { class: "docs-summary-value" }, _toDisplayString(String(_ctx.installPackageManager || 'npm').toUpperCase()), 1 /* TEXT */)
5162
- ]),
5163
- _createElementVNode("div", { class: "docs-summary-item docs-summary-item-wide" }, [
5164
- _createElementVNode("span", { class: "docs-summary-label" }, _toDisplayString(_ctx.t('common.registry')), 1 /* TEXT */),
5165
- _createElementVNode("strong", { class: "docs-summary-value" }, _toDisplayString(_ctx.installRegistryPreview || 'npmmirror'), 1 /* TEXT */)
5166
- ])
5167
5342
  ])
5168
5343
  ]),
5169
5344
  _createElementVNode("div", { class: "selector-section" }, [
@@ -5886,7 +6061,14 @@ return function render(_ctx, _cache) {
5886
6061
  "aria-pressed": _ctx.skillsTargetApp === 'claude',
5887
6062
  disabled: _ctx.loading || !!_ctx.initError || _ctx.skillsMarketBusy,
5888
6063
  onClick: $event => (_ctx.setSkillsTargetApp('claude', { silent: false }))
5889
- }, " 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"])
5890
6072
  ], 8 /* PROPS */, ["aria-label"])
5891
6073
  ]),
5892
6074
  _createElementVNode("div", { class: "skills-header-actions" }, [
@@ -6145,49 +6327,54 @@ return function render(_ctx, _cache) {
6145
6327
  role: "tabpanel",
6146
6328
  "aria-labelledby": "tab-plugins"
6147
6329
  }, [
6148
- _createElementVNode("div", { class: "plugins-layout" }, [
6149
- _createElementVNode("aside", {
6150
- class: "plugins-sidebar",
6151
- "aria-label": _ctx.t('plugins.sidebar.ariaList')
6152
- }, [
6153
- _createElementVNode("div", { class: "selector-header plugins-sidebar-header" }, [
6154
- _createElementVNode("div", null, [
6155
- _createElementVNode("span", { class: "selector-title" }, _toDisplayString(_ctx.t('plugins.sidebar.title')), 1 /* TEXT */),
6156
- _createElementVNode("div", { class: "plugins-panel-note" }, _toDisplayString(_ctx.t('plugins.sidebar.note')), 1 /* TEXT */)
6157
- ]),
6158
- _createElementVNode("div", { class: "settings-tab-actions" }, [
6159
- _createElementVNode("button", {
6160
- type: "button",
6161
- class: "btn-tool btn-tool-compact",
6162
- onClick: $event => (_ctx.loadPluginsOverview({ forceRefresh: true, silent: false })),
6163
- disabled: _ctx.loading || !!_ctx.initError || _ctx.pluginsLoading
6164
- }, _toDisplayString(_ctx.pluginsLoading ? _ctx.t('plugins.refreshing') : _ctx.t('plugins.refresh')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6165
- ])
6166
- ]),
6167
- _createElementVNode("div", {
6168
- class: "plugins-list",
6169
- role: "list"
6170
- }, [
6171
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pluginsCatalog, (plugin) => {
6172
- return (_openBlock(), _createElementBlock("button", {
6173
- key: 'plugin-' + plugin.id,
6174
- type: "button",
6175
- class: _normalizeClass(['plugins-item', { active: _ctx.pluginsActiveId === plugin.id }]),
6176
- "aria-current": _ctx.pluginsActiveId === plugin.id ? 'page' : null,
6177
- disabled: _ctx.loading || !!_ctx.initError || _ctx.pluginsLoading,
6178
- onClick: $event => (_ctx.selectPlugin(plugin.id))
6179
- }, [
6180
- _createElementVNode("div", { class: "plugins-item-main" }, [
6181
- _createElementVNode("div", { class: "plugins-item-title" }, _toDisplayString(plugin.title), 1 /* TEXT */),
6182
- _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 */)
6183
6343
  ]),
6184
- _createElementVNode("span", {
6185
- class: _normalizeClass(['pill', plugin.tone])
6186
- }, _toDisplayString(plugin.statusLabel), 3 /* TEXT, CLASS */)
6187
- ], 10 /* CLASS, PROPS */, ["aria-current", "disabled", "onClick"]))
6188
- }), 128 /* KEYED_FRAGMENT */))
6189
- ])
6190
- ], 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),
6191
6378
  _createElementVNode("section", {
6192
6379
  class: "plugins-main",
6193
6380
  "aria-label": _ctx.t('plugins.main.ariaWorkspace')
@@ -6216,12 +6403,27 @@ return function render(_ctx, _cache) {
6216
6403
  class: "plugins-panel"
6217
6404
  }, [
6218
6405
  _createElementVNode("div", { class: "plugins-panel-head" }, [
6219
- _createElementVNode("div", { class: "plugins-panel-title" }, _toDisplayString(_ctx.t('plugins.promptTemplates.title')), 1 /* TEXT */),
6220
- (_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)
6221
6416
  ? (_openBlock(), _createElementBlock("div", {
6222
6417
  key: 0,
6223
- class: "plugins-panel-note"
6224
- }, _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
+ ]))
6225
6427
  : _createCommentVNode("v-if", true)
6226
6428
  ]),
6227
6429
  _createElementVNode("div", {
@@ -6275,126 +6477,118 @@ return function render(_ctx, _cache) {
6275
6477
  class: "prompt-compose"
6276
6478
  }, [
6277
6479
  _createElementVNode("div", { class: "prompt-compose-workspace" }, [
6278
- _createElementVNode("div", { class: "prompt-compose-selected" }, [
6279
- _createElementVNode("div", { class: "prompt-compose-selected-title" }, _toDisplayString((_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.name) ? _ctx.promptComposerActiveTemplate.name : _ctx.t('plugins.promptTemplates.compose.chooseTemplate')), 1 /* TEXT */),
6280
- _createElementVNode("div", { class: "prompt-compose-selected-meta" }, _toDisplayString((_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.description) ? _ctx.promptComposerActiveTemplate.description : _ctx.t('plugins.promptTemplates.compose.chooseTemplateHint')), 1 /* TEXT */),
6281
- (_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.isBuiltin && (_ctx.promptComposerActiveTemplate.createdBy || (_ctx.promptComposerActiveTemplate.maintainers && _ctx.promptComposerActiveTemplate.maintainers.length)))
6282
- ? (_openBlock(), _createElementBlock("div", {
6283
- key: 0,
6284
- class: "plugins-panel-note"
6285
- }, _toDisplayString(_ctx.t('plugins.meta.attribution', { createdBy: _ctx.promptComposerActiveTemplate.createdBy || '', maintainers: (_ctx.promptComposerActiveTemplate.maintainers || []).join(', ') })), 1 /* TEXT */))
6286
- : _createCommentVNode("v-if", true)
6287
- ]),
6288
- _createElementVNode("div", { class: "prompt-compose-form" }, [
6289
- _createElementVNode("label", { class: "form-label" }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.selectTemplate')), 1 /* TEXT */),
6290
- _createElementVNode("select", {
6291
- class: "form-select prompt-compose-template-select",
6292
- value: _ctx.promptComposerSelectedTemplateId,
6293
- onChange: $event => (_ctx.selectPromptComposerTemplate($event.target.value)),
6294
- disabled: _ctx.pluginsLoading || !_ctx.promptTemplatesList.length
6295
- }, [
6296
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.promptTemplatesList, (tpl) => {
6297
- return (_openBlock(), _createElementBlock("option", {
6298
- key: 'compose-tpl-' + tpl.id,
6299
- value: tpl.id
6300
- }, _toDisplayString(tpl.name) + _toDisplayString(tpl.isBuiltin ? _ctx.t('plugins.promptTemplates.compose.builtinSuffix') : ''), 9 /* TEXT, PROPS */, ["value"]))
6301
- }), 128 /* KEYED_FRAGMENT */))
6302
- ], 40 /* PROPS, NEED_HYDRATION */, ["value", "onChange", "disabled"]),
6303
- (!_ctx.promptComposerActiveTemplate)
6304
- ? (_openBlock(), _createElementBlock("div", {
6305
- key: 0,
6306
- class: "plugins-panel-note"
6307
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.empty')), 1 /* TEXT */))
6308
- : (!_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)
6309
6497
  ? (_openBlock(), _createElementBlock("div", {
6310
- key: 1,
6498
+ key: 0,
6311
6499
  class: "plugins-panel-note"
6312
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.varsHint')), 1 /* TEXT */))
6313
- : _createCommentVNode("v-if", true),
6314
- (_ctx.promptComposerActiveTemplate && !_ctx.promptComposerActiveTemplate.isBuiltin)
6315
- ? (_openBlock(), _createElementBlock("div", {
6316
- key: 2,
6317
- class: "prompt-compose-actions"
6318
- }, [
6319
- _createElementVNode("button", {
6320
- type: "button",
6321
- class: "btn-mini",
6322
- onClick: $event => (_ctx.selectPromptTemplate(_ctx.promptComposerSelectedTemplateId)),
6323
- disabled: _ctx.pluginsLoading || !_ctx.promptComposerSelectedTemplateId
6324
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.goManage')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6325
- ]))
6326
- : _createCommentVNode("v-if", true)
6327
- ]),
6328
- (_ctx.promptComposerActiveTemplate && _ctx.promptComposerActiveTemplate.vars && _ctx.promptComposerActiveTemplate.vars.length)
6329
- ? (_openBlock(), _createElementBlock("div", {
6330
- key: 0,
6331
- class: "prompt-vars-block"
6332
- }, [
6333
- _createElementVNode("div", { class: "prompt-vars-head" }, [
6334
- _createElementVNode("div", null, [
6335
- _createElementVNode("div", { class: "prompt-vars-title" }, _toDisplayString(_ctx.t('plugins.promptTemplates.vars.title')), 1 /* TEXT */),
6336
- (!_ctx.promptComposerActiveTemplate.isBuiltin)
6337
- ? (_openBlock(), _createElementBlock("div", {
6338
- key: 0,
6339
- class: "plugins-panel-note"
6340
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.varsHint')), 1 /* TEXT */))
6341
- : _createCommentVNode("v-if", true),
6342
- (_ctx.promptComposerMissingVars.length)
6343
- ? (_openBlock(), _createElementBlock("div", {
6344
- key: 1,
6345
- class: "plugins-panel-note"
6346
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.missingCount', { count: _ctx.promptComposerMissingVars.length })), 1 /* TEXT */))
6347
- : _createCommentVNode("v-if", true)
6348
- ]),
6349
- _createElementVNode("div", { class: "prompt-editor-actions" }, [
6350
- (_ctx.promptComposerMissingVars.length)
6351
- ? (_openBlock(), _createElementBlock("button", {
6352
- key: 0,
6353
- type: "button",
6354
- class: "btn-mini",
6355
- onClick: _ctx.focusPromptComposerFirstMissingVar,
6356
- disabled: _ctx.pluginsLoading
6357
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.compose.jumpToMissing')), 9 /* TEXT, PROPS */, ["onClick", "disabled"]))
6358
- : _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
+ }, [
6359
6512
  _createElementVNode("button", {
6360
6513
  type: "button",
6361
6514
  class: "btn-mini",
6362
- onClick: _ctx.resetPromptComposerVarValues,
6363
- disabled: _ctx.pluginsLoading
6364
- }, _toDisplayString(_ctx.t('plugins.promptTemplates.vars.reset')), 9 /* TEXT, PROPS */, ["onClick", "disabled"])
6365
- ])
6366
- ]),
6367
- _createElementVNode("div", { class: "prompt-vars-grid" }, [
6368
- (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.promptComposerActiveTemplate.vars, (name, idx) => {
6369
- return (_openBlock(), _createElementBlock("label", {
6370
- key: 'prompt-compose-var-' + name,
6371
- class: "prompt-var-row"
6372
- }, [
6373
- _createElementVNode("span", { class: "prompt-var-label mono" }, _toDisplayString(name), 1 /* TEXT */),
6374
- (idx === 0)
6375
- ? (_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", {
6376
6531
  key: 0,
6377
- ref_for: true,
6378
- ref: "promptComposerFirstField",
6379
- class: _normalizeClass(['form-input', 'prompt-var-input', { 'is-missing': _ctx.promptComposerMissingVars.includes(name) }]),
6380
- type: "text",
6381
- value: _ctx.promptComposerVarValues[name] || '',
6382
- onInput: $event => (_ctx.setPromptComposerVarValue(name, $event.target.value)),
6383
- placeholder: _ctx.t('plugins.promptTemplates.vars.valuePlaceholder', { name })
6384
- }, null, 42 /* CLASS, PROPS, NEED_HYDRATION */, ["value", "onInput", "placeholder"]))
6385
- : (_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", {
6386
6537
  key: 1,
6387
- class: _normalizeClass(['form-input', 'prompt-var-input', { 'is-missing': _ctx.promptComposerMissingVars.includes(name) }]),
6388
- type: "text",
6389
- value: _ctx.promptComposerVarValues[name] || '',
6390
- onInput: $event => (_ctx.setPromptComposerVarValue(name, $event.target.value)),
6391
- placeholder: _ctx.t('plugins.promptTemplates.vars.valuePlaceholder', { name })
6392
- }, null, 42 /* CLASS, PROPS, NEED_HYDRATION */, ["value", "onInput", "placeholder"]))
6393
- ]))
6394
- }), 128 /* KEYED_FRAGMENT */))
6395
- ])
6396
- ]))
6397
- : _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
+ ]),
6398
6592
  _createElementVNode("div", { class: "prompt-preview-block prompt-compose-preview" }, [
6399
6593
  _createElementVNode("div", { class: "prompt-vars-head" }, [
6400
6594
  _createElementVNode("div", null, [
@@ -6666,7 +6860,7 @@ return function render(_ctx, _cache) {
6666
6860
  class: "skills-empty-state"
6667
6861
  }, _toDisplayString(_ctx.t('plugins.promptTemplates.noPluginSelected')), 1 /* TEXT */))
6668
6862
  ], 8 /* PROPS */, ["aria-label"])
6669
- ])
6863
+ ], 2 /* CLASS */)
6670
6864
  ], 512 /* NEED_PATCH */), [
6671
6865
  [_vShow, _ctx.mainTab === 'plugins']
6672
6866
  ]),
@@ -9819,7 +10013,14 @@ return function render(_ctx, _cache) {
9819
10013
  "aria-pressed": _ctx.skillsTargetApp === 'claude',
9820
10014
  disabled: _ctx.loading || !!_ctx.initError || _ctx.skillsMarketBusy,
9821
10015
  onClick: $event => (_ctx.setSkillsTargetApp('claude', { silent: false }))
9822
- }, " 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"])
9823
10024
  ], 8 /* PROPS */, ["aria-label"]),
9824
10025
  _createElementVNode("button", {
9825
10026
  class: "btn-mini",