refactor(plugin): clawhubadapter 迁出为外部插件

## 为什么迁

它是唯一还留在内核仓的「兼容层」插件,而它的全部工作都是对接**外部生态**
(ClawHub/OpenClaw 的包格式),跟内核版本无关。留在仓里有两个实际问题:

  · 外部生态的新包格式跟进要走内核发版
  · 它必须跟着内核一起重新编译,而它并不依赖内核内部实现

## 迁移改动(逻辑一行没动,只换接口形态)

  package clawhubadapter        → package main
  init()+RegisterFactory        → NewPluginFactory(proc 运行时按名调用)
  internal/sdk                  → hologramagentsdk/sdk
  internal/safeclose.Safe       → 自写 safeClose[T](泛型覆盖 3 种 channel)
  InjectInputSync(4 参)          → InjectInputSync(3 参, 返回 string)
  s.Events().Publish            → 删除(外部插件拿不到,也不需要)

## 为什么删掉 Events().Publish 而不是找替代

原实现靠它把纯 SKILL 条目移交 skillmgr。查清后发现**不需要**:
pluginmgr 在安装与每次启动时扫 `<插件目录>/skill/` 自己发 skill_detected
(internal/plugins/pluginmgr/skill_handout.go)。外部插件带 skill 走
工程根 skill/ 目录,与插件能不能发事件是两件事。

链路上没有一行来自插件自身,实测日志:

  [pluginmgr] clawhubadapter: handed off skill clawhub-tools to skillmgr
  [skillmgr]  registered via skill_detected event: clawhub-tools
  [plugin]    loaded SKILL: clawhub-tools v1.0.0

## 验证

  迁移工程  /home/program/clawhubadapter-plugin/clawhubadapter
  go vet / gofmt                    干净
  go test -race                     ok(20 条原有 + 4 条外部形态判据)
  hmapdev build                     packaged clawhubadapter_bundle.hmap
  变异验证                           4 条判据全部真红

  隔离实例端到端(真实安装路径,非模拟):
    registering tool: clawhubadapter_* × 10
    [plugin] loaded: clawhubadapter
    [plugin] loaded SKILL: clawhub-tools v1.0.0

  内核仓:go build / vet / gofmt / go test -race 全绿,62 包

## 生产切换的注意点

本 commit 只删源码,**不改生产**。生产 homed 里仍编着内置版;
要真切换必须先装 .hmap 再重编 homed,否则等于把这个插件弄没了。
This commit is contained in:
JianFeeeee
2026-11-04 15:23:53 +08:00
parent 67be114647
commit a0077a2bad
15 changed files with 1 additions and 5059 deletions

View File

@ -37,7 +37,7 @@ package plugins
// pluginmgr failback 恢复链必需(webui/pluginmgr/recoverydiag)
// seq ToolAPI(工具表直接操作)
// remotedevice RegisterChannel(内核 IO 通道注册面)
// clawhubadapter InjectInputSync(OC 主动注入)
// clawhubadapter 已迁出为外部插件(HologramAgent/clawhubadapter,2026-11-04)
// agentcli ★ EventPublish —— 见下
// cfgmgr / skillmgr / seemedia (保留)
//
@ -94,7 +94,6 @@ package plugins
import (
_ "github.com/JianFeeeee/HologramAgent/internal/plugins/agentcli"
_ "github.com/JianFeeeee/HologramAgent/internal/plugins/cfgmgr"
_ "github.com/JianFeeeee/HologramAgent/internal/plugins/clawhubadapter"
_ "github.com/JianFeeeee/HologramAgent/internal/plugins/cli"
_ "github.com/JianFeeeee/HologramAgent/internal/plugins/healthcheck"
_ "github.com/JianFeeeee/HologramAgent/internal/plugins/kbtree"