MCPcopy Create free account
hub / github.com/Zoo-Code-Org/Zoo-Code / handleCreateSkill

Function handleCreateSkill

src/core/webview/skillsMessageHandler.ts:35–70  ·  view source on GitHub ↗
(
	provider: ClineProvider,
	message: WebviewMessage,
)

Source from the content-addressed store, hash-verified

33 * Handles the createSkill message - creates a new skill
34 */
35export async function handleCreateSkill(
36 provider: ClineProvider,
37 message: WebviewMessage,
38): Promise<SkillMetadata[] | undefined> {
39 try {
40 const skillName = message.skillName
41 const source = message.source as SkillSource
42 const skillDescription = message.skillDescription
43 // Support new modeSlugs array or fall back to legacy skillMode
44 const modeSlugs = message.skillModeSlugs ?? (message.skillMode ? [message.skillMode] : undefined)
45
46 if (!skillName || !source || !skillDescription) {
47 throw new Error(t("skills:errors.missing_create_fields"))
48 }
49
50 const skillsManager = provider.getSkillsManager()
51 if (!skillsManager) {
52 throw new Error(t("skills:errors.manager_unavailable"))
53 }
54
55 const createdPath = await skillsManager.createSkill(skillName, source, skillDescription, modeSlugs)
56
57 // Open the created file in the editor
58 openFile(createdPath)
59
60 // Send updated skills list
61 const skills = skillsManager.getSkillsMetadata()
62 await provider.postMessageToWebview({ type: "skills", skills })
63 return skills
64 } catch (error) {
65 const errorMessage = error instanceof Error ? error.message : String(error)
66 provider.log(`Error creating skill: ${errorMessage}`)
67 vscode.window.showErrorMessage(`Failed to create skill: ${errorMessage}`)
68 return undefined
69 }
70}
71
72/**
73 * Handles the deleteSkill message - deletes a skill

Callers 2

webviewMessageHandlerFunction · 0.90

Calls 9

tFunction · 0.90
openFileFunction · 0.90
getSkillsManagerMethod · 0.80
createSkillMethod · 0.80
getSkillsMetadataMethod · 0.80
postMessageToWebviewMethod · 0.80
logMethod · 0.65
StringInterface · 0.50
showErrorMessageMethod · 0.45

Tested by

no test coverage detected