MCPcopy Create free account
hub / github.com/GongShichen/LuminaCode / executeSlashSkill

Method executeSlashSkill

agent/query_engine.go:266–290  ·  view source on GitHub ↗
(ctx context.Context, out chan<- StreamEvent, skill skills.SkillSpec, args string, state *AgentState, sessionID []string)

Source from the content-addressed store, hash-verified

264 return nil, ""
265 }
266 cmdName, args, _ := strings.Cut(stripped, " ")
267 cmdName = strings.ToLower(strings.TrimSpace(cmdName))
268 cwd := skills.ResolveSkillContextCWD(q.Config.CWD, nil)
269 skill := q.CoreEngine.skillRegistry.FindVisible(cmdName, cwd)
270 if skill == nil || !skill.Frontmatter.UserInvocable {
271 return nil, ""
272 }
273 return skill, strings.TrimSpace(args)
274}
275
276func (q *QueryEngine) executeSlashSkill(ctx context.Context, out chan<- StreamEvent, skill skills.SkillSpec, args string, state *AgentState, sessionID []string) (skills.SkillExecutionResult, error) {
277 if q.CoreEngine.skillRegistry == nil {
278 return skills.SkillExecutionResult{}, fmt.Errorf("skills are not enabled")
279 }
280 loader := skills.NewSkillLoader(q.Config)
281 executor := skills.NewSkillExecutor(loader, skills.NewPromptProcessor(q.Config))
282 executor.ForkRunner = q.CoreEngine.runForkSkill
283 sid := ""
284 if len(sessionID) > 0 {
285 sid = sessionID[0]
286 }
287 if sid == "" {
288 sid = uuid.NewString()[:12]
289 }
290 extraContext := coretools.ExecutionContext{
291 "_session_id": sid,
292 "_agent_id": q.CoreEngine.sessionMemoryAgentID(),
293 "runtime_dir": q.Config.ProjectRuntimeDir,

Callers 1

SubmitMessageMethod · 0.95

Calls 5

ExecuteMethod · 0.95
NewSkillLoaderFunction · 0.92
NewSkillExecutorFunction · 0.92
NewPromptProcessorFunction · 0.92

Tested by

no test coverage detected