This commit is contained in:
despiegk 2025-05-23 15:11:03 +04:00
parent c86165f88c
commit 92b9c356b8
83 changed files with 450 additions and 810 deletions

11
go.mod
View File

@ -1,4 +1,4 @@
module github.com/freeflowuniverse/heroagent module git.ourworld.tf/herocode/heroagent
go 1.23.0 go 1.23.0
@ -10,12 +10,10 @@ require (
github.com/emersion/go-smtp v0.21.3 github.com/emersion/go-smtp v0.21.3
github.com/emersion/go-webdav v0.6.0 github.com/emersion/go-webdav v0.6.0
github.com/gofiber/fiber/v2 v2.52.6 github.com/gofiber/fiber/v2 v2.52.6
github.com/gofiber/swagger v1.1.1
github.com/gofiber/template/pug/v2 v2.1.8 github.com/gofiber/template/pug/v2 v2.1.8
github.com/knusbaum/go9p v1.18.0 github.com/knusbaum/go9p v1.18.0
github.com/redis/go-redis/v9 v9.7.1 github.com/redis/go-redis/v9 v9.7.1
github.com/shirou/gopsutil/v3 v3.24.5 github.com/shirou/gopsutil/v3 v3.24.5
github.com/stretchr/testify v1.10.0
github.com/tidwall/redcon v1.6.2 github.com/tidwall/redcon v1.6.2
github.com/yuin/goldmark v1.7.8 github.com/yuin/goldmark v1.7.8
golang.org/x/crypto v0.36.0 golang.org/x/crypto v0.36.0
@ -37,7 +35,6 @@ require (
github.com/buger/jsonparser v1.1.1 // indirect github.com/buger/jsonparser v1.1.1 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect github.com/dustin/go-humanize v1.0.1 // indirect
@ -49,7 +46,6 @@ require (
github.com/go-openapi/jsonpointer v0.21.1 // indirect github.com/go-openapi/jsonpointer v0.21.1 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/spec v0.21.0 // indirect github.com/go-openapi/spec v0.21.0 // indirect
github.com/go-openapi/swag v0.23.1 // indirect
github.com/gofiber/template v1.8.3 // indirect github.com/gofiber/template v1.8.3 // indirect
github.com/gofiber/template/jet/v2 v2.1.11 // indirect github.com/gofiber/template/jet/v2 v2.1.11 // indirect
github.com/gofiber/utils v1.1.0 // indirect github.com/gofiber/utils v1.1.0 // indirect
@ -69,9 +65,8 @@ require (
github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mattn/go-sqlite3 v1.14.24 // indirect github.com/mattn/go-sqlite3 v1.14.24 // indirect
github.com/metoro-io/mcp-golang v0.8.0 // indirect github.com/metoro-io/mcp-golang v0.8.0 // indirect
github.com/mholt/archiver/v3 v3.5.1 // indirect
github.com/nwaples/rardecode v1.1.0 // indirect github.com/nwaples/rardecode v1.1.0 // indirect
github.com/openaiproxy/openaiproxy-go v0.1.0-beta.9 // indirect github.com/openai/openai-go v0.1.0-beta.9 // indirect
github.com/pb33f/libopenapi v0.21.8 // indirect github.com/pb33f/libopenapi v0.21.8 // indirect
github.com/pierrec/lz4/v4 v4.1.2 // indirect github.com/pierrec/lz4/v4 v4.1.2 // indirect
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
@ -116,3 +111,5 @@ require (
modernc.org/sqlite v1.23.1 // indirect modernc.org/sqlite v1.23.1 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect
) )
replace github.com/openaiproxy/openaiproxy-go => github.com/sashabaranov/go-openai v1.20.0

351
go.sum
View File

@ -1,351 +0,0 @@
9fans.net/go v0.0.2 h1:RYM6lWITV8oADrwLfdzxmt8ucfW6UtP9v1jg4qAbqts=
9fans.net/go v0.0.2/go.mod h1:lfPdxjq9v8pVQXUMBCx5EO5oLXWQFlKRQgs1kEkjoIM=
github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 h1:sR+/8Yb4slttB4vD+b9btVEnWgL3Q00OBTzVT8B9C0c=
github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno=
github.com/CloudyKit/jet/v6 v6.3.1 h1:6IAo5Cx21xrHVaR8zzXN5gJatKV/wO7Nf6bfCnCSbUw=
github.com/CloudyKit/jet/v6 v6.3.1/go.mod h1:lf8ksdNsxZt7/yH/3n4vJQWA9RUq4wpaHtArHhGVMOw=
github.com/Joker/hpp v1.0.0 h1:65+iuJYdRXv/XyN62C1uEmmOx3432rNG/rKlX6V7Kkc=
github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY=
github.com/Joker/jade v1.1.3 h1:Qbeh12Vq6BxURXT1qZBRHsDxeURB8ztcL6f3EXSGeHk=
github.com/Joker/jade v1.1.3/go.mod h1:T+2WLyt7VH6Lp0TRxQrUYEs64nRc83wkMQrfeIQKduM=
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
github.com/Plan9-Archive/libauth v0.0.0-20180917063427-d1ca9e94969d/go.mod h1:UKp8dv9aeaZoQFWin7eQXtz89iHly1YAFZNn3MCutmQ=
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/purell v1.2.1 h1:QsZ4TjvwiMpat6gBCBxEQI0rcS9ehtkKtSpiUnd9N28=
github.com/PuerkitoBio/purell v1.2.1/go.mod h1:ZwHcC/82TOaovDi//J/804umJFFmbOHPngi8iYYv/Eo=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0=
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/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 h1:iFaUwBSo5Svw6L7HYpRu/0lE3e0BaElwnNO1qkNQxBY=
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5/go.mod h1:qssHWj60/X5sZFNxpG4HBPDHVqxNm4DfnCKgrbZOT+s=
github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY=
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/emersion/go-ical v0.0.0-20240127095438-fc1c9d8fb2b6/go.mod h1:BEksegNspIkjCQfmzWgsgbu6KdeJ/4LwUZs7DMBzjzw=
github.com/emersion/go-imap v1.2.1 h1:+s9ZjMEjOB8NzZMVTM3cCenz2JrQIGGo5j1df19WjTA=
github.com/emersion/go-imap v1.2.1/go.mod h1:Qlx1FSx2FTxjnjWpIlVNEuX+ylerZQNFE5NsmKFSejY=
github.com/emersion/go-message v0.15.0/go.mod h1:wQUEfE+38+7EW8p8aZ96ptg6bAb1iwdgej19uXASlE4=
github.com/emersion/go-message v0.18.2 h1:rl55SQdjd9oJcIoQNhubD2Acs1E6IzlZISRTK7x/Lpg=
github.com/emersion/go-message v0.18.2/go.mod h1:XpJyL70LwRvq2a8rVbHXikPgKj8+aI0kGdHlg16ibYA=
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead h1:fI1Jck0vUrXT8bnphprS1EoVRe2Q5CKCX8iDlpqjQ/Y=
github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
github.com/emersion/go-smtp v0.21.3 h1:7uVwagE8iPYE48WhNsng3RRpCUpFvNl39JGNSIyGVMY=
github.com/emersion/go-smtp v0.21.3/go.mod h1:qm27SGYgoIPRot6ubfQ/GpiPy/g3PaZAVRxiO/sDUgQ=
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U=
github.com/emersion/go-vcard v0.0.0-20230815062825-8fda7d206ec9/go.mod h1:HMJKR5wlh/ziNp+sHEDV2ltblO4JD2+IdDOWtGcQBTM=
github.com/emersion/go-webdav v0.6.0 h1:rbnBUEXvUM2Zk65Him13LwJOBY0ISltgqM5k6T5Lq4w=
github.com/emersion/go-webdav v0.6.0/go.mod h1:mI8iBx3RAODwX7PJJ7qzsKAKs/vY429YfS2/9wKnDbQ=
github.com/fhs/mux9p v0.3.1 h1:x1UswUWZoA9vrA02jfisndCq3xQm+wrQUxUt5N99E08=
github.com/fhs/mux9p v0.3.1/go.mod h1:F4hwdenmit0WDoNVT2VMWlLJrBVCp/8UhzJa7scfjEQ=
github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo=
github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k=
github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GMw=
github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7bWZjOhrgQ=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic=
github.com/go-openapi/jsonpointer v0.21.1/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk=
github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs=
github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M=
github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY=
github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU=
github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0=
github.com/gofiber/fiber/v2 v2.52.6 h1:Rfp+ILPiYSvvVuIPvxrBns+HJp8qGLDnLJawAu27XVI=
github.com/gofiber/fiber/v2 v2.52.6/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
github.com/gofiber/swagger v1.1.1 h1:FZVhVQQ9s1ZKLHL/O0loLh49bYB5l1HEAgxDlcTtkRA=
github.com/gofiber/swagger v1.1.1/go.mod h1:vtvY/sQAMc/lGTUCg0lqmBL7Ht9O7uzChpbvJeJQINw=
github.com/gofiber/template v1.8.3 h1:hzHdvMwMo/T2kouz2pPCA0zGiLCeMnoGsQZBTSYgZxc=
github.com/gofiber/template v1.8.3/go.mod h1:bs/2n0pSNPOkRa5VJ8zTIvedcI/lEYxzV3+YPXdBvq8=
github.com/gofiber/template/jet/v2 v2.1.11 h1:irnR6GeM2SGTdvg7dxFts564a5evApMUKpOn3mt/RNE=
github.com/gofiber/template/jet/v2 v2.1.11/go.mod h1:Kb1oBdrx90oEvP71MDTUB9k+IWRF082Td5OPW7SoUMQ=
github.com/gofiber/template/pug/v2 v2.1.8 h1:SNs0wE96S5P5Ggb54jNOtlP5Qads63gR31PvBBEgNns=
github.com/gofiber/template/pug/v2 v2.1.8/go.mod h1:e0Sg0YBMtC+RQMRm0swaAvqIBDJmhhDIKfFFtQRjvlQ=
github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM=
github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0=
github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw=
github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/go-cmp v0.5.5/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.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
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/hanwen/go-fuse v1.0.0/go.mod h1:unqXarDXqzAk0rt98O2tVndEPIpUgLD9+rwFisZH3Ok=
github.com/hanwen/go-fuse/v2 v2.0.3/go.mod h1:0EQM6aH2ctVpvZ6a+onrQ/vaykxh2GH7hy3e13vzTUY=
github.com/invopop/jsonschema v0.12.0 h1:6ovsNSuvn9wEQVOyc72aycBMVQFKz7cPdMJn10CvzRI=
github.com/invopop/jsonschema v0.12.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE=
github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
github.com/knusbaum/go9p v1.18.0 h1:/Y67RNvNKX1ZV1IOdnO1lIetiF0X+CumOyvEc0011GI=
github.com/knusbaum/go9p v1.18.0/go.mod h1:HtMoJKqZUe1Oqag5uJqG5RKQ9gWPSP+wolsnLLv44r8=
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.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
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/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
github.com/lufia/plan9stats v0.0.0-20231016141302-07b5767bb0ed h1:036IscGBfJsFIgJQzlui7nK1Ncm0tp2ktmPj8xO4N/0=
github.com/lufia/plan9stats v0.0.0-20231016141302-07b5767bb0ed/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
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-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM=
github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/metoro-io/mcp-golang v0.8.0 h1:DkigHa3w7WwMFomcEz5wiMDX94DsvVm/3mCV3d1obnc=
github.com/metoro-io/mcp-golang v0.8.0/go.mod h1:ifLP9ZzKpN1UqFWNTpAHOqSvNkMK6b7d1FSZ5Lu0lN0=
github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Clwo=
github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
github.com/openaiproxy/openaiproxy-go v0.1.0-beta.9 h1:ABpubc5yU/3ejee2GgRrbFta81SG/d7bQbB8mIdP0Xo=
github.com/openaiproxy/openaiproxy-go v0.1.0-beta.9/go.mod h1:g461MYGXEXBVdV5SaR/5tNzNbSfwTBBefwc+LlDCK0Y=
github.com/pb33f/libopenapi v0.21.8 h1:Fi2dAogMwC6av/5n3YIo7aMOGBZH/fBMO4OnzFB3dQA=
github.com/pb33f/libopenapi v0.21.8/go.mod h1:Gc8oQkjr2InxwumK0zOBtKN9gIlv9L2VmSVIUk2YxcU=
github.com/pierrec/lz4/v4 v4.1.2 h1:qvY3YFXRQE/XB8MlLzJH7mSzBs74eA2gg52YTk6jUPM=
github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b h1:0LFwY6Q3gMACTjAbMZBjXAqTOzOwFaj2Ld6cjeQ7Rig=
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
github.com/redis/go-redis/v9 v9.7.1 h1:4LhKRCIduqXqtvCUlaq9c8bdHOkICjDMrr1+Zb3osAc=
github.com/redis/go-redis/v9 v9.7.1/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
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/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
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.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI=
github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk=
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/speakeasy-api/jsonpath v0.6.1 h1:FWbuCEPGaJTVB60NZg2orcYHGZlelbNJAcIk/JGnZvo=
github.com/speakeasy-api/jsonpath v0.6.1/go.mod h1:ymb2iSkyOycmzKwbEAYPJV/yi2rSmvBCLZJcyD+VVWw=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/swaggo/files/v2 v2.0.2 h1:Bq4tgS/yxLB/3nwOMcul5oLEUKa877Ykgz3CJMVbQKU=
github.com/swaggo/files/v2 v2.0.2/go.mod h1:TVqetIzZsO9OhHX1Am9sRf9LdrFZqoK49N37KON/jr0=
github.com/swaggo/swag v1.16.4 h1:clWJtd9LStiG3VeijiCfOVODP6VpHtKdQy9ELFG3s1A=
github.com/swaggo/swag v1.16.4/go.mod h1:VBsHJRsDvfYvqoiMKnsdwhNV9LEMHgEDZcyVYX0sxPg=
github.com/teambition/rrule-go v1.8.2/go.mod h1:Ieq5AbrKGciP1V//Wq8ktsTXwSwJHDD5mD/wLBGl3p4=
github.com/tidwall/btree v1.1.0 h1:5P+9WU8ui5uhmcg3SoPyTwoI0mVyZ1nps7YQzTZFkYM=
github.com/tidwall/btree v1.1.0/go.mod h1:TzIRzen6yHbibdSfK6t8QimqbUnoxUSrZfeW7Uob0q4=
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 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
github.com/tidwall/match v1.1.1/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/redcon v1.6.2 h1:5qfvrrybgtO85jnhSravmkZyC0D+7WstbfCs3MmPhow=
github.com/tidwall/redcon v1.6.2/go.mod h1:p5Wbsgeyi2VSTBWOcA5vRXrOb9arFTcU2+ZzFjqV75Y=
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/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4=
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4=
github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY=
github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/ulikunitz/xz v0.5.9 h1:RsKRIA2MO8x56wkkcd3LbtcE/uMszhb6DpRf+3uwa3I=
github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/urfave/cli/v2 v2.27.6 h1:VdRdS98FNhKZ8/Az8B7MTyGQmpIr36O1EHybx/LaZ4g=
github.com/urfave/cli/v2 v2.27.6/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ=
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.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA=
github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
github.com/wk8/go-ordered-map/v2 v2.1.9-0.20240815153524-6ea36470d1bd h1:dLuIF2kX9c+KknGJUdJi1Il1SDiTSK158/BB9kdgAew=
github.com/wk8/go-ordered-map/v2 v2.1.9-0.20240815153524-6ea36470d1bd/go.mod h1:DbzwytT4g/odXquuOCqroKvtxxldI4nb3nuesHF/Exo=
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo=
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic=
github.com/yuin/goldmark v1.7.8/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
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-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
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.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8=
golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
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.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/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.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/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-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201020230747-6e5568b54d1a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/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-20211019181941-9d821ace8654/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.1.0/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.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
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/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.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
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.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
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.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg=
golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI=
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
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=
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-20200227125254-8fa46927fb4f/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/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
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.0-20200615113413-eeeca48fe776/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=
gorm.io/driver/sqlite v1.5.7 h1:8NvsrhP0ifM7LX9G4zPB97NwovUakUxc+2V2uuf3Z1I=
gorm.io/driver/sqlite v1.5.7/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4=
gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE=
modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM=
modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

View File

@ -11,7 +11,7 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/mycelium_client" "git.ourworld.tf/herocode/heroagent/pkg/mycelium_client"
) )
type config struct { type config struct {

View File

@ -8,7 +8,7 @@ import (
"os" "os"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/mycelium_client" "git.ourworld.tf/herocode/heroagent/pkg/mycelium_client"
) )
func main() { func main() {

View File

@ -14,7 +14,7 @@ Dedupestor is a Go package that provides a key-value store with deduplication ba
```go ```go
import ( import (
"github.com/freeflowuniverse/heroagent/pkg/dedupestor" "git.ourworld.tf/herocode/heroagent/pkg/dedupestor"
) )
// Create a new dedupe store // Create a new dedupe store

View File

@ -7,8 +7,8 @@ import (
"errors" "errors"
"path/filepath" "path/filepath"
"github.com/freeflowuniverse/heroagent/pkg/data/ourdb" "git.ourworld.tf/herocode/heroagent/pkg/data/ourdb"
"github.com/freeflowuniverse/heroagent/pkg/data/radixtree" "git.ourworld.tf/herocode/heroagent/pkg/data/radixtree"
) )
// MaxValueSize is the maximum allowed size for values (1MB) // MaxValueSize is the maximum allowed size for values (1MB)

View File

@ -18,7 +18,7 @@ The DocTree package provides functionality for managing collections of markdown
### Creating a DocTree ### Creating a DocTree
```go ```go
import "github.com/freeflowuniverse/heroagent/pkg/doctree" import "git.ourworld.tf/herocode/heroagent/pkg/doctree"
// Create a new DocTree with a path and name // Create a new DocTree with a path and name
dt, err := doctree.New("/path/to/collection", "My Collection") dt, err := doctree.New("/path/to/collection", "My Collection")

View File

@ -7,7 +7,7 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
) )
// Collection represents a collection of markdown pages and files // Collection represents a collection of markdown pages and files

View File

@ -5,7 +5,7 @@ import (
"context" "context"
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
"github.com/yuin/goldmark" "github.com/yuin/goldmark"
"github.com/yuin/goldmark/extension" "github.com/yuin/goldmark/extension"

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
) )
// Global variable to track the current DocTree instance // Global variable to track the current DocTree instance

View File

@ -34,7 +34,7 @@ import (
"fmt" "fmt"
"log" "log"
"github.com/freeflowuniverse/heroagent/pkg/ourdb" "git.ourworld.tf/herocode/heroagent/pkg/ourdb"
) )
func main() { func main() {
@ -78,7 +78,7 @@ import (
"fmt" "fmt"
"log" "log"
"github.com/freeflowuniverse/heroagent/pkg/ourdb" "git.ourworld.tf/herocode/heroagent/pkg/ourdb"
) )
func main() { func main() {

View File

@ -4,7 +4,7 @@ package radixtree
import ( import (
"errors" "errors"
"github.com/freeflowuniverse/heroagent/pkg/data/ourdb" "git.ourworld.tf/herocode/heroagent/pkg/data/ourdb"
) )
// Node represents a node in the radix tree // Node represents a node in the radix tree

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )
@ -77,7 +77,7 @@ func (h *AdminHandler) getProcessStatsJSON(c *fiber.Ctx) error {
if err != nil { if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"success": false, "success": false,
"error": "Failed to get process stats: " + err.Error(), "error": "Failed to get process stats: " + err.Error(),
}) })
} }

View File

@ -3,7 +3,7 @@ package api
import ( import (
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/sal/executor" "git.ourworld.tf/herocode/heroagent/pkg/sal/executor"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )

View File

@ -7,9 +7,9 @@ import (
"strconv" "strconv"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces/openrpc" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces/openrpc"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )

View File

@ -12,16 +12,16 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/heroagent/api" "git.ourworld.tf/herocode/heroagent/pkg/heroagent/api"
"github.com/freeflowuniverse/heroagent/pkg/heroagent/handlers" "git.ourworld.tf/herocode/heroagent/pkg/heroagent/handlers"
"github.com/freeflowuniverse/heroagent/pkg/heroagent/pages" "git.ourworld.tf/herocode/heroagent/pkg/heroagent/pages"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
"github.com/freeflowuniverse/heroagent/pkg/sal/executor" "git.ourworld.tf/herocode/heroagent/pkg/sal/executor"
"github.com/freeflowuniverse/heroagent/pkg/servers/redisserver" "git.ourworld.tf/herocode/heroagent/pkg/servers/redisserver"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
// "github.com/freeflowuniverse/heroagent/pkg/vfs/interfaces" // "git.ourworld.tf/herocode/heroagent/pkg/vfs/interfaces"
// "github.com/freeflowuniverse/heroagent/pkg/vfs/interfaces/mock" // "git.ourworld.tf/herocode/heroagent/pkg/vfs/interfaces/mock"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors" "github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/fiber/v2/middleware/logger" "github.com/gofiber/fiber/v2/middleware/logger"
@ -239,7 +239,7 @@ func (hl *HeroLauncher) GetUptime() string {
func (hl *HeroLauncher) startProcessManager() error { func (hl *HeroLauncher) startProcessManager() error {
_, filename, _, _ := runtime.Caller(0) _, filename, _, _ := runtime.Caller(0)
projectRoot := filepath.Join(filepath.Dir(filename), "../..") projectRoot := filepath.Join(filepath.Dir(filename), "../..")
processManagerPath := filepath.Join(projectRoot, "cmd/processmanager/main.go") processManagerPath := filepath.Join(projectRoot, "pkg/processmanager/examples/openrpc/main.go")
log.Printf("Starting process manager from: %s", processManagerPath) log.Printf("Starting process manager from: %s", processManagerPath)

View File

@ -5,7 +5,7 @@ import (
"log" "log"
"strconv" // Added strconv for JobID parsing "strconv" // Added strconv for JobID parsing
"github.com/freeflowuniverse/heroagent/pkg/herojobs" "git.ourworld.tf/herocode/heroagent/pkg/herojobs"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )

View File

@ -10,7 +10,7 @@ import (
"net/http/httptest" "net/http/httptest"
"testing" "testing"
"github.com/freeflowuniverse/heroagent/pkg/herojobs" "git.ourworld.tf/herocode/heroagent/pkg/herojobs"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock" "github.com/stretchr/testify/mock"

View File

@ -7,7 +7,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/logger" "git.ourworld.tf/herocode/heroagent/pkg/logger"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )
@ -65,11 +65,11 @@ func NewLogHandler(logPath string) (*LogHandler, error) {
type LogType string type LogType string
const ( const (
LogTypeSystem LogType = "system" LogTypeSystem LogType = "system"
LogTypeService LogType = "service" LogTypeService LogType = "service"
LogTypeJob LogType = "job" LogTypeJob LogType = "job"
LogTypeProcess LogType = "process" LogTypeProcess LogType = "process"
LogTypeAll LogType = "all" // Special type to retrieve logs from all sources LogTypeAll LogType = "all" // Special type to retrieve logs from all sources
) )
// GetLogs renders the logs page with logs content // GetLogs renders the logs page with logs content
@ -90,9 +90,9 @@ func (h *LogHandler) GetLogs(c *fiber.Ctx) error {
// Create search arguments // Create search arguments
searchArgs := logger.SearchArgs{ searchArgs := logger.SearchArgs{
Category: category, Category: category,
LogType: logItemType, LogType: logItemType,
MaxItems: maxItems, MaxItems: maxItems,
} }
if !fromTime.IsZero() { if !fromTime.IsZero() {
@ -135,9 +135,9 @@ func (h *LogHandler) GetLogs(c *fiber.Ctx) error {
// Check if the selected logger is properly initialized // Check if the selected logger is properly initialized
if selectedLogger == nil { if selectedLogger == nil {
return c.Render("admin/system/logs", fiber.Map{ return c.Render("admin/system/logs", fiber.Map{
"title": logTypeTitle, "title": logTypeTitle,
"error": "Logger not initialized", "error": "Logger not initialized",
"logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess}, "logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess},
"selectedLogType": logTypeParam, "selectedLogType": logTypeParam,
}) })
} }
@ -149,14 +149,13 @@ func (h *LogHandler) GetLogs(c *fiber.Ctx) error {
// Handle search error // Handle search error
if err != nil { if err != nil {
return c.Render("admin/system/logs", fiber.Map{ return c.Render("admin/system/logs", fiber.Map{
"title": logTypeTitle, "title": logTypeTitle,
"error": err.Error(), "error": err.Error(),
"logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess}, "logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess},
"selectedLogType": logTypeParam, "selectedLogType": logTypeParam,
}) })
} }
// Calculate total pages // Calculate total pages
totalLogs := len(logs) totalLogs := len(logs)
totalPages := (totalLogs + itemsPerPage - 1) / itemsPerPage totalPages := (totalLogs + itemsPerPage - 1) / itemsPerPage
@ -196,18 +195,18 @@ func (h *LogHandler) GetLogs(c *fiber.Ctx) error {
} }
return c.Render("admin/system/logs", fiber.Map{ return c.Render("admin/system/logs", fiber.Map{
"title": logTypeTitle, "title": logTypeTitle,
"logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess}, "logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess},
"selectedLogType": logTypeParam, "selectedLogType": logTypeParam,
"logs": formattedLogs, "logs": formattedLogs,
"total": totalLogs, "total": totalLogs,
"showing": len(formattedLogs), "showing": len(formattedLogs),
"page": page, "page": page,
"totalPages": totalPages, "totalPages": totalPages,
"categoryParam": category, "categoryParam": category,
"typeParam": c.Query("type", ""), "typeParam": c.Query("type", ""),
"fromParam": c.Query("from", ""), "fromParam": c.Query("from", ""),
"toParam": c.Query("to", ""), "toParam": c.Query("to", ""),
}) })
} }
@ -227,9 +226,9 @@ func (h *LogHandler) GetLogsAPI(c *fiber.Ctx) error {
// Create search arguments // Create search arguments
searchArgs := logger.SearchArgs{ searchArgs := logger.SearchArgs{
Category: category, Category: category,
LogType: logItemType, LogType: logItemType,
MaxItems: maxItems, MaxItems: maxItems,
} }
if !fromTime.IsZero() { if !fromTime.IsZero() {
@ -298,7 +297,7 @@ func (h *LogHandler) GetLogsAPI(c *fiber.Ctx) error {
} }
return c.JSON(fiber.Map{ return c.JSON(fiber.Map{
"logs": response, "logs": response,
"total": len(logs), "total": len(logs),
}) })
} }
@ -323,9 +322,9 @@ func (h *LogHandler) GetLogsFragment(c *fiber.Ctx) error {
// Create search arguments // Create search arguments
searchArgs := logger.SearchArgs{ searchArgs := logger.SearchArgs{
Category: category, Category: category,
LogType: logItemType, LogType: logItemType,
MaxItems: maxItems, MaxItems: maxItems,
} }
if !fromTime.IsZero() { if !fromTime.IsZero() {
@ -368,9 +367,9 @@ func (h *LogHandler) GetLogsFragment(c *fiber.Ctx) error {
// Check if the selected logger is properly initialized // Check if the selected logger is properly initialized
if selectedLogger == nil { if selectedLogger == nil {
return c.Render("admin/system/logs_fragment", fiber.Map{ return c.Render("admin/system/logs_fragment", fiber.Map{
"title": logTypeTitle, "title": logTypeTitle,
"error": "Logger not initialized", "error": "Logger not initialized",
"logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess}, "logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess},
"selectedLogType": logTypeParam, "selectedLogType": logTypeParam,
}) })
} }
@ -382,9 +381,9 @@ func (h *LogHandler) GetLogsFragment(c *fiber.Ctx) error {
// Handle search error // Handle search error
if err != nil { if err != nil {
return c.Render("admin/system/logs_fragment", fiber.Map{ return c.Render("admin/system/logs_fragment", fiber.Map{
"title": logTypeTitle, "title": logTypeTitle,
"error": err.Error(), "error": err.Error(),
"logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess}, "logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess},
"selectedLogType": logTypeParam, "selectedLogType": logTypeParam,
}) })
} }
@ -429,15 +428,15 @@ func (h *LogHandler) GetLogsFragment(c *fiber.Ctx) error {
// Set layout to empty to disable the layout for fragment responses // Set layout to empty to disable the layout for fragment responses
return c.Render("admin/system/logs_fragment", fiber.Map{ return c.Render("admin/system/logs_fragment", fiber.Map{
"title": logTypeTitle, "title": logTypeTitle,
"logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess}, "logTypes": []LogType{LogTypeAll, LogTypeSystem, LogTypeService, LogTypeJob, LogTypeProcess},
"selectedLogType": logTypeParam, "selectedLogType": logTypeParam,
"logs": formattedLogs, "logs": formattedLogs,
"total": totalLogs, "total": totalLogs,
"showing": len(formattedLogs), "showing": len(formattedLogs),
"page": page, "page": page,
"totalPages": totalPages, "totalPages": totalPages,
"layout": "", // Disable layout for partial template "layout": "", // Disable layout for partial template
}) })
} }

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )
@ -43,8 +43,8 @@ func (h *ProcessHandler) GetProcessStatsJSON(c *fiber.Ctx) error {
// Convert to fiber.Map for JSON response // Convert to fiber.Map for JSON response
response := fiber.Map{ response := fiber.Map{
"total": processData.Total, "total": processData.Total,
"filtered": processData.Filtered, "filtered": processData.Filtered,
"timestamp": time.Now().Unix(), "timestamp": time.Now().Unix(),
} }
@ -127,8 +127,8 @@ func (h *ProcessHandler) GetProcessesData(c *fiber.Ctx) error {
// Check if StatsManager is properly initialized // Check if StatsManager is properly initialized
if h.statsManager == nil { if h.statsManager == nil {
return c.Render("admin/system/processes_data", fiber.Map{ return c.Render("admin/system/processes_data", fiber.Map{
"error": "System error: Stats manager not initialized", "error": "System error: Stats manager not initialized",
"layout": "", "layout": "",
}) })
} }
@ -165,8 +165,8 @@ func (h *ProcessHandler) GetProcessesData(c *fiber.Ctx) error {
} }
// For regular requests, render the error within the fragment // For regular requests, render the error within the fragment
return c.Render("admin/system/processes_data", fiber.Map{ return c.Render("admin/system/processes_data", fiber.Map{
"error": "Failed to get process data: " + err.Error(), "error": "Failed to get process data: " + err.Error(),
"layout": "", "layout": "",
}) })
} }
} }
@ -201,5 +201,3 @@ func (h *ProcessHandler) GetProcessesData(c *fiber.Ctx) error {
// Return only the table HTML content directly to be injected into the processes-table-content div // Return only the table HTML content directly to be injected into the processes-table-content div
return c.Render("admin/system/processes_data", templateData) return c.Render("admin/system/processes_data", templateData)
} }

View File

@ -4,8 +4,8 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces/openrpc" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces/openrpc"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )

View File

@ -5,7 +5,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/shirou/gopsutil/v3/host" "github.com/shirou/gopsutil/v3/host"
) )

View File

@ -7,8 +7,8 @@ import (
"strings" "strings"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/heroagent/handlers" "git.ourworld.tf/herocode/heroagent/pkg/heroagent/handlers"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/shirou/gopsutil/v3/host" "github.com/shirou/gopsutil/v3/host"
) )

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"log" "log"
"github.com/freeflowuniverse/heroagent/pkg/herojobs" "git.ourworld.tf/herocode/heroagent/pkg/herojobs"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )

View File

@ -4,14 +4,14 @@ import (
"fmt" "fmt"
"log" "log"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces/openrpc" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces/openrpc"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
) )
// ServiceHandler handles service-related page routes // ServiceHandler handles service-related page routes
type ServiceHandler struct { type ServiceHandler struct {
client *openrpc.Client client *openrpc.Client
logger *log.Logger logger *log.Logger
} }
// NewServiceHandler creates a new service handler with the provided socket path and secret // NewServiceHandler creates a new service handler with the provided socket path and secret

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
) )
// ProcessDisplayInfo represents information about a process for display purposes // ProcessDisplayInfo represents information about a process for display purposes

View File

@ -7,8 +7,8 @@ import (
"path/filepath" "path/filepath"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/data/ourdb" "git.ourworld.tf/herocode/heroagent/pkg/data/ourdb"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
) )
// JobStatus represents the status of a job // JobStatus represents the status of a job

View File

@ -6,7 +6,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )

View File

@ -35,7 +35,7 @@ Key features:
```go ```go
import ( import (
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
// Create a new playbook from HeroScript text // Create a new playbook from HeroScript text

View File

@ -7,7 +7,7 @@ import (
"os/signal" "os/signal"
"syscall" "syscall"
"github.com/freeflowuniverse/heroagent/pkg/handlerfactory/herohandler" "git.ourworld.tf/herocode/heroagent/pkg/handlerfactory/herohandler"
) )
func main() { func main() {

View File

@ -8,7 +8,7 @@ import (
"os" "os"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
func main() { func main() {

View File

@ -3,8 +3,8 @@ package internal
import ( import (
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/handlerfactory" "git.ourworld.tf/herocode/heroagent/pkg/handlerfactory"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlers" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlers"
) )
// ExampleHandler handles example actions // ExampleHandler handles example actions

View File

@ -7,7 +7,7 @@ import (
"os" "os"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/cmd/herohandler/internal" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/cmd/herohandler/internal"
) )
func main() { func main() {

View File

@ -10,7 +10,7 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/handlerfactory/herohandler" "git.ourworld.tf/herocode/heroagent/pkg/handlerfactory/herohandler"
) )
func main() { func main() {

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"log" "log"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
const exampleScript = ` const exampleScript = `

View File

@ -16,7 +16,7 @@ The VM handler example shows how to:
To run the example: To run the example:
```bash ```bash
cd ~/code/github/freeflowuniverse/heroagent/pkg/handlerfactory/cmd/vmhandler cd ~/code/github/freeflowuniverse/herocode/heroagent/pkg/handlerfactory/cmd/vmhandler
go run . tutorial go run . tutorial
#to run just the server do #to run just the server do
go run . go run .

View File

@ -6,7 +6,7 @@ import (
"os" "os"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/handlerfactory" "git.ourworld.tf/herocode/heroagent/pkg/handlerfactory"
) )
// runTutorial runs an interactive tutorial demonstrating the VM handler // runTutorial runs an interactive tutorial demonstrating the VM handler

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/handlerfactory" "git.ourworld.tf/herocode/heroagent/pkg/handlerfactory"
) )
// VMHandler handles VM-related actions // VMHandler handles VM-related actions

View File

@ -8,7 +8,7 @@ import (
"path/filepath" "path/filepath"
"syscall" "syscall"
"github.com/freeflowuniverse/heroagent/pkg/handlerfactory" "git.ourworld.tf/herocode/heroagent/pkg/handlerfactory"
) )
// The tutorial functions are defined in tutorial.go // The tutorial functions are defined in tutorial.go

View File

@ -30,7 +30,7 @@ The Handler Factory exposes two interfaces for communication:
to get started to get started
```bash ```bash
cd /root/code/github/freeflowuniverse/heroagent/pkg/handlerfactory/herohandler/cmd cd /root/code/github/freeflowuniverse/herocode/heroagent/pkg/handlerfactory/herohandler/cmd
go run . go run .
``` ```

View File

@ -5,8 +5,8 @@ import (
"reflect" "reflect"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/paramsparser" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/paramsparser"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
// Handler interface defines methods that all handlers must implement // Handler interface defines methods that all handlers must implement

View File

@ -5,7 +5,7 @@ import (
"reflect" "reflect"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
// HandlerFactory manages a collection of handlers // HandlerFactory manages a collection of handlers

View File

@ -12,7 +12,7 @@ import (
"sync" "sync"
"syscall" "syscall"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
// ANSI color codes for terminal output // ANSI color codes for terminal output
@ -43,23 +43,23 @@ type TelnetServer struct {
sigCh chan os.Signal sigCh chan os.Signal
onShutdown func() onShutdown func()
// Map to store client preferences (like json formatting) // Map to store client preferences (like json formatting)
clientPrefs map[net.Conn]map[string]bool clientPrefs map[net.Conn]map[string]bool
prefsMutex sync.RWMutex prefsMutex sync.RWMutex
} }
// NewTelnetServer creates a new telnet server // NewTelnetServer creates a new telnet server
func NewTelnetServer(factory *HandlerFactory, secrets ...string) *TelnetServer { func NewTelnetServer(factory *HandlerFactory, secrets ...string) *TelnetServer {
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
return &TelnetServer{ return &TelnetServer{
factory: factory, factory: factory,
secrets: secrets, secrets: secrets,
clients: make(map[net.Conn]bool), clients: make(map[net.Conn]bool),
clientPrefs: make(map[net.Conn]map[string]bool), clientPrefs: make(map[net.Conn]map[string]bool),
running: false, running: false,
ctx: ctx, ctx: ctx,
cancel: cancel, cancel: cancel,
sigCh: make(chan os.Signal, 1), sigCh: make(chan os.Signal, 1),
onShutdown: func() {}, onShutdown: func() {},
} }
} }
@ -466,8 +466,6 @@ func (ts *TelnetServer) addJsonFormat(script string) string {
return strings.Join(lines, "\n") return strings.Join(lines, "\n")
} }
// formatHeroscript formats heroscript with colors for console output only // formatHeroscript formats heroscript with colors for console output only
// This is not used for telnet responses, only for server-side logging // This is not used for telnet responses, only for server-side logging
func formatHeroscript(script string) string { func formatHeroscript(script string) string {

View File

@ -3,7 +3,7 @@ package handlers
import ( import (
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/core" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/core"
) )
// AuthHandler handles authentication actions // AuthHandler handles authentication actions

View File

@ -5,9 +5,9 @@ import (
"reflect" "reflect"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/core" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/core"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/paramsparser" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/paramsparser"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
// BaseHandler provides common functionality for all handlers // BaseHandler provides common functionality for all handlers

View File

@ -4,8 +4,8 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/core" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/core"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
// HandlerFactory manages a collection of handlers for processing HeroScript commands // HandlerFactory manages a collection of handlers for processing HeroScript commands

View File

@ -1,7 +1,7 @@
package herohandler package herohandler
import ( import (
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/core" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/core"
) )
// GetFactory returns the handler factory // GetFactory returns the handler factory

View File

@ -4,7 +4,7 @@ import (
"log" "log"
"sync" "sync"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/herohandler" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/herohandler"
) )
func main() { func main() {

View File

@ -4,10 +4,10 @@ import (
"fmt" "fmt"
"log" "log"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/core" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/core"
// "github.com/freeflowuniverse/heroagent/pkg/handlerfactory/heroscript/handlerfactory/fakehandler" // "git.ourworld.tf/herocode/heroagent/pkg/handlerfactory/heroscript/handlerfactory/fakehandler"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/processmanagerhandler" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/processmanagerhandler"
) )
// HeroHandler is the main handler factory that manages all registered handlers // HeroHandler is the main handler factory that manages all registered handlers

View File

@ -3,7 +3,7 @@ package main
import ( import (
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/playbook" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/playbook"
) )
func main() { func main() {

View File

@ -3,8 +3,8 @@ package processmanagerhandler
import ( import (
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/handlerfactory/core" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/handlerfactory/core"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
) )
// ProcessManagerHandler handles process manager-related actions // ProcessManagerHandler handles process manager-related actions

View File

@ -19,7 +19,7 @@ A Go package for parsing and manipulating parameters from text in a key-value fo
```go ```go
import ( import (
"github.com/freeflowuniverse/heroagent/pkg/paramsparser" "git.ourworld.tf/herocode/heroagent/pkg/paramsparser"
) )
// Create a new parser // Create a new parser

View File

@ -4,7 +4,7 @@ package main
import ( import (
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/paramsparser" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/paramsparser"
) )
func main() { func main() {

View File

@ -9,7 +9,7 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
) )
// ParamsParser represents a parameter parser that can handle various parameter sources // ParamsParser represents a parameter parser that can handle various parameter sources

View File

@ -3,8 +3,8 @@ package playbook
import ( import (
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/paramsparser" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/paramsparser"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
) )
// State represents the parser state // State represents the parser state

View File

@ -7,7 +7,7 @@ import (
"sort" "sort"
"strings" "strings"
"github.com/freeflowuniverse/heroagent/pkg/heroscript/paramsparser" "git.ourworld.tf/herocode/heroagent/pkg/heroscript/paramsparser"
) )
// ActionType represents the type of action // ActionType represents the type of action

View File

@ -11,7 +11,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/heroservices/billing/models" "git.ourworld.tf/herocode/heroagent/pkg/heroservices/billing/models"
) )
const ( const (

View File

@ -7,9 +7,9 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/freeflowuniverse/heroagent/pkg/data/ourdb" "git.ourworld.tf/herocode/heroagent/pkg/data/ourdb"
"github.com/freeflowuniverse/heroagent/pkg/data/radixtree" "git.ourworld.tf/herocode/heroagent/pkg/data/radixtree"
"github.com/freeflowuniverse/heroagent/pkg/tools" "git.ourworld.tf/herocode/heroagent/pkg/tools"
) )
// DBStore represents the central database store for all models // DBStore represents the central database store for all models

View File

@ -9,8 +9,7 @@ import (
"syscall" "syscall"
"time" "time"
openaiproxy "github.com/freeflowuniverse/heroagent/pkg/heroservices/openaiproxy" openaiproxy "git.ourworld.tf/herocode/heroagent/pkg/heroservices/openaiproxy"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option" "github.com/openai/openai-go/option"
) )

View File

@ -10,7 +10,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/jobsmanager" "git.ourworld.tf/herocode/heroagent/pkg/jobsmanager"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger" "github.com/gofiber/fiber/v2/middleware/logger"
) )

View File

@ -6,7 +6,7 @@ import (
"path/filepath" "path/filepath"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/logger" "git.ourworld.tf/herocode/heroagent/pkg/logger"
) )
func main() { func main() {

View File

@ -5,8 +5,8 @@ import (
"log" "log"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces/openrpc" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces/openrpc"
) )
// RunClientExample runs a complete example of using the process manager OpenRPC client // RunClientExample runs a complete example of using the process manager OpenRPC client

View File

@ -7,7 +7,7 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces/openrpc" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces/openrpc"
) )
func main() { func main() {

View File

@ -6,8 +6,8 @@ import (
"sync" "sync"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
) )
// MockProcessManager implements the interfaces.ProcessManagerInterface for testing purposes // MockProcessManager implements the interfaces.ProcessManagerInterface for testing purposes

View File

@ -4,8 +4,8 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/openrpcmanager/client" "git.ourworld.tf/herocode/heroagent/pkg/openrpcmanager/client"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
) )
// Client provides a client for interacting with process manager operations via RPC // Client provides a client for interacting with process manager operations via RPC

View File

@ -4,9 +4,9 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/freeflowuniverse/heroagent/pkg/openrpcmanager" "git.ourworld.tf/herocode/heroagent/pkg/openrpcmanager"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
) )
// Handler implements the OpenRPC handlers for process manager operations // Handler implements the OpenRPC handlers for process manager operations

View File

@ -6,8 +6,8 @@ import (
"testing" "testing"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )

View File

@ -7,7 +7,7 @@ import (
"path/filepath" "path/filepath"
"runtime" "runtime"
"github.com/freeflowuniverse/heroagent/pkg/openrpcmanager" "git.ourworld.tf/herocode/heroagent/pkg/openrpcmanager"
) )
// LoadSchema loads the OpenRPC schema from the embedded JSON file // LoadSchema loads the OpenRPC schema from the embedded JSON file

View File

@ -6,8 +6,8 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/freeflowuniverse/heroagent/pkg/openrpcmanager" "git.ourworld.tf/herocode/heroagent/pkg/openrpcmanager"
"github.com/freeflowuniverse/heroagent/pkg/processmanager/interfaces" "git.ourworld.tf/herocode/heroagent/pkg/processmanager/interfaces"
) )
// Server represents the Process Manager OpenRPC server // Server represents the Process Manager OpenRPC server

View File

@ -3,7 +3,7 @@ package interfaces
import ( import (
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/processmanager" "git.ourworld.tf/herocode/heroagent/pkg/processmanager"
) )
// ProcessManagerInterface defines the interface for process management operations // ProcessManagerInterface defines the interface for process management operations

View File

@ -14,7 +14,7 @@ import (
"time" "time"
"unicode" "unicode"
"github.com/freeflowuniverse/heroagent/pkg/logger" "git.ourworld.tf/herocode/heroagent/pkg/logger"
"github.com/shirou/gopsutil/v3/process" "github.com/shirou/gopsutil/v3/process"
) )

View File

@ -24,7 +24,7 @@ The server implements the following Redis commands:
### Basic Usage ### Basic Usage
```go ```go
import "github.com/freeflowuniverse/heroagent/pkg/redisserver" import "git.ourworld.tf/herocode/heroagent/pkg/redisserver"
// Create a new server with default configuration // Create a new server with default configuration
server := redisserver.NewServer(redisserver.ServerConfig{ server := redisserver.NewServer(redisserver.ServerConfig{

View File

@ -10,7 +10,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/servers/redisserver" "git.ourworld.tf/herocode/heroagent/pkg/servers/redisserver"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )

View File

@ -10,7 +10,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/servers/redisserver" "git.ourworld.tf/herocode/heroagent/pkg/servers/redisserver"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )

View File

@ -5,7 +5,7 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/freeflowuniverse/heroagent/pkg/system/builders/hetznerinstall" "git.ourworld.tf/herocode/heroagent/pkg/system/builders/hetznerinstall"
) )
func main() { func main() {

View File

@ -6,10 +6,10 @@ import (
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"github.com/freeflowuniverse/heroagent/pkg/system/builders/postgresql/dependencies" "git.ourworld.tf/herocode/heroagent/pkg/system/builders/postgresql/dependencies"
"github.com/freeflowuniverse/heroagent/pkg/system/builders/postgresql/gosp" "git.ourworld.tf/herocode/heroagent/pkg/system/builders/postgresql/gosp"
"github.com/freeflowuniverse/heroagent/pkg/system/builders/postgresql/postgres" "git.ourworld.tf/herocode/heroagent/pkg/system/builders/postgresql/postgres"
"github.com/freeflowuniverse/heroagent/pkg/system/builders/postgresql/verification" "git.ourworld.tf/herocode/heroagent/pkg/system/builders/postgresql/verification"
) )
// Constants for PostgreSQL installation // Constants for PostgreSQL installation

View File

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/freeflowuniverse/heroagent/pkg/system/builders/postgresql" "git.ourworld.tf/herocode/heroagent/pkg/system/builders/postgresql"
) )
func main() { func main() {

View File

@ -6,7 +6,7 @@ import (
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"github.com/freeflowuniverse/heroagent/pkg/system/builders/postgresql/postgres" "git.ourworld.tf/herocode/heroagent/pkg/system/builders/postgresql/postgres"
) )
// Constants for Go stored procedure // Constants for Go stored procedure
@ -49,7 +49,7 @@ func (b *GoSPBuilder) run(cmd string, args ...string) error {
c.Env = append(os.Environ(), c.Env = append(os.Environ(),
"GOROOT=/usr/local/go", "GOROOT=/usr/local/go",
"GOPATH=/root/go", "GOPATH=/root/go",
"PATH=/usr/local/go/bin:" + os.Getenv("PATH")) "PATH=/usr/local/go/bin:"+os.Getenv("PATH"))
c.Stdout = os.Stdout c.Stdout = os.Stdout
c.Stderr = os.Stderr c.Stderr = os.Stderr
return c.Run() return c.Run()

View File

@ -8,7 +8,7 @@ import (
"runtime" "runtime"
"strings" "strings"
"github.com/mholt/archiver/v3" "github.com/mholt/archiver/v4"
) )
const ( const (

View File

@ -8,7 +8,7 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
) )
func main() { func main() {
@ -18,11 +18,11 @@ func main() {
// Create a new stats manager with Redis connection // Create a new stats manager with Redis connection
// Create a custom configuration // Create a custom configuration
config := &stats.Config{ config := &stats.Config{
RedisAddr: "localhost:6379", RedisAddr: "localhost:6379",
RedisPassword: "", RedisPassword: "",
RedisDB: 0, RedisDB: 0,
Debug: false, Debug: false,
QueueSize: 100, QueueSize: 100,
DefaultTimeout: 5 * time.Second, DefaultTimeout: 5 * time.Second,
ExpirationTimes: map[string]time.Duration{ ExpirationTimes: map[string]time.Duration{
"system": 60 * time.Second, // System info expires after 60 seconds "system": 60 * time.Second, // System info expires after 60 seconds

View File

@ -11,27 +11,27 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
"github.com/shirou/gopsutil/v3/cpu" "github.com/shirou/gopsutil/v3/cpu"
"github.com/shirou/gopsutil/v3/process" "github.com/shirou/gopsutil/v3/process"
) )
// TestResult stores the results of a single test run // TestResult stores the results of a single test run
type TestResult struct { type TestResult struct {
StartTime time.Time StartTime time.Time
EndTime time.Time EndTime time.Time
SystemInfoTime time.Duration SystemInfoTime time.Duration
DiskStatsTime time.Duration DiskStatsTime time.Duration
ProcessTime time.Duration ProcessTime time.Duration
NetworkTime time.Duration NetworkTime time.Duration
HardwareTime time.Duration HardwareTime time.Duration
TotalTime time.Duration TotalTime time.Duration
UserCPU float64 UserCPU float64
SystemCPU float64 SystemCPU float64
TotalCPU float64 TotalCPU float64
OverallCPU float64 OverallCPU float64
MemoryUsageMB float32 MemoryUsageMB float32
NumGoroutines int NumGoroutines int
} }
func main() { func main() {
@ -66,11 +66,11 @@ func main() {
// Create a new stats manager with Redis connection // Create a new stats manager with Redis connection
config := &stats.Config{ config := &stats.Config{
RedisAddr: "localhost:6379", RedisAddr: "localhost:6379",
RedisPassword: "", RedisPassword: "",
RedisDB: 0, RedisDB: 0,
Debug: false, Debug: false,
QueueSize: 100, QueueSize: 100,
DefaultTimeout: 5 * time.Second, DefaultTimeout: 5 * time.Second,
ExpirationTimes: map[string]time.Duration{ ExpirationTimes: map[string]time.Duration{
"system": 60 * time.Second, // System info expires after 60 seconds "system": 60 * time.Second, // System info expires after 60 seconds

View File

@ -6,7 +6,7 @@ import (
"os" "os"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )

View File

@ -6,7 +6,7 @@ import (
"os" "os"
"time" "time"
"github.com/freeflowuniverse/heroagent/pkg/system/stats" "git.ourworld.tf/herocode/heroagent/pkg/system/stats"
) )
func main() { func main() {
@ -15,18 +15,18 @@ func main() {
// Create a new stats manager with Redis connection // Create a new stats manager with Redis connection
config := &stats.Config{ config := &stats.Config{
RedisAddr: "localhost:6379", RedisAddr: "localhost:6379",
RedisPassword: "", RedisPassword: "",
RedisDB: 0, RedisDB: 0,
Debug: false, Debug: false,
QueueSize: 100, QueueSize: 100,
DefaultTimeout: 5 * time.Second, DefaultTimeout: 5 * time.Second,
ExpirationTimes: map[string]time.Duration{ ExpirationTimes: map[string]time.Duration{
"system": 30 * time.Second, // System info expires after 30 seconds "system": 30 * time.Second, // System info expires after 30 seconds
"disk": 60 * time.Second, // Disk info expires after 1 minute "disk": 60 * time.Second, // Disk info expires after 1 minute
"process": 15 * time.Second, // Process info expires after 15 seconds "process": 15 * time.Second, // Process info expires after 15 seconds
"network": 20 * time.Second, // Network info expires after 20 seconds "network": 20 * time.Second, // Network info expires after 20 seconds
"hardware": 60 * time.Second, // Hardware stats expire after 1 minute "hardware": 60 * time.Second, // Hardware stats expire after 1 minute
}, },
} }