diff --git a/.github/workflows/checkproto.yaml b/.github/workflows/checkproto.yaml index f60f0c0f..5d6ad08d 100644 --- a/.github/workflows/checkproto.yaml +++ b/.github/workflows/checkproto.yaml @@ -48,7 +48,7 @@ jobs: # Add protoc to the PATH export PATH=$PATH:/usr/local/bin/protoc - - name: Set up Mainflux + - name: Set up Cocos-AI run: | # Rename .pb.go files to .pb.go.tmp to prevent conflicts for p in $(ls manager/*.pb.go); do diff --git a/.gitignore b/.gitignore index c550c845..343e6bb2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ build cmd/manager/img cmd/manager/iso cmd/manager/tmp + +.cov diff --git a/Makefile b/Makefile index 26c81980..66a968d7 100644 --- a/Makefile +++ b/Makefile @@ -8,13 +8,19 @@ TIME ?= $(shell date +%F_%T) CLI_SOURCE = ./cmd/cli/main.go CLI_BIN = ${BUILD_DIR}/cocos-cli +USER_REPO ?= $(shell git remote get-url origin | sed -e 's/.*\/\([^/]*\)\/\([^/]*\).*/\1_\2/' ) +empty:= +space:= $(empty) $(empty) +# Docker compose project name should follow this guidelines: https://docs.docker.com/compose/reference/#use--p-to-specify-a-project-name +DOCKER_PROJECT ?= $(shell echo $(subst $(space),,$(USER_REPO)) | tr -c -s '[:alnum:][=-=]' '_' | tr '[:upper:]' '[:lower:]') +DOCKER_PROFILE ?= $(if $(COCOS_MESSAGE_BROKER_TYPE),$(COCOS_MESSAGE_BROKER_TYPE),nats) define compile_service CGO_ENABLED=$(CGO_ENABLED) GOOS=$(GOOS) GOARCH=$(GOARCH) GOARM=$(GOARM) \ - go build -ldflags "-s -w \ - -X 'github.com/mainflux/mainflux.BuildTime=$(TIME)' \ - -X 'github.com/mainflux/mainflux.Version=$(VERSION)' \ - -X 'github.com/mainflux/mainflux.Commit=$(COMMIT)'" \ + go build -tags $(DOCKER_PROFILE) -ldflags "-s -w \ + -X 'github.com/absmach/magistrala.BuildTime=$(TIME)' \ + -X 'github.com/absmach/magistrala.Version=$(VERSION)' \ + -X 'github.com/absmach/magistrala.Commit=$(COMMIT)'" \ -o ${BUILD_DIR}/cocos-$(1) cmd/$(1)/main.go endef @@ -30,3 +36,26 @@ install-cli: cli protoc: protoc -I. --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative agent/agent.proto + +define edit_docker_config + sed -i "s/COCOS_MESSAGE_BROKER_TYPE=.*/COCOS_MESSAGE_BROKER_TYPE=$(1)/" docker/.env + sed -i "s,file: .*.yml,file: $(1).yml," docker/brokers/docker-compose.yml + sed -i "s,COCOS_MESSAGE_BROKER_URL=.*,COCOS_MESSAGE_BROKER_URL=$$\{COCOS_$(shell echo ${DOCKER_PROFILE} | tr 'a-z' 'A-Z')_URL\}," docker/.env +endef + +change_config: +ifeq ($(DOCKER_PROFILE),nats) + sed -i "s/- broker/- nats/g" docker/docker-compose.yml + sed -i "s,COCOS_NATS_URL=.*,COCOS_NATS_URL=nats://nats:$$\{COCOS_NATS_PORT}," docker/.env + $(call edit_docker_config,nats) +else ifeq ($(DOCKER_PROFILE),rabbitmq) + sed -i "s/nats/broker/g" docker/docker-compose.yml + sed -i "s/rabbitmq/broker/g" docker/docker-compose.yml + $(call edit_docker_config,rabbitmq) +else + $(error Invalid DOCKER_PROFILE $(DOCKER_PROFILE)) +endif + +run: change_config + docker compose -f docker/docker-compose.yml --profile $(DOCKER_PROFILE) -p $(DOCKER_PROJECT) up + diff --git a/agent/agent.pb.go b/agent/agent.pb.go index 8a53d7da..f0bffd45 100644 --- a/agent/agent.pb.go +++ b/agent/agent.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.24.3 +// protoc v4.24.4 // source: agent/agent.proto package agent diff --git a/agent/agent_grpc.pb.go b/agent/agent_grpc.pb.go index 5a292cf1..7e100a04 100644 --- a/agent/agent_grpc.pb.go +++ b/agent/agent_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.24.3 +// - protoc v4.24.4 // source: agent/agent.proto package agent diff --git a/agent/api/logging.go b/agent/api/logging.go index f1a1673f..00f4d6ca 100644 --- a/agent/api/logging.go +++ b/agent/api/logging.go @@ -11,7 +11,7 @@ import ( "fmt" "time" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" "github.com/ultravioletrs/cocos-ai/agent" ) diff --git a/agent/doc.go b/agent/doc.go index 52b523b7..fd4d985f 100644 --- a/agent/doc.go +++ b/agent/doc.go @@ -1,7 +1,4 @@ // Copyright (c) Ultraviolet // SPDX-License-Identifier: Apache-2.0 -// Package things contains the domain concept definitions needed to support -// Mainflux agent service functionality. - package agent diff --git a/agent/service.go b/agent/service.go index ed02dee5..8a1598bd 100644 --- a/agent/service.go +++ b/agent/service.go @@ -14,7 +14,8 @@ import ( "slices" "time" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" + "github.com/absmach/magistrala/pkg/messaging" "github.com/ultravioletrs/cocos-ai/pkg/socket" ) @@ -61,22 +62,31 @@ type agentService struct { attestation []byte sm *StateMachine runError error + publisher messaging.Publisher } const ( - socketPath = "unix_socket" - pyRuntime = "python3" + socketPath = "unix_socket" + pyRuntime = "python3" + notificationTopic = "agent" ) var _ Service = (*agentService)(nil) // New instantiates the agent service implementation. -func New(ctx context.Context, logger logger.Logger) Service { +func New(ctx context.Context, logger logger.Logger, publisher messaging.Publisher) Service { svc := &agentService{ - sm: NewStateMachine(logger), + sm: NewStateMachine(logger), + publisher: publisher, } go svc.sm.Start(ctx) svc.sm.SendEvent(start) + svc.sm.StateFunctions[idle] = svc.publishEvent(ctx, "idle", "agent has started") + svc.sm.StateFunctions[receivingManifests] = svc.publishEvent(ctx, "run", "agent ready to receive manifests") + svc.sm.StateFunctions[receivingAlgorithms] = svc.publishEvent(ctx, "algorithms", "agent is ready to receiving algorithms") + svc.sm.StateFunctions[receivingData] = svc.publishEvent(ctx, "datasets", "agent is ready to receiving datasets") + svc.sm.StateFunctions[resultsReady] = svc.publishEvent(ctx, "results", "agent computation results are ready") + svc.sm.StateFunctions[complete] = svc.publishEvent(ctx, "complete", "agent results have been consumed") svc.sm.StateFunctions[running] = svc.runComputation return svc } @@ -197,10 +207,11 @@ func (as *agentService) Attestation(ctx context.Context) ([]byte, error) { } func (as *agentService) runComputation() { + ctx := context.Background() + as.publishEvent(ctx, "running", "computation run has started")() as.sm.logger.Debug("computation run started") defer as.sm.SendEvent(runComplete) var cancel context.CancelFunc - ctx := context.Background() if as.computation.Timeout.Duration != 0 { ctx, cancel = context.WithDeadline(ctx, <-time.After(as.computation.Timeout.Duration)) defer cancel() @@ -213,6 +224,17 @@ func (as *agentService) runComputation() { as.result = result } +func (as *agentService) publishEvent(ctx context.Context, subtopic, body string) func() { + return func() { + if err := as.publisher.Publish(ctx, notificationTopic, &messaging.Message{ + Subtopic: subtopic, + Payload: []byte(body), + }); err != nil { + as.sm.logger.Warn(err.Error()) + } + } +} + func run(ctx context.Context, algoContent []byte, dataContent []byte) ([]byte, error) { listener, err := socket.StartUnixSocketServer(socketPath) if err != nil { diff --git a/agent/state.go b/agent/state.go index 6cc9d7bc..f18ea1cd 100644 --- a/agent/state.go +++ b/agent/state.go @@ -7,7 +7,7 @@ import ( "fmt" "sync" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" ) type state int diff --git a/agent/state_test.go b/agent/state_test.go index 1b446754..5f54701b 100644 --- a/agent/state_test.go +++ b/agent/state_test.go @@ -7,7 +7,7 @@ import ( "fmt" "testing" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" ) func TestStateMachineTransitions(t *testing.T) { diff --git a/agent/tracing/doc.go b/agent/tracing/doc.go index c0e59001..cae33225 100644 --- a/agent/tracing/doc.go +++ b/agent/tracing/doc.go @@ -5,8 +5,5 @@ // // This package provides tracing middleware for cocos auth service. // It can be used to trace incoming requests and add tracing capabilities to -// cocos auth service. -// -// For more details about tracing instrumentation refer -// to the documentation at https://docs.mainflux.io/tracing/. +// cocos agent service. package tracing diff --git a/cmd/agent/main.go b/cmd/agent/main.go index 88b12c07..1e73266a 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -8,8 +8,10 @@ import ( "log" "os" - mflog "github.com/mainflux/mainflux/logger" - "github.com/mainflux/mainflux/pkg/uuid" + mflog "github.com/absmach/magistrala/logger" + "github.com/absmach/magistrala/pkg/messaging" + "github.com/absmach/magistrala/pkg/messaging/brokers" + "github.com/absmach/magistrala/pkg/uuid" "github.com/ultravioletrs/cocos-ai/agent" "github.com/ultravioletrs/cocos-ai/agent/api" agentgrpc "github.com/ultravioletrs/cocos-ai/agent/api/grpc" @@ -34,9 +36,10 @@ const ( ) type config struct { - LogLevel string `env:"AGENT_LOG_LEVEL" envDefault:"info"` - JaegerURL string `env:"AGENT_JAEGER_URL" envDefault:"http://localhost::4318/v1/traces"` - InstanceID string `env:"AGENT_INSTANCE_ID" envDefault:""` + LogLevel string `env:"AGENT_LOG_LEVEL" envDefault:"info"` + JaegerURL string `env:"COCOS_JAEGER_URL" envDefault:"http://localhost::4318/v1/traces"` + InstanceID string `env:"AGENT_INSTANCE_ID" envDefault:""` + BrokerURL string `env:"COCOS_MESSAGE_BROKER_URL" envDefault:"nats://localhost:4222"` } func main() { @@ -71,7 +74,13 @@ func main() { }() tracer := tp.Tracer(svcName) - svc := newService(ctx, logger, tracer) + pub, err := brokers.NewPublisher(ctx, cfg.BrokerURL) + if err != nil { + logger.Error(err.Error()) + return + } + + svc := newService(ctx, logger, tracer, pub) httpServerConfig := server.Config{Port: defSvcHTTPPort} if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHTTP}); err != nil { @@ -102,8 +111,8 @@ func main() { } } -func newService(ctx context.Context, logger mflog.Logger, tracer trace.Tracer) agent.Service { - svc := agent.New(ctx, logger) +func newService(ctx context.Context, logger mflog.Logger, tracer trace.Tracer, publisher messaging.Publisher) agent.Service { + svc := agent.New(ctx, logger, publisher) svc = api.LoggingMiddleware(svc, logger) counter, latency := internal.MakeMetrics(svcName, "api") diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 181252ee..11f565ef 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -7,7 +7,7 @@ import ( "log" "os" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" "github.com/spf13/cobra" "github.com/spf13/pflag" "github.com/ultravioletrs/cocos-ai/cli" diff --git a/cmd/manager/main.go b/cmd/manager/main.go index 5082a26c..ba70d7d5 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -10,8 +10,9 @@ import ( "os" "strings" - "github.com/mainflux/mainflux/logger" - "github.com/mainflux/mainflux/pkg/uuid" + "github.com/absmach/magistrala/logger" + "github.com/absmach/magistrala/pkg/messaging/brokers" + "github.com/absmach/magistrala/pkg/uuid" "github.com/ultravioletrs/cocos-ai/agent" "github.com/ultravioletrs/cocos-ai/internal" "github.com/ultravioletrs/cocos-ai/internal/env" @@ -44,9 +45,10 @@ const ( ) type config struct { - LogLevel string `env:"MANAGER_LOG_LEVEL" envDefault:"info"` - JaegerURL string `env:"MANAGER_JAEGER_URL" envDefault:"http://localhost:4318/v1/traces"` - InstanceID string `env:"MANAGER_INSTANCE_ID" envDefault:""` + LogLevel string `env:"MANAGER_LOG_LEVEL" envDefault:"info"` + JaegerURL string `env:"COCOS_JAEGER_URL" envDefault:"http://localhost:4318/v1/traces"` + InstanceID string `env:"MANAGER_INSTANCE_ID" envDefault:""` + BrokerURL string `env:"COCOS_MESSAGE_BROKER_URL" envDefault:"nats://localhost:4222"` } func main() { @@ -103,6 +105,14 @@ func main() { } logger.Info(fmt.Sprintf("%s %s", exe, strings.Join(args, " "))) + pubsub, err := brokers.NewPubSub(ctx, cfg.BrokerURL, logger) + if err != nil { + logger.Fatal(err.Error()) + } + if err := manager.NewAgentEventNotifier(ctx, pubsub, logger); err != nil { + logger.Fatal(err.Error()) + } + svc := newService(agentClient, logger, tracer, qemuCfg) httpServerConfig := server.Config{Port: defSvcHTTPPort} diff --git a/docker/.env b/docker/.env new file mode 100644 index 00000000..8c297a4c --- /dev/null +++ b/docker/.env @@ -0,0 +1,33 @@ +# Docker: Environment variables in Compose + +## Nats +COCOS_NATS_PORT=4222 +COCOS_NATS_HTTP_PORT=8222 +COCOS_NATS_JETSTREAM_KEY=u7wFoAPgXpDueXOFldBnXDh4xjnSOyEJ2Cb8Z5SZvGLzIZ3U4exWhhoIBZHzuNvh +COCOS_NATS_URL=nats://nats:${COCOS_NATS_PORT} + +## RabbitMQ +COCOS_RABBITMQ_PORT=5672 +COCOS_RABBITMQ_HTTP_PORT=15672 +COCOS_RABBITMQ_USER=cocos +COCOS_RABBITMQ_PASS=cocos +COCOS_RABBITMQ_COOKIE=cocos +COCOS_RABBITMQ_VHOST=/ +COCOS_RABBITMQ_URL=amqp://${COCOS_RABBITMQ_USER}:${COCOS_RABBITMQ_PASS}@broker:${COCOS_RABBITMQ_PORT}${COCOS_RABBITMQ_VHOST} + +## Message Broker +COCOS_MESSAGE_BROKER_TYPE=nats +COCOS_MESSAGE_BROKER_URL=${COCOS_NATS_URL} + +## Jaeger +COCOS_JAEGER_PORT=6831 +COCOS_JAEGER_FRONTEND=16686 +COCOS_JAEGER_COLLECTOR=14268 +COCOS_JAEGER_CONFIGS=5778 +COCOS_JAEGER_URL=http://jaeger:14268/api/traces +COCOS_JAEGER_TRACE_RATIO=1.0 + +## Core Services + +# Docker image tag +COCOS_RELEASE_TAG=latest diff --git a/docker/brokers/README.md b/docker/brokers/README.md new file mode 100644 index 00000000..511e5445 --- /dev/null +++ b/docker/brokers/README.md @@ -0,0 +1,28 @@ +# Brokers Docker Compose + +Cocos supports configurable Message broker. + +## Message Broker + +Magistrala supports NATS and RabbitMQ as a message broker. + +## Profiles + +This directory contains 2 docker-compose profiles for running Magistrala with different message brokers. + +The profiles are: + +- `nats` - Nats as a message broker +- `rabbitmq` - RabbitMQ as a message broker + +The following command will run Nats as a message broker: + +```bash +MG_MESSAGE_BROKER_TYPE=nats make run +``` + +The following command will run RabbitMQ as a message broker: + +```bash +MG_MESSAGE_BROKER_TYPE=rabbitmq make run +``` diff --git a/docker/brokers/docker-compose.yml b/docker/brokers/docker-compose.yml new file mode 100644 index 00000000..8a72d79e --- /dev/null +++ b/docker/brokers/docker-compose.yml @@ -0,0 +1,22 @@ +# This file configures COCOS brokers. +# MESSAGE_BROKER can be either 'nats' or 'rabbitmq'. +# +# Each broker has a unique profile for configuration. The available profiles are: +# - nats: Uses 'nats' as MESSAGE_BROKER. +# - rabbitmq: Uses 'rabbitmq' as MESSAGE_BROKER. +# + +services: + broker: + extends: + file: nats.yml + service: broker + container_name: cocos-broker + restart: on-failure + networks: + - cocos-base-net + volumes: + - cocos-broker-volume:/data + profiles: + - rabbitmq + - nats \ No newline at end of file diff --git a/docker/brokers/nats.yml b/docker/brokers/nats.yml new file mode 100644 index 00000000..d025243d --- /dev/null +++ b/docker/brokers/nats.yml @@ -0,0 +1,13 @@ +services: + broker: + image: nats:2.9.21-alpine + command: "--config=/etc/nats/nats.conf" + volumes: + - ./../nats/:/etc/nats + environment: + - COCOS_NATS_PORT=${COCOS_NATS_PORT} + - COCOS_NATS_HTTP_PORT=${COCOS_NATS_HTTP_PORT} + - COCOS_NATS_JETSTREAM_KEY=${COCOS_NATS_JETSTREAM_KEY} + ports: + - ${COCOS_NATS_PORT}:${COCOS_NATS_PORT} + - ${COCOS_NATS_HTTP_PORT}:${COCOS_NATS_HTTP_PORT} \ No newline at end of file diff --git a/docker/brokers/rabbitmq.yml b/docker/brokers/rabbitmq.yml new file mode 100644 index 00000000..8b0ee5e7 --- /dev/null +++ b/docker/brokers/rabbitmq.yml @@ -0,0 +1,11 @@ +services: + broker: + image: rabbitmq:3.9.20-management-alpine + environment: + RABBITMQ_ERLANG_COOKIE: ${COCOS_RABBITMQ_COOKIE} + RABBITMQ_DEFAULT_USER: ${COCOS_RABBITMQ_USER} + RABBITMQ_DEFAULT_PASS: ${COCOS_RABBITMQ_PASS} + RABBITMQ_DEFAULT_VHOST: ${COCOS_RABBITMQ_VHOST} + ports: + - ${COCOS_RABBITMQ_PORT}:${COCOS_RABBITMQ_PORT} + - ${COCOS_RABBITMQ_HTTP_PORT}:${COCOS_RABBITMQ_HTTP_PORT} diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 00000000..ac040f2a --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.7" +name: "cocos" + +networks: + cocos-base-net: + driver: bridge + +volumes: + cocos-broker-volume: + +include: + - path: brokers/docker-compose.yml + env_file: docker/.env + +services: + jaeger: + image: jaegertracing/all-in-one:1.38.0 + container_name: cocos-jaeger + ports: + - ${COCOS_JAEGER_PORT}:${COCOS_JAEGER_PORT}/udp + - ${COCOS_JAEGER_FRONTEND}:${COCOS_JAEGER_FRONTEND} + - ${COCOS_JAEGER_COLLECTOR}:${COCOS_JAEGER_COLLECTOR} + - ${COCOS_JAEGER_CONFIGS}:${COCOS_JAEGER_CONFIGS} + networks: + - cocos-base-net diff --git a/docker/nats/nats.conf b/docker/nats/nats.conf new file mode 100644 index 00000000..99af654c --- /dev/null +++ b/docker/nats/nats.conf @@ -0,0 +1,13 @@ +server_name: "nats_internal_broker" +max_payload: 1MB +max_connections: 1M +port: $COCOS_NATS_PORT +http_port: $COCOS_NATS_HTTP_PORT +trace: true + +jetstream { + store_dir: "/data" + cipher: "aes" + key: $COCOS_NATS_JETSTREAM_KEY + max_mem: 1G +} diff --git a/go.mod b/go.mod index e34a393c..76ff24ce 100644 --- a/go.mod +++ b/go.mod @@ -3,13 +3,13 @@ module github.com/ultravioletrs/cocos-ai go 1.21.3 require ( + github.com/absmach/magistrala v0.11.1-0.20231102134813-44408395e6a3 github.com/caarlos0/env/v7 v7.1.0 github.com/cenkalti/backoff/v4 v4.2.1 github.com/digitalocean/go-libvirt v0.0.0-20221205150000-2939327a8519 github.com/go-kit/kit v0.13.0 github.com/go-zoo/bone v1.3.0 github.com/gofrs/uuid v4.4.0+incompatible - github.com/mainflux/mainflux v0.0.0-20231024165949-8b185d205b6c github.com/prometheus/client_golang v1.17.0 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 @@ -27,25 +27,34 @@ require ( ) require ( + cloud.google.com/go/compute v1.23.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/golang/protobuf v1.5.3 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/klauspost/compress v1.17.2 // indirect + github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect + github.com/nats-io/nats.go v1.31.0 // indirect + github.com/nats-io/nkeys v0.4.6 // indirect + github.com/nats-io/nuid v1.0.1 // indirect github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/common v0.45.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect + github.com/rabbitmq/amqp091-go v1.9.0 // indirect go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/net v0.17.0 // indirect + golang.org/x/oauth2 v0.13.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 // indirect ) diff --git a/go.sum b/go.sum index bd95ee4c..129bb086 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,18 @@ -cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= -cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/absmach/magistrala v0.11.1-0.20231102134813-44408395e6a3 h1:g5dSaPtjj9mNnz2cMJ076MRKSnrOcMjW8BsJ7Kbzd7s= +github.com/absmach/magistrala v0.11.1-0.20231102134813-44408395e6a3/go.mod h1:ebPpg3UNO6ier1Ic2jBHkd8VUDD62707JRacj4UwGkM= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/caarlos0/env/v7 v7.1.0 h1:9lzTF5amyQeWHZzuZeKlCb5FWSUxpG1js43mhbY8ozg= @@ -14,6 +23,8 @@ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= +github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 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= @@ -21,6 +32,14 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/digitalocean/go-libvirt v0.0.0-20221205150000-2939327a8519 h1:OpkN/n40cmKenDQS+IOAeW9DLhYy4DADSeZnouCEV/E= github.com/digitalocean/go-libvirt v0.0.0-20221205150000-2939327a8519/go.mod h1:WyJJyfmJ0gWJvjV+ZH4DOgtOYZc1KOvYyBXWCLKxsUU= +github.com/docker/cli v24.0.7+incompatible h1:wa/nIwYFW7BVTGa7SWPVyyXU9lgORqUb1xfI36MSkFg= +github.com/docker/cli v24.0.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= @@ -32,31 +51,59 @@ github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBj github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-zoo/bone v1.3.0 h1:PY6sHq37FnQhj+4ZyqFIzJQHvrrGx0GEc3vTZZC/OsI= github.com/go-zoo/bone v1.3.0/go.mod h1:HI3Lhb7G3UQcAwEhOJ2WyNcsFtQX1WYHa0Hl4OBbhW8= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -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/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk= github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/mainflux/mainflux v0.0.0-20231024165949-8b185d205b6c h1:s0cZJ9ACxthpWu4XjvLhNg2Za0p3yjDDzjy+TRGVBRQ= -github.com/mainflux/mainflux v0.0.0-20231024165949-8b185d205b6c/go.mod h1:7gFBWrgiL5rZHO5NOrqajuSzAWXsKMLL1yyz1wmC7EA= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= +github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +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/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/nats-io/nats.go v1.31.0 h1:/WFBHEc/dOKBF6qf1TZhrdEfTmOZ5JzdJ+Y3m6Y/p7E= +github.com/nats-io/nats.go v1.31.0/go.mod h1:di3Bm5MLsoB4Bx61CBTsxuarI36WbhAwOm8QrW39+i8= +github.com/nats-io/nkeys v0.4.6 h1:IzVe95ru2CT6ta874rt9saQRkWfe2nFj1NtvYSLqMzY= +github.com/nats-io/nkeys v0.4.6/go.mod h1:4DxZNzenSVd1cYQoAa8948QY3QDjrHfcfVADymtkpts= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v1.1.10 h1:EaL5WeO9lv9wmS6SASjszOeQdSctvpbu0DdBQBizE40= +github.com/opencontainers/runc v1.1.10/go.mod h1:+/R6+KmDlh+hOO8NkjmgkG9Qzvypzk0yXxAPYYR65+M= +github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= +github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= +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= @@ -64,11 +111,15 @@ github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1 github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/rabbitmq/amqp091-go v1.9.0 h1:qrQtyzB4H8BQgEuJwhmVQqVHB9O4+MNDJCCAcpc3Aoo= +github.com/rabbitmq/amqp091-go v1.9.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -81,6 +132,12 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.45.0 h1:RsQi0qJ2imFfCvZabqzM9cNXBG8k6gXMv1A0cXRmH6A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.45.0/go.mod h1:vsh3ySueQCiKPxFLvjWC4Z135gIa34TQ/NSqkDTZYUM= @@ -102,17 +159,22 @@ go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1 go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= -golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/sync v0.0.0-20190423024810-112230192c58/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.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= @@ -134,16 +196,18 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= -google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= -google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= -google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405 h1:I6WNifs6pF9tNdSob2W24JtyxIYjzFB9qDlpUC76q+U= +google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4= +google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405 h1:HJMDndgxest5n2y77fnErkM62iUsptE/H8p0dC2Huo4= +google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 h1:AB/lmRny7e2pLhFEYIbl5qkDAUt2h0ZRO4wGPhZf+ik= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= @@ -151,6 +215,9 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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/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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/jaeger/doc.go b/internal/jaeger/doc.go index be973089..51c1fca4 100644 --- a/internal/jaeger/doc.go +++ b/internal/jaeger/doc.go @@ -1,6 +1,4 @@ // Copyright (c) Ultraviolet // SPDX-License-Identifier: Apache-2.0 -// Package jaeger contains the domain concept definitions needed to support -// Mainflux Jaeger functionality. package jaeger diff --git a/internal/libvirt/connect.go b/internal/libvirt/connect.go index 1bb969f4..1894ace5 100644 --- a/internal/libvirt/connect.go +++ b/internal/libvirt/connect.go @@ -8,8 +8,8 @@ import ( "net" "time" + "github.com/absmach/magistrala/logger" "github.com/digitalocean/go-libvirt" - "github.com/mainflux/mainflux/logger" ) func Connect(logger logger.Logger) *libvirt.Libvirt { diff --git a/internal/server/grpc/grpc.go b/internal/server/grpc/grpc.go index c3851584..2488a6f6 100644 --- a/internal/server/grpc/grpc.go +++ b/internal/server/grpc/grpc.go @@ -8,7 +8,7 @@ import ( "net" "time" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" "github.com/ultravioletrs/cocos-ai/internal/server" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" "google.golang.org/grpc" diff --git a/internal/server/http/http.go b/internal/server/http/http.go index 957a9849..d8e0806c 100644 --- a/internal/server/http/http.go +++ b/internal/server/http/http.go @@ -8,7 +8,7 @@ import ( "net/http" "time" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" "github.com/ultravioletrs/cocos-ai/internal/server" ) diff --git a/internal/server/server.go b/internal/server/server.go index 941f2ea2..4f0d4be5 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -9,7 +9,7 @@ import ( "os/signal" "syscall" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" ) type Server interface { diff --git a/manager/api/http/responses.go b/manager/api/http/responses.go index 8b896acf..2b93fd40 100644 --- a/manager/api/http/responses.go +++ b/manager/api/http/responses.go @@ -5,10 +5,10 @@ package http import ( "net/http" - "github.com/mainflux/mainflux" + "github.com/absmach/magistrala" ) -var _ mainflux.Response = (*runRes)(nil) +var _ magistrala.Response = (*runRes)(nil) type runRes struct { ID string `json:"id"` diff --git a/manager/api/http/transport.go b/manager/api/http/transport.go index a825a16e..8c7d10e3 100644 --- a/manager/api/http/transport.go +++ b/manager/api/http/transport.go @@ -10,9 +10,9 @@ import ( "net/http" "strings" + "github.com/absmach/magistrala" kithttp "github.com/go-kit/kit/transport/http" "github.com/go-zoo/bone" - "github.com/mainflux/mainflux" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/ultravioletrs/cocos-ai/manager" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" @@ -40,7 +40,7 @@ func MakeHandler(svc manager.Service, instanceID string) http.Handler { opts..., ), "run")) - r.GetFunc("/health", mainflux.Health("manager", instanceID)) + r.GetFunc("/health", magistrala.Health("manager", instanceID)) r.Handle("/metrics", promhttp.Handler()) return r @@ -62,7 +62,7 @@ func decodeRun(_ context.Context, r *http.Request) (interface{}, error) { func encodeResponse(_ context.Context, w http.ResponseWriter, response interface{}) error { w.Header().Set("Content-Type", contentType) - if ar, ok := response.(mainflux.Response); ok { + if ar, ok := response.(magistrala.Response); ok { for k, v := range ar.Headers() { w.Header().Set(k, v) } diff --git a/manager/api/logging.go b/manager/api/logging.go index 01db69ba..78445fe7 100644 --- a/manager/api/logging.go +++ b/manager/api/logging.go @@ -11,7 +11,7 @@ import ( "fmt" "time" - log "github.com/mainflux/mainflux/logger" + log "github.com/absmach/magistrala/logger" "github.com/ultravioletrs/cocos-ai/manager" ) diff --git a/manager/doc.go b/manager/doc.go index b4e7f2c3..bd09913d 100644 --- a/manager/doc.go +++ b/manager/doc.go @@ -1,7 +1,4 @@ // Copyright (c) Ultraviolet // SPDX-License-Identifier: Apache-2.0 -// Package things contains the domain concept definitions needed to support -// Mainflux manager service functionality. - package manager diff --git a/manager/pubsub.go b/manager/pubsub.go new file mode 100644 index 00000000..09accb73 --- /dev/null +++ b/manager/pubsub.go @@ -0,0 +1,58 @@ +// Copyright (c) Ultraviolet +// SPDX-License-Identifier: Apache-2.0 +package manager + +import ( + "context" + "errors" + + "github.com/absmach/magistrala/logger" + "github.com/absmach/magistrala/pkg/messaging" +) + +const agentTopic = "channels.agent.>" + +var errUnexpectedEvent = errors.New("unexpected event from agent") + +func NewAgentEventNotifier(ctx context.Context, pubsub messaging.PubSub, logger logger.Logger) error { + if err := pubsub.Subscribe(ctx, messaging.SubscriberConfig{ + ID: "manager", + Topic: agentTopic, + DeliveryPolicy: messaging.DeliverAllPolicy, + Handler: &eventHandler{logger: logger}, + }); err != nil { + return err + } + return nil +} + +type eventHandler struct { + logger logger.Logger +} + +func (ev *eventHandler) Handle(msg *messaging.Message) error { + switch msg.Subtopic { + case "idle": + ev.logger.Info("agent is running and idle") + case "run": + ev.logger.Info("agent is ready to receive computation manifest") + case "algorithms": + ev.logger.Info("agent is ready to receive algorithms") + case "datasets": + ev.logger.Info("agent is ready to receive datasets") + case "results": + ev.logger.Info("agent computation results are ready") + case "running": + ev.logger.Info("agent computation is running") + case "complete": + ev.logger.Info("agent computation results have been consumed") + default: + ev.logger.Error("unexpected event from agent") + return errUnexpectedEvent + } + return nil +} + +func (*eventHandler) Cancel() error { + return nil +} diff --git a/manager/tracing/doc.go b/manager/tracing/doc.go index c0e59001..e337d145 100644 --- a/manager/tracing/doc.go +++ b/manager/tracing/doc.go @@ -6,7 +6,4 @@ // This package provides tracing middleware for cocos auth service. // It can be used to trace incoming requests and add tracing capabilities to // cocos auth service. -// -// For more details about tracing instrumentation refer -// to the documentation at https://docs.mainflux.io/tracing/. package tracing diff --git a/pkg/clients/grpc/connect.go b/pkg/clients/grpc/connect.go index 8080780e..86b1d443 100644 --- a/pkg/clients/grpc/connect.go +++ b/pkg/clients/grpc/connect.go @@ -5,7 +5,7 @@ package grpc import ( "time" - "github.com/mainflux/mainflux/pkg/errors" + "github.com/absmach/magistrala/pkg/errors" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" gogrpc "google.golang.org/grpc" "google.golang.org/grpc/credentials" diff --git a/pkg/sdk/agent.go b/pkg/sdk/agent.go index 1e2f1588..c5bca7c5 100644 --- a/pkg/sdk/agent.go +++ b/pkg/sdk/agent.go @@ -6,7 +6,7 @@ import ( "context" "encoding/json" - "github.com/mainflux/mainflux/logger" + "github.com/absmach/magistrala/logger" "github.com/ultravioletrs/cocos-ai/agent" ) diff --git a/prof.cov b/prof.cov deleted file mode 100644 index d69ddfc4..00000000 --- a/prof.cov +++ /dev/null @@ -1,337 +0,0 @@ -mode: atomic -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:34.30,36.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:36.29,40.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:43.38,45.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:47.36,47.37 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:49.58,51.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:51.41,53.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:53.34,55.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:56.3,56.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:58.2,58.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:62.49,64.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:66.46,67.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:67.14,69.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:70.2,70.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:81.31,83.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:83.29,87.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:90.39,92.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:94.37,94.38 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:96.59,98.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:98.41,100.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:100.34,102.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:103.3,103.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:105.2,105.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:109.50,111.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:113.47,114.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:114.14,116.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:117.2,117.11 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:129.31,131.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:131.29,135.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:138.39,140.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:142.37,142.38 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:144.59,146.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:146.41,148.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:148.34,150.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:151.3,151.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:153.2,153.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:157.50,159.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:161.45,162.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:162.14,164.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:165.2,165.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:168.44,169.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:169.14,171.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:172.2,172.11 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:183.32,185.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:185.29,189.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:192.40,194.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:196.38,196.39 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:198.60,200.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:200.41,202.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:202.34,204.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:205.3,205.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:207.2,207.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:211.51,213.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:215.48,216.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:216.14,218.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:219.2,219.11 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:231.31,233.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:233.29,237.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:240.39,242.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:244.37,244.38 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:246.59,248.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:248.41,250.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:250.34,252.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:253.3,253.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:255.2,255.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:259.50,261.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:263.43,264.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:264.14,266.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:267.2,267.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:270.44,271.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:271.14,273.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:274.2,274.11 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:285.32,287.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:287.29,291.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:294.40,296.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:298.38,298.39 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:300.60,302.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:302.41,304.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:304.34,306.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:307.3,307.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:309.2,309.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:313.51,315.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:317.46,318.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:318.14,320.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:321.2,321.11 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:332.33,334.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:334.29,338.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:341.41,343.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:345.39,345.40 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:347.61,349.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:349.41,351.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:351.34,353.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:354.3,354.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:356.2,356.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:360.52,362.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:364.46,365.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:365.14,367.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:368.2,368.11 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:379.34,381.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:381.29,385.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:388.42,390.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:392.40,392.41 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:394.62,396.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:396.41,398.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:398.34,400.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:401.3,401.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:403.2,403.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:407.53,409.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:411.43,412.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:412.14,414.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:415.2,415.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:424.38,426.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:426.29,430.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:433.46,435.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:437.44,437.45 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:439.66,441.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:441.41,443.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:443.34,445.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:446.3,446.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:448.2,448.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:452.57,454.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:464.39,466.29 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:466.29,470.3 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:473.47,475.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:477.45,477.46 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:479.67,481.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:481.41,483.34 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:483.34,485.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:486.3,486.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:488.2,488.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:492.58,494.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:496.48,497.14 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:497.14,499.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:500.2,500.12 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:565.50,566.47 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:566.47,568.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:569.2,569.43 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:603.13,603.46 1 1 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:604.36,605.35 1 1 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:605.35,607.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:608.2,608.30 1 1 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:608.30,609.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:609.88,610.35 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:611.11,612.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:613.11,614.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:615.11,616.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:617.12,618.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:621.3,621.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:621.88,622.36 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:623.11,624.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:625.11,626.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:627.11,628.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:629.12,630.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:633.3,633.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:633.88,634.36 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:635.11,636.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:637.11,638.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:639.11,640.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:641.12,642.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:645.3,645.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:645.88,646.37 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:647.11,648.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:649.11,650.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:651.11,652.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:653.12,654.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:657.3,657.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:657.88,658.36 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:659.11,660.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:661.11,662.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:663.11,664.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:665.12,666.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:669.3,669.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:669.88,670.37 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:671.11,672.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:673.11,674.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:675.11,676.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:677.12,678.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:681.3,681.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:681.88,682.38 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:683.11,684.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:685.11,686.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:687.11,688.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:689.12,690.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:693.3,693.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:693.88,694.39 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:695.11,696.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:697.11,698.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:699.11,700.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:701.12,702.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:705.3,705.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:705.88,706.43 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:707.11,708.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:709.11,710.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:711.11,712.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:713.12,714.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:717.3,717.88 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:717.88,718.44 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:719.11,720.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:721.11,722.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:723.11,724.28 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:725.12,726.15 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent.pb.go:730.2,747.38 6 1 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:47.76,49.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:51.118,54.16 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:54.16,56.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:57.2,57.17 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:60.121,63.16 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:63.16,65.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:66.2,66.17 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:69.121,72.16 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:72.16,74.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:75.2,75.17 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:78.127,81.16 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:81.16,83.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:84.2,84.17 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:87.142,90.16 3 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:90.16,92.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:93.2,93.17 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:112.96,114.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:115.99,117.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:118.99,120.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:121.105,123.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:124.120,126.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:127.84,127.85 0 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:136.82,138.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:140.161,142.32 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:142.32,144.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:145.2,145.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:145.24,147.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:148.2,152.77 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:152.77,154.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:155.2,155.44 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:158.162,160.32 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:160.32,162.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:163.2,163.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:163.24,165.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:166.2,170.77 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:170.77,172.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:173.2,173.44 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:176.162,178.32 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:178.32,180.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:181.2,181.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:181.24,183.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:184.2,188.77 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:188.77,190.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:191.2,191.44 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:194.164,196.32 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:196.32,198.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:199.2,199.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:199.24,201.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:202.2,206.77 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:206.77,208.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:209.2,209.44 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:212.169,214.32 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:214.32,216.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:217.2,217.24 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:217.24,219.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:220.2,224.77 2 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:224.77,226.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/agent_grpc.pb.go:227.2,227.44 1 0 -github.com/ultravioletrs/cocos-ai/agent/computations.go:37.51,39.39 2 0 -github.com/ultravioletrs/cocos-ai/agent/computations.go:39.39,42.18 3 0 -github.com/ultravioletrs/cocos-ai/agent/computations.go:42.18,43.27 1 0 -github.com/ultravioletrs/cocos-ai/agent/computations.go:43.27,45.5 1 0 -github.com/ultravioletrs/cocos-ai/agent/computations.go:48.2,48.11 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:73.61,81.2 5 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:83.83,85.16 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:85.16,87.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:89.2,96.21 5 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:99.88,100.41 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:100.41,102.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:103.2,104.15 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:105.10,106.36 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:107.10,108.70 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:108.70,110.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:111.3,111.87 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:114.2,116.41 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:116.41,118.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:121.2,125.27 3 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:128.84,129.39 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:129.39,131.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:132.2,133.15 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:134.10,135.34 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:136.10,137.66 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:137.66,139.4 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:140.3,140.83 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:143.2,145.39 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:145.39,147.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:150.2,154.25 3 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:157.86,158.46 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:158.46,160.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:161.2,162.15 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:163.10,164.41 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:165.10,166.97 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:169.2,169.33 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:169.33,171.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:173.2,173.46 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:173.46,175.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:177.2,177.31 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:180.74,182.2 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:184.42,187.16 3 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:187.16,190.3 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:191.2,191.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:194.66,196.16 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:196.16,198.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:199.2,211.36 8 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:211.36,213.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:215.2,216.9 2 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:217.30,217.30 0 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:218.28,219.58 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:222.2,222.35 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:222.35,224.3 1 0 -github.com/ultravioletrs/cocos-ai/agent/service.go:226.2,226.20 1 0 -github.com/ultravioletrs/cocos-ai/agent/state.go:47.58,75.2 14 7 -github.com/ultravioletrs/cocos-ai/agent/state.go:78.52,79.6 1 7 -github.com/ultravioletrs/cocos-ai/agent/state.go:79.6,80.10 1 24 -github.com/ultravioletrs/cocos-ai/agent/state.go:81.32,83.13 2 17 -github.com/ultravioletrs/cocos-ai/agent/state.go:83.13,88.5 4 6 -github.com/ultravioletrs/cocos-ai/agent/state.go:88.10,90.5 1 11 -github.com/ultravioletrs/cocos-ai/agent/state.go:92.4,93.14 2 17 -github.com/ultravioletrs/cocos-ai/agent/state.go:93.14,95.5 1 0 -github.com/ultravioletrs/cocos-ai/agent/state.go:96.21,97.10 1 7 -github.com/ultravioletrs/cocos-ai/agent/state.go:103.48,105.2 1 7 -github.com/ultravioletrs/cocos-ai/agent/state.go:107.42,112.2 4 6 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:12.69,18.16 3 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:18.16,20.3 1 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:22.2,24.22 2 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:27.96,29.16 2 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:29.16,31.3 1 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:33.2,33.51 1 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:36.88,43.6 4 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:43.6,46.17 2 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:46.17,47.21 1 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:47.21,48.10 1 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:50.4,50.23 1 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:52.3,52.38 1 0 -github.com/ultravioletrs/cocos-ai/pkg/socket/socket.go:55.2,55.23 1 0