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

Method Process

skills/prompt_processor.go:33–44  ·  view source on GitHub ↗
(skill SkillSpec, args, sessionID string, approveProjectShell func(SkillShellPermissionRequest) bool)

Source from the content-addressed store, hash-verified

31
32func (p *PromptProcessor) Process(skill SkillSpec, args, sessionID string, approveProjectShell func(SkillShellPermissionRequest) bool) (string, error) {
33 if skill.Content == nil {
34 return "", fmt.Errorf("Skill content must be loaded before processing")
35 }
36 content := *skill.Content
37 if skill.Directory != "" {
38 content = "Base directory for this skill: " + skill.Directory + "\n\n" + content
39 }
40 content = p.substituteArguments(content, args, skill.Frontmatter.Arguments, skill.Frontmatter.ArgumentHint)
41 content = p.substituteEnvVars(content, skill.Directory, sessionID, skill.Source)
42 return p.executeInlineShell(content, skill, approveProjectShell)
43}
44
45func (p *PromptProcessor) substituteArguments(content, args string, namedArgs []string, argumentHint *string) string {
46 rawArgs := strings.TrimSpace(args)
47 var argv []string

Calls 3

substituteArgumentsMethod · 0.95
substituteEnvVarsMethod · 0.95
executeInlineShellMethod · 0.95