config

package
v0.6.125 Latest Latest
Warning

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

Go to latest
Published: May 6, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// GroupSceneSessionPerChat scopes group sessions per chat.
	GroupSceneSessionPerChat = "per_chat"
	// GroupSceneSessionPerThread scopes group sessions per thread.
	GroupSceneSessionPerThread = "per_thread"
	// GroupSceneSessionPerUser scopes group sessions per user.
	GroupSceneSessionPerUser = "per_user"
	// GroupSceneSessionPerMessage scopes group sessions per message.
	GroupSceneSessionPerMessage = "per_message"
)
View Source
const (
	CodexSandboxReadOnly         = "read-only"
	CodexSandboxWorkspaceWrite   = "workspace-write"
	CodexSandboxDangerFullAccess = "danger-full-access"

	CodexApprovalUntrusted = "untrusted"
	CodexApprovalOnRequest = "on-request"
	CodexApprovalNever     = "never"
)
View Source
const (
	EnvAliceHome = "ALICE_HOME"
	EnvCodexHome = "CODEX_HOME"
)
View Source
const DefaultAuthStatusTimeoutSecs = 15

DefaultAuthStatusTimeoutSecs is the default auth status check timeout in seconds.

View Source
const DefaultCodexHighIdleTimeoutSecs = 1800

DefaultCodexHighIdleTimeoutSecs is the default high idle timeout in seconds.

View Source
const DefaultCodexIdleTimeoutSecs = 900

DefaultCodexIdleTimeoutSecs is the default low idle timeout in seconds.

View Source
const DefaultCodexXHighIdleTimeoutSecs = 3600

DefaultCodexXHighIdleTimeoutSecs is the default extreme idle timeout in seconds.

View Source
const DefaultImmediateFeedbackMode = ImmediateFeedbackModeReaction

DefaultImmediateFeedbackMode is the default immediate feedback mode.

View Source
const DefaultImmediateFeedbackReaction = "OK"

DefaultImmediateFeedbackReaction is the default reaction emoji for immediate feedback.

View Source
const DefaultLLMProvider = "codex"

DefaultLLMProvider is the default LLM backend identifier.

View Source
const DefaultLLMTimeoutSecs = 172800

DefaultLLMTimeoutSecs is the default LLM subprocess timeout in seconds.

View Source
const DefaultLocalRuntimeStoreOpenTimeoutSecs = 10

DefaultLocalRuntimeStoreOpenTimeoutSecs is the default local runtime store open timeout in seconds.

View Source
const DefaultRuntimeAPIShutdownTimeoutSecs = 5

DefaultRuntimeAPIShutdownTimeoutSecs is the default runtime API shutdown timeout in seconds.

View Source
const DefaultRuntimeHTTPAddr = "127.0.0.1:7331"

DefaultRuntimeHTTPAddr is the default runtime HTTP listen address.

View Source
const DefaultWorkerConcurrency = 3

DefaultWorkerConcurrency is the default worker pool size.

View Source
const ImmediateFeedbackModeReaction = "reaction"

ImmediateFeedbackModeReaction sends a reaction as immediate feedback.

View Source
const ImmediateFeedbackModeReply = "reply"

ImmediateFeedbackModeReply sends a reply as immediate feedback.

View Source
const LLMProviderClaude = "claude"

LLMProviderClaude is the Claude provider name constant.

View Source
const LLMProviderKimi = "kimi"

LLMProviderKimi is the Kimi provider name constant.

View Source
const LLMProviderOpenCode = "opencode"

LLMProviderOpenCode is the OpenCode provider name constant.

View Source
const TriggerModeAll = "all"

TriggerModeAll sets the trigger mode to all messages.

View Source
const TriggerModeAt = "at"

TriggerModeAt sets the trigger mode to at-mentions only.

View Source
const TriggerModePrefix = "prefix"

TriggerModePrefix sets the trigger mode to message prefix matching.

Variables

This section is empty.

Functions

func AliceHomeDir

func AliceHomeDir() string

func BundledSkillSourceDirForAliceHome added in v0.6.3

func BundledSkillSourceDirForAliceHome(aliceHome string) string

func CodexHomeForAliceHome added in v0.3.0

func CodexHomeForAliceHome(aliceHome string) string

func ConfigPathForAliceHome added in v0.3.0

func ConfigPathForAliceHome(aliceHome string) string

func DefaultAgentsSkillsDir added in v0.6.3

func DefaultAgentsSkillsDir() string

func DefaultAliceHomeName added in v0.3.1

func DefaultAliceHomeName() string

func DefaultBundledSkillSourceDir added in v0.6.3

func DefaultBundledSkillSourceDir() string

func DefaultClaudeSkillsDir added in v0.6.3

func DefaultClaudeSkillsDir() string

func DefaultCodexHome

func DefaultCodexHome() string

func DefaultConfigPath

func DefaultConfigPath() string

func DefaultLogDir added in v0.3.1

func DefaultLogDir() string

func DefaultLogFilePath added in v0.3.1

func DefaultLogFilePath() string

func DefaultPIDFilePath

func DefaultPIDFilePath() string

func DefaultPromptDir

func DefaultPromptDir() string

func DefaultRunDir

func DefaultRunDir() string

func DefaultRuntimeBinaryPath

func DefaultRuntimeBinaryPath() string

func DefaultWorkspaceDir

func DefaultWorkspaceDir() string

func LogDirForAliceHome added in v0.3.1

func LogDirForAliceHome(aliceHome string) string

func LogFilePathForAliceHome added in v0.3.1

func LogFilePathForAliceHome(aliceHome string) string

func LogFilePathForAliceHomeAt added in v0.3.1

func LogFilePathForAliceHomeAt(aliceHome string, at time.Time) string

func PIDFilePathForAliceHome added in v0.3.0

func PIDFilePathForAliceHome(aliceHome string) string

func PromptDirForAliceHome added in v0.3.0

func PromptDirForAliceHome(aliceHome string) string

func ResolveAliceHomeDir added in v0.3.0

func ResolveAliceHomeDir(override string) string

func ResolveCodexHomeDir added in v0.6.2

func ResolveCodexHomeDir(override string) string

func RunDirForAliceHome added in v0.3.0

func RunDirForAliceHome(aliceHome string) string

func RuntimeBinaryPathForAliceHome added in v0.3.0

func RuntimeBinaryPathForAliceHome(aliceHome string) string

func SoulPathForAliceHome added in v0.6.53

func SoulPathForAliceHome(aliceHome string) string

func WorkspaceDirForAliceHome added in v0.3.0

func WorkspaceDirForAliceHome(aliceHome string) string

Types

type BotConfig added in v0.4.0

type BotConfig struct {
	Name                             string                      `mapstructure:"name"`
	FeishuAppID                      string                      `mapstructure:"feishu_app_id"`
	FeishuAppSecret                  string                      `mapstructure:"feishu_app_secret"`
	FeishuBaseURL                    string                      `mapstructure:"feishu_base_url"`
	TriggerMode                      string                      `mapstructure:"trigger_mode"`
	TriggerPrefix                    string                      `mapstructure:"trigger_prefix"`
	ImmediateFeedbackMode            string                      `mapstructure:"immediate_feedback_mode"`
	ImmediateFeedbackReaction        string                      `mapstructure:"immediate_feedback_reaction"`
	LLMProfiles                      map[string]LLMProfileConfig `mapstructure:"llm_profiles"`
	GroupScenes                      *GroupScenesConfig          `mapstructure:"group_scenes"`
	PrivateScenes                    *GroupScenesConfig          `mapstructure:"private_scenes"`
	RuntimeHTTPAddr                  string                      `mapstructure:"runtime_http_addr"`
	RuntimeHTTPToken                 string                      `mapstructure:"runtime_http_token"`
	FailureMessage                   string                      `mapstructure:"failure_message"`
	ThinkingMessage                  string                      `mapstructure:"thinking_message"`
	AliceHome                        string                      `mapstructure:"alice_home"`
	WorkspaceDir                     string                      `mapstructure:"workspace_dir"`
	PromptDir                        string                      `mapstructure:"prompt_dir"`
	CodexHome                        string                      `mapstructure:"codex_home"`
	SoulPath                         string                      `mapstructure:"soul_path"`
	Env                              map[string]string           `mapstructure:"env"`
	QueueCapacity                    int                         `mapstructure:"queue_capacity"`
	WorkerConcurrency                int                         `mapstructure:"worker_concurrency"`
	AutomationTaskTimeoutSecs        int                         `mapstructure:"automation_task_timeout_secs"`
	AuthStatusTimeoutSecs            int                         `mapstructure:"auth_status_timeout_secs"`
	RuntimeAPIShutdownTimeoutSecs    int                         `mapstructure:"runtime_api_shutdown_timeout_secs"`
	LocalRuntimeStoreOpenTimeoutSecs int                         `mapstructure:"local_runtime_store_open_timeout_secs"`
	CodexIdleTimeoutSecs             int                         `mapstructure:"codex_idle_timeout_secs"`
	CodexHighIdleTimeoutSecs         int                         `mapstructure:"codex_high_idle_timeout_secs"`
	CodexXHighIdleTimeoutSecs        int                         `mapstructure:"codex_xhigh_idle_timeout_secs"`
	ShowShellCommands                *bool                       `mapstructure:"show_shell_commands"`
	DisableIdentityHints             *bool                       `mapstructure:"disable_identity_hints"`
	Permissions                      *BotPermissionsConfig       `mapstructure:"permissions"`
}

BotConfig is a per-bot configuration.

type BotPermissionsConfig added in v0.4.0

type BotPermissionsConfig struct {
	RuntimeMessage    *bool    `mapstructure:"runtime_message"`
	RuntimeAutomation *bool    `mapstructure:"runtime_automation"`
	AllowedSkills     []string `mapstructure:"allowed_skills"`
}

BotPermissionsConfig is bot-level permission controls.

type CodexExecPolicyConfig added in v0.4.0

type CodexExecPolicyConfig struct {
	Sandbox        string   `mapstructure:"sandbox"`
	AskForApproval string   `mapstructure:"ask_for_approval"`
	AddDirs        []string `mapstructure:"add_dirs"`
}

CodexExecPolicyConfig is the sandbox and approval policy configuration.

type Config

type Config struct {
	BotID                     string `mapstructure:"-"`
	BotName                   string `mapstructure:"bot_name"`
	FeishuAppID               string `mapstructure:"feishu_app_id"`
	FeishuAppSecret           string `mapstructure:"feishu_app_secret"`
	FeishuBaseURL             string `mapstructure:"feishu_base_url"`
	TriggerMode               string `mapstructure:"trigger_mode"`
	TriggerPrefix             string `mapstructure:"trigger_prefix"`
	ImmediateFeedbackMode     string `mapstructure:"immediate_feedback_mode"`
	ImmediateFeedbackReaction string `mapstructure:"immediate_feedback_reaction"`

	LLMProvider   string                      `mapstructure:"llm_provider"`
	LLMProfiles   map[string]LLMProfileConfig `mapstructure:"llm_profiles"`
	GroupScenes   GroupScenesConfig           `mapstructure:"group_scenes"`
	PrivateScenes GroupScenesConfig           `mapstructure:"private_scenes"`

	// Shared env for all LLM subprocesses (HTTPS_PROXY, API keys, etc.)
	CodexEnv  map[string]string `mapstructure:"env"`
	CodexHome string            `mapstructure:"codex_home"`

	RuntimeHTTPAddr  string `mapstructure:"runtime_http_addr"`
	RuntimeHTTPToken string `mapstructure:"runtime_http_token"`
	FailureMessage   string `mapstructure:"failure_message"`
	ThinkingMessage  string `mapstructure:"thinking_message"`

	AliceHome    string               `mapstructure:"alice_home"`
	WorkspaceDir string               `mapstructure:"workspace_dir"`
	PromptDir    string               `mapstructure:"prompt_dir"`
	SoulPath     string               `mapstructure:"soul_path"`
	Permissions  BotPermissionsConfig `mapstructure:"permissions"`
	Bots         map[string]BotConfig `mapstructure:"bots"`

	QueueCapacity                    int           `mapstructure:"queue_capacity"`
	WorkerConcurrency                int           `mapstructure:"worker_concurrency"`
	AutomationTaskTimeoutSecs        int           `mapstructure:"automation_task_timeout_secs"`
	AutomationTaskTimeout            time.Duration `mapstructure:"-"`
	AuthStatusTimeoutSecs            int           `mapstructure:"auth_status_timeout_secs"`
	AuthStatusTimeout                time.Duration `mapstructure:"-"`
	RuntimeAPIShutdownTimeoutSecs    int           `mapstructure:"runtime_api_shutdown_timeout_secs"`
	RuntimeAPIShutdownTimeout        time.Duration `mapstructure:"-"`
	LocalRuntimeStoreOpenTimeoutSecs int           `mapstructure:"local_runtime_store_open_timeout_secs"`
	LocalRuntimeStoreOpenTimeout     time.Duration `mapstructure:"-"`
	CodexIdleTimeoutSecs             int           `mapstructure:"codex_idle_timeout_secs"`
	CodexIdleTimeout                 time.Duration `mapstructure:"-"`
	CodexHighIdleTimeoutSecs         int           `mapstructure:"codex_high_idle_timeout_secs"`
	CodexHighIdleTimeout             time.Duration `mapstructure:"-"`
	CodexXHighIdleTimeoutSecs        int           `mapstructure:"codex_xhigh_idle_timeout_secs"`
	CodexXHighIdleTimeout            time.Duration `mapstructure:"-"`
	ShowShellCommands                *bool         `mapstructure:"show_shell_commands"`
	DisableIdentityHints             *bool         `mapstructure:"disable_identity_hints"`

	LogLevel      string `mapstructure:"log_level"`
	LogFile       string `mapstructure:"log_file"`
	LogMaxSizeMB  int    `mapstructure:"log_max_size_mb"`
	LogMaxBackups int    `mapstructure:"log_max_backups"`
	LogMaxAgeDays int    `mapstructure:"log_max_age_days"`
	LogCompress   bool   `mapstructure:"log_compress"`
}

Config is the top-level runtime configuration.

func LoadFromFile

func LoadFromFile(path string) (Config, error)

func (Config) AllowedBundledSkills added in v0.4.0

func (cfg Config) AllowedBundledSkills() []string

func (Config) ResolvedLLMProviders added in v0.5.18

func (cfg Config) ResolvedLLMProviders() []string

func (Config) RuntimeConfigForBot added in v0.5.0

func (cfg Config) RuntimeConfigForBot(botID string) (Config, error)

func (Config) RuntimeConfigs added in v0.4.0

func (cfg Config) RuntimeConfigs() ([]Config, error)

type GroupSceneConfig added in v0.3.11

type GroupSceneConfig struct {
	Enabled              bool   `mapstructure:"enabled"`
	TriggerTag           string `mapstructure:"trigger_tag"`
	SessionScope         string `mapstructure:"session_scope"`
	LLMProfile           string `mapstructure:"llm_profile"`
	NoReplyToken         string `mapstructure:"no_reply_token"`
	CreateFeishuThread   bool   `mapstructure:"create_feishu_thread"`
	DisableIdentityHints *bool  `mapstructure:"disable_identity_hints"`
}

GroupSceneConfig is a group chat scene configuration.

type GroupScenesConfig added in v0.3.11

type GroupScenesConfig struct {
	Chat GroupSceneConfig `mapstructure:"chat"`
	Work GroupSceneConfig `mapstructure:"work"`
}

GroupScenesConfig is a pair of group chat scene configurations.

type LLMProfileConfig added in v0.3.11

type LLMProfileConfig struct {
	Provider        string                 `mapstructure:"provider"`
	Command         string                 `mapstructure:"command"`
	TimeoutSecs     int                    `mapstructure:"timeout_secs"`
	Model           string                 `mapstructure:"model"`
	Profile         string                 `mapstructure:"profile"`
	ReasoningEffort string                 `mapstructure:"reasoning_effort"`
	Variant         string                 `mapstructure:"variant"`
	Personality     string                 `mapstructure:"personality"`
	PromptPrefix    string                 `mapstructure:"prompt_prefix"`
	Permissions     *CodexExecPolicyConfig `mapstructure:"permissions"`

	// Computed at finalization, not from YAML.
	Timeout time.Duration `mapstructure:"-"`
}

LLMProfileConfig is an LLM backend profile configuration.

Jump to

Keyboard shortcuts

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