Table of Contents

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.UserProfile resolves 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.

UpdateComponentsSettings
UpdateWorkflowSettings
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.