mirror of
https://gitcode.com/JianFeeeee/homeagent-sdk.git
synced 2026-09-20 00:48:12 +00:00
内核侧 Lua 桥此前停在 v0.8.0 时代能力面,而 1.1/1.2/1.3 新增的 媒体、注入标志位、中断优先级、事件订阅、动态通道注销只在 Go 侧存在, 文档却宣称『能力完全对齐』——属于静默漂移。 本仓(事实源): - 新增 sdk/lua/sdk.lua:Lua mock 的单一事实源,补齐全部新 API (*_opts / inject_input_sync / inject_*_media / set_tool_blocks / unregister_output_channel / events / plugin_mgr / insert_with_media / sentence_text+media_digests / attachments / context_policy)。 - scripts/sync-lua-sdk.sh:把事实源同步到 hmapdev assets、luademo、 以及被 vendored 时的内核副本;三份 sdk.lua 不再各自漂移。 - hmapdev init --lua:优先从激活 SDK 拷权威 mock,内嵌模板降级为 assets/sdk.lua 回退,不再内联手写副本。 - hmapdev build(Lua):plugin.json 写入 SDK 版本(能力可追溯), 打包前用 luac -p / lua loadfile 做语法预检,失败以非零码退出。 - hmapdev debug --lua:优先用激活 SDK 的权威 mock(HMAPDEV_SDK_LUA)。 - luademo 升级为全能力示例(新增 luademo_probe_v2)。
1.3 KiB
1.3 KiB
luademo
Lua 插件全功能示例,展示 Lua SDK 的完整能力面(对齐 SDK 1.3.0):
- 工具注册:
no_memory+context_policy+cleaner(记忆计算层过滤) - 阶段钩子:
register_stage(stage, handler, scope),own_tools与全局作用域 - 通道:
register_output_channel/register_input_channel/unregister_output_channel(def 支持 no_memory/context_policy/cleaner) - 注入:
inject_text/inject_interrupt/inject_text_no_memory、*_opts(no_memory/context_policy/cleaner_name/priority)、inject_input_sync、inject_*_media、set_tool_blocks - 数据类 API:
sdk.memory.*(含 sentence_text/media_digests)、sdk.doc.*(含 insert_with_media)、sdk.knowledge.*、sdk.text_memory.*(含 attachments)、sdk.llm.*、sdk.settings.*、sdk.social.*、sdk.events.*、sdk.plugin_mgr.* - 其他:
register_api、set_auto_restart
luademo_probe_v2巡检 1.1/1.2/1.3 新增面。它故意不调用inject_input_sync:工具 handler 在 LLM 回合内运行,同步注入会自己等自己(死锁)。
本地独立测试
lua main.lua # 使用 sdk.lua mock,不依赖内核
构建
hmapdev build
安装
通过插件管理 HTTP API 上传 .hmap 包,或解压到 <data>/plugins/luademo/ 后重启内核。