feat: RAG, memory, plugins, lessons, file editor, split panes, Markdown rendering, PWA + UI overhaul
All checks were successful
Stable Release / stable (push) Successful in 1m34s
All checks were successful
Stable Release / stable (push) Successful in 1m34s
Major additions: - RAG pipeline (indexing, chunking, search) with sidebar upload button - Memory system with CRUD API - Plugins and lessons modules - MCP discovery and MCP server - Advanced skills (auto-create, conditional, improver) - Agent browser/image support, delegate, sessions - File editor with CodeMirror in split panes - Markdown rendering via react-markdown + KaTeX + highlight.js - Raw markdown toggle - PWA manifest + service worker - Extension UI redesign with new design tokens and studio-style chat - Pipeline API for chat streaming - Mobile responsive layout 💘 Generated with Crush Assisted-by: GLM-5.1 via Crush <crush@charm.land>
This commit is contained in:
@@ -20,20 +20,26 @@ type SkillDependency struct {
|
||||
}
|
||||
|
||||
type Skill struct {
|
||||
Name string `yaml:"name" json:"name"`
|
||||
Description string `yaml:"description" json:"description"`
|
||||
Content string `yaml:"content" json:"content"`
|
||||
Author string `yaml:"author" json:"author"`
|
||||
Version string `yaml:"version" json:"version"`
|
||||
CreatedAt time.Time `yaml:"created_at" json:"created_at"`
|
||||
UpdatedAt time.Time `yaml:"updated_at" json:"updated_at"`
|
||||
Tags []string `yaml:"tags" json:"tags"`
|
||||
Target string `yaml:"target" json:"target"`
|
||||
FilePath string `yaml:"-" json:"-"`
|
||||
Dependencies []SkillDependency `yaml:"dependencies,omitempty" json:"dependencies,omitempty"`
|
||||
Languages []string `yaml:"languages,omitempty" json:"languages,omitempty"`
|
||||
Category string `yaml:"category,omitempty" json:"category,omitempty"`
|
||||
Deployed bool `yaml:"-" json:"deployed,omitempty"`
|
||||
Name string `yaml:"name" json:"name"`
|
||||
Description string `yaml:"description" json:"description"`
|
||||
Content string `yaml:"content" json:"content"`
|
||||
Author string `yaml:"author" json:"author"`
|
||||
Version string `yaml:"version" json:"version"`
|
||||
CreatedAt time.Time `yaml:"created_at" json:"created_at"`
|
||||
UpdatedAt time.Time `yaml:"updated_at" json:"updated_at"`
|
||||
Tags []string `yaml:"tags" json:"tags"`
|
||||
Target string `yaml:"target" json:"target"`
|
||||
FilePath string `yaml:"-" json:"-"`
|
||||
Dependencies []SkillDependency `yaml:"dependencies,omitempty" json:"dependencies,omitempty"`
|
||||
Languages []string `yaml:"languages,omitempty" json:"languages,omitempty"`
|
||||
Category string `yaml:"category,omitempty" json:"category,omitempty"`
|
||||
Deployed bool `yaml:"-" json:"deployed,omitempty"`
|
||||
RequiresTools []string `yaml:"requires_tools,omitempty" json:"requires_tools,omitempty"`
|
||||
FallbackForTools []string `yaml:"fallback_for_tools,omitempty" json:"fallback_for_tools,omitempty"`
|
||||
AutoImprove bool `yaml:"auto_improve,omitempty" json:"auto_improve,omitempty"`
|
||||
CreatedFrom string `yaml:"created_from,omitempty" json:"created_from,omitempty"`
|
||||
ImprovementCount int `yaml:"improvement_count,omitempty" json:"improvement_count,omitempty"`
|
||||
LastImprovedAt *time.Time `yaml:"last_improved_at,omitempty" json:"last_improved_at,omitempty"`
|
||||
}
|
||||
|
||||
type ValidationError struct {
|
||||
@@ -516,6 +522,24 @@ func renderSkill(skill *Skill) string {
|
||||
b.WriteString(fmt.Sprintf(" - type: %s, name: %s%s\n", dep.Type, dep.Name, req))
|
||||
}
|
||||
}
|
||||
if len(skill.RequiresTools) > 0 {
|
||||
b.WriteString(fmt.Sprintf("requires_tools: [%s]\n", strings.Join(skill.RequiresTools, ", ")))
|
||||
}
|
||||
if len(skill.FallbackForTools) > 0 {
|
||||
b.WriteString(fmt.Sprintf("fallback_for_tools: [%s]\n", strings.Join(skill.FallbackForTools, ", ")))
|
||||
}
|
||||
if skill.AutoImprove {
|
||||
b.WriteString("auto_improve: true\n")
|
||||
}
|
||||
if skill.CreatedFrom != "" {
|
||||
b.WriteString(fmt.Sprintf("created_from: %s\n", skill.CreatedFrom))
|
||||
}
|
||||
if skill.ImprovementCount > 0 {
|
||||
b.WriteString(fmt.Sprintf("improvement_count: %d\n", skill.ImprovementCount))
|
||||
}
|
||||
if skill.LastImprovedAt != nil {
|
||||
b.WriteString(fmt.Sprintf("last_improved_at: %s\n", skill.LastImprovedAt.Format(time.RFC3339)))
|
||||
}
|
||||
b.WriteString("---\n\n")
|
||||
b.WriteString(skill.Content)
|
||||
b.WriteString("\n")
|
||||
|
||||
Reference in New Issue
Block a user