SDK 开发指南
TGO SDK 封装了与宿主程序的 Socket 通讯细节,并提供了一套流式的 UI 构建器。
Go SDK (tgo-plugin-go)
生命周期
tgo.Run(plugin): 启动插件。它会自动处理连接、注册、心跳和重连。Capabilities(): 在此声明插件支持的扩展点。
UI 构建器
SDK 提供了与模版对应的结构化构建器:
- Group (容器):
tgo.NewGroup().SetHorizontal().Add(it1).Add(it2) - Table (表格):
tgo.NewTable("标题").Columns("ID", "名称").Row(map[string]any{"ID": 1}) - Form (表单):
tgo.NewForm("标题").Add(tgo.NewFormField("name", "姓名", "text")) - Button (按钮):
tgo.NewButton("文本", "id").SetSize("sm").SetType("danger")
Action 系统
Action 用于告诉宿主执行什么操作。
// 单个 Action
return tgo.ShowToast("保存成功", "success")
// 链式 Action (Batch 执行)
return tgo.ShowToast("成功", "success").
Then(tgo.CloseModal()).
Then(tgo.Refresh())
Python SDK (tgo-plugin-python)
生命周期
TGOPlugin.run(): 启动插件。基于 Pydantic 提供严格的类型校验。- 方法路由:SDK 自动将
visitor_panel/render请求映射到on_visitor_panel_render方法。
UI 构建器
Python SDK 同样提供流式接口:
ui = Group()
ui.add(Text("内容").set_bold(True))
ui.add(Button("确定", "ok").set_size("md"))
return ui
Action 系统
return Action.show_toast("成功").then(Action.close_modal()).then(Action.refresh())
调试技巧
TCP 调试模式
在本地开发时,你可以在不部署到 Unix Socket 的情况下进行调试:
// Go
tgo.Run(&MyPlugin{}, tgo.WithTCPAddr("localhost:8005"), tgo.WithDevToken("YOUR_TOKEN"))
# Python
plugin = MyPlugin(tcp_addr="localhost:8005", dev_token="YOUR_TOKEN")
plugin.run()
你可以从 TGO 管理后台的“设置 --> 插件管理 --> 调试令牌”中获取调试 Token。