support external skill sources (#981)

This commit is contained in:
ekko
2026-05-24 19:47:52 +08:00
committed by GitHub
parent 6763721545
commit 4176923bac
16 changed files with 261 additions and 29 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
import { request } from '../client'
export type SkillSource = 'builtin' | 'hub' | 'local'
export type SkillSource = 'builtin' | 'hub' | 'local' | 'external'
export interface SkillInfo {
name: string
@@ -289,6 +289,10 @@ async function handleToggle(category: string, skillName: string, newEnabled: boo
background: #66bb6a;
}
.dot-external {
background: #f59e0b;
}
.skill-info {
flex: 1;
min-width: 0;
+1
View File
@@ -423,6 +423,7 @@ jobTriggered: 'Job ausgelost',
builtin: 'Integriert',
hub: 'Hub',
local: 'Lokal',
external: 'Extern',
},
},
+1
View File
@@ -518,6 +518,7 @@ export default {
builtin: 'Builtin',
hub: 'Hub',
local: 'Local',
external: 'External',
},
},
+1
View File
@@ -423,6 +423,7 @@ jobTriggered: 'Job ejecutado',
builtin: 'Integrado',
hub: 'Hub',
local: 'Local',
external: 'Externo',
},
},
+1
View File
@@ -423,6 +423,7 @@ jobTriggered: 'Job declenche',
builtin: 'Intégré',
hub: 'Hub',
local: 'Local',
external: 'Externe',
},
},
+1
View File
@@ -423,6 +423,7 @@ export default {
builtin: '組み込み',
hub: 'Hub',
local: 'ローカル',
external: '外部',
},
},
+1
View File
@@ -423,6 +423,7 @@ export default {
builtin: '내장',
hub: 'Hub',
local: '로컬',
external: '외부',
},
},
+1
View File
@@ -423,6 +423,7 @@ jobTriggered: 'Job acionado',
builtin: 'Integrado',
hub: 'Hub',
local: 'Local',
external: 'Externo',
},
},
@@ -518,6 +518,7 @@ export default {
builtin: '內建',
hub: 'Hub 安裝',
local: '本地安裝',
external: '外部目錄',
},
},
+1
View File
@@ -518,6 +518,7 @@ export default {
builtin: '内置',
hub: 'Hub 安装',
local: '本地安装',
external: '外部目录',
},
},
@@ -139,6 +139,9 @@ function handlePinToggled(name: string, pinned: boolean) {
<button class="legend-item" :class="{ active: sourceFilter === 'local' }" @click="toggleFilter('local')">
<span class="legend-dot dot-local" />{{ t('skills.source.local') }}
</button>
<button class="legend-item" :class="{ active: sourceFilter === 'external' }" @click="toggleFilter('external')">
<span class="legend-dot dot-external" />{{ t('skills.source.external') }}
</button>
<button class="legend-item" :class="{ active: sourceFilter === 'modified' }" @click="toggleFilter('modified')">
<span class="modified-icon"></span>{{ t('skills.modified') }}
</button>
@@ -250,6 +253,7 @@ function handlePinToggled(name: string, pinned: boolean) {
.legend-dot.dot-builtin { background: #888; }
.legend-dot.dot-hub { background: #4a90d9; }
.legend-dot.dot-local { background: #66bb6a; }
.legend-dot.dot-external { background: #f59e0b; }
.modified-icon {
font-size: 11px;