返回 DeepSeek-Reasonix
references.go
根目录 / internal / skill / builtincontent / references.go
1 package builtincontent
2
3 import (
4 "fmt"
5 "io/fs"
6 "path"
7 "strings"
8 )
9
10 // ReadReference reads a Markdown reference inside one embedded skill package.
11 func ReadReference(skillPath, reference string) (string, error) {
12 if !fs.ValidPath(skillPath) || path.Base(skillPath) != "SKILL.md" {
13 return "", fmt.Errorf("invalid embedded skill path")
14 }
15 if !fs.ValidPath(reference) || !strings.HasPrefix(reference, "references/") ||
16 !strings.HasSuffix(reference, ".md") || strings.Contains(reference, "\\") {
17 return "", fmt.Errorf("reference must name a relative references/*.md file")
18 }
19 if _, err := files.ReadFile(skillPath); err != nil {
20 return "", err
21 }
22 content, err := files.ReadFile(path.Join(path.Dir(skillPath), reference))
23 if err != nil {
24 return "", err
25 }
26 return string(content), nil
27 }
28
28 lines GO