mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 22:21:33 +00:00
The live codex text provider was a redundant projection of the openai catalog (exclusive provider ownership; the openai plugin's ChatGPT OAuth discovery already serves gpt-5.6-* route-aware). Folding it: - extensions/codex no longer registers a text provider, catalog entry, or synthetic text auth; provider.ts/provider-catalog.ts/provider-discovery.ts and the route-blind model-name heuristics are deleted; the narrow post-harness reasoning fallback moves to an app-server-owned module - openai thinking policy keys on explicit selected-route provenance (api === openai-chatgpt-responses) instead of value-shape inference - models.list gains an optional additive agentRuntime field (configured intent); session agentHarnessId remains the execution proof - doctor --fix migrates the shipped codex/* config shape end to end: every model slot, provider-config merge with blocker-aware conflict handling, sessions, cron payloads (two-phase: runtime policy persists before cron refs rewrite), transcripts; migrated refs carry model-scoped agentRuntime.id=codex preserving the shipped wizard semantics; auto runtime policies normalize to codex with sibling fields preserved; blocked provider conflicts retain the whole legacy namespace fail-closed with an actionable warning - the stale openai:default profile cleanup (#91352) was deliberately deferred to a follow-up after review showed it needs per-agent identity proofs; doctor keeps warning about unusable profiles Fixes #105561 Fixes #84637 Fixes #90420
75 lines
2.3 KiB
TypeScript
75 lines
2.3 KiB
TypeScript
/**
|
|
* Provider-owned thinking policy input.
|
|
*
|
|
* Used by shared `/think`, ACP controls, and directive parsing to ask a
|
|
* provider whether a model supports special reasoning UX such as adaptive,
|
|
* xhigh, max, or a binary on/off toggle.
|
|
*/
|
|
export type ProviderThinkingPolicyContext = {
|
|
provider: string;
|
|
modelId: string;
|
|
};
|
|
|
|
type ProviderThinkingModelCompat = {
|
|
thinkingFormat?: string;
|
|
supportedReasoningEfforts?: readonly string[] | null;
|
|
};
|
|
|
|
/**
|
|
* Provider-owned default thinking policy input.
|
|
*
|
|
* `reasoning` is the merged catalog hint for the selected model when one is
|
|
* available. Providers can use it to keep "reasoning model => low" behavior
|
|
* without re-reading the catalog themselves.
|
|
*
|
|
* `compat` carries model-level request contract facts for the selected model
|
|
* when available. Providers can use it to expose model-specific thinking
|
|
* profiles only when the configured payload style supports them.
|
|
*/
|
|
export type ProviderDefaultThinkingPolicyContext = ProviderThinkingPolicyContext & {
|
|
/** Effective agent runtime selected for this model, when known. */
|
|
agentRuntime?: string | null;
|
|
/** API adapter id from the selected catalog route, when known. */
|
|
api?: string | null;
|
|
reasoning?: boolean;
|
|
params?: Record<string, unknown>;
|
|
compat?: ProviderThinkingModelCompat | null;
|
|
};
|
|
|
|
type ProviderThinkingLevelId =
|
|
| "off"
|
|
| "minimal"
|
|
| "low"
|
|
| "medium"
|
|
| "high"
|
|
| "xhigh"
|
|
| "adaptive"
|
|
| "max"
|
|
| "ultra";
|
|
|
|
type ProviderThinkingLevel = {
|
|
id: ProviderThinkingLevelId;
|
|
/**
|
|
* Optional display label. Use this when the stored value differs from the
|
|
* provider-facing UX, for example binary providers storing `low` but showing
|
|
* `on`.
|
|
*/
|
|
label?: string;
|
|
/**
|
|
* Relative strength used when downgrading a stored level that the selected
|
|
* model no longer supports.
|
|
*/
|
|
rank?: number;
|
|
};
|
|
|
|
export type ProviderThinkingProfile = {
|
|
levels: ProviderThinkingLevel[] | ReadonlyArray<ProviderThinkingLevel>;
|
|
defaultLevel?: ProviderThinkingLevelId | null;
|
|
/**
|
|
* Some bundled providers have model-specific thinking contracts that are more
|
|
* current than cached generic catalog metadata. Keep this opt-in so
|
|
* `reasoning: false` remains authoritative for ordinary catalog entries.
|
|
*/
|
|
preserveWhenCatalogReasoningFalse?: boolean;
|
|
};
|