@iam-brain/opencode-codex-auth 1.2.5 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -98
- package/dist/lib/accounts-tools.d.ts.map +1 -1
- package/dist/lib/accounts-tools.js +1 -3
- package/dist/lib/accounts-tools.js.map +1 -1
- package/dist/lib/codex-native/acquire-auth.d.ts.map +1 -1
- package/dist/lib/codex-native/acquire-auth.js +2 -1
- package/dist/lib/codex-native/acquire-auth.js.map +1 -1
- package/dist/lib/codex-native/catalog-sync.d.ts +1 -1
- package/dist/lib/codex-native/catalog-sync.d.ts.map +1 -1
- package/dist/lib/codex-native/chat-hooks.d.ts.map +1 -1
- package/dist/lib/codex-native/chat-hooks.js.map +1 -1
- package/dist/lib/codex-native/client-identity.js +1 -1
- package/dist/lib/codex-native/client-identity.js.map +1 -1
- package/dist/lib/codex-native/oauth-auth-methods.d.ts.map +1 -1
- package/dist/lib/codex-native/oauth-auth-methods.js +5 -2
- package/dist/lib/codex-native/oauth-auth-methods.js.map +1 -1
- package/dist/lib/codex-native/oauth-server-debug.d.ts +10 -0
- package/dist/lib/codex-native/oauth-server-debug.d.ts.map +1 -0
- package/dist/lib/codex-native/oauth-server-debug.js +92 -0
- package/dist/lib/codex-native/oauth-server-debug.js.map +1 -0
- package/dist/lib/codex-native/oauth-server-network.d.ts +5 -0
- package/dist/lib/codex-native/oauth-server-network.d.ts.map +1 -0
- package/dist/lib/codex-native/oauth-server-network.js +39 -0
- package/dist/lib/codex-native/oauth-server-network.js.map +1 -0
- package/dist/lib/codex-native/oauth-server-types.d.ts +24 -0
- package/dist/lib/codex-native/oauth-server-types.d.ts.map +1 -0
- package/dist/lib/codex-native/oauth-server-types.js +2 -0
- package/dist/lib/codex-native/oauth-server-types.js.map +1 -0
- package/dist/lib/codex-native/oauth-server.d.ts +2 -17
- package/dist/lib/codex-native/oauth-server.d.ts.map +1 -1
- package/dist/lib/codex-native/oauth-server.js +11 -130
- package/dist/lib/codex-native/oauth-server.js.map +1 -1
- package/dist/lib/codex-native/openai-loader-fetch-quota.d.ts +18 -0
- package/dist/lib/codex-native/openai-loader-fetch-quota.d.ts.map +1 -0
- package/dist/lib/codex-native/openai-loader-fetch-quota.js +71 -0
- package/dist/lib/codex-native/openai-loader-fetch-quota.js.map +1 -0
- package/dist/lib/codex-native/openai-loader-fetch-state.d.ts +27 -0
- package/dist/lib/codex-native/openai-loader-fetch-state.d.ts.map +1 -0
- package/dist/lib/codex-native/openai-loader-fetch-state.js +91 -0
- package/dist/lib/codex-native/openai-loader-fetch-state.js.map +1 -0
- package/dist/lib/codex-native/openai-loader-fetch.d.ts.map +1 -1
- package/dist/lib/codex-native/openai-loader-fetch.js +28 -163
- package/dist/lib/codex-native/openai-loader-fetch.js.map +1 -1
- package/dist/lib/codex-native/request-transform-instructions.d.ts +16 -0
- package/dist/lib/codex-native/request-transform-instructions.d.ts.map +1 -0
- package/dist/lib/codex-native/request-transform-instructions.js +96 -0
- package/dist/lib/codex-native/request-transform-instructions.js.map +1 -0
- package/dist/lib/codex-native/request-transform-model-service-tier.d.ts +12 -0
- package/dist/lib/codex-native/request-transform-model-service-tier.d.ts.map +1 -0
- package/dist/lib/codex-native/request-transform-model-service-tier.js +88 -0
- package/dist/lib/codex-native/request-transform-model-service-tier.js.map +1 -0
- package/dist/lib/codex-native/request-transform-model.d.ts +39 -0
- package/dist/lib/codex-native/request-transform-model.d.ts.map +1 -0
- package/dist/lib/codex-native/request-transform-model.js +276 -0
- package/dist/lib/codex-native/request-transform-model.js.map +1 -0
- package/dist/lib/codex-native/request-transform-payload-helpers.d.ts +26 -0
- package/dist/lib/codex-native/request-transform-payload-helpers.d.ts.map +1 -0
- package/dist/lib/codex-native/request-transform-payload-helpers.js +232 -0
- package/dist/lib/codex-native/request-transform-payload-helpers.js.map +1 -0
- package/dist/lib/codex-native/request-transform-payload.d.ts +66 -0
- package/dist/lib/codex-native/request-transform-payload.d.ts.map +1 -0
- package/dist/lib/codex-native/request-transform-payload.js +296 -0
- package/dist/lib/codex-native/request-transform-payload.js.map +1 -0
- package/dist/lib/codex-native/request-transform-pipeline.d.ts +2 -1
- package/dist/lib/codex-native/request-transform-pipeline.d.ts.map +1 -1
- package/dist/lib/codex-native/request-transform-pipeline.js +6 -0
- package/dist/lib/codex-native/request-transform-pipeline.js.map +1 -1
- package/dist/lib/codex-native/request-transform-shared.d.ts +8 -0
- package/dist/lib/codex-native/request-transform-shared.d.ts.map +1 -0
- package/dist/lib/codex-native/request-transform-shared.js +49 -0
- package/dist/lib/codex-native/request-transform-shared.js.map +1 -0
- package/dist/lib/codex-native/request-transform.d.ts +4 -122
- package/dist/lib/codex-native/request-transform.d.ts.map +1 -1
- package/dist/lib/codex-native/request-transform.js +4 -862
- package/dist/lib/codex-native/request-transform.js.map +1 -1
- package/dist/lib/codex-native/session-affinity-state.d.ts +13 -0
- package/dist/lib/codex-native/session-affinity-state.d.ts.map +1 -1
- package/dist/lib/codex-native/session-affinity-state.js +20 -8
- package/dist/lib/codex-native/session-affinity-state.js.map +1 -1
- package/dist/lib/codex-native/static-fallback-models.d.ts +2 -0
- package/dist/lib/codex-native/static-fallback-models.d.ts.map +1 -0
- package/dist/lib/codex-native/static-fallback-models.js +15 -0
- package/dist/lib/codex-native/static-fallback-models.js.map +1 -0
- package/dist/lib/codex-native.d.ts.map +1 -1
- package/dist/lib/codex-native.js +1 -8
- package/dist/lib/codex-native.js.map +1 -1
- package/dist/lib/codex-prompts-cache.d.ts.map +1 -1
- package/dist/lib/codex-prompts-cache.js.map +1 -1
- package/dist/lib/codex-quota-fetch.js +1 -1
- package/dist/lib/codex-quota-fetch.js.map +1 -1
- package/dist/lib/config/behavior-settings.d.ts +3 -0
- package/dist/lib/config/behavior-settings.d.ts.map +1 -0
- package/dist/lib/config/behavior-settings.js +33 -0
- package/dist/lib/config/behavior-settings.js.map +1 -0
- package/dist/lib/config/io.d.ts +16 -0
- package/dist/lib/config/io.d.ts.map +1 -0
- package/dist/lib/config/io.js +64 -0
- package/dist/lib/config/io.js.map +1 -0
- package/dist/lib/config/parse.d.ts +22 -0
- package/dist/lib/config/parse.d.ts.map +1 -0
- package/dist/lib/config/parse.js +327 -0
- package/dist/lib/config/parse.js.map +1 -0
- package/dist/lib/config/resolve.d.ts +27 -0
- package/dist/lib/config/resolve.d.ts.map +1 -0
- package/dist/lib/config/resolve.js +154 -0
- package/dist/lib/config/resolve.js.map +1 -0
- package/dist/lib/config/types.d.ts +74 -0
- package/dist/lib/config/types.d.ts.map +1 -0
- package/dist/lib/config/types.js +160 -0
- package/dist/lib/config/types.js.map +1 -0
- package/dist/lib/config/validation.d.ts +6 -0
- package/dist/lib/config/validation.d.ts.map +1 -0
- package/dist/lib/config/validation.js +171 -0
- package/dist/lib/config/validation.js.map +1 -0
- package/dist/lib/config.d.ts +6 -114
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +6 -855
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/fetch-orchestrator-helpers.d.ts +13 -0
- package/dist/lib/fetch-orchestrator-helpers.d.ts.map +1 -0
- package/dist/lib/fetch-orchestrator-helpers.js +63 -0
- package/dist/lib/fetch-orchestrator-helpers.js.map +1 -0
- package/dist/lib/fetch-orchestrator-types.d.ts +71 -0
- package/dist/lib/fetch-orchestrator-types.d.ts.map +1 -0
- package/dist/lib/fetch-orchestrator-types.js +11 -0
- package/dist/lib/fetch-orchestrator-types.js.map +1 -0
- package/dist/lib/fetch-orchestrator.d.ts +2 -69
- package/dist/lib/fetch-orchestrator.d.ts.map +1 -1
- package/dist/lib/fetch-orchestrator.js +30 -79
- package/dist/lib/fetch-orchestrator.js.map +1 -1
- package/dist/lib/model-catalog/cache-helpers.d.ts +23 -0
- package/dist/lib/model-catalog/cache-helpers.d.ts.map +1 -0
- package/dist/lib/model-catalog/cache-helpers.js +210 -0
- package/dist/lib/model-catalog/cache-helpers.js.map +1 -0
- package/dist/lib/model-catalog/catalog-fetch.d.ts +3 -0
- package/dist/lib/model-catalog/catalog-fetch.d.ts.map +1 -0
- package/dist/lib/model-catalog/catalog-fetch.js +159 -0
- package/dist/lib/model-catalog/catalog-fetch.js.map +1 -0
- package/dist/lib/model-catalog/provider.d.ts +6 -0
- package/dist/lib/model-catalog/provider.d.ts.map +1 -0
- package/dist/lib/model-catalog/provider.js +280 -0
- package/dist/lib/model-catalog/provider.js.map +1 -0
- package/dist/lib/model-catalog/shared.d.ts +99 -0
- package/dist/lib/model-catalog/shared.d.ts.map +1 -0
- package/dist/lib/model-catalog/shared.js +157 -0
- package/dist/lib/model-catalog/shared.js.map +1 -0
- package/dist/lib/model-catalog.d.ts +3 -68
- package/dist/lib/model-catalog.d.ts.map +1 -1
- package/dist/lib/model-catalog.js +3 -767
- package/dist/lib/model-catalog.js.map +1 -1
- package/dist/lib/proactive-refresh.d.ts.map +1 -1
- package/dist/lib/proactive-refresh.js +2 -4
- package/dist/lib/proactive-refresh.js.map +1 -1
- package/dist/lib/quarantine.js.map +1 -1
- package/dist/lib/quota-threshold-alerts.d.ts.map +1 -1
- package/dist/lib/quota-threshold-alerts.js +3 -1
- package/dist/lib/quota-threshold-alerts.js.map +1 -1
- package/dist/lib/rotation.js.map +1 -1
- package/dist/lib/storage/domain-state.d.ts +23 -0
- package/dist/lib/storage/domain-state.d.ts.map +1 -0
- package/dist/lib/storage/domain-state.js +275 -0
- package/dist/lib/storage/domain-state.js.map +1 -0
- package/dist/lib/storage/migration.d.ts +13 -0
- package/dist/lib/storage/migration.d.ts.map +1 -0
- package/dist/lib/storage/migration.js +225 -0
- package/dist/lib/storage/migration.js.map +1 -0
- package/dist/lib/storage.d.ts +2 -9
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +12 -503
- package/dist/lib/storage.js.map +1 -1
- package/package.json +14 -13
- package/schemas/codex-config.schema.json +8 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { resolveCustomPersonalityDescription } from "../personalities.js";
|
|
2
|
+
import { compareModelSlugs, EFFORT_SUFFIX_REGEX, normalizeReasoningEffort, normalizeVerbosity } from "./shared.js";
|
|
3
|
+
const UNRESOLVED_TEMPLATE_MARKER_REGEX = /\{\{\s*[^}]+\s*\}\}/;
|
|
4
|
+
const STALE_BRIDGE_MARKERS = [
|
|
5
|
+
/multi_tool_use\.parallel/i,
|
|
6
|
+
/assistant\s+to=multi_tool_use\.parallel/i,
|
|
7
|
+
/functions\.(read|exec_command|write_stdin|apply_patch|edit|grep|glob|list)\b/i,
|
|
8
|
+
/recipient_name\s*[:=]/i
|
|
9
|
+
];
|
|
10
|
+
const BASELINE_PROVIDER_MODEL_SLUG_REGEX = /^gpt-(5(?:[.-].+)?|oss-(?:120b|20b))$/i;
|
|
11
|
+
function cloneModelTemplate(template, slug) {
|
|
12
|
+
const cloned = { ...template };
|
|
13
|
+
setModelIdentityFields(cloned, slug);
|
|
14
|
+
return cloned;
|
|
15
|
+
}
|
|
16
|
+
function formatModelDisplayNameFromSlug(slug) {
|
|
17
|
+
const tokens = slug
|
|
18
|
+
.trim()
|
|
19
|
+
.split("-")
|
|
20
|
+
.map((part) => part.trim())
|
|
21
|
+
.filter((part) => part.length > 0);
|
|
22
|
+
if (tokens.length === 0)
|
|
23
|
+
return slug;
|
|
24
|
+
const words = tokens.map((token) => {
|
|
25
|
+
if (token.toLowerCase() === "gpt")
|
|
26
|
+
return "GPT";
|
|
27
|
+
if (token.length === 1)
|
|
28
|
+
return token.toUpperCase();
|
|
29
|
+
return `${token.charAt(0).toUpperCase()}${token.slice(1).toLowerCase()}`;
|
|
30
|
+
});
|
|
31
|
+
if (words[0] === "GPT" && words.length > 1) {
|
|
32
|
+
return [`${words[0]}-${words[1]}`, ...words.slice(2)].join(" ");
|
|
33
|
+
}
|
|
34
|
+
return words.join(" ");
|
|
35
|
+
}
|
|
36
|
+
function resolveDisplayName(slug, catalogDisplayName) {
|
|
37
|
+
const trimmed = catalogDisplayName?.trim();
|
|
38
|
+
return trimmed && trimmed.length > 0 ? trimmed : formatModelDisplayNameFromSlug(slug);
|
|
39
|
+
}
|
|
40
|
+
function setModelIdentityFields(model, slug, catalogDisplayName) {
|
|
41
|
+
const display = resolveDisplayName(slug, catalogDisplayName);
|
|
42
|
+
for (const key of ["id", "slug", "model"]) {
|
|
43
|
+
model[key] = slug;
|
|
44
|
+
}
|
|
45
|
+
for (const key of ["name", "displayName", "display_name"]) {
|
|
46
|
+
model[key] = display;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function resolvePersonalityText(model, personality) {
|
|
50
|
+
const vars = model.model_messages?.instructions_variables;
|
|
51
|
+
const normalized = (personality ?? "none").trim().toLowerCase();
|
|
52
|
+
if (!normalized)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (normalized !== "none") {
|
|
55
|
+
const fromFile = resolveCustomPersonalityDescription(normalized);
|
|
56
|
+
if (typeof fromFile === "string" && fromFile.trim()) {
|
|
57
|
+
return fromFile;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (!vars)
|
|
61
|
+
return undefined;
|
|
62
|
+
if (vars.personalities && typeof vars.personalities === "object") {
|
|
63
|
+
const fromMap = vars.personalities[normalized] ?? vars.personalities.default;
|
|
64
|
+
if (typeof fromMap === "string" && fromMap.trim()) {
|
|
65
|
+
return fromMap;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (normalized === "friendly" && typeof vars.personality_friendly === "string" && vars.personality_friendly.trim()) {
|
|
69
|
+
return vars.personality_friendly;
|
|
70
|
+
}
|
|
71
|
+
if (normalized === "pragmatic" &&
|
|
72
|
+
typeof vars.personality_pragmatic === "string" &&
|
|
73
|
+
vars.personality_pragmatic.trim()) {
|
|
74
|
+
return vars.personality_pragmatic;
|
|
75
|
+
}
|
|
76
|
+
if (typeof vars.personality_default === "string" && vars.personality_default.trim()) {
|
|
77
|
+
return vars.personality_default;
|
|
78
|
+
}
|
|
79
|
+
if (typeof vars.personality === "string" && vars.personality.trim()) {
|
|
80
|
+
return vars.personality;
|
|
81
|
+
}
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
function isCompatibleInstructionsText(value) {
|
|
85
|
+
if (UNRESOLVED_TEMPLATE_MARKER_REGEX.test(value))
|
|
86
|
+
return false;
|
|
87
|
+
return !STALE_BRIDGE_MARKERS.some((pattern) => pattern.test(value));
|
|
88
|
+
}
|
|
89
|
+
function normalizeSafeInstructions(value) {
|
|
90
|
+
if (!value)
|
|
91
|
+
return undefined;
|
|
92
|
+
const trimmed = value.trim();
|
|
93
|
+
if (!trimmed)
|
|
94
|
+
return undefined;
|
|
95
|
+
return isCompatibleInstructionsText(trimmed) ? trimmed : undefined;
|
|
96
|
+
}
|
|
97
|
+
export function resolveInstructionsForModel(model, personality) {
|
|
98
|
+
const template = model.model_messages?.instructions_template?.trim();
|
|
99
|
+
const base = model.base_instructions?.trim();
|
|
100
|
+
const safeBase = normalizeSafeInstructions(base);
|
|
101
|
+
if (!template)
|
|
102
|
+
return safeBase;
|
|
103
|
+
if (!template.includes("{{") && !template.includes("}}")) {
|
|
104
|
+
return normalizeSafeInstructions(template) ?? safeBase;
|
|
105
|
+
}
|
|
106
|
+
const personalityText = resolvePersonalityText(model, personality) ?? "";
|
|
107
|
+
const rendered = template
|
|
108
|
+
.replace(/\{\{\s*personality\s*\}\}/gi, personalityText)
|
|
109
|
+
.replace(/\n{3,}/g, "\n\n")
|
|
110
|
+
.trim();
|
|
111
|
+
return normalizeSafeInstructions(rendered) ?? safeBase;
|
|
112
|
+
}
|
|
113
|
+
function resolveAllowedSlugs(catalogModels, fallback) {
|
|
114
|
+
const preferred = (catalogModels ?? []).map((model) => model.slug).filter((slug) => slug.length > 0);
|
|
115
|
+
if (preferred.length > 0) {
|
|
116
|
+
return Array.from(new Set(preferred)).sort(compareModelSlugs);
|
|
117
|
+
}
|
|
118
|
+
return Array.from(new Set(fallback.map((slug) => slug.trim().toLowerCase()).filter(Boolean))).sort(compareModelSlugs);
|
|
119
|
+
}
|
|
120
|
+
function resolveAllowedSlugsFromBaselineProvider(providerModels, fallback) {
|
|
121
|
+
const providerBaseline = Object.keys(providerModels)
|
|
122
|
+
.map((slug) => slug.trim().toLowerCase())
|
|
123
|
+
.filter((slug) => BASELINE_PROVIDER_MODEL_SLUG_REGEX.test(slug));
|
|
124
|
+
return Array.from(new Set([...fallback.map((slug) => slug.trim().toLowerCase()), ...providerBaseline].filter(Boolean))).sort(compareModelSlugs);
|
|
125
|
+
}
|
|
126
|
+
function resolveTemplateSource(providerModels) {
|
|
127
|
+
for (const candidate of ["gpt-5.4", "gpt-5.3-codex", "gpt-5.2-codex", "gpt-5.1-codex", "gpt-5.2"]) {
|
|
128
|
+
const found = providerModels[candidate];
|
|
129
|
+
if (found)
|
|
130
|
+
return found;
|
|
131
|
+
}
|
|
132
|
+
const first = Object.values(providerModels)[0];
|
|
133
|
+
return first;
|
|
134
|
+
}
|
|
135
|
+
function stripEffortSuffix(slug) {
|
|
136
|
+
return slug.replace(EFFORT_SUFFIX_REGEX, "");
|
|
137
|
+
}
|
|
138
|
+
function ensureModelOptions(model) {
|
|
139
|
+
const existing = model.options;
|
|
140
|
+
if (typeof existing === "object" && existing !== null && !Array.isArray(existing)) {
|
|
141
|
+
return existing;
|
|
142
|
+
}
|
|
143
|
+
const options = {};
|
|
144
|
+
model.options = options;
|
|
145
|
+
return options;
|
|
146
|
+
}
|
|
147
|
+
function findModelBySlug(catalogModels, slug) {
|
|
148
|
+
if (!catalogModels || catalogModels.length === 0)
|
|
149
|
+
return undefined;
|
|
150
|
+
const normalized = slug.trim().toLowerCase();
|
|
151
|
+
const exact = catalogModels.find((item) => item.slug === normalized);
|
|
152
|
+
if (exact)
|
|
153
|
+
return exact;
|
|
154
|
+
const base = stripEffortSuffix(normalized);
|
|
155
|
+
return catalogModels.find((item) => item.slug === base);
|
|
156
|
+
}
|
|
157
|
+
export function getRuntimeDefaultsForModel(model) {
|
|
158
|
+
if (!model)
|
|
159
|
+
return undefined;
|
|
160
|
+
const out = {};
|
|
161
|
+
if (typeof model.apply_patch_tool_type === "string") {
|
|
162
|
+
const next = model.apply_patch_tool_type.trim();
|
|
163
|
+
if (next)
|
|
164
|
+
out.applyPatchToolType = next;
|
|
165
|
+
}
|
|
166
|
+
const defaultReasoningEffort = normalizeReasoningEffort(model.default_reasoning_level);
|
|
167
|
+
if (defaultReasoningEffort) {
|
|
168
|
+
out.defaultReasoningEffort = defaultReasoningEffort;
|
|
169
|
+
}
|
|
170
|
+
const supportedReasoningEfforts = Array.from(new Set((model.supported_reasoning_levels ?? [])
|
|
171
|
+
.map((level) => normalizeReasoningEffort(level.effort))
|
|
172
|
+
.filter((value) => value !== undefined)));
|
|
173
|
+
if (supportedReasoningEfforts.length > 0) {
|
|
174
|
+
out.supportedReasoningEfforts = supportedReasoningEfforts;
|
|
175
|
+
}
|
|
176
|
+
if (typeof model.supports_reasoning_summaries === "boolean") {
|
|
177
|
+
out.supportsReasoningSummaries = model.supports_reasoning_summaries;
|
|
178
|
+
}
|
|
179
|
+
if (typeof model.reasoning_summary_format === "string") {
|
|
180
|
+
const next = model.reasoning_summary_format.trim();
|
|
181
|
+
if (next)
|
|
182
|
+
out.reasoningSummaryFormat = next;
|
|
183
|
+
}
|
|
184
|
+
if (typeof model.supports_parallel_tool_calls === "boolean") {
|
|
185
|
+
out.supportsParallelToolCalls = model.supports_parallel_tool_calls;
|
|
186
|
+
}
|
|
187
|
+
if (typeof model.support_verbosity === "boolean") {
|
|
188
|
+
out.supportsVerbosity = model.support_verbosity;
|
|
189
|
+
}
|
|
190
|
+
const defaultVerbosity = normalizeVerbosity(model.default_verbosity);
|
|
191
|
+
if (defaultVerbosity) {
|
|
192
|
+
out.defaultVerbosity = defaultVerbosity;
|
|
193
|
+
}
|
|
194
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
195
|
+
}
|
|
196
|
+
export function getRuntimeDefaultsForSlug(slug, catalogModels) {
|
|
197
|
+
const model = findModelBySlug(catalogModels, slug);
|
|
198
|
+
return getRuntimeDefaultsForModel(model);
|
|
199
|
+
}
|
|
200
|
+
export function applyCodexCatalogToProviderModels(input) {
|
|
201
|
+
const allowedSlugs = input.catalogModels && input.catalogModels.length > 0
|
|
202
|
+
? resolveAllowedSlugs(input.catalogModels, input.fallbackModels)
|
|
203
|
+
: resolveAllowedSlugsFromBaselineProvider(input.providerModels, input.fallbackModels);
|
|
204
|
+
const allowed = new Set(allowedSlugs);
|
|
205
|
+
const bySlug = new Map((input.catalogModels ?? []).map((model) => [model.slug, model]));
|
|
206
|
+
const templateSource = resolveTemplateSource(input.providerModels);
|
|
207
|
+
for (const slug of allowedSlugs) {
|
|
208
|
+
if (!input.providerModels[slug]) {
|
|
209
|
+
if (templateSource) {
|
|
210
|
+
input.providerModels[slug] = cloneModelTemplate(templateSource, slug);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
input.providerModels[slug] = { id: slug, model: slug };
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
setModelIdentityFields(input.providerModels[slug], slug, bySlug.get(slug)?.display_name);
|
|
218
|
+
}
|
|
219
|
+
setModelIdentityFields(input.providerModels[slug], slug, bySlug.get(slug)?.display_name);
|
|
220
|
+
const catalogModel = bySlug.get(slug);
|
|
221
|
+
const options = ensureModelOptions(input.providerModels[slug]);
|
|
222
|
+
if (catalogModel) {
|
|
223
|
+
const instructions = resolveInstructionsForModel(catalogModel, input.personality);
|
|
224
|
+
options.codexCatalogModel = catalogModel;
|
|
225
|
+
if (instructions) {
|
|
226
|
+
input.providerModels[slug].instructions = instructions;
|
|
227
|
+
options.codexInstructions = instructions;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
delete options.codexInstructions;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
delete options.codexCatalogModel;
|
|
235
|
+
}
|
|
236
|
+
const runtimeDefaults = getRuntimeDefaultsForSlug(slug, input.catalogModels);
|
|
237
|
+
if (runtimeDefaults) {
|
|
238
|
+
input.providerModels[slug].codexRuntimeDefaults = runtimeDefaults;
|
|
239
|
+
options.codexRuntimeDefaults = runtimeDefaults;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
delete input.providerModels[slug].codexRuntimeDefaults;
|
|
243
|
+
delete options.codexRuntimeDefaults;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
for (const modelId of Object.keys(input.providerModels)) {
|
|
247
|
+
if (!allowed.has(modelId)) {
|
|
248
|
+
delete input.providerModels[modelId];
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
const orderedModelIds = Object.keys(input.providerModels).sort((a, b) => {
|
|
252
|
+
const aPriority = bySlug.get(a)?.priority;
|
|
253
|
+
const bPriority = bySlug.get(b)?.priority;
|
|
254
|
+
const normalizedAPriority = typeof aPriority === "number" && Number.isFinite(aPriority) ? aPriority : Number.POSITIVE_INFINITY;
|
|
255
|
+
const normalizedBPriority = typeof bPriority === "number" && Number.isFinite(bPriority) ? bPriority : Number.POSITIVE_INFINITY;
|
|
256
|
+
if (normalizedAPriority !== normalizedBPriority) {
|
|
257
|
+
return normalizedAPriority - normalizedBPriority;
|
|
258
|
+
}
|
|
259
|
+
return compareModelSlugs(b, a);
|
|
260
|
+
});
|
|
261
|
+
if (orderedModelIds.length > 1) {
|
|
262
|
+
const orderedEntries = orderedModelIds.map((modelId) => [modelId, input.providerModels[modelId]]);
|
|
263
|
+
for (const modelId of Object.keys(input.providerModels)) {
|
|
264
|
+
delete input.providerModels[modelId];
|
|
265
|
+
}
|
|
266
|
+
for (const [modelId, model] of orderedEntries) {
|
|
267
|
+
if (model) {
|
|
268
|
+
input.providerModels[modelId] = model;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
for (const model of Object.values(input.providerModels)) {
|
|
273
|
+
model.cost = {
|
|
274
|
+
input: 0,
|
|
275
|
+
output: 0,
|
|
276
|
+
cache: { read: 0, write: 0 }
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../lib/model-catalog/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
export type PersonalityOption = string;
|
|
2
|
+
type ModelInstructionsVariables = {
|
|
3
|
+
personality?: string | null;
|
|
4
|
+
personality_default?: string | null;
|
|
5
|
+
personality_friendly?: string | null;
|
|
6
|
+
personality_pragmatic?: string | null;
|
|
7
|
+
personalities?: Record<string, string | null> | null;
|
|
8
|
+
};
|
|
9
|
+
type ModelMessages = {
|
|
10
|
+
instructions_template?: string | null;
|
|
11
|
+
instructions_variables?: ModelInstructionsVariables | null;
|
|
12
|
+
};
|
|
13
|
+
type ModelReasoningLevel = {
|
|
14
|
+
effort?: string | null;
|
|
15
|
+
};
|
|
16
|
+
export type CodexModelInfo = {
|
|
17
|
+
slug: string;
|
|
18
|
+
display_name?: string | null;
|
|
19
|
+
priority?: number | null;
|
|
20
|
+
model_messages?: ModelMessages | null;
|
|
21
|
+
base_instructions?: string | null;
|
|
22
|
+
apply_patch_tool_type?: string | null;
|
|
23
|
+
supported_reasoning_levels?: ModelReasoningLevel[] | null;
|
|
24
|
+
default_reasoning_level?: string | null;
|
|
25
|
+
supports_reasoning_summaries?: boolean | null;
|
|
26
|
+
reasoning_summary_format?: string | null;
|
|
27
|
+
supports_parallel_tool_calls?: boolean | null;
|
|
28
|
+
support_verbosity?: boolean | null;
|
|
29
|
+
default_verbosity?: string | null;
|
|
30
|
+
};
|
|
31
|
+
export type CodexModelsCache = {
|
|
32
|
+
fetchedAt: number;
|
|
33
|
+
models: CodexModelInfo[];
|
|
34
|
+
staleFallback?: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type CodexModelRuntimeDefaults = {
|
|
37
|
+
applyPatchToolType?: string;
|
|
38
|
+
defaultReasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
39
|
+
supportedReasoningEfforts?: Array<"none" | "minimal" | "low" | "medium" | "high" | "xhigh">;
|
|
40
|
+
supportsReasoningSummaries?: boolean;
|
|
41
|
+
reasoningSummaryFormat?: string;
|
|
42
|
+
supportsParallelToolCalls?: boolean;
|
|
43
|
+
supportsVerbosity?: boolean;
|
|
44
|
+
defaultVerbosity?: "low" | "medium" | "high";
|
|
45
|
+
};
|
|
46
|
+
export type CodexModelCatalogEvent = {
|
|
47
|
+
type: "memory_cache_hit" | "disk_cache_hit" | "network_fetch_success" | "network_fetch_failed" | "stale_cache_used" | "catalog_unavailable";
|
|
48
|
+
scope: "shared" | "account";
|
|
49
|
+
reason?: string;
|
|
50
|
+
};
|
|
51
|
+
export type GetCodexModelCatalogInput = {
|
|
52
|
+
accessToken?: string;
|
|
53
|
+
accountId?: string;
|
|
54
|
+
clientVersion?: string;
|
|
55
|
+
versionHeader?: string;
|
|
56
|
+
originator?: string;
|
|
57
|
+
userAgent?: string;
|
|
58
|
+
openaiBeta?: string;
|
|
59
|
+
now?: () => number;
|
|
60
|
+
fetchImpl?: typeof fetch;
|
|
61
|
+
forceRefresh?: boolean;
|
|
62
|
+
cacheDir?: string;
|
|
63
|
+
refreshGithubModelsCache?: boolean;
|
|
64
|
+
onEvent?: (event: CodexModelCatalogEvent) => void;
|
|
65
|
+
};
|
|
66
|
+
export type ApplyCodexCatalogInput = {
|
|
67
|
+
providerModels: Record<string, Record<string, unknown>>;
|
|
68
|
+
catalogModels?: CodexModelInfo[];
|
|
69
|
+
fallbackModels: readonly string[];
|
|
70
|
+
personality?: PersonalityOption;
|
|
71
|
+
};
|
|
72
|
+
export declare const CODEX_MODELS_ENDPOINT = "https://chatgpt.com/backend-api/codex/models";
|
|
73
|
+
export declare const CODEX_GITHUB_MODELS_URL_PREFIX = "https://raw.githubusercontent.com/openai/codex";
|
|
74
|
+
export declare const DEFAULT_CLIENT_VERSION = "0.111.0";
|
|
75
|
+
export declare const CACHE_TTL_MS: number;
|
|
76
|
+
export declare const FETCH_TIMEOUT_MS = 5000;
|
|
77
|
+
export declare const EFFORT_SUFFIX_REGEX: RegExp;
|
|
78
|
+
export type GitHubModelsCacheMeta = {
|
|
79
|
+
etag?: string;
|
|
80
|
+
tag: string;
|
|
81
|
+
lastChecked: number;
|
|
82
|
+
url: string;
|
|
83
|
+
};
|
|
84
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
85
|
+
export declare function normalizeModelSlug(value: unknown): string | undefined;
|
|
86
|
+
export declare function compareModelSlugs(a: string, b: string): number;
|
|
87
|
+
export declare function normalizeReasoningEffort(value: unknown): CodexModelRuntimeDefaults["defaultReasoningEffort"] | undefined;
|
|
88
|
+
export declare function normalizeVerbosity(value: unknown): CodexModelRuntimeDefaults["defaultVerbosity"] | undefined;
|
|
89
|
+
export declare function parseReasoningLevels(value: unknown): ModelReasoningLevel[] | null;
|
|
90
|
+
export declare function parseCatalogResponse(payload: unknown): CodexModelInfo[];
|
|
91
|
+
export declare function parseFetchedAtFromUnknown(value: unknown): number;
|
|
92
|
+
export declare function parseSemver(value: unknown): [number, number, number] | undefined;
|
|
93
|
+
export declare function compareSemver(a: [number, number, number], b: [number, number, number]): number;
|
|
94
|
+
export declare function normalizeSemver(value: string | undefined): string | undefined;
|
|
95
|
+
export declare function githubModelsTag(version: string): string;
|
|
96
|
+
export declare function githubModelsUrl(version: string): string;
|
|
97
|
+
export declare function semverFromTag(tag: string | undefined): string | undefined;
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../lib/model-catalog/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
export const CODEX_MODELS_ENDPOINT = "https://chatgpt.com/backend-api/codex/models";
|
|
2
|
+
export const CODEX_GITHUB_MODELS_URL_PREFIX = "https://raw.githubusercontent.com/openai/codex";
|
|
3
|
+
export const DEFAULT_CLIENT_VERSION = "0.111.0";
|
|
4
|
+
export const CACHE_TTL_MS = 15 * 60 * 1000;
|
|
5
|
+
export const FETCH_TIMEOUT_MS = 5000;
|
|
6
|
+
export const EFFORT_SUFFIX_REGEX = /-(none|minimal|low|medium|high|xhigh)$/i;
|
|
7
|
+
const REASONING_EFFORTS = new Set(["none", "minimal", "low", "medium", "high", "xhigh"]);
|
|
8
|
+
const TEXT_VERBOSITY = new Set(["low", "medium", "high"]);
|
|
9
|
+
export function isRecord(value) {
|
|
10
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
11
|
+
}
|
|
12
|
+
export function normalizeModelSlug(value) {
|
|
13
|
+
if (typeof value !== "string")
|
|
14
|
+
return undefined;
|
|
15
|
+
const normalized = value.trim().toLowerCase();
|
|
16
|
+
return normalized ? normalized : undefined;
|
|
17
|
+
}
|
|
18
|
+
export function compareModelSlugs(a, b) {
|
|
19
|
+
return a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" });
|
|
20
|
+
}
|
|
21
|
+
export function normalizeReasoningEffort(value) {
|
|
22
|
+
if (typeof value !== "string")
|
|
23
|
+
return undefined;
|
|
24
|
+
const normalized = value.trim().toLowerCase();
|
|
25
|
+
if (REASONING_EFFORTS.has(normalized)) {
|
|
26
|
+
return normalized;
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
export function normalizeVerbosity(value) {
|
|
31
|
+
if (typeof value !== "string")
|
|
32
|
+
return undefined;
|
|
33
|
+
const normalized = value.trim().toLowerCase();
|
|
34
|
+
if (TEXT_VERBOSITY.has(normalized)) {
|
|
35
|
+
return normalized;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
export function parseReasoningLevels(value) {
|
|
40
|
+
if (!Array.isArray(value))
|
|
41
|
+
return null;
|
|
42
|
+
const out = [];
|
|
43
|
+
for (const item of value) {
|
|
44
|
+
if (!isRecord(item))
|
|
45
|
+
continue;
|
|
46
|
+
const effort = normalizeReasoningEffort(item.effort);
|
|
47
|
+
if (!effort)
|
|
48
|
+
continue;
|
|
49
|
+
out.push({ effort });
|
|
50
|
+
}
|
|
51
|
+
return out.length > 0 ? out : null;
|
|
52
|
+
}
|
|
53
|
+
export function parseCatalogResponse(payload) {
|
|
54
|
+
if (!isRecord(payload))
|
|
55
|
+
return [];
|
|
56
|
+
const root = payload;
|
|
57
|
+
if (!Array.isArray(root.models))
|
|
58
|
+
return [];
|
|
59
|
+
const deduped = new Map();
|
|
60
|
+
for (const item of root.models) {
|
|
61
|
+
if (!isRecord(item))
|
|
62
|
+
continue;
|
|
63
|
+
const slug = normalizeModelSlug(item.slug);
|
|
64
|
+
if (!slug)
|
|
65
|
+
continue;
|
|
66
|
+
deduped.set(slug, {
|
|
67
|
+
slug,
|
|
68
|
+
display_name: typeof item.display_name === "string" ? item.display_name : null,
|
|
69
|
+
priority: typeof item.priority === "number" && Number.isFinite(item.priority) ? item.priority : null,
|
|
70
|
+
model_messages: isRecord(item.model_messages)
|
|
71
|
+
? {
|
|
72
|
+
instructions_template: typeof item.model_messages.instructions_template === "string"
|
|
73
|
+
? item.model_messages.instructions_template
|
|
74
|
+
: null,
|
|
75
|
+
instructions_variables: isRecord(item.model_messages.instructions_variables)
|
|
76
|
+
? {
|
|
77
|
+
personality: typeof item.model_messages.instructions_variables.personality === "string"
|
|
78
|
+
? item.model_messages.instructions_variables.personality
|
|
79
|
+
: null,
|
|
80
|
+
personality_default: typeof item.model_messages.instructions_variables.personality_default === "string"
|
|
81
|
+
? item.model_messages.instructions_variables.personality_default
|
|
82
|
+
: null,
|
|
83
|
+
personality_friendly: typeof item.model_messages.instructions_variables.personality_friendly === "string"
|
|
84
|
+
? item.model_messages.instructions_variables.personality_friendly
|
|
85
|
+
: null,
|
|
86
|
+
personality_pragmatic: typeof item.model_messages.instructions_variables.personality_pragmatic === "string"
|
|
87
|
+
? item.model_messages.instructions_variables.personality_pragmatic
|
|
88
|
+
: null,
|
|
89
|
+
personalities: isRecord(item.model_messages.instructions_variables.personalities)
|
|
90
|
+
? item.model_messages.instructions_variables.personalities
|
|
91
|
+
: null
|
|
92
|
+
}
|
|
93
|
+
: null
|
|
94
|
+
}
|
|
95
|
+
: null,
|
|
96
|
+
base_instructions: typeof item.base_instructions === "string" ? item.base_instructions : null,
|
|
97
|
+
apply_patch_tool_type: typeof item.apply_patch_tool_type === "string" ? item.apply_patch_tool_type : null,
|
|
98
|
+
supported_reasoning_levels: parseReasoningLevels(item.supported_reasoning_levels),
|
|
99
|
+
default_reasoning_level: typeof item.default_reasoning_level === "string" ? item.default_reasoning_level : null,
|
|
100
|
+
supports_reasoning_summaries: typeof item.supports_reasoning_summaries === "boolean" ? item.supports_reasoning_summaries : null,
|
|
101
|
+
reasoning_summary_format: typeof item.reasoning_summary_format === "string" ? item.reasoning_summary_format : null,
|
|
102
|
+
supports_parallel_tool_calls: typeof item.supports_parallel_tool_calls === "boolean" ? item.supports_parallel_tool_calls : null,
|
|
103
|
+
support_verbosity: typeof item.support_verbosity === "boolean" ? item.support_verbosity : null,
|
|
104
|
+
default_verbosity: typeof item.default_verbosity === "string" ? item.default_verbosity : null
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return Array.from(deduped.values()).sort((a, b) => compareModelSlugs(a.slug, b.slug));
|
|
108
|
+
}
|
|
109
|
+
export function parseFetchedAtFromUnknown(value) {
|
|
110
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
111
|
+
return value;
|
|
112
|
+
}
|
|
113
|
+
if (typeof value === "string") {
|
|
114
|
+
const parsed = Date.parse(value);
|
|
115
|
+
if (!Number.isNaN(parsed)) {
|
|
116
|
+
return parsed;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
export function parseSemver(value) {
|
|
122
|
+
if (typeof value !== "string")
|
|
123
|
+
return undefined;
|
|
124
|
+
const trimmed = value.trim();
|
|
125
|
+
const match = trimmed.match(/^(\d+)\.(\d+)\.(\d+)$/);
|
|
126
|
+
if (!match)
|
|
127
|
+
return undefined;
|
|
128
|
+
return [Number.parseInt(match[1], 10), Number.parseInt(match[2], 10), Number.parseInt(match[3], 10)];
|
|
129
|
+
}
|
|
130
|
+
export function compareSemver(a, b) {
|
|
131
|
+
if (a[0] !== b[0])
|
|
132
|
+
return a[0] - b[0];
|
|
133
|
+
if (a[1] !== b[1])
|
|
134
|
+
return a[1] - b[1];
|
|
135
|
+
return a[2] - b[2];
|
|
136
|
+
}
|
|
137
|
+
export function normalizeSemver(value) {
|
|
138
|
+
const parsed = parseSemver(value);
|
|
139
|
+
if (!parsed)
|
|
140
|
+
return undefined;
|
|
141
|
+
return `${parsed[0]}.${parsed[1]}.${parsed[2]}`;
|
|
142
|
+
}
|
|
143
|
+
export function githubModelsTag(version) {
|
|
144
|
+
return `rust-v${version}`;
|
|
145
|
+
}
|
|
146
|
+
export function githubModelsUrl(version) {
|
|
147
|
+
return `${CODEX_GITHUB_MODELS_URL_PREFIX}/${githubModelsTag(version)}/codex-rs/core/models.json`;
|
|
148
|
+
}
|
|
149
|
+
export function semverFromTag(tag) {
|
|
150
|
+
if (!tag)
|
|
151
|
+
return undefined;
|
|
152
|
+
const match = tag.match(/(\d+\.\d+\.\d+)/);
|
|
153
|
+
if (!match?.[1])
|
|
154
|
+
return undefined;
|
|
155
|
+
return normalizeSemver(match[1]);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../lib/model-catalog/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,69 +1,4 @@
|
|
|
1
|
-
export type PersonalityOption
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
personality_default?: string | null;
|
|
5
|
-
personality_friendly?: string | null;
|
|
6
|
-
personality_pragmatic?: string | null;
|
|
7
|
-
personalities?: Record<string, string | null> | null;
|
|
8
|
-
};
|
|
9
|
-
type ModelMessages = {
|
|
10
|
-
instructions_template?: string | null;
|
|
11
|
-
instructions_variables?: ModelInstructionsVariables | null;
|
|
12
|
-
};
|
|
13
|
-
type ModelReasoningLevel = {
|
|
14
|
-
effort?: string | null;
|
|
15
|
-
};
|
|
16
|
-
export type CodexModelInfo = {
|
|
17
|
-
slug: string;
|
|
18
|
-
model_messages?: ModelMessages | null;
|
|
19
|
-
base_instructions?: string | null;
|
|
20
|
-
apply_patch_tool_type?: string | null;
|
|
21
|
-
supported_reasoning_levels?: ModelReasoningLevel[] | null;
|
|
22
|
-
default_reasoning_level?: string | null;
|
|
23
|
-
supports_reasoning_summaries?: boolean | null;
|
|
24
|
-
reasoning_summary_format?: string | null;
|
|
25
|
-
support_verbosity?: boolean | null;
|
|
26
|
-
default_verbosity?: string | null;
|
|
27
|
-
};
|
|
28
|
-
export type CodexModelRuntimeDefaults = {
|
|
29
|
-
applyPatchToolType?: string;
|
|
30
|
-
defaultReasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
31
|
-
supportedReasoningEfforts?: Array<"none" | "minimal" | "low" | "medium" | "high" | "xhigh">;
|
|
32
|
-
supportsReasoningSummaries?: boolean;
|
|
33
|
-
reasoningSummaryFormat?: string;
|
|
34
|
-
supportsVerbosity?: boolean;
|
|
35
|
-
defaultVerbosity?: "low" | "medium" | "high";
|
|
36
|
-
};
|
|
37
|
-
export type CodexModelCatalogEvent = {
|
|
38
|
-
type: "memory_cache_hit" | "disk_cache_hit" | "network_fetch_success" | "network_fetch_failed" | "stale_cache_used" | "catalog_unavailable";
|
|
39
|
-
scope: "shared" | "account";
|
|
40
|
-
reason?: string;
|
|
41
|
-
};
|
|
42
|
-
export type GetCodexModelCatalogInput = {
|
|
43
|
-
accessToken?: string;
|
|
44
|
-
accountId?: string;
|
|
45
|
-
clientVersion?: string;
|
|
46
|
-
versionHeader?: string;
|
|
47
|
-
originator?: string;
|
|
48
|
-
userAgent?: string;
|
|
49
|
-
openaiBeta?: string;
|
|
50
|
-
now?: () => number;
|
|
51
|
-
fetchImpl?: typeof fetch;
|
|
52
|
-
forceRefresh?: boolean;
|
|
53
|
-
cacheDir?: string;
|
|
54
|
-
refreshGithubModelsCache?: boolean;
|
|
55
|
-
onEvent?: (event: CodexModelCatalogEvent) => void;
|
|
56
|
-
};
|
|
57
|
-
export type ApplyCodexCatalogInput = {
|
|
58
|
-
providerModels: Record<string, Record<string, unknown>>;
|
|
59
|
-
catalogModels?: CodexModelInfo[];
|
|
60
|
-
fallbackModels: string[];
|
|
61
|
-
personality?: PersonalityOption;
|
|
62
|
-
};
|
|
63
|
-
export declare function getCodexModelCatalog(input: GetCodexModelCatalogInput): Promise<CodexModelInfo[] | undefined>;
|
|
64
|
-
export declare function resolveInstructionsForModel(model: CodexModelInfo, personality?: PersonalityOption): string | undefined;
|
|
65
|
-
export declare function getRuntimeDefaultsForModel(model: CodexModelInfo | undefined): CodexModelRuntimeDefaults | undefined;
|
|
66
|
-
export declare function getRuntimeDefaultsForSlug(slug: string, catalogModels: CodexModelInfo[] | undefined): CodexModelRuntimeDefaults | undefined;
|
|
67
|
-
export declare function applyCodexCatalogToProviderModels(input: ApplyCodexCatalogInput): void;
|
|
68
|
-
export {};
|
|
1
|
+
export { type ApplyCodexCatalogInput, CACHE_TTL_MS, type CodexModelCatalogEvent, type CodexModelInfo, type CodexModelRuntimeDefaults, type CodexModelsCache, CODEX_GITHUB_MODELS_URL_PREFIX, CODEX_MODELS_ENDPOINT, compareModelSlugs, compareSemver, DEFAULT_CLIENT_VERSION, EFFORT_SUFFIX_REGEX, FETCH_TIMEOUT_MS, githubModelsTag, githubModelsUrl, type GetCodexModelCatalogInput, type GitHubModelsCacheMeta, isRecord, normalizeModelSlug, normalizeReasoningEffort, normalizeSemver, normalizeVerbosity, parseCatalogResponse, parseFetchedAtFromUnknown, parseReasoningLevels, parseSemver, type PersonalityOption, semverFromTag } from "./model-catalog/shared.js";
|
|
2
|
+
export { getCodexModelCatalog } from "./model-catalog/catalog-fetch.js";
|
|
3
|
+
export { applyCodexCatalogToProviderModels, getRuntimeDefaultsForModel, getRuntimeDefaultsForSlug, resolveInstructionsForModel } from "./model-catalog/provider.js";
|
|
69
4
|
//# sourceMappingURL=model-catalog.d.ts.map
|