4.1 KiB
Promptkit v0.12.0
This release replaces Promptkit's configuration loader with ConfigKit and
migrates maintained catalogs to keyed /v3 assets. It intentionally changes
the public construction API and configuration format.
Summary
Backends, profiles, and versioned prompts now share one layered configuration
snapshot built when NewEngine is called. ConfigKit supplies composition,
inheritance, presence, and source history; Promptkit validates the final
effective definitions and captures prompt content and templates. Consumers can
inspect the captured configuration explicitly without triggering a reload.
Compatibility
This is an incompatible minor release under Promptkit's pre-1.0
versioning policy. The
former source options, Config.PromptDir, Config.ProfileDir, and the old
profile/backend convenience values have been removed. Configuration documents
now use literal keys beneath backends, profiles, and prompts; embedded
id/version fields and base_profile are no longer accepted. Source groups
compose strictly within a group and overlay in the supplied order. Explicit
zero, false, empty, and null values can now differ from omission; maps overlay
recursively, and an empty map does not clear an inherited map.
All final definitions, including unused ones, are validated during engine construction. Prompt text and static templates are captured then; an existing engine does not automatically reload changed configuration or message files. Request artifacts, schemas, credentials, and provider operations retain their runtime boundaries. See the format reference for the current configuration contract and the consumer migration guide for API and source-selection changes.
Maintained OpenRouter and Rakestrawhome catalogs are selected as /v3 modules,
both at v3.20260930.0. Their asset format changed; consumers that read catalog
assets directly must adopt the keyed format. The maintained Promptkit profile
IDs remain available under the catalog compatibility policy,
which does not promise fixed profile data.
Upgrade
go get gitea.maximumdirect.net/eric/promptkit@v0.12.0
Replace removed source and backend registration options with
Config.Sources, explicitly ordered ConfigKit underlays, and optionally a
highest-priority main input. Use DirectoryInputs or FilesystemInputs for
selected directories, ProfileSource and BackendSource for typed
programmatic values, or configkit.Mapping for explicit null and combined
documents. Move profile base_profile to extends and embedded identities to
mapping keys. Review zero/false/null values and any assumptions that replacing
a model or backend discards unrelated explicit settings. Rebuild the engine
when definitions or referenced message files change. The
consumer guide
provides the migration details and maintained examples.
Changes
- Add ConfigKit v0.5.0 as the configuration boundary and consume released
OpenRouter and Rakestrawhome
/v3catalog modules. - Add keyed backend, profile, and prompt definitions with final-value domain validation, explicit presence/null behavior, and source-relative content capture.
- Add
ConfigurationSources, directory discovery helpers, programmatic profile/backend source builders, and read-only configuration inspection. - Preserve execution workflows while rendering captured templates, applying backend defaults after inheritance, and honoring explicit suppression of provider settings.
- Remove superseded loader, catalog preflight, and inheritance machinery; update examples, format guidance, and internal documentation.