sharedstate

package
v0.0.0-...-14e3c9d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MockEventTypeStateUpdate = "state_update"
	MockEventTypeUserAction  = "user_action"
	MockEventTypeAgentAction = "agent_action"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Connection

type Connection struct {
	// contains filtered or unexported fields
}

type EventHandler

type EventHandler interface {
	HandleEvent(eventType string, data map[string]interface{}) error
}

type Integration

type Integration struct {
	// contains filtered or unexported fields
}

func NewIntegration

func NewIntegration(cfg IntegrationConfig) (*Integration, error)

func (*Integration) Close

func (i *Integration) Close() error

type IntegrationConfig

type IntegrationConfig struct {
	EventStream        *eventstream.Stream
	StateManager       *statemanager.StateManager
	SupabaseClient     *supabase.Client
	SharedStateManager *SharedStateManager
}

type MockEvent

type MockEvent struct {
	Type      string
	Data      interface{}
	Timestamp time.Time
}

type MockStateManager

type MockStateManager struct {
	// contains filtered or unexported fields
}

func NewMockStateManager

func NewMockStateManager() *MockStateManager

func (*MockStateManager) Close

func (m *MockStateManager) Close() error

func (*MockStateManager) GetState

func (m *MockStateManager) GetState(stateType, stateID string) ([]byte, bool)

func (*MockStateManager) UpdateState

func (m *MockStateManager) UpdateState(stateID, stateType string, data []byte) error

type MockStream

type MockStream struct {
	// contains filtered or unexported fields
}

func NewMockStream

func NewMockStream() *MockStream

func (*MockStream) Emit

func (s *MockStream) Emit(event *MockEvent)

func (*MockStream) Subscribe

func (s *MockStream) Subscribe(eventType string, ch chan *MockEvent)

type MockSupabaseClient

type MockSupabaseClient struct{}

func NewMockSupabaseClient

func NewMockSupabaseClient() *MockSupabaseClient

func (*MockSupabaseClient) GetState

func (c *MockSupabaseClient) GetState(stateType, stateID string) ([]byte, error)

func (*MockSupabaseClient) SaveState

func (c *MockSupabaseClient) SaveState(stateType, stateID string, data []byte) error

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(cfg ServerConfig) (*Server, error)

func (*Server) Close

func (s *Server) Close() error

func (*Server) Start

func (s *Server) Start() error

type ServerConfig

type ServerConfig struct {
	Port               int
	EventStream        *eventstream.Stream
	StateManager       *statemanager.StateManager
	SupabaseClient     *supabase.Client
	SharedStateManager *SharedStateManager
}

type SharedStateConfig

type SharedStateConfig struct {
	EventStream  *eventstream.Stream
	StateManager *statemanager.StateManager
}

type SharedStateManager

type SharedStateManager struct {
	// contains filtered or unexported fields
}

func NewSharedStateManager

func NewSharedStateManager(cfg SharedStateConfig) *SharedStateManager

func (*SharedStateManager) Close

func (m *SharedStateManager) Close() error

func (*SharedStateManager) GetState

func (m *SharedStateManager) GetState(stateType StateType, stateID string) (map[string]interface{}, error)

func (*SharedStateManager) RegisterWebSocketHandler

func (m *SharedStateManager) RegisterWebSocketHandler(router gin.IRouter)

func (*SharedStateManager) UpdateState

func (m *SharedStateManager) UpdateState(stateType StateType, stateID string, data map[string]interface{}) error

type StateManager

type StateManager interface {
	GetState(stateType StateType, stateID string) (map[string]interface{}, error)

	UpdateState(stateType StateType, stateID string, data map[string]interface{}) error

	RegisterWebSocketHandler(router gin.IRouter)

	Close() error
}

type StateType

type StateType string
const (
	StateTypeAgent StateType = "agent"
	StateTypeTask  StateType = "task"
	StateTypeUI    StateType = "ui"
)

type SupabaseAdapter

type SupabaseAdapter struct {
	// contains filtered or unexported fields
}

func NewSupabaseAdapter

func NewSupabaseAdapter(supabaseStateManager *supabase.SupabaseStateManager) *SupabaseAdapter

func (*SupabaseAdapter) DeleteState

func (a *SupabaseAdapter) DeleteState(stateType StateType, stateID string) error

func (*SupabaseAdapter) GetState

func (a *SupabaseAdapter) GetState(stateType StateType, stateID string) (map[string]interface{}, error)

func (*SupabaseAdapter) RollbackState

func (a *SupabaseAdapter) RollbackState(stateType StateType, stateID string) error

func (*SupabaseAdapter) UpdateState

func (a *SupabaseAdapter) UpdateState(stateType StateType, stateID string, data map[string]interface{}) error

type WebSocketManager

type WebSocketManager struct {
	// contains filtered or unexported fields
}

func NewWebSocketManager

func NewWebSocketManager() *WebSocketManager

func (*WebSocketManager) HandleWebSocket

func (m *WebSocketManager) HandleWebSocket(c *gin.Context)

func (*WebSocketManager) PublishToTopic

func (m *WebSocketManager) PublishToTopic(topic string, data interface{})

func (*WebSocketManager) Start

func (m *WebSocketManager) Start(ctx context.Context)

func (*WebSocketManager) SubscribeToTopic

func (m *WebSocketManager) SubscribeToTopic(clientID, topic string)

func (*WebSocketManager) UnsubscribeFromTopic

func (m *WebSocketManager) UnsubscribeFromTopic(clientID, topic string)

type WebSocketMessage

type WebSocketMessage struct {
	Type      string      `json:"type"`
	Topic     string      `json:"topic"`
	Data      interface{} `json:"data"`
	Timestamp time.Time   `json:"timestamp"`
}

type WebSocketServer

type WebSocketServer interface {
	Start() error

	Stop() error

	PublishToTopic(topic string, data interface{})

	SubscribeToTopic(clientID, topic string)

	UnsubscribeFromTopic(clientID, topic string)

	HandleWebSocket(c *gin.Context)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL