4.8 KiB
Promptkit v0.16.0
This release adds explicit smoke diagnostics, configuration collections, namespace-scoped engine views, and expanded resource discovery. It also makes intentional breaking changes to configuration ownership and prompt selection. The minimum supported Go version remains 1.26.0.
Configuration Collections And Discovery
Applications can compose caller-selected collections of backends, profiles,
and prompts. Collection resources have qualified identities such as
support/answer; root resources retain unqualified identities. CollectionInput
provides a convenience for mounting a selected ConfigKit input into a collection.
Promptkit now uses ConfigKit v0.8.0, including its optional source specification
header support.
Engine.WithNamespaces creates an immutable view with separate prompt, profile,
and backend scopes for short caller-supplied IDs. Views share the underlying
configuration, clients, capacity pools, and prepared-execution owner. Explicitly
qualified IDs and configured references keep their exact identities.
ListProfiles and ListPrompts support namespace filters. New ListBackends,
ListNamespaces, and ListCollections methods expose captured resource and
collection inventories. See the collection format,
scoped-view guide, and
discovery guide.
Explicit Smoke Diagnostics
Engine.SmokeTest provides backend reachability, authentication, text inference,
and structured-output inference diagnostics. Reports provide factual
observations, timing, and available usage rather than an overall readiness
verdict. Optional Boolean facts distinguish negative observations from unknown
or inapplicable checks; matching a JSON schema does not prove that a provider
enforced it.
A concluded diagnostic can report failure with a nil Go error. Invalid requests return ordinary errors, and caller cancellation can return partial observations with a recognizable context error. Diagnostics can contact providers and incur inference costs only when explicitly invoked; they are not automatic execution or release checks. See the smoke diagnostic guide and API GoDoc.
Breaking Changes And Upgrade
Consumers upgrading from v0.15.0 should follow the configuration and API migration guide:
- Supply backend and profile definitions explicitly. Promptkit no longer bundles
provider catalogs or the
promptkit-openrouter-standardandpromptkit-openrouter-autoprofiles. Conventional backend names do not install definitions automatically. Applications choose and maintain their sources. - Convert version-keyed prompt mappings into one definition per prompt ID.
Prompt
versionis now an optional descriptive label, not a selector. Choose deliberately which former definition to install. - Remove
PromptVersionselectors fromRunRequest,RequirementInspectionRequest, andSmokeTestRequest, where applicable. Change prompt inspection calls toInspectPrompt(ctx, promptID). Update code consuming version-bearing inspection, identity, result, or observation fields to handle optional labels, including nil and explicitly empty labels. - When moving resources into collections, update stored backend, profile, and
diagnostic-default references to their intended qualified IDs. Mounting a
source does not rewrite references; profile inheritance remains within its
sibling mapping. Root configuration
version, when supplied, is now a source specification header, distinct from descriptive resource labels.
The migration guide includes identity mappings and before/after prompt examples. The maintained offline example demonstrates explicit composition, source-relative content, scoped preparation, and inventory without contacting a provider.
After adapting configuration and API calls:
go get gitea.maximumdirect.net/eric/promptkit@v0.16.0
Correctness And Efficiency
Collection prompt materialization shares one lazy origin-metadata snapshot, avoiding repeated full metadata copies across collections. Internal prepared snapshots detach optional prompt labels. Smoke diagnostics preserve caller cancellation and report actual inference destinations and known-zero usage when no generation request was dispatched.