feat: Add Alpaca Financial Persona Integration

Co-authored-by: hobbyistlabs-coder <267281733+hobbyistlabs-coder@users.noreply.github.com>
This commit is contained in:
google-labs-jules[bot] 2026-03-13 08:20:53 +00:00
parent 83e24e8ceb
commit 55a15ff8d6
199 changed files with 655 additions and 901 deletions

2
.gitignore vendored
View file

@ -56,3 +56,5 @@ dist/
!web/backend/dist/ !web/backend/dist/
web/backend/dist/* web/backend/dist/*
!web/backend/dist/.gitkeep !web/backend/dist/.gitkeep
/go.sum
go.sum

View file

@ -5,7 +5,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
picoclawconfig "github.com/sipeed/picoclaw/pkg/config" picoclawconfig "jane/pkg/config"
) )
const ( const (

View file

@ -10,8 +10,8 @@ import (
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
"github.com/rivo/tview" "github.com/rivo/tview"
configstore "github.com/sipeed/picoclaw/cmd/picoclaw-launcher-tui/internal/config" configstore "jane/cmd/picoclaw-launcher-tui/internal/config"
picoclawconfig "github.com/sipeed/picoclaw/pkg/config" picoclawconfig "jane/pkg/config"
) )
type appState struct { type appState struct {

View file

@ -7,7 +7,7 @@ import (
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
"github.com/rivo/tview" "github.com/rivo/tview"
picoclawconfig "github.com/sipeed/picoclaw/pkg/config" picoclawconfig "jane/pkg/config"
) )
func (s *appState) buildChannelMenuItems() []MenuItem { func (s *appState) buildChannelMenuItems() []MenuItem {

View file

@ -10,7 +10,7 @@ import (
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
"github.com/rivo/tview" "github.com/rivo/tview"
picoclawconfig "github.com/sipeed/picoclaw/pkg/config" picoclawconfig "jane/pkg/config"
) )
func (s *appState) modelMenu() tview.Primitive { func (s *appState) modelMenu() tview.Primitive {

View file

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/sipeed/picoclaw/cmd/picoclaw-launcher-tui/internal/ui" "jane/cmd/picoclaw-launcher-tui/internal/ui"
) )
func main() { func main() {

View file

@ -11,11 +11,11 @@ import (
"github.com/chzyer/readline" "github.com/chzyer/readline"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/agent" "jane/pkg/agent"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
) )
func agentCmd(message, sessionKey, model string, debug bool) error { func agentCmd(message, sessionKey, model string, debug bool) error {

View file

@ -10,10 +10,10 @@ import (
"strings" "strings"
"time" "time"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/auth" "jane/pkg/auth"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
) )
const ( const (

View file

@ -5,7 +5,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/pkg/cron" "jane/pkg/cron"
) )
func newAddCommand(storePath func() string) *cobra.Command { func newAddCommand(storePath func() string) *cobra.Command {

View file

@ -6,7 +6,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
) )
func NewCronCommand() *cobra.Command { func NewCronCommand() *cobra.Command {

View file

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/sipeed/picoclaw/pkg/cron" "jane/pkg/cron"
) )
func cronListCmd(storePath string) { func cronListCmd(storePath string) {

View file

@ -5,8 +5,8 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
func NewGatewayCommand() *cobra.Command { func NewGatewayCommand() *cobra.Command {

View file

@ -9,36 +9,36 @@ import (
"path/filepath" "path/filepath"
"time" "time"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/agent" "jane/pkg/agent"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
_ "github.com/sipeed/picoclaw/pkg/channels/dingtalk" _ "jane/pkg/channels/dingtalk"
_ "github.com/sipeed/picoclaw/pkg/channels/discord" _ "jane/pkg/channels/discord"
_ "github.com/sipeed/picoclaw/pkg/channels/feishu" _ "jane/pkg/channels/feishu"
_ "github.com/sipeed/picoclaw/pkg/channels/irc" _ "jane/pkg/channels/irc"
_ "github.com/sipeed/picoclaw/pkg/channels/line" _ "jane/pkg/channels/line"
_ "github.com/sipeed/picoclaw/pkg/channels/maixcam" _ "jane/pkg/channels/maixcam"
_ "github.com/sipeed/picoclaw/pkg/channels/matrix" _ "jane/pkg/channels/matrix"
_ "github.com/sipeed/picoclaw/pkg/channels/onebot" _ "jane/pkg/channels/onebot"
_ "github.com/sipeed/picoclaw/pkg/channels/pico" _ "jane/pkg/channels/pico"
_ "github.com/sipeed/picoclaw/pkg/channels/qq" _ "jane/pkg/channels/qq"
_ "github.com/sipeed/picoclaw/pkg/channels/slack" _ "jane/pkg/channels/slack"
_ "github.com/sipeed/picoclaw/pkg/channels/telegram" _ "jane/pkg/channels/telegram"
_ "github.com/sipeed/picoclaw/pkg/channels/wecom" _ "jane/pkg/channels/wecom"
_ "github.com/sipeed/picoclaw/pkg/channels/whatsapp" _ "jane/pkg/channels/whatsapp"
_ "github.com/sipeed/picoclaw/pkg/channels/whatsapp_native" _ "jane/pkg/channels/whatsapp_native"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/cron" "jane/pkg/cron"
"github.com/sipeed/picoclaw/pkg/devices" "jane/pkg/devices"
"github.com/sipeed/picoclaw/pkg/health" "jane/pkg/health"
"github.com/sipeed/picoclaw/pkg/heartbeat" "jane/pkg/heartbeat"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
"github.com/sipeed/picoclaw/pkg/state" "jane/pkg/state"
"github.com/sipeed/picoclaw/pkg/tools" "jane/pkg/tools"
"github.com/sipeed/picoclaw/pkg/voice" "jane/pkg/voice"
) )
func gatewayCmd(debug bool) error { func gatewayCmd(debug bool) error {

View file

@ -4,7 +4,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
const Logo = "🦞" const Logo = "🦞"

View file

@ -3,7 +3,7 @@ package migrate
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/pkg/migrate" "jane/pkg/migrate"
) )
func NewMigrateCommand() *cobra.Command { func NewMigrateCommand() *cobra.Command {

View file

@ -6,8 +6,8 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func onboard() { func onboard() {

View file

@ -6,8 +6,8 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
) )
type deps struct { type deps struct {

View file

@ -9,10 +9,10 @@ import (
"strings" "strings"
"time" "time"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
const skillsSearchMaxResults = 20 const skillsSearchMaxResults = 20

View file

@ -5,8 +5,8 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
) )
func newInstallCommand(installerFn func() (*skills.SkillInstaller, error)) *cobra.Command { func newInstallCommand(installerFn func() (*skills.SkillInstaller, error)) *cobra.Command {

View file

@ -3,7 +3,7 @@ package skills
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
) )
func newListCommand(loaderFn func() (*skills.SkillsLoader, error)) *cobra.Command { func newListCommand(loaderFn func() (*skills.SkillsLoader, error)) *cobra.Command {

View file

@ -3,7 +3,7 @@ package skills
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
) )
func newRemoveCommand(installerFn func() (*skills.SkillInstaller, error)) *cobra.Command { func newRemoveCommand(installerFn func() (*skills.SkillInstaller, error)) *cobra.Command {

View file

@ -3,7 +3,7 @@ package skills
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
) )
func newShowCommand(loaderFn func() (*skills.SkillsLoader, error)) *cobra.Command { func newShowCommand(loaderFn func() (*skills.SkillsLoader, error)) *cobra.Command {

View file

@ -4,9 +4,9 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/auth" "jane/pkg/auth"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func statusCmd() { func statusCmd() {

View file

@ -5,8 +5,8 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func NewVersionCommand() *cobra.Command { func NewVersionCommand() *cobra.Command {

View file

@ -12,17 +12,17 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/agent" "jane/cmd/picoclaw/internal/agent"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/auth" "jane/cmd/picoclaw/internal/auth"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/cron" "jane/cmd/picoclaw/internal/cron"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/gateway" "jane/cmd/picoclaw/internal/gateway"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/migrate" "jane/cmd/picoclaw/internal/migrate"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/onboard" "jane/cmd/picoclaw/internal/onboard"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/skills" "jane/cmd/picoclaw/internal/skills"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/status" "jane/cmd/picoclaw/internal/status"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal/version" "jane/cmd/picoclaw/internal/version"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func NewPicoclawCommand() *cobra.Command { func NewPicoclawCommand() *cobra.Command {

View file

@ -8,8 +8,8 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/sipeed/picoclaw/cmd/picoclaw/internal" "jane/cmd/picoclaw/internal"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestNewPicoclawCommand(t *testing.T) { func TestNewPicoclawCommand(t *testing.T) {

11
go.mod
View file

@ -1,17 +1,18 @@
module github.com/sipeed/picoclaw module jane
go 1.25.7 go 1.25.7
require ( require (
github.com/adhocore/gronx v1.19.6 github.com/adhocore/gronx v1.19.6
github.com/alpacahq/alpaca-trade-api-go/v3 v3.9.1
github.com/anthropics/anthropic-sdk-go v1.22.1 github.com/anthropics/anthropic-sdk-go v1.22.1
github.com/bwmarrin/discordgo v0.29.0 github.com/bwmarrin/discordgo v0.29.0
github.com/caarlos0/env/v11 v11.3.1 github.com/caarlos0/env/v11 v11.3.1
github.com/chzyer/readline v1.5.1 github.com/chzyer/readline v1.5.1
github.com/ergochat/irc-go v0.5.0 github.com/ergochat/irc-go v0.5.0
github.com/gdamore/tcell/v2 v2.13.8 github.com/gdamore/tcell/v2 v2.13.8
github.com/google/uuid v1.6.0
github.com/gomarkdown/markdown v0.0.0-20260217112301-37c66b85d6ab github.com/gomarkdown/markdown v0.0.0-20260217112301-37c66b85d6ab
github.com/google/uuid v1.6.0
github.com/gorilla/websocket v1.5.3 github.com/gorilla/websocket v1.5.3
github.com/h2non/filetype v1.1.3 github.com/h2non/filetype v1.1.3
github.com/larksuite/oapi-sdk-go/v3 v3.5.3 github.com/larksuite/oapi-sdk-go/v3 v3.5.3
@ -30,11 +31,13 @@ require (
golang.org/x/oauth2 v0.35.0 golang.org/x/oauth2 v0.35.0
golang.org/x/time v0.14.0 golang.org/x/time v0.14.0
google.golang.org/protobuf v1.36.11 google.golang.org/protobuf v1.36.11
gopkg.in/yaml.v3 v3.0.1
maunium.net/go/mautrix v0.26.3 maunium.net/go/mautrix v0.26.3
modernc.org/sqlite v1.46.1 modernc.org/sqlite v1.46.1
) )
require ( require (
cloud.google.com/go v0.118.0 // indirect
filippo.io/edwards25519 v1.1.1 // indirect filippo.io/edwards25519 v1.1.1 // indirect
github.com/beeper/argo-go v1.1.2 // indirect github.com/beeper/argo-go v1.1.2 // indirect
github.com/coder/websocket v1.8.14 // indirect github.com/coder/websocket v1.8.14 // indirect
@ -43,7 +46,9 @@ require (
github.com/elliotchance/orderedmap/v3 v3.1.0 // indirect github.com/elliotchance/orderedmap/v3 v3.1.0 // indirect
github.com/gdamore/encoding v1.0.1 // indirect github.com/gdamore/encoding v1.0.1 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-isatty v0.0.20 // indirect
github.com/ncruces/go-strftime v1.0.0 // indirect github.com/ncruces/go-strftime v1.0.0 // indirect
@ -53,6 +58,7 @@ require (
github.com/rivo/uniseg v0.4.7 // indirect github.com/rivo/uniseg v0.4.7 // indirect
github.com/segmentio/asm v1.1.3 // indirect github.com/segmentio/asm v1.1.3 // indirect
github.com/segmentio/encoding v0.5.3 // indirect github.com/segmentio/encoding v0.5.3 // indirect
github.com/shopspring/decimal v1.3.1 // indirect
github.com/spf13/pflag v1.0.10 // indirect github.com/spf13/pflag v1.0.10 // indirect
github.com/vektah/gqlparser/v2 v2.5.27 // indirect github.com/vektah/gqlparser/v2 v2.5.27 // indirect
go.mau.fi/libsignal v0.2.1 // indirect go.mau.fi/libsignal v0.2.1 // indirect
@ -60,7 +66,6 @@ require (
golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect
golang.org/x/term v0.40.0 // indirect golang.org/x/term v0.40.0 // indirect
golang.org/x/text v0.34.0 // indirect golang.org/x/text v0.34.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
modernc.org/libc v1.67.6 // indirect modernc.org/libc v1.67.6 // indirect
modernc.org/mathutil v1.7.1 // indirect modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.11.0 // indirect modernc.org/memory v1.11.0 // indirect

399
go.sum
View file

@ -1,399 +0,0 @@
cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
filippo.io/edwards25519 v1.1.1 h1:YpjwWWlNmGIDyXOn8zLzqiD+9TyIlPhGFG96P39uBpw=
filippo.io/edwards25519 v1.1.1/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU=
github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU=
github.com/adhocore/gronx v1.19.6 h1:5KNVcoR9ACgL9HhEqCm5QXsab/gI4QDIybTAWcXDKDc=
github.com/adhocore/gronx v1.19.6/go.mod h1:7oUY1WAU8rEJWmAxXR2DN0JaO4gi9khSgKjiRypqteg=
github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=
github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
github.com/anthropics/anthropic-sdk-go v1.22.1 h1:xbsc3vJKCX/ELDZSpTNfz9wCgrFsamwFewPb1iI0Xh0=
github.com/anthropics/anthropic-sdk-go v1.22.1/go.mod h1:WTz31rIUHUHqai2UslPpw5CwXrQP3geYBioRV4WOLvE=
github.com/beeper/argo-go v1.1.2 h1:UQI2G8F+NLfGTOmTUI0254pGKx/HUU/etbUGTJv91Fs=
github.com/beeper/argo-go v1.1.2/go.mod h1:M+LJAnyowKVQ6Rdj6XYGEn+qcVFkb3R/MUpqkGR0hM4=
github.com/bwmarrin/discordgo v0.29.0 h1:FmWeXFaKUwrcL3Cx65c20bTRW+vOb6k8AnaP+EgjDno=
github.com/bwmarrin/discordgo v0.29.0/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY=
github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M=
github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM=
github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE=
github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k=
github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE=
github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo=
github.com/caarlos0/env/v11 v11.3.1 h1:cArPWC15hWmEt+gWk7YBi7lEXTXCvpaSdCiZE2X5mCA=
github.com/caarlos0/env/v11 v11.3.1/go.mod h1:qupehSf/Y0TUTsxKywqRt/vJjN5nz6vauiYEUUr8P4U=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM=
github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ=
github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI=
github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk=
github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04=
github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8=
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g=
github.com/coder/websocket v1.8.14/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/elliotchance/orderedmap/v3 v3.1.0 h1:j4DJ5ObEmMBt/lcwIecKcoRxIQUEnw0L804lXYDt/pg=
github.com/elliotchance/orderedmap/v3 v3.1.0/go.mod h1:G+Hc2RwaZvJMcS4JpGCOyViCnGeKf0bTYCGTO4uhjSo=
github.com/ergochat/irc-go v0.5.0 h1:woQ1RS9YbfgqPgSpPBBQeczXGIGzR0aC7dEgk469fTw=
github.com/ergochat/irc-go v0.5.0/go.mod h1:2vi7KNpIPWnReB5hmLpl92eMywQvuIeIIGdt/FQCph0=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/gdamore/encoding v1.0.1 h1:YzKZckdBL6jVt2Gc+5p82qhrGiqMdG/eNs6Wy0u3Uhw=
github.com/gdamore/encoding v1.0.1/go.mod h1:0Z0cMFinngz9kS1QfMjCP8TY7em3bZYeeklsSDPivEo=
github.com/gdamore/tcell/v2 v2.13.8 h1:Mys/Kl5wfC/GcC5Cx4C2BIQH9dbnhnkPgS9/wF3RlfU=
github.com/gdamore/tcell/v2 v2.13.8/go.mod h1:+Wfe208WDdB7INEtCsNrAN6O2m+wsTPk1RAovjaILlo=
github.com/github/copilot-sdk/go v0.1.23 h1:uExtO/inZQndCZMiSAA1hvXINiz9tqo/MZgQzFzurxw=
github.com/github/copilot-sdk/go v0.1.23/go.mod h1:GdwwBfMbm9AABLEM3x5IZKw4ZfwCYxZ1BgyytmZenQ0=
github.com/go-redis/redis/v8 v8.11.4/go.mod h1:2Z2wHZXdQpCDXEGzqMockDpNyYvi2l4Pxt6RJr792+w=
github.com/go-resty/resty/v2 v2.6.0/go.mod h1:PwvJS6hvaPkjtjNg9ph+VrSD92bi5Zq73w/BIH7cC3Q=
github.com/go-resty/resty/v2 v2.17.1 h1:x3aMpHK1YM9e4va/TMDRlusDDoZiQ+ViDu/WpA6xTM4=
github.com/go-resty/resty/v2 v2.17.1/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/gomarkdown/markdown v0.0.0-20260217112301-37c66b85d6ab h1:VYNivV7P8IRHUam2swVUNkhIdp0LRRFKe4hXNnoZKTc=
github.com/gomarkdown/markdown v0.0.0-20260217112301-37c66b85d6ab/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/jsonschema-go v0.4.2 h1:tmrUohrwoLZZS/P3x7ex0WAVknEkBZM46iALbcqoRA8=
github.com/google/jsonschema-go v0.4.2/go.mod h1:r5quNTdLOYEz95Ru18zA0ydNbBuYoo9tgaYcxEYhJVE=
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grbit/go-json v0.11.0 h1:bAbyMdYrYl/OjYsSqLH99N2DyQ291mHy726Mx+sYrnc=
github.com/grbit/go-json v0.11.0/go.mod h1:IYpHsdybQ386+6g3VE6AXQ3uTGa5mquBme5/ZWmtzek=
github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg=
github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY=
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/larksuite/oapi-sdk-go/v3 v3.5.3 h1:xvf8Dv29kBXC5/DNDCLhHkAFW8l/0LlQJimO5Zn+JUk=
github.com/larksuite/oapi-sdk-go/v3 v3.5.3/go.mod h1:ZEplY+kwuIrj/nqw5uSCINNATcH3KdxSN7y+UxYY5fI=
github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk=
github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mdp/qrterminal/v3 v3.2.1 h1:6+yQjiiOsSuXT5n9/m60E54vdgFsw0zhADHhHLrFet4=
github.com/mdp/qrterminal/v3 v3.2.1/go.mod h1:jOTmXvnBsMy5xqLniO0R++Jmjs2sTm9dFSuQ5kpz/SU=
github.com/modelcontextprotocol/go-sdk v1.3.1 h1:TfqtNKOIWN4Z1oqmPAiWDC2Jq7K9OdJaooe0teoXASI=
github.com/modelcontextprotocol/go-sdk v1.3.1/go.mod h1:DgVX498dMD8UJlseK1S5i1T4tFz2fkBk4xogC3D15nw=
github.com/mymmrac/telego v1.6.0 h1:Zc8rgyHozvd/7ZgyrigyHdAF9koHYMfilYfyB6wlFC0=
github.com/mymmrac/telego v1.6.0/go.mod h1:xt6ZWA8zi8KmuzryE1ImEdl9JSwjHNpM4yhC7D8hU4Y=
github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
github.com/open-dingtalk/dingtalk-stream-sdk-go v0.9.1 h1:Lb/Uzkiw2Ugt2Xf03J5wmv81PdkYOiWbI8CNBi1boC8=
github.com/open-dingtalk/dingtalk-stream-sdk-go v0.9.1/go.mod h1:ln3IqPYYocZbYvl9TAOrG/cxGR9xcn4pnZRLdCTEGEU=
github.com/openai/openai-go/v3 v3.22.0 h1:6MEoNoV8sbjOVmXdvhmuX3BjVbVdcExbVyGixiyJ8ys=
github.com/openai/openai-go/v3 v3.22.0/go.mod h1:cdufnVK14cWcT9qA1rRtrXx4FTRsgbDPW7Ia7SS5cZo=
github.com/petermattis/goid v0.0.0-20260113132338-7c7de50cc741 h1:KPpdlQLZcHfTMQRi6bFQ7ogNO0ltFT4PmtwTLW4W+14=
github.com/petermattis/goid v0.0.0-20260113132338-7c7de50cc741/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rivo/tview v0.42.0 h1:b/ftp+RxtDsHSaynXTbJb+/n/BxDEi+W3UfF5jILK6c=
github.com/rivo/tview v0.42.0/go.mod h1:cSfIYfhpSGCjp3r/ECJb+GKS7cGJnqV8vfjQPwoXyfY=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc=
github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg=
github.com/segmentio/encoding v0.5.3 h1:OjMgICtcSFuNvQCdwqMCv9Tg7lEOXGwm1J5RPQccx6w=
github.com/segmentio/encoding v0.5.3/go.mod h1:HS1ZKa3kSN32ZHVZ7ZLPLXWvOVIiZtyJnO1gPH1sKt0=
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
github.com/slack-go/slack v0.17.3 h1:zV5qO3Q+WJAQ/XwbGfNFrRMaJ5T/naqaonyPV/1TP4g=
github.com/slack-go/slack v0.17.3/go.mod h1:X+UqOufi3LYQHDnMG1vxf0J8asC6+WllXrVrhl8/Prk=
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/tencent-connect/botgo v0.2.1 h1:+BrTt9Zh+awL28GWC4g5Na3nQaGRWb0N5IctS8WqBCk=
github.com/tencent-connect/botgo v0.2.1/go.mod h1:oO1sG9ybhXNickvt+CVym5khwQ+uKhTR+IhTqEfOVsI=
github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM=
github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.69.0 h1:fNLLESD2SooWeh2cidsuFtOcrEi4uB4m1mPrkJMZyVI=
github.com/valyala/fasthttp v1.69.0/go.mod h1:4wA4PfAraPlAsJ5jMSqCE2ug5tqUPwKXxVj8oNECGcw=
github.com/valyala/fastjson v1.6.7 h1:ZE4tRy0CIkh+qDc5McjatheGX2czdn8slQjomexVpBM=
github.com/valyala/fastjson v1.6.7/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
github.com/vektah/gqlparser/v2 v2.5.27 h1:RHPD3JOplpk5mP5JGX8RKZkt2/Vwj/PZv0HxTdwFp0s=
github.com/vektah/gqlparser/v2 v2.5.27/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo=
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=
github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.mau.fi/libsignal v0.2.1 h1:vRZG4EzTn70XY6Oh/pVKrQGuMHBkAWlGRC22/85m9L0=
go.mau.fi/libsignal v0.2.1/go.mod h1:iVvjrHyfQqWajOUaMEsIfo3IqgVMrhWcPiiEzk7NgoU=
go.mau.fi/util v0.9.6 h1:2nsvxm49KhI3wrFltr0+wSUBlnQ4CMtykuELjpIU+ts=
go.mau.fi/util v0.9.6/go.mod h1:sIJpRH7Iy5Ad1SBuxQoatxtIeErgzxCtjd/2hCMkYMI=
go.mau.fi/whatsmeow v0.0.0-20260219150138-7ae702b1eed4 h1:hsmlwsM+VqfF70cpdZEeIUKer2XWCQmQPK0u0tHy3ZQ=
go.mau.fi/whatsmeow v0.0.0-20260219150138-7ae702b1eed4/go.mod h1:mXCRFyPEPn4jqWz6Afirn8vY7DpHCPnlKq6I2cWwFHM=
go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y=
go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/arch v0.24.0 h1:qlJ3M9upxvFfwRM51tTg3Yl+8CP9vCC1E7vlFpgv99Y=
golang.org/x/arch v0.24.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts=
golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos=
golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o=
golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=
golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60=
golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM=
golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=
golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=
golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ=
golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=
golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
maunium.net/go/mautrix v0.26.3 h1:tWZih6Vjw0qGTWuPmg9JUrQPzViTNDPGQLVc5UXC4nk=
maunium.net/go/mautrix v0.26.3/go.mod h1:v5ZdDoCwUpNqEj5OrhEoUa3L1kEddKPaAya9TgGXN38=
modernc.org/cc/v4 v4.27.1 h1:9W30zRlYrefrDV2JE2O8VDtJ1yPGownxciz5rrbQZis=
modernc.org/cc/v4 v4.27.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
modernc.org/ccgo/v4 v4.30.1 h1:4r4U1J6Fhj98NKfSjnPUN7Ze2c6MnAdL0hWw6+LrJpc=
modernc.org/ccgo/v4 v4.30.1/go.mod h1:bIOeI1JL54Utlxn+LwrFyjCx2n2RDiYEaJVSrgdrRfM=
modernc.org/fileutil v1.3.40 h1:ZGMswMNc9JOCrcrakF1HrvmergNLAmxOPjizirpfqBA=
modernc.org/fileutil v1.3.40/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc=
modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI=
modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito=
modernc.org/gc/v3 v3.1.1 h1:k8T3gkXWY9sEiytKhcgyiZ2L0DTyCQ/nvX+LoCljoRE=
modernc.org/gc/v3 v3.1.1/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks=
modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI=
modernc.org/libc v1.67.6 h1:eVOQvpModVLKOdT+LvBPjdQqfrZq+pC39BygcT+E7OI=
modernc.org/libc v1.67.6/go.mod h1:JAhxUVlolfYDErnwiqaLvUqc8nfb2r6S6slAgZOnaiE=
modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI=
modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw=
modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8=
modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w=
modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE=
modernc.org/sqlite v1.46.1 h1:eFJ2ShBLIEnUWlLy12raN0Z1plqmFX9Qe3rjQTKt6sU=
modernc.org/sqlite v1.46.1/go.mod h1:CzbrU2lSB1DKUusvwGz7rqEKIq+NUd8GWuBBZDs9/nA=
modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs=

View file

@ -12,11 +12,11 @@ import (
"sync" "sync"
"time" "time"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
type ContextBuilder struct { type ContextBuilder struct {

View file

@ -8,7 +8,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
) )
// setupWorkspace creates a temporary workspace with standard directories and optional files. // setupWorkspace creates a temporary workspace with standard directories and optional files.

View file

@ -3,7 +3,7 @@ package agent
import ( import (
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
) )
func msg(role, content string) providers.Message { func msg(role, content string) providers.Message {

View file

@ -9,12 +9,13 @@ import (
"regexp" "regexp"
"strings" "strings"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/memory" "jane/pkg/memory"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
"github.com/sipeed/picoclaw/pkg/routing" "jane/pkg/routing"
"github.com/sipeed/picoclaw/pkg/session" "jane/pkg/session"
"github.com/sipeed/picoclaw/pkg/tools" "jane/pkg/tools"
"jane/pkg/tools/alpaca"
) )
// AgentInstance represents a fully configured agent with its own workspace, // AgentInstance represents a fully configured agent with its own workspace,
@ -94,6 +95,14 @@ func NewAgentInstance(
} }
if cfg.Tools.IsToolEnabled("append_file") { if cfg.Tools.IsToolEnabled("append_file") {
toolsRegistry.Register(tools.NewAppendFileTool(workspace, restrict, allowWritePaths)) toolsRegistry.Register(tools.NewAppendFileTool(workspace, restrict, allowWritePaths))
if cfg.Tools.IsToolEnabled("alpaca_finance") {
toolsRegistry.Register(alpaca.NewAlpacaTool(
cfg.Tools.Alpaca.KeyID,
cfg.Tools.Alpaca.SecretKey,
cfg.Tools.Alpaca.BaseURL,
))
}
} }
sessionsDir := filepath.Join(workspace, "sessions") sessionsDir := filepath.Join(workspace, "sessions")

View file

@ -4,7 +4,7 @@ import (
"os" "os"
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestNewAgentInstance_UsesDefaultsTemperatureAndMaxTokens(t *testing.T) { func TestNewAgentInstance_UsesDefaultsTemperatureAndMaxTokens(t *testing.T) {

View file

@ -19,20 +19,20 @@ import (
"time" "time"
"unicode/utf8" "unicode/utf8"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/commands" "jane/pkg/commands"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/constants" "jane/pkg/constants"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
"github.com/sipeed/picoclaw/pkg/routing" "jane/pkg/routing"
"github.com/sipeed/picoclaw/pkg/skills" "jane/pkg/skills"
"github.com/sipeed/picoclaw/pkg/state" "jane/pkg/state"
"github.com/sipeed/picoclaw/pkg/tools" "jane/pkg/tools"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
"github.com/sipeed/picoclaw/pkg/voice" "jane/pkg/voice"
) )
type AgentLoop struct { type AgentLoop struct {

View file

@ -11,9 +11,9 @@ import (
"fmt" "fmt"
"sync" "sync"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/mcp" "jane/pkg/mcp"
"github.com/sipeed/picoclaw/pkg/tools" "jane/pkg/tools"
) )
type mcpRuntime struct { type mcpRuntime struct {

View file

@ -15,9 +15,9 @@ import (
"github.com/h2non/filetype" "github.com/h2non/filetype"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
) )
// resolveMediaRefs replaces media:// refs in message Media fields with base64 data URLs. // resolveMediaRefs replaces media:// refs in message Media fields with base64 data URLs.

View file

@ -10,13 +10,13 @@ import (
"testing" "testing"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
"github.com/sipeed/picoclaw/pkg/routing" "jane/pkg/routing"
"github.com/sipeed/picoclaw/pkg/tools" "jane/pkg/tools"
) )
type fakeChannel struct{ id string } type fakeChannel struct{ id string }

View file

@ -13,7 +13,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/sipeed/picoclaw/pkg/fileutil" "jane/pkg/fileutil"
) )
// MemoryStore manages persistent memory for the agent. // MemoryStore manages persistent memory for the agent.

View file

@ -3,7 +3,7 @@ package agent
import ( import (
"context" "context"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
) )
type mockProvider struct{} type mockProvider struct{}

View file

@ -3,11 +3,11 @@ package agent
import ( import (
"sync" "sync"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
"github.com/sipeed/picoclaw/pkg/routing" "jane/pkg/routing"
"github.com/sipeed/picoclaw/pkg/tools" "jane/pkg/tools"
) )
// AgentRegistry manages multiple agent instances and routes messages to them. // AgentRegistry manages multiple agent instances and routes messages to them.

View file

@ -4,8 +4,8 @@ import (
"context" "context"
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/providers" "jane/pkg/providers"
) )
type mockRegistryProvider struct{} type mockRegistryProvider struct{}

View file

@ -6,7 +6,7 @@ import (
"path/filepath" "path/filepath"
"time" "time"
"github.com/sipeed/picoclaw/pkg/fileutil" "jane/pkg/fileutil"
) )
type AuthCredential struct { type AuthCredential struct {

View file

@ -5,7 +5,7 @@ import (
"errors" "errors"
"sync/atomic" "sync/atomic"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
) )
// ErrBusClosed is returned when publishing to a closed MessageBus. // ErrBusClosed is returned when publishing to a closed MessageBus.

View file

@ -11,11 +11,11 @@ import (
"sync/atomic" "sync/atomic"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
) )
var ( var (

View file

@ -3,8 +3,8 @@ package channels
import ( import (
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestBaseChannelIsAllowed(t *testing.T) { func TestBaseChannelIsAllowed(t *testing.T) {

View file

@ -12,12 +12,12 @@ import (
"github.com/open-dingtalk/dingtalk-stream-sdk-go/client" "github.com/open-dingtalk/dingtalk-stream-sdk-go/client"
dinglog "github.com/open-dingtalk/dingtalk-stream-sdk-go/logger" dinglog "github.com/open-dingtalk/dingtalk-stream-sdk-go/logger"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
// DingTalkChannel implements the Channel interface for DingTalk (钉钉) // DingTalkChannel implements the Channel interface for DingTalk (钉钉)

View file

@ -1,9 +1,9 @@
package dingtalk package dingtalk
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -14,13 +14,13 @@ import (
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
const ( const (

View file

@ -1,9 +1,9 @@
package discord package discord
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -6,9 +6,9 @@ import (
"context" "context"
"errors" "errors"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
// FeishuChannel is a stub implementation for 32-bit architectures // FeishuChannel is a stub implementation for 32-bit architectures

View file

@ -20,13 +20,13 @@ import (
larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1" larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1"
larkws "github.com/larksuite/oapi-sdk-go/v3/ws" larkws "github.com/larksuite/oapi-sdk-go/v3/ws"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
type FeishuChannel struct { type FeishuChannel struct {

View file

@ -1,9 +1,9 @@
package feishu package feishu
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -3,7 +3,7 @@ package channels
import ( import (
"context" "context"
"github.com/sipeed/picoclaw/pkg/commands" "jane/pkg/commands"
) )
// TypingCapable — channels that can show a typing/thinking indicator. // TypingCapable — channels that can show a typing/thinking indicator.

View file

@ -4,7 +4,7 @@ import (
"context" "context"
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/commands" "jane/pkg/commands"
) )
type mockRegistrar struct{} type mockRegistrar struct{}

View file

@ -9,9 +9,9 @@ import (
"github.com/ergochat/irc-go/ircevent" "github.com/ergochat/irc-go/ircevent"
"github.com/ergochat/irc-go/ircmsg" "github.com/ergochat/irc-go/ircmsg"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
) )
// onConnect is called after a successful connection (and on reconnect). // onConnect is called after a successful connection (and on reconnect).

View file

@ -1,9 +1,9 @@
package irc package irc
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -9,10 +9,10 @@ import (
"github.com/ergochat/irc-go/ircevent" "github.com/ergochat/irc-go/ircevent"
"github.com/ergochat/irc-go/ircmsg" "github.com/ergochat/irc-go/ircmsg"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
) )
// IRCChannel implements the Channel interface for IRC servers. // IRCChannel implements the Channel interface for IRC servers.

View file

@ -3,8 +3,8 @@ package irc
import ( import (
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestNewIRCChannel(t *testing.T) { func TestNewIRCChannel(t *testing.T) {

View file

@ -1,9 +1,9 @@
package line package line
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -14,13 +14,13 @@ import (
"sync" "sync"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
const ( const (

View file

@ -1,9 +1,9 @@
package maixcam package maixcam
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -8,11 +8,11 @@ import (
"sync" "sync"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
) )
type MaixCamChannel struct { type MaixCamChannel struct {

View file

@ -17,12 +17,12 @@ import (
"golang.org/x/time/rate" "golang.org/x/time/rate"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/constants" "jane/pkg/constants"
"github.com/sipeed/picoclaw/pkg/health" "jane/pkg/health"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
) )
const ( const (

View file

@ -11,7 +11,7 @@ import (
"golang.org/x/time/rate" "golang.org/x/time/rate"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
) )
// mockChannel is a test double that delegates Send to a configurable function. // mockChannel is a test double that delegates Send to a configurable function.

View file

@ -1,9 +1,9 @@
package matrix package matrix
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -21,12 +21,12 @@ import (
"maunium.net/go/mautrix/event" "maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id" "maunium.net/go/mautrix/id"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
) )
const ( const (

View file

@ -14,7 +14,7 @@ import (
"maunium.net/go/mautrix/event" "maunium.net/go/mautrix/event"
"maunium.net/go/mautrix/id" "maunium.net/go/mautrix/id"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestMatrixLocalpartMentionRegexp(t *testing.T) { func TestMatrixLocalpartMentionRegexp(t *testing.T) {

View file

@ -3,7 +3,7 @@ package channels
import ( import (
"context" "context"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
) )
// MediaSender is an optional interface for channels that can send // MediaSender is an optional interface for channels that can send

View file

@ -1,9 +1,9 @@
package onebot package onebot
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -12,13 +12,13 @@ import (
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
type OneBotChannel struct { type OneBotChannel struct {

View file

@ -1,9 +1,9 @@
package pico package pico
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -13,11 +13,11 @@ import (
"github.com/google/uuid" "github.com/google/uuid"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
) )
// picoConn represents a single WebSocket connection. // picoConn represents a single WebSocket connection.

View file

@ -1,9 +1,9 @@
package qq package qq
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -16,11 +16,11 @@ import (
"github.com/tencent-connect/botgo/token" "github.com/tencent-connect/botgo/token"
"golang.org/x/oauth2" "golang.org/x/oauth2"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
) )
const ( const (

View file

@ -3,8 +3,8 @@ package channels
import ( import (
"sync" "sync"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
// ChannelFactory is a constructor function that creates a Channel from config and message bus. // ChannelFactory is a constructor function that creates a Channel from config and message bus.

View file

@ -1,9 +1,9 @@
package slack package slack
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -10,13 +10,13 @@ import (
"github.com/slack-go/slack/slackevents" "github.com/slack-go/slack/slackevents"
"github.com/slack-go/slack/socketmode" "github.com/slack-go/slack/socketmode"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
type SlackChannel struct { type SlackChannel struct {

View file

@ -3,8 +3,8 @@ package slack
import ( import (
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestParseSlackChatID(t *testing.T) { func TestParseSlackChatID(t *testing.T) {

View file

@ -8,8 +8,8 @@ import (
"github.com/mymmrac/telego" "github.com/mymmrac/telego"
"github.com/sipeed/picoclaw/pkg/commands" "jane/pkg/commands"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
) )
var commandRegistrationBackoff = []time.Duration{ var commandRegistrationBackoff = []time.Duration{

View file

@ -7,7 +7,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/sipeed/picoclaw/pkg/commands" "jane/pkg/commands"
) )
func TestStartCommandRegistration_DoesNotBlock(t *testing.T) { func TestStartCommandRegistration_DoesNotBlock(t *testing.T) {

View file

@ -1,9 +1,9 @@
package telegram package telegram
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -15,14 +15,14 @@ import (
th "github.com/mymmrac/telego/telegohandler" th "github.com/mymmrac/telego/telegohandler"
tu "github.com/mymmrac/telego/telegoutil" tu "github.com/mymmrac/telego/telegoutil"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/commands" "jane/pkg/commands"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/media" "jane/pkg/media"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
var ( var (

View file

@ -7,8 +7,8 @@ import (
"github.com/mymmrac/telego" "github.com/mymmrac/telego"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
) )
func TestHandleMessage_DoesNotConsumeGenericCommandsLocally(t *testing.T) { func TestHandleMessage_DoesNotConsumeGenericCommandsLocally(t *testing.T) {

View file

@ -10,9 +10,9 @@ import (
"github.com/mymmrac/telego" "github.com/mymmrac/telego"
ta "github.com/mymmrac/telego/telegoapi" ta "github.com/mymmrac/telego/telegoapi"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
type getMeCaller struct { type getMeCaller struct {

View file

@ -13,8 +13,8 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
) )
const testToken = "1234567890:aaaabbbbaaaabbbbaaaabbbbaaaabbbbccc" const testToken = "1234567890:aaaabbbbaaaabbbbaaaabbbbaaaabbbbccc"

View file

@ -14,12 +14,12 @@ import (
"sync" "sync"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
// WeComAIBotChannel implements the Channel interface for WeCom AI Bot (企业微信智能机器人) // WeComAIBotChannel implements the Channel interface for WeCom AI Bot (企业微信智能机器人)

View file

@ -4,8 +4,8 @@ import (
"context" "context"
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestNewWeComAIBotChannel(t *testing.T) { func TestNewWeComAIBotChannel(t *testing.T) {

View file

@ -16,12 +16,12 @@ import (
"sync" "sync"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
const ( const (

View file

@ -18,8 +18,8 @@ import (
"testing" "testing"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
// generateTestAESKeyApp generates a valid test AES key for WeCom App // generateTestAESKeyApp generates a valid test AES key for WeCom App

View file

@ -11,12 +11,12 @@ import (
"strings" "strings"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
// WeComBotChannel implements the Channel interface for WeCom Bot (企业微信智能机器人) // WeComBotChannel implements the Channel interface for WeCom Bot (企业微信智能机器人)

View file

@ -17,8 +17,8 @@ import (
"strings" "strings"
"testing" "testing"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
// generateTestAESKey generates a valid test AES key // generateTestAESKey generates a valid test AES key

View file

@ -1,9 +1,9 @@
package wecom package wecom
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -1,9 +1,9 @@
package whatsapp package whatsapp
import ( import (
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -9,12 +9,12 @@ import (
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
type WhatsAppChannel struct { type WhatsAppChannel struct {

View file

@ -5,9 +5,9 @@ import (
"testing" "testing"
"time" "time"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestHandleIncomingMessage_DoesNotConsumeGenericCommandsLocally(t *testing.T) { func TestHandleIncomingMessage_DoesNotConsumeGenericCommandsLocally(t *testing.T) {

View file

@ -3,9 +3,9 @@ package whatsapp
import ( import (
"path/filepath" "path/filepath"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func init() { func init() {

View file

@ -12,9 +12,9 @@ import (
"go.mau.fi/whatsmeow/types/events" "go.mau.fi/whatsmeow/types/events"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
func TestHandleIncoming_DoesNotConsumeGenericCommandsLocally(t *testing.T) { func TestHandleIncoming_DoesNotConsumeGenericCommandsLocally(t *testing.T) {

View file

@ -28,12 +28,12 @@ import (
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
_ "modernc.org/sqlite" _ "modernc.org/sqlite"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
"github.com/sipeed/picoclaw/pkg/identity" "jane/pkg/identity"
"github.com/sipeed/picoclaw/pkg/logger" "jane/pkg/logger"
"github.com/sipeed/picoclaw/pkg/utils" "jane/pkg/utils"
) )
const ( const (

View file

@ -5,9 +5,9 @@ package whatsapp
import ( import (
"fmt" "fmt"
"github.com/sipeed/picoclaw/pkg/bus" "jane/pkg/bus"
"github.com/sipeed/picoclaw/pkg/channels" "jane/pkg/channels"
"github.com/sipeed/picoclaw/pkg/config" "jane/pkg/config"
) )
// NewWhatsAppNativeChannel returns an error when the binary was not built with -tags whatsapp_native. // NewWhatsAppNativeChannel returns an error when the binary was not built with -tags whatsapp_native.

View file

@ -1,6 +1,6 @@
package commands package commands
import "github.com/sipeed/picoclaw/pkg/config" import "jane/pkg/config"
// Runtime provides runtime dependencies to command handlers. It is constructed // Runtime provides runtime dependencies to command handlers. It is constructed
// per-request by the agent loop so that per-request state (like session scope) // per-request by the agent loop so that per-request state (like session scope)

Some files were not shown because too many files have changed in this diff Show more