config

package
v1.2.10 Latest Latest
Warning

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

Go to latest
Published: May 11, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllProviderConfigs

func AllProviderConfigs(cfg *Config) map[string]ProviderConfig

func GetConfigDir

func GetConfigDir() string

func IsDebugMode

func IsDebugMode() bool

func ParseProviderModelRef

func ParseProviderModelRef(raw string) (provider string, model string)

func PrimaryProviderName

func PrimaryProviderName(cfg *Config) string

func ProviderExists

func ProviderExists(cfg *Config, name string) bool

func SaveConfig

func SaveConfig(path string, cfg *Config) error

func SetDebugMode

func SetDebugMode(debug bool)

func Validate

func Validate(cfg *Config) []error

Validate returns configuration problems found in cfg. It does not mutate cfg.

Types

type AgentCommunicationConfig

type AgentCommunicationConfig struct {
	Mode                 string `json:"mode,omitempty"`
	PersistThreads       bool   `json:"persist_threads,omitempty"`
	PersistMessages      bool   `json:"persist_messages,omitempty"`
	MaxMessagesPerThread int    `json:"max_messages_per_thread,omitempty"`
	DeadLetterQueue      bool   `json:"dead_letter_queue,omitempty"`
	DefaultMessageTTLSec int    `json:"default_message_ttl_sec,omitempty"`
}

type AgentDefaults

type AgentDefaults struct {
	Workspace         string                    `json:"workspace" env:"CLAWGO_AGENTS_DEFAULTS_WORKSPACE"`
	Model             AgentModelDefaults        `json:"model,omitempty"`
	MaxTokens         int                       `json:"max_tokens" env:"CLAWGO_AGENTS_DEFAULTS_MAX_TOKENS"`
	Temperature       float64                   `json:"temperature" env:"CLAWGO_AGENTS_DEFAULTS_TEMPERATURE"`
	MaxToolIterations int                       `json:"max_tool_iterations" env:"CLAWGO_AGENTS_DEFAULTS_MAX_TOOL_ITERATIONS"`
	Heartbeat         HeartbeatConfig           `json:"heartbeat"`
	ContextCompaction ContextCompactionConfig   `json:"context_compaction"`
	Execution         AgentExecutionConfig      `json:"execution"`
	SummaryPolicy     SystemSummaryPolicyConfig `json:"summary_policy"`
}

type AgentExecutionConfig

type AgentExecutionConfig struct {
	RunStateTTLSeconds    int      `json:"run_state_ttl_seconds" env:"CLAWGO_RUN_STATE_TTL_SECONDS"`
	RunStateMax           int      `json:"run_state_max" env:"CLAWGO_RUN_STATE_MAX"`
	ToolParallelSafeNames []string `json:"tool_parallel_safe_names"`
	ToolMaxParallelCalls  int      `json:"tool_max_parallel_calls"`
}

type AgentModelDefaults

type AgentModelDefaults struct {
	Primary string `json:"primary,omitempty" env:"CLAWGO_AGENTS_DEFAULTS_MODEL_PRIMARY"`
}

type AgentRouteRule

type AgentRouteRule struct {
	AgentID  string   `json:"agent_id"`
	Keywords []string `json:"keywords,omitempty"`
}

type AgentRouterConfig

type AgentRouterConfig struct {
	Enabled              bool                    `json:"enabled"`
	MainAgentID          string                  `json:"main_agent_id,omitempty"`
	Strategy             string                  `json:"strategy,omitempty"`
	Policy               AgentRouterPolicyConfig `json:"policy,omitempty"`
	Rules                []AgentRouteRule        `json:"rules,omitempty"`
	AllowDirectAgentChat bool                    `json:"allow_direct_agent_chat,omitempty"`
	MaxHops              int                     `json:"max_hops,omitempty"`
	DefaultTimeoutSec    int                     `json:"default_timeout_sec,omitempty"`
	StickyThreadOwner    bool                    `json:"sticky_thread_owner,omitempty"`
}

type AgentRouterPolicyConfig

type AgentRouterPolicyConfig struct {
	IntentMaxInputChars  int `json:"intent_max_input_chars" env:"CLAWGO_INTENT_MAX_INPUT_CHARS"`
	MaxRoundsWithoutUser int `json:"max_rounds_without_user" env:"CLAWGO_AUTOLEARN_MAX_ROUNDS_WITHOUT_USER"`
}

type AgentsConfig

type AgentsConfig struct {
	Defaults      AgentDefaults             `json:"defaults"`
	Router        AgentRouterConfig         `json:"router,omitempty"`
	Communication AgentCommunicationConfig  `json:"communication,omitempty"`
	Subagents     map[string]SubagentConfig `json:"subagents,omitempty"`
}

type ChannelsConfig

type ChannelsConfig struct {
	InboundMessageIDDedupeTTLSeconds  int            `json:"inbound_message_id_dedupe_ttl_seconds" env:"CLAWGO_CHANNELS_INBOUND_MESSAGE_ID_DEDUPE_TTL_SECONDS"`
	InboundContentDedupeWindowSeconds int            `json:"inbound_content_dedupe_window_seconds" env:"CLAWGO_CHANNELS_INBOUND_CONTENT_DEDUPE_WINDOW_SECONDS"`
	OutboundDedupeWindowSeconds       int            `json:"outbound_dedupe_window_seconds" env:"CLAWGO_CHANNELS_OUTBOUND_DEDUPE_WINDOW_SECONDS"`
	Weixin                            WeixinConfig   `json:"weixin"`
	Telegram                          TelegramConfig `json:"telegram"`
	Feishu                            FeishuConfig   `json:"feishu"`
}

type Config

type Config struct {
	Agents   AgentsConfig   `json:"agents"`
	Channels ChannelsConfig `json:"channels"`
	Models   ModelsConfig   `json:"models,omitempty"`
	Gateway  GatewayConfig  `json:"gateway"`
	Cron     CronConfig     `json:"cron"`
	Tools    ToolsConfig    `json:"tools"`
	Logging  LoggingConfig  `json:"logging"`
	Sentinel SentinelConfig `json:"sentinel"`
	Memory   MemoryConfig   `json:"memory"`
	// contains filtered or unexported fields
}

func DefaultConfig

func DefaultConfig() *Config

func LoadConfig

func LoadConfig(path string) (*Config, error)

func (*Config) ApplyNormalizedView added in v0.0.3

func (c *Config) ApplyNormalizedView(view NormalizedConfig)

func (*Config) GetAPIBase

func (c *Config) GetAPIBase() string

func (*Config) GetAPIKey

func (c *Config) GetAPIKey() string

func (*Config) LogFilePath

func (c *Config) LogFilePath() string

func (*Config) Normalize added in v0.0.3

func (c *Config) Normalize()

func (*Config) NormalizedView added in v0.0.3

func (c *Config) NormalizedView() NormalizedConfig

func (*Config) WorkspacePath

func (c *Config) WorkspacePath() string

type ContextCompactionConfig

type ContextCompactionConfig struct {
	Enabled            bool    `json:"enabled" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_ENABLED"`
	Mode               string  `json:"mode" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_MODE"`
	TriggerMessages    int     `json:"trigger_messages" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_TRIGGER_MESSAGES"`
	KeepRecentMessages int     `json:"keep_recent_messages" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_KEEP_RECENT_MESSAGES"`
	TargetRatio        float64 `json:"target_ratio" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_TARGET_RATIO"`
	ProtectLastN       int     `json:"protect_last_n" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_PROTECT_LAST_N"`
	PressureThreshold  float64 `json:"pressure_threshold" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_PRESSURE_THRESHOLD"`
	MaxSummaryChars    int     `json:"max_summary_chars" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_MAX_SUMMARY_CHARS"`
	MaxTranscriptChars int     `json:"max_transcript_chars" env:"CLAWGO_AGENTS_DEFAULTS_CONTEXT_COMPACTION_MAX_TRANSCRIPT_CHARS"`
}

type CronConfig

type CronConfig struct {
	MinSleepSec                  int `json:"min_sleep_sec" env:"CLAWGO_CRON_MIN_SLEEP_SEC"`
	MaxSleepSec                  int `json:"max_sleep_sec" env:"CLAWGO_CRON_MAX_SLEEP_SEC"`
	RetryBackoffBaseSec          int `json:"retry_backoff_base_sec" env:"CLAWGO_CRON_RETRY_BACKOFF_BASE_SEC"`
	RetryBackoffMaxSec           int `json:"retry_backoff_max_sec" env:"CLAWGO_CRON_RETRY_BACKOFF_MAX_SEC"`
	MaxConsecutiveFailureRetries int `json:"max_consecutive_failure_retries" env:"CLAWGO_CRON_MAX_CONSECUTIVE_FAILURE_RETRIES"`
	MaxWorkers                   int `json:"max_workers" env:"CLAWGO_CRON_MAX_WORKERS"`
}

type FeishuConfig

type FeishuConfig struct {
	Enabled                bool     `json:"enabled" env:"CLAWGO_CHANNELS_FEISHU_ENABLED"`
	AppID                  string   `json:"app_id" env:"CLAWGO_CHANNELS_FEISHU_APP_ID"`
	AppSecret              string   `json:"app_secret" env:"CLAWGO_CHANNELS_FEISHU_APP_SECRET"`
	EncryptKey             string   `json:"encrypt_key" env:"CLAWGO_CHANNELS_FEISHU_ENCRYPT_KEY"`
	VerificationToken      string   `json:"verification_token" env:"CLAWGO_CHANNELS_FEISHU_VERIFICATION_TOKEN"`
	AllowFrom              []string `json:"allow_from" env:"CLAWGO_CHANNELS_FEISHU_ALLOW_FROM"`
	AllowChats             []string `json:"allow_chats" env:"CLAWGO_CHANNELS_FEISHU_ALLOW_CHATS"`
	EnableGroups           bool     `json:"enable_groups" env:"CLAWGO_CHANNELS_FEISHU_ENABLE_GROUPS"`
	RequireMentionInGroups bool     `json:"require_mention_in_groups" env:"CLAWGO_CHANNELS_FEISHU_REQUIRE_MENTION_IN_GROUPS"`
}

type FilesystemConfig

type FilesystemConfig struct{}

type GatewayConfig

type GatewayConfig struct {
	Host  string `json:"host" env:"CLAWGO_GATEWAY_HOST"`
	Port  int    `json:"port" env:"CLAWGO_GATEWAY_PORT"`
	Token string `json:"token" env:"CLAWGO_GATEWAY_TOKEN"`
}

type HeartbeatConfig

type HeartbeatConfig struct {
	Enabled        bool   `json:"enabled" env:"CLAWGO_AGENTS_DEFAULTS_HEARTBEAT_ENABLED"`
	EverySec       int    `json:"every_sec" env:"CLAWGO_AGENTS_DEFAULTS_HEARTBEAT_EVERY_SEC"`
	AckMaxChars    int    `json:"ack_max_chars" env:"CLAWGO_AGENTS_DEFAULTS_HEARTBEAT_ACK_MAX_CHARS"`
	PromptTemplate string `json:"prompt_template" env:"CLAWGO_AGENTS_DEFAULTS_HEARTBEAT_PROMPT_TEMPLATE"`
}

type LoggingConfig

type LoggingConfig struct {
	Enabled       bool   `json:"enabled" env:"CLAWGO_LOGGING_ENABLED"`
	Dir           string `json:"dir" env:"CLAWGO_LOGGING_DIR"`
	Filename      string `json:"filename" env:"CLAWGO_LOGGING_FILENAME"`
	MaxSizeMB     int    `json:"max_size_mb" env:"CLAWGO_LOGGING_MAX_SIZE_MB"`
	RetentionDays int    `json:"retention_days" env:"CLAWGO_LOGGING_RETENTION_DAYS"`
}

type MCPServerConfig

type MCPServerConfig struct {
	Enabled     bool              `json:"enabled"`
	Transport   string            `json:"transport"`
	URL         string            `json:"url,omitempty"`
	Command     string            `json:"command"`
	Args        []string          `json:"args,omitempty"`
	Env         map[string]string `json:"env,omitempty"`
	Permission  string            `json:"permission,omitempty"`
	WorkingDir  string            `json:"working_dir,omitempty"`
	Description string            `json:"description,omitempty"`
	Package     string            `json:"package,omitempty"`
}

type MCPToolsConfig

type MCPToolsConfig struct {
	Enabled           bool                       `json:"enabled"`
	RequestTimeoutSec int                        `json:"request_timeout_sec"`
	Servers           map[string]MCPServerConfig `json:"servers,omitempty"`
}

type MemoryConfig

type MemoryConfig struct {
	Layered    bool `json:"layered" env:"CLAWGO_MEMORY_LAYERED"`
	RecentDays int  `json:"recent_days" env:"CLAWGO_MEMORY_RECENT_DAYS"`
	Layers     struct {
		Profile    bool `json:"profile" env:"CLAWGO_MEMORY_LAYERS_PROFILE"`
		Project    bool `json:"project" env:"CLAWGO_MEMORY_LAYERS_PROJECT"`
		Procedures bool `json:"procedures" env:"CLAWGO_MEMORY_LAYERS_PROCEDURES"`
	} `json:"layers"`
}

type ModelsConfig

type ModelsConfig struct {
	Providers map[string]ProviderConfig `json:"providers,omitempty"`
}

type NormalizedConfig added in v0.0.3

type NormalizedConfig struct {
	Core    NormalizedCoreConfig    `json:"core"`
	Runtime NormalizedRuntimeConfig `json:"runtime"`
}

type NormalizedCoreConfig added in v0.0.3

type NormalizedCoreConfig struct {
	DefaultProvider string                              `json:"default_provider,omitempty"`
	DefaultModel    string                              `json:"default_model,omitempty"`
	MainAgentID     string                              `json:"main_agent_id,omitempty"`
	Subagents       map[string]NormalizedSubagentConfig `json:"subagents,omitempty"`
	Tools           NormalizedCoreToolsConfig           `json:"tools,omitempty"`
	Gateway         NormalizedCoreGatewayConfig         `json:"gateway,omitempty"`
}

type NormalizedCoreGatewayConfig added in v0.0.3

type NormalizedCoreGatewayConfig struct {
	Host string `json:"host,omitempty"`
	Port int    `json:"port,omitempty"`
}

type NormalizedCoreToolsConfig added in v0.0.3

type NormalizedCoreToolsConfig struct {
	ShellEnabled bool `json:"shell_enabled"`
	MCPEnabled   bool `json:"mcp_enabled"`
}

type NormalizedRuntimeConfig added in v0.0.3

type NormalizedRuntimeConfig struct {
	Router    NormalizedRuntimeRouterConfig              `json:"router,omitempty"`
	Providers map[string]NormalizedRuntimeProviderConfig `json:"providers,omitempty"`
}

type NormalizedRuntimeProviderConfig added in v0.0.3

type NormalizedRuntimeProviderConfig struct {
	Auth               string                  `json:"auth,omitempty"`
	APIBase            string                  `json:"api_base,omitempty"`
	MaxTokens          int                     `json:"max_tokens,omitempty"`
	Temperature        float64                 `json:"temperature,omitempty"`
	TimeoutSec         int                     `json:"timeout_sec,omitempty"`
	OAuth              ProviderOAuthConfig     `json:"oauth,omitempty"`
	RuntimePersist     bool                    `json:"runtime_persist,omitempty"`
	RuntimeHistoryFile string                  `json:"runtime_history_file,omitempty"`
	RuntimeHistoryMax  int                     `json:"runtime_history_max,omitempty"`
	Responses          ProviderResponsesConfig `json:"responses,omitempty"`
}

type NormalizedRuntimeRouterConfig added in v0.0.3

type NormalizedRuntimeRouterConfig struct {
	Enabled              bool             `json:"enabled"`
	Strategy             string           `json:"strategy,omitempty"`
	AllowDirectAgentChat bool             `json:"allow_direct_agent_chat,omitempty"`
	MaxHops              int              `json:"max_hops,omitempty"`
	DefaultTimeoutSec    int              `json:"default_timeout_sec,omitempty"`
	StickyThreadOwner    bool             `json:"sticky_thread_owner,omitempty"`
	Rules                []AgentRouteRule `json:"rules,omitempty"`
}

type NormalizedSubagentConfig added in v0.0.3

type NormalizedSubagentConfig struct {
	Enabled       bool     `json:"enabled"`
	Role          string   `json:"role,omitempty"`
	Prompt        string   `json:"prompt,omitempty"`
	Provider      string   `json:"provider,omitempty"`
	ToolAllowlist []string `json:"tool_allowlist,omitempty"`
	RuntimeClass  string   `json:"runtime_class,omitempty"`
}

type ProviderConfig

type ProviderConfig struct {
	APIKey                   string                  `json:"api_key" env:"CLAWGO_PROVIDERS_{{.Name}}_API_KEY"`
	APIBase                  string                  `json:"api_base" env:"CLAWGO_PROVIDERS_{{.Name}}_API_BASE"`
	Models                   []string                `json:"models" env:"CLAWGO_PROVIDERS_{{.Name}}_MODELS"`
	MaxTokens                int                     `json:"max_tokens,omitempty"`
	Temperature              float64                 `json:"temperature,omitempty"`
	SupportsResponsesCompact bool                    `json:"supports_responses_compact" env:"CLAWGO_PROVIDERS_{{.Name}}_SUPPORTS_RESPONSES_COMPACT"`
	Auth                     string                  `json:"auth" env:"CLAWGO_PROVIDERS_{{.Name}}_AUTH"`
	TimeoutSec               int                     `json:"timeout_sec" env:"CLAWGO_PROVIDERS_PROXY_TIMEOUT_SEC"`
	RuntimePersist           bool                    `json:"runtime_persist,omitempty"`
	RuntimeHistoryFile       string                  `json:"runtime_history_file,omitempty"`
	RuntimeHistoryMax        int                     `json:"runtime_history_max,omitempty"`
	OAuth                    ProviderOAuthConfig     `json:"oauth,omitempty"`
	Responses                ProviderResponsesConfig `json:"responses"`
}

func ProviderConfigByName

func ProviderConfigByName(cfg *Config, name string) (ProviderConfig, bool)

type ProviderOAuthConfig

type ProviderOAuthConfig struct {
	Provider        string   `json:"provider,omitempty"`
	NetworkProxy    string   `json:"network_proxy,omitempty"`
	CredentialFile  string   `json:"credential_file,omitempty"`
	CredentialFiles []string `json:"credential_files,omitempty"`
	CallbackPort    int      `json:"callback_port,omitempty"`
	ClientID        string   `json:"client_id,omitempty"`
	ClientSecret    string   `json:"client_secret,omitempty"`
	AuthURL         string   `json:"auth_url,omitempty"`
	TokenURL        string   `json:"token_url,omitempty"`
	RedirectURL     string   `json:"redirect_url,omitempty"`
	Scopes          []string `json:"scopes,omitempty"`
	CooldownSec     int      `json:"cooldown_sec,omitempty"`
	RefreshScanSec  int      `json:"refresh_scan_sec,omitempty"`
	RefreshLeadSec  int      `json:"refresh_lead_sec,omitempty"`
}

type ProviderResponsesConfig

type ProviderResponsesConfig struct {
	API                      string   `json:"api,omitempty"`
	WebSearchEnabled         bool     `json:"web_search_enabled"`
	WebSearchContextSize     string   `json:"web_search_context_size"`
	FileSearchVectorStoreIDs []string `json:"file_search_vector_store_ids"`
	FileSearchMaxNumResults  int      `json:"file_search_max_num_results"`
	Include                  []string `json:"include"`
	StreamIncludeUsage       bool     `json:"stream_include_usage"`
}

type SandboxConfig

type SandboxConfig struct {
	Enabled bool   `json:"enabled" env:"CLAWGO_TOOLS_SHELL_SANDBOX_ENABLED"`
	Image   string `json:"image" env:"CLAWGO_TOOLS_SHELL_SANDBOX_IMAGE"`
}

type SentinelConfig

type SentinelConfig struct {
	Enabled       bool   `json:"enabled" env:"CLAWGO_SENTINEL_ENABLED"`
	IntervalSec   int    `json:"interval_sec" env:"CLAWGO_SENTINEL_INTERVAL_SEC"`
	AutoHeal      bool   `json:"auto_heal" env:"CLAWGO_SENTINEL_AUTO_HEAL"`
	NotifyChannel string `json:"notify_channel" env:"CLAWGO_SENTINEL_NOTIFY_CHANNEL"`
	NotifyChatID  string `json:"notify_chat_id" env:"CLAWGO_SENTINEL_NOTIFY_CHAT_ID"`
	WebhookURL    string `json:"webhook_url" env:"CLAWGO_SENTINEL_WEBHOOK_URL"`
}

type ShellConfig

type ShellConfig struct {
	Enabled            bool          `json:"enabled" env:"CLAWGO_TOOLS_SHELL_ENABLED"`
	WorkingDir         string        `json:"working_dir" env:"CLAWGO_TOOLS_SHELL_WORKING_DIR"`
	Timeout            time.Duration `json:"timeout" env:"CLAWGO_TOOLS_SHELL_TIMEOUT"`
	AutoInstallMissing bool          `json:"auto_install_missing" env:"CLAWGO_TOOLS_SHELL_AUTO_INSTALL_MISSING"`
	Sandbox            SandboxConfig `json:"sandbox"`
}

type SubagentConfig

type SubagentConfig struct {
	Enabled               bool                  `json:"enabled"`
	Type                  string                `json:"type,omitempty"`
	Transport             string                `json:"transport,omitempty"`
	ParentAgentID         string                `json:"parent_agent_id,omitempty"`
	NotifyMainPolicy      string                `json:"notify_main_policy,omitempty"`
	DisplayName           string                `json:"display_name,omitempty"`
	Role                  string                `json:"role,omitempty"`
	Description           string                `json:"description,omitempty"`
	SystemPromptFile      string                `json:"system_prompt_file,omitempty"`
	MemoryNamespace       string                `json:"memory_namespace,omitempty"`
	AcceptFrom            []string              `json:"accept_from,omitempty"`
	CanTalkTo             []string              `json:"can_talk_to,omitempty"`
	RequiresMainMediation bool                  `json:"requires_main_mediation,omitempty"`
	DefaultReplyTo        string                `json:"default_reply_to,omitempty"`
	Tools                 SubagentToolsConfig   `json:"tools,omitempty"`
	Runtime               SubagentRuntimeConfig `json:"runtime,omitempty"`
}

func (*SubagentConfig) UnmarshalJSON

func (s *SubagentConfig) UnmarshalJSON(data []byte) error

type SubagentRuntimeConfig

type SubagentRuntimeConfig struct {
	Provider          string  `json:"provider,omitempty"`
	Model             string  `json:"model,omitempty"`
	Temperature       float64 `json:"temperature,omitempty"`
	TimeoutSec        int     `json:"timeout_sec,omitempty"`
	MaxRetries        int     `json:"max_retries,omitempty"`
	RetryBackoffMs    int     `json:"retry_backoff_ms,omitempty"`
	MaxTaskChars      int     `json:"max_task_chars,omitempty"`
	MaxResultChars    int     `json:"max_result_chars,omitempty"`
	MaxParallelRuns   int     `json:"max_parallel_runs,omitempty"`
	MaxToolIterations int     `json:"max_tool_iterations,omitempty"`
}

type SubagentToolsConfig

type SubagentToolsConfig struct {
	Allowlist        []string `json:"allowlist,omitempty"`
	Denylist         []string `json:"denylist,omitempty"`
	MaxParallelCalls int      `json:"max_parallel_calls,omitempty"`
}

type SystemSummaryPolicyConfig

type SystemSummaryPolicyConfig struct {
	Marker          string `json:"marker"`
	CompletedPrefix string `json:"completed_prefix"`
	ChangesPrefix   string `json:"changes_prefix"`
	OutcomePrefix   string `json:"outcome_prefix"`
	CompletedTitle  string `json:"completed_title"`
	ChangesTitle    string `json:"changes_title"`
	OutcomesTitle   string `json:"outcomes_title"`
}

type TelegramConfig

type TelegramConfig struct {
	Enabled                bool     `json:"enabled" env:"CLAWGO_CHANNELS_TELEGRAM_ENABLED"`
	Token                  string   `json:"token" env:"CLAWGO_CHANNELS_TELEGRAM_TOKEN"`
	Streaming              bool     `json:"streaming"`
	AllowFrom              []string `json:"allow_from" env:"CLAWGO_CHANNELS_TELEGRAM_ALLOW_FROM"`
	AllowChats             []string `json:"allow_chats" env:"CLAWGO_CHANNELS_TELEGRAM_ALLOW_CHATS"`
	EnableGroups           bool     `json:"enable_groups" env:"CLAWGO_CHANNELS_TELEGRAM_ENABLE_GROUPS"`
	RequireMentionInGroups bool     `json:"require_mention_in_groups" env:"CLAWGO_CHANNELS_TELEGRAM_REQUIRE_MENTION_IN_GROUPS"`
}

type ToolsConfig

type ToolsConfig struct {
	Web        WebToolsConfig   `json:"web"`
	Shell      ShellConfig      `json:"shell"`
	Filesystem FilesystemConfig `json:"filesystem"`
	MCP        MCPToolsConfig   `json:"mcp"`
}

type WebSearchConfig

type WebSearchConfig struct {
	APIKey     string `json:"api_key" env:"CLAWGO_TOOLS_WEB_SEARCH_API_KEY"`
	MaxResults int    `json:"max_results" env:"CLAWGO_TOOLS_WEB_SEARCH_MAX_RESULTS"`
}

type WebToolsConfig

type WebToolsConfig struct {
	Search WebSearchConfig `json:"search"`
}

type WeixinAccountConfig added in v1.0.1

type WeixinAccountConfig struct {
	BotID         string `json:"bot_id"`
	BotToken      string `json:"bot_token"`
	IlinkUserID   string `json:"ilink_user_id,omitempty"`
	ContextToken  string `json:"context_token,omitempty"`
	GetUpdatesBuf string `json:"get_updates_buf,omitempty"`
}

type WeixinConfig added in v1.0.1

type WeixinConfig struct {
	Enabled       bool                  `json:"enabled" env:"CLAWGO_CHANNELS_WEIXIN_ENABLED"`
	BaseURL       string                `json:"base_url" env:"CLAWGO_CHANNELS_WEIXIN_BASE_URL"`
	DefaultBotID  string                `json:"default_bot_id,omitempty"`
	Accounts      []WeixinAccountConfig `json:"accounts,omitempty"`
	AllowFrom     []string              `json:"allow_from" env:"CLAWGO_CHANNELS_WEIXIN_ALLOW_FROM"`
	BotID         string                `json:"bot_id,omitempty" env:"CLAWGO_CHANNELS_WEIXIN_BOT_ID"`
	BotToken      string                `json:"bot_token,omitempty" env:"CLAWGO_CHANNELS_WEIXIN_BOT_TOKEN"`
	IlinkUserID   string                `json:"ilink_user_id,omitempty" env:"CLAWGO_CHANNELS_WEIXIN_ILINK_USER_ID"`
	ContextToken  string                `json:"context_token,omitempty" env:"CLAWGO_CHANNELS_WEIXIN_CONTEXT_TOKEN"`
	GetUpdatesBuf string                `json:"get_updates_buf,omitempty" env:"CLAWGO_CHANNELS_WEIXIN_GET_UPDATES_BUF"`
}

Jump to

Keyboard shortcuts

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