mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-02 15:23:57 +00:00
sync: 同步 SDK PluginMgr API 与 dispatch 48/49/50 (vendored 副本)
This commit is contained in:
5
third_party/homeagent-sdk/meta/meta.go
vendored
5
third_party/homeagent-sdk/meta/meta.go
vendored
@ -99,4 +99,9 @@ const (
|
|||||||
CoreSettingsDefs = 43
|
CoreSettingsDefs = 43
|
||||||
CoreSettingsDump = 44
|
CoreSettingsDump = 44
|
||||||
CoreSettingsPlugins = 45
|
CoreSettingsPlugins = 45
|
||||||
|
CoreRegisterInputCh = 46
|
||||||
|
CoreInjectInputSync = 47
|
||||||
|
CorePluginReloadOne = 48
|
||||||
|
CorePluginListLoaded = 49
|
||||||
|
CorePluginIsDisabled = 50
|
||||||
)
|
)
|
||||||
|
|||||||
19
third_party/homeagent-sdk/sdk/plugin.go
vendored
19
third_party/homeagent-sdk/sdk/plugin.go
vendored
@ -147,6 +147,17 @@ type EventSubscriber interface {
|
|||||||
Subscribe(eventType EventType, handler EventHandler) func()
|
Subscribe(eventType EventType, handler EventHandler) func()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PluginMgrAPI 提供插件管理能力(外部插件可调用)。
|
||||||
|
// 由 bridge 注入 dispatch 实现,走 C ABI CORE_PLUGIN_RELOAD_ONE 等。
|
||||||
|
type PluginMgrAPI interface {
|
||||||
|
// ReloadOne 重载单个插件(停止后重新加载)。
|
||||||
|
ReloadOne(name string) error
|
||||||
|
// ListLoadedPlugins 列出已加载插件。
|
||||||
|
ListLoadedPlugins() []string
|
||||||
|
// IsPluginDisabled 查询插件是否被禁用。
|
||||||
|
IsPluginDisabled(name string) bool
|
||||||
|
}
|
||||||
|
|
||||||
// StageScope controls which events a stage handler receives.
|
// StageScope controls which events a stage handler receives.
|
||||||
type StageScope int
|
type StageScope int
|
||||||
|
|
||||||
@ -200,6 +211,7 @@ type PluginSDK struct {
|
|||||||
sett SettingsAPI
|
sett SettingsAPI
|
||||||
social SocialAPI
|
social SocialAPI
|
||||||
events EventSubscriber
|
events EventSubscriber
|
||||||
|
plgMgr PluginMgrAPI
|
||||||
|
|
||||||
autoRestart bool
|
autoRestart bool
|
||||||
|
|
||||||
@ -347,6 +359,13 @@ func (s *PluginSDK) SetLLMAPI(llm LLMAPI) { s.llm = llm }
|
|||||||
func (s *PluginSDK) SetSocialAPI(social SocialAPI) { s.social = social }
|
func (s *PluginSDK) SetSocialAPI(social SocialAPI) { s.social = social }
|
||||||
func (s *PluginSDK) SetEventSubscriber(es EventSubscriber) { s.events = es }
|
func (s *PluginSDK) SetEventSubscriber(es EventSubscriber) { s.events = es }
|
||||||
|
|
||||||
|
// SetPluginMgrAPI sets the plugin manager API (called by the bridge at startup).
|
||||||
|
func (s *PluginSDK) SetPluginMgrAPI(pm PluginMgrAPI) { s.plgMgr = pm }
|
||||||
|
|
||||||
|
// PluginMgr returns the plugin manager API (ReloadOne / ReloadPlugins / list).
|
||||||
|
// May be nil if the host did not wire it.
|
||||||
|
func (s *PluginSDK) PluginMgr() PluginMgrAPI { return s.plgMgr }
|
||||||
|
|
||||||
// ---- IO Convenience Methods ----
|
// ---- IO Convenience Methods ----
|
||||||
|
|
||||||
// InjectInterruptText injects a text interrupt that can preempt current LLM processing.
|
// InjectInterruptText injects a text interrupt that can preempt current LLM processing.
|
||||||
|
|||||||
Reference in New Issue
Block a user