mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 09:28:14 +00:00
- Six-phase plan complete: webui/cli/healthcheck/pluginmgr/clawhubadapter now interact with the kernel exclusively via internal/sdk interfaces; all Configure() calls and package-level global injection removed - buildSDK in internal/plugin/registry.go is the single assembly point - Add internal/sdk/events.go exporting event types/constants - Fix ProviderManager cooldown sharing: LuaAdaptedProvider.Name() now returns the source name instead of lua_<adapter>, so multiple sources sharing an adapter (single script load via shared VM AdapterCache) no longer share failure-cooldown state - Verified: build/vet/tests green, deployed to homeagent.service with full plugin capability testing via local OpenAI-compatible mock
40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package sdk
|
|
|
|
import "gitcode.com/JianFeeeee/HomeAgent/internal/knowledge"
|
|
|
|
type knowledgeImpl struct{ ks *knowledge.Store }
|
|
|
|
func NewKnowledge(ks *knowledge.Store) KnowledgeAPI { return &knowledgeImpl{ks: ks} }
|
|
|
|
func (k *knowledgeImpl) Search(query string, topK int) ([]*Knowledge, error) {
|
|
if k.ks == nil { return nil, nil }
|
|
got := k.ks.Search(query, topK)
|
|
out := make([]*Knowledge, len(got))
|
|
for i, item := range got {
|
|
out[i] = &Knowledge{Name: item.Name, Content: item.Content}
|
|
}
|
|
return out, nil
|
|
}
|
|
|
|
func (k *knowledgeImpl) Add(name, content string) error {
|
|
if k.ks == nil { return nil }
|
|
return k.ks.Add(name, content)
|
|
}
|
|
|
|
func (k *knowledgeImpl) List() ([]string, error) {
|
|
if k.ks == nil { return nil, nil }
|
|
return k.ks.List(), nil
|
|
}
|
|
|
|
func (k *knowledgeImpl) Stats() map[string]interface{} {
|
|
if k.ks == nil { return map[string]interface{}{} }
|
|
return k.ks.Stats()
|
|
}
|
|
|
|
func (k *knowledgeImpl) Remove(name string) error {
|
|
if k.ks == nil { return nil }
|
|
return k.ks.Remove(name)
|
|
}
|
|
|
|
var _ KnowledgeAPI = (*knowledgeImpl)(nil)
|