mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-03 15:53:56 +00:00
chore(sdk-mirror): 同步 SDK 仓 4cb3a0b —— 通道方向契约 + 示例插件显式登记 inputch
镜像文件(外层仓按策略只跟这些;`example/` 被 .gitignore 忽略,已跟踪文件用 -f 提交):
- `sdk/plugin.go`:RegisterInputChannel/RegisterOutputChannel 的方向契约文档
(入站 vs 出站分开登记;用哪个通道名注入就要登记哪个)。
- `example/{a2a,acp,browser,memo,calendar,rss}/plugin.go`:补 RegisterInputChannel。
未镜像(外层 .gitignore 忽略,按策略不入镜像):
`README.md`(README*)、`tools/hmapdev/{templates.go,cmd_sdk.go,cmd_build.go}`(tools/)
—— 即"模板工程"与"`sdk install --from`"两项改动只存在于 SDK 仓,详见该仓提交 4cb3a0b。
注:这 6 个示例此前未 gofmt(`example/*` 共有 9 个未格式化文件),
本次改动文件被 gofmt 顺带规范,diff 里含格式噪音(calendar 49 行、a2a 33 行)。
This commit is contained in:
@ -15,31 +15,31 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
RepeatNone = "none"
|
||||
RepeatDaily = "daily"
|
||||
RepeatWeekday = "weekday"
|
||||
RepeatWeekly = "weekly"
|
||||
RepeatBiweekly = "biweekly"
|
||||
RepeatMonthly = "monthly"
|
||||
RepeatYearly = "yearly"
|
||||
RepeatNone = "none"
|
||||
RepeatDaily = "daily"
|
||||
RepeatWeekday = "weekday"
|
||||
RepeatWeekly = "weekly"
|
||||
RepeatBiweekly = "biweekly"
|
||||
RepeatMonthly = "monthly"
|
||||
RepeatYearly = "yearly"
|
||||
RepeatLunarYearly = "lunar_yearly"
|
||||
)
|
||||
|
||||
type CalendarEvent struct {
|
||||
ID string `json:"id"`
|
||||
Title string `json:"title"`
|
||||
StartTime string `json:"start_time"`
|
||||
EndTime string `json:"end_time,omitempty"`
|
||||
AllDay bool `json:"all_day,omitempty"`
|
||||
Location string `json:"location,omitempty"`
|
||||
Note string `json:"note,omitempty"`
|
||||
Reminds []int `json:"reminds,omitempty"`
|
||||
RemindAt []int64 `json:"remind_at,omitempty"`
|
||||
Repeat string `json:"repeat,omitempty"`
|
||||
ParentID string `json:"parent_id,omitempty"`
|
||||
Lunar bool `json:"lunar,omitempty"`
|
||||
LunarMonth int `json:"lunar_month,omitempty"`
|
||||
LunarDay int `json:"lunar_day,omitempty"`
|
||||
ID string `json:"id"`
|
||||
Title string `json:"title"`
|
||||
StartTime string `json:"start_time"`
|
||||
EndTime string `json:"end_time,omitempty"`
|
||||
AllDay bool `json:"all_day,omitempty"`
|
||||
Location string `json:"location,omitempty"`
|
||||
Note string `json:"note,omitempty"`
|
||||
Reminds []int `json:"reminds,omitempty"`
|
||||
RemindAt []int64 `json:"remind_at,omitempty"`
|
||||
Repeat string `json:"repeat,omitempty"`
|
||||
ParentID string `json:"parent_id,omitempty"`
|
||||
Lunar bool `json:"lunar,omitempty"`
|
||||
LunarMonth int `json:"lunar_month,omitempty"`
|
||||
LunarDay int `json:"lunar_day,omitempty"`
|
||||
}
|
||||
|
||||
type Plugin struct {
|
||||
@ -276,6 +276,9 @@ func nextLunarYearly(targetMonth, targetDay int, after time.Time) (time.Time, bo
|
||||
func (p *Plugin) Start(s *sdk.PluginSDK) error {
|
||||
p.sdk = s
|
||||
|
||||
// 入站通道:本插件用 "calendar" 通道注入输入(见 Inject* 调用),
|
||||
// 输入侧必须显式登记 —— 否则"把该 inputch 划给驻留子"会报 `inputch 未注册`。
|
||||
_ = s.RegisterInputChannel("calendar", sdk.ChannelDef{NoMemory: true})
|
||||
dataDirVal, err := s.Settings().GetCore("core.daemon.data_dir")
|
||||
if err != nil || dataDirVal == "" {
|
||||
dataDirVal = "."
|
||||
@ -359,7 +362,7 @@ func (p *Plugin) Start(s *sdk.PluginSDK) error {
|
||||
s.RegisterTool(tp+"today", sdk.ToolDef{
|
||||
Name: tp + "today", Description: "Show today's events with countdown.",
|
||||
Parameters: map[string]interface{}{
|
||||
"type": "object",
|
||||
"type": "object",
|
||||
"properties": map[string]interface{}{},
|
||||
},
|
||||
}, p.handleToday)
|
||||
@ -367,7 +370,7 @@ func (p *Plugin) Start(s *sdk.PluginSDK) error {
|
||||
s.RegisterTool(tp+"week", sdk.ToolDef{
|
||||
Name: tp + "week", Description: "Show this week's events grouped by day.",
|
||||
Parameters: map[string]interface{}{
|
||||
"type": "object",
|
||||
"type": "object",
|
||||
"properties": map[string]interface{}{},
|
||||
},
|
||||
}, p.handleWeek)
|
||||
|
||||
Reference in New Issue
Block a user