@@ -6,6 +6,8 @@ import type { ClineProvider } from "./ClineProvider"
66import { openFile } from "../../integrations/misc/open-file"
77import { t } from "../../i18n"
88
9+ type SkillSource = SkillMetadata [ "source" ]
10+
911/**
1012 * Handles the requestSkills message - returns all skills metadata
1113 */
@@ -36,7 +38,7 @@ export async function handleCreateSkill(
3638) : Promise < SkillMetadata [ ] | undefined > {
3739 try {
3840 const skillName = message . skillName
39- const source = message . source
41+ const source = message . source as SkillSource
4042 const skillDescription = message . skillDescription
4143 // Support new modeSlugs array or fall back to legacy skillMode
4244 const modeSlugs = message . skillModeSlugs ?? ( message . skillMode ? [ message . skillMode ] : undefined )
@@ -45,11 +47,6 @@ export async function handleCreateSkill(
4547 throw new Error ( t ( "skills:errors.missing_create_fields" ) )
4648 }
4749
48- // Built-in skills cannot be created
49- if ( source === "built-in" ) {
50- throw new Error ( t ( "skills:errors.cannot_modify_builtin" ) )
51- }
52-
5350 const skillsManager = provider . getSkillsManager ( )
5451 if ( ! skillsManager ) {
5552 throw new Error ( t ( "skills:errors.manager_unavailable" ) )
@@ -81,19 +78,14 @@ export async function handleDeleteSkill(
8178) : Promise < SkillMetadata [ ] | undefined > {
8279 try {
8380 const skillName = message . skillName
84- const source = message . source
81+ const source = message . source as SkillSource
8582 // Support new skillModeSlugs array or fall back to legacy skillMode
8683 const skillMode = message . skillModeSlugs ?. [ 0 ] ?? message . skillMode
8784
8885 if ( ! skillName || ! source ) {
8986 throw new Error ( t ( "skills:errors.missing_delete_fields" ) )
9087 }
9188
92- // Built-in skills cannot be deleted
93- if ( source === "built-in" ) {
94- throw new Error ( t ( "skills:errors.cannot_modify_builtin" ) )
95- }
96-
9789 const skillsManager = provider . getSkillsManager ( )
9890 if ( ! skillsManager ) {
9991 throw new Error ( t ( "skills:errors.manager_unavailable" ) )
@@ -122,19 +114,14 @@ export async function handleMoveSkill(
122114) : Promise < SkillMetadata [ ] | undefined > {
123115 try {
124116 const skillName = message . skillName
125- const source = message . source
117+ const source = message . source as SkillSource
126118 const currentMode = message . skillMode
127119 const newMode = message . newSkillMode
128120
129121 if ( ! skillName || ! source ) {
130122 throw new Error ( t ( "skills:errors.missing_move_fields" ) )
131123 }
132124
133- // Built-in skills cannot be moved
134- if ( source === "built-in" ) {
135- throw new Error ( t ( "skills:errors.cannot_modify_builtin" ) )
136- }
137-
138125 const skillsManager = provider . getSkillsManager ( )
139126 if ( ! skillsManager ) {
140127 throw new Error ( t ( "skills:errors.manager_unavailable" ) )
@@ -163,18 +150,13 @@ export async function handleUpdateSkillModes(
163150) : Promise < SkillMetadata [ ] | undefined > {
164151 try {
165152 const skillName = message . skillName
166- const source = message . source
153+ const source = message . source as SkillSource
167154 const newModeSlugs = message . newSkillModeSlugs
168155
169156 if ( ! skillName || ! source ) {
170157 throw new Error ( t ( "skills:errors.missing_update_modes_fields" ) )
171158 }
172159
173- // Built-in skills cannot be modified
174- if ( source === "built-in" ) {
175- throw new Error ( t ( "skills:errors.cannot_modify_builtin" ) )
176- }
177-
178160 const skillsManager = provider . getSkillsManager ( )
179161 if ( ! skillsManager ) {
180162 throw new Error ( t ( "skills:errors.manager_unavailable" ) )
@@ -200,17 +182,12 @@ export async function handleUpdateSkillModes(
200182export async function handleOpenSkillFile ( provider : ClineProvider , message : WebviewMessage ) : Promise < void > {
201183 try {
202184 const skillName = message . skillName
203- const source = message . source
185+ const source = message . source as SkillSource
204186
205187 if ( ! skillName || ! source ) {
206188 throw new Error ( t ( "skills:errors.missing_delete_fields" ) )
207189 }
208190
209- // Built-in skills cannot be opened as files (they have no file path)
210- if ( source === "built-in" ) {
211- throw new Error ( t ( "skills:errors.cannot_open_builtin" ) )
212- }
213-
214191 const skillsManager = provider . getSkillsManager ( )
215192 if ( ! skillsManager ) {
216193 throw new Error ( t ( "skills:errors.manager_unavailable" ) )
0 commit comments