di

package
v0.0.0-...-06bc5ed Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2026 License: MIT Imports: 66 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GlobalConfig = &Config{}

Functions

func CheckDBHealth

func CheckDBHealth(db *gorm.DB) error

func InitAsynqClient

func InitAsynqClient() *asynq.Client

func InitAsynqServer

func InitAsynqServer() *asynq.Server

func InitDB

func InitDB() *gorm.DB

func InitGinServer

func InitGinServer(
	m []gin.HandlerFunc,
	userHdl *systemApi.UserHandler,
	authApiHdl *systemApi.ApiHandler,
	authRoleHdl *systemApi.RoleHandler,
	systemHdl *systemApi.SystemHandler,
	notAuthHdl *notAuthHandler.NotAuthHandler,
	auditHdl *systemApi.AuditHandler,
	terminalHdl *terminalApi.TerminalHandler,
	fileHdl *filesApi.FileHandler,
	fileShareHdl *filesApi.FileShareHandler,
	shareAccessHdl *filesApi.ShareAccessHandler,
	agentHdl *agentApi.Handler,
) *gin.Engine

InitGinServer 初始化web服务

func InitLogger

func InitLogger() *zap.Logger

InitLogger 将日志输出到./logs/cloudops-{日期}.log,并同时输出到控制台

func InitMiddlewares

func InitMiddlewares(ih ijwt.Handler, l *zap.Logger, roleSvc service.RoleService, auditSvc service.AuditService) []gin.HandlerFunc

InitMiddlewares 初始化中间件

func InitRedis

func InitRedis() redis.Cmdable

func InitScheduler

func InitScheduler() *asynq.Scheduler

func InitStoredProcedures

func InitStoredProcedures(db *gorm.DB) error

InitStoredProcedures 初始化存储过程

func InitTables

func InitTables(db *gorm.DB) error

func InitTrans

func InitTrans() error

InitTrans 初始化中文翻译器

func InitViper

func InitViper() error

InitViper 初始化viper配置,支持环境变量优先级:环境变量 > 配置文件 > 默认值

func IsDBAvailable

func IsDBAvailable(db *gorm.DB) bool

func ProvideAgentAuditStore

func ProvideAgentAuditStore(dao agentDao.AgentDAO, l *zap.Logger) agentAudit.Store

ProvideAgentAuditStore 创建审计存储

func ProvideAgentConfigDAO

func ProvideAgentConfigDAO(db *gorm.DB) *agentDao.AgentConfigDAO

ProvideAgentConfigDAO creates the config DAO

func ProvideAgentConfigService

func ProvideAgentConfigService(dao *agentDao.AgentConfigDAO) *agentService.ConfigService

ProvideAgentConfigService creates the config service

func ProvideAgentDAO

func ProvideAgentDAO(db *gorm.DB, l *zap.Logger, searchEngine *agentSearch.SearchEngine) agentDao.AgentDAO

ProvideAgentDAO 创建 Agent DAO

func ProvideAgentGuardChain

func ProvideAgentGuardChain(eval *agentRisk.Evaluator, l *zap.Logger) *agentGuard.Chain

ProvideAgentGuardChain 创建 GuardChain(双层防线)

func ProvideAgentHandler

func ProvideAgentHandler(
	agentSvc agentService.AgentService,
	hubSvc agentHub.HubService,
	cfgSvc *agentService.ConfigService,
	searchEngine *agentSearch.SearchEngine,
	skillStore *agentSkill.SkillStore,
	insights *agentInsight.InsightsEngine,
	skillSvc *agentService.SkillService,
) *api.Handler

ProvideAgentHandler 创建智能体 API 处理器

func ProvideAgentInsightsEngine

func ProvideAgentInsightsEngine(db *gorm.DB, l *zap.Logger) *agentInsight.InsightsEngine

ProvideAgentInsightsEngine 创建分析引擎

func ProvideAgentLLMAuditor

func ProvideAgentLLMAuditor(l *zap.Logger) *agentPipeline.LLMAuditor

ProvideAgentLLMAuditor creates the LLM injection auditor (nil if not configured)

func ProvideAgentMemoryProvider

func ProvideAgentMemoryProvider(dao agentDao.AgentDAO, l *zap.Logger) spi.MemoryProvider

ProvideAgentMemoryProvider 创建 MemoryProvider

func ProvideAgentNudgeReviewer

func ProvideAgentNudgeReviewer(cfg *AgentConfig, l *zap.Logger) *agentNudge.MemoryNudgeReviewer

ProvideAgentNudgeReviewer 创建记忆轻推审查器

func ProvideAgentPipeline

func ProvideAgentPipeline(
	dao agentDao.AgentDAO,
	cfgSvc *agentService.ConfigService,
	auditor *agentPipeline.LLMAuditor,
	l *zap.Logger,
) *agentPipeline.Stage

ProvideAgentPipeline 创建 Pipeline Stage

func ProvideAgentRiskEvaluator

func ProvideAgentRiskEvaluator(cfg *AgentRiskConfig) *agentRisk.Evaluator

ProvideAgentRiskEvaluator 创建风险评估器

func ProvideAgentService

func ProvideAgentService(
	dao agentDao.AgentDAO,
	toolMgr *agentToolManager.ToolManager,
	riskEval *agentRisk.Evaluator,
	auditStore agentAudit.Store,
	cfg *AgentConfig,
	l *zap.Logger,
	pipelineStage *agentPipeline.Stage,
	nudgeReviewer *agentNudge.MemoryNudgeReviewer,
	secureRuntime *agentRuntime.SecureToolRuntime,
	modelFirewall *agentGuard.ModelFirewall,
) agentService.AgentService

ProvideAgentService 将 di 配置转换为 service 本地配置并创建智能体服务

func ProvideAgentSkillManagerTool

func ProvideAgentSkillManagerTool(store *agentSkill.SkillStore) tool.InvokableTool

ProvideAgentSkillManagerTool 创建 skill_manage Eino 工具

func ProvideAgentSkillStore

func ProvideAgentSkillStore(cfg *AgentConfig, l *zap.Logger) (*agentSkill.SkillStore, error)

ProvideAgentSkillStore 创建 skill 文件系统存储

func ProvideAgentToolManager

func ProvideAgentToolManager(dao agentDao.AgentDAO, l *zap.Logger, skillStore *agentSkill.SkillStore) *agentToolManager.ToolManager

ProvideAgentToolManager 创建工具管理器

func ProvideClawHubClient

func ProvideClawHubClient(cfg *AgentConfig) *agentSkill.ClawHubClient

ProvideClawHubClient 创建 ClawHub 注册表客户端

func ProvideCronAsynqClient

func ProvideCronAsynqClient() *asynq.Client

ProvideCronAsynqClient 提供 Asynq Client

func ProvideCronAsynqServer

func ProvideCronAsynqServer(svc *cronService.CronService, logger *zap.Logger) *cronServer.CronAsynqServer

ProvideCronAsynqServer 提供 Asynq Server 和 ServeMux 封装

func ProvideCronDAO

func ProvideCronDAO(db *gorm.DB) *cronDao.CronDAO

ProvideCronDAO 提供 Cron DAO

func ProvideCronManager

func ProvideCronManager(svc *cronService.CronService, logger *zap.Logger) *cronManager.Manager

ProvideCronManager 提供 Cron 调度管理器

func ProvideCronService

func ProvideCronService(
	dao *cronDao.CronDAO,
	agentSvc agentService.AgentService,
	logger *zap.Logger,
	client *asynq.Client,
) *cronService.CronService

ProvideCronService 提供 Cron 服务;DB 不可用时返回 nil

func ProvideFileManagerConfig

func ProvideFileManagerConfig() filesService.ManagerConfig

func ProvideFirewallMetrics

func ProvideFirewallMetrics() *agentGuard.FirewallMetrics

ProvideFirewallMetrics 创建模型防火墙指标

func ProvideHubService

func ProvideHubService(
	dao agentDao.AgentDAO,
	toolMgr *agentToolManager.ToolManager,
	cfg *AgentHubConfig,
	l *zap.Logger,
) agentHub.HubService

ProvideHubService 创建 Hub 服务

func ProvideLocalCapsuleExecutor

func ProvideLocalCapsuleExecutor(agentCfg *AgentConfig) (agentRuntime.CapsuleExecutor, error)

ProvideLocalCapsuleExecutor 创建本地隔离执行器

func ProvideMemoryWriteGuard

func ProvideMemoryWriteGuard(l *zap.Logger) *agentRuntime.MemoryWriteGuard

ProvideMemoryWriteGuard 创建记忆写入守卫

func ProvideModelFirewall

func ProvideModelFirewall(cfg *AgentConfig, metrics *agentGuard.FirewallMetrics) *agentGuard.ModelFirewall

ProvideModelFirewall 创建模型防火墙

func ProvidePolicyEngine

func ProvidePolicyEngine(l *zap.Logger) *agentRuntime.PolicyEngine

ProvidePolicyEngine 创建工具调用策略引擎

func ProvideSearchEngine

func ProvideSearchEngine(db *gorm.DB, l *zap.Logger) *agentSearch.SearchEngine

ProvideSearchEngine 创建全文搜索引擎

func ProvideSecureToolRuntime

func ProvideSecureToolRuntime(
	guardChain *agentGuard.Chain,
	riskEval *agentRisk.Evaluator,
	agentCfg *AgentConfig,
	l *zap.Logger,
) (*agentRuntime.SecureToolRuntime, error)

ProvideSecureToolRuntime 创建安全工具执行运行时 调用链: GuardChain → PolicyEngine → ApprovalManager → CapsuleExecutor → ToolResultSanitizer → MemoryWriteGuard

func ProvideSkillService

func ProvideSkillService(store *agentSkill.SkillStore, clawHub *agentSkill.ClawHubClient, cfg *AgentConfig, l *zap.Logger) *agentService.SkillService

ProvideSkillService 创建 Gateway 可用的 SkillService

func ProvideTerminalConfig

func ProvideTerminalConfig() terminalservice.Config

func ProvideTerminalLocalAdapter

func ProvideTerminalLocalAdapter() terminalservice.LocalAdapter

func ProvideToolResultSanitizer

func ProvideToolResultSanitizer(l *zap.Logger) *agentRuntime.ToolResultSanitizer

ProvideToolResultSanitizer 创建工具结果脱敏器

Types

type AgentConfig

type AgentConfig struct {
	LLM           AgentLLMConfig      `mapstructure:"llm"`
	Risk          AgentRiskConfig     `mapstructure:"risk"`
	Hub           AgentHubConfig      `mapstructure:"hub"`
	Firewall      AgentFirewallConfig `mapstructure:"firewall"`
	MaxHistory    int                 `mapstructure:"max_history" .env:"AGENT_MAX_HISTORY" default:"20"`
	Search        AgentSearchConfig   `mapstructure:"search"`
	Nudge         AgentNudgeConfig    `mapstructure:"nudge"`
	Skill         AgentSkillConfig    `mapstructure:"skill"`
	WorkspaceRoot string              `mapstructure:"workspace_root" .env:"AGENT_WORKSPACE_ROOT" default:"/var/lib/agent/workspace"`
}

func ProvideAgentConfig

func ProvideAgentConfig() *AgentConfig

ProvideAgentConfig 从全局配置中提取 Agent 配置

type AgentFirewallConfig

type AgentFirewallConfig struct {
	InputEnabled  bool `mapstructure:"input_enabled" .env:"AGENT_MODEL_FIREWALL_INPUT_ENABLED" default:"false"`
	OutputEnabled bool `mapstructure:"output_enabled" .env:"AGENT_MODEL_FIREWALL_OUTPUT_ENABLED" default:"false"`
}

type AgentHubConfig

type AgentHubConfig struct {
	PluginDir            string `mapstructure:"plugin_dir" .env:"AGENT_HUB_PLUGIN_DIR" default:"./data/plugins"`
	MaxPluginSize        int    `mapstructure:"max_plugin_size" .env:"AGENT_HUB_MAX_SIZE" default:"52428800"`
	MaxConcurrentPlugins int    `mapstructure:"max_concurrent_plugins" .env:"AGENT_HUB_MAX_CONCURRENT" default:"10"`
}

func ProvideAgentHubConfig

func ProvideAgentHubConfig() *AgentHubConfig

ProvideAgentHubConfig 从全局配置中提取 Agent Hub 配置

type AgentLLMConfig

type AgentLLMConfig struct {
	Provider    string  `mapstructure:"provider" .env:"AGENT_LLM_PROVIDER" default:"openai"`
	BaseURL     string  `mapstructure:"base_url" .env:"AGENT_LLM_BASE_URL" default:"https://api.openai.com/v1"`
	APIKey      string  `mapstructure:"api_key" .env:"AGENT_LLM_API_KEY" default:""`
	Model       string  `mapstructure:"model" .env:"AGENT_LLM_MODEL" default:"gpt-4o"`
	Temperature float64 `mapstructure:"temperature" .env:"AGENT_LLM_TEMPERATURE" default:"0.7"`
	MaxTokens   int     `mapstructure:"max_tokens" .env:"AGENT_LLM_MAX_TOKENS" default:"4096"`
}

type AgentNudgeConfig

type AgentNudgeConfig struct {
	MemoryInterval int `mapstructure:"memory_interval" default:"10" env:"AGENT_NUDGE_MEMORY_INTERVAL"`
	SkillInterval  int `mapstructure:"skill_interval" default:"10" env:"AGENT_NUDGE_SKILL_INTERVAL"`
}

type AgentRiskConfig

type AgentRiskConfig struct {
	HighRiskPatterns []string         `mapstructure:"high_risk_patterns"`
	ProtectedPaths   []string         `mapstructure:"protected_paths"`
	ApprovalTimeout  string           `mapstructure:"approval_timeout" .env:"AGENT_RISK_APPROVAL_TIMEOUT" default:"10m"`
	Shell            AgentShellConfig `mapstructure:"shell"`
}

func ProvideAgentRiskConfig

func ProvideAgentRiskConfig() *AgentRiskConfig

ProvideAgentRiskConfig 从全局配置中提取 Agent 风险配置

type AgentSearchConfig

type AgentSearchConfig struct {
	MaxResults int `mapstructure:"max_results" default:"20" env:"AGENT_SEARCH_MAX_RESULTS"`
}

type AgentShellConfig

type AgentShellConfig struct {
	DefaultRisk    string   `mapstructure:"default_risk" .env:"AGENT_SHELL_DEFAULT_RISK" default:"low"`
	Timeout        string   `mapstructure:"timeout" .env:"AGENT_SHELL_TIMEOUT" default:"30s"`
	MaxOutputBytes int      `mapstructure:"max_output_bytes" .env:"AGENT_SHELL_MAX_OUTPUT" default:"65536"`
	Blacklist      []string `mapstructure:"blacklist"`
	Whitelist      []string `mapstructure:"whitelist"`
}

type AgentSkillConfig

type AgentSkillConfig struct {
	BaseDir        string `mapstructure:"base_dir" default:"data/skills" env:"AGENT_SKILL_BASE_DIR"`
	ClawHubBaseURL string `mapstructure:"clawhub_base_url" default:"https://clawhub.ai" env:"AGENT_SKILL_CLAWHUB_BASE_URL"`
	ClawHubAPIKey  string `mapstructure:"clawhub_api_key" default:"" env:"AGENT_SKILL_CLAWHUB_API_KEY"`
	Registry       string `mapstructure:"registry" default:"clawhub" env:"AGENT_SKILL_REGISTRY"`
}

type Cmd

type Cmd struct {
	Server          *gin.Engine
	AgentService    service4.AgentService
	ConfigService   *service4.ConfigService
	SkillService    *service4.SkillService
	ToolManager     *manager.ToolManager
	CronService     *service5.CronService
	CronManager     *manager2.Manager
	CronAsynqServer *server.CronAsynqServer
}

func ProvideCmd

func ProvideCmd() (*Cmd, error)

type Config

type Config struct {
	Server      ServerConfig      `mapstructure:"server"`
	Log         LogConfig         `mapstructure:"log"`
	JWT         JWTConfig         `mapstructure:"jwt"`
	Redis       RedisConfig       `mapstructure:"redis"`
	Database    DatabaseConfig    `mapstructure:"database"`
	MySQL       MySQLConfig       `mapstructure:"mysql"`
	Mock        MockConfig        `mapstructure:"mock"`
	FileManager FileManagerConfig `mapstructure:"file_manager"`
	Agent       AgentConfig       `mapstructure:"agent"`
}

Config application configuration.

type DatabaseConfig

type DatabaseConfig struct {
	Driver string `mapstructure:"driver" .env:"DATABASE_DRIVER" default:"mysql"`
	DSN    string `` /* 128-byte string literal not displayed */
}

DatabaseConfig is the primary runtime database configuration.

type FileManagerConfig

type FileManagerConfig struct {
	Enabled             bool                    `mapstructure:"enabled" .env:"FILE_MANAGER_ENABLED" default:"true"`
	AllowFullDisk       bool                    `mapstructure:"allow_full_disk" .env:"FILE_MANAGER_ALLOW_FULL_DISK" default:"false"`
	Roots               []FileManagerRootConfig `mapstructure:"roots"`
	MaxEditSizeMB       int                     `mapstructure:"max_edit_size_mb" .env:"FILE_MANAGER_MAX_EDIT_SIZE_MB" default:"5"`
	MaxPreviewSizeMB    int                     `mapstructure:"max_preview_size_mb" .env:"FILE_MANAGER_MAX_PREVIEW_SIZE_MB" default:"10"`
	AllowedArchiveTypes []string                `mapstructure:"allowed_archive_types"`
}

type FileManagerRootConfig

type FileManagerRootConfig struct {
	Name string `mapstructure:"name" .env:"FILE_MANAGER_ROOT_NAME" default:"VanPanel"`
	Path string `mapstructure:"path" .env:"FILE_MANAGER_ROOT_PATH" default:"."`
}

type JWTConfig

type JWTConfig struct {
	Key1       string `mapstructure:"key1" .env:"JWT_KEY1" default:"ebe3vxIP7sblVvUHXb7ZaiMPuz4oXo0l"`
	Key2       string `mapstructure:"key2" .env:"JWT_KEY2" default:"ebe3vxIP7sblVvUHXb7ZaiMPuz4oXo0z"`
	Issuer     string `mapstructure:"issuer" .env:"JWT_ISSUER" default:"K5mBPBYNQeNWEBvCTE5msog3KSGTdhmx"`
	Expiration int64  `mapstructure:"expiration" .env:"JWT_EXPIRATION" default:"3600"`
}

type LogConfig

type LogConfig struct {
	Dir   string `mapstructure:"dir" .env:"LOG_DIR" default:"./logs"`
	Level string `mapstructure:"level" .env:"LOG_LEVEL" default:"debug"`
}

type MockConfig

type MockConfig struct {
	Enabled bool `mapstructure:"enabled" .env:"MOCK_ENABLED" default:"true"`
}

type MySQLConfig

type MySQLConfig struct {
	Addr string `` /* 127-byte string literal not displayed */
}

MySQLConfig is kept for backward-compatible config fallback.

type RedisConfig

type RedisConfig struct {
	Addr     string `mapstructure:"addr" .env:"REDIS_ADDR" default:"localhost:6379"`
	Password string `mapstructure:"password" .env:"REDIS_PASSWORD" default:""`
}

type ServerConfig

type ServerConfig struct {
	Port string `mapstructure:"port" .env:"SERVER_PORT" default:"8889"`
}

Jump to

Keyboard shortcuts

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