7.5 KiB
Rakestrawhome Built-In Inference Backend
Purpose
Promptkit should provide the maintainer's Rakestrawhome inference service as a second built-in OpenAI-compatible backend, alongside OpenRouter. This removes the repeated backend and profile registration currently required in every downstream application that uses the service.
The feature is intentionally a built-in registration rather than another convenience constructor. Engines should receive the same immutable backend definition, credential convention, concurrency policy, and initial model profile without consumer assembly code.
Target End State
Every newly constructed engine contains two reserved built-in backend IDs:
openrouter, with its existing definition and behavior unchanged; andrakestrawhome, configured with the OpenAI-compatible base endpointhttps://inference.ai.rakestrawhome.com/v1, API-key environment variableRAKESTRAWHOME_INFERENCE_API_KEY, and a concurrency limit of four active model-generation calls per engine.
The Rakestrawhome backend uses Promptkit's existing default bounded waiting capacity of 1024. The capacity manager therefore permits no more than four simultaneous generation calls for this backend while retaining the existing high, bounded backlog policy. Ordinary backend, profile, runtime endpoint, credential, and request-setting precedence remains unchanged.
Promptkit also embeds this profile:
id: rakestrawhome-gemma-4-31b
backend: rakestrawhome
model: google/gemma-4-31b-it
The profile deliberately omits optional generation controls so the inference
service and model apply their native defaults. It does not repeat the backend
endpoint or credential environment-variable name. The existing
gemma-4-31b OpenRouter profile and its current model spelling and settings
remain unchanged.
Consumers can select rakestrawhome-gemma-4-31b anywhere an ordinary profile
ID is accepted. Higher-precedence in-memory, configured, or application
fallback profile sources may continue to replace the embedded profile by ID.
Consumers can refer to the built-in backend through a new exported constant,
BackendRakestrawHome, while the exact backend definition remains internal.
Backend Registry End State
Built-in registry construction owns a small maintained collection rather than an inline OpenRouter special case. Both built-ins enter the same normalization, validation, immutable storage, defensive-copy, and capacity-policy paths.
The internal backend package owns stable IDs and connection and capacity
policy. The root facade exposes only the stable Rakestrawhome ID through
BackendRakestrawHome. Public uniqueness and reservation rules apply equally
to every built-in.
Consumer additions must remain unable to replace either reserved built-in ID. Registrations under all other valid IDs retain their current behavior. Engine construction must not contact the Rakestrawhome endpoint, read the API-key environment variable, or require credentials merely because the backend is registered. Credential resolution occurs only when a selected execution target uses it, under the existing precedence and error contracts.
The built-in OpenAI-compatible client will append chat/completions to the
registered base path, producing
https://inference.ai.rakestrawhome.com/v1/chat/completions. No provider-
specific transport implementation is required.
Built-In Profile Catalog End State
The Rakestrawhome Gemma profile is an embedded YAML asset in the existing built-in profile repository. No additional repository layer or provider- specific profile loader exists.
Catalog validation permits the maintained built-in backend IDs and establishes that:
- every embedded profile has a unique, nonblank ID;
- every embedded profile selects an approved built-in backend;
- no embedded profile contains a raw API key or repeats an endpoint or API-key environment-variable name owned by its backend; and
- the new profile resolves to the exact intended backend and model through the ordinary repository and engine assembly.
Retain the existing source precedence: consumer profile sources may override the new built-in profile, but a malformed authoritative override remains an error rather than silently falling through.
Public Compatibility And Migration
This feature adds one public constant and one embedded profile ID. It does not remove or change an existing public declaration or profile.
The backend ID rakestrawhome becomes reserved. A downstream application that
currently registers that ID manually must remove its WithBackend
registration when adopting this feature; otherwise construction will correctly
report a duplicate built-in ID. It may also remove any equivalent manually
supplied profile and select rakestrawhome-gemma-4-31b directly. A consumer
profile with the same profile ID remains a supported higher-precedence
override rather than a registry collision.
Direct API-key and runtime endpoint overrides continue to work. Promptkit must never embed, inspect, log, or document an actual credential value; only the environment-variable name belongs in the built-in definition.
Documentation End State
Canonical current-state documentation:
- describes the backend registry as containing multiple built-ins in the architecture policy and internal component overview;
- describes both built-in backend definitions and the mixed-backend profile catalog in the framework format reference and internal source overview;
- lists
rakestrawhome-gemma-4-31bin the built-in profile catalog; - documents
BackendRakestrawHome, the removal of redundant downstream registration, the credential variable, and the four-call concurrency policy in public GoDoc and consumer guidance; and - retains the OpenAI-compatible integration document as the canonical owner of endpoint composition and outbound wire behavior.
Acceptance Criteria
The completed feature is protected at the narrowest stable owners:
- registry tests should cover both exact built-in definitions, default queue normalization, capacity-policy publication, lookup ownership, and duplicate rejection for both reserved IDs;
- built-in profile tests should validate the generalized catalog invariants and exact Rakestrawhome profile;
- a representative root integration test proves that selecting the new profile resolves the expected backend ID, endpoint, model, and credential environment-variable name without making a live network request or requiring a real credential;
- the registry's exact capacity-policy tests and the existing generic engine capacity tests together protect the engine-local four-call limit without a duplicate provider-specific concurrency matrix; and
- existing OpenRouter, custom-backend, profile-precedence, endpoint-override, credential, capacity, and injected-client tests should remain green without duplicating their full behavioral matrices for the new built-in.
Non-Goals
This feature does not add:
- provider discovery, health checking, model enumeration, or live integration tests;
- automatic fallback, retry, or routing between OpenRouter and Rakestrawhome;
- global mutable registry state or consumer replacement of built-in IDs;
- a second model-client protocol or non-OpenAI-compatible transport;
- provider-specific generation defaults that have not been deliberately selected; or
- any embedded API-key value.
Open Questions
None. The backend ID, public constant direction, endpoint base path, credential environment-variable name, concurrency and queue policy, profile ID, model name, optional-setting policy, compatibility behavior, and scope boundaries are fixed by this roadmap.