diff --git a/go.mod b/go.mod index 3a13acbc..53f73237 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/FloatTech/sqlite v1.7.2 github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d github.com/FloatTech/zbpctrl v1.7.1 - github.com/FloatTech/zbputils v1.7.2-0.20260128132210-62a44be0a2b5 + github.com/FloatTech/zbputils v1.7.2-0.20260131163621-618685d53380 github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7 github.com/RomiChan/websocket v1.4.3-0.20251002072000-d3eb41798438 github.com/Tnze/go-mc v1.20.2 diff --git a/go.sum b/go.sum index aa230329..2c3630b8 100644 --- a/go.sum +++ b/go.sum @@ -16,8 +16,8 @@ github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d h1:mUQ/c3wXKsUGa4Sg9 github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs= github.com/FloatTech/zbpctrl v1.7.1 h1:0yPEmCForhyMbnhTckmjDUFFDZgQp1RjO2bVF4ZVqOs= github.com/FloatTech/zbpctrl v1.7.1/go.mod h1:xmM4dSwHA02Gei3ogCRiG+RTrw/7Z69PfrN5NYf8BPE= -github.com/FloatTech/zbputils v1.7.2-0.20260128132210-62a44be0a2b5 h1:EF3ZDWQUR+drINwMtEhDKAp1qPWC3iJqtigX2CjWqSo= -github.com/FloatTech/zbputils v1.7.2-0.20260128132210-62a44be0a2b5/go.mod h1:W2kaR/A5oUtEb7DnveXCc0T374VjI+f3KmOWH9FE5vU= +github.com/FloatTech/zbputils v1.7.2-0.20260131163621-618685d53380 h1:M/rYDnNv3zvF6ZOSzxlgYZdNOmmJPR6BrEBlJGknn2A= +github.com/FloatTech/zbputils v1.7.2-0.20260131163621-618685d53380/go.mod h1:W2kaR/A5oUtEb7DnveXCc0T374VjI+f3KmOWH9FE5vU= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U= github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI= diff --git a/plugin/aichat/main.go b/plugin/aichat/main.go index a0cd79cc..480a1e94 100644 --- a/plugin/aichat/main.go +++ b/plugin/aichat/main.go @@ -6,6 +6,7 @@ import ( "math/rand" "strings" + "github.com/RomiChan/syncx" "github.com/fumiama/deepinfra" goba "github.com/fumiama/go-onebot-agent" "github.com/sirupsen/logrus" @@ -52,7 +53,8 @@ func init() { logrus.Warnln("ERROR: cannot get stor") return false } - if _, ok := ctx.State[zero.StateKeyPrefixKeep+"_chat_ag_hooked__"]; !ok && !stor.NoAgent() { + mp := ctx.State[control.StateKeySyncxState].(*syncx.Map[string, any]) + if _, ok := mp.Load(chat.StateKeyAgentHooked); !ok && !stor.NoAgent() { logrus.Infoln("[aichat] skip agent for ctx has not been hooked by agent") return false } @@ -76,6 +78,7 @@ func init() { stor := ctx.State[zero.StateKeyPrefixKeep+"aichatcfg_stor__"].(chat.Storage) temperature := stor.Temp() topp, maxn := chat.AC.MParams() + mp := ctx.State[control.StateKeySyncxState].(*syncx.Map[string, any]) logrus.Debugln("[aichat] agent mode test: noagent", stor.NoAgent(), "hasapi", chat.AC.AgentAPI != "", "hasmodel", chat.AC.AgentModelName != "") if !stor.NoAgent() && chat.AC.AgentAPI != "" && chat.AC.AgentModelName != "" && chat.AC.Key != "" { @@ -120,7 +123,7 @@ func init() { break } hasresp = true - ctx.State[zero.StateKeyPrefixKeep+"_chat_ag_triggered__"] = struct{}{} + mp.Store(chat.StateKeyAgentTriggered, struct{}{}) for _, req := range reqs { if req.Action == goba.SVM { // is a fake action /*if hassavemem {