package webagent

import (
	"log/slog"

	"github.com/tidbcloud/AgentTeam/internal/service/role/agents"
)

type CollectionHandler struct {
	agentStore    AgentStore
	memory        CloudMemoryProvisioner
	modelProfiles ModelProfileStore
	rewindStore   RewindStore
	orgs          OrganizationProvider
	hostedAgents  HostedAgentValidator
	runtime       Runtime
	realtime      Realtime
	logger        *slog.Logger
	publicBaseURL string
}

type RoleAgentsHandler struct {
	agentStore      AgentStore
	modelProfiles   ModelProfileStore
	orgs            OrganizationProvider
	hostedAgents    HostedAgentValidator
	runtime         Runtime
	realtime        Realtime
	logger          *slog.Logger
	roleAgentCreate *agents.Service
}

type RuntimeHandler struct {
	agentStore      AgentStore
	rewindStore     RewindStore
	runtimeCommands RuntimeCommands
	orgs            OrganizationProvider
	hostedAgents    HostedAgentValidator
	runtime         Runtime
	realtime        Realtime
	logger          *slog.Logger
	publicBaseURL   string
}

type WorkspaceFileHandler struct {
	agentStore AgentStore
	runtime    Runtime
}

type ReviewHandler struct {
	reviewStore ReviewStore
	runtime     Runtime
}

type TrajectoryHandler struct {
	agentStore AgentStore
	runtime    Runtime
}

type AgentBehaviorSettingsHandler struct {
	store   AgentBehaviorSettingsStore
	runtime Runtime
}
