Package-level declarations
Types
A resolved snapshot of everything the AGP 8 adapter writes into the classic Android DSL.
One-shot migration helper: removes app-logo files that would otherwise sit as orphans or actively break the resource merge after adopting the FG+BG pipeline.
The four numbers KiteConfig hands to a build-number scheme.
Marks a KiteConfig switch you should not reach for casually. Using one refuses to compile until the build script opts in:
Generate the Android splash resources from splash { } art into a plugin-owned build/ directory, following GenerateDesktopIconsTask.
Generate the runtime build-config object (generateBuildConfigSource) into a plugin-owned generated commonMain dir wired onto the shared module's source set. It never writes into the user's hand-authored tree. The task is cache-capable, but cache storage is denied unless the DSL explicitly enables it. A checksum ownership manifest removes only outputs from the previous successful generation. Unknown, modified, escaping, or symlinked content fails closed instead of being deleted.
Generate the macOS, Windows, and Linux installer icons from logo { } art into a plugin-owned build/ directory, following GenerateIoWorkerTask.
Compose the desktop JVM splash image: a solid plate with the splash art centered on it, written into a plugin-owned build/ directory.
Generate the inline Web Worker offload helper (generateIoWorkerSource) into a plugin-owned generated source dir that is wired onto the selected Kotlin/JS target's source set (jsMain for the conventional js target).
Details for KiteConfigExtension.appName: per-platform name overrides and flow modifiers. android("x") overrides the shown name there.
Everything Android-only, inside kiteConfig { android { ... } }.
Generated Kotlin constants for your shared code, inside kiteConfig { buildConfig { ... } }.
Strict counterpart to KiteConfigDoctorTask. It runs the identical aggregate, read-only checks, always writes a deterministic report, and fails after report creation when ERROR findings (or optionally warnings) exist.
Compose Desktop settings inside kiteConfig { desktop { ... } }.
Machine-readable format emitted by KiteConfigCheckTask.
Shared, read-only input wiring and resilient evaluation engine for the human doctor and strict machine-readable check tasks. Filesystem, provider, and parser failures become stable ERROR findings instead of escaping evaluation; each concrete task decides whether those findings gate the build.
Resilient human-readable setup diagnostic. Every supported check is attempted and reported with a stable ID. This task never fails merely because findings contain errors; use KiteConfigCheckTask for CI enforcement.
The single source of truth for your app's identity. Apply to the root project.
Apple settings inside kiteConfig { ios { ... } }.
Apple source sync policy inside kiteConfig { ios { rewrite { ... } } }.
The generated browser Web Worker helper, inside kiteConfig { web { ioWorker { ... } } }.
The logo topic, inside kiteConfig { logo { ... } }: one icon for every platform.
Where your projects live, inside kiteConfig { modules { ... } }.
Kotlin/Native opt-in markers, inside kiteConfig { optIns { ... } }.
Read-only report of the source-tree mutations the current configuration authorizes.
Root aggregation plugin for the kiteConfig application model.
Everything KiteConfig resolved, as a read-only view.
Read-only report of the resolved single source of truth and selected platform paths. Provider and filesystem inspection failures are rendered inline rather than aborting the report. Use KiteConfigPlanTask to inspect mutation policies and KiteConfigCheckTask to gate CI on diagnostics.
Browser Kotlin/JS options, inside kiteConfig { web { ... } }.
Base of every topic scope. skip()/only() beside the fact are the only flow control in the DSL. Default: flow everywhere.
Details for KiteConfigExtension.id: per-platform suffixes and flow.
Everything about locales: the pinned list, the Android res filter, flow.
The three delivery targets a fact can flow to.
Anything that can stand for a platform in skip()/only().
The splash topic: launch-screen art for Android, iOS, and desktop.
Details for KiteConfigExtension.version: the shared formula and platform corners.
Policy for an existing plist key whose value differs from the requested value.
Ensures a source iOS Info.plist holds the references that this task's propagation inputs enable. Each enabled entry points at its build variable:
Propagates the FG/BG layer PNGs to a complete Android launcher-icon resource tree. Source PNGs are treated as the icon as designed (fills the canvas like an iOS marketing icon). Non-square sources are aspect-fit, never stretched: the FG is contained (letterboxed) inside the safe zone, the BG covers the canvas (center-cropped).
Explicit legacy migration for a source Info.plist, project.pbxproj, Podfile, and Swift imports. It is deliberately non-cacheable and always computes the complete enabled text plan before writing. All targets are contained, symlink-free, staged, locked, and committed as one recoverable batch; write-once backups are created when the backup input is enabled. Swift discovery does not follow links and is bounded by depth and visited-entry count; all input snapshots and rendered outputs share a cumulative pre-commit budget.
Composites the FG/BG layers into the iOS AppIcon.appiconset:
The one formula that turns a version into a build number.
The build-number formulas KiteConfig ships with.