跳转至

桥接装配点(Bridge)

以下方法不是给插件业务代码调的——它们由 hmapdev 生成的运行时在启动时调用,用来把内核能力注入到 SDK 实例。列在这里是为了让「公开 API 面」完整,并说明每个注入点对应什么能力。

APIRegistrar

type APIRegistrar func(name string) error

APIRegistrar registers a plugin API for external access.

plugin.go:585

InputChannelRegistrar

type InputChannelRegistrar func(name string, def ChannelDef) error

InputChannelRegistrar registers an input channel with its memory behavior.

plugin.go:588

OutputChannelRegistrar

type OutputChannelRegistrar func(name string, caps int, desc string, def ChannelDef, handler ToolHandler) error

OutputChannelRegistrar registers an output channel that the output_send tool can use.

plugin.go:591

OutputChannelUnregistrar

type OutputChannelUnregistrar func(name string) error

OutputChannelUnregistrar 注销一个输出通道。

为什么需要它:输出通道不止有"启动时注册一次"的静态通道,还有随外部资源生灭的 动态通道 —— 典型是远程设备:device/<id> 只在设备在线期间存在,设备掉线后 必须注销,否则 output_list_channels 会一直列着它、模型会往一个死通道发消息。

plugin.go:598

PluginSDK.SetDocMemoryAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetDocMemoryAPI(dm DocMemoryAPI)

plugin.go:980

PluginSDK.SetEventSubscriber

仅内核内置插件可用

同上:无调用点。标 builtin 而非 bridge,因为连桥接运行时都不注入它——外部插件无法用它获得事件订阅能力。

func (s *PluginSDK) SetEventSubscriber(es EventSubscriber)

plugin.go:1004

PluginSDK.SetIOInjector

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetIOInjector(io IOInjector)

SetIOInjector sets the IO injector (called by the core at startup).

plugin.go:930

PluginSDK.SetInputChannelRegistrar

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetInputChannelRegistrar(r InputChannelRegistrar)

SetInputChannelRegistrar sets the input channel registrar (called by the core at startup).

plugin.go:923

PluginSDK.SetKernelControlAPI

func (s *PluginSDK) SetKernelControlAPI(k KernelControlAPI)

SetKernelControlAPI sets the kernel control API (restart/shutdown). Called by the bridge at startup; nil means "not available".

plugin.go:1027

PluginSDK.SetKnowledgeAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetKnowledgeAPI(kn KnowledgeAPI)

plugin.go:986

PluginSDK.SetLLMAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetLLMAPI(llm LLMAPI)

plugin.go:992

PluginSDK.SetMemoryAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetMemoryAPI(mem MemoryAPI)

plugin.go:968

PluginSDK.SetOutputChannelRegistrar

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetOutputChannelRegistrar(r OutputChannelRegistrar)

SetOutputChannelRegistrar sets the output channel registrar (called by the core at startup).

plugin.go:909

PluginSDK.SetOutputChannelUnregistrar

仅内核内置插件可用

同上,桥接模板不注入。

func (s *PluginSDK) SetOutputChannelUnregistrar(r OutputChannelUnregistrar)

SetOutputChannelUnregistrar sets the output channel unregistrar (called by the core at startup).

plugin.go:916

PluginSDK.SetPluginMgrAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetPluginMgrAPI(pm PluginMgrAPI)

SetPluginMgrAPI sets the plugin manager API (called by the bridge at startup).

plugin.go:1011

PluginSDK.SetRawFilesAPI

func (s *PluginSDK) SetRawFilesAPI(v RawFilesAPI)

SetRawFilesAPI 由内核装配时注入(插件不调用它)。

plugin.go:948

PluginSDK.SetSecretsAPI

func (s *PluginSDK) SetSecretsAPI(v SecretsAPI)

SetSecretsAPI 由内核装配时注入(插件不调用它)。

plugin.go:955

PluginSDK.SetSecurityAPI

func (s *PluginSDK) SetSecurityAPI(v SecurityAPI)

SetSecurityAPI 由内核注入策略声明面的实现(插件不调用)。

plugin.go:962

PluginSDK.SetSocialAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetSocialAPI(social SocialAPI)

plugin.go:998

PluginSDK.SetTextMemoryAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetTextMemoryAPI(tm TextMemoryAPI)

plugin.go:974

ToolRegistrar

type ToolRegistrar func(name string, def ToolDef, handler ToolHandler) error

ToolRegistrar registers a tool dynamically.

plugin.go:579