feat: add workspace-isolated toolhost runtime and capability-gap skill loop

This commit is contained in:
2026-02-28 17:48:33 +08:00
parent ce9346e350
commit 7d6cf6b435
28 changed files with 2223 additions and 143 deletions

View File

@@ -0,0 +1,37 @@
package knowledge
import (
"path/filepath"
"testing"
"laodingbot/internal/memory"
)
func TestGenerateSkillDraftCreatesFile(t *testing.T) {
draftDir := filepath.Join(t.TempDir(), "drafts")
cluster := memory.CapabilityGapCluster{
IntentKey: "query files in workspace",
SampleIntent: "帮我查询 workspace 目录下的 markdown 文件",
Reason: "no_skill_matched",
Count: 4,
}
path, created, err := GenerateSkillDraft(cluster, draftDir)
if err != nil {
t.Fatalf("GenerateSkillDraft error: %v", err)
}
if !created {
t.Fatalf("expected created=true")
}
if filepath.Base(path) != "skill.md" {
t.Fatalf("expected skill.md path, got %s", path)
}
_, created2, err := GenerateSkillDraft(cluster, draftDir)
if err != nil {
t.Fatalf("GenerateSkillDraft second call error: %v", err)
}
if created2 {
t.Fatalf("expected created=false on second call")
}
}