Package-level declarations

Types

Link copied to clipboard
@Serializable
data class ConfigurationRecent(val files: List<String> = emptyList())

Recent-configurations list. Tracks the last few TOML configuration files the analyst saved or loaded, surfaced as a Recent Configurations submenu in the per-app File menu so the user can reload a recent document without navigating the file chooser.

Link copied to clipboard
@Serializable
data class UserSettings(val workspace: WorkspaceSettings = WorkspaceSettings(), val configurations: ConfigurationRecent = ConfigurationRecent())

Typed view of ~/.ksl/settings.toml — the per-user persistence file shared by every Phase-6-era KSL app. Scope is the OS user; one file per $HOME, hand-editable.

Link copied to clipboard
class UserSettingsStore(settingsDir: Path = defaultSettingsDir(), userHome: Path = Path(System.getProperty("user.home")), defaultWorkspaceProvider: (Path) -> Path = ::resolveDefaultWorkspace)

Per-user persistence for ~/.ksl/settings.toml.

Link copied to clipboard

Pure path-resolution helpers for the workspace layout described in scenario workflow §2. Subdirectories are created lazily — the resolver methods accept a flag controlling whether to create on miss.

Link copied to clipboard
@Serializable
data class WorkspaceRecent(val directories: List<String> = emptyList())

Recent-workspaces list. Capped at UserSettingsStore.RECENT_LIMIT (8) by the store's mutation methods; deserializing a file with more than the limit is permitted but the next mutation will truncate.

Link copied to clipboard
@Serializable
data class WorkspaceSettings(val currentDirectory: String? = null, val recent: WorkspaceRecent = WorkspaceRecent())

Working-directory state. One currentDirectory shared by all four apps per scenario workflow §2 (per-user, not per-app).