BundleLayout

The well-known in-JAR paths that make up a KSL bundle. This object is the authoritative spec for the bundle JAR layout; the kslpkg CLI tool, the runtime loader, and any tests must reference these constants rather than hard-coding paths in multiple places.

The layout is a public contract. New entries may be added freely; existing entries are not renamed or removed without a major-version bump of the bundle SPI (see Phase 6 plan §4.8).

Per-model subdirectories live under MODELS_ROOT/<modelId>/ and follow a one-directory-per-recipe-kind convention so a bundle author can drop new recipe files into a directory without editing code.

Properties

Link copied to clipboard
const val BUNDLE_TOML: String

Optional declarative bundle identity file. When present, tooling may read identity fields (bundleId, version, etc.) from this TOML without classloading. The Kotlin KSLModelBundle implementation remains the authoritative source at runtime.

Link copied to clipboard
const val MODELS_ROOT: String

Root directory under which per-model resources are organised.

Link copied to clipboard

The ServiceLoader registration file. The JAR must contain this entry for the runtime loader to discover KSLModelBundle implementations.

Functions

Link copied to clipboard

Path of the serialised ModelDescriptor JSON for the given model. Written by kslpkg enrich; read by the runtime loader; absence triggers the lazy-extraction fallback with on-disk caching.

Link copied to clipboard

Directory holding ConfigRecipeKind.EXPERIMENT recipes for the given model. Reserved now; designed-experiment recipe authoring is wired up in a later Phase 6 sub-phase.

Link copied to clipboard

Directory holding ConfigRecipeKind.OPTIMIZATION recipes for the given model.

Link copied to clipboard
fun runRecipesDir(modelId: String): String

Directory holding ConfigRecipeKind.RUN recipes for the given model.

Link copied to clipboard

Directory holding ConfigRecipeKind.SCENARIO_BATCH recipes for the given model.