mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-05 00:01:36 +00:00
* feat(openai): add provider-owned route facts * fix(openai): harden provider route facts * test(codex): update rebased auth fixtures * chore: leave release notes to release workflow * fix(openai): align route auth with current contracts * test(openai): align route and shard expectations * test(openai): satisfy route fixture contracts * fix(openai): preserve direct profile forwarding * test(models): complete route auth mocks * test(codex): type compaction factory mock * fix(openai): preserve provider-native model ids * test(agents): align route auth fixtures * style(agents): format route integrations * test(plugin-sdk): pin current surface counts
72 lines
2.4 KiB
TypeScript
72 lines
2.4 KiB
TypeScript
/**
|
|
* Public SDK type surface for model provider and model definition config.
|
|
*/
|
|
import type { ModelApi } from "../config/types.models.js";
|
|
|
|
export type {
|
|
BedrockDiscoveryConfig,
|
|
ModelApi,
|
|
ModelCompatConfig,
|
|
ModelDefinitionConfig,
|
|
ModelProviderConfig,
|
|
} from "../config/types.models.js";
|
|
|
|
export type ProviderModelRouteSource = {
|
|
api?: ModelApi | null;
|
|
baseUrl?: unknown;
|
|
};
|
|
|
|
/** A concrete provider route. Order expresses provider default, never credential precedence. */
|
|
export type ProviderModelRouteAuthRequirement = "api-key" | "subscription";
|
|
export type ProviderRouteOverridePresence = "none" | "present";
|
|
export type ProviderModelRouteRuntimePolicy = {
|
|
/** Agent runtime ids that can reproduce this route without losing transport behavior. */
|
|
compatibleIds: readonly string[];
|
|
};
|
|
|
|
export type ProviderModelRouteCandidate = {
|
|
api: ModelApi;
|
|
baseUrl: string;
|
|
authRequirement: ProviderModelRouteAuthRequirement;
|
|
/** Secret-free summary of request behavior the selected runtime must reproduce. */
|
|
requestTransportOverrides: ProviderRouteOverridePresence;
|
|
/** Provider-owned native-runtime compatibility for this concrete route. */
|
|
runtimePolicy?: ProviderModelRouteRuntimePolicy;
|
|
};
|
|
|
|
export type ProviderModelRouteResolution =
|
|
| {
|
|
kind: "routes";
|
|
routes: readonly [ProviderModelRouteCandidate, ...ProviderModelRouteCandidate[]];
|
|
/** Advisory only; authored agentRuntime policy remains authoritative. */
|
|
defaultRuntimeId?: string;
|
|
}
|
|
| {
|
|
kind: "indeterminate";
|
|
/** Advisory only; preserves the provider's implicit runtime while route facts are absent. */
|
|
defaultRuntimeId?: string;
|
|
}
|
|
| {
|
|
kind: "incompatible";
|
|
code: string;
|
|
message: string;
|
|
};
|
|
|
|
export type ProviderResolveModelRoutesContext = {
|
|
provider: string;
|
|
modelId?: string;
|
|
/** Effective secret-free request behavior for this provider/model pair. */
|
|
requestTransportOverrides?: ProviderRouteOverridePresence;
|
|
configuredModel?: ProviderModelRouteSource;
|
|
configuredProvider?: ProviderModelRouteSource;
|
|
/** Environment view; the provider owns interpretation of its variables. */
|
|
env?: Readonly<Record<string, string | undefined>>;
|
|
/** Physical route facts for one logical model; input order is not preference. */
|
|
observedRoutes?: readonly ProviderModelRouteSource[];
|
|
};
|
|
|
|
export type ProviderNormalizeModelCatalogIdContext = {
|
|
provider: string;
|
|
modelId: string;
|
|
};
|