Namespace JD.AI.Core.Config
Classes
- AtomicConfigStore
Multi-process-safe JSON configuration file manager for JD.AI. Uses file-level locking for cross-process safety and a SemaphoreSlim for in-process concurrency. Writes are atomic: data is written to a temporary file then moved into place.
- ConfigSchemaVersion
Tracks configuration schema versions and provides migration support. Schema versions are stored alongside config files and checked on load to detect when migration is needed.
- DataDirectories
Centralized data directory resolution for JD.AI. When running as a Windows Service (LocalSystem) or systemd unit (root),
Environment.SpecialFolder.UserProfileresolves to the service account's profile rather than any real user folder. This class scans all user profiles and falls back to ProgramData / /var/lib when no user-level .jdai directory exists.
- DefaultsConfig
Provider and model defaults.
- FileRemoteConfigSource
Reads configuration from a file on disk, designed for Kubernetes ConfigMap volume mounts or any mounted config file that may be updated externally. Detects changes via SHA-256 content hashing.
- FooterSettings
Controls the TUI status footer rendered at the bottom of the interactive session.
- HttpRemoteConfigSource
Fetches configuration from an HTTP endpoint. Compatible with Consul KV, Azure App Configuration REST API, Spring Cloud Config, or any endpoint that returns YAML/JSON configuration content.
- JdAiConfig
Root configuration object for JD.AI.
- RemoteConfigPoller
Periodically polls IRemoteConfigSource instances for changes and invokes a callback when new configuration is detected. Falls back to local config when remote sources are unavailable.
- RemoteConfigResult
Result of fetching configuration from a remote source.
- SchemaVersionMeta
Schema version metadata stored in
schema-version.json.
- SegmentVisibilityOverride
Controls the visibility and layout of a segment in the TUI footer.
- ToolPermissionScopeConfig
Allow/deny tool rules for one scope.
- ToolPermissionsConfig
Config root for explicit tool permission rules.
- TuiSettings
User-configurable TUI display settings, persisted to
~/.jdai/tui-settings.json.
- WelcomePanelSettings
Controls which details are shown in the interactive welcome panel.
Interfaces
- IRemoteConfigSource
Abstraction for retrieving configuration from a remote source. Implementations may connect to Consul, Azure App Configuration, Kubernetes ConfigMaps, or any HTTP-based config service.
Enums
- OutputStyle
Controls how assistant output is rendered in the terminal.
- SpinnerStyle
Controls the verbosity and visual style of the thinking/loading progress indicator.
- SystemPromptCompaction
Controls automatic system prompt compaction behavior.
- TuiTheme
Named color themes for terminal rendering.