mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 17:38:10 +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
37 lines
975 B
Go
37 lines
975 B
Go
package sdk
|
|
|
|
import "time"
|
|
|
|
// TrackerAPI provides access to the file change tracker / rollback.
|
|
type TrackerAPI interface {
|
|
ChangeSets() []*ChangeSet
|
|
Rollback() error
|
|
Stats() map[string]interface{}
|
|
HasChanges() bool
|
|
}
|
|
|
|
type ChangeType string
|
|
|
|
const (
|
|
ChangeFileCreated ChangeType = "created"
|
|
ChangeFileModified ChangeType = "modified"
|
|
ChangeFileDeleted ChangeType = "deleted"
|
|
)
|
|
|
|
type FileChange struct {
|
|
Path string `json:"path"`
|
|
Type ChangeType `json:"type"`
|
|
SizeBefore int64 `json:"size_before,omitempty"`
|
|
SizeAfter int64 `json:"size_after,omitempty"`
|
|
HashBefore string `json:"hash_before,omitempty"`
|
|
HashAfter string `json:"hash_after,omitempty"`
|
|
Content []byte `json:"-"` // 回滚用原始内容,不参与 JSON 序列化
|
|
}
|
|
|
|
type ChangeSet struct {
|
|
ID string `json:"id"`
|
|
Action string `json:"action"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
Files []FileChange `json:"files"`
|
|
}
|