Plan bundled OpenRouter configuration
This commit is contained in:
@@ -41,10 +41,10 @@ ConfigKit adapter. Place it in its own lowest-priority underlay, before every
|
||||
caller underlay and the main input. Preserve the existing order and grouping
|
||||
of caller inputs.
|
||||
|
||||
Enable the bundle by default, with a public engine option to disable it entirely.
|
||||
Enable the bundle by default, with `WithBundledOpenRouter(bool)` to disable or
|
||||
enable it explicitly.
|
||||
This follows the agreed convenience-oriented direction while preserving the
|
||||
ability to supply an application's complete catalog. Choose the exact option
|
||||
name during implementation using existing facade conventions.
|
||||
ability to supply an application's complete catalog.
|
||||
|
||||
Bundling a profile makes it available for explicit selection by a prompt or
|
||||
request. It does not establish an implicit execution profile, change profile
|
||||
@@ -133,9 +133,10 @@ The initial set contains seventeen root profiles:
|
||||
| `auto-max` | Inherits `auto`; sets cost tier `max`. |
|
||||
| `free` | OpenRouter free-model router (`openrouter/free`). |
|
||||
|
||||
These profile IDs are selected. Confirm the exact provider `model` slugs for
|
||||
all family aliases during implementation rather than deriving them mechanically
|
||||
from profile IDs. If a requested alias is unavailable, surface that mismatch
|
||||
These profile IDs are selected. The companion [implementation plan](implementation.md)
|
||||
records the exact provider `model` slugs checked against the public alias pages.
|
||||
Keep those mappings explicit rather than deriving them mechanically from IDs.
|
||||
If a requested alias becomes unavailable, surface that mismatch
|
||||
instead of silently substituting a pinned model or dropping the profile.
|
||||
The tilde and slash in a provider model slug remain part of that value; they
|
||||
do not change the root placement of the PromptKit profile.
|
||||
@@ -169,7 +170,6 @@ OpenRouter documents the
|
||||
[GPT Sol latest alias](https://openrouter.ai/~openai/gpt-sol-latest),
|
||||
[auto router](https://openrouter.ai/docs/guides/routing/routers/auto-router), and
|
||||
[free router](https://openrouter.ai/docs/guides/routing/routers/free-router).
|
||||
Verify the chosen slugs against current provider documentation when implementing.
|
||||
Stable selectors reduce maintenance but do not freeze model selection, price,
|
||||
availability, supported parameters, or output behavior. Describe the free router
|
||||
as the provider's offering rather than adding PromptKit guarantees about future
|
||||
@@ -212,35 +212,32 @@ automatic refresh mechanism is planned. Provider aliases and routers may change
|
||||
their targets independently of that release; the inspected configured slug
|
||||
does not identify or pin the concrete model selected upstream.
|
||||
|
||||
## Implementation Work
|
||||
## Acceptance And Documentation
|
||||
|
||||
1. Verify the provider endpoint and exact model values for the seventeen selected
|
||||
root profiles. Local HTTP checks establish payload construction, not provider
|
||||
acceptance. A live provider check may supplement that verification without
|
||||
becoming a recurring credential-dependent test requirement.
|
||||
2. Add the embedded YAML backend and profiles, and integrate their dedicated
|
||||
underlay with engine construction. Add the disable option using the existing
|
||||
facade option pattern. Apply the ordinary load/normalize/validate lifecycle.
|
||||
3. Verify default availability, disabling, caller precedence, whole-record
|
||||
replacement, and inherited variants through the real configuration loader.
|
||||
Include an application-provided OpenRouter collection and a replaced backend
|
||||
to exercise interaction with external catalogs. Verify all five cost-tier
|
||||
profiles inherit the base backend/model and send the expected top-level
|
||||
`plugins` array through the built-in HTTP client. Add representative explicit
|
||||
`append` and `replace` mode cases. Add a targeted case replacing root `auto`
|
||||
in a higher layer with a different backend/model, then verify its cost-tier
|
||||
children inherit those effective values and retain their plugin settings.
|
||||
4. Verify listing and inspection reflect effective definitions and meaningful
|
||||
source evidence. Exercise request preparation with a fake client or local
|
||||
server as appropriate; construction must not depend on provider reachability
|
||||
or a live API key. Reuse existing credential tests and add coverage only for
|
||||
new integration behavior. Cover default reachability, the authentication
|
||||
adapter, inference fallback to `gpt-luna-latest`, explicit prompt/profile
|
||||
selection, and application replacement of the fallback profile or metadata.
|
||||
5. Update the format reference, consumer guide, relevant GoDoc, and maintained
|
||||
examples when implementation lands. Explain how to disable, replace, or derive
|
||||
from bundled profiles, and distinguish routers/latest aliases from fixed
|
||||
models. Include the inventory/inspection change in release notes.
|
||||
The companion implementation plan owns the staged work. The integrated result
|
||||
should demonstrate:
|
||||
|
||||
- Default availability and full disabling through the ordinary configuration
|
||||
lifecycle, without construction-time provider or credential access.
|
||||
- Caller precedence, whole-record replacement, inherited variants, explicit
|
||||
append/replace modes, and coexistence with an external OpenRouter collection.
|
||||
- All five cost-tier profiles inheriting the effective `auto` backend/model,
|
||||
retaining their plugin settings even after parent replacement, and producing
|
||||
the expected top-level `plugins` array through the built-in HTTP client.
|
||||
- Listing and inspection of effective definitions with meaningful source evidence.
|
||||
- Explicit smoke diagnostics using backend endpoint fallbacks, authentication,
|
||||
inference defaults, explicit selection precedence, and effective application
|
||||
replacements of the default profile or backend metadata.
|
||||
|
||||
Offline HTTP tests establish payload construction, not provider acceptance.
|
||||
Credential-dependent live checks are not recurring test requirements. Existing
|
||||
credential behavior remains authoritative; coverage should focus on new
|
||||
integration risks rather than duplicate that suite.
|
||||
|
||||
The format reference, consumer guide, relevant GoDoc, and maintained examples
|
||||
should explain disabling, replacement, and inheritance. Release notes should
|
||||
identify inventory and inspection changes. Provider latest aliases and routers
|
||||
remain distinct from fixed models and carry no PromptKit upstream guarantees.
|
||||
|
||||
Keep current-state documentation unchanged until implementation lands. Retire
|
||||
this roadmap after the implemented behavior reaches its durable owners. No new
|
||||
|
||||
Reference in New Issue
Block a user