Upgrade PromptKit runtime baseline
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# PromptKit Integration
|
||||
|
||||
Notarius pins
|
||||
[`gitea.maximumdirect.net/eric/promptkit` v0.10.0](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.10.0)
|
||||
[`gitea.maximumdirect.net/eric/promptkit` v0.11.0](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0)
|
||||
as its in-process prompt engine. The upstream
|
||||
[Go package consumer guide](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.10.0/docs/consumers/pkg-promptkit.md)
|
||||
[Go package consumer guide](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/docs/consumers/pkg-promptkit.md)
|
||||
owns the public engine API, and the upstream
|
||||
[format reference](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.10.0/docs/formats.md)
|
||||
[format reference](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/docs/formats.md)
|
||||
owns prompt, profile, and schema file contracts.
|
||||
|
||||
## Supported Boundary
|
||||
@@ -27,7 +27,7 @@ Notarius relies on the root `promptkit` package to:
|
||||
admission exhaustion through `ErrCapacityExceeded`.
|
||||
|
||||
The pinned
|
||||
[`BackendLocal`, `LocalBackend`, and `WithBackend` API](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.10.0/backends.go)
|
||||
[`BackendLocal`, `LocalBackend`, and `WithBackend` API](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/backends.go)
|
||||
owns the registration and backend-capacity contract.
|
||||
|
||||
For one completion, the adapter calls `PrepareExecution`, takes a
|
||||
@@ -71,7 +71,9 @@ endpoint-only profiles have no such backend limit. The adapter translates
|
||||
PromptKit capacity rejection into the provider-neutral Notarius
|
||||
`ErrLLMCapacityExceeded` contract. It may include the normalized selected
|
||||
backend ID in safe diagnostic context, without exposing PromptKit's capacity
|
||||
error type, and leaves retries to the calling pipeline stage.
|
||||
error type. PromptKit's built-in client retries eligible transient HTTP failures
|
||||
with its v0.11.0 default of two additional attempts per generation; Notarius
|
||||
keeps pipeline-stage retries outside that completion boundary.
|
||||
|
||||
## Profile Sources And Compatibility
|
||||
|
||||
@@ -86,7 +88,7 @@ configuration and deployment workflow are defined in
|
||||
[Operations](../operations.md#promptkit-profile-deployment).
|
||||
|
||||
PromptKit owns `base_profile` resolution under its
|
||||
[pinned format rules](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.10.0/docs/formats.md).
|
||||
[pinned format rules](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/docs/formats.md).
|
||||
Notarius records the selected leaf identity and resolved target without parsing
|
||||
or merging inheritance. An unset filesystem `api_key_env` is optional and may
|
||||
reach the provider without authorization, which can result in a 401 or 403.
|
||||
@@ -125,7 +127,7 @@ PromptKit's opt-in `promptkit-openrouter-standard` and
|
||||
`promptkit-openrouter-auto` names provide name continuity within its
|
||||
selected-and-tested dependency scope, not a fixed model or provider availability
|
||||
guarantee. See the upstream
|
||||
[catalog compatibility policy](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.10.0/docs/release.md#catalog-profile-compatibility).
|
||||
[catalog compatibility policy](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/docs/policy/release.md#catalog-profile-compatibility).
|
||||
|
||||
Use a complete operator-owned profile with explicit backend or endpoint, model,
|
||||
and settings when those choices must remain operator-controlled. The embedded
|
||||
@@ -133,7 +135,7 @@ and settings when those choices must remain operator-controlled. The embedded
|
||||
external catalog profile. An upgrade updates Notarius's compiled-in catalog
|
||||
checkpoint identity so prior profile-source checkpoints are not reused.
|
||||
|
||||
Notarius supports this boundary against PromptKit v0.10.0. Its fallback source,
|
||||
Notarius supports this boundary against PromptKit v0.11.0. Its fallback source,
|
||||
prepared-execution, inspection, and typed capacity APIs are used as public
|
||||
upstream contracts; other PromptKit APIs or file-format behavior are not
|
||||
implicitly supported. A dependency upgrade requires reviewing the adapter,
|
||||
@@ -162,3 +164,9 @@ profile/configuration contracts against the upstream documentation. Maintained
|
||||
production prompts use PromptKit's bounded structural-repair contract; their
|
||||
current declaration is one additional repair attempt. Notarius retains the
|
||||
transport-neutral boundary and does not expose PromptKit types to modules.
|
||||
|
||||
PromptKit v0.11.0 is licensed under
|
||||
[LGPL-3.0-or-later](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/LICENSE).
|
||||
Its accompanying [GPLv3 notice](https://gitea.maximumdirect.net/eric/promptkit/src/tag/v0.11.0/COPYING)
|
||||
is incorporated by that license. This dependency change does not alter
|
||||
Notarius's source license or distribution workflow.
|
||||
|
||||
@@ -258,14 +258,16 @@ diagnostics; see
|
||||
## Timeout Ownership
|
||||
|
||||
The caller context remains the outer cancellation authority. PromptKit applies
|
||||
a positive effective generation timeout as an inner request deadline; an
|
||||
explicit zero disables only that generation deadline. The HTTP client timeout
|
||||
is a separate transport-wide cap. Notarius forwards the caller context and
|
||||
does not install another timeout wrapper around PromptKit.
|
||||
a positive effective generation timeout as an inner request deadline for each
|
||||
built-in generation attempt; an explicit zero disables only that generation
|
||||
deadline. The HTTP client timeout is a separate transport-wide cap. Notarius
|
||||
forwards the caller context and does not install another timeout wrapper around
|
||||
PromptKit.
|
||||
|
||||
The selected PromptKit profile owns generation settings. Notarius binding
|
||||
retries remain outside the adapter and repeat the complete module operation
|
||||
and validation chain. PromptKit does not add a provider retry loop.
|
||||
The selected PromptKit profile owns generation settings. PromptKit v0.11.0
|
||||
performs up to two additional built-in attempts for eligible transient HTTP
|
||||
failures in one generation, while Notarius binding retries remain outside the
|
||||
adapter and repeat the complete module operation and validation chain.
|
||||
Operator-facing behavior is summarized in
|
||||
[Operations](../operations.md#operational-limits), and the pinned upstream
|
||||
contract is identified in
|
||||
|
||||
@@ -352,7 +352,9 @@ Provider execution settings and the generation timeout come from the selected
|
||||
PromptKit profile. The invocation-only **--reasoning-effort** and
|
||||
**--clear-reasoning-effort** controls may replace or clear that profile setting
|
||||
for all LLM-backed calls in one run without changing the profile. PromptKit
|
||||
structural output repair happens within one structured-completion call. Its
|
||||
v0.11.0 also retries eligible transient HTTP failures with its built-in default
|
||||
of two additional attempts per generation. This retry work is separate from
|
||||
structural output repair, which happens within one structured-completion call. Its
|
||||
effective `structured_output_repair_attempts` limit is resolved from the
|
||||
selected binding, then the pipeline, then the prompt declaration; see
|
||||
[module bindings](config.md#module-bindings-and-validators). This is distinct
|
||||
@@ -360,19 +362,20 @@ from Notarius binding **retries**, which rerun the complete module operation
|
||||
and validation chain and do not consume or replenish the structural-repair
|
||||
limit. The maintained production prompts declare one repair attempt, paid only
|
||||
after a structural failure. One structured completion with repair budget **R**
|
||||
makes at most **R + 1** serial provider calls. If one stage attempt performs
|
||||
**C** structured completions, a binding with **retries: N** has a maximum of
|
||||
**(N + 1) * C * (R + 1)** provider calls; LLM-backed validators have their own
|
||||
corresponding invocation counts and budgets. This is an upper bound, not a
|
||||
promise that every call reaches a provider.
|
||||
contains at most **R + 1** serial generations. Each generation can now contain
|
||||
more than one provider call when PromptKit retries an eligible transient
|
||||
failure. LLM-backed validators have their own corresponding invocation and
|
||||
repair budgets. These are bounds on attempted work, not a promise that every
|
||||
call reaches a provider.
|
||||
|
||||
Timeouts are layered. Caller cancellation is the outer authority. A positive
|
||||
effective generation timeout adds an inner request deadline, while zero
|
||||
disables only that generation deadline. The HTTP client timeout remains a
|
||||
transport-wide cap. Notarius does not add another timeout around PromptKit.
|
||||
Repairs are serial within the same caller context, so their worst-case latency
|
||||
and cost follow the provider-call bound above; provision run deadlines and
|
||||
provider budgets accordingly. Credentials remain optional unless the selected
|
||||
effective generation timeout adds an inner request deadline to each built-in
|
||||
generation attempt, while zero disables only that generation deadline. The HTTP
|
||||
client timeout remains a transport-wide cap. Notarius does not add another
|
||||
timeout around PromptKit. Retries and repairs are serial within the same caller
|
||||
context, so their worst-case latency and cost can exceed the structural-repair
|
||||
bound above; provision run deadlines and provider budgets accordingly.
|
||||
Credentials remain optional unless the selected
|
||||
PromptKit profile requires one, in which case preparation fails before a
|
||||
provider call when its configured credential is unavailable.
|
||||
The pinned upstream boundary and profile-format links are in
|
||||
|
||||
@@ -99,6 +99,8 @@ historical docs and explicit legacy-rejection tests are not defects.
|
||||
|
||||
## Stage 2 — Upgrade The PromptKit Runtime Baseline
|
||||
|
||||
**Status:** Completed 2026-09-25.
|
||||
|
||||
**Goal:** Adopt the compatible upstream dependency and document its changed
|
||||
default before adding Notarius controls. One small prompt.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user